From 4f83ff47a9d10b56b7d62fc4b29b7cb30df17aa6 Mon Sep 17 00:00:00 2001 From: Evan Rosky Date: Tue, 14 Jul 2020 09:06:51 -0700 Subject: [PATCH] Use keyguard state directly instead of trying to remember it When updating the divider, this was using the last-remembered hidden state of the dividerview. The only user of hidden state was keyguard. Sometimes, split-screen would be dismissed before keyguard was dismissed. In this situation, the divider state wouldn't be updated properly. So, instead of trying to use the potentially incorrect state, always just check the keyguard directly to determine hidden state. Bug: 161170237 Test: put 2 apps in splitscreen, lock screen, open emergency, then unlock, go to splitscreen again, re-lock and see no divider bar. Change-Id: I470be161e6c712111549959b0f4471867d08a276 --- .../src/com/android/systemui/stackdivider/Divider.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java b/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java index 370f9a7624027..d5e8db24c5ac3 100644 --- a/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java +++ b/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java @@ -197,7 +197,9 @@ public class Divider extends SystemUI implements DividerView.DividerCallbacks, return; } mView.setHidden(mKeyguardStateController.isShowing()); - mImePositionProcessor.updateAdjustForIme(); + if (!mKeyguardStateController.isShowing()) { + mImePositionProcessor.updateAdjustForIme(); + } } @Override @@ -316,7 +318,7 @@ public class Divider extends SystemUI implements DividerView.DividerCallbacks, } private void update(Configuration configuration) { - final boolean isDividerHidden = mView != null && mView.isHidden(); + final boolean isDividerHidden = mView != null && mKeyguardStateController.isShowing(); removeDivider(); addDivider(configuration);