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

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

Merge changes Id02aa26e,Iaafb1a0a into sc-dev

* changes:
  Refactor One handed mode Unit tests
  Do not register + unregister DA in the same call
parents 92916018 b221eb4c
Loading
Loading
Loading
Loading
+26 −14
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import android.os.ServiceManager;
import android.os.SystemProperties;
import android.provider.Settings;
import android.util.Slog;
import android.view.ViewConfiguration;
import android.view.accessibility.AccessibilityManager;

import androidx.annotation.NonNull;
@@ -155,7 +156,7 @@ public class OneHandedController {
        OneHandedTouchHandler touchHandler = new OneHandedTouchHandler(timeoutHandler,
                mainExecutor);
        OneHandedGestureHandler gestureHandler = new OneHandedGestureHandler(
                context, displayController, mainExecutor);
                context, displayController, ViewConfiguration.get(context), mainExecutor);
        OneHandedBackgroundPanelOrganizer oneHandedBackgroundPanelOrganizer =
                new OneHandedBackgroundPanelOrganizer(context, displayController, mainExecutor);
        OneHandedDisplayAreaOrganizer organizer = new OneHandedDisplayAreaOrganizer(
@@ -223,8 +224,7 @@ public class OneHandedController {
        setupGesturalOverlay();
        updateSettings();

        mAccessibilityManager = (AccessibilityManager)
                context.getSystemService(Context.ACCESSIBILITY_SERVICE);
        mAccessibilityManager = AccessibilityManager.getInstance(context);
        mAccessibilityManager.addAccessibilityStateChangeListener(
                mAccessibilityStateChangeListener);
    }
@@ -346,7 +346,8 @@ public class OneHandedController {
        };
    }

    private void onEnabledSettingChanged() {
    @VisibleForTesting
    void onEnabledSettingChanged() {
        final boolean enabled = OneHandedSettingsUtil.getSettingsOneHandedModeEnabled(
                mContext.getContentResolver());
        mOneHandedUiEventLogger.writeEvent(enabled
@@ -361,7 +362,8 @@ public class OneHandedController {
                        mContext.getContentResolver()));
    }

    private void onTimeoutSettingChanged() {
    @VisibleForTesting
    void onTimeoutSettingChanged() {
        final int newTimeout = OneHandedSettingsUtil.getSettingsOneHandedModeTimeout(
                mContext.getContentResolver());
        int metricsId = OneHandedUiEventLogger.OneHandedSettingsTogglesEvent.INVALID.getId();
@@ -389,7 +391,8 @@ public class OneHandedController {
        }
    }

    private void onTaskChangeExitSettingChanged() {
    @VisibleForTesting
    void onTaskChangeExitSettingChanged() {
        final boolean enabled = OneHandedSettingsUtil.getSettingsTapsAppToExit(
                mContext.getContentResolver());
        mOneHandedUiEventLogger.writeEvent(enabled
@@ -399,7 +402,8 @@ public class OneHandedController {
        setTaskChangeToExit(enabled);
    }

    private void onSwipeToNotificationEnabledSettingChanged() {
    @VisibleForTesting
    void onSwipeToNotificationEnabledSettingChanged() {
        final boolean enabled =
                OneHandedSettingsUtil.getSettingsSwipeToNotificationEnabled(
                        mContext.getContentResolver());
@@ -433,17 +437,26 @@ public class OneHandedController {
        if (mDisplayAreaOrganizer.isInOneHanded()) {
            stopOneHanded();
        }
        // TODO Be aware to unregisterOrganizer() after animation finished

        mTouchHandler.onOneHandedEnabled(mIsOneHandedEnabled);
        mGestureHandler.onOneHandedEnabled(mIsOneHandedEnabled || mIsSwipeToNotificationEnabled);

        if (!mIsOneHandedEnabled) {
            mDisplayAreaOrganizer.unregisterOrganizer();
            mBackgroundPanelOrganizer.unregisterOrganizer();
        if (mIsOneHandedEnabled) {
            // Do NOT register + unRegister DA in the same call
            return;
        }

        if (mDisplayAreaOrganizer.getDisplayAreaTokenMap().isEmpty()) {
            mDisplayAreaOrganizer.registerOrganizer(
                    OneHandedDisplayAreaOrganizer.FEATURE_ONE_HANDED);
        }

        if (mBackgroundPanelOrganizer.getBackgroundSurface() == null) {
            mBackgroundPanelOrganizer.registerOrganizer(
                    OneHandedBackgroundPanelOrganizer.FEATURE_ONE_HANDED_BACKGROUND_PANEL);
        }
        mTouchHandler.onOneHandedEnabled(mIsOneHandedEnabled);
        mGestureHandler.onOneHandedEnabled(mIsOneHandedEnabled || mIsSwipeToNotificationEnabled);
    }

    private void setupGesturalOverlay() {
@@ -453,7 +466,6 @@ public class OneHandedController {

        OverlayInfo info = null;
        try {
            // TODO(b/157958539) migrate new RRO config file after S+
            mOverlayManager.setHighestPriority(ONE_HANDED_MODE_GESTURAL_OVERLAY, USER_CURRENT);
            info = mOverlayManager.getOverlayInfo(ONE_HANDED_MODE_GESTURAL_OVERLAY, USER_CURRENT);
        } catch (RemoteException e) { /* Do nothing */ }
+6 −2
Original line number Diff line number Diff line
@@ -66,8 +66,7 @@ public class OneHandedDisplayAreaOrganizer extends DisplayAreaOrganizer {
    private boolean mIsInOneHanded;
    private int mEnterExitAnimationDurationMs;

    @VisibleForTesting
    ArrayMap<WindowContainerToken, SurfaceControl> mDisplayAreaTokenMap = new ArrayMap();
    private ArrayMap<WindowContainerToken, SurfaceControl> mDisplayAreaTokenMap = new ArrayMap();
    private DisplayController mDisplayController;
    private OneHandedAnimationController mAnimationController;
    private OneHandedSurfaceTransactionHelper.SurfaceControlTransactionFactory
@@ -298,6 +297,11 @@ public class OneHandedDisplayAreaOrganizer extends DisplayAreaOrganizer {
        return new Rect(0, 0, realSize.x, realSize.y);
    }

    @VisibleForTesting
    ArrayMap<WindowContainerToken, SurfaceControl> getDisplayAreaTokenMap() {
        return mDisplayAreaTokenMap;
    }

    /**
     * Register transition callback
     */
+2 −1
Original line number Diff line number Diff line
@@ -87,6 +87,7 @@ public class OneHandedGestureHandler implements OneHandedTransitionCallback,
     * @param displayController        {@link DisplayController}
     */
    public OneHandedGestureHandler(Context context, DisplayController displayController,
            ViewConfiguration viewConfig,
            ShellExecutor mainExecutor) {
        mDisplayController = displayController;
        mMainExecutor = mainExecutor;
@@ -95,7 +96,7 @@ public class OneHandedGestureHandler implements OneHandedTransitionCallback,
                com.android.internal.R.dimen.navigation_bar_gesture_larger_height);
        mDragDistThreshold = context.getResources().getDimensionPixelSize(
                R.dimen.gestures_onehanded_drag_threshold);
        final float slop = ViewConfiguration.get(context).getScaledTouchSlop();
        final float slop = viewConfig.getScaledTouchSlop();
        mSquaredSlop = slop * slop;

        updateIsEnabled();
+1 −2
Original line number Diff line number Diff line
@@ -107,8 +107,7 @@ public class OneHandedTutorialHandler implements OneHandedTransitionCallback {
        mPackageName = context.getPackageName();
        mContentResolver = context.getContentResolver();
        mWindowManager = context.getSystemService(WindowManager.class);
        mAccessibilityManager = (AccessibilityManager)
                context.getSystemService(Context.ACCESSIBILITY_SERVICE);
        mAccessibilityManager = AccessibilityManager.getInstance(context);

        mStartOneHandedDescription = context.getResources().getString(
                R.string.accessibility_action_start_one_handed);
+0 −3
Original line number Diff line number Diff line
@@ -47,7 +47,6 @@ public class OneHandedAnimationControllerTest extends OneHandedTestCase {
    private static final int TEST_BOUNDS_HEIGHT = 1000;

    OneHandedAnimationController mOneHandedAnimationController;
    OneHandedTutorialHandler mTutorialHandler;

    @Mock
    private SurfaceControl mMockLeash;
@@ -60,8 +59,6 @@ public class OneHandedAnimationControllerTest extends OneHandedTestCase {
    @Before
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);

        mTutorialHandler = new OneHandedTutorialHandler(mContext, mMainExecutor);
        mOneHandedAnimationController = new OneHandedAnimationController(mContext);
    }

Loading