diff options
author | Peter Kalauskas <peskal@google.com> | 2021-03-03 12:22:05 -0800 |
---|---|---|
committer | Peter Kalauskas <peskal@google.com> | 2021-03-03 14:37:55 -0800 |
commit | c1e331dd9c3ad4032f447ecca7ed377ab6db75c0 (patch) | |
tree | e6bd5a1d59fa4bf9c0fac966e6a8e6657b518ceb /packages/SystemUI/src | |
parent | 9570000af350dcab09843c0649506b36316eb60d (diff) |
Fix doze bug in keyguard user switcher
Previously, the view would be set to GONE at the incorrect time.
KeyguardQsUserSwitchController has no need for knowing the doze amount
at all since it does not need to update text color, so remove the
listener entirely.
Also, add javadoc and update variable names in KeyguardSliceView's
setDarkAmount to better reflect their meaning.
Test: Build and flash blueline-userdebug with QS user switcher enabled
(config_keyguard_user_switch_opens_qs_details), switch between
device owner and guest repeatedly. Turn screen off and on.
Bug: 181776379
Change-Id: I772612d49f2e3bcbd6aba334afee17fcb1c84c57
Diffstat (limited to 'packages/SystemUI/src')
3 files changed, 12 insertions, 31 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java index 2373d75cd4ea..83c2d1e7f684 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java @@ -405,14 +405,19 @@ public class KeyguardSliceView extends LinearLayout { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } + /** + * Set the amount (ratio) that the device has transitioned to doze. + * + * @param darkAmount Amount of transition to doze: 1f for doze and 0f for awake. + */ public void setDarkAmount(float darkAmount) { - boolean isAwake = darkAmount != 0; - boolean wasAwake = mDarkAmount != 0; - if (isAwake == wasAwake) { + boolean isDozing = darkAmount != 0; + boolean wasDozing = mDarkAmount != 0; + if (isDozing == wasDozing) { return; } mDarkAmount = darkAmount; - setLayoutAnimationListener(isAwake ? null : mKeepAwakeListener); + setLayoutAnimationListener(isDozing ? null : mKeepAwakeListener); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardQsUserSwitchController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardQsUserSwitchController.java index 38f3bc891394..59c1138431fb 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardQsUserSwitchController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardQsUserSwitchController.java @@ -94,15 +94,6 @@ public class KeyguardQsUserSwitchController extends ViewController<UserAvatarVie goingToFullShade, oldState); } - - @Override - public void onDozeAmountChanged(float linearAmount, float amount) { - if (DEBUG) { - Log.d(TAG, String.format("onDozeAmountChanged: linearAmount=%f amount=%f", - linearAmount, amount)); - } - setDarkAmount(amount); - } }; @Inject @@ -294,20 +285,6 @@ public class KeyguardQsUserSwitchController extends ViewController<UserAvatarVie } } - /** - * Set the amount (ratio) that the device has transitioned to doze. - * - * @param darkAmount Amount of transition to doze: 1f for doze and 0f for awake. - */ - private void setDarkAmount(float darkAmount) { - boolean isAwake = darkAmount != 0; - if (darkAmount == mDarkAmount) { - return; - } - mDarkAmount = darkAmount; - mView.setVisibility(isAwake ? View.VISIBLE : View.GONE); - } - private boolean isListAnimating() { return mKeyguardVisibilityHelper.isVisibilityAnimating(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcherController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcherController.java index 8845a05cf6f5..5a80c05cc3cd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcherController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcherController.java @@ -205,7 +205,7 @@ public class KeyguardUserSwitcherController extends ViewController<KeyguardUserS protected void onViewAttached() { if (DEBUG) Log.d(TAG, "onViewAttached"); mAdapter.registerDataSetObserver(mDataSetObserver); - mDataSetObserver.onChanged(); + mAdapter.notifyDataSetChanged(); mKeyguardUpdateMonitor.registerCallback(mInfoCallback); mStatusBarStateController.addCallback(mStatusBarStateListener); mScreenLifecycle.addObserver(mScreenObserver); @@ -373,14 +373,13 @@ public class KeyguardUserSwitcherController extends ViewController<KeyguardUserS * @param darkAmount Amount of transition to doze: 1f for doze and 0f for awake. */ private void setDarkAmount(float darkAmount) { - boolean isAwake = darkAmount != 0; + boolean isFullyDozed = darkAmount == 1; if (darkAmount == mDarkAmount) { return; } mDarkAmount = darkAmount; mListView.setDarkAmount(darkAmount); - mView.setVisibility(isAwake ? View.VISIBLE : View.GONE); - if (!isAwake) { + if (isFullyDozed) { closeSwitcherIfOpenAndNotSimple(false); } } |