Loading packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +7 −13 Original line number Original line Diff line number Diff line Loading @@ -1608,31 +1608,23 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } } private boolean shouldListenForFingerprint() { private boolean shouldListenForFingerprint() { final boolean switchingUsers; synchronized (this) { switchingUsers = mSwitchingUser; } // Only listen if this KeyguardUpdateMonitor belongs to the primary user. There is an // Only listen if this KeyguardUpdateMonitor belongs to the primary user. There is an // instance of KeyguardUpdateMonitor for each user but KeyguardUpdateMonitor is user-aware. // instance of KeyguardUpdateMonitor for each user but KeyguardUpdateMonitor is user-aware. final boolean shouldListen = (mKeyguardIsVisible || !mDeviceInteractive || final boolean shouldListen = (mKeyguardIsVisible || !mDeviceInteractive || (mBouncer && !mKeyguardGoingAway) || mGoingToSleep || (mBouncer && !mKeyguardGoingAway) || mGoingToSleep || shouldListenForFingerprintAssistant() || (mKeyguardOccluded && mIsDreaming)) shouldListenForFingerprintAssistant() || (mKeyguardOccluded && mIsDreaming)) && !switchingUsers && !isFingerprintDisabled(getCurrentUser()) && !mSwitchingUser && !isFingerprintDisabled(getCurrentUser()) && (!mKeyguardGoingAway || !mDeviceInteractive) && mIsPrimaryUser; && (!mKeyguardGoingAway || !mDeviceInteractive) && mIsPrimaryUser; return shouldListen; return shouldListen; } } private boolean shouldListenForFace() { private boolean shouldListenForFace() { final boolean switchingUsers; synchronized (this) { switchingUsers = mSwitchingUser; } final boolean awakeKeyguard = mKeyguardIsVisible && mDeviceInteractive && !mGoingToSleep; final boolean awakeKeyguard = mKeyguardIsVisible && mDeviceInteractive && !mGoingToSleep; final int user = getCurrentUser(); final int user = getCurrentUser(); // Only listen if this KeyguardUpdateMonitor belongs to the primary user. There is an // Only listen if this KeyguardUpdateMonitor belongs to the primary user. There is an // instance of KeyguardUpdateMonitor for each user but KeyguardUpdateMonitor is user-aware. // instance of KeyguardUpdateMonitor for each user but KeyguardUpdateMonitor is user-aware. return (mBouncer || mAuthInterruptActive || awakeKeyguard || shouldListenForFaceAssistant()) return (mBouncer || mAuthInterruptActive || awakeKeyguard || shouldListenForFaceAssistant()) && !switchingUsers && !getUserCanSkipBouncer(user) && !isFaceDisabled(user) && !mSwitchingUser && !getUserCanSkipBouncer(user) && !isFaceDisabled(user) && !mKeyguardGoingAway && mFaceSettingEnabledForUser && !mKeyguardGoingAway && mFaceSettingEnabledForUser && mUserManager.isUserUnlocked(user) && mIsPrimaryUser; && mUserManager.isUserUnlocked(user) && mIsPrimaryUser; } } Loading Loading @@ -2188,11 +2180,13 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { sendUpdates(callback); sendUpdates(callback); } } public boolean isSwitchingUser() { return mSwitchingUser; } @AnyThread @AnyThread public void setSwitchingUser(boolean switching) { public void setSwitchingUser(boolean switching) { synchronized (this) { mSwitchingUser = switching; mSwitchingUser = switching; } // Since this comes in on a binder thread, we need to post if first // Since this comes in on a binder thread, we need to post if first mHandler.post(mUpdateBiometricListeningState); mHandler.post(mUpdateBiometricListeningState); } } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java +21 −2 Original line number Original line Diff line number Diff line Loading @@ -41,6 +41,7 @@ import com.android.internal.statusbar.IStatusBarService; import com.android.internal.statusbar.NotificationVisibility; import com.android.internal.statusbar.NotificationVisibility; import com.android.internal.widget.MessagingGroup; import com.android.internal.widget.MessagingGroup; import com.android.internal.widget.MessagingMessage; import com.android.internal.widget.MessagingMessage; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.Dependency; import com.android.systemui.Dependency; import com.android.systemui.ForegroundServiceNotificationListener; import com.android.systemui.ForegroundServiceNotificationListener; import com.android.systemui.InitController; import com.android.systemui.InitController; Loading Loading @@ -121,6 +122,8 @@ public class StatusBarNotificationPresenter implements NotificationPresenter, private final StatusBarKeyguardViewManager mStatusBarKeyguardViewManager; private final StatusBarKeyguardViewManager mStatusBarKeyguardViewManager; private final int mMaxAllowedKeyguardNotifications; private final int mMaxAllowedKeyguardNotifications; private final IStatusBarService mBarService; private final IStatusBarService mBarService; private boolean mReinflateNotificationsOnUserSwitched; private boolean mDispatchUiModeChangeOnUserSwitched; private final UnlockMethodCache mUnlockMethodCache; private final UnlockMethodCache mUnlockMethodCache; private TextView mNotificationPanelDebugText; private TextView mNotificationPanelDebugText; Loading Loading @@ -239,12 +242,20 @@ public class StatusBarNotificationPresenter implements NotificationPresenter, public void onDensityOrFontScaleChanged() { public void onDensityOrFontScaleChanged() { MessagingMessage.dropCache(); MessagingMessage.dropCache(); MessagingGroup.dropCache(); MessagingGroup.dropCache(); if (!KeyguardUpdateMonitor.getInstance(mContext).isSwitchingUser()) { updateNotificationsOnDensityOrFontScaleChanged(); updateNotificationsOnDensityOrFontScaleChanged(); } else { mReinflateNotificationsOnUserSwitched = true; } } } @Override @Override public void onUiModeChanged() { public void onUiModeChanged() { if (!KeyguardUpdateMonitor.getInstance(mContext).isSwitchingUser()) { updateNotificationOnUiModeChanged(); updateNotificationOnUiModeChanged(); } else { mDispatchUiModeChangeOnUserSwitched = true; } } } @Override @Override Loading Loading @@ -374,6 +385,14 @@ public class StatusBarNotificationPresenter implements NotificationPresenter, // End old BaseStatusBar.userSwitched // End old BaseStatusBar.userSwitched if (MULTIUSER_DEBUG) mNotificationPanelDebugText.setText("USER " + newUserId); if (MULTIUSER_DEBUG) mNotificationPanelDebugText.setText("USER " + newUserId); mCommandQueue.animateCollapsePanels(); mCommandQueue.animateCollapsePanels(); if (mReinflateNotificationsOnUserSwitched) { updateNotificationsOnDensityOrFontScaleChanged(); mReinflateNotificationsOnUserSwitched = false; } if (mDispatchUiModeChangeOnUserSwitched) { updateNotificationOnUiModeChanged(); mDispatchUiModeChangeOnUserSwitched = false; } updateNotificationViews(); updateNotificationViews(); mMediaManager.clearCurrentMediaNotification(); mMediaManager.clearCurrentMediaNotification(); mShadeController.setLockscreenUser(newUserId); mShadeController.setLockscreenUser(newUserId); Loading Loading
packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +7 −13 Original line number Original line Diff line number Diff line Loading @@ -1608,31 +1608,23 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } } private boolean shouldListenForFingerprint() { private boolean shouldListenForFingerprint() { final boolean switchingUsers; synchronized (this) { switchingUsers = mSwitchingUser; } // Only listen if this KeyguardUpdateMonitor belongs to the primary user. There is an // Only listen if this KeyguardUpdateMonitor belongs to the primary user. There is an // instance of KeyguardUpdateMonitor for each user but KeyguardUpdateMonitor is user-aware. // instance of KeyguardUpdateMonitor for each user but KeyguardUpdateMonitor is user-aware. final boolean shouldListen = (mKeyguardIsVisible || !mDeviceInteractive || final boolean shouldListen = (mKeyguardIsVisible || !mDeviceInteractive || (mBouncer && !mKeyguardGoingAway) || mGoingToSleep || (mBouncer && !mKeyguardGoingAway) || mGoingToSleep || shouldListenForFingerprintAssistant() || (mKeyguardOccluded && mIsDreaming)) shouldListenForFingerprintAssistant() || (mKeyguardOccluded && mIsDreaming)) && !switchingUsers && !isFingerprintDisabled(getCurrentUser()) && !mSwitchingUser && !isFingerprintDisabled(getCurrentUser()) && (!mKeyguardGoingAway || !mDeviceInteractive) && mIsPrimaryUser; && (!mKeyguardGoingAway || !mDeviceInteractive) && mIsPrimaryUser; return shouldListen; return shouldListen; } } private boolean shouldListenForFace() { private boolean shouldListenForFace() { final boolean switchingUsers; synchronized (this) { switchingUsers = mSwitchingUser; } final boolean awakeKeyguard = mKeyguardIsVisible && mDeviceInteractive && !mGoingToSleep; final boolean awakeKeyguard = mKeyguardIsVisible && mDeviceInteractive && !mGoingToSleep; final int user = getCurrentUser(); final int user = getCurrentUser(); // Only listen if this KeyguardUpdateMonitor belongs to the primary user. There is an // Only listen if this KeyguardUpdateMonitor belongs to the primary user. There is an // instance of KeyguardUpdateMonitor for each user but KeyguardUpdateMonitor is user-aware. // instance of KeyguardUpdateMonitor for each user but KeyguardUpdateMonitor is user-aware. return (mBouncer || mAuthInterruptActive || awakeKeyguard || shouldListenForFaceAssistant()) return (mBouncer || mAuthInterruptActive || awakeKeyguard || shouldListenForFaceAssistant()) && !switchingUsers && !getUserCanSkipBouncer(user) && !isFaceDisabled(user) && !mSwitchingUser && !getUserCanSkipBouncer(user) && !isFaceDisabled(user) && !mKeyguardGoingAway && mFaceSettingEnabledForUser && !mKeyguardGoingAway && mFaceSettingEnabledForUser && mUserManager.isUserUnlocked(user) && mIsPrimaryUser; && mUserManager.isUserUnlocked(user) && mIsPrimaryUser; } } Loading Loading @@ -2188,11 +2180,13 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { sendUpdates(callback); sendUpdates(callback); } } public boolean isSwitchingUser() { return mSwitchingUser; } @AnyThread @AnyThread public void setSwitchingUser(boolean switching) { public void setSwitchingUser(boolean switching) { synchronized (this) { mSwitchingUser = switching; mSwitchingUser = switching; } // Since this comes in on a binder thread, we need to post if first // Since this comes in on a binder thread, we need to post if first mHandler.post(mUpdateBiometricListeningState); mHandler.post(mUpdateBiometricListeningState); } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java +21 −2 Original line number Original line Diff line number Diff line Loading @@ -41,6 +41,7 @@ import com.android.internal.statusbar.IStatusBarService; import com.android.internal.statusbar.NotificationVisibility; import com.android.internal.statusbar.NotificationVisibility; import com.android.internal.widget.MessagingGroup; import com.android.internal.widget.MessagingGroup; import com.android.internal.widget.MessagingMessage; import com.android.internal.widget.MessagingMessage; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.Dependency; import com.android.systemui.Dependency; import com.android.systemui.ForegroundServiceNotificationListener; import com.android.systemui.ForegroundServiceNotificationListener; import com.android.systemui.InitController; import com.android.systemui.InitController; Loading Loading @@ -121,6 +122,8 @@ public class StatusBarNotificationPresenter implements NotificationPresenter, private final StatusBarKeyguardViewManager mStatusBarKeyguardViewManager; private final StatusBarKeyguardViewManager mStatusBarKeyguardViewManager; private final int mMaxAllowedKeyguardNotifications; private final int mMaxAllowedKeyguardNotifications; private final IStatusBarService mBarService; private final IStatusBarService mBarService; private boolean mReinflateNotificationsOnUserSwitched; private boolean mDispatchUiModeChangeOnUserSwitched; private final UnlockMethodCache mUnlockMethodCache; private final UnlockMethodCache mUnlockMethodCache; private TextView mNotificationPanelDebugText; private TextView mNotificationPanelDebugText; Loading Loading @@ -239,12 +242,20 @@ public class StatusBarNotificationPresenter implements NotificationPresenter, public void onDensityOrFontScaleChanged() { public void onDensityOrFontScaleChanged() { MessagingMessage.dropCache(); MessagingMessage.dropCache(); MessagingGroup.dropCache(); MessagingGroup.dropCache(); if (!KeyguardUpdateMonitor.getInstance(mContext).isSwitchingUser()) { updateNotificationsOnDensityOrFontScaleChanged(); updateNotificationsOnDensityOrFontScaleChanged(); } else { mReinflateNotificationsOnUserSwitched = true; } } } @Override @Override public void onUiModeChanged() { public void onUiModeChanged() { if (!KeyguardUpdateMonitor.getInstance(mContext).isSwitchingUser()) { updateNotificationOnUiModeChanged(); updateNotificationOnUiModeChanged(); } else { mDispatchUiModeChangeOnUserSwitched = true; } } } @Override @Override Loading Loading @@ -374,6 +385,14 @@ public class StatusBarNotificationPresenter implements NotificationPresenter, // End old BaseStatusBar.userSwitched // End old BaseStatusBar.userSwitched if (MULTIUSER_DEBUG) mNotificationPanelDebugText.setText("USER " + newUserId); if (MULTIUSER_DEBUG) mNotificationPanelDebugText.setText("USER " + newUserId); mCommandQueue.animateCollapsePanels(); mCommandQueue.animateCollapsePanels(); if (mReinflateNotificationsOnUserSwitched) { updateNotificationsOnDensityOrFontScaleChanged(); mReinflateNotificationsOnUserSwitched = false; } if (mDispatchUiModeChangeOnUserSwitched) { updateNotificationOnUiModeChanged(); mDispatchUiModeChangeOnUserSwitched = false; } updateNotificationViews(); updateNotificationViews(); mMediaManager.clearCurrentMediaNotification(); mMediaManager.clearCurrentMediaNotification(); mShadeController.setLockscreenUser(newUserId); mShadeController.setLockscreenUser(newUserId); Loading