private void populatePreferences() { final PackageManager packageManager = getActivity().getPackageManager(); List<PackageInfo> allInstalledPackages = packageManager.getInstalledPackages(PackageManager.GET_META_DATA); PreferenceScreen screen = getPreferenceScreen(); Collections.sort( allInstalledPackages, new Comparator<PackageInfo>() { @Override public int compare(PackageInfo p1, PackageInfo p2) { return packageManager .getApplicationLabel(p1.applicationInfo) .toString() .compareTo(packageManager.getApplicationLabel(p2.applicationInfo).toString()); } }); for (PackageInfo p : allInstalledPackages) { if (packageManager.getLaunchIntentForPackage(p.packageName) == null) { continue; } CheckBoxPreference pref = new CheckBoxPreference(screen.getContext()); pref.setKey(getString(R.string.pref_app_notif_base) + "-" + p.packageName); pref.setTitle(packageManager.getApplicationLabel(p.applicationInfo)); pref.setIcon(packageManager.getApplicationIcon(p.applicationInfo)); pref.setChecked( PreferenceManager.getDefaultSharedPreferences(getActivity()) .getBoolean(getString(R.string.pref_app_notif_base) + "-" + p.packageName, true)); pref.setOnPreferenceChangeListener( new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { Bundle b = new Bundle(); b.putString( getString(R.string.analytics_param_app_name), preference.getTitle().toString()); String newValueStr = newValue.toString().equals("true") ? "enabled" : "disabled"; b.putString(getString(R.string.analytics_param_new_value), newValueStr); ((PreferencesActivity) getActivity()) .firebaseAnalytics.logEvent(getString(R.string.analytics_tap_app), b); return true; } }); screen.addPreference(pref); } }
private static void addPreferences(PreferenceScreen ps) { Context cx = ps.getContext(); Resources r = cx.getResources(); ps.setOrderingAsAdded(true); for (Codec c : codecs) { ListPreference l = new ListPreference(cx); l.setEntries(r.getStringArray(R.array.compression_display_values)); l.setEntryValues(r.getStringArray(R.array.compression_values)); l.setKey(c.key()); l.setPersistent(true); l.setEnabled(!c.isFailed()); c.setListPreference(l); l.setSummary(l.getEntry()); l.setTitle(c.getTitle()); ps.addPreference(l); } }