@SuppressWarnings("deprecation")
  @Override
  public void onCreate(Bundle savedInstanceState) {
    setTheme(MyApplication.getThemeId(Build.VERSION.SDK_INT < 11));
    super.onCreate(savedInstanceState);
    setTitle(Utils.concatResStrings(this, R.string.app_name, R.string.menu_settings));
    addPreferencesFromResource(R.layout.preferences);
    Preference pref = findPreference(MyApplication.PrefKey.SHARE_TARGET.getKey());
    pref.setSummary(
        getString(R.string.pref_share_target_summary)
            + ":\n"
            + "ftp: \"ftp://*****:*****@my.example.org:port/my/directory/\"\n"
            + "mailto: \"mailto:[email protected]\"");
    pref.setOnPreferenceChangeListener(this);
    configureContribPrefs();
    findPreference(MyApplication.PrefKey.SEND_FEEDBACK.getKey()).setOnPreferenceClickListener(this);
    findPreference(MyApplication.PrefKey.MORE_INFO_DIALOG.getKey())
        .setOnPreferenceClickListener(this);

    pref = findPreference(MyApplication.PrefKey.RESTORE.getKey());
    pref.setTitle(getString(R.string.pref_restore_title) + " (ZIP)");
    pref.setOnPreferenceClickListener(this);

    pref = findPreference(MyApplication.PrefKey.RESTORE_LEGACY.getKey());
    pref.setTitle(
        getString(R.string.pref_restore_title)
            + " ("
            + getString(R.string.pref_restore_legacy_data)
            + ")");
    pref.setOnPreferenceClickListener(this);

    findPreference(MyApplication.PrefKey.RATE.getKey()).setOnPreferenceClickListener(this);

    findPreference(MyApplication.PrefKey.ENTER_LICENCE.getKey())
        .setOnPreferenceChangeListener(this);
    setProtectionDependentsState();

    findPreference(MyApplication.PrefKey.PERFORM_PROTECTION.getKey())
        .setOnPreferenceChangeListener(this);

    findPreference(MyApplication.PrefKey.PROTECTION_ENABLE_ACCOUNT_WIDGET.getKey())
        .setOnPreferenceChangeListener(this);

    findPreference(MyApplication.PrefKey.PROTECTION_ENABLE_TEMPLATE_WIDGET.getKey())
        .setOnPreferenceChangeListener(this);

    findPreference(MyApplication.PrefKey.APP_DIR.getKey()).setOnPreferenceClickListener(this);
    setAppDirSummary();
    if (savedInstanceState == null
        && TextUtils.equals(
            getIntent().getStringExtra(KEY_OPEN_PREF_KEY),
            MyApplication.PrefKey.PLANNER_CALENDAR_ID.getKey())) {
      ((CalendarListPreference) findPreference(MyApplication.PrefKey.PLANNER_CALENDAR_ID.getKey()))
          .show();
    }

    findPreference(MyApplication.PrefKey.SHORTCUT_CREATE_TRANSACTION.getKey())
        .setOnPreferenceClickListener(this);
    findPreference(MyApplication.PrefKey.SHORTCUT_CREATE_TRANSFER.getKey())
        .setOnPreferenceClickListener(this);
    findPreference(MyApplication.PrefKey.SHORTCUT_CREATE_SPLIT.getKey())
        .setOnPreferenceClickListener(this);
    findPreference(MyApplication.PrefKey.SECURITY_QUESTION.getKey())
        .setSummary(
            Utils.concatResStrings(
                this, R.string.pref_security_question_summary, R.string.contrib_key_requires));
    findPreference(MyApplication.PrefKey.SHORTCUT_CREATE_SPLIT.getKey())
        .setSummary(
            Utils.concatResStrings(
                this, R.string.pref_shortcut_summary, R.string.contrib_key_requires));
  }
 @Override
 public boolean onPreferenceClick(Preference preference) {
   if (preference.getKey().equals(MyApplication.PrefKey.CONTRIB_DONATE.getKey())) {
     Utils.contribBuyDo(MyPreferenceActivity.this);
     return true;
   }
   if (preference.getKey().equals(MyApplication.PrefKey.REQUEST_LICENCE.getKey())) {
     String androidId = Secure.getString(getContentResolver(), Secure.ANDROID_ID);
     Intent i = new Intent(android.content.Intent.ACTION_SEND);
     i.setType("plain/text");
     i.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] {MyApplication.FEEDBACK_EMAIL});
     i.putExtra(
         android.content.Intent.EXTRA_SUBJECT,
         "[" + getString(R.string.app_name) + "] " + getString(R.string.contrib_key));
     i.putExtra(
         android.content.Intent.EXTRA_TEXT,
         getString(R.string.request_licence_mail_head, androidId)
             + " \n\n["
             + getString(R.string.request_licence_mail_description)
             + "]");
     if (!Utils.isIntentAvailable(MyPreferenceActivity.this, i)) {
       Toast.makeText(
               getBaseContext(), R.string.no_app_handling_email_available, Toast.LENGTH_LONG)
           .show();
     } else {
       startActivity(i);
     }
     return true;
   }
   if (preference.getKey().equals(MyApplication.PrefKey.SEND_FEEDBACK.getKey())) {
     CommonCommands.dispatchCommand(this, R.id.FEEDBACK_COMMAND, null);
     return true;
   }
   if (preference.getKey().equals(MyApplication.PrefKey.RATE.getKey())) {
     PrefKey.NEXT_REMINDER_RATE.putLong(-1);
     CommonCommands.dispatchCommand(this, R.id.RATE_COMMAND, null);
     return true;
   }
   if (preference.getKey().equals(MyApplication.PrefKey.MORE_INFO_DIALOG.getKey())) {
     showDialog(R.id.MORE_INFO_DIALOG);
     return true;
   }
   if (preference.getKey().equals(MyApplication.PrefKey.RESTORE.getKey())
       || preference.getKey().equals(MyApplication.PrefKey.RESTORE_LEGACY.getKey())) {
     startActivityForResult(preference.getIntent(), RESTORE_REQUEST);
     return true;
   }
   if (preference.getKey().equals(MyApplication.PrefKey.APP_DIR.getKey())) {
     File appDir = Utils.requireAppDir();
     Preference pref = findPreference(MyApplication.PrefKey.APP_DIR.getKey());
     if (appDir == null) {
       pref.setSummary(R.string.external_storage_unavailable);
       pref.setEnabled(false);
     } else {
       Intent intent = new Intent(this, FolderBrowser.class);
       intent.putExtra(FolderBrowser.PATH, appDir.getPath());
       startActivityForResult(intent, PICK_FOLDER_REQUEST);
     }
     return true;
   }
   if (preference.getKey().equals(MyApplication.PrefKey.SHORTCUT_CREATE_TRANSACTION.getKey())) {
     Bundle extras = new Bundle();
     extras.putBoolean(AbstractWidget.EXTRA_START_FROM_WIDGET, true);
     extras.putBoolean(AbstractWidget.EXTRA_START_FROM_WIDGET_DATA_ENTRY, true);
     addShortcut(
         ".activity.ExpenseEdit",
         R.string.transaction,
         R.drawable.shortcut_create_transaction_icon,
         extras);
     return true;
   }
   if (preference.getKey().equals(MyApplication.PrefKey.SHORTCUT_CREATE_TRANSFER.getKey())) {
     Bundle extras = new Bundle();
     extras.putBoolean(AbstractWidget.EXTRA_START_FROM_WIDGET, true);
     extras.putBoolean(AbstractWidget.EXTRA_START_FROM_WIDGET_DATA_ENTRY, true);
     extras.putInt(MyApplication.KEY_OPERATION_TYPE, MyExpenses.TYPE_TRANSFER);
     addShortcut(
         ".activity.ExpenseEdit",
         R.string.transfer,
         R.drawable.shortcut_create_transfer_icon,
         extras);
     return true;
   }
   if (preference.getKey().equals(MyApplication.PrefKey.SHORTCUT_CREATE_SPLIT.getKey())) {
     Bundle extras = new Bundle();
     extras.putBoolean(AbstractWidget.EXTRA_START_FROM_WIDGET, true);
     extras.putBoolean(AbstractWidget.EXTRA_START_FROM_WIDGET_DATA_ENTRY, true);
     extras.putInt(MyApplication.KEY_OPERATION_TYPE, MyExpenses.TYPE_SPLIT);
     addShortcut(
         ".activity.ExpenseEdit",
         R.string.split_transaction,
         R.drawable.shortcut_create_split_icon,
         extras);
     return true;
   }
   return false;
 }