Merge "Fix One-handed mode tutorial broken on large screen device" into tm-dev am: 118e6bacdb am: ab7ff983a9
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17411125 Change-Id: I883f3d9b7acc7843bf53f372d1fff6f6cd70db8c Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -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());
|
||||
}
|
||||
mDisplayBounds = new Rect(0, 0, displayLayout.width(), displayLayout.height());
|
||||
}
|
||||
|
||||
private void updateThemeOnly() {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
mDisplayBounds = new Rect(0, 0, displayLayout.width(), displayLayout.height());
|
||||
mTutorialAreaHeight = Math.round(mDisplayBounds.height() * mTutorialHeightRatio);
|
||||
mAlphaTransitionStart = mTutorialAreaHeight * START_TRANSITION_FRACTION;
|
||||
mBackgroundWindowManager.onDisplayChanged(displayLayout);
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user