Merge "Respect CentralSurfaces being optional in NavBarHelper" into tm-qpr-dev

This commit is contained in:
TreeHugger Robot
2022-08-04 09:35:10 +00:00
committed by Android (Google) Code Review
3 changed files with 18 additions and 6 deletions

View File

@@ -48,6 +48,7 @@ import android.view.accessibility.AccessibilityManager;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.android.keyguard.KeyguardViewController;
import com.android.systemui.Dumpable; import com.android.systemui.Dumpable;
import com.android.systemui.accessibility.AccessibilityButtonModeObserver; import com.android.systemui.accessibility.AccessibilityButtonModeObserver;
import com.android.systemui.accessibility.AccessibilityButtonTargetsObserver; import com.android.systemui.accessibility.AccessibilityButtonTargetsObserver;
@@ -89,6 +90,7 @@ public final class NavBarHelper implements
private final AccessibilityManager mAccessibilityManager; private final AccessibilityManager mAccessibilityManager;
private final Lazy<AssistManager> mAssistManagerLazy; private final Lazy<AssistManager> mAssistManagerLazy;
private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy; private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy;
private final KeyguardViewController mKeyguardViewController;
private final UserTracker mUserTracker; private final UserTracker mUserTracker;
private final SystemActions mSystemActions; private final SystemActions mSystemActions;
private final AccessibilityButtonModeObserver mAccessibilityButtonModeObserver; private final AccessibilityButtonModeObserver mAccessibilityButtonModeObserver;
@@ -123,6 +125,7 @@ public final class NavBarHelper implements
OverviewProxyService overviewProxyService, OverviewProxyService overviewProxyService,
Lazy<AssistManager> assistManagerLazy, Lazy<AssistManager> assistManagerLazy,
Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy, Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy,
KeyguardViewController keyguardViewController,
NavigationModeController navigationModeController, NavigationModeController navigationModeController,
UserTracker userTracker, UserTracker userTracker,
DumpManager dumpManager) { DumpManager dumpManager) {
@@ -131,6 +134,7 @@ public final class NavBarHelper implements
mAccessibilityManager = accessibilityManager; mAccessibilityManager = accessibilityManager;
mAssistManagerLazy = assistManagerLazy; mAssistManagerLazy = assistManagerLazy;
mCentralSurfacesOptionalLazy = centralSurfacesOptionalLazy; mCentralSurfacesOptionalLazy = centralSurfacesOptionalLazy;
mKeyguardViewController = keyguardViewController;
mUserTracker = userTracker; mUserTracker = userTracker;
mSystemActions = systemActions; mSystemActions = systemActions;
accessibilityManager.addAccessibilityServicesStateChangeListener(this); accessibilityManager.addAccessibilityServicesStateChangeListener(this);
@@ -317,8 +321,12 @@ public final class NavBarHelper implements
* {@link InputMethodService} and the keyguard states. * {@link InputMethodService} and the keyguard states.
*/ */
public boolean isImeShown(int vis) { public boolean isImeShown(int vis) {
View shadeWindowView = mCentralSurfacesOptionalLazy.get().get().getNotificationShadeWindowView(); View shadeWindowView = null;
boolean isKeyguardShowing = mCentralSurfacesOptionalLazy.get().get().isKeyguardShowing(); if (mCentralSurfacesOptionalLazy.get().isPresent()) {
shadeWindowView =
mCentralSurfacesOptionalLazy.get().get().getNotificationShadeWindowView();
}
boolean isKeyguardShowing = mKeyguardViewController.isShowing();
boolean imeVisibleOnShade = shadeWindowView != null && shadeWindowView.isAttachedToWindow() boolean imeVisibleOnShade = shadeWindowView != null && shadeWindowView.isAttachedToWindow()
&& shadeWindowView.getRootWindowInsets().isVisible(WindowInsets.Type.ime()); && shadeWindowView.getRootWindowInsets().isVisible(WindowInsets.Type.ime());
return imeVisibleOnShade return imeVisibleOnShade

View File

@@ -39,6 +39,7 @@ import android.view.accessibility.AccessibilityManager;
import androidx.test.filters.SmallTest; import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4; import androidx.test.runner.AndroidJUnit4;
import com.android.keyguard.KeyguardViewController;
import com.android.systemui.SysuiTestCase; import com.android.systemui.SysuiTestCase;
import com.android.systemui.accessibility.AccessibilityButtonModeObserver; import com.android.systemui.accessibility.AccessibilityButtonModeObserver;
import com.android.systemui.accessibility.AccessibilityButtonTargetsObserver; import com.android.systemui.accessibility.AccessibilityButtonTargetsObserver;
@@ -112,7 +113,7 @@ public class NavBarHelperTest extends SysuiTestCase {
mNavBarHelper = new NavBarHelper(mContext, mAccessibilityManager, mNavBarHelper = new NavBarHelper(mContext, mAccessibilityManager,
mAccessibilityButtonModeObserver, mAccessibilityButtonTargetObserver, mAccessibilityButtonModeObserver, mAccessibilityButtonTargetObserver,
mSystemActions, mOverviewProxyService, mAssistManagerLazy, mSystemActions, mOverviewProxyService, mAssistManagerLazy,
() -> Optional.of(mock(CentralSurfaces.class)), () -> Optional.of(mock(CentralSurfaces.class)), mock(KeyguardViewController.class),
mNavigationModeController, mUserTracker, mDumpManager); mNavigationModeController, mUserTracker, mDumpManager);
} }

View File

@@ -72,6 +72,7 @@ import androidx.test.filters.SmallTest;
import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.UiEventLogger; import com.android.internal.logging.UiEventLogger;
import com.android.keyguard.KeyguardViewController;
import com.android.systemui.SysuiTestCase; import com.android.systemui.SysuiTestCase;
import com.android.systemui.SysuiTestableContext; import com.android.systemui.SysuiTestableContext;
import com.android.systemui.accessibility.AccessibilityButtonModeObserver; import com.android.systemui.accessibility.AccessibilityButtonModeObserver;
@@ -193,6 +194,8 @@ public class NavigationBarTest extends SysuiTestCase {
@Mock @Mock
private CentralSurfaces mCentralSurfaces; private CentralSurfaces mCentralSurfaces;
@Mock @Mock
private KeyguardViewController mKeyguardViewController;
@Mock
private UserContextProvider mUserContextProvider; private UserContextProvider mUserContextProvider;
@Mock @Mock
private Resources mResources; private Resources mResources;
@@ -237,8 +240,8 @@ public class NavigationBarTest extends SysuiTestCase {
mock(AccessibilityButtonTargetsObserver.class), mock(AccessibilityButtonTargetsObserver.class),
mSystemActions, mOverviewProxyService, mSystemActions, mOverviewProxyService,
() -> mock(AssistManager.class), () -> Optional.of(mCentralSurfaces), () -> mock(AssistManager.class), () -> Optional.of(mCentralSurfaces),
mock(NavigationModeController.class), mock(UserTracker.class), mKeyguardViewController, mock(NavigationModeController.class),
mock(DumpManager.class))); mock(UserTracker.class), mock(DumpManager.class)));
mNavigationBar = createNavBar(mContext); mNavigationBar = createNavBar(mContext);
mExternalDisplayNavigationBar = createNavBar(mSysuiTestableContextExternal); mExternalDisplayNavigationBar = createNavBar(mSysuiTestableContextExternal);
}); });
@@ -377,7 +380,7 @@ public class NavigationBarTest extends SysuiTestCase {
// Verify navbar didn't alter and showing back icon when the keyguard is showing without // Verify navbar didn't alter and showing back icon when the keyguard is showing without
// requesting IME insets visible. // requesting IME insets visible.
doReturn(true).when(mCentralSurfaces).isKeyguardShowing(); doReturn(true).when(mKeyguardViewController).isShowing();
mNavigationBar.setImeWindowStatus(DEFAULT_DISPLAY, null, IME_VISIBLE, mNavigationBar.setImeWindowStatus(DEFAULT_DISPLAY, null, IME_VISIBLE,
BACK_DISPOSITION_DEFAULT, true); BACK_DISPOSITION_DEFAULT, true);
assertFalse((mNavigationBar.getNavigationIconHints() & NAVIGATION_HINT_BACK_ALT) != 0); assertFalse((mNavigationBar.getNavigationIconHints() & NAVIGATION_HINT_BACK_ALT) != 0);