Fix an issue with nav bar translations not being updated
- There are flows where the shared taskbar state is updated prior to being destroyed, and not updated to the latest values when the taskbar is recreated. ie. unfolded -> lock screen -> LauncherTaskbarUiController's mTaskbarInAppDisplayProgress[SYSUI_SURFACE_PROGRESS_INDEX] is set to 1 due to the notif shade (lockscreen) showing. This is written into TaskbarSharedState's sysuiStateFlags and inAppDisplayProgressMultiPropValues. fold -> TaskbarActivityContext is destroyed unlock -> TaskbarManager and TaskbarSharedState's sysuiStateFlags are updated while the device is folded unfold -> TaskbarActivityContext is recreated and initialized which restores from the shared state's inAppDisplayProgressMultiPropValues. It also tries to reapply the shared state's sysuiStateFlags, but this doesn't update inAppDisplayProgressMultiPropValues because the state's "enabled" state is not updated (default is no flag set, and lockscreen sysui state is not set anymore). -> The restored inAppDisplayProgressMultiPropValues value results in the wrong translation. - Note that after the above, the NavbarButtonsViewController state is actually correct and reflects the SysUI state, but the LauncherTaskbarUiController state is wrong. This CL tries to manually update the ui controller to the correct state when it is recreated. - CL also fixes a separate issue where LauncherTaskbarUIController could potentially overwrite the saved state progresses while restoring them due to the state callback being called Bug: 283346744 Test: Unfold -> Lockscreen -> Fold -> Unlock -> Unfold and ensure the buttons are translated correctly Signed-off-by:Winson Chung <winsonc@google.com> (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:ccd359d76c7f42d4fc799f19d54a66c7c2fa462a) Merged-In: I43e473faf4fa2a493b9705506e3755df8f6264e7 Change-Id: I43e473faf4fa2a493b9705506e3755df8f6264e7
Loading
Please register or sign in to comment