private void configureContribPrefs() { Preference pref1 = findPreference(MyApplication.PrefKey.REQUEST_LICENCE.getKey()), pref2 = findPreference(MyApplication.PrefKey.CONTRIB_DONATE.getKey()); if (MyApplication.getInstance().isContribEnabled()) { ((PreferenceCategory) findPreference(MyApplication.PrefKey.CATEGORY_CONTRIB.getKey())) .removePreference(pref1); pref2.setSummary( Utils.concatResStrings( this, R.string.thank_you, R.string.pref_contrib_donate_summary_already_contrib)); } else { pref1.setOnPreferenceClickListener(this); pref1.setSummary( getString( R.string.pref_request_licence_summary, Secure.getString(getContentResolver(), Secure.ANDROID_ID))); pref2.setSummary(R.string.pref_contrib_donate_summary); } pref2.setOnPreferenceClickListener(this); findPreference(MyApplication.PrefKey.SHORTCUT_CREATE_SPLIT.getKey()) .setEnabled(MyApplication.getInstance().isContribEnabled()); }
@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; }