Merge "Revert "Remove Dep.get(CommandQueue.class) from NavBarView"" into tm-dev

This commit is contained in:
Vinit Nayak
2022-04-20 14:30:41 +00:00
committed by Android (Google) Code Review
7 changed files with 33 additions and 40 deletions

View File

@@ -197,7 +197,6 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
private final Optional<Pip> mPipOptional; private final Optional<Pip> mPipOptional;
private final Optional<Recents> mRecentsOptional; private final Optional<Recents> mRecentsOptional;
private final DeviceConfigProxy mDeviceConfigProxy; private final DeviceConfigProxy mDeviceConfigProxy;
private final NavigationBarTransitions mNavigationBarTransitions;
private final Optional<BackAnimation> mBackAnimation; private final Optional<BackAnimation> mBackAnimation;
private final Handler mHandler; private final Handler mHandler;
private final NavigationBarOverlayController mNavbarOverlayController; private final NavigationBarOverlayController mNavbarOverlayController;
@@ -514,7 +513,6 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
InputMethodManager inputMethodManager, InputMethodManager inputMethodManager,
DeadZone deadZone, DeadZone deadZone,
DeviceConfigProxy deviceConfigProxy, DeviceConfigProxy deviceConfigProxy,
NavigationBarTransitions navigationBarTransitions,
Optional<BackAnimation> backAnimation) { Optional<BackAnimation> backAnimation) {
super(navigationBarView); super(navigationBarView);
mFrame = navigationBarFrame; mFrame = navigationBarFrame;
@@ -539,7 +537,6 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
mRecentsOptional = recentsOptional; mRecentsOptional = recentsOptional;
mDeadZone = deadZone; mDeadZone = deadZone;
mDeviceConfigProxy = deviceConfigProxy; mDeviceConfigProxy = deviceConfigProxy;
mNavigationBarTransitions = navigationBarTransitions;
mBackAnimation = backAnimation; mBackAnimation = backAnimation;
mHandler = mainHandler; mHandler = mainHandler;
mNavbarOverlayController = navbarOverlayController; mNavbarOverlayController = navbarOverlayController;
@@ -564,7 +561,6 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
public void onInit() { public void onInit() {
// TODO: A great deal of this code should probably live in onViewAttached. // TODO: A great deal of this code should probably live in onViewAttached.
// It should also has corresponding cleanup in onViewDetached. // It should also has corresponding cleanup in onViewDetached.
mView.setBarTransitions(mNavigationBarTransitions);
mView.setTouchHandler(mTouchHandler); mView.setTouchHandler(mTouchHandler);
mView.setNavBarMode(mNavBarMode); mView.setNavBarMode(mNavBarMode);
mView.updateRotationButton(); mView.updateRotationButton();
@@ -636,7 +632,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
mView.setOnVerticalChangedListener(this::onVerticalChanged); mView.setOnVerticalChangedListener(this::onVerticalChanged);
mView.setOnTouchListener(this::onNavigationTouch); mView.setOnTouchListener(this::onNavigationTouch);
if (mSavedState != null) { if (mSavedState != null) {
getBarTransitions().getLightTransitionsController().restoreState(mSavedState); mView.getLightTransitionsController().restoreState(mSavedState);
} }
setNavigationIconHints(mNavigationIconHints); setNavigationIconHints(mNavigationIconHints);
mView.setWindowVisible(isNavBarWindowVisible()); mView.setWindowVisible(isNavBarWindowVisible());
@@ -709,7 +705,8 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
mView.getRotationButtonController(); mView.getRotationButtonController();
rotationButtonController.setRotationCallback(null); rotationButtonController.setRotationCallback(null);
mView.setUpdateActiveTouchRegionsCallback(null); mView.setUpdateActiveTouchRegionsCallback(null);
getBarTransitions().destroy(); mView.getBarTransitions().destroy();
mView.getLightTransitionsController().destroy(mContext);
mOverviewProxyService.removeCallback(mOverviewProxyListener); mOverviewProxyService.removeCallback(mOverviewProxyListener);
mBroadcastDispatcher.unregisterReceiver(mBroadcastReceiver); mBroadcastDispatcher.unregisterReceiver(mBroadcastReceiver);
if (mOrientationHandle != null) { if (mOrientationHandle != null) {
@@ -735,7 +732,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
outState.putInt(EXTRA_APPEARANCE, mAppearance); outState.putInt(EXTRA_APPEARANCE, mAppearance);
outState.putInt(EXTRA_BEHAVIOR, mBehavior); outState.putInt(EXTRA_BEHAVIOR, mBehavior);
outState.putBoolean(EXTRA_TRANSIENT_STATE, mTransientShown); outState.putBoolean(EXTRA_TRANSIENT_STATE, mTransientShown);
getBarTransitions().getLightTransitionsController().saveState(outState); mView.getLightTransitionsController().saveState(outState);
} }
/** /**
@@ -896,7 +893,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
pw.println(" mTransientShown=" + mTransientShown); pw.println(" mTransientShown=" + mTransientShown);
pw.println(" mTransientShownFromGestureOnSystemBar=" pw.println(" mTransientShownFromGestureOnSystemBar="
+ mTransientShownFromGestureOnSystemBar); + mTransientShownFromGestureOnSystemBar);
dumpBarTransitions(pw, "mNavigationBarView", getBarTransitions()); dumpBarTransitions(pw, "mNavigationBarView", mView.getBarTransitions());
mView.dump(pw); mView.dump(pw);
} }
@@ -1433,7 +1430,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
mLightBarController = lightBarController; mLightBarController = lightBarController;
if (mLightBarController != null) { if (mLightBarController != null) {
mLightBarController.setNavigationBar( mLightBarController.setNavigationBar(
getBarTransitions().getLightTransitionsController()); mView.getLightTransitionsController());
} }
} }
@@ -1475,7 +1472,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
mCentralSurfacesOptionalLazy.get().map(CentralSurfaces::isDeviceInteractive) mCentralSurfacesOptionalLazy.get().map(CentralSurfaces::isDeviceInteractive)
.orElse(false) .orElse(false)
&& mNavigationBarWindowState != WINDOW_STATE_HIDDEN; && mNavigationBarWindowState != WINDOW_STATE_HIDDEN;
getBarTransitions().transitionTo(mTransitionMode, anim); mView.getBarTransitions().transitionTo(mTransitionMode, anim);
} }
public void disableAnimationsDuringHide(long delay) { public void disableAnimationsDuringHide(long delay) {
@@ -1495,11 +1492,11 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
} }
public NavigationBarTransitions getBarTransitions() { public NavigationBarTransitions getBarTransitions() {
return mNavigationBarTransitions; return mView.getBarTransitions();
} }
public void finishBarAnimations() { public void finishBarAnimations() {
getBarTransitions().finishAnimations(); mView.getBarTransitions().finishAnimations();
} }
private WindowManager.LayoutParams getBarLayoutParams(int rotation) { private WindowManager.LayoutParams getBarLayoutParams(int rotation) {

View File

@@ -31,19 +31,17 @@ import android.view.View;
import com.android.systemui.Dependency; import com.android.systemui.Dependency;
import com.android.systemui.R; import com.android.systemui.R;
import com.android.systemui.navigationbar.NavigationBarComponent.NavigationBarScope;
import com.android.systemui.navigationbar.buttons.ButtonDispatcher; 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.BarTransitions;
import com.android.systemui.statusbar.phone.LightBarTransitionsController; import com.android.systemui.statusbar.phone.LightBarTransitionsController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.inject.Inject;
/** */
@NavigationBarScope
public final class NavigationBarTransitions extends BarTransitions implements public final class NavigationBarTransitions extends BarTransitions implements
LightBarTransitionsController.DarkIntensityApplier { LightBarTransitionsController.DarkIntensityApplier {
@@ -83,13 +81,15 @@ public final class NavigationBarTransitions extends BarTransitions implements
} }
}; };
@Inject public NavigationBarTransitions(NavigationBarView view, CommandQueue commandQueue) {
public NavigationBarTransitions(
NavigationBarView view,
LightBarTransitionsController.Factory lightBarTransitionsControllerFactory) {
super(view, R.drawable.nav_background); super(view, R.drawable.nav_background);
mView = view; 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() mAllowAutoDimWallpaperNotVisible = view.getContext().getResources()
.getBoolean(R.bool.config_navigation_bar_enable_auto_dim_no_visible_wallpaper); .getBoolean(R.bool.config_navigation_bar_enable_auto_dim_no_visible_wallpaper);
mDarkIntensityListeners = new ArrayList(); mDarkIntensityListeners = new ArrayList();
@@ -127,7 +127,6 @@ public final class NavigationBarTransitions extends BarTransitions implements
Display.DEFAULT_DISPLAY); Display.DEFAULT_DISPLAY);
} catch (RemoteException e) { } catch (RemoteException e) {
} }
mLightTransitionsController.destroy();
} }
@Override @Override

View File

@@ -85,6 +85,7 @@ import com.android.systemui.shared.rotation.RotationButtonController;
import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.ActivityManagerWrapper;
import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.shared.system.QuickStepContract;
import com.android.systemui.shared.system.WindowManagerWrapper; 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.AutoHideController;
import com.android.systemui.statusbar.phone.CentralSurfaces; import com.android.systemui.statusbar.phone.CentralSurfaces;
import com.android.systemui.statusbar.phone.LightBarTransitionsController; import com.android.systemui.statusbar.phone.LightBarTransitionsController;
@@ -139,7 +140,7 @@ public class NavigationBarView extends FrameLayout {
private EdgeBackGestureHandler mEdgeBackGestureHandler; private EdgeBackGestureHandler mEdgeBackGestureHandler;
private final DeadZone mDeadZone; private final DeadZone mDeadZone;
private boolean mDeadZoneConsuming = false; private boolean mDeadZoneConsuming = false;
private NavigationBarTransitions mBarTransitions; private final NavigationBarTransitions mBarTransitions;
@Nullable @Nullable
private AutoHideController mAutoHideController; private AutoHideController mAutoHideController;
@@ -369,6 +370,7 @@ public class NavigationBarView extends FrameLayout {
mConfiguration.updateFrom(context.getResources().getConfiguration()); mConfiguration.updateFrom(context.getResources().getConfiguration());
mScreenPinningNotify = new ScreenPinningNotify(mContext); 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.back, new ButtonDispatcher(R.id.back));
mButtonDispatchers.put(R.id.home, new ButtonDispatcher(R.id.home)); 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) { public void setAutoHideController(AutoHideController autoHideController) {
mAutoHideController = autoHideController; mAutoHideController = autoHideController;
} }
public NavigationBarTransitions getBarTransitions() {
return mBarTransitions;
}
public LightBarTransitionsController getLightTransitionsController() { public LightBarTransitionsController getLightTransitionsController() {
return mBarTransitions.getLightTransitionsController(); return mBarTransitions.getLightTransitionsController();
} }

View File

@@ -264,7 +264,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks,
mWindowContext = null; mWindowContext = null;
} }
mAutoHideController.setNavigationBar(null); mAutoHideController.setNavigationBar(null);
mLightBarTransitionsController.destroy(); mLightBarTransitionsController.destroy(mContext);
mLightBarController.setNavigationBar(null); mLightBarController.setNavigationBar(null);
mPipOptional.ifPresent(this::removePipExclusionBoundsChangeListener); mPipOptional.ifPresent(this::removePipExclusionBoundsChangeListener);
mInitialized = false; mInitialized = false;

View File

@@ -93,8 +93,7 @@ public class LightBarTransitionsController implements Dumpable, Callbacks,
mDisplayId = mContext.getDisplayId(); mDisplayId = mContext.getDisplayId();
} }
/** Call to cleanup the LightBarTransitionsController when done with it. */ public void destroy(Context context) {
public void destroy() {
mCommandQueue.removeCallback(this); mCommandQueue.removeCallback(this);
mStatusBarStateController.removeCallback(this); mStatusBarStateController.removeCallback(this);
} }

View File

@@ -205,9 +205,10 @@ public class NavigationBarTest extends SysuiTestCase {
when(mNavigationBarView.getAccessibilityButton()).thenReturn(mAccessibilityButton); when(mNavigationBarView.getAccessibilityButton()).thenReturn(mAccessibilityButton);
when(mNavigationBarView.getImeSwitchButton()).thenReturn(mImeSwitchButton); when(mNavigationBarView.getImeSwitchButton()).thenReturn(mImeSwitchButton);
when(mNavigationBarView.getBackButton()).thenReturn(mBackButton); when(mNavigationBarView.getBackButton()).thenReturn(mBackButton);
when(mNavigationBarView.getBarTransitions()).thenReturn(mNavigationBarTransitions);
when(mNavigationBarView.getRotationButtonController()) when(mNavigationBarView.getRotationButtonController())
.thenReturn(mRotationButtonController); .thenReturn(mRotationButtonController);
when(mNavigationBarTransitions.getLightTransitionsController()) when(mNavigationBarView.getLightTransitionsController())
.thenReturn(mLightBarTransitionsController); .thenReturn(mLightBarTransitionsController);
when(mStatusBarKeyguardViewManager.isNavBarVisible()).thenReturn(true); when(mStatusBarKeyguardViewManager.isNavBarVisible()).thenReturn(true);
setupSysuiDependency(); setupSysuiDependency();
@@ -458,7 +459,6 @@ public class NavigationBarTest extends SysuiTestCase {
mInputMethodManager, mInputMethodManager,
mDeadZone, mDeadZone,
mDeviceConfigProxyFake, mDeviceConfigProxyFake,
mNavigationBarTransitions,
Optional.of(mock(BackAnimation.class)))); Optional.of(mock(BackAnimation.class))));
} }

View File

@@ -21,6 +21,7 @@ import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when; 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.navigationbar.gestural.EdgeBackGestureHandler;
import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.recents.OverviewProxyService; 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.BarTransitions;
import com.android.systemui.statusbar.phone.LightBarTransitionsController;
import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.statusbar.policy.KeyguardStateController;
import org.junit.Before; import org.junit.Before;
@@ -51,10 +52,6 @@ import org.mockito.MockitoAnnotations;
@SmallTest @SmallTest
public class NavigationBarTransitionsTest extends SysuiTestCase { public class NavigationBarTransitionsTest extends SysuiTestCase {
@Mock
LightBarTransitionsController.Factory mLightBarTransitionsFactory;
@Mock
LightBarTransitionsController mLightBarTransitions;
@Mock @Mock
EdgeBackGestureHandler.Factory mEdgeBackGestureHandlerFactory; EdgeBackGestureHandler.Factory mEdgeBackGestureHandlerFactory;
@Mock @Mock
@@ -79,11 +76,10 @@ public class NavigationBarTransitionsTest extends SysuiTestCase {
.when(mDependency.injectMockDependency(NavigationModeController.class)) .when(mDependency.injectMockDependency(NavigationModeController.class))
.getCurrentUserContext(); .getCurrentUserContext();
when(mLightBarTransitionsFactory.create(any())).thenReturn(mLightBarTransitions);
NavigationBarView navBar = spy(new NavigationBarView(mContext, null)); NavigationBarView navBar = spy(new NavigationBarView(mContext, null));
when(navBar.getCurrentView()).thenReturn(navBar); when(navBar.getCurrentView()).thenReturn(navBar);
when(navBar.findViewById(anyInt())).thenReturn(navBar); when(navBar.findViewById(anyInt())).thenReturn(navBar);
mTransitions = new NavigationBarTransitions(navBar, mLightBarTransitionsFactory); mTransitions = new NavigationBarTransitions(navBar, mock(CommandQueue.class));
} }
@Test @Test