Fix taskbar stash state not persisting properly across recreate
Because we check supportsVisualStashing() in TaskbarStashController#init(), we need to avoid using TaskbarUIController to provide that value since TaskbarUIController isn't initialized until a bit later than the other controllers. So I moved the logic from supportsVisualStashing() back to TaskbarStashController, but still allow TaskbarUIController to override it (e.g. for DesktopTaskbarUIController). After that fix, I noticed that force stopping launcher (to test the fix) would briefly show the taskbar background before resetting the stashed state. This is also due to LauncherTaskbarUIController not being ready immediately, since that's what sets FLAG_IN_APP due to launcher being paused. To work around this, I set FLAG_IN_APP to true by default in TaskbarStashController#init(), since that is the most common case, and taskbar background/stashed handle isn't shown on home anyway. Test: Force stop launcher while taskbar is stashed, verify it recreates as stashed without background flicker; same when changing wallpaper color on home or in app; also tested when taskbar isn't stashed and in 3 button mode for good measure Test: testHideTaskbarPersistsOnRecreate Fixes: 235986838 Change-Id: Ie55bd70e8288d5ad7433dde970f18c176831d747
Loading
Please register or sign in to comment