From 65664b2909e9bd85bcf2978c4205f4c32e9e5b3b Mon Sep 17 00:00:00 2001 From: Erin Yan Date: Tue, 10 Dec 2019 11:46:37 -0800 Subject: [PATCH] Check screenlock for unlock dialog Only show unlock dialog when the foreground user has screenlock and trusted device. Bug:144590810 Test: Manually on IHU Change-Id: I2585ec33391aec9f3cd71f03507e863cbd5d4e76 Merged-in: I08c7aa677150ca950785428580eee6a39ffadd37 --- .../statusbar/car/FullscreenUserSwitcher.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/FullscreenUserSwitcher.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/FullscreenUserSwitcher.java index f74dbe925349b..92834e8cd0857 100644 --- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/FullscreenUserSwitcher.java +++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/FullscreenUserSwitcher.java @@ -34,6 +34,7 @@ import android.view.ViewStub; import androidx.recyclerview.widget.GridLayoutManager; +import com.android.internal.widget.LockPatternUtils; import com.android.systemui.CarSystemUIFactory; import com.android.systemui.R; import com.android.systemui.SystemUIFactory; @@ -117,8 +118,9 @@ public class FullscreenUserSwitcher { /* isAddUser= */ false, /* isForeground= */ true); - // If the initial user has trusted device, display the unlock dialog on the keyguard. - if (hasTrustedDevice(initialUser)) { + // If the initial user has screen lock and trusted device, display the unlock dialog on the + // keyguard. + if (hasScreenLock(initialUser) && hasTrustedDevice(initialUser)) { mUnlockDialogHelper.showUnlockDialogAfterDelay(initialUser, mOnHideListener); } else { @@ -160,7 +162,7 @@ public class FullscreenUserSwitcher { */ private void onUserSelected(UserGridRecyclerView.UserRecord record) { mSelectedUser = record; - if (hasTrustedDevice(record.mInfo.id)) { + if (hasScreenLock(record.mInfo.id) && hasTrustedDevice(record.mInfo.id)) { mUnlockDialogHelper.showUnlockDialog(record.mInfo.id, mOnHideListener); return; } @@ -198,6 +200,11 @@ public class FullscreenUserSwitcher { } + private boolean hasScreenLock(int uid) { + LockPatternUtils lockPatternUtils = new LockPatternUtils(mContext); + return lockPatternUtils.isSecure(uid); + } + private boolean hasTrustedDevice(int uid) { if (mEnrollmentManager == null) { // car service not ready, so it cannot be available. return false;