下面列出了怎么用android.preference.PreferenceCategory的API类实例代码及写法,或者点击链接到github查看源代码。
private void setupSimplePreferencesScreen() {
if (!isSimplePreferences(this)) {
return;
}
// In the simplified UI, fragments are not used at all and we instead
// use the older PreferenceActivity APIs.
// Add 'general' preferences.
addPreferencesFromResource(R.xml.pref_general);
// Add 'data and sync' preferences, and a corresponding header.
PreferenceCategory fakeHeader = new PreferenceCategory(this);
fakeHeader.setTitle(R.string.pref_header_server);
getPreferenceScreen().addPreference(fakeHeader);
addPreferencesFromResource(R.xml.pref_server);
// Bind the summaries of EditText/List/Dialog/Ringtone preferences to
// their values. When their values change, their summaries are updated
// to reflect the new value, per the Android Design guidelines.
bindPreferenceSummaryToValue(findPreference("server_custom_url"));
bindPreferenceSummaryToValue(findPreference("server_custom_sender_id"));
findPreference("general_reset").setOnPreferenceClickListener(sBindOnPreferenceClickListener);
findPreference("server_register").setOnPreferenceClickListener(sBindOnPreferenceClickListener);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.advanced_preferences);
advertisementsEnabled = (Preference) findPreference(getString(R.string.pref_disable_ads_key));
// Remove advertisements option
PreferenceGroup mCategory = (PreferenceCategory) findPreference("pref_advanced_category");
mCategory.removePreference(advertisementsEnabled);
ipChecker = (Preference) findPreference(getString(R.string.pref_ip_checker));
ipChecker.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
Intent ipCheckerActivity = new Intent(getActivity(), IpAddressCheckerActivity.class);
startActivity(ipCheckerActivity);
return true;
}
});
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mSharedPref = PreferenceManager.getDefaultSharedPreferences(getActivity());
setHasOptionsMenu(true);
addPreferencesFromResource(R.xml.list_preference);
mBlackList = (PreferenceCategory) findPreference(getString(R.string.cat_filterlist));
Set<String> entries = mSharedPref.getStringSet(getString(R.string.pref_blacklist), null);
if (entries == null) {
mBlackListEntries = new HashSet<String>();
} else {
mBlackListEntries = new HashSet<String>(entries);
}
for (String blackitem : mBlackListEntries) {
Preference test = new Preference(getActivity());
test.setTitle(blackitem);
mBlackList.addPreference(test);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
mPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
screen = (PreferenceScreen) findPreference("preferenceScreen");
category = (PreferenceCategory) findPreference("collection_category");
collectionMethod = findPreference("dex_collection_method");
showBridgeBattery = findPreference("showBridgeBattery");
watchcategory = (PreferenceCategory) findPreference("category");
bindPreferenceSummaryToValue(collectionMethod);
listenForChangeInSettings();
setCollectionPrefs();
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP_MR1)
private void fillDualSimList(PreferenceScreen preferenceScreen) {
PreferenceCategory category = (PreferenceCategory) preferenceScreen.findPreference("sms_category");
ListPreference preference = (ListPreference) category.findPreference(Preferences.DUALSIM_SIM);
List<String> simIds = new ArrayList<>();
List<String> simNames = new ArrayList<>();
simIds.add(String.valueOf(Preferences.VALUE_DEFAULT_SIM));
simNames.add(getString(R.string.sim_default));
SubscriptionManager subscriptionManager = SubscriptionManager.from(getActivity());
for (SubscriptionInfo subscriptionInfo : subscriptionManager.getActiveSubscriptionInfoList()) {
simIds.add(String.valueOf(subscriptionInfo.getSubscriptionId()));
simNames.add(getString(R.string.sim_name, subscriptionInfo.getSimSlotIndex() + 1, subscriptionInfo
.getDisplayName()));
}
preference.setEntries(simNames.toArray(new String[simNames.size()]));
preference.setEntryValues(simIds.toArray(new String[simIds.size()]));
preference.setDefaultValue(String.valueOf(Preferences.VALUE_DEFAULT_SIM));
preference.setSummary(preference.getEntry());
}
private void adjustHighlightingPrefs() {
PreferenceCategory customizeScanningCategory =
(PreferenceCategory) findPreference(R.string.pref_category_display_and_sound_key);
int[] highlightPrefKeys = {
R.string.pref_highlight_0_key,
R.string.pref_highlight_1_key,
R.string.pref_highlight_2_key,
R.string.pref_highlight_3_key,
R.string.pref_highlight_4_key
};
if (SwitchAccessPreferenceUtils.isGroupSelectionEnabled(getActivity())) {
// Configure the switch names. User-facing numbers start at 1
addPreferenceIfPreviouslyRemoved(customizeScanningCategory, R.string.pref_highlights_key);
for (int i = 0; i < highlightPrefKeys.length; i++) {
findPreference(highlightPrefKeys[i])
.setTitle(getString(R.string.option_scan_switch_format, i + 1));
}
removeAndSavePreference(customizeScanningCategory, R.string.pref_standard_highlight_key);
} else {
addPreferenceIfPreviouslyRemoved(
customizeScanningCategory, R.string.pref_standard_highlight_key);
removeAndSavePreference(customizeScanningCategory, R.string.pref_highlights_key);
}
}
private void setupSimplePreferencesScreen() {
if (!isSimplePreferences(this)) {
return;
}
// In the simplified UI, fragments are not used at all and we instead
// use the older PreferenceActivity APIs.
// Add 'general' preferences.
addPreferencesFromResource(R.xml.pref_general);
// Add 'data and sync' preferences, and a corresponding header.
PreferenceCategory fakeHeader = new PreferenceCategory(this);
fakeHeader.setTitle(R.string.pref_header_server);
getPreferenceScreen().addPreference(fakeHeader);
addPreferencesFromResource(R.xml.pref_server);
// Bind the summaries of EditText/List/Dialog/Ringtone preferences to
// their values. When their values change, their summaries are updated
// to reflect the new value, per the Android Design guidelines.
bindPreferenceSummaryToValue(findPreference("server_custom_url"));
bindPreferenceSummaryToValue(findPreference("server_custom_sender_id"));
findPreference("general_reset").setOnPreferenceClickListener(sBindOnPreferenceClickListener);
findPreference("server_register").setOnPreferenceClickListener(sBindOnPreferenceClickListener);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Accountant.getInstance(getActivity());
getActivity().setTitle(getString(R.string.media_settings));
addPreferencesFromResource(R.xml.media_preferences);
// Check whether to show the notification-ringer volume link setting.
AudioManager manager = (AudioManager) getActivity().getSystemService(Context.AUDIO_SERVICE);
RingerNotificationLink linkChecker = new RingerNotificationLink();
boolean isNotifRingLinked = linkChecker.apply(manager);
Preference link = findPreference("VolumePanel_linkNotifRinger");
link.setEnabled(!isNotifRingLinked);
if (isNotifRingLinked) {
PreferenceCategory category = (PreferenceCategory) findPreference("AudioMedia");
category.removePreference(link);
}
}
private void initGatewayEditTextPreference(Preference preference) {
if (preference instanceof PreferenceGroup) {
PreferenceGroup preferenceGroup = (PreferenceGroup) preference;
for (int i=0; i<preferenceGroup.getPreferenceCount(); i++) {
if (preferenceGroup.getPreference(i).getTitle().equals("Gateway")) {
PreferenceCategory preferenceCategory = (PreferenceCategory) preferenceGroup.getPreference(i);
initGatewayEditTextPreference(preferenceCategory.getPreference(0));
} else {
initGatewayEditTextPreference(preferenceGroup.getPreference(i));
}
}
} else if (preference instanceof EditTextPreference) {
// TODO wrong ClassCastException ?!?!
gatewayEditTextPreference = (GatewayEditTextPreference) preference;
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
// Remove from standard preferences if the flag ONLY_INTERNAL_STORAGE is false
if (!Config.ONLY_INTERNAL_STORAGE) {
PreferenceCategory mCategory = (PreferenceCategory) findPreference("security_options");
if (mCategory != null) {
Preference cleanCache = findPreference("clean_cache");
Preference cleanPrivateStorage = findPreference("clean_private_storage");
mCategory.removePreference(cleanCache);
mCategory.removePreference(cleanPrivateStorage);
}
}
Compatibility.removeUnusedPreferences(this);
if (!TextUtils.isEmpty(page)) {
openPreferenceScreen(page);
}
}
void initializeUI() {
// Allow click on home button
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
// Load settings from XML There is no non-deprecated way to do it on API Level 7
addPreferencesFromResource(R.xml.settings);
// Cache resource IDs
mRate = findPreference(getString(R.string.ratePref));
mWebsite = findPreference(getString(R.string.websitePref));
mContact = findPreference(getString(R.string.contactPref));
mAdvanced = findPreference(getString(R.string.advancedPref));
mTestAlert = findPreference(getString(R.string.selfTestPref));
mLifeshield = findPreference(getString(R.string.lifeshieldPref));
mMainCategory = (PreferenceCategory) findPreference(getString(R.string.mainCategoryPref));
mCitySelection = ((SearchableMultiSelectPreference) findPreference(getString(R.string.selectedCitiesPref)));
mZoneSelection = ((SearchableMultiSelectPreference) findPreference(getString(R.string.selectedZonesPref)));
mLanguageSelection = (ListPreference) findPreference(getString(R.string.langPref));
// Populate setting values
initializeSettings();
// Set up listeners
initializeListeners();
}
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
if(Build.VERSION.SDK_INT >= 21) {
CheckBoxPreference mediaButtons = (CheckBoxPreference) findPreference("mediaButtons");
if (mediaButtons != null) {
PreferenceCategory otherCategory = (PreferenceCategory) findPreference("otherSettings");
otherCategory.removePreference(mediaButtons);
}
}
int instance = this.getArguments().getInt(Constants.PREFERENCES_KEY_SERVER_INSTANCE, -1);
if (instance != -1) {
PreferenceScreen preferenceScreen = expandServer(instance);
setPreferenceScreen(preferenceScreen);
serverSettings.put(Integer.toString(instance), new ServerSettings(instance));
onInitPreferences(preferenceScreen);
}
}
/**
* Shows the simplified settings UI if the device configuration if the
* device configuration dictates that a simplified, single-pane UI should be
* shown.
*/
private void setupSimplePreferencesScreen() {
if (!isSimplePreferences(this)) {
return;
}
// In the simplified UI, fragments are not used at all and we instead
// use the older PreferenceActivity APIs.
// Add 'general' preferences.
addPreferencesFromResource(R.xml.pref_general);
// Add 'advanced' preferences, and a corresponding header.
PreferenceCategory fakeHeader = new PreferenceCategory(this);
fakeHeader.setTitle(R.string.pref_header_advanced);
getPreferenceScreen().addPreference(fakeHeader);
addPreferencesFromResource(R.xml.pref_advanced);
// Bind the summaries of EditText/List/Dialog/Ringtone preferences to
// their values. When their values change, their summaries are updated
// to reflect the new value, per the Android Design guidelines.
bindPreferenceSummaryToValue(findPreference("pref_defaultopts"));
// Advanced
bindPreferenceSummaryToValue(findPreference("pref_updateurl"));
bindPreferenceSummaryToValue(findPreference("pref_binaryloc"));
}
@Override
public void onReceive(Context context, Intent intent) {
final String packageName = intent.getStringExtra(OpenFitIntent.EXTRA_PACKAGE_NAME);
final String appName = intent.getStringExtra(OpenFitIntent.EXTRA_APP_NAME);
Log.d(LOG_TAG, "Recieved del application: "+appName+" : "+packageName);
appManager.delNotificationApp(packageName);
oPrefs.removeSet(packageName);
oPrefs.removeString(packageName);
PreferenceCategory category = (PreferenceCategory) findPreference("preference_category_apps");
Preference app = (Preference) findPreference(packageName);
category.removePreference(app);
// If no more preference in the category, restore the placeholder
if(category.getPreferenceCount() <= 0) {
category.addPreference(preference_apps_placeholder);
}
sendNotificationApplications();
}
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
//remove priority preference (not supported)
PreferenceCategory notificationCategory =
(PreferenceCategory) findPreference("pref_category_notification");
ListPreference priorityPreference =
(ListPreference) findPreference("pref_notification_priority");
notificationCategory.removePreference(priorityPreference);
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Accountant.getInstance(getActivity());
getActivity().setTitle(getString(R.string.media_settings));
addPreferencesFromResource(R.xml.media_preferences);
// Check whether to show the notification-ringer volume link setting.
AudioManager manager = (AudioManager) getActivity().getSystemService(Context.AUDIO_SERVICE);
RingerNotificationLink linkChecker = new RingerNotificationLink();
boolean isNotifRingLinked = linkChecker.apply(manager);
Preference link = findPreference("VolumePanel_linkNotifRinger");
link.setEnabled(!isNotifRingLinked);
if (isNotifRingLinked) {
PreferenceCategory category = (PreferenceCategory) findPreference("AudioMedia");
category.removePreference(link);
}
}
/**
* Shows the simplified settings UI if the device configuration if the
* device configuration dictates that a simplified, single-pane UI should be
* shown.
*/
private void setupSimplePreferencesScreen() {
if (!isSimplePreferences(this)) {
return;
}
// In the simplified UI, fragments are not used at all and we instead
// use the older PreferenceActivity APIs.
// Add 'general' preferences.
addPreferencesFromResource(R.xml.pref_general);
// Add 'notifications' preferences, and a corresponding header.
PreferenceCategory fakeHeader = new PreferenceCategory(this);
fakeHeader.setTitle(org.developfreedom.logmein.R.string.pref_header_notifications);
getPreferenceScreen().addPreference(fakeHeader);
addPreferencesFromResource(org.developfreedom.logmein.R.xml.pref_notification);
}
/**
* Shows the simplified settings UI if the device configuration if the
* device configuration dictates that a simplified, single-pane UI should be
* shown.
*/
private void setupSimplePreferencesScreen() {
if (!isSimplePreferences(this)) {
return;
}
// In the simplified UI, fragments are not used at all and we instead
// use the older PreferenceActivity APIs.
/*Empty for now. Can be used for general settings. Needs to be set, otherwise
*getPreferenceScreen() returns null.
*/
addPreferencesFromResource(R.xml.pref_general);
// Add 'sharing' preferences, and a corresponding header.
PreferenceCategory fakeHeader = new PreferenceCategory(this);
fakeHeader.setTitle(R.string.pref_header_sharing);
getPreferenceScreen().addPreference(fakeHeader);
addPreferencesFromResource(R.xml.pref_sharing);
// Bind the summaries of EditText/List/Dialog preferences to
// their values. When their values change, their summaries are updated
// to reflect the new value, per the Android Design guidelines.
bindPreferenceSummaryToValue(findPreference(getString(R.string.key_pref_ssid)));
bindPreferenceSummaryToValue(findPreference(getString(R.string.key_pref_pass)));
}
private void initSummary(Preference p) {
if (p instanceof PreferenceCategory) {
PreferenceCategory pCat = (PreferenceCategory) p;
for (int i = 0; i < pCat.getPreferenceCount(); i++) {
initSummary(pCat.getPreference(i));
}
} else if (p instanceof PreferenceScreen) {
PreferenceScreen pSc = (PreferenceScreen) p;
for (int i = 0; i < pSc.getPreferenceCount(); i++) {
initSummary(pSc.getPreference(i));
}
} else {
updatePrefSummary(p);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
bindPreferencesSummaryToValue(getPreferenceScreen());
mPrefCategoryWatch = (PreferenceCategory)findPreference(getString(R.string.preference_category_watch_key));
fCurrentWearSettings = new WearSettings();
fCurrentWearSettings.loadFromPreferences(this, PreferenceManager.getDefaultSharedPreferences(this));
mWifiNamePref = ((EditTextPreference)findPreference(getString(R.string.preference_wifi_name_key)));
mWifiPassPref = ((EditTextPreference)findPreference(getString(R.string.preference_wifi_password_key)));
Preference version = findPreference("preference_version_number");
version.setTitle(BuildConfig.VERSION_NAME);
version.setSummary(BuildConfig.FLAVOR + " " + BuildConfig.BUILD_TYPE);
}
private void addMonitorApp(String pkg) {
if (TextUtils.isEmpty(pkg)) {
return;
}
PreferenceManager manager = getPreferenceManager();
try {
PreferenceScreen screen = (PreferenceScreen) RefUtil.callDeclaredMethod(manager,
"inflateFromResource",
new Class[]{Context.class, int.class, PreferenceScreen.class},
getActivity(), R.xml.prefs_monitor_apps, null);
screen.setKey(pkg);
screen.setTitle(pkg);
screen.setSummary(getMonitorAppSummary(pkg, null));
PreferenceGroup appConfigPref = (PreferenceGroup) screen.findPreference("monitor_app_config_pref");
appConfigPref.setTitle(pkg);
Preference titleViewIdPref = appConfigPref.findPreference("title_view_id_pref");
titleViewIdPref.setKey(GlobalConfig.getSharedPrefKeyForTitleId(pkg));
titleViewIdPref.getExtras().putString(KEY_PREF_EXTRA, pkg);
titleViewIdPref.setOnPreferenceChangeListener(mOnPreferenceChangeListener);
Preference contentViewIdPref = appConfigPref.findPreference("content_view_id_pref");
contentViewIdPref.setKey(GlobalConfig.getSharedPrefKeyForContentId(pkg));
contentViewIdPref.getExtras().putString(KEY_PREF_EXTRA, pkg);
contentViewIdPref.setOnPreferenceChangeListener(mOnPreferenceChangeListener);
PreferenceCategory container = (PreferenceCategory)
getPreferenceManager().findPreference("monitor_apps_pref");
container.addPreference(screen);
} catch (Exception e) {
LogWriter.e(TAG, "Add monitor ppp to preference error!", e);
}
}
private void setMainGroupTitle(String name) {
PreferenceCategory pc = (PreferenceCategory) findPreference("main_category");
if (pc != null) {
if (name.length() > 0) {
pc.setTitle(name);
} else {
pc.setTitle(R.string.new_entry);
}
} else {
Log.e("SetupActivity.setTitle", "Cannot find main_category");
}
}
/**
* Adds a generic {@link android.preference.Preference.OnPreferenceChangeListener} to update the preferences with {@link Pref}.
* It does that recursively for every Preference contained in the supplied {@link PreferenceGroup}.
* This is what you get, when customizing too much stuff.
*
* @param preferenceGroup the current {@link PreferenceGroup}
*/
private static void addOnPreferenceChangeListeners(PreferenceGroup preferenceGroup) {
for (int i = 0; i < preferenceGroup.getPreferenceCount(); i++) {
Preference p = preferenceGroup.getPreference(i);
if (p instanceof PreferenceCategory) {
addOnPreferenceChangeListeners((PreferenceCategory) p);
} else {
setOnPreferenceChangeListener(p);
}
}
}
private void emptyAndHidePreference(int preferenceKey) {
Preference preference = findPreference(getString(preferenceKey));
if (preference instanceof PreferenceCategory)
emptyAndHidePreferenceCategory(preferenceKey);
else if (preference instanceof PreferenceScreen)
emptyAndHidePreferenceScreen(preferenceKey);
}
private void emptyAndHidePreferenceCategory(int preferenceKey) {
Preference preference = findPreference(getString(preferenceKey));
if (!(preference instanceof PreferenceCategory))
return;
PreferenceCategory preferenceCategory = (PreferenceCategory) preference;
preferenceCategory.removeAll();
hidePreference(preferenceCategory);
}
private void initAccounts() {
PreferenceCategory accounts = (PreferenceCategory) findPreference(getString(R.string.pref_sipaccounts_key));
accounts.removeAll();
// Get already configured extra accounts
int defaultAccountID = mPrefs.getDefaultAccountIndex();
int nbAccounts = mPrefs.getAccountCount();
for (int i = 0; i < nbAccounts; i++) {
final int accountId = i;
// For each, add menus to configure it
String username = mPrefs.getAccountUsername(accountId);
String domain = mPrefs.getAccountDomain(accountId);
LedPreference account = new LedPreference(getActivity());
if (username == null) {
account.setTitle(getString(R.string.pref_sipaccount));
} else {
account.setTitle(username + "@" + domain);
}
if (defaultAccountID == i) {
account.setSummary(R.string.default_account_flag);
}
account.setOnPreferenceClickListener(new OnPreferenceClickListener()
{
public boolean onPreferenceClick(Preference preference) {
LinphoneActivity.instance().displayAccountSettings(accountId);
return false;
}
});
updateAccountLed(account, username, domain, mPrefs.isAccountEnabled(i));
accounts.addPreference(account);
}
}
@Override
public void onAccountCreatorPasswordUpdated(LinphoneAccountCreator accountCreator, LinphoneAccountCreator.Status status) {
progress.dismiss();
if (status.equals(LinphoneAccountCreator.Status.Ok)) {
mPrefs.setAccountPassword(n, accountCreator.getPassword());
PreferenceCategory account = (PreferenceCategory) getPreferenceScreen().findPreference(getString(R.string.pref_sipaccount_key));
((EditTextPreference) account.getPreference(2)).setText(mPrefs.getAccountPassword(n));
LinphoneUtils.displayErrorAlert(getString(R.string.pref_password_changed), LinphoneActivity.instance());
} else {
LinphoneUtils.displayErrorAlert(LinphoneUtils.errorForStatus(status), LinphoneActivity.instance());
}
}
private List<Preference> getPreferenceList(Preference p, ArrayList<Preference> list) {
if( p instanceof PreferenceCategory || p instanceof PreferenceScreen) {
PreferenceGroup pGroup = (PreferenceGroup) p;
int pCount = pGroup.getPreferenceCount();
for(int i = 0; i < pCount; i++) {
getPreferenceList(pGroup.getPreference(i), list); // recursive call
}
} else if (p != null) {
list.add(p);
}
return list;
}
public static void init(final XSharedPreferences prefs, final ClassLoader classLoader) {
try {
final Class<?> classVoiceIoSettings = XposedHelpers.findClass(CLASS_VOICEIO_SETTINGS, classLoader);
if (DEBUG) log("replacing populateOrRemovePreferences method");
XposedHelpers.findAndHookMethod(classVoiceIoSettings, "populateOrRemovePreferences",
new XC_MethodReplacement() {
@Override
protected Object replaceHookedMethod(MethodHookParam param) throws Throwable {
boolean hasRecognizer = (Boolean) XposedHelpers.callMethod(param.thisObject,
"populateOrRemoveRecognizerPrefs");
boolean hasTts = (Boolean) XposedHelpers.callMethod(param.thisObject,
"populateOrRemoveTtsPrefs");
if (DEBUG) log("populateOrRemovePreferences: hasRecognizer=" + hasRecognizer + "; hasTts=" + hasTts);
if (hasRecognizer || hasTts) {
return null;
}
PreferenceFragment fragment = (PreferenceFragment) XposedHelpers.getObjectField(
param.thisObject, "mFragment");
PreferenceCategory prefCat = (PreferenceCategory) XposedHelpers.getObjectField(
param.thisObject, "mVoiceCategory");
if (fragment != null && prefCat != null) {
fragment.getPreferenceScreen().removePreference(prefCat);
}
return null;
}
});
}
catch (Throwable t) {
XposedBridge.log(t);
}
}
@Override
protected void loadPrefs() {
// Add preferences
addPreferencesFromResource(R.xml.tb_pref_desktop_mode);
// Set OnClickListeners for certain preferences
findPreference(PREF_DESKTOP_MODE).setOnPreferenceClickListener(this);
findPreference(PREF_SET_LAUNCHER_DEFAULT).setOnPreferenceClickListener(this);
findPreference(PREF_PRIMARY_LAUNCHER).setOnPreferenceClickListener(this);
findPreference(PREF_DIM_SCREEN).setOnPreferenceClickListener(this);
findPreference(PREF_ENABLE_ADDITIONAL_SETTINGS).setOnPreferenceClickListener(this);
if(!U.isShowHideNavbarSupported()) {
PreferenceCategory category = (PreferenceCategory) findPreference(PREF_ADDITIONAL_SETTINGS);
category.removePreference(findPreference(PREF_AUTO_HIDE_NAVBAR_DESKTOP_MODE));
}
SharedPreferences pref = U.getSharedPreferences(getActivity());
if(pref.getBoolean(PREF_LAUNCHER, false)) {
findPreference(PREF_DESKTOP_MODE).setEnabled(false);
U.showToastLong(getActivity(), R.string.tb_disable_home_setting);
} else
bindPreferenceSummaryToValue(findPreference(PREF_DESKTOP_MODE));
bindPreferenceSummaryToValue(findPreference(PREF_DISPLAY_DENSITY));
DisplayManager manager = (DisplayManager) getActivity().getSystemService(Context.DISPLAY_SERVICE);
manager.registerDisplayListener(listener, null);
updateAdditionalSettings();
}