Delaying taskbar loading until user setup completed

> Also keeping it stashed while all-set activity is visible
> Creating a shared state (simiar to saved instance state) for taskbar
> Keeping taskbar stashed while all-set activity is visible

Bug: 194786060
Bug: 201782272
Test: Manual
Change-Id: Iab5e082243a206772266aece62d3028f5acb6400
This commit is contained in:
Sunny Goyal
2021-10-01 11:31:45 -07:00
parent 036b45aa1c
commit 2a528a43c1
13 changed files with 259 additions and 171 deletions

View File

@@ -76,7 +76,7 @@ public class TaskbarManager implements DisplayController.DisplayInfoChangeListen
* Cache a copy here so we can initialize state whenever taskbar is recreated, since
* this class does not get re-initialized w/ new taskbars.
*/
private int mSysuiStateFlags;
private final TaskbarSharedState mSharedState = new TaskbarSharedState();
private static final int CHANGE_FLAGS =
CHANGE_ACTIVE_SCREEN | CHANGE_DENSITY | CHANGE_SUPPORTED_BOUNDS;
@@ -192,22 +192,27 @@ public class TaskbarManager implements DisplayController.DisplayInfoChangeListen
mTaskbarActivityContext = new TaskbarActivityContext(mContext, dp.copy(mContext),
mNavButtonController, mUnfoldProgressProvider);
mTaskbarActivityContext.init();
mTaskbarActivityContext.init(mSharedState);
if (mLauncher != null) {
mTaskbarActivityContext.setUIController(
new LauncherTaskbarUIController(mLauncher, mTaskbarActivityContext));
}
onSysuiFlagsChangedInternal(mSysuiStateFlags, true /* forceUpdate */);
}
public void onSystemUiFlagsChanged(int systemUiStateFlags) {
onSysuiFlagsChangedInternal(systemUiStateFlags, false /* forceUpdate */);
mSharedState.sysuiStateFlags = systemUiStateFlags;
if (mTaskbarActivityContext != null) {
mTaskbarActivityContext.updateSysuiStateFlags(systemUiStateFlags);
}
}
private void onSysuiFlagsChangedInternal(int systemUiStateFlags, boolean forceUpdate) {
mSysuiStateFlags = systemUiStateFlags;
/**
* Sets the flag indicating setup UI is visible
*/
public void setSetupUIVisible(boolean isVisible) {
mSharedState.setupUIVisible = isVisible;
if (mTaskbarActivityContext != null) {
mTaskbarActivityContext.updateSysuiStateFlags(systemUiStateFlags, forceUpdate);
mTaskbarActivityContext.setSetupUIVisible(isVisible);
}
}