From cb38ecbc8c94f7f9df7baf4cc4d104947d7be527 Mon Sep 17 00:00:00 2001 From: Sukesh Ram Date: Thu, 20 Mar 2025 05:10:42 -0700 Subject: [CD Taskbar] Null Protect Taskbar against onLauncherVisibilityChange crash Null Protect Taskbar against onLauncherVisibilityChange crash. Flag: EXEMPT not adding new behavior Bug: 403294086 Bug: 404928723 Test: m Change-Id: I84e899d26f93d484031073d1b63c6757daa8b141 --- .../launcher3/taskbar/LauncherTaskbarUIController.java | 17 +++++++++++------ .../launcher3/taskbar/TaskbarViewController.java | 3 ++- 2 files changed, 13 insertions(+), 7 deletions(-) (limited to 'quickstep/src') diff --git a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java index 913035ae21..02176ec59b 100644 --- a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java @@ -203,13 +203,18 @@ public class LauncherTaskbarUIController extends TaskbarUIController { */ @Override public void onLauncherVisibilityChanged(boolean isVisible) { - if (DesktopModeStatus.enterDesktopByDefaultOnFreeformDisplay(mLauncher)) { + if (DesktopModeStatus.enterDesktopByDefaultOnFreeformDisplay(mLauncher) + && mControllers.taskbarActivityContext.isPrimaryDisplay()) { DisplayController.INSTANCE.get(mLauncher).notifyConfigChange(); } + onLauncherVisibilityChanged(isVisible, false /* fromInit */); } private void onLauncherVisibilityChanged(boolean isVisible, boolean fromInitOrDestroy) { + if (mControllers == null) { + return; + } onLauncherVisibilityChanged( isVisible, fromInitOrDestroy, @@ -223,12 +228,12 @@ public class LauncherTaskbarUIController extends TaskbarUIController { if (!Flags.predictiveBackToHomePolish()) { shouldOverrideToFastAnimation |= mLauncher.getPredictiveBackToHomeInProgress(); } - boolean isPinnedTaskbar = - mControllers.taskbarActivityContext.isPinnedTaskbar(); - if (isVisible || isPinnedTaskbar) { - return getTaskbarToHomeDuration(shouldOverrideToFastAnimation, isPinnedTaskbar); + + boolean isPinned = mControllers.taskbarActivityContext.isPinnedTaskbar(); + if (isVisible || isPinned) { + return getTaskbarToHomeDuration(shouldOverrideToFastAnimation, isPinned); } else { - return mControllers.taskbarActivityContext.isTransientTaskbar() + return (mControllers.taskbarActivityContext.isTransientTaskbar()) ? TRANSIENT_TASKBAR_TRANSITION_DURATION : TASKBAR_TO_APP_DURATION; } } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java index c5b97e7bbc..6340bb1b69 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java @@ -495,7 +495,8 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar View[] iconViews = mTaskbarView.getIconViews(); float finalScale; - if (mControllers.getSharedState().startTaskbarVariantIsTransient) { + TaskbarSharedState sharedState = mControllers.getSharedState(); + if (sharedState != null || mControllers.getSharedState().startTaskbarVariantIsTransient) { finalScale = mapRange(scale, 1f, ((float) mPersistentIconSize / mTransientIconSize)); } else { finalScale = mapRange(scale, ((float) mTransientIconSize / mPersistentIconSize), 1f); -- cgit v1.2.3-59-g8ed1b