From 7f3cec7db04e1b315570fa8a79ba7697bdaac49c Mon Sep 17 00:00:00 2001 From: Beverly Date: Fri, 21 Jan 2022 13:40:17 +0000 Subject: [PATCH] Call TrustManager#reportUserRequestedUnlock Instead of posting a notification (which was only used for testing). Now, SystemUI is hooked up to TrustManager. Also, removes ActiveUnlock feature flag. Test: atest SystemUITests Bug: 192405661 Fixes: 213631396 Change-Id: I0afc9a9bcb482148fbb0d164d20c00b715e28f80 --- .../SystemUI/res-keyguard/values/bools.xml | 1 - .../keyguard/KeyguardUpdateMonitor.java | 38 ++----------------- .../src/com/android/systemui/flags/Flags.java | 3 -- .../keyguard/KeyguardUpdateMonitorTest.java | 5 +-- 4 files changed, 5 insertions(+), 42 deletions(-) diff --git a/packages/SystemUI/res-keyguard/values/bools.xml b/packages/SystemUI/res-keyguard/values/bools.xml index c5bf4ce481886..2b83787172d38 100644 --- a/packages/SystemUI/res-keyguard/values/bools.xml +++ b/packages/SystemUI/res-keyguard/values/bools.xml @@ -17,5 +17,4 @@ true true - false diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java index a348b423d3c73..da03f50823597 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -37,8 +37,6 @@ import android.app.ActivityManager; import android.app.ActivityTaskManager; import android.app.ActivityTaskManager.RootTaskInfo; import android.app.AlarmManager; -import android.app.Notification; -import android.app.NotificationManager; import android.app.PendingIntent; import android.app.UserSwitchObserver; import android.app.admin.DevicePolicyManager; @@ -104,8 +102,6 @@ import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dump.DumpManager; -import com.android.systemui.flags.FeatureFlags; -import com.android.systemui.flags.Flags; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.shared.system.TaskStackChangeListener; import com.android.systemui.shared.system.TaskStackChangeListeners; @@ -113,7 +109,6 @@ import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.phone.KeyguardBypassController; import com.android.systemui.telephony.TelephonyListenerManager; import com.android.systemui.util.Assert; -import com.android.systemui.util.NotificationChannels; import com.android.systemui.util.RingerModeTracker; import com.google.android.collect.Lists; @@ -338,7 +333,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab private int mActiveMobileDataSubscription = SubscriptionManager.INVALID_SUBSCRIPTION_ID; private final Executor mBackgroundExecutor; private SensorPrivacyManager mSensorPrivacyManager; - private FeatureFlags mFeatureFlags; private int mFaceAuthUserId; /** @@ -1790,8 +1784,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab AuthController authController, TelephonyListenerManager telephonyListenerManager, InteractionJankMonitor interactionJankMonitor, - LatencyTracker latencyTracker, - FeatureFlags featureFlags) { + LatencyTracker latencyTracker) { mContext = context; mSubscriptionManager = SubscriptionManager.from(context); mTelephonyListenerManager = telephonyListenerManager; @@ -1809,7 +1802,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab mAuthController = authController; dumpManager.registerDumpable(getClass().getName(), this); mSensorPrivacyManager = context.getSystemService(SensorPrivacyManager.class); - mFeatureFlags = featureFlags; mHandler = new Handler(mainLooper) { @Override @@ -2253,34 +2245,12 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab return; } - if (shouldTriggerActiveUnlock() && mFeatureFlags.isEnabled(Flags.ACTIVE_UNLOCK)) { - // TODO (b/192405661): call new TrustManager API - mNumActiveUnlockTriggers++; - Log.d("ActiveUnlock", "would have triggered times=" + mNumActiveUnlockTriggers); - showActiveUnlockNotification(mNumActiveUnlockTriggers); + if (shouldTriggerActiveUnlock()) { + mTrustManager.reportUserRequestedUnlock(KeyguardUpdateMonitor.getCurrentUser()); } } - /** - * TODO (b/192405661): Only for testing. Remove before release. - */ - private void showActiveUnlockNotification(int times) { - final String message = "Active unlock triggered " + times + " times."; - final Notification.Builder nb = - new Notification.Builder(mContext, NotificationChannels.GENERAL) - .setSmallIcon(R.drawable.ic_volume_ringer) - .setContentTitle(message) - .setStyle(new Notification.BigTextStyle().bigText(message)); - mContext.getSystemService(NotificationManager.class).notifyAsUser( - "active_unlock", - 0, - nb.build(), - UserHandle.ALL); - } - private boolean shouldTriggerActiveUnlock() { - // TODO: check if active unlock is ENABLED / AVAILABLE - // Triggers: final boolean triggerActiveUnlockForAssistant = shouldTriggerActiveUnlockForAssistant(); final boolean awakeKeyguard = mKeyguardIsVisible && mDeviceInteractive && !mGoingToSleep @@ -2294,7 +2264,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab final boolean userCanDismissLockScreen = getUserCanSkipBouncer(user) || !mLockPatternUtils.isSecure(user); - // Don't trigger active unlock if fp is locked out TODO: confirm this one + // Don't trigger active unlock if fp is locked out final boolean fpLockedout = mFingerprintLockedOut || mFingerprintLockedOutPermanent; // Don't trigger active unlock if primary auth is required diff --git a/packages/SystemUI/src/com/android/systemui/flags/Flags.java b/packages/SystemUI/src/com/android/systemui/flags/Flags.java index 5d6c2a247df3c..4be819a49772a 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/Flags.java +++ b/packages/SystemUI/src/com/android/systemui/flags/Flags.java @@ -74,9 +74,6 @@ public class Flags { public static final ResourceBooleanFlag BOUNCER_USER_SWITCHER = new ResourceBooleanFlag(204, R.bool.config_enableBouncerUserSwitcher); - public static final ResourceBooleanFlag ACTIVE_UNLOCK = - new ResourceBooleanFlag(205, R.bool.flag_active_unlock); - /***************************************/ // 300 - power menu public static final BooleanFlag POWER_MENU_LITE = diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java index 7266e41ad7cae..70792cfee3018 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java @@ -88,7 +88,6 @@ import com.android.systemui.SysuiTestCase; import com.android.systemui.biometrics.AuthController; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.dump.DumpManager; -import com.android.systemui.flags.FeatureFlags; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.phone.KeyguardBypassController; @@ -174,8 +173,6 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase { private InteractionJankMonitor mInteractionJankMonitor; @Mock private LatencyTracker mLatencyTracker; - @Mock - private FeatureFlags mFeatureFlags; @Captor private ArgumentCaptor mStatusBarStateListenerCaptor; // Direct executor @@ -1108,7 +1105,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase { mRingerModeTracker, mBackgroundExecutor, mMainExecutor, mStatusBarStateController, mLockPatternUtils, mAuthController, mTelephonyListenerManager, - mInteractionJankMonitor, mLatencyTracker, mFeatureFlags); + mInteractionJankMonitor, mLatencyTracker); setStrongAuthTracker(KeyguardUpdateMonitorTest.this.mStrongAuthTracker); }