/** * Set the default preference values. * * @param Bundle * savedInstanceState the current Activity's state, as passed by * Android */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); listPreferenceSourceLanguage = (ListPreference) getPreferenceScreen().findPreference(KEY_SOURCE_LANGUAGE_PREFERENCE); listPreferenceTargetLanguage = (ListPreference) getPreferenceScreen().findPreference(KEY_TARGET_LANGUAGE_PREFERENCE); listPreferenceTranslator = (ListPreference) getPreferenceScreen().findPreference(KEY_TRANSLATOR); listPreferenceOcrEngineMode = (ListPreference) getPreferenceScreen().findPreference(KEY_OCR_ENGINE_MODE); editTextPreferenceCharacterBlacklist = (EditTextPreference) getPreferenceScreen().findPreference(KEY_CHARACTER_BLACKLIST); editTextPreferenceCharacterWhitelist = (EditTextPreference) getPreferenceScreen().findPreference(KEY_CHARACTER_WHITELIST); listPreferencePageSegmentationMode = (ListPreference) getPreferenceScreen().findPreference(KEY_PAGE_SEGMENTATION_MODE); // Create the entries/entryvalues for the translation target language list. initTranslationTargetList(); }
private void initializeLanguageDialog(PreferenceScreen screen) { ListPreference languageSelection = (ListPreference) screen.findPreference(LANGUAGE); if (languageSelection != null) { Map<String, String> items = new TreeMap<>(); for (String localeCode : LanguageUtil.APP_LANGUAGES) { Locale loc = LanguageUtil.getLocale(localeCode); items.put(loc.getDisplayName(), loc.toString()); } CharSequence[] languageDialogLabels = new CharSequence[items.size() + 1]; CharSequence[] languageDialogValues = new CharSequence[items.size() + 1]; languageDialogLabels[0] = getResources().getString(R.string.language_system); languageDialogValues[0] = ""; int i = 1; for (Map.Entry<String, String> e : items.entrySet()) { languageDialogLabels[i] = e.getKey(); languageDialogValues[i] = e.getValue(); i++; } languageSelection.setEntries(languageDialogLabels); languageSelection.setEntryValues(languageDialogValues); } }
private void removeUnnecessaryAdvancedPrefs(PreferenceScreen screen) { PreferenceCategory plugins = (PreferenceCategory) screen.findPreference("category_plugins"); // Disable the emoji/kana buttons to scroll preference if those keys don't exist if (!CompatHelper.hasKanaAndEmojiKeys()) { CheckBoxPreference emojiScrolling = (CheckBoxPreference) screen.findPreference("scrolling_buttons"); if (emojiScrolling != null && plugins != null) { plugins.removePreference(emojiScrolling); } } // Disable the double scroll preference if no scrolling keys if (!CompatHelper.hasScrollKeys() && !CompatHelper.hasKanaAndEmojiKeys()) { CheckBoxPreference doubleScrolling = (CheckBoxPreference) screen.findPreference("double_scrolling"); if (doubleScrolling != null && plugins != null) { plugins.removePreference(doubleScrolling); } } PreferenceCategory workarounds = (PreferenceCategory) screen.findPreference("category_workarounds"); if (workarounds != null) { CheckBoxPreference fixHebrewText = (CheckBoxPreference) screen.findPreference("fixHebrewText"); CompatHelper.removeHiddenPreferences(this.getApplicationContext()); if (CompatHelper.getSdkVersion() >= 16) { workarounds.removePreference(fixHebrewText); } } }
/** Initializes the list of custom fonts shown in the preferences. */ private void initializeCustomFontsDialog(PreferenceScreen screen) { ListPreference defaultFontPreference = (ListPreference) screen.findPreference("defaultFont"); if (defaultFontPreference != null) { defaultFontPreference.setEntries(getCustomFonts("System default")); defaultFontPreference.setEntryValues(getCustomFonts("")); } ListPreference browserEditorCustomFontsPreference = (ListPreference) screen.findPreference("browserEditorFont"); browserEditorCustomFontsPreference.setEntries(getCustomFonts("System default")); browserEditorCustomFontsPreference.setEntryValues(getCustomFonts("", true)); }
@Test public void inflate_shouldParseIntentContainedInPreference() throws Exception { final PreferenceScreen screen = inflatePreferenceActivity(); final Preference intentPreference = screen.findPreference("intent"); Intent intent = intentPreference.getIntent(); assertThat(intent).isNotNull(); assertThat(intent.getAction()).isEqualTo("action"); assertThat(intent.getData()).isEqualTo(Uri.parse("tel://1235")); assertThat(intent.getType()).isEqualTo("application/text"); assertThat(intent.getComponent().getClassName()).isEqualTo("org.robolectric.test.Intent"); assertThat(intent.getComponent().getPackageName()).isEqualTo("org.robolectric"); }
@Test public void inflate_shouldBindPreferencesToPreferenceManager() throws Exception { final PreferenceScreen screen = inflatePreferenceActivity(); final Preference preference = screen.findPreference("preference"); assertThat(preference.getPreferenceManager().findPreference("preference")).isNotNull(); }
@Test public void setDependency_shouldSetDependencyBetweenPreferences() throws Exception { final PreferenceScreen screen = inflatePreferenceActivity(); final Preference dependant = screen.findPreference("dependant"); assertThat(dependant.getDependency()).isEqualTo("preference"); dependant.setDependency(null); assertThat(dependant.getDependency()).isNull(); }
@Test public void inflate_shouldCreateDialogPreference() { final PreferenceScreen screen = inflatePreferenceActivity(); final DialogPreference preference = (DialogPreference) screen.findPreference("dialog"); assertThat(preference.getTitle()).isEqualTo("Dialog Preference"); assertThat(preference.getSummary()).isEqualTo("This is the dialog summary"); assertThat(preference.getDialogMessage()).isEqualTo("This is the dialog message"); assertThat(preference.getPositiveButtonText()).isEqualTo("YES"); assertThat(preference.getNegativeButtonText()).isEqualTo("NO"); }
@Test public void setPersistent_shouldMarkThePreferenceAsPersistent() throws Exception { final PreferenceScreen screen = inflatePreferenceActivity(); final Preference preference = screen.findPreference("preference"); preference.setPersistent(true); assertThat(preference.isPersistent()).isTrue(); preference.setPersistent(false); assertThat(preference.isPersistent()).isFalse(); }
@Test public void setEnabled_shouldEnableThePreference() throws Exception { final PreferenceScreen screen = inflatePreferenceActivity(); final Preference preference = screen.findPreference("preference"); preference.setEnabled(true); assertThat(preference.isEnabled()).isTrue(); preference.setEnabled(false); assertThat(preference.isEnabled()).isFalse(); }
@Test public void setOrder_shouldSetOrderOnPreference() throws Exception { final PreferenceScreen screen = inflatePreferenceActivity(); final Preference preference = screen.findPreference("preference"); preference.setOrder(100); assertThat(preference.getOrder()).isEqualTo(100); preference.setOrder(50); assertThat(preference.getOrder()).isEqualTo(50); }
@Test public void click_shouldCallPreferenceClickListener() throws Exception { final PreferenceScreen screen = inflatePreferenceActivity(); final Preference preference = screen.findPreference("preference"); boolean[] holder = new boolean[1]; preference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { holder[0] = true; return true; } }); shadowOf(preference).click(); assertThat(holder[0]).isTrue(); }
screen.findPreference("fullscreenMode"); fullscreenPreference.setOnPreferenceChangeListener((preference, newValue) -> { SharedPreferences prefs = AnkiDroidApp.getSharedPrefs(Preferences.this); Preference customButtonsPreference = screen.findPreference("custom_buttons_link"); customButtonsPreference.setOnPreferenceClickListener(preference -> { Intent i = getPreferenceSubscreenIntent(Preferences.this, Preference reset_custom_buttons = screen.findPreference("reset_custom_buttons"); reset_custom_buttons.setOnPreferenceClickListener(preference -> { SharedPreferences.Editor edit = AnkiDroidApp.getSharedPrefs(getBaseContext()).edit(); EditTextPreference collectionPathPreference = (EditTextPreference) screen.findPreference("deckPath"); collectionPathPreference.setOnPreferenceChangeListener((preference, newValue) -> { final String newPath = (String) newValue; Preference customSyncServerPreference = screen.findPreference("custom_sync_server_link"); customSyncServerPreference.setOnPreferenceClickListener(preference -> { Intent i = getPreferenceSubscreenIntent(Preferences.this, Preference advancedStatisticsPreference = screen.findPreference("advanced_statistics_link"); advancedStatisticsPreference.setOnPreferenceClickListener(preference -> { Intent i = getPreferenceSubscreenIntent(Preferences.this, ConfirmationPreference fullSyncPreference = (ConfirmationPreference)screen.findPreference("force_full_sync"); fullSyncPreference.setDialogMessage(R.string.force_full_sync_summary); fullSyncPreference.setDialogTitle(R.string.force_full_sync_title);
try { PreferenceScreen screen = listener.getPreferenceScreen(); Preference pref = screen.findPreference(key); if (pref == null) { Timber.e("Preferences: no preference found for the key: %s", key); CheckBoxPreference keepScreenOn = (CheckBoxPreference) screen.findPreference("keepScreenOn"); keepScreenOn.setChecked(((CheckBoxPreference) pref).isChecked()); break; ListPreference listpref = (ListPreference) screen.findPreference("minimumCardsDueForNotification"); if (listpref != null) { updateNotificationPreference(listpref); SharedPreferences preferences = AnkiDroidApp.getSharedPrefs(getBaseContext()); String username = preferences.getString("username", ""); Preference syncAccount = screen.findPreference("syncAccount"); if (syncAccount != null) { if (TextUtils.isEmpty(username)) {
Preference appVersion = screen.findPreference("app_version"); screen.findPreference(Constants.PREF_POWER_SOURCE).setSummary(mPowerSource.getEntry()); String wifiSsidSummary = TextUtils.join(", ", mPreferences.getStringSet(Constants.PREF_WIFI_SSID_WHITELIST, new HashSet<>())); screen.findPreference(Constants.PREF_WIFI_SSID_WHITELIST).setSummary(TextUtils.isEmpty(wifiSsidSummary) ? getString(R.string.run_on_all_wifi_networks) : getString(R.string.run_on_whitelisted_wifi_networks, wifiSsidSummary) ); handleSocksProxyPreferenceChange(screen.findPreference(Constants.PREF_SOCKS_PROXY_ADDRESS), mPreferences.getString(Constants.PREF_SOCKS_PROXY_ADDRESS, "")); handleHttpProxyPreferenceChange(screen.findPreference(Constants.PREF_HTTP_PROXY_ADDRESS), mPreferences.getString(Constants.PREF_HTTP_PROXY_ADDRESS, ""));
private void populatePreferencesScreen(PreferenceScreen root) { populateScreenReporting((PreferenceScreen)root.findPreference("reportingScreen")); populateScreenNotification((PreferenceScreen)root.findPreference("notificationScreen")); populateScreenAdvanced((PreferenceScreen)root.findPreference("advancedScreen")); setupDependencies(root); }
private void updateMBRSize() { final PreferenceScreen screen = getPreferenceScreen(); final SharedPreferences preferences = getPreferenceManager().getSharedPreferences(); final String value = preferences.getString(SETTINGS_MBR_SIZE, String.valueOf(SETTINGS_DEFAULT_MBR_SIZE)); screen.findPreference(SETTINGS_MBR_SIZE).setSummary(value); } }
private void setDependency(PreferenceScreen root, String dependingKey, String dependsOnKey) { try { root.findPreference(dependingKey).setDependency(dependsOnKey); } catch (IllegalStateException e) { Timber.e("Preference dependency could not be setup from: " + dependingKey + " to " + dependsOnKey);} }
private void updateWheelSizeSummary() { final PreferenceScreen screen = getPreferenceScreen(); final SharedPreferences preferences = getPreferenceManager().getSharedPreferences(); final String value = preferences.getString(SETTINGS_WHEEL_SIZE, String.valueOf(SETTINGS_WHEEL_SIZE_DEFAULT)); screen.findPreference(SETTINGS_WHEEL_SIZE).setSummary(getString(R.string.csc_settings_wheel_diameter_summary, value)); } }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.xposed_prefs); setWorldReadable(); SwitchPreference hideAppIcon = (SwitchPreference) getPreferenceScreen().findPreference("hide_icon"); hideAppIcon.setOnPreferenceChangeListener(this); }