diff options
| author | 2024-06-11 22:53:46 -0700 | |
|---|---|---|
| committer | 2024-06-26 15:35:11 -0700 | |
| commit | 3b4d8934c98bd7cde178e900f4e3860d91cb231e (patch) | |
| tree | 6d7fba9b0b071449a33c8d0bb6475641ead11e06 | |
| parent | 083bbcfec8a0f56a75df5e98ff95cbc218e7db86 (diff) | |
Pipe nav bar transitions logic into task bar
Bug: 349155860
Test: manual
Flag: com.android.wm.shell.enable_taskbar_on_phones
Change-Id: I844a9113d2a89330ec6a15b88c76c10c755a0974
19 files changed, 202 insertions, 52 deletions
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/IOverviewProxy.aidl b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/IOverviewProxy.aidl index d5bc10a322d4..c00007b55482 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/IOverviewProxy.aidl +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/IOverviewProxy.aidl @@ -22,7 +22,7 @@ import android.os.Bundle; import android.view.MotionEvent; import com.android.systemui.shared.recents.ISystemUiProxy; -// Next ID: 29 +// Next ID: 34 oneway interface IOverviewProxy { void onActiveNavBarRegionChanges(in Region activeRegion) = 11; @@ -83,6 +83,11 @@ oneway interface IOverviewProxy { void onSystemBarAttributesChanged(int displayId, int behavior) = 20; /** + * Sent when {@link TaskbarDelegate#onTransitionModeUpdated} is called. + */ + void onTransitionModeUpdated(int barMode, boolean checkBarModes) = 21; + + /** * Sent when the desired dark intensity of the nav buttons has changed */ void onNavButtonsDarkIntensityChanged(float darkIntensity) = 22; @@ -101,4 +106,30 @@ oneway interface IOverviewProxy { * Sent when the task bar stash state is toggled. */ void onTaskbarToggled() = 27; + + /** + * Sent when the wallpaper visibility is updated. + */ + void updateWallpaperVisibility(int displayId, boolean visible) = 29; + + /** + * Sent when {@link TaskbarDelegate#checkNavBarModes} is called. + */ + void checkNavBarModes() = 30; + + /** + * Sent when {@link TaskbarDelegate#finishBarAnimations} is called. + */ + void finishBarAnimations() = 31; + + /** + * Sent when {@link TaskbarDelegate#touchAutoDim} is called. {@param reset} is true, when auto + * dim is reset after a timeout. + */ + void touchAutoDim(boolean reset) = 32; + + /** + * Sent when {@link TaskbarDelegate#transitionTo} is called. + */ + void transitionTo(int barMode, boolean animate) = 33; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BarTransitions.java b/packages/SystemUI/shared/src/com/android/systemui/shared/statusbar/phone/BarTransitions.java index f62a79f199e9..c123306880ca 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BarTransitions.java +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/statusbar/phone/BarTransitions.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013 The Android Open Source Project + * Copyright (C) 2024 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,11 +14,13 @@ * limitations under the License. */ -package com.android.systemui.statusbar.phone; +package com.android.systemui.shared.statusbar.phone; +import android.annotation.ColorInt; import android.annotation.IntDef; import android.content.Context; import android.content.res.Resources; +import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.ColorFilter; @@ -34,8 +36,6 @@ import android.util.Log; import android.view.View; import com.android.app.animation.Interpolators; -import com.android.settingslib.Utils; -import com.android.systemui.res.R; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -44,6 +44,11 @@ public class BarTransitions { private static final boolean DEBUG = false; private static final boolean DEBUG_COLORS = false; + @ColorInt + private static final int SYSTEM_BAR_BACKGROUND_OPAQUE = Color.BLACK; + @ColorInt + private static final int SYSTEM_BAR_BACKGROUND_TRANSPARENT = Color.TRANSPARENT; + public static final int MODE_TRANSPARENT = 0; public static final int MODE_SEMI_TRANSPARENT = 1; public static final int MODE_TRANSLUCENT = 2; @@ -183,11 +188,11 @@ public class BarTransitions { mTransparent = 0x2f0000ff; mWarning = 0xffff0000; } else { - mOpaque = context.getColor(R.color.system_bar_background_opaque); + mOpaque = SYSTEM_BAR_BACKGROUND_OPAQUE; mSemiTransparent = context.getColor( com.android.internal.R.color.system_bar_background_semi_transparent); - mTransparent = context.getColor(R.color.system_bar_background_transparent); - mWarning = Utils.getColorAttrDefaultColor(context, android.R.attr.colorError); + mTransparent = SYSTEM_BAR_BACKGROUND_TRANSPARENT; + mWarning = getColorAttrDefaultColor(context, android.R.attr.colorError, 0); } mGradient = context.getDrawable(gradientResourceId); } @@ -226,7 +231,7 @@ public class BarTransitions { @Override public void setTint(int color) { PorterDuff.Mode targetMode = mTintFilter == null ? Mode.SRC_IN : - mTintFilter.getMode(); + mTintFilter.getMode(); if (mTintFilter == null || mTintFilter.getColor() != color) { mTintFilter = new PorterDuffColorFilter(color, targetMode); } @@ -304,10 +309,13 @@ public class BarTransitions { Interpolators.LINEAR.getInterpolation(t), 1)); mGradientAlpha = (int)(v * targetGradientAlpha + mGradientAlphaStart * (1 - v)); mColor = Color.argb( - (int)(v * Color.alpha(targetColor) + Color.alpha(mColorStart) * (1 - v)), - (int)(v * Color.red(targetColor) + Color.red(mColorStart) * (1 - v)), - (int)(v * Color.green(targetColor) + Color.green(mColorStart) * (1 - v)), - (int)(v * Color.blue(targetColor) + Color.blue(mColorStart) * (1 - v))); + (int) (v * Color.alpha(targetColor) + Color.alpha(mColorStart) * (1 + - v)), + (int) (v * Color.red(targetColor) + Color.red(mColorStart) * (1 - v)), + (int) (v * Color.green(targetColor) + Color.green(mColorStart) * (1 + - v)), + (int) (v * Color.blue(targetColor) + Color.blue(mColorStart) * (1 + - v))); } } if (mGradientAlpha > 0) { @@ -332,4 +340,13 @@ public class BarTransitions { } } } + + /** Get color styled attribute {@code attr}, default to {@code defValue} if not found. */ + @ColorInt + public static int getColorAttrDefaultColor(Context context, int attr, @ColorInt int defValue) { + TypedArray ta = context.obtainStyledAttributes(new int[] {attr}); + @ColorInt int colorAccent = ta.getColor(0, defValue); + ta.recycle(); + return colorAccent; + } } diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavBarHelper.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavBarHelper.java index 2e5ff9ddb477..b39315575882 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavBarHelper.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavBarHelper.java @@ -27,11 +27,11 @@ import static com.android.systemui.accessibility.SystemActions.SYSTEM_ACTION_ID_ import static com.android.systemui.accessibility.SystemActions.SYSTEM_ACTION_ID_ACCESSIBILITY_BUTTON_CHOOSER; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_A11Y_BUTTON_CLICKABLE; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_A11Y_BUTTON_LONG_CLICKABLE; -import static com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT; -import static com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT_TRANSPARENT; -import static com.android.systemui.statusbar.phone.BarTransitions.MODE_OPAQUE; -import static com.android.systemui.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT; -import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARENT; +import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT; +import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT_TRANSPARENT; +import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_OPAQUE; +import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT; +import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_TRANSPARENT; import android.content.ContentResolver; import android.content.Context; @@ -74,10 +74,10 @@ import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.settings.DisplayTracker; import com.android.systemui.settings.UserTracker; import com.android.systemui.shared.rotation.RotationPolicyUtil; +import com.android.systemui.shared.statusbar.phone.BarTransitions.TransitionMode; import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.NotificationShadeWindowController; -import com.android.systemui.statusbar.phone.BarTransitions.TransitionMode; import com.android.systemui.statusbar.phone.CentralSurfaces; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.KeyguardStateController; diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java index 69aa450a9d4c..89dce032c727 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java @@ -48,8 +48,8 @@ import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_I import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_NAV_BAR_HIDDEN; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_SCREEN_PINNING; import static com.android.systemui.shared.system.QuickStepContract.isGesturalMode; -import static com.android.systemui.statusbar.phone.BarTransitions.MODE_OPAQUE; -import static com.android.systemui.statusbar.phone.BarTransitions.TransitionMode; +import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_OPAQUE; +import static com.android.systemui.shared.statusbar.phone.BarTransitions.TransitionMode; import static com.android.systemui.statusbar.phone.CentralSurfaces.DEBUG_WINDOW_STATE; import static com.android.systemui.statusbar.phone.CentralSurfaces.dumpBarTransitions; import static com.android.systemui.util.Utils.isGesturalModeOnDefaultDisplay; @@ -137,6 +137,7 @@ import com.android.systemui.shared.navigationbar.RegionSamplingHelper; import com.android.systemui.shared.recents.utilities.Utilities; import com.android.systemui.shared.rotation.RotationButtonController; import com.android.systemui.shared.rotation.RotationPolicyUtil; +import com.android.systemui.shared.statusbar.phone.BarTransitions; import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.shared.system.SysUiStatsLog; import com.android.systemui.shared.system.TaskStackChangeListener; @@ -149,7 +150,6 @@ import com.android.systemui.statusbar.NotificationShadeDepthController; import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.notification.stack.StackStateAnimator; import com.android.systemui.statusbar.phone.AutoHideController; -import com.android.systemui.statusbar.phone.BarTransitions; import com.android.systemui.statusbar.phone.CentralSurfaces; import com.android.systemui.statusbar.phone.LightBarController; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarController.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarController.java index a601d7f25b6e..c801662b2a66 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarController.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarController.java @@ -19,7 +19,7 @@ package com.android.systemui.navigationbar; import androidx.annotation.Nullable; import com.android.internal.statusbar.RegisterStatusBarResult; -import com.android.systemui.statusbar.phone.BarTransitions; +import com.android.systemui.shared.statusbar.phone.BarTransitions; /** A controller to handle navigation bars. */ public interface NavigationBarController { diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarControllerEmptyImpl.kt b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarControllerEmptyImpl.kt index e73b078a3d88..06a78c59ef04 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarControllerEmptyImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarControllerEmptyImpl.kt @@ -18,7 +18,7 @@ package com.android.systemui.navigationbar import com.android.internal.statusbar.RegisterStatusBarResult import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.statusbar.phone.BarTransitions +import com.android.systemui.shared.statusbar.phone.BarTransitions import javax.inject.Inject /** A no-op version of [NavigationBarController] for variants like Arc and TV. */ diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarControllerImpl.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarControllerImpl.java index 1c2a0871f3f9..f0207aa69bf9 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarControllerImpl.java @@ -56,11 +56,11 @@ import com.android.systemui.dump.DumpManager; import com.android.systemui.model.SysUiState; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.settings.DisplayTracker; +import com.android.systemui.shared.statusbar.phone.BarTransitions.TransitionMode; import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.shared.system.TaskStackChangeListeners; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.AutoHideController; -import com.android.systemui.statusbar.phone.BarTransitions.TransitionMode; import com.android.systemui.statusbar.phone.LightBarController; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.util.settings.SecureSettings; @@ -431,6 +431,8 @@ public class NavigationBarControllerImpl implements NavigationBar navBar = mNavigationBars.get(displayId); if (navBar != null) { navBar.checkNavBarModes(); + } else { + mTaskbarDelegate.checkNavBarModes(); } } @@ -439,6 +441,8 @@ public class NavigationBarControllerImpl implements NavigationBar navBar = mNavigationBars.get(displayId); if (navBar != null) { navBar.finishBarAnimations(); + } else { + mTaskbarDelegate.finishBarAnimations(); } } @@ -447,6 +451,8 @@ public class NavigationBarControllerImpl implements NavigationBar navBar = mNavigationBars.get(displayId); if (navBar != null) { navBar.touchAutoDim(); + } else { + mTaskbarDelegate.touchAutoDim(); } } @@ -455,6 +461,8 @@ public class NavigationBarControllerImpl implements NavigationBar navBar = mNavigationBars.get(displayId); if (navBar != null) { navBar.transitionTo(barMode, animate); + } else { + mTaskbarDelegate.transitionTo(barMode, animate); } } diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarTransitions.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarTransitions.java index 201e58625098..54425985cb8c 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarTransitions.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarTransitions.java @@ -28,7 +28,7 @@ import com.android.systemui.navigationbar.NavigationBarComponent.NavigationBarSc import com.android.systemui.navigationbar.buttons.ButtonDispatcher; import com.android.systemui.res.R; import com.android.systemui.settings.DisplayTracker; -import com.android.systemui.statusbar.phone.BarTransitions; +import com.android.systemui.shared.statusbar.phone.BarTransitions; import com.android.systemui.statusbar.phone.LightBarTransitionsController; import java.io.PrintWriter; diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java b/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java index b360af098fa0..d022c1c2e948 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java @@ -24,6 +24,7 @@ import static android.view.WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_B import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION; import static com.android.systemui.navigationbar.NavBarHelper.transitionMode; +import static com.android.systemui.shared.statusbar.phone.BarTransitions.TransitionMode; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_A11Y_BUTTON_CLICKABLE; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_A11Y_BUTTON_LONG_CLICKABLE; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_ALLOW_GESTURE_IGNORING_BAR_VISIBILITY; @@ -34,7 +35,6 @@ import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_I import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_NAV_BAR_HIDDEN; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_OVERVIEW_DISABLED; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_SCREEN_PINNING; -import static com.android.systemui.statusbar.phone.BarTransitions.TransitionMode; import android.app.StatusBarManager; import android.app.StatusBarManager.WindowVisibleState; @@ -63,13 +63,16 @@ import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dump.DumpManager; import com.android.systemui.model.SysUiState; import com.android.systemui.navigationbar.gestural.EdgeBackGestureHandler; +import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.shared.recents.utilities.Utilities; +import com.android.systemui.shared.statusbar.phone.BarTransitions; import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.shared.system.TaskStackChangeListener; import com.android.systemui.shared.system.TaskStackChangeListeners; import com.android.systemui.statusbar.AutoHideUiElement; import com.android.systemui.statusbar.CommandQueue; +import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.phone.AutoHideController; import com.android.systemui.statusbar.phone.LightBarController; import com.android.systemui.statusbar.phone.LightBarTransitionsController; @@ -117,6 +120,11 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, boolean longPressHomeEnabled) { updateAssistantAvailability(available, longPressHomeEnabled); } + + @Override + public void updateWallpaperVisibility(boolean visible, int displayId) { + updateWallpaperVisible(displayId, visible); + } }; private int mDisabledFlags; private @WindowVisibleState int mTaskBarWindowState = WINDOW_STATE_SHOWING; @@ -150,6 +158,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, private final AutoHideUiElement mAutoHideUiElement = new AutoHideUiElement() { @Override public void synchronizeState() { + checkNavBarModes(); } @Override @@ -165,11 +174,13 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, private BackAnimation mBackAnimation; - private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager; + private final StatusBarKeyguardViewManager mStatusBarKeyguardViewManager; + private final StatusBarStateController mStatusBarStateController; @Inject public TaskbarDelegate(Context context, LightBarTransitionsController.Factory lightBarTransitionsControllerFactory, - StatusBarKeyguardViewManager statusBarKeyguardViewManager) { + StatusBarKeyguardViewManager statusBarKeyguardViewManager, + StatusBarStateController statusBarStateController) { mLightBarTransitionsControllerFactory = lightBarTransitionsControllerFactory; mContext = context; @@ -179,6 +190,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, }; mStatusBarKeyguardViewManager = statusBarKeyguardViewManager; mStatusBarKeyguardViewManager.setTaskbarDelegate(this); + mStatusBarStateController = statusBarStateController; } public void setDependencies(CommandQueue commandQueue, @@ -324,6 +336,68 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, return (mSysUiState.getFlags() & View.STATUS_BAR_DISABLE_RECENT) == 0; } + void onTransitionModeUpdated(int barMode, boolean checkBarModes) { + if (mOverviewProxyService.getProxy() == null) { + return; + } + + try { + mOverviewProxyService.getProxy().onTransitionModeUpdated(barMode, checkBarModes); + } catch (RemoteException e) { + Log.e(TAG, "onTransitionModeUpdated() failed, barMode: " + barMode, e); + } + } + + void checkNavBarModes() { + if (mOverviewProxyService.getProxy() == null) { + return; + } + + try { + mOverviewProxyService.getProxy().checkNavBarModes(); + } catch (RemoteException e) { + Log.e(TAG, "checkNavBarModes() failed", e); + } + } + + void finishBarAnimations() { + if (mOverviewProxyService.getProxy() == null) { + return; + } + + try { + mOverviewProxyService.getProxy().finishBarAnimations(); + } catch (RemoteException e) { + Log.e(TAG, "finishBarAnimations() failed", e); + } + } + + void touchAutoDim() { + if (mOverviewProxyService.getProxy() == null) { + return; + } + + try { + int state = mStatusBarStateController.getState(); + boolean shouldReset = + state != StatusBarState.KEYGUARD && state != StatusBarState.SHADE_LOCKED; + mOverviewProxyService.getProxy().touchAutoDim(shouldReset); + } catch (RemoteException e) { + Log.e(TAG, "touchAutoDim() failed", e); + } + } + + void transitionTo(@BarTransitions.TransitionMode int barMode, boolean animate) { + if (mOverviewProxyService.getProxy() == null) { + return; + } + + try { + mOverviewProxyService.getProxy().transitionTo(barMode, animate); + } catch (RemoteException e) { + Log.e(TAG, "transitionTo() failed, barMode: " + barMode, e); + } + } private void updateAssistantAvailability(boolean assistantAvailable, boolean longPressHomeEnabled) { if (mOverviewProxyService.getProxy() == null) { @@ -338,6 +412,18 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, } } + private void updateWallpaperVisible(int displayId, boolean visible) { + if (mOverviewProxyService.getProxy() == null) { + return; + } + + try { + mOverviewProxyService.getProxy().updateWallpaperVisibility(displayId, visible); + } catch (RemoteException e) { + Log.e(TAG, "updateWallpaperVisibility() failed, visible: " + visible, e); + } + } + @Override public void setImeWindowStatus(int displayId, IBinder token, int vis, int backDisposition, boolean showImeSwitcher) { @@ -465,9 +551,11 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, private boolean updateTransitionMode(int barMode) { if (mTransitionMode != barMode) { mTransitionMode = barMode; + onTransitionModeUpdated(barMode, true); if (mAutoHideController != null) { mAutoHideController.touchAutoHide(); } + return true; } return false; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/data/model/StatusBarMode.kt b/packages/SystemUI/src/com/android/systemui/statusbar/data/model/StatusBarMode.kt index 933d0ab880bd..b4670320bdc0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/data/model/StatusBarMode.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/data/model/StatusBarMode.kt @@ -16,13 +16,13 @@ package com.android.systemui.statusbar.data.model -import com.android.systemui.statusbar.phone.BarTransitions -import com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT -import com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT_TRANSPARENT -import com.android.systemui.statusbar.phone.BarTransitions.MODE_OPAQUE -import com.android.systemui.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT -import com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARENT -import com.android.systemui.statusbar.phone.BarTransitions.TransitionMode +import com.android.systemui.shared.statusbar.phone.BarTransitions +import com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT +import com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT_TRANSPARENT +import com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_OPAQUE +import com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT +import com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_TRANSPARENT +import com.android.systemui.shared.statusbar.phone.BarTransitions.TransitionMode /** * The possible status bar modes. diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfaces.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfaces.java index d75a738898b3..0a02381da4d5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfaces.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfaces.java @@ -44,6 +44,7 @@ import com.android.systemui.display.data.repository.DisplayMetricsRepository; import com.android.systemui.navigationbar.NavigationBarView; import com.android.systemui.plugins.ActivityStarter.OnDismissAction; import com.android.systemui.qs.QSPanelController; +import com.android.systemui.shared.statusbar.phone.BarTransitions; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; import com.android.systemui.util.Compile; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java index 5c262f3124a9..28117e9c9f93 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java @@ -181,6 +181,7 @@ import com.android.systemui.shade.ShadeLogger; import com.android.systemui.shade.ShadeSurface; import com.android.systemui.shade.ShadeViewController; import com.android.systemui.shared.recents.utilities.Utilities; +import com.android.systemui.shared.statusbar.phone.BarTransitions; import com.android.systemui.statusbar.AutoHideUiElement; import com.android.systemui.statusbar.CircleReveal; import com.android.systemui.statusbar.CommandQueue; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java index eec617bf91d3..a33996b99900 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java @@ -19,8 +19,8 @@ package com.android.systemui.statusbar.phone; import static android.view.WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS; import static android.view.WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS; -import static com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT_TRANSPARENT; -import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARENT; +import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT_TRANSPARENT; +import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_TRANSPARENT; import android.content.Context; import android.graphics.Rect; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarTransitions.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarTransitions.java index ae3f92355510..6676a7f7cdf8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarTransitions.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarTransitions.java @@ -23,6 +23,7 @@ import android.content.res.Resources; import android.view.View; import com.android.systemui.res.R; +import com.android.systemui.shared.statusbar.phone.BarTransitions; public final class PhoneStatusBarTransitions extends BarTransitions { private static final float ICON_ALPHA_WHEN_NOT_OPAQUE = 1; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarDemoMode.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarDemoMode.java index 29c13723ca89..25b8bfe0da25 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarDemoMode.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarDemoMode.java @@ -16,11 +16,11 @@ package com.android.systemui.statusbar.phone; -import static com.android.systemui.statusbar.phone.BarTransitions.MODE_OPAQUE; -import static com.android.systemui.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT; -import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSLUCENT; -import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARENT; -import static com.android.systemui.statusbar.phone.BarTransitions.MODE_WARNING; +import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_OPAQUE; +import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT; +import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_TRANSLUCENT; +import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_TRANSPARENT; +import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_WARNING; import static com.android.systemui.statusbar.phone.fragment.dagger.StatusBarFragmentModule.OPERATOR_NAME_VIEW; import android.annotation.NonNull; diff --git a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTransitionsTest.java b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTransitionsTest.java index fbfd35fd5b9c..c7a92d2a390d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTransitionsTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTransitionsTest.java @@ -36,7 +36,7 @@ import com.android.systemui.navigationbar.gestural.EdgeBackGestureHandler; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.settings.FakeDisplayTracker; -import com.android.systemui.statusbar.phone.BarTransitions; +import com.android.systemui.shared.statusbar.phone.BarTransitions; import com.android.systemui.statusbar.phone.LightBarTransitionsController; import com.android.systemui.statusbar.policy.KeyguardStateController; diff --git a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/TaskbarDelegateTest.kt b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/TaskbarDelegateTest.kt index 5ed8a11e862f..eae6cdbe4d2c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/TaskbarDelegateTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/TaskbarDelegateTest.kt @@ -7,6 +7,7 @@ import com.android.systemui.SysuiTestCase import com.android.systemui.dump.DumpManager import com.android.systemui.model.SysUiState import com.android.systemui.navigationbar.gestural.EdgeBackGestureHandler +import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.recents.OverviewProxyService import com.android.systemui.shared.system.QuickStepContract import com.android.systemui.shared.system.TaskStackChangeListeners @@ -70,6 +71,8 @@ class TaskbarDelegateTest : SysuiTestCase() { lateinit var mCurrentSysUiState: NavBarHelper.CurrentSysuiState @Mock lateinit var mStatusBarKeyguardViewManager: StatusBarKeyguardViewManager + @Mock + lateinit var mStatusBarStateController: StatusBarStateController @Before fun setup() { @@ -80,7 +83,7 @@ class TaskbarDelegateTest : SysuiTestCase() { `when`(mSysUiState.setFlag(anyLong(), anyBoolean())).thenReturn(mSysUiState) mTaskStackChangeListeners = TaskStackChangeListeners.getTestInstance() mTaskbarDelegate = TaskbarDelegate(context, mLightBarControllerFactory, - mStatusBarKeyguardViewManager) + mStatusBarKeyguardViewManager, mStatusBarStateController) mTaskbarDelegate.setDependencies(mCommandQueue, mOverviewProxyService, mNavBarHelper, mNavigationModeController, mSysUiState, mDumpManager, mAutoHideController, mLightBarController, mOptionalPip, mBackAnimation, mTaskStackChangeListeners) diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LightBarControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LightBarControllerTest.java index a27073c77eb4..88ec18dd65f3 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LightBarControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LightBarControllerTest.java @@ -18,7 +18,7 @@ package com.android.systemui.statusbar.phone; import static android.view.WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS; -import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARENT; +import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_TRANSPARENT; import static junit.framework.Assert.assertTrue; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarTransitionsTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarTransitionsTest.kt index c4568a9ecfe6..318656b1a94d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarTransitionsTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarTransitionsTest.kt @@ -21,12 +21,12 @@ import android.view.View import androidx.test.filters.SmallTest import com.android.systemui.res.R import com.android.systemui.SysuiTestCase -import com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT -import com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT_TRANSPARENT -import com.android.systemui.statusbar.phone.BarTransitions.MODE_OPAQUE -import com.android.systemui.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT -import com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSLUCENT -import com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARENT +import com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT +import com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT_TRANSPARENT +import com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_OPAQUE +import com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT +import com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_TRANSLUCENT +import com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_TRANSPARENT import com.android.systemui.util.mockito.argumentCaptor import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever |