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);
      }
    }
Esempio n. 2
0
  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);
    }
  }