Loading quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +32 −30 Original line number Diff line number Diff line Loading @@ -505,52 +505,26 @@ public class TaskbarActivityContext extends BaseTaskbarContext { /** * Creates {@link WindowManager.LayoutParams} for Taskbar, and also sets LP.paramsForRotation * for taskbar showing as navigation bar * for taskbar */ private WindowManager.LayoutParams createAllWindowParams() { final int windowType = ENABLE_TASKBAR_NAVBAR_UNIFICATION ? TYPE_NAVIGATION_BAR : TYPE_NAVIGATION_BAR_PANEL; WindowManager.LayoutParams windowLayoutParams = createDefaultWindowLayoutParams(windowType, TaskbarActivityContext.WINDOW_TITLE); if (!isPhoneButtonNavMode()) { return windowLayoutParams; } // Provide WM layout params for all rotations to cache, see NavigationBar#getBarLayoutParams int width = WindowManager.LayoutParams.MATCH_PARENT; int height = WindowManager.LayoutParams.MATCH_PARENT; int gravity = Gravity.BOTTOM; windowLayoutParams.paramsForRotation = new WindowManager.LayoutParams[4]; for (int rot = Surface.ROTATION_0; rot <= Surface.ROTATION_270; rot++) { WindowManager.LayoutParams lp = createDefaultWindowLayoutParams(windowType, TaskbarActivityContext.WINDOW_TITLE); switch (rot) { case Surface.ROTATION_0, Surface.ROTATION_180 -> { // Defaults are fine width = WindowManager.LayoutParams.MATCH_PARENT; height = mLastRequestedNonFullscreenSize; gravity = Gravity.BOTTOM; } case Surface.ROTATION_90 -> { width = mLastRequestedNonFullscreenSize; height = WindowManager.LayoutParams.MATCH_PARENT; gravity = Gravity.END; if (isPhoneButtonNavMode()) { populatePhoneButtonNavModeWindowLayoutParams(rot, lp); } case Surface.ROTATION_270 -> { width = mLastRequestedNonFullscreenSize; height = WindowManager.LayoutParams.MATCH_PARENT; gravity = Gravity.START; } } lp.width = width; lp.height = height; lp.gravity = gravity; windowLayoutParams.paramsForRotation[rot] = lp; } // Override current layout params // Override with current layout params WindowManager.LayoutParams currentParams = windowLayoutParams.paramsForRotation[getDisplay().getRotation()]; windowLayoutParams.width = currentParams.width; Loading @@ -560,6 +534,32 @@ public class TaskbarActivityContext extends BaseTaskbarContext { return windowLayoutParams; } /** * Update {@link WindowManager.LayoutParams} with values specific to phone and 3 button * navigation users */ private void populatePhoneButtonNavModeWindowLayoutParams(int rot, WindowManager.LayoutParams lp) { lp.width = WindowManager.LayoutParams.MATCH_PARENT; lp.height = WindowManager.LayoutParams.MATCH_PARENT; lp.gravity = Gravity.BOTTOM; // Override with per-rotation specific values switch (rot) { case Surface.ROTATION_0, Surface.ROTATION_180 -> { lp.height = mLastRequestedNonFullscreenSize; } case Surface.ROTATION_90 -> { lp.width = mLastRequestedNonFullscreenSize; lp.gravity = Gravity.END; } case Surface.ROTATION_270 -> { lp.width = mLastRequestedNonFullscreenSize; lp.gravity = Gravity.START; } } } public void onConfigurationChanged(@Config int configChanges) { mControllers.onConfigurationChanged(configChanges); if (!mIsUserSetupComplete) { Loading Loading @@ -920,8 +920,10 @@ public class TaskbarActivityContext extends BaseTaskbarContext { } if (landscapePhoneButtonNav) { mWindowLayoutParams.width = size; mWindowLayoutParams.paramsForRotation[getDisplay().getRotation()].width = size; } else { mWindowLayoutParams.height = size; mWindowLayoutParams.paramsForRotation[getDisplay().getRotation()].height = size; } mControllers.taskbarInsetsController.onTaskbarOrBubblebarWindowHeightOrInsetsChanged(); notifyUpdateLayoutParams(); Loading quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt +6 −15 Original line number Diff line number Diff line Loading @@ -118,13 +118,11 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas getProvidedInsets(insetsRoundedCornerFlag) } if (!context.isGestureNav) { if (windowLayoutParams.paramsForRotation != null) { for (layoutParams in windowLayoutParams.paramsForRotation) { layoutParams.providedInsets = getProvidedInsets(insetsRoundedCornerFlag) } } } val taskbarTouchableHeight = controllers.taskbarStashController.touchableHeight val bubblesTouchableHeight = Loading Loading @@ -156,21 +154,14 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas ) } val gravity = windowLayoutParams.gravity // Pre-calculate insets for different providers across different rotations for this gravity for (rotation in Surface.ROTATION_0..Surface.ROTATION_270) { // Add insets for navbar rotated params if (windowLayoutParams.paramsForRotation != null) { val layoutParams = windowLayoutParams.paramsForRotation[rotation] for (provider in layoutParams.providedInsets) { setProviderInsets(provider, layoutParams.gravity, rotation) } } for (provider in windowLayoutParams.providedInsets) { setProviderInsets(provider, gravity, rotation) } } context.notifyUpdateLayoutParams() } Loading Loading
quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +32 −30 Original line number Diff line number Diff line Loading @@ -505,52 +505,26 @@ public class TaskbarActivityContext extends BaseTaskbarContext { /** * Creates {@link WindowManager.LayoutParams} for Taskbar, and also sets LP.paramsForRotation * for taskbar showing as navigation bar * for taskbar */ private WindowManager.LayoutParams createAllWindowParams() { final int windowType = ENABLE_TASKBAR_NAVBAR_UNIFICATION ? TYPE_NAVIGATION_BAR : TYPE_NAVIGATION_BAR_PANEL; WindowManager.LayoutParams windowLayoutParams = createDefaultWindowLayoutParams(windowType, TaskbarActivityContext.WINDOW_TITLE); if (!isPhoneButtonNavMode()) { return windowLayoutParams; } // Provide WM layout params for all rotations to cache, see NavigationBar#getBarLayoutParams int width = WindowManager.LayoutParams.MATCH_PARENT; int height = WindowManager.LayoutParams.MATCH_PARENT; int gravity = Gravity.BOTTOM; windowLayoutParams.paramsForRotation = new WindowManager.LayoutParams[4]; for (int rot = Surface.ROTATION_0; rot <= Surface.ROTATION_270; rot++) { WindowManager.LayoutParams lp = createDefaultWindowLayoutParams(windowType, TaskbarActivityContext.WINDOW_TITLE); switch (rot) { case Surface.ROTATION_0, Surface.ROTATION_180 -> { // Defaults are fine width = WindowManager.LayoutParams.MATCH_PARENT; height = mLastRequestedNonFullscreenSize; gravity = Gravity.BOTTOM; } case Surface.ROTATION_90 -> { width = mLastRequestedNonFullscreenSize; height = WindowManager.LayoutParams.MATCH_PARENT; gravity = Gravity.END; if (isPhoneButtonNavMode()) { populatePhoneButtonNavModeWindowLayoutParams(rot, lp); } case Surface.ROTATION_270 -> { width = mLastRequestedNonFullscreenSize; height = WindowManager.LayoutParams.MATCH_PARENT; gravity = Gravity.START; } } lp.width = width; lp.height = height; lp.gravity = gravity; windowLayoutParams.paramsForRotation[rot] = lp; } // Override current layout params // Override with current layout params WindowManager.LayoutParams currentParams = windowLayoutParams.paramsForRotation[getDisplay().getRotation()]; windowLayoutParams.width = currentParams.width; Loading @@ -560,6 +534,32 @@ public class TaskbarActivityContext extends BaseTaskbarContext { return windowLayoutParams; } /** * Update {@link WindowManager.LayoutParams} with values specific to phone and 3 button * navigation users */ private void populatePhoneButtonNavModeWindowLayoutParams(int rot, WindowManager.LayoutParams lp) { lp.width = WindowManager.LayoutParams.MATCH_PARENT; lp.height = WindowManager.LayoutParams.MATCH_PARENT; lp.gravity = Gravity.BOTTOM; // Override with per-rotation specific values switch (rot) { case Surface.ROTATION_0, Surface.ROTATION_180 -> { lp.height = mLastRequestedNonFullscreenSize; } case Surface.ROTATION_90 -> { lp.width = mLastRequestedNonFullscreenSize; lp.gravity = Gravity.END; } case Surface.ROTATION_270 -> { lp.width = mLastRequestedNonFullscreenSize; lp.gravity = Gravity.START; } } } public void onConfigurationChanged(@Config int configChanges) { mControllers.onConfigurationChanged(configChanges); if (!mIsUserSetupComplete) { Loading Loading @@ -920,8 +920,10 @@ public class TaskbarActivityContext extends BaseTaskbarContext { } if (landscapePhoneButtonNav) { mWindowLayoutParams.width = size; mWindowLayoutParams.paramsForRotation[getDisplay().getRotation()].width = size; } else { mWindowLayoutParams.height = size; mWindowLayoutParams.paramsForRotation[getDisplay().getRotation()].height = size; } mControllers.taskbarInsetsController.onTaskbarOrBubblebarWindowHeightOrInsetsChanged(); notifyUpdateLayoutParams(); Loading
quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt +6 −15 Original line number Diff line number Diff line Loading @@ -118,13 +118,11 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas getProvidedInsets(insetsRoundedCornerFlag) } if (!context.isGestureNav) { if (windowLayoutParams.paramsForRotation != null) { for (layoutParams in windowLayoutParams.paramsForRotation) { layoutParams.providedInsets = getProvidedInsets(insetsRoundedCornerFlag) } } } val taskbarTouchableHeight = controllers.taskbarStashController.touchableHeight val bubblesTouchableHeight = Loading Loading @@ -156,21 +154,14 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas ) } val gravity = windowLayoutParams.gravity // Pre-calculate insets for different providers across different rotations for this gravity for (rotation in Surface.ROTATION_0..Surface.ROTATION_270) { // Add insets for navbar rotated params if (windowLayoutParams.paramsForRotation != null) { val layoutParams = windowLayoutParams.paramsForRotation[rotation] for (provider in layoutParams.providedInsets) { setProviderInsets(provider, layoutParams.gravity, rotation) } } for (provider in windowLayoutParams.providedInsets) { setProviderInsets(provider, gravity, rotation) } } context.notifyUpdateLayoutParams() } Loading