コード例 #1
0
  @Override
  public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
    final String key = preference.getKey();

    final LockPatternUtils lockPatternUtils = mChooseLockSettingsHelper.utils();
    if (KEY_UNLOCK_SET_OR_CHANGE.equals(key)) {
      startFragment(
          this,
          "com.android.settings.ChooseLockGeneric$ChooseLockGenericFragment",
          SET_OR_CHANGE_LOCK_METHOD_REQUEST,
          null);
    } else if (KEY_BIOMETRIC_WEAK_IMPROVE_MATCHING.equals(key)) {
      ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(this.getActivity(), this);
      if (!helper.launchConfirmationActivity(
          CONFIRM_EXISTING_FOR_BIOMETRIC_IMPROVE_REQUEST, null, null)) {
        startBiometricWeakImprove(); // no password set, so no need to confirm
      }
    } else if (KEY_LOCK_ENABLED.equals(key)) {
      lockPatternUtils.setLockPatternEnabled(isToggled(preference));
    } else if (KEY_VISIBLE_PATTERN.equals(key)) {
      lockPatternUtils.setVisiblePatternEnabled(isToggled(preference));
    } else if (KEY_TACTILE_FEEDBACK_ENABLED.equals(key)) {
      lockPatternUtils.setTactileFeedbackEnabled(isToggled(preference));
    } else if (KEY_POWER_INSTANTLY_LOCKS.equals(key)) {
      lockPatternUtils.setPowerButtonInstantlyLocks(isToggled(preference));
    } else if (preference == mShowPassword) {
      Settings.System.putInt(
          getContentResolver(),
          Settings.System.TEXT_SHOW_PASSWORD,
          mShowPassword.isChecked() ? 1 : 0);
    } else if (preference == mToggleAppInstallation) {
      if (mToggleAppInstallation.isChecked()) {
        mToggleAppInstallation.setChecked(false);
        warnAppInstallation();
      } else {
        setNonMarketAppsAllowed(false);
      }
    } else {
      // If we didn't handle it, let preferences handle it.
      return super.onPreferenceTreeClick(preferenceScreen, preference);
    }

    return true;
  }