コード例 #1
0
ファイル: SettingsActivity.java プロジェクト: M2ck/busybox
 /**
  * Recursive set summaries
  *
  * @param pg group
  */
 private void initSummaries(PreferenceGroup pg) {
   for (int i = 0; i < pg.getPreferenceCount(); ++i) {
     Preference p = pg.getPreference(i);
     if (p instanceof PreferenceGroup) initSummaries((PreferenceGroup) p);
     else setSummary(p, false);
     if (p instanceof PreferenceScreen) p.setOnPreferenceClickListener(this);
   }
 }
コード例 #2
0
 /** Set the summaries of all preferences */
 private void initSummaries(PreferenceGroup pg) {
   for (int i = 0; i < pg.getPreferenceCount(); ++i) {
     Preference p = pg.getPreference(i);
     if (p instanceof PreferenceGroup)
       // Recursion
       this.initSummaries((PreferenceGroup) p);
     else this.setSummary(p);
   }
 }
コード例 #3
0
 private void initSummary(Preference p) {
   if (p instanceof PreferenceGroup) {
     PreferenceGroup pGrp = (PreferenceGroup) p;
     for (int i = 0; i < pGrp.getPreferenceCount(); i++) {
       initSummary(pGrp.getPreference(i));
     }
   } else {
     updatePrefSummary(p);
   }
 }
 /** Recursively go through settings and fill entries and summaries of our preferences. */
 private void fillEntriesAndSummaries(PreferenceGroup group) {
   for (int i = 0; i < group.getPreferenceCount(); ++i) {
     Preference pref = group.getPreference(i);
     if (pref instanceof PreferenceGroup) {
       fillEntriesAndSummaries((PreferenceGroup) pref);
     }
     setSummary(pref);
     setEntries(pref);
   }
 }
 private void unregisterPrefs(PreferenceGroup group) {
   TunerService tunerService = TunerService.get(getContext());
   final int N = group.getPreferenceCount();
   for (int i = 0; i < N; i++) {
     Preference pref = group.getPreference(i);
     if (pref instanceof TunerService.Tunable) {
       tunerService.removeTunable((TunerService.Tunable) pref);
     } else if (pref instanceof PreferenceGroup) {
       registerPrefs((PreferenceGroup) pref);
     }
   }
 }
  protected void onCreate(Bundle savedInstanceState, int titleRes, int layout, int preferencesXml) {
    super.onCreate(savedInstanceState);

    packageName = getIntent().getStringExtra(EXTRA_PACKAGE_NAME);

    // get package title
    try {
      ApplicationInfo ai = getPackageManager().getApplicationInfo(packageName, 0);
      String appName = getPackageManager().getApplicationLabel(ai).toString();
      if (appName == null) appName = packageName;
      setTitle(appName + " - " + getString(titleRes));
    } catch (PackageManager.NameNotFoundException e) {
      setTitle(packageName + " - " + getString(titleRes));
    }

    LayoutInflater inflater = getLayoutInflater();
    View v = inflater.inflate(layout, null);
    setContentView(v);

    addPreferencesFromResource(preferencesXml);
    PreferenceScreen prefScreen = getPreferenceScreen();
    SharedPreferences sharedPrefs =
        PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

    for (int i = 0; i < prefScreen.getPreferenceCount(); i++) {
      PreferenceGroup prefGroup = (PreferenceGroup) prefScreen.getPreference(i);

      for (int j = 0; j < prefGroup.getPreferenceCount(); j++) {
        Preference pref = prefGroup.getPreference(j);
        String key = packageName + "." + pref.getKey();

        if (pref instanceof ListPreference) {
          ListPreference listPref = ((ListPreference) pref);
          String globalValue = listPref.getValue();
          String currValue = sharedPrefs.getString(key, globalValue);

          listPref.setKey(key);
          listPref.setValue(currValue);
        } else if (pref instanceof CheckBoxPreference) {
          CheckBoxPreference checkPref = (CheckBoxPreference) pref;
          boolean globalValue = checkPref.isChecked();
          boolean currValue = sharedPrefs.getBoolean(key, globalValue);
          checkPref.setKey(key);
          checkPref.setChecked(currValue);
        }
      }
    }

    // apply card layout
    CardPreferenceFragment.applyLayoutToPreferences(prefScreen);

    getActionBar().setDisplayHomeAsUpEnabled(true);
  }
コード例 #7
0
ファイル: SettingsActivity.java プロジェクト: mrcmunir/Play-
    @Override
    public void onDestroy() {
      PreferenceGroup prefGroup = getPreferenceScreen();
      for (int i = 0; i < prefGroup.getPreferenceCount(); i++) {
        Preference pref = prefGroup.getPreference(i);
        if (pref instanceof CheckBoxPreference) {
          CheckBoxPreference checkBoxPref = (CheckBoxPreference) pref;
          SettingsManager.setPreferenceBoolean(checkBoxPref.getKey(), checkBoxPref.isChecked());
        }
      }

      super.onDestroy();
    }
 private void registerPrefs(PreferenceGroup group) {
   TunerService tunerService = TunerService.get(getContext());
   final int N = group.getPreferenceCount();
   for (int i = 0; i < N; i++) {
     Preference pref = group.getPreference(i);
     if (pref instanceof StatusBarSwitch) {
       tunerService.addTunable(
           (TunerService.Tunable) pref, StatusBarIconController.ICON_BLACKLIST);
     } else if (pref instanceof PreferenceGroup) {
       registerPrefs((PreferenceGroup) pref);
     }
   }
 }
コード例 #9
0
ファイル: SettingsActivity.java プロジェクト: mrcmunir/Play-
    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      addPreferencesFromResource(R.xml.settings_emu_fragment);

      PreferenceGroup prefGroup = getPreferenceScreen();
      for (int i = 0; i < prefGroup.getPreferenceCount(); i++) {
        Preference pref = prefGroup.getPreference(i);
        if (pref instanceof CheckBoxPreference) {
          CheckBoxPreference checkBoxPref = (CheckBoxPreference) pref;
          checkBoxPref.setChecked(SettingsManager.getPreferenceBoolean(checkBoxPref.getKey()));
        }
      }
    }
コード例 #10
0
 private InputMethodSubtype[] getSubtypes() {
   final PreferenceGroup group = getPreferenceScreen();
   final ArrayList<InputMethodSubtype> subtypes = new ArrayList<InputMethodSubtype>();
   final int count = group.getPreferenceCount();
   for (int i = 0; i < count; i++) {
     final Preference pref = group.getPreference(i);
     if (pref instanceof SubtypePreference) {
       final SubtypePreference subtypePref = (SubtypePreference) pref;
       // We should not save newly adding subtype to preference because it is incomplete.
       if (subtypePref.isIncomplete()) continue;
       subtypes.add(subtypePref.getSubtype());
     }
   }
   return subtypes.toArray(new InputMethodSubtype[subtypes.size()]);
 }
コード例 #11
0
ファイル: Setting.java プロジェクト: 594904292/bangbangmang
 private void bind(PreferenceGroup group) {
   SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
   for (int i = 0; i < group.getPreferenceCount(); i++) {
     Preference p = group.getPreference(i);
     if (p instanceof PreferenceGroup) {
       bind((PreferenceGroup) p);
     } else {
       if (p instanceof CheckBoxPreference) {;
       } else {
         Object val = sp.getAll().get(p.getKey());
         p.setSummary(val == null ? "" : ("" + val));
         p.setOnPreferenceChangeListener(this);
       }
     }
   }
 }
    /**
     * Recursively traverses the tree from the given group as the route and tries to delete the
     * preference. Traversal stops once the preference was found and removed.
     */
    private boolean recursiveDelete(PreferenceGroup group, Preference preference) {
      if (group.removePreference(preference)) {
        // Removal was successful.
        return true;
      }

      for (int i = 0; i < group.getPreferenceCount(); ++i) {
        Preference pref = group.getPreference(i);
        if (pref instanceof PreferenceGroup) {
          if (recursiveDelete((PreferenceGroup) pref, preference)) {
            return true;
          }
        }
      }
      return false;
    }
コード例 #13
0
  private void updateGesturesState(final PreferenceGroup group) {
    SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);

    for (int i = 0; i < group.getPreferenceCount(); i++) {
      Preference item = group.getPreference(i);
      String key = item.getKey();
      String keyValue = pref.getString(key, "NONE");

      item.setTitle(getArrowString(key.replace("settings_gestures_", "").replace('_', ',')));
      if (mKeyValuesList.contains(keyValue)) {
        int index = mKeyValuesList.indexOf(keyValue);
        // Log.v("KeyboardsSettingsActivity", "set button " + i + " : " + mKeyDefinesList.get(index)
        // + ", keyValue: " + keyValue + ", key: " + item.getKey());
        item.setSummary(mKeyDefinesList.get(index));
      }
      item.setOnPreferenceChangeListener(mButtonChangeListener);
    }
  }
コード例 #14
0
 private void updateKeys(PreferenceGroup parent) {
   for (int i = 0; i < parent.getPreferenceCount(); i++) {
     Preference pref = parent.getPreference(i);
     boolean changed = false;
     if (pref.getKey() != null && pref.getKey().contains("%d")) {
       pref.setKey(String.format(pref.getKey(), mAppWidgetId));
       changed = true;
     }
     if (pref.getDependency() != null && pref.getDependency().contains("%d")) {
       pref.setDependency(String.format(pref.getDependency(), mAppWidgetId));
       changed = true;
     }
     if (changed) {
       reloadPreference(pref);
     }
     if (pref instanceof PreferenceGroup) {
       updateKeys((PreferenceGroup) pref);
     }
   }
 }
コード例 #15
0
  private void initGroups(PreferenceGroup preferences) {
    final int count = preferences.getPreferenceCount();
    for (int i = 0; i < count; i++) {
      Preference pref = preferences.getPreference(i);
      if (pref instanceof PreferenceGroup) initGroups((PreferenceGroup) pref);
      else {
        pref.setOnPreferenceChangeListener(this);

        // Some Preference UI elements are not actually preferences,
        // but they require a key to work correctly. For example,
        // "Clear private data" requires a key for its state to be
        // saved when the orientation changes. It uses the
        // "android.not_a_preference.privacy.clear" key - which doesn't
        // exist in Gecko - to satisfy this requirement.
        String key = pref.getKey();
        if (key != null && !key.startsWith(NON_PREF_PREFIX)) {
          mPreferencesList.add(pref.getKey());
        }
      }
    }
  }
コード例 #16
0
  /**
   * Since the "%s" summary is currently broken, this sets the preference change listener for all
   * {@link ListPreference} views to fill in the summary with the current entry value.
   */
  private void fixListSummaries(PreferenceGroup group) {
    if (group == null) {
      return;
    }

    final int count = group.getPreferenceCount();

    for (int i = 0; i < count; i++) {
      final Preference preference = group.getPreference(i);

      if (preference instanceof PreferenceGroup) {
        fixListSummaries((PreferenceGroup) preference);
      } else if (preference instanceof ListPreference) {
        // First make sure the current summary is correct, then set the
        // listener. This is necessary for summaries to show correctly
        // on SDKs < 14.
        mPreferenceChangeListener.onPreferenceChange(
            preference, ((ListPreference) preference).getValue());

        preference.setOnPreferenceChangeListener(mPreferenceChangeListener);
      }
    }
  }
コード例 #17
0
  protected void initializePreference(Preference preference) {
    if (preference instanceof PreferenceGroup) {
      PreferenceGroup group = (PreferenceGroup) preference;
      for (int i = 0; i < group.getPreferenceCount(); i++) {
        initializePreference(group.getPreference(i));
      }
      updatePreferences(group, null);
    } else {
      Object value = null;
      if (preference instanceof ListPreference) {
        value = ((ListPreference) preference).getValue();
      } else if (preference instanceof CheckBoxPreference) {
        value = ((CheckBoxPreference) preference).isChecked();
      } else if (preference instanceof EditTextPreference) {
        value = ((EditTextPreference) preference).getText();
      } else if (preference instanceof RingtonePreference) {
        value =
            PreferenceManager.getDefaultSharedPreferences(preference.getContext())
                .getString(preference.getKey(), null);
      } else if (preference instanceof TimePreference) {
        value = ((TimePreference) preference).getMillisOfDay();
      }

      updatePreferences(preference, value);

      if (preference.getOnPreferenceChangeListener() == null) {
        preference.setOnPreferenceChangeListener(
            new OnPreferenceChangeListener() {
              @Override
              public boolean onPreferenceChange(Preference myPreference, Object newValue) {
                updatePreferences(myPreference, newValue);
                return true;
              }
            });
      }
    }
  }
コード例 #18
0
  private void fillList(int simId) {
    String where = getFillListQuery();
    Xlog.e(TAG, "fillList where: " + where);

    if (mUri == null) {
      Xlog.e(TAG, "fillList, mUri null !");
      finish();
      return;
    }
    Cursor cursor =
        getContentResolver()
            .query(
                mUri, new String[] {"_id", "name", "apn", "type", "sourcetype"}, where, null, null);

    PreferenceGroup apnList = (PreferenceGroup) findPreference("apn_list");
    apnList.removeAll();

    ArrayList<Preference> mmsApnList = new ArrayList<Preference>();

    boolean keySetChecked = false;

    mSelectedKey = getSelectedApnKey();
    Xlog.d(TAG, "fillList : mSelectedKey = " + mSelectedKey);

    cursor.moveToFirst();

    while (!cursor.isAfterLast()) {
      String type = cursor.getString(TYPES_INDEX);

      if (mIsTetherApn && !TETHER_TYPE.equals(type)) {
        cursor.moveToNext();
        continue;
      }

      String name = cursor.getString(NAME_INDEX);
      String apn = cursor.getString(APN_INDEX);
      String key = cursor.getString(ID_INDEX);

      int sourcetype = cursor.getInt(SOURCE_TYPE_INDEX);

      if ("cmmail".equals(apn) && sourcetype == 0) {
        cursor.moveToNext();
        continue;
      }
      if (RCSE_TYPE.equals(type) && mRcseExt != null) {
        if (!mRcseExt.isRcseOnlyApnEnabled()) {
          cursor.moveToNext();
          Xlog.d(TAG, "Vodafone not matched");
          continue;
        } else {
          Xlog.d(TAG, "Vodafone matched");
        }
      }

      ApnPreference pref = new ApnPreference(this);

      pref.setSimId(simId); // set pre sim id info to the ApnEditor
      pref.setKey(key);
      pref.setTitle(name);
      pref.setSummary(apn);
      pref.setPersistent(false);
      pref.setSourceType(sourcetype);
      pref.setOnPreferenceChangeListener(this);

      boolean isEditable = mExt.isAllowEditPresetApn(type, apn, mNumeric);
      pref.setApnEditable((sourcetype != 0) || isEditable);

      // All tether apn will be selectable for otthers , mms will not be selectable.
      boolean selectable = true;
      if (TETHER_TYPE.equals(type)) {
        selectable = mIsTetherApn;
      } else {
        selectable = !"mms".equals(type);
      }
      pref.setSelectable(selectable);

      if (selectable) {
        if ((mSelectedKey != null) && mSelectedKey.equals(key)) {
          pref.setChecked();
          keySetChecked = true;
          Xlog.d(TAG, "apn key: " + key + " set.");
        }
        apnList.addPreference(pref);
        Xlog.i(TAG, "key:  " + key + " added!");
      } else {
        mmsApnList.add(pref);
      }
      cursor.moveToNext();
    }
    cursor.close();

    mSelectableApnCount = apnList.getPreferenceCount();
    // if no key selected, choose the 1st one.
    if (!keySetChecked && mSelectableApnCount > 0) {
      int[] sourceTypeArray = new int[mSelectableApnCount];
      for (int i = 0; i < mSelectableApnCount; i++) {
        sourceTypeArray[i] = ((ApnPreference) apnList.getPreference(i)).getSourceType();
      }
      ApnPreference apnPref =
          (ApnPreference) mExt.getApnPref(apnList, mSelectableApnCount, sourceTypeArray);
      if (apnPref != null) {
        setSelectedApnKey(apnPref.getKey());
        apnPref.setChecked();
        Xlog.i(TAG, "Key does not match.Set key: " + apnPref.getKey() + ".");
      }
    }

    if (!mIsTetherApn) {
      for (Preference preference : mmsApnList) {
        apnList.addPreference(preference);
      }
    }
    getPreferenceScreen().setEnabled(getScreenEnableState());
  }
コード例 #19
0
  /**
   * Recursively loop through a PreferenceGroup. Initialize native Android prefs, and build a list
   * of Gecko preferences in the passed in prefs array
   *
   * @param preferences The android.preference.PreferenceGroup to initialize
   * @param prefs An ArrayList to fill with Gecko preferences that need to be initialized
   * @return The integer id for the PrefsHelper.PrefHandlerBase listener added to monitor changes to
   *     Gecko prefs.
   */
  private void setupPreferences(PreferenceGroup preferences, ArrayList<String> prefs) {
    for (int i = 0; i < preferences.getPreferenceCount(); i++) {
      Preference pref = preferences.getPreference(i);
      String key = pref.getKey();
      if (pref instanceof PreferenceGroup) {
        // If no datareporting is enabled, remove UI.
        if (PREFS_DATA_REPORTING_PREFERENCES.equals(key)) {
          if (!AppConstants.MOZ_DATA_REPORTING) {
            preferences.removePreference(pref);
            i--;
            continue;
          }
        } else if (pref instanceof PanelsPreferenceCategory) {
          mPanelsPreferenceCategory = (PanelsPreferenceCategory) pref;
        }
        setupPreferences((PreferenceGroup) pref, prefs);
      } else {
        pref.setOnPreferenceChangeListener(this);
        if (!AppConstants.MOZ_UPDATER && PREFS_UPDATER_AUTODOWNLOAD.equals(key)) {
          preferences.removePreference(pref);
          i--;
          continue;
        } else if (AppConstants.RELEASE_BUILD && PREFS_DISPLAY_REFLOW_ON_ZOOM.equals(key)) {
          // Remove UI for reflow on release builds.
          preferences.removePreference(pref);
          i--;
          continue;
        } else if (!AppConstants.MOZ_TELEMETRY_REPORTING && PREFS_TELEMETRY_ENABLED.equals(key)) {
          preferences.removePreference(pref);
          i--;
          continue;
        } else if (!AppConstants.MOZ_SERVICES_HEALTHREPORT
            && (PREFS_HEALTHREPORT_UPLOAD_ENABLED.equals(key)
                || PREFS_HEALTHREPORT_LINK.equals(key))) {
          preferences.removePreference(pref);
          i--;
          continue;
        } else if (!AppConstants.MOZ_CRASHREPORTER && PREFS_CRASHREPORTER_ENABLED.equals(key)) {
          preferences.removePreference(pref);
          i--;
          continue;
        } else if (AppConstants.RELEASE_BUILD && PREFS_GEO_REPORTING.equals(key)) {
          // We don't build wifi/cell tower collection in release builds, so hide the UI.
          preferences.removePreference(pref);
          i--;
          continue;
        } else if (PREFS_DEVTOOLS_REMOTE_ENABLED.equals(key)) {
          final Context thisContext = this;
          pref.setOnPreferenceClickListener(
              new OnPreferenceClickListener() {
                @Override
                public boolean onPreferenceClick(Preference preference) {
                  // Display toast to remind setting up tcp forwarding.
                  if (((CheckBoxPreference) preference).isChecked()) {
                    Toast.makeText(
                            thisContext,
                            R.string.devtools_remote_debugging_forward,
                            Toast.LENGTH_SHORT)
                        .show();
                  }
                  return true;
                }
              });
        } else if (PREFS_RESTORE_SESSION.equals(key)) {
          // Set the summary string to the current entry. The summary
          // for other list prefs will be set in the PrefsHelper
          // callback, but since this pref doesn't live in Gecko, we
          // need to handle it separately.
          ListPreference listPref = (ListPreference) pref;
          CharSequence selectedEntry = listPref.getEntry();
          listPref.setSummary(selectedEntry);
          continue;
        } else if (PREFS_SYNC.equals(key) && GeckoProfile.get(this).inGuestMode()) {
          // Don't show sync prefs while in guest mode.
          preferences.removePreference(pref);
          i--;
          continue;
        } else if (PREFS_SEARCH_RESTORE_DEFAULTS.equals(key)) {
          pref.setOnPreferenceClickListener(
              new OnPreferenceClickListener() {
                @Override
                public boolean onPreferenceClick(Preference preference) {
                  GeckoPreferences.this.restoreDefaultSearchEngines();
                  return true;
                }
              });
        } else if (PREFS_HOME_ADD_PANEL.equals(key)) {
          pref.setOnPreferenceClickListener(
              new OnPreferenceClickListener() {
                @Override
                public boolean onPreferenceClick(Preference preference) {
                  Intent dialogIntent = new Intent(GeckoPreferences.this, HomePanelPicker.class);
                  startActivityForResult(dialogIntent, HomePanelPicker.REQUEST_CODE_ADD_PANEL);
                  return true;
                }
              });
        }

        // Some Preference UI elements are not actually preferences,
        // but they require a key to work correctly. For example,
        // "Clear private data" requires a key for its state to be
        // saved when the orientation changes. It uses the
        // "android.not_a_preference.privacy.clear" key - which doesn't
        // exist in Gecko - to satisfy this requirement.
        if (key != null && !key.startsWith(NON_PREF_PREFIX)) {
          prefs.add(key);
        }
      }
    }
  }