@Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
      mKeyStore = KeyStore.getInstance();
      mChooseLockSettingsHelper = new ChooseLockSettingsHelper(this.getActivity());

      // Defaults to needing to confirm credentials
      final boolean confirmCredentials =
          getActivity().getIntent().getBooleanExtra(CONFIRM_CREDENTIALS, true);
      if (getActivity() instanceof ChooseLockGeneric.InternalActivity) {
        mPasswordConfirmed = !confirmCredentials;
      }

      if (savedInstanceState != null) {
        mPasswordConfirmed = savedInstanceState.getBoolean(PASSWORD_CONFIRMED);
        mWaitingForConfirmation = savedInstanceState.getBoolean(WAITING_FOR_CONFIRMATION);
        mFinishPending = savedInstanceState.getBoolean(FINISH_PENDING);
      }

      if (mPasswordConfirmed) {
        updatePreferencesOrFinish();
      } else if (!mWaitingForConfirmation) {
        ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(this.getActivity(), this);
        if (!helper.launchConfirmationActivity(CONFIRM_EXISTING_REQUEST, null, null)) {
          mPasswordConfirmed = true; // no password set, so no need to confirm
          updatePreferencesOrFinish();
        } else {
          mWaitingForConfirmation = true;
        }
      }
    }
コード例 #2
0
 @Override
 public void onResume() {
   super.onResume();
   if (!mPasswordConfirmed && !mCanceled) {
     ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(this.getActivity(), this);
     if (!helper.launchConfirmationActivity(CONFIRM_EXISTING_REQUEST, null, null)) {
       mPasswordConfirmed = true; // no password set, so no need to confirm
       updatePreferencesOrFinish();
     }
   } else {
     updatePreferencesOrFinish();
   }
 }
コード例 #3
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;
  }