Merge "Respect CentralSurfaces being optional in NavBarHelper" into tm-qpr-dev am: 8415396e06
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19517483 Change-Id: Ie3aacaec9903574941f297c1e5fdadd32f70ba31 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user