Add setting to disable PIN animation and password am: 30bf66db42

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/21369281

Change-Id: I39f9675c5b3fc234608882780a62141061bf1e74
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Andreas Miko
2023-03-14 18:05:35 +00:00
committed by Automerger Merge Worker
8 changed files with 186 additions and 19 deletions

View File

@@ -17,29 +17,22 @@
package com.android.settings.security.screenlock;
import android.content.Context;
import android.os.UserHandle;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.internal.widget.LockPatternUtils;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.notification.LockScreenNotificationPreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnResume;
public class LockScreenPreferenceController extends BasePreferenceController implements
LifecycleObserver, OnResume {
private static final int MY_USER_ID = UserHandle.myUserId();
private final LockPatternUtils mLockPatternUtils;
private Preference mPreference;
public LockScreenPreferenceController(Context context, String key) {
super(context, key);
mLockPatternUtils = FeatureFactory.getFactory(context)
.getSecurityFeatureProvider().getLockPatternUtils(context);
}
@Override

View File

@@ -16,7 +16,6 @@
package com.android.settings.security.screenlock;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
import androidx.preference.Preference;
@@ -58,9 +57,8 @@ public class PatternVisiblePreferenceController extends AbstractPreferenceContro
}
private boolean isPatternLock() {
return mLockPatternUtils.isSecure(mUserId)
&& mLockPatternUtils.getKeyguardStoredPasswordQuality(mUserId)
== DevicePolicyManager.PASSWORD_QUALITY_SOMETHING;
return mLockPatternUtils.getCredentialTypeForUser(mUserId)
== LockPatternUtils.CREDENTIAL_TYPE_PATTERN;
}
@Override

View File

@@ -0,0 +1,60 @@
/*
* Copyright (C) 2023 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.screenlock
import android.content.Context
import android.provider.Settings
import androidx.preference.Preference
import androidx.preference.TwoStatePreference
import com.android.internal.widget.LockPatternUtils
import com.android.internal.widget.LockPatternUtils.*
import com.android.settings.core.PreferenceControllerMixin
import com.android.settingslib.core.AbstractPreferenceController
class PinPrivacyPreferenceController(
context: Context,
private val userId: Int,
private val lockPatternUtils: LockPatternUtils
) : AbstractPreferenceController(context), PreferenceControllerMixin,
Preference.OnPreferenceChangeListener {
companion object {
private const val PREF_KEY = "enhancedPinPrivacy"
}
override fun isAvailable(): Boolean {
val credentialType = lockPatternUtils.getCredentialTypeForUser(userId)
return credentialType == CREDENTIAL_TYPE_PIN
}
override fun getPreferenceKey(): String {
return PREF_KEY
}
override fun onPreferenceChange(preference: Preference?, value: Any?): Boolean {
lockPatternUtils.setPinEnhancedPrivacyEnabled((value as Boolean), userId)
return true
}
override fun updateState(preference: Preference) {
(preference as TwoStatePreference).isChecked = getCurrentPreferenceState()
}
private fun getCurrentPreferenceState(): Boolean {
return lockPatternUtils.isPinEnhancedPrivacyEnabled(userId)
}
}

View File

@@ -68,9 +68,12 @@ public class ScreenLockSettings extends DashboardFragment
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
DashboardFragment parent, LockPatternUtils lockPatternUtils) {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new PatternVisiblePreferenceController(
context, MY_USER_ID, lockPatternUtils));
controllers.add(new PinPrivacyPreferenceController(
context, MY_USER_ID, lockPatternUtils));
controllers.add(new PowerButtonInstantLockPreferenceController(
context, MY_USER_ID, lockPatternUtils));
controllers.add(new LockAfterTimeoutPreferenceController(