Merge "Remove Dep.get(CommandQueue.class) from NavBarView" into tm-dev am: 8e375e4c27
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17185259 Change-Id: I9b5e99cb9820cb2eaa217da94d22bfa0cb594352 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -197,6 +197,7 @@ 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;
|
||||||
@@ -513,6 +514,7 @@ 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;
|
||||||
@@ -537,6 +539,7 @@ 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;
|
||||||
@@ -561,6 +564,7 @@ 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();
|
||||||
@@ -632,7 +636,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) {
|
||||||
mView.getLightTransitionsController().restoreState(mSavedState);
|
getBarTransitions().getLightTransitionsController().restoreState(mSavedState);
|
||||||
}
|
}
|
||||||
setNavigationIconHints(mNavigationIconHints);
|
setNavigationIconHints(mNavigationIconHints);
|
||||||
mView.setWindowVisible(isNavBarWindowVisible());
|
mView.setWindowVisible(isNavBarWindowVisible());
|
||||||
@@ -705,8 +709,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
|
|||||||
mView.getRotationButtonController();
|
mView.getRotationButtonController();
|
||||||
rotationButtonController.setRotationCallback(null);
|
rotationButtonController.setRotationCallback(null);
|
||||||
mView.setUpdateActiveTouchRegionsCallback(null);
|
mView.setUpdateActiveTouchRegionsCallback(null);
|
||||||
mView.getBarTransitions().destroy();
|
getBarTransitions().destroy();
|
||||||
mView.getLightTransitionsController().destroy(mContext);
|
|
||||||
mOverviewProxyService.removeCallback(mOverviewProxyListener);
|
mOverviewProxyService.removeCallback(mOverviewProxyListener);
|
||||||
mBroadcastDispatcher.unregisterReceiver(mBroadcastReceiver);
|
mBroadcastDispatcher.unregisterReceiver(mBroadcastReceiver);
|
||||||
if (mOrientationHandle != null) {
|
if (mOrientationHandle != null) {
|
||||||
@@ -732,7 +735,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);
|
||||||
mView.getLightTransitionsController().saveState(outState);
|
getBarTransitions().getLightTransitionsController().saveState(outState);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -893,7 +896,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", mView.getBarTransitions());
|
dumpBarTransitions(pw, "mNavigationBarView", getBarTransitions());
|
||||||
mView.dump(pw);
|
mView.dump(pw);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1430,7 +1433,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
|
|||||||
mLightBarController = lightBarController;
|
mLightBarController = lightBarController;
|
||||||
if (mLightBarController != null) {
|
if (mLightBarController != null) {
|
||||||
mLightBarController.setNavigationBar(
|
mLightBarController.setNavigationBar(
|
||||||
mView.getLightTransitionsController());
|
getBarTransitions().getLightTransitionsController());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1472,7 +1475,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;
|
||||||
mView.getBarTransitions().transitionTo(mTransitionMode, anim);
|
getBarTransitions().transitionTo(mTransitionMode, anim);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void disableAnimationsDuringHide(long delay) {
|
public void disableAnimationsDuringHide(long delay) {
|
||||||
@@ -1492,11 +1495,11 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
public NavigationBarTransitions getBarTransitions() {
|
public NavigationBarTransitions getBarTransitions() {
|
||||||
return mView.getBarTransitions();
|
return mNavigationBarTransitions;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void finishBarAnimations() {
|
public void finishBarAnimations() {
|
||||||
mView.getBarTransitions().finishAnimations();
|
getBarTransitions().finishAnimations();
|
||||||
}
|
}
|
||||||
|
|
||||||
private WindowManager.LayoutParams getBarLayoutParams(int rotation) {
|
private WindowManager.LayoutParams getBarLayoutParams(int rotation) {
|
||||||
|
|||||||
@@ -31,17 +31,19 @@ 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 {
|
||||||
|
|
||||||
@@ -81,15 +83,13 @@ public final class NavigationBarTransitions extends BarTransitions implements
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public NavigationBarTransitions(NavigationBarView view, CommandQueue commandQueue) {
|
@Inject
|
||||||
|
public NavigationBarTransitions(
|
||||||
|
NavigationBarView view,
|
||||||
|
LightBarTransitionsController.Factory lightBarTransitionsControllerFactory) {
|
||||||
super(view, R.drawable.nav_background);
|
super(view, R.drawable.nav_background);
|
||||||
mView = view;
|
mView = view;
|
||||||
mLightTransitionsController = new LightBarTransitionsController(
|
mLightTransitionsController = lightBarTransitionsControllerFactory.create(this);
|
||||||
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,6 +127,7 @@ public final class NavigationBarTransitions extends BarTransitions implements
|
|||||||
Display.DEFAULT_DISPLAY);
|
Display.DEFAULT_DISPLAY);
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
}
|
}
|
||||||
|
mLightTransitionsController.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -85,7 +85,6 @@ 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;
|
||||||
@@ -140,7 +139,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 final NavigationBarTransitions mBarTransitions;
|
private NavigationBarTransitions mBarTransitions;
|
||||||
@Nullable
|
@Nullable
|
||||||
private AutoHideController mAutoHideController;
|
private AutoHideController mAutoHideController;
|
||||||
|
|
||||||
@@ -370,7 +369,6 @@ 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));
|
||||||
@@ -418,12 +416,12 @@ public class NavigationBarView extends FrameLayout {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAutoHideController(AutoHideController autoHideController) {
|
void setBarTransitions(NavigationBarTransitions navigationBarTransitions) {
|
||||||
mAutoHideController = autoHideController;
|
mBarTransitions = navigationBarTransitions;
|
||||||
}
|
}
|
||||||
|
|
||||||
public NavigationBarTransitions getBarTransitions() {
|
public void setAutoHideController(AutoHideController autoHideController) {
|
||||||
return mBarTransitions;
|
mAutoHideController = autoHideController;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LightBarTransitionsController getLightTransitionsController() {
|
public LightBarTransitionsController getLightTransitionsController() {
|
||||||
|
|||||||
@@ -264,7 +264,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks,
|
|||||||
mWindowContext = null;
|
mWindowContext = null;
|
||||||
}
|
}
|
||||||
mAutoHideController.setNavigationBar(null);
|
mAutoHideController.setNavigationBar(null);
|
||||||
mLightBarTransitionsController.destroy(mContext);
|
mLightBarTransitionsController.destroy();
|
||||||
mLightBarController.setNavigationBar(null);
|
mLightBarController.setNavigationBar(null);
|
||||||
mPipOptional.ifPresent(this::removePipExclusionBoundsChangeListener);
|
mPipOptional.ifPresent(this::removePipExclusionBoundsChangeListener);
|
||||||
mInitialized = false;
|
mInitialized = false;
|
||||||
|
|||||||
@@ -93,7 +93,8 @@ public class LightBarTransitionsController implements Dumpable, Callbacks,
|
|||||||
mDisplayId = mContext.getDisplayId();
|
mDisplayId = mContext.getDisplayId();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void destroy(Context context) {
|
/** Call to cleanup the LightBarTransitionsController when done with it. */
|
||||||
|
public void destroy() {
|
||||||
mCommandQueue.removeCallback(this);
|
mCommandQueue.removeCallback(this);
|
||||||
mStatusBarStateController.removeCallback(this);
|
mStatusBarStateController.removeCallback(this);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -205,10 +205,9 @@ 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(mNavigationBarView.getLightTransitionsController())
|
when(mNavigationBarTransitions.getLightTransitionsController())
|
||||||
.thenReturn(mLightBarTransitionsController);
|
.thenReturn(mLightBarTransitionsController);
|
||||||
when(mStatusBarKeyguardViewManager.isNavBarVisible()).thenReturn(true);
|
when(mStatusBarKeyguardViewManager.isNavBarVisible()).thenReturn(true);
|
||||||
setupSysuiDependency();
|
setupSysuiDependency();
|
||||||
@@ -459,6 +458,7 @@ public class NavigationBarTest extends SysuiTestCase {
|
|||||||
mInputMethodManager,
|
mInputMethodManager,
|
||||||
mDeadZone,
|
mDeadZone,
|
||||||
mDeviceConfigProxyFake,
|
mDeviceConfigProxyFake,
|
||||||
|
mNavigationBarTransitions,
|
||||||
Optional.of(mock(BackAnimation.class))));
|
Optional.of(mock(BackAnimation.class))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ 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;
|
||||||
|
|
||||||
@@ -37,8 +36,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;
|
||||||
@@ -52,6 +51,10 @@ 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
|
||||||
@@ -76,10 +79,11 @@ 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, mock(CommandQueue.class));
|
mTransitions = new NavigationBarTransitions(navBar, mLightBarTransitionsFactory);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user