Merge changes from topic "presubmit-am-8d46ef8e146342db89da2c1ff44742ea" into tm-dev
* changes: Tell NavigationBarView when mode changes. Revert "Revert "Remove Dep.get(CommandQueue.class) from NavBarView""
This commit is contained in:
@@ -197,6 +197,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
|
||||
private final Optional<Pip> mPipOptional;
|
||||
private final Optional<Recents> mRecentsOptional;
|
||||
private final DeviceConfigProxy mDeviceConfigProxy;
|
||||
private final NavigationBarTransitions mNavigationBarTransitions;
|
||||
private final Optional<BackAnimation> mBackAnimation;
|
||||
private final Handler mHandler;
|
||||
private final NavigationBarOverlayController mNavbarOverlayController;
|
||||
@@ -329,7 +330,8 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
|
||||
@Override
|
||||
public void onConnectionChanged(boolean isConnected) {
|
||||
mView.onOverviewProxyConnectionChange(
|
||||
mOverviewProxyService.isEnabled(), mOverviewProxyService.shouldShowSwipeUpUI());
|
||||
mOverviewProxyService.isEnabled());
|
||||
mView.setShouldShowSwipeUpUi(mOverviewProxyService.shouldShowSwipeUpUI());
|
||||
updateScreenPinningGestures();
|
||||
}
|
||||
|
||||
@@ -513,6 +515,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
|
||||
InputMethodManager inputMethodManager,
|
||||
DeadZone deadZone,
|
||||
DeviceConfigProxy deviceConfigProxy,
|
||||
NavigationBarTransitions navigationBarTransitions,
|
||||
Optional<BackAnimation> backAnimation) {
|
||||
super(navigationBarView);
|
||||
mFrame = navigationBarFrame;
|
||||
@@ -537,6 +540,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
|
||||
mRecentsOptional = recentsOptional;
|
||||
mDeadZone = deadZone;
|
||||
mDeviceConfigProxy = deviceConfigProxy;
|
||||
mNavigationBarTransitions = navigationBarTransitions;
|
||||
mBackAnimation = backAnimation;
|
||||
mHandler = mainHandler;
|
||||
mNavbarOverlayController = navbarOverlayController;
|
||||
@@ -561,6 +565,7 @@ public class NavigationBar extends ViewController<NavigationBarView> 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();
|
||||
@@ -632,7 +637,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
|
||||
mView.setOnVerticalChangedListener(this::onVerticalChanged);
|
||||
mView.setOnTouchListener(this::onNavigationTouch);
|
||||
if (mSavedState != null) {
|
||||
mView.getLightTransitionsController().restoreState(mSavedState);
|
||||
getBarTransitions().getLightTransitionsController().restoreState(mSavedState);
|
||||
}
|
||||
setNavigationIconHints(mNavigationIconHints);
|
||||
mView.setWindowVisible(isNavBarWindowVisible());
|
||||
@@ -705,8 +710,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
|
||||
mView.getRotationButtonController();
|
||||
rotationButtonController.setRotationCallback(null);
|
||||
mView.setUpdateActiveTouchRegionsCallback(null);
|
||||
mView.getBarTransitions().destroy();
|
||||
mView.getLightTransitionsController().destroy(mContext);
|
||||
getBarTransitions().destroy();
|
||||
mOverviewProxyService.removeCallback(mOverviewProxyListener);
|
||||
mBroadcastDispatcher.unregisterReceiver(mBroadcastReceiver);
|
||||
if (mOrientationHandle != null) {
|
||||
@@ -732,7 +736,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
|
||||
outState.putInt(EXTRA_APPEARANCE, mAppearance);
|
||||
outState.putInt(EXTRA_BEHAVIOR, mBehavior);
|
||||
outState.putBoolean(EXTRA_TRANSIENT_STATE, mTransientShown);
|
||||
mView.getLightTransitionsController().saveState(outState);
|
||||
getBarTransitions().getLightTransitionsController().saveState(outState);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -893,7 +897,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
|
||||
pw.println(" mTransientShown=" + mTransientShown);
|
||||
pw.println(" mTransientShownFromGestureOnSystemBar="
|
||||
+ mTransientShownFromGestureOnSystemBar);
|
||||
dumpBarTransitions(pw, "mNavigationBarView", mView.getBarTransitions());
|
||||
dumpBarTransitions(pw, "mNavigationBarView", getBarTransitions());
|
||||
mView.dump(pw);
|
||||
}
|
||||
|
||||
@@ -1430,7 +1434,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
|
||||
mLightBarController = lightBarController;
|
||||
if (mLightBarController != null) {
|
||||
mLightBarController.setNavigationBar(
|
||||
mView.getLightTransitionsController());
|
||||
getBarTransitions().getLightTransitionsController());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1472,7 +1476,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
|
||||
mCentralSurfacesOptionalLazy.get().map(CentralSurfaces::isDeviceInteractive)
|
||||
.orElse(false)
|
||||
&& mNavigationBarWindowState != WINDOW_STATE_HIDDEN;
|
||||
mView.getBarTransitions().transitionTo(mTransitionMode, anim);
|
||||
getBarTransitions().transitionTo(mTransitionMode, anim);
|
||||
}
|
||||
|
||||
public void disableAnimationsDuringHide(long delay) {
|
||||
@@ -1492,11 +1496,11 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
|
||||
}
|
||||
|
||||
public NavigationBarTransitions getBarTransitions() {
|
||||
return mView.getBarTransitions();
|
||||
return mNavigationBarTransitions;
|
||||
}
|
||||
|
||||
public void finishBarAnimations() {
|
||||
mView.getBarTransitions().finishAnimations();
|
||||
getBarTransitions().finishAnimations();
|
||||
}
|
||||
|
||||
private WindowManager.LayoutParams getBarLayoutParams(int rotation) {
|
||||
@@ -1654,6 +1658,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
|
||||
}
|
||||
if (mView != null) {
|
||||
mView.setNavBarMode(mode);
|
||||
mView.setShouldShowSwipeUpUi(mOverviewProxyService.shouldShowSwipeUpUI());
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -29,19 +29,20 @@ import android.view.IWallpaperVisibilityListener;
|
||||
import android.view.IWindowManager;
|
||||
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 {
|
||||
|
||||
@@ -60,6 +61,8 @@ public final class NavigationBarTransitions extends BarTransitions implements
|
||||
}
|
||||
|
||||
private final NavigationBarView mView;
|
||||
@org.jetbrains.annotations.NotNull
|
||||
private final IWindowManager mWindowManagerService;
|
||||
private final LightBarTransitionsController mLightTransitionsController;
|
||||
private final boolean mAllowAutoDimWallpaperNotVisible;
|
||||
private boolean mWallpaperVisible;
|
||||
@@ -81,22 +84,21 @@ public final class NavigationBarTransitions extends BarTransitions implements
|
||||
}
|
||||
};
|
||||
|
||||
public NavigationBarTransitions(NavigationBarView view, CommandQueue commandQueue) {
|
||||
@Inject
|
||||
public NavigationBarTransitions(
|
||||
NavigationBarView view,
|
||||
IWindowManager windowManagerService,
|
||||
LightBarTransitionsController.Factory lightBarTransitionsControllerFactory) {
|
||||
super(view, R.drawable.nav_background);
|
||||
mView = view;
|
||||
mLightTransitionsController = new LightBarTransitionsController(
|
||||
view.getContext(),
|
||||
this,
|
||||
commandQueue,
|
||||
Dependency.get(KeyguardStateController.class),
|
||||
Dependency.get(StatusBarStateController.class));
|
||||
mWindowManagerService = windowManagerService;
|
||||
mLightTransitionsController = lightBarTransitionsControllerFactory.create(this);
|
||||
mAllowAutoDimWallpaperNotVisible = view.getContext().getResources()
|
||||
.getBoolean(R.bool.config_navigation_bar_enable_auto_dim_no_visible_wallpaper);
|
||||
mDarkIntensityListeners = new ArrayList();
|
||||
|
||||
IWindowManager windowManagerService = Dependency.get(IWindowManager.class);
|
||||
try {
|
||||
mWallpaperVisible = windowManagerService.registerWallpaperVisibilityListener(
|
||||
mWallpaperVisible = mWindowManagerService.registerWallpaperVisibilityListener(
|
||||
mWallpaperVisibilityListener, Display.DEFAULT_DISPLAY);
|
||||
} catch (RemoteException e) {
|
||||
}
|
||||
@@ -121,12 +123,12 @@ public final class NavigationBarTransitions extends BarTransitions implements
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
IWindowManager windowManagerService = Dependency.get(IWindowManager.class);
|
||||
try {
|
||||
windowManagerService.unregisterWallpaperVisibilityListener(mWallpaperVisibilityListener,
|
||||
mWindowManagerService.unregisterWallpaperVisibilityListener(mWallpaperVisibilityListener,
|
||||
Display.DEFAULT_DISPLAY);
|
||||
} catch (RemoteException e) {
|
||||
}
|
||||
mLightTransitionsController.destroy();
|
||||
}
|
||||
|
||||
@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.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;
|
||||
@@ -140,7 +139,7 @@ public class NavigationBarView extends FrameLayout {
|
||||
private EdgeBackGestureHandler mEdgeBackGestureHandler;
|
||||
private final DeadZone mDeadZone;
|
||||
private boolean mDeadZoneConsuming = false;
|
||||
private final NavigationBarTransitions mBarTransitions;
|
||||
private NavigationBarTransitions mBarTransitions;
|
||||
@Nullable
|
||||
private AutoHideController mAutoHideController;
|
||||
|
||||
@@ -370,7 +369,6 @@ 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));
|
||||
@@ -418,12 +416,12 @@ public class NavigationBarView extends FrameLayout {
|
||||
}
|
||||
}
|
||||
|
||||
public void setAutoHideController(AutoHideController autoHideController) {
|
||||
mAutoHideController = autoHideController;
|
||||
void setBarTransitions(NavigationBarTransitions navigationBarTransitions) {
|
||||
mBarTransitions = navigationBarTransitions;
|
||||
}
|
||||
|
||||
public NavigationBarTransitions getBarTransitions() {
|
||||
return mBarTransitions;
|
||||
public void setAutoHideController(AutoHideController autoHideController) {
|
||||
mAutoHideController = autoHideController;
|
||||
}
|
||||
|
||||
public LightBarTransitionsController getLightTransitionsController() {
|
||||
@@ -888,8 +886,11 @@ public class NavigationBarView extends FrameLayout {
|
||||
}
|
||||
}
|
||||
|
||||
void onOverviewProxyConnectionChange(boolean enabled, boolean showSwipeUpUi) {
|
||||
void onOverviewProxyConnectionChange(boolean enabled) {
|
||||
mOverviewProxyEnabled = enabled;
|
||||
}
|
||||
|
||||
void setShouldShowSwipeUpUi(boolean showSwipeUpUi) {
|
||||
mShowSwipeUpUi = showSwipeUpUi;
|
||||
updateStates();
|
||||
}
|
||||
|
||||
@@ -264,7 +264,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks,
|
||||
mWindowContext = null;
|
||||
}
|
||||
mAutoHideController.setNavigationBar(null);
|
||||
mLightBarTransitionsController.destroy(mContext);
|
||||
mLightBarTransitionsController.destroy();
|
||||
mLightBarController.setNavigationBar(null);
|
||||
mPipOptional.ifPresent(this::removePipExclusionBoundsChangeListener);
|
||||
mInitialized = false;
|
||||
|
||||
@@ -93,7 +93,8 @@ public class LightBarTransitionsController implements Dumpable, Callbacks,
|
||||
mDisplayId = mContext.getDisplayId();
|
||||
}
|
||||
|
||||
public void destroy(Context context) {
|
||||
/** Call to cleanup the LightBarTransitionsController when done with it. */
|
||||
public void destroy() {
|
||||
mCommandQueue.removeCallback(this);
|
||||
mStatusBarStateController.removeCallback(this);
|
||||
}
|
||||
|
||||
@@ -205,10 +205,9 @@ 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(mNavigationBarView.getLightTransitionsController())
|
||||
when(mNavigationBarTransitions.getLightTransitionsController())
|
||||
.thenReturn(mLightBarTransitionsController);
|
||||
when(mStatusBarKeyguardViewManager.isNavBarVisible()).thenReturn(true);
|
||||
setupSysuiDependency();
|
||||
@@ -459,6 +458,7 @@ public class NavigationBarTest extends SysuiTestCase {
|
||||
mInputMethodManager,
|
||||
mDeadZone,
|
||||
mDeviceConfigProxyFake,
|
||||
mNavigationBarTransitions,
|
||||
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.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;
|
||||
|
||||
@@ -37,8 +36,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;
|
||||
@@ -52,10 +51,17 @@ import org.mockito.MockitoAnnotations;
|
||||
@SmallTest
|
||||
public class NavigationBarTransitionsTest extends SysuiTestCase {
|
||||
|
||||
@Mock
|
||||
LightBarTransitionsController.Factory mLightBarTransitionsFactory;
|
||||
@Mock
|
||||
LightBarTransitionsController mLightBarTransitions;
|
||||
@Mock
|
||||
EdgeBackGestureHandler.Factory mEdgeBackGestureHandlerFactory;
|
||||
@Mock
|
||||
EdgeBackGestureHandler mEdgeBackGestureHandler;
|
||||
@Mock
|
||||
IWindowManager mIWindowManager;
|
||||
|
||||
private NavigationBarTransitions mTransitions;
|
||||
|
||||
@Before
|
||||
@@ -64,7 +70,6 @@ public class NavigationBarTransitionsTest extends SysuiTestCase {
|
||||
|
||||
when(mEdgeBackGestureHandlerFactory.create(any(Context.class)))
|
||||
.thenReturn(mEdgeBackGestureHandler);
|
||||
mDependency.injectMockDependency(IWindowManager.class);
|
||||
mDependency.injectMockDependency(AssistManager.class);
|
||||
mDependency.injectMockDependency(OverviewProxyService.class);
|
||||
mDependency.injectMockDependency(StatusBarStateController.class);
|
||||
@@ -76,10 +81,12 @@ 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, mock(CommandQueue.class));
|
||||
mTransitions = new NavigationBarTransitions(
|
||||
navBar, mIWindowManager, mLightBarTransitionsFactory);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user