Merge "Respect CentralSurfaces being optional in NavBarHelper" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
8415396e06
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user