diff options
| author | 2022-08-04 09:57:02 +0000 | |
|---|---|---|
| committer | 2022-08-04 09:57:02 +0000 | |
| commit | dc1984203c7f55602f0af55492708e0f0b7a44b7 (patch) | |
| tree | bc2c2f5355af56d3d577b8fab2821498588558ca | |
| parent | 522a16bd1bec3a2330adfbf2b45ffc12daa467b7 (diff) | |
| parent | 02cf67ead36403e74e01be3ba2d5080d5502cad9 (diff) | |
Merge "Respect CentralSurfaces being optional in NavBarHelper" into tm-qpr-dev am: 8415396e06 am: 02cf67ead3
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19517483
Change-Id: Iab12fe4b69adcf569208a7a6f353ff3c9ef72095
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
3 files changed, 18 insertions, 6 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavBarHelper.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavBarHelper.java index 6bc50a6b2406..da9fefab0b66 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavBarHelper.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavBarHelper.java @@ -48,6 +48,7 @@ import android.view.accessibility.AccessibilityManager; import androidx.annotation.NonNull; +import com.android.keyguard.KeyguardViewController; import com.android.systemui.Dumpable; import com.android.systemui.accessibility.AccessibilityButtonModeObserver; import com.android.systemui.accessibility.AccessibilityButtonTargetsObserver; @@ -89,6 +90,7 @@ public final class NavBarHelper implements private final AccessibilityManager mAccessibilityManager; private final Lazy<AssistManager> mAssistManagerLazy; private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy; + private final KeyguardViewController mKeyguardViewController; private final UserTracker mUserTracker; private final SystemActions mSystemActions; private final AccessibilityButtonModeObserver mAccessibilityButtonModeObserver; @@ -123,6 +125,7 @@ public final class NavBarHelper implements OverviewProxyService overviewProxyService, Lazy<AssistManager> assistManagerLazy, Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy, + KeyguardViewController keyguardViewController, NavigationModeController navigationModeController, UserTracker userTracker, DumpManager dumpManager) { @@ -131,6 +134,7 @@ public final class NavBarHelper implements mAccessibilityManager = accessibilityManager; mAssistManagerLazy = assistManagerLazy; mCentralSurfacesOptionalLazy = centralSurfacesOptionalLazy; + mKeyguardViewController = keyguardViewController; mUserTracker = userTracker; mSystemActions = systemActions; accessibilityManager.addAccessibilityServicesStateChangeListener(this); @@ -317,8 +321,12 @@ public final class NavBarHelper implements * {@link InputMethodService} and the keyguard states. */ public boolean isImeShown(int vis) { - View shadeWindowView = mCentralSurfacesOptionalLazy.get().get().getNotificationShadeWindowView(); - boolean isKeyguardShowing = mCentralSurfacesOptionalLazy.get().get().isKeyguardShowing(); + View shadeWindowView = null; + if (mCentralSurfacesOptionalLazy.get().isPresent()) { + shadeWindowView = + mCentralSurfacesOptionalLazy.get().get().getNotificationShadeWindowView(); + } + boolean isKeyguardShowing = mKeyguardViewController.isShowing(); boolean imeVisibleOnShade = shadeWindowView != null && shadeWindowView.isAttachedToWindow() && shadeWindowView.getRootWindowInsets().isVisible(WindowInsets.Type.ime()); return imeVisibleOnShade diff --git a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavBarHelperTest.java b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavBarHelperTest.java index edcf4791e6b1..80731037481a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavBarHelperTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavBarHelperTest.java @@ -39,6 +39,7 @@ import android.view.accessibility.AccessibilityManager; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; +import com.android.keyguard.KeyguardViewController; import com.android.systemui.SysuiTestCase; import com.android.systemui.accessibility.AccessibilityButtonModeObserver; import com.android.systemui.accessibility.AccessibilityButtonTargetsObserver; @@ -112,7 +113,7 @@ public class NavBarHelperTest extends SysuiTestCase { mNavBarHelper = new NavBarHelper(mContext, mAccessibilityManager, mAccessibilityButtonModeObserver, mAccessibilityButtonTargetObserver, mSystemActions, mOverviewProxyService, mAssistManagerLazy, - () -> Optional.of(mock(CentralSurfaces.class)), + () -> Optional.of(mock(CentralSurfaces.class)), mock(KeyguardViewController.class), mNavigationModeController, mUserTracker, mDumpManager); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTest.java index fe5f433ace47..51f0953771cb 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTest.java @@ -72,6 +72,7 @@ import androidx.test.filters.SmallTest; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.UiEventLogger; +import com.android.keyguard.KeyguardViewController; import com.android.systemui.SysuiTestCase; import com.android.systemui.SysuiTestableContext; import com.android.systemui.accessibility.AccessibilityButtonModeObserver; @@ -193,6 +194,8 @@ public class NavigationBarTest extends SysuiTestCase { @Mock private CentralSurfaces mCentralSurfaces; @Mock + private KeyguardViewController mKeyguardViewController; + @Mock private UserContextProvider mUserContextProvider; @Mock private Resources mResources; @@ -237,8 +240,8 @@ public class NavigationBarTest extends SysuiTestCase { mock(AccessibilityButtonTargetsObserver.class), mSystemActions, mOverviewProxyService, () -> mock(AssistManager.class), () -> Optional.of(mCentralSurfaces), - mock(NavigationModeController.class), mock(UserTracker.class), - mock(DumpManager.class))); + mKeyguardViewController, mock(NavigationModeController.class), + mock(UserTracker.class), mock(DumpManager.class))); mNavigationBar = createNavBar(mContext); 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 // requesting IME insets visible. - doReturn(true).when(mCentralSurfaces).isKeyguardShowing(); + doReturn(true).when(mKeyguardViewController).isShowing(); mNavigationBar.setImeWindowStatus(DEFAULT_DISPLAY, null, IME_VISIBLE, BACK_DISPOSITION_DEFAULT, true); assertFalse((mNavigationBar.getNavigationIconHints() & NAVIGATION_HINT_BACK_ALT) != 0); |