@Override public boolean onPreferenceChange(Preference pref, Object value) { String key = pref.getKey(); if (key.equals(MyApplication.PrefKey.SHARE_TARGET.getKey())) { String target = (String) value; URI uri; if (!target.equals("")) { uri = Utils.validateUri(target); if (uri == null) { Toast.makeText( getBaseContext(), getString(R.string.ftp_uri_malformed, target), Toast.LENGTH_LONG) .show(); return false; } String scheme = uri.getScheme(); if (!(scheme.equals("ftp") || scheme.equals("mailto"))) { Toast.makeText( getBaseContext(), getString(R.string.share_scheme_not_supported, scheme), Toast.LENGTH_LONG) .show(); return false; } Intent intent; if (scheme.equals("ftp")) { intent = new Intent(android.content.Intent.ACTION_SENDTO); intent.setData(android.net.Uri.parse(target)); if (!Utils.isIntentAvailable(this, intent)) { showDialog(R.id.FTP_DIALOG); } } } } else if (key.equals(MyApplication.PrefKey.ENTER_LICENCE.getKey())) { if (Utils.verifyLicenceKey((String) value)) { Toast.makeText(getBaseContext(), R.string.licence_validation_success, Toast.LENGTH_LONG) .show(); MyApplication.getInstance().setContribEnabled(true); setProtectionDependentsState(); } else { Toast.makeText(getBaseContext(), R.string.licence_validation_failure, Toast.LENGTH_LONG) .show(); MyApplication.getInstance().setContribEnabled(false); } configureContribPrefs(); } return true; }
@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)); }