Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8415396e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents 0556d45e a10c44e0
Loading
Loading
Loading
Loading
+10 −2
Original line number Original line Diff line number Diff line
@@ -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
+2 −1
Original line number Original line Diff line number Diff line
@@ -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);


    }
    }
+6 −3
Original line number Original line Diff line number Diff line
@@ -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);