From f18c6b3cf6695835684001abb3edb18d0d6adc81 Mon Sep 17 00:00:00 2001 From: Vinit Nayak Date: Tue, 19 Apr 2022 18:37:29 +0000 Subject: [PATCH] Revert "Remove Dep.get(CommandQueue.class) from NavBarView" This reverts commit ef7b6b681ee564ee02ab84e8079d796046c6193c. Reason for revert: b/229413744 Change-Id: I4d75b1a6eb224a37007c034554af4b0698fbb79a --- .../systemui/navigationbar/NavigationBar.java | 21 ++++++++----------- .../NavigationBarTransitions.java | 21 +++++++++---------- .../navigationbar/NavigationBarView.java | 12 ++++++----- .../navigationbar/TaskbarDelegate.java | 2 +- .../phone/LightBarTransitionsController.java | 3 +-- .../navigationbar/NavigationBarTest.java | 4 ++-- .../NavigationBarTransitionsTest.java | 10 +++------ 7 files changed, 33 insertions(+), 40 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java index 08994b83cc6f0..0f45a7562d0cc 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java @@ -196,7 +196,6 @@ public class NavigationBar extends ViewController implements private final Optional mPipOptional; private final Optional mRecentsOptional; private final DeviceConfigProxy mDeviceConfigProxy; - private final NavigationBarTransitions mNavigationBarTransitions; private final Optional mBackAnimation; private final Handler mHandler; private final NavigationBarOverlayController mNavbarOverlayController; @@ -513,7 +512,6 @@ public class NavigationBar extends ViewController implements InputMethodManager inputMethodManager, DeadZone deadZone, DeviceConfigProxy deviceConfigProxy, - NavigationBarTransitions navigationBarTransitions, Optional backAnimation) { super(navigationBarView); mFrame = navigationBarFrame; @@ -538,7 +536,6 @@ public class NavigationBar extends ViewController implements mRecentsOptional = recentsOptional; mDeadZone = deadZone; mDeviceConfigProxy = deviceConfigProxy; - mNavigationBarTransitions = navigationBarTransitions; mBackAnimation = backAnimation; mHandler = mainHandler; mNavbarOverlayController = navbarOverlayController; @@ -563,7 +560,6 @@ public class NavigationBar extends ViewController implements public void onInit() { // TODO: A great deal of this code should probably live in onViewAttached. // It should also has corresponding cleanup in onViewDetached. - mView.setBarTransitions(mNavigationBarTransitions); mView.setTouchHandler(mTouchHandler); mView.setNavBarMode(mNavBarMode); mView.updateRotationButton(); @@ -635,7 +631,7 @@ public class NavigationBar extends ViewController implements mView.setOnVerticalChangedListener(this::onVerticalChanged); mView.setOnTouchListener(this::onNavigationTouch); if (mSavedState != null) { - getBarTransitions().getLightTransitionsController().restoreState(mSavedState); + mView.getLightTransitionsController().restoreState(mSavedState); } setNavigationIconHints(mNavigationIconHints); mView.setWindowVisible(isNavBarWindowVisible()); @@ -708,7 +704,8 @@ public class NavigationBar extends ViewController implements mView.getRotationButtonController(); rotationButtonController.setRotationCallback(null); mView.setUpdateActiveTouchRegionsCallback(null); - getBarTransitions().destroy(); + mView.getBarTransitions().destroy(); + mView.getLightTransitionsController().destroy(mContext); mOverviewProxyService.removeCallback(mOverviewProxyListener); mBroadcastDispatcher.unregisterReceiver(mBroadcastReceiver); if (mOrientationHandle != null) { @@ -734,7 +731,7 @@ public class NavigationBar extends ViewController implements outState.putInt(EXTRA_APPEARANCE, mAppearance); outState.putInt(EXTRA_BEHAVIOR, mBehavior); outState.putBoolean(EXTRA_TRANSIENT_STATE, mTransientShown); - getBarTransitions().getLightTransitionsController().saveState(outState); + mView.getLightTransitionsController().saveState(outState); } /** @@ -895,7 +892,7 @@ public class NavigationBar extends ViewController implements pw.println(" mTransientShown=" + mTransientShown); pw.println(" mTransientShownFromGestureOnSystemBar=" + mTransientShownFromGestureOnSystemBar); - dumpBarTransitions(pw, "mNavigationBarView", getBarTransitions()); + dumpBarTransitions(pw, "mNavigationBarView", mView.getBarTransitions()); mView.dump(pw); } @@ -1432,7 +1429,7 @@ public class NavigationBar extends ViewController implements mLightBarController = lightBarController; if (mLightBarController != null) { mLightBarController.setNavigationBar( - getBarTransitions().getLightTransitionsController()); + mView.getLightTransitionsController()); } } @@ -1474,7 +1471,7 @@ public class NavigationBar extends ViewController implements mCentralSurfacesOptionalLazy.get().map(CentralSurfaces::isDeviceInteractive) .orElse(false) && mNavigationBarWindowState != WINDOW_STATE_HIDDEN; - getBarTransitions().transitionTo(mTransitionMode, anim); + mView.getBarTransitions().transitionTo(mTransitionMode, anim); } public void disableAnimationsDuringHide(long delay) { @@ -1494,11 +1491,11 @@ public class NavigationBar extends ViewController implements } public NavigationBarTransitions getBarTransitions() { - return mNavigationBarTransitions; + return mView.getBarTransitions(); } public void finishBarAnimations() { - getBarTransitions().finishAnimations(); + mView.getBarTransitions().finishAnimations(); } private WindowManager.LayoutParams getBarLayoutParams(int rotation) { diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarTransitions.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarTransitions.java index e625501d89612..58e07db09c62a 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarTransitions.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarTransitions.java @@ -31,19 +31,17 @@ import android.view.View; import com.android.systemui.Dependency; import com.android.systemui.R; -import com.android.systemui.navigationbar.NavigationBarComponent.NavigationBarScope; import com.android.systemui.navigationbar.buttons.ButtonDispatcher; +import com.android.systemui.plugins.statusbar.StatusBarStateController; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.BarTransitions; import com.android.systemui.statusbar.phone.LightBarTransitionsController; +import com.android.systemui.statusbar.policy.KeyguardStateController; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; -import javax.inject.Inject; - -/** */ -@NavigationBarScope public final class NavigationBarTransitions extends BarTransitions implements LightBarTransitionsController.DarkIntensityApplier { @@ -83,13 +81,15 @@ public final class NavigationBarTransitions extends BarTransitions implements } }; - @Inject - public NavigationBarTransitions( - NavigationBarView view, - LightBarTransitionsController.Factory lightBarTransitionsControllerFactory) { + public NavigationBarTransitions(NavigationBarView view, CommandQueue commandQueue) { super(view, R.drawable.nav_background); mView = view; - mLightTransitionsController = lightBarTransitionsControllerFactory.create(this); + mLightTransitionsController = new LightBarTransitionsController( + view.getContext(), + this, + commandQueue, + Dependency.get(KeyguardStateController.class), + Dependency.get(StatusBarStateController.class)); mAllowAutoDimWallpaperNotVisible = view.getContext().getResources() .getBoolean(R.bool.config_navigation_bar_enable_auto_dim_no_visible_wallpaper); mDarkIntensityListeners = new ArrayList(); @@ -127,7 +127,6 @@ public final class NavigationBarTransitions extends BarTransitions implements Display.DEFAULT_DISPLAY); } catch (RemoteException e) { } - mLightTransitionsController.destroy(); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java index 8878c2decb877..abff914693d40 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java @@ -85,6 +85,7 @@ import com.android.systemui.shared.rotation.RotationButtonController; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.shared.system.WindowManagerWrapper; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.AutoHideController; import com.android.systemui.statusbar.phone.CentralSurfaces; import com.android.systemui.statusbar.phone.LightBarTransitionsController; @@ -139,7 +140,7 @@ public class NavigationBarView extends FrameLayout { private EdgeBackGestureHandler mEdgeBackGestureHandler; private final DeadZone mDeadZone; private boolean mDeadZoneConsuming = false; - private NavigationBarTransitions mBarTransitions; + private final NavigationBarTransitions mBarTransitions; @Nullable private AutoHideController mAutoHideController; @@ -369,6 +370,7 @@ public class NavigationBarView extends FrameLayout { mConfiguration.updateFrom(context.getResources().getConfiguration()); mScreenPinningNotify = new ScreenPinningNotify(mContext); + mBarTransitions = new NavigationBarTransitions(this, Dependency.get(CommandQueue.class)); mButtonDispatchers.put(R.id.back, new ButtonDispatcher(R.id.back)); mButtonDispatchers.put(R.id.home, new ButtonDispatcher(R.id.home)); @@ -416,14 +418,14 @@ public class NavigationBarView extends FrameLayout { } } - void setBarTransitions(NavigationBarTransitions navigationBarTransitions) { - mBarTransitions = navigationBarTransitions; - } - public void setAutoHideController(AutoHideController autoHideController) { mAutoHideController = autoHideController; } + public NavigationBarTransitions getBarTransitions() { + return mBarTransitions; + } + public LightBarTransitionsController getLightTransitionsController() { return mBarTransitions.getLightTransitionsController(); } diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java b/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java index fdcedd123538d..67de45538f3fb 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java @@ -265,7 +265,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, mWindowContext = null; } mAutoHideController.setNavigationBar(null); - mLightBarTransitionsController.destroy(); + mLightBarTransitionsController.destroy(mContext); mLightBarController.setNavigationBar(null); mPipOptional.ifPresent(this::removePipExclusionBoundsChangeListener); mInitialized = false; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarTransitionsController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarTransitionsController.java index 47ecf71936b86..4fd664b3efd35 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarTransitionsController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarTransitionsController.java @@ -94,8 +94,7 @@ public class LightBarTransitionsController implements Dumpable, Callbacks, mDisplayId = mContext.getDisplayId(); } - /** Call to cleanup the LightBarTransitionsController when done with it. */ - public void destroy() { + public void destroy(Context context) { mCommandQueue.removeCallback(this); mStatusBarStateController.removeCallback(this); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTest.java index 4a740f6c55710..f5b006d732fdb 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTest.java @@ -205,9 +205,10 @@ public class NavigationBarTest extends SysuiTestCase { when(mNavigationBarView.getAccessibilityButton()).thenReturn(mAccessibilityButton); when(mNavigationBarView.getImeSwitchButton()).thenReturn(mImeSwitchButton); when(mNavigationBarView.getBackButton()).thenReturn(mBackButton); + when(mNavigationBarView.getBarTransitions()).thenReturn(mNavigationBarTransitions); when(mNavigationBarView.getRotationButtonController()) .thenReturn(mRotationButtonController); - when(mNavigationBarTransitions.getLightTransitionsController()) + when(mNavigationBarView.getLightTransitionsController()) .thenReturn(mLightBarTransitionsController); when(mStatusBarKeyguardViewManager.isNavBarVisible()).thenReturn(true); setupSysuiDependency(); @@ -458,7 +459,6 @@ public class NavigationBarTest extends SysuiTestCase { mInputMethodManager, mDeadZone, mDeviceConfigProxyFake, - mNavigationBarTransitions, Optional.of(mock(BackAnimation.class)))); } 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 084eca82ce98f..6a2a78b40d2de 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTransitionsTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTransitionsTest.java @@ -21,6 +21,7 @@ import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; @@ -36,8 +37,8 @@ import com.android.systemui.assist.AssistManager; import com.android.systemui.navigationbar.gestural.EdgeBackGestureHandler; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.recents.OverviewProxyService; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.BarTransitions; -import com.android.systemui.statusbar.phone.LightBarTransitionsController; import com.android.systemui.statusbar.policy.KeyguardStateController; import org.junit.Before; @@ -51,10 +52,6 @@ import org.mockito.MockitoAnnotations; @SmallTest public class NavigationBarTransitionsTest extends SysuiTestCase { - @Mock - LightBarTransitionsController.Factory mLightBarTransitionsFactory; - @Mock - LightBarTransitionsController mLightBarTransitions; @Mock EdgeBackGestureHandler.Factory mEdgeBackGestureHandlerFactory; @Mock @@ -79,11 +76,10 @@ public class NavigationBarTransitionsTest extends SysuiTestCase { .when(mDependency.injectMockDependency(NavigationModeController.class)) .getCurrentUserContext(); - when(mLightBarTransitionsFactory.create(any())).thenReturn(mLightBarTransitions); NavigationBarView navBar = spy(new NavigationBarView(mContext, null)); when(navBar.getCurrentView()).thenReturn(navBar); when(navBar.findViewById(anyInt())).thenReturn(navBar); - mTransitions = new NavigationBarTransitions(navBar, mLightBarTransitionsFactory); + mTransitions = new NavigationBarTransitions(navBar, mock(CommandQueue.class)); } @Test