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

Commit ab7ff983 authored by Jason Chang's avatar Jason Chang Committed by Automerger Merge Worker
Browse files

Merge "Fix One-handed mode tutorial broken on large screen device" into tm-dev am: 118e6bac

parents 4d51dd47 118e6bac
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -142,12 +142,7 @@ public final class BackgroundWindowManager extends WindowlessWindowManager {
     * @param displayLayout The latest {@link DisplayLayout} for display bounds.
     */
    public void onDisplayChanged(DisplayLayout displayLayout) {
        // One-handed mode is only available on portrait.
        if (displayLayout.height() > displayLayout.width()) {
        mDisplayBounds = new Rect(0, 0, displayLayout.width(), displayLayout.height());
        } else {
            mDisplayBounds = new Rect(0, 0, displayLayout.height(), displayLayout.width());
        }
    }

    private void updateThemeOnly() {
+1 −3
Original line number Diff line number Diff line
@@ -37,7 +37,6 @@ import android.os.ServiceManager;
import android.os.SystemProperties;
import android.provider.Settings;
import android.util.Slog;
import android.view.Surface;
import android.view.WindowManager;
import android.view.accessibility.AccessibilityManager;
import android.window.WindowContainerTransaction;
@@ -349,8 +348,7 @@ public class OneHandedController implements RemoteCallable<OneHandedController>,
            return;
        }

        final int currentRotation = mDisplayAreaOrganizer.getDisplayLayout().rotation();
        if (currentRotation != Surface.ROTATION_0 && currentRotation != Surface.ROTATION_180) {
        if (mDisplayAreaOrganizer.getDisplayLayout().isLandscape()) {
            Slog.w(TAG, "One handed mode only support portrait mode");
            return;
        }
+1 −6
Original line number Diff line number Diff line
@@ -149,12 +149,7 @@ public class OneHandedTutorialHandler implements OneHandedTransitionCallback,
     * @param displayLayout The latest {@link DisplayLayout} representing current displayId
     */
    public void onDisplayChanged(DisplayLayout displayLayout) {
        // Ensure the mDisplayBounds is portrait, due to OHM only support on portrait
        if (displayLayout.height() > displayLayout.width()) {
        mDisplayBounds = new Rect(0, 0, displayLayout.width(), displayLayout.height());
        } else {
            mDisplayBounds = new Rect(0, 0, displayLayout.height(), displayLayout.width());
        }
        mTutorialAreaHeight = Math.round(mDisplayBounds.height() * mTutorialHeightRatio);
        mAlphaTransitionStart = mTutorialAreaHeight * START_TRANSITION_FRACTION;
        mBackgroundWindowManager.onDisplayChanged(displayLayout);
+11 −12
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;

@SmallTest
@@ -64,12 +65,13 @@ public class OneHandedControllerTest extends OneHandedTestCase {
    private int mCurrentUser = UserHandle.myUserId();

    Display mDisplay;
    DisplayLayout mDisplayLayout;
    OneHandedAccessibilityUtil mOneHandedAccessibilityUtil;
    OneHandedController mSpiedOneHandedController;
    OneHandedTimeoutHandler mSpiedTimeoutHandler;
    OneHandedState mSpiedTransitionState;

    @Mock
    DisplayLayout mDisplayLayout;
    @Mock
    DisplayController mMockDisplayController;
    @Mock
@@ -105,7 +107,7 @@ public class OneHandedControllerTest extends OneHandedTestCase {
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mDisplay = mContext.getDisplay();
        mDisplayLayout = new DisplayLayout(mContext, mDisplay);
        mDisplayLayout = Mockito.mock(DisplayLayout.class);
        mSpiedTimeoutHandler = spy(new OneHandedTimeoutHandler(mMockShellMainExecutor));
        mSpiedTransitionState = spy(new OneHandedState());

@@ -124,7 +126,7 @@ public class OneHandedControllerTest extends OneHandedTestCase {
        when(mMockSettingsUitl.getShortcutEnabled(any(), anyInt())).thenReturn(false);

        when(mMockDisplayAreaOrganizer.getLastDisplayBounds()).thenReturn(
                new Rect(0, 0, mDisplayLayout.width(), mDisplayLayout.height()));
                new Rect(0, 0, 1080, 2400));
        when(mMockDisplayAreaOrganizer.getDisplayLayout()).thenReturn(mDisplayLayout);

        mOneHandedAccessibilityUtil = new OneHandedAccessibilityUtil(mContext);
@@ -302,10 +304,9 @@ public class OneHandedControllerTest extends OneHandedTestCase {

    @Test
    public void testRotation90CanNotStartOneHanded() {
        final DisplayLayout landscapeDisplayLayout = new DisplayLayout(mDisplayLayout);
        landscapeDisplayLayout.rotateTo(mContext.getResources(), Surface.ROTATION_90);
        mDisplayLayout.rotateTo(mContext.getResources(), Surface.ROTATION_90);
        mSpiedTransitionState.setState(STATE_NONE);
        when(mMockDisplayAreaOrganizer.getDisplayLayout()).thenReturn(landscapeDisplayLayout);
        when(mDisplayLayout.isLandscape()).thenReturn(true);
        mSpiedOneHandedController.setOneHandedEnabled(true);
        mSpiedOneHandedController.setLockedDisabled(false /* locked */, false /* enabled */);
        mSpiedOneHandedController.startOneHanded();
@@ -315,11 +316,10 @@ public class OneHandedControllerTest extends OneHandedTestCase {

    @Test
    public void testRotation180CanStartOneHanded() {
        final DisplayLayout testDisplayLayout = new DisplayLayout(mDisplayLayout);
        testDisplayLayout.rotateTo(mContext.getResources(), Surface.ROTATION_180);
        mDisplayLayout.rotateTo(mContext.getResources(), Surface.ROTATION_180);
        mSpiedTransitionState.setState(STATE_NONE);
        when(mMockDisplayAreaOrganizer.isReady()).thenReturn(true);
        when(mMockDisplayAreaOrganizer.getDisplayLayout()).thenReturn(testDisplayLayout);
        when(mDisplayLayout.isLandscape()).thenReturn(false);
        mSpiedOneHandedController.setOneHandedEnabled(true);
        mSpiedOneHandedController.setLockedDisabled(false /* locked */, false /* enabled */);
        mSpiedOneHandedController.startOneHanded();
@@ -329,10 +329,9 @@ public class OneHandedControllerTest extends OneHandedTestCase {

    @Test
    public void testRotation270CanNotStartOneHanded() {
        final DisplayLayout testDisplayLayout = new DisplayLayout(mDisplayLayout);
        testDisplayLayout.rotateTo(mContext.getResources(), Surface.ROTATION_270);
        mDisplayLayout.rotateTo(mContext.getResources(), Surface.ROTATION_270);
        mSpiedTransitionState.setState(STATE_NONE);
        when(mMockDisplayAreaOrganizer.getDisplayLayout()).thenReturn(testDisplayLayout);
        when(mDisplayLayout.isLandscape()).thenReturn(true);
        mSpiedOneHandedController.setOneHandedEnabled(true);
        mSpiedOneHandedController.setLockedDisabled(false /* locked */, false /* enabled */);
        mSpiedOneHandedController.startOneHanded();