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

Commit 6d4ee737 authored by Charles Chen's avatar Charles Chen Committed by Android (Google) Code Review
Browse files

Merge "Add tests for multi-display in System UI"

parents 65090523 54fce2c2
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -596,7 +596,8 @@ public class CommandQueue extends IStatusBar.Stub implements CallbackController<
    @Override
    public void appTransitionCancelled(int displayId) {
        synchronized (mLock) {
            mHandler.obtainMessage(MSG_APP_TRANSITION_CANCELLED, displayId).sendToTarget();
            mHandler.obtainMessage(MSG_APP_TRANSITION_CANCELLED, displayId, 0 /* unused */)
                    .sendToTarget();
        }
    }

@@ -624,7 +625,8 @@ public class CommandQueue extends IStatusBar.Stub implements CallbackController<
    @Override
    public void appTransitionFinished(int displayId) {
        synchronized (mLock) {
            mHandler.obtainMessage(MSG_APP_TRANSITION_FINISHED, displayId).sendToTarget();
            mHandler.obtainMessage(MSG_APP_TRANSITION_FINISHED, displayId, 0 /* unused */)
                    .sendToTarget();
        }
    }

+5 −2
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import android.view.IWindowManager;
import android.view.View;
import android.view.WindowManagerGlobal;

import com.android.internal.annotations.VisibleForTesting;
import com.android.systemui.Dependency;
import com.android.systemui.plugins.DarkIconDispatcher;
import com.android.systemui.statusbar.CommandQueue.Callbacks;
@@ -58,7 +59,8 @@ public class NavigationBarController implements Callbacks {
    private final DisplayManager mDisplayManager;

    /** A displayId - nav bar maps. */
    private SparseArray<NavigationBarFragment> mNavigationBars = new SparseArray<>();
    @VisibleForTesting
    SparseArray<NavigationBarFragment> mNavigationBars = new SparseArray<>();

    @Inject
    public NavigationBarController(Context context, @Named(MAIN_HANDLER_NAME) Handler handler) {
@@ -101,7 +103,8 @@ public class NavigationBarController implements Callbacks {
     *
     * @param display the display to add navigation bar on.
     */
    private void createNavigationBar(Display display) {
    @VisibleForTesting
    void createNavigationBar(Display display) {
        if (display == null) {
            return;
        }
+10 −5
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.view.IWindowManager;
import android.view.MotionEvent;
import android.view.View;

import com.android.internal.annotations.VisibleForTesting;
import com.android.systemui.Dependency;
import com.android.systemui.SysUiServiceProvider;
import com.android.systemui.statusbar.CommandQueue;
@@ -48,8 +49,10 @@ public class AutoHideController implements CommandQueue.Callbacks {
    private StatusBar mStatusBar;
    private NavigationBarFragment mNavigationBar;

    private int mDisplayId;
    private int mSystemUiVisibility;
    @VisibleForTesting
    int mDisplayId;
    @VisibleForTesting
    int mSystemUiVisibility;
    // last value sent to window manager
    private int mLastDispatchedSystemUiVisibility = ~View.SYSTEM_UI_FLAG_VISIBLE;

@@ -123,7 +126,8 @@ public class AutoHideController implements CommandQueue.Callbacks {
        }
    }

    private void notifySystemUiVisibilityChanged(int vis) {
    @VisibleForTesting
    void notifySystemUiVisibilityChanged(int vis) {
        try {
            if (mLastDispatchedSystemUiVisibility != vis) {
                mWindowManagerService.statusBarVisibilityChanged(mDisplayId, vis);
@@ -213,11 +217,12 @@ public class AutoHideController implements CommandQueue.Callbacks {
        return mask;
    }

    private boolean hasNavigationBar() {
    boolean hasNavigationBar() {
        return mNavigationBar != null;
    }

    private boolean hasStatusBar() {
    @VisibleForTesting
    boolean hasStatusBar() {
        return mStatusBar != null;
    }
}
+2 −1
Original line number Diff line number Diff line
@@ -159,7 +159,8 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback

    private OverviewProxyService mOverviewProxyService;

    private int mDisplayId;
    @VisibleForTesting
    public int mDisplayId;
    private boolean mIsOnDefaultDisplay;
    public boolean mHomeBlockedThisTouch;

+91 −9
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ public class CommandQueueTest extends SysuiTestCase {

    private CommandQueue mCommandQueue;
    private Callbacks mCallbacks;
    private static final int SECONDARY_DISPLAY = 1;

    @Before
    public void setup() {
@@ -68,7 +69,6 @@ public class CommandQueueTest extends SysuiTestCase {
        verify(mCallbacks).removeIcon(eq(slot));
    }

    // TODO(b/117478341): add test case for multi-display
    @Test
    public void testDisable() {
        int state1 = 14;
@@ -78,6 +78,15 @@ public class CommandQueueTest extends SysuiTestCase {
        verify(mCallbacks).disable(eq(DEFAULT_DISPLAY), eq(state1), eq(state2), eq(true));
    }

    @Test
    public void testDisableForSecondaryDisplay() {
        int state1 = 14;
        int state2 = 42;
        mCommandQueue.disable(SECONDARY_DISPLAY, state1, state2);
        waitForIdleSync();
        verify(mCallbacks).disable(eq(SECONDARY_DISPLAY), eq(state1), eq(state2), eq(true));
    }

    @Test
    public void testExpandNotifications() {
        mCommandQueue.animateExpandNotificationsPanel();
@@ -100,7 +109,6 @@ public class CommandQueueTest extends SysuiTestCase {
        verify(mCallbacks).animateExpandSettingsPanel(eq(panel));
    }

    // TODO(b/117478341): add test case for multi-display
    @Test
    public void testSetSystemUiVisibility() {
        Rect r = new Rect();
@@ -110,7 +118,15 @@ public class CommandQueueTest extends SysuiTestCase {
                eq(null), eq(r));
    }

    // TODO(b/117478341): add test case for multi-display
    @Test
    public void testSetSystemUiVisibilityForSecondaryDisplay() {
        Rect r = new Rect();
        mCommandQueue.setSystemUiVisibility(SECONDARY_DISPLAY, 1, 2, 3, 4, null, r);
        waitForIdleSync();
        verify(mCallbacks).setSystemUiVisibility(eq(SECONDARY_DISPLAY), eq(1), eq(2), eq(3), eq(4),
                eq(null), eq(r));
    }

    @Test
    public void testTopAppWindowChanged() {
        mCommandQueue.topAppWindowChanged(DEFAULT_DISPLAY, true);
@@ -118,7 +134,13 @@ public class CommandQueueTest extends SysuiTestCase {
        verify(mCallbacks).topAppWindowChanged(eq(DEFAULT_DISPLAY), eq(true));
    }

    // TODO(b/117478341): add test case for multi-display
    @Test
    public void testTopAppWindowChangedForSecondaryDisplay() {
        mCommandQueue.topAppWindowChanged(SECONDARY_DISPLAY, true);
        waitForIdleSync();
        verify(mCallbacks).topAppWindowChanged(eq(SECONDARY_DISPLAY), eq(true));
    }

    @Test
    public void testShowImeButton() {
        mCommandQueue.setImeWindowStatus(DEFAULT_DISPLAY, null, 1, 2, true);
@@ -127,6 +149,14 @@ public class CommandQueueTest extends SysuiTestCase {
                eq(DEFAULT_DISPLAY), eq(null), eq(1), eq(2), eq(true));
    }

    @Test
    public void testShowImeButtonForSecondaryDisplay() {
        mCommandQueue.setImeWindowStatus(SECONDARY_DISPLAY, null, 1, 2, true);
        waitForIdleSync();
        verify(mCallbacks).setImeWindowStatus(
                eq(SECONDARY_DISPLAY), eq(null), eq(1), eq(2), eq(true));
    }

    @Test
    public void testShowRecentApps() {
        mCommandQueue.showRecentApps(true);
@@ -176,7 +206,6 @@ public class CommandQueueTest extends SysuiTestCase {
        verify(mCallbacks).toggleKeyboardShortcutsMenu(eq(1));
    }

    // TODO(b/117478341): add test case for multi-display
    @Test
    public void testSetWindowState() {
        mCommandQueue.setWindowState(DEFAULT_DISPLAY, 1, 2);
@@ -184,6 +213,13 @@ public class CommandQueueTest extends SysuiTestCase {
        verify(mCallbacks).setWindowState(eq(DEFAULT_DISPLAY), eq(1), eq(2));
    }

    @Test
    public void testSetWindowStateForSecondaryDisplay() {
        mCommandQueue.setWindowState(SECONDARY_DISPLAY, 1, 2);
        waitForIdleSync();
        verify(mCallbacks).setWindowState(eq(SECONDARY_DISPLAY), eq(1), eq(2));
    }

    @Test
    public void testScreenPinRequest() {
        mCommandQueue.showScreenPinningRequest(1);
@@ -191,7 +227,6 @@ public class CommandQueueTest extends SysuiTestCase {
        verify(mCallbacks).showScreenPinningRequest(eq(1));
    }

    // TODO(b/117478341): add test case for multi-display
    @Test
    public void testAppTransitionPending() {
        mCommandQueue.appTransitionPending(DEFAULT_DISPLAY);
@@ -199,7 +234,13 @@ public class CommandQueueTest extends SysuiTestCase {
        verify(mCallbacks).appTransitionPending(eq(DEFAULT_DISPLAY), eq(false));
    }

    // TODO(b/117478341): add test case for multi-display
    @Test
    public void testAppTransitionPendingForSecondaryDisplay() {
        mCommandQueue.appTransitionPending(SECONDARY_DISPLAY);
        waitForIdleSync();
        verify(mCallbacks).appTransitionPending(eq(SECONDARY_DISPLAY), eq(false));
    }

    @Test
    public void testAppTransitionCancelled() {
        mCommandQueue.appTransitionCancelled(DEFAULT_DISPLAY);
@@ -207,7 +248,13 @@ public class CommandQueueTest extends SysuiTestCase {
        verify(mCallbacks).appTransitionCancelled(eq(DEFAULT_DISPLAY));
    }

    // TODO(b/117478341): add test case for multi-display
    @Test
    public void testAppTransitionCancelledForSecondaryDisplay() {
        mCommandQueue.appTransitionCancelled(SECONDARY_DISPLAY);
        waitForIdleSync();
        verify(mCallbacks).appTransitionCancelled(eq(SECONDARY_DISPLAY));
    }

    @Test
    public void testAppTransitionStarting() {
        mCommandQueue.appTransitionStarting(DEFAULT_DISPLAY, 1, 2);
@@ -216,7 +263,14 @@ public class CommandQueueTest extends SysuiTestCase {
                eq(DEFAULT_DISPLAY), eq(1L), eq(2L), eq(false));
    }

    // TODO(b/117478341): add test case for multi-display
    @Test
    public void testAppTransitionStartingForSecondaryDisplay() {
        mCommandQueue.appTransitionStarting(SECONDARY_DISPLAY, 1, 2);
        waitForIdleSync();
        verify(mCallbacks).appTransitionStarting(
                eq(SECONDARY_DISPLAY), eq(1L), eq(2L), eq(false));
    }

    @Test
    public void testAppTransitionFinished() {
        mCommandQueue.appTransitionFinished(DEFAULT_DISPLAY);
@@ -224,6 +278,13 @@ public class CommandQueueTest extends SysuiTestCase {
        verify(mCallbacks).appTransitionFinished(eq(DEFAULT_DISPLAY));
    }

    @Test
    public void testAppTransitionFinishedForSecondaryDisplay() {
        mCommandQueue.appTransitionFinished(SECONDARY_DISPLAY);
        waitForIdleSync();
        verify(mCallbacks).appTransitionFinished(eq(SECONDARY_DISPLAY));
    }

    @Test
    public void testAssistDisclosure() {
        mCommandQueue.showAssistDisclosure();
@@ -290,4 +351,25 @@ public class CommandQueueTest extends SysuiTestCase {
        waitForIdleSync();
        verify(mCallbacks).handleSystemKey(eq(1));
    }

    @Test
    public void testOnDisplayReady() {
        mCommandQueue.onDisplayReady(DEFAULT_DISPLAY);
        waitForIdleSync();
        verify(mCallbacks).onDisplayReady(eq(DEFAULT_DISPLAY));
    }

    @Test
    public void testOnDisplayReadyForSecondaryDisplay() {
        mCommandQueue.onDisplayReady(SECONDARY_DISPLAY);
        waitForIdleSync();
        verify(mCallbacks).onDisplayReady(eq(SECONDARY_DISPLAY));
    }

    @Test
    public void testOnDisplayRemoved() {
        mCommandQueue.onDisplayRemoved(SECONDARY_DISPLAY);
        waitForIdleSync();
        verify(mCallbacks).onDisplayRemoved(eq(SECONDARY_DISPLAY));
    }
}
Loading