diff options
author | Lucas Dupin <dupin@google.com> | 2019-05-28 17:58:07 -0700 |
---|---|---|
committer | Lucas Dupin <dupin@google.com> | 2019-05-29 15:57:32 -0700 |
commit | b2aaa26f3851a3e9e9f937be43a24663c04b6546 (patch) | |
tree | cd8ffcfa113cbfc90d0d9a09fa2d62084260c2a3 /src/com/android/settings/security | |
parent | 75034e5c2062dfd9f3b270e5609472c638e7d24e (diff) | |
download | packages_apps_Settings-b2aaa26f3851a3e9e9f937be43a24663c04b6546.tar.gz packages_apps_Settings-b2aaa26f3851a3e9e9f937be43a24663c04b6546.tar.bz2 packages_apps_Settings-b2aaa26f3851a3e9e9f937be43a24663c04b6546.zip |
Add setting to bypass lock screen
Test: manual
Test: make RunSettingsRoboTests ROBOTEST_FILTER=LockscreenBypassPreferenceControllerTest
Bug: 130327302
Change-Id: I324c6e384480fa8576ba58d0bf73c1ef20484ee0
Diffstat (limited to 'src/com/android/settings/security')
-rw-r--r-- | src/com/android/settings/security/LockscreenBypassPreferenceController.java | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/com/android/settings/security/LockscreenBypassPreferenceController.java b/src/com/android/settings/security/LockscreenBypassPreferenceController.java new file mode 100644 index 0000000000..e347a733ad --- /dev/null +++ b/src/com/android/settings/security/LockscreenBypassPreferenceController.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.security; + +import android.content.Context; +import android.hardware.face.FaceManager; +import android.provider.Settings; + +import com.android.internal.annotations.VisibleForTesting; +import com.android.settings.core.TogglePreferenceController; + +public class LockscreenBypassPreferenceController extends TogglePreferenceController { + + @VisibleForTesting + protected FaceManager mFaceManager; + + public LockscreenBypassPreferenceController(Context context, String preferenceKey) { + super(context, preferenceKey); + mFaceManager = context.getSystemService(FaceManager.class); + } + + @Override + public boolean isChecked() { + boolean defaultValue = mContext.getResources().getBoolean( + com.android.internal.R.bool.config_faceAuthDismissesKeyguard); + return Settings.Secure.getInt(mContext.getContentResolver(), + Settings.Secure.FACE_UNLOCK_DISMISSES_KEYGUARD, defaultValue ? 1 : 0) != 0; + } + + @Override + public boolean setChecked(boolean isChecked) { + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.FACE_UNLOCK_DISMISSES_KEYGUARD, isChecked ? 1 : 0); + return true; + } + + @Override + public int getAvailabilityStatus() { + if (mFaceManager != null && mFaceManager.isHardwareDetected()) { + return mFaceManager.hasEnrolledTemplates() ? AVAILABLE : DISABLED_DEPENDENT_SETTING; + } else { + return UNSUPPORTED_ON_DEVICE; + } + } +} |