Merge changes from topic "presubmit-am-8d46ef8e146342db89da2c1ff44742ea" into tm-dev am: c6de69d8a5

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17894623

Change-Id: I03896989c434c7537ca3d59497280937bedc2516
Ignore-AOSP-First: this is an automerge
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Dave Mankoff
2022-04-25 17:50:54 +00:00
committed by Automerger Merge Worker
7 changed files with 57 additions and 41 deletions

View File

@@ -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());
}
}
};

View File

@@ -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

View File

@@ -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();
}

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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))));
}

View File

@@ -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