diff --git a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java index 0565f7e976..d02f804dbd 100644 --- a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java @@ -38,6 +38,7 @@ import android.animation.ObjectAnimator; import android.annotation.DrawableRes; import android.annotation.IdRes; import android.annotation.LayoutRes; +import android.content.pm.ActivityInfo.Config; import android.content.res.ColorStateList; import android.graphics.Rect; import android.graphics.Region; @@ -451,6 +452,12 @@ public class NavbarButtonsViewController { return mFloatingRotationButtonBounds.contains((int) ev.getX(), (int) ev.getY()); } + public void onConfigurationChanged(@Config int configChanges) { + if (mFloatingRotationButton != null) { + mFloatingRotationButton.onConfigurationChanged(configChanges); + } + } + public void onDestroy() { mPropertyHolders.clear(); mControllers.rotationButtonController.unregisterListeners(); diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index 5354232e05..8bd33ed820 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -31,6 +31,7 @@ import android.app.ActivityOptions; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; +import android.content.pm.ActivityInfo.Config; import android.content.pm.LauncherApps; import android.graphics.Insets; import android.graphics.PixelFormat; @@ -207,6 +208,10 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ Log.d(TASKBAR_WINDOW_CRASH, "Adding taskbar window"); } + public void onConfigurationChanged(@Config int configChanges) { + mControllers.onConfigurationChanged(configChanges); + } + public boolean isThreeButtonNav() { return mNavMode == Mode.THREE_BUTTONS; } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarControllers.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarControllers.java index 56730dbd70..26283a3f0e 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarControllers.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarControllers.java @@ -15,6 +15,8 @@ */ package com.android.launcher3.taskbar; +import android.content.pm.ActivityInfo.Config; + import androidx.annotation.NonNull; import com.android.systemui.shared.rotation.RotationButtonController; @@ -94,6 +96,10 @@ public class TaskbarControllers { taskbarEduController.init(this); } + public void onConfigurationChanged(@Config int configChanges) { + navbarButtonsViewController.onConfigurationChanged(configChanges); + } + /** * Cleans up all controllers. */ diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java index 6b7c597b45..5d550b68d8 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java @@ -107,6 +107,11 @@ public class TaskbarManager implements DisplayController.DisplayInfoChangeListen if ((configDiff & configsRequiringRecreate) != 0) { // Color has changed, recreate taskbar to reload background color & icons. recreateTaskbar(); + } else { + // Config change might be handled without re-creating the taskbar + if (mTaskbarActivityContext != null) { + mTaskbarActivityContext.onConfigurationChanged(configDiff); + } } mOldConfig = newConfig; }