Initiate taskbar only after the user is unlocked

Bug: 188755902
Test: Presubmit
Change-Id: Ida4bc07f45396e82ab404a617aa6833afeea78bc
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java
index 65c87bd..263aa11 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java
@@ -57,6 +57,8 @@
     private static final int CHANGE_FLAGS =
             CHANGE_ACTIVE_SCREEN | CHANGE_DENSITY | CHANGE_SUPPORTED_BOUNDS;
 
+    private boolean mUserUnlocked = false;
+
     public TaskbarManager(TouchInteractionService service) {
         mDisplayController = DisplayController.INSTANCE.get(service);
         mSysUINavigationMode = SysUINavigationMode.INSTANCE.get(service);
@@ -90,6 +92,14 @@
     }
 
     /**
+     * Called when the user is unlocked
+     */
+    public void onUserUnlocked() {
+        mUserUnlocked = true;
+        recreateTaskbar();
+    }
+
+    /**
      * Sets or clears a launcher to act as taskbar callback
      */
     public void setLauncher(@Nullable BaseQuickstepLauncher launcher) {
@@ -106,6 +116,9 @@
         if (!FeatureFlags.ENABLE_TASKBAR.get()) {
             return;
         }
+        if (!mUserUnlocked) {
+            return;
+        }
         DeviceProfile dp = LauncherAppState.getIDP(mContext).getDeviceProfile(mContext);
         if (!dp.isTaskbarPresent) {
             return;
diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java
index d95f7b7..7956fcc 100644
--- a/quickstep/src/com/android/quickstep/TouchInteractionService.java
+++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java
@@ -325,6 +325,7 @@
         mDeviceState.addNavigationModeChangedCallback(this::onNavigationModeChanged);
         mDeviceState.addOneHandedModeChangedCallback(this::onOneHandedModeOverlayChanged);
         mDeviceState.runOnUserUnlocked(this::onUserUnlocked);
+        mDeviceState.runOnUserUnlocked(mTaskbarManager::onUserUnlocked);
         ProtoTracer.INSTANCE.get(this).add(this);
         sConnected = true;
     }