diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHanded.java b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHanded.java index 821a00703adf7..e95864873c0c4 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHanded.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHanded.java @@ -49,9 +49,9 @@ public interface OneHanded { void stopOneHanded(); /** - * Exits one handed mode with {@link OneHandedEvents}. + * Exits one handed mode with {@link OneHandedUiEventLogger}. */ - void stopOneHanded(int event); + void stopOneHanded(int uiEvent); /** * Set navigation 3 button mode enabled or disabled by users. diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java index 48d6a7b40ee14..eaa704f22410a 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java @@ -37,6 +37,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; +import com.android.internal.logging.UiEventLogger; import com.android.wm.shell.R; import com.android.wm.shell.common.DisplayChangeController; import com.android.wm.shell.common.DisplayController; @@ -47,7 +48,6 @@ import com.android.wm.shell.common.annotations.ExternalThread; import com.android.wm.shell.onehanded.OneHandedGestureHandler.OneHandedGestureEventCallback; import java.io.PrintWriter; -import java.util.concurrent.Executor; /** * Manages and manipulates the one handed states, transitions, and gesture for phones. @@ -73,6 +73,8 @@ public class OneHandedController { private final OneHandedTimeoutHandler mTimeoutHandler; private final OneHandedTouchHandler mTouchHandler; private final OneHandedTutorialHandler mTutorialHandler; + private final OneHandedUiEventLogger mOneHandedUiEventLogger; + private final TaskStackListenerImpl mTaskStackListener; private final IOverlayManager mOverlayManager; private final ShellExecutor mMainExecutor; private final Handler mMainHandler; @@ -117,15 +119,28 @@ public class OneHandedController { } }; + private final TaskStackListenerCallback mTaskStackListenerCallback = + new TaskStackListenerCallback() { + @Override + public void onTaskCreated(int taskId, ComponentName componentName) { + stopOneHanded(OneHandedUiEventLogger.EVENT_ONE_HANDED_TRIGGER_APP_TAPS_OUT); + } + + @Override + public void onTaskMovedToFront(int taskId) { + stopOneHanded(OneHandedUiEventLogger.EVENT_ONE_HANDED_TRIGGER_APP_TAPS_OUT); + } + }; + + /** * Creates {@link OneHanded}, returns {@code null} if the feature is not supported. */ @Nullable public static OneHanded create( Context context, DisplayController displayController, - TaskStackListenerImpl taskStackListener, - ShellExecutor mainExecutor, - Handler mainHandler) { + TaskStackListenerImpl taskStackListener, UiEventLogger uiEventLogger, + ShellExecutor mainExecutor, Handler mainHandler) { if (!SystemProperties.getBoolean(SUPPORT_ONE_HANDED_MODE, false)) { Slog.w(TAG, "Device doesn't support OneHanded feature"); return null; @@ -145,12 +160,13 @@ public class OneHandedController { OneHandedDisplayAreaOrganizer organizer = new OneHandedDisplayAreaOrganizer( context, displayController, animationController, tutorialHandler, oneHandedBackgroundPanelOrganizer, mainExecutor); + OneHandedUiEventLogger oneHandedUiEventsLogger = new OneHandedUiEventLogger(uiEventLogger); IOverlayManager overlayManager = IOverlayManager.Stub.asInterface( ServiceManager.getService(Context.OVERLAY_SERVICE)); return new OneHandedController(context, displayController, oneHandedBackgroundPanelOrganizer, organizer, touchHandler, tutorialHandler, - gestureHandler, timeoutHandler, overlayManager, taskStackListener, mainExecutor, - mainHandler).mImpl; + gestureHandler, timeoutHandler, oneHandedUiEventsLogger, overlayManager, + taskStackListener, mainExecutor, mainHandler).mImpl; } @VisibleForTesting @@ -162,6 +178,7 @@ public class OneHandedController { OneHandedTutorialHandler tutorialHandler, OneHandedGestureHandler gestureHandler, OneHandedTimeoutHandler timeoutHandler, + OneHandedUiEventLogger uiEventsLogger, IOverlayManager overlayManager, TaskStackListenerImpl taskStackListener, ShellExecutor mainExecutor, @@ -176,6 +193,8 @@ public class OneHandedController { mOverlayManager = overlayManager; mMainExecutor = mainExecutor; mMainHandler = mainHandler; + mOneHandedUiEventLogger = uiEventsLogger; + mTaskStackListener = taskStackListener; final float offsetPercentageConfig = context.getResources().getFraction( R.fraction.config_one_handed_offset, 1, 1); @@ -203,19 +222,6 @@ public class OneHandedController { setupGesturalOverlay(); updateSettings(); - taskStackListener.addListener( - new TaskStackListenerCallback() { - @Override - public void onTaskCreated(int taskId, ComponentName componentName) { - stopOneHanded(OneHandedEvents.EVENT_ONE_HANDED_TRIGGER_APP_TAPS_OUT); - } - - @Override - public void onTaskMovedToFront(int taskId) { - stopOneHanded(OneHandedEvents.EVENT_ONE_HANDED_TRIGGER_APP_TAPS_OUT); - } - }); - mAccessibilityManager = (AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE); mAccessibilityManager.addAccessibilityStateChangeListener( @@ -234,6 +240,11 @@ public class OneHandedController { * Set one handed enabled or disabled by when user update settings */ void setTaskChangeToExit(boolean enabled) { + if (enabled) { + mTaskStackListener.addListener(mTaskStackListenerCallback); + } else { + mTaskStackListener.removeListener(mTaskStackListenerCallback); + } mTaskChangeToExit = enabled; } @@ -252,7 +263,8 @@ public class OneHandedController { mDisplayAreaOrganizer.scheduleOffset(0, yOffSet); mTimeoutHandler.resetTimer(); - OneHandedEvents.writeEvent(OneHandedEvents.EVENT_ONE_HANDED_TRIGGER_GESTURE_IN); + mOneHandedUiEventLogger.writeEvent( + OneHandedUiEventLogger.EVENT_ONE_HANDED_TRIGGER_GESTURE_IN); } } @@ -264,17 +276,12 @@ public class OneHandedController { } } - private void stopOneHanded(int event) { - if (!mTaskChangeToExit && event == OneHandedEvents.EVENT_ONE_HANDED_TRIGGER_APP_TAPS_OUT) { - //Task change exit not enable, do nothing and return here. - return; - } - + private void stopOneHanded(int uiEvent) { if (mDisplayAreaOrganizer.isInOneHanded()) { - OneHandedEvents.writeEvent(event); + mDisplayAreaOrganizer.scheduleOffset(0, 0); + mTimeoutHandler.removeTimer(); + mOneHandedUiEventLogger.writeEvent(uiEvent); } - - stopOneHanded(); } private void setThreeButtonModeEnabled(boolean enabled) { @@ -292,11 +299,14 @@ public class OneHandedController { private void setupCallback() { mTouchHandler.registerTouchEventListener(() -> - stopOneHanded(OneHandedEvents.EVENT_ONE_HANDED_TRIGGER_OVERSPACE_OUT)); + stopOneHanded(OneHandedUiEventLogger.EVENT_ONE_HANDED_TRIGGER_OVERSPACE_OUT)); mDisplayAreaOrganizer.registerTransitionCallback(mTouchHandler); mDisplayAreaOrganizer.registerTransitionCallback(mGestureHandler); mDisplayAreaOrganizer.registerTransitionCallback(mTutorialHandler); mDisplayAreaOrganizer.registerTransitionCallback(mBackgroundPanelOrganizer); + if (mTaskChangeToExit) { + mTaskStackListener.addListener(mTaskStackListenerCallback); + } } private void setupSettingObservers() { @@ -334,9 +344,9 @@ public class OneHandedController { private void onEnabledSettingChanged() { final boolean enabled = OneHandedSettingsUtil.getSettingsOneHandedModeEnabled( mContext.getContentResolver()); - OneHandedEvents.writeEvent(enabled - ? OneHandedEvents.EVENT_ONE_HANDED_SETTINGS_ENABLED_ON - : OneHandedEvents.EVENT_ONE_HANDED_SETTINGS_ENABLED_OFF); + mOneHandedUiEventLogger.writeEvent(enabled + ? OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_ENABLED_ON + : OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_ENABLED_OFF); setOneHandedEnabled(enabled); @@ -349,25 +359,25 @@ public class OneHandedController { private void onTimeoutSettingChanged() { final int newTimeout = OneHandedSettingsUtil.getSettingsOneHandedModeTimeout( mContext.getContentResolver()); - int metricsId = OneHandedEvents.OneHandedSettingsTogglesEvent.INVALID.getId(); + int metricsId = OneHandedUiEventLogger.OneHandedSettingsTogglesEvent.INVALID.getId(); switch (newTimeout) { case OneHandedSettingsUtil.ONE_HANDED_TIMEOUT_NEVER: - metricsId = OneHandedEvents.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_NEVER; + metricsId = OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_NEVER; break; case OneHandedSettingsUtil.ONE_HANDED_TIMEOUT_SHORT_IN_SECONDS: - metricsId = OneHandedEvents.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_4; + metricsId = OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_4; break; case OneHandedSettingsUtil.ONE_HANDED_TIMEOUT_MEDIUM_IN_SECONDS: - metricsId = OneHandedEvents.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_8; + metricsId = OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_8; break; case OneHandedSettingsUtil.ONE_HANDED_TIMEOUT_LONG_IN_SECONDS: - metricsId = OneHandedEvents.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_12; + metricsId = OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_12; break; default: // do nothing break; } - OneHandedEvents.writeEvent(metricsId); + mOneHandedUiEventLogger.writeEvent(metricsId); if (mTimeoutHandler != null) { mTimeoutHandler.setTimeout(newTimeout); @@ -377,9 +387,9 @@ public class OneHandedController { private void onTaskChangeExitSettingChanged() { final boolean enabled = OneHandedSettingsUtil.getSettingsTapsAppToExit( mContext.getContentResolver()); - OneHandedEvents.writeEvent(enabled - ? OneHandedEvents.EVENT_ONE_HANDED_SETTINGS_APP_TAPS_EXIT_ON - : OneHandedEvents.EVENT_ONE_HANDED_SETTINGS_APP_TAPS_EXIT_OFF); + mOneHandedUiEventLogger.writeEvent(enabled + ? OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_APP_TAPS_EXIT_ON + : OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_APP_TAPS_EXIT_OFF); setTaskChangeToExit(enabled); } @@ -397,9 +407,8 @@ public class OneHandedController { } private void setupTimeoutListener() { - mTimeoutHandler.registerTimeoutListener(timeoutTime -> { - stopOneHanded(OneHandedEvents.EVENT_ONE_HANDED_TRIGGER_TIMEOUT_OUT); - }); + mTimeoutHandler.registerTimeoutListener(timeoutTime -> stopOneHanded( + OneHandedUiEventLogger.EVENT_ONE_HANDED_TRIGGER_TIMEOUT_OUT)); } /** diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedEvents.java b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedUiEventLogger.java similarity index 80% rename from libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedEvents.java rename to libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedUiEventLogger.java index 79ddd2b11e726..38ffb07aa5a4d 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedEvents.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedUiEventLogger.java @@ -19,17 +19,13 @@ package com.android.wm.shell.onehanded; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.logging.UiEvent; import com.android.internal.logging.UiEventLogger; -import com.android.internal.logging.UiEventLoggerImpl; /** - * Interesting events related to the One-Handed. + * Helper class that ends OneHanded mode log to UiEvent, see also go/uievent */ -public class OneHandedEvents { - private static final String TAG = "OneHandedEvents"; - - public static Callback sCallback; - @VisibleForTesting - static UiEventLogger sUiEventLogger = new UiEventLoggerImpl(); +public class OneHandedUiEventLogger { + private static final String TAG = "OneHandedUiEventLogger"; + private final UiEventLogger mUiEventLogger; /** * One-Handed event types @@ -76,6 +72,10 @@ public class OneHandedEvents { "one_handed_settings_timeout_seconds_12" }; + public OneHandedUiEventLogger(UiEventLogger uiEventLogger) { + mUiEventLogger = uiEventLogger; + } + /** * Events definition that related to One-Handed gestures. */ @@ -112,6 +112,7 @@ public class OneHandedEvents { mId = id; } + @Override public int getId() { return mId; } @@ -159,6 +160,7 @@ public class OneHandedEvents { mId = id; } + @Override public int getId() { return mId; } @@ -169,12 +171,8 @@ public class OneHandedEvents { * Logs an event to the system log, to sCallback if present, and to the logEvent destinations. * @param tag One of the EVENT_* codes above. */ - public static void writeEvent(int tag) { - final long time = System.currentTimeMillis(); + public void writeEvent(int tag) { logEvent(tag); - if (sCallback != null) { - sCallback.writeEvent(time, tag); - } } /** @@ -183,94 +181,75 @@ public class OneHandedEvents { * @return String a readable description of the event. Begins "writeEvent " * if the tag is valid. */ - public static String logEvent(int event) { - if (event >= EVENT_TAGS.length) { - return ""; - } - final StringBuilder sb = new StringBuilder("writeEvent ").append(EVENT_TAGS[event]); + private void logEvent(int event) { switch (event) { - // Triggers case EVENT_ONE_HANDED_TRIGGER_GESTURE_IN: - sUiEventLogger.log(OneHandedTriggerEvent.ONE_HANDED_TRIGGER_GESTURE_IN); + mUiEventLogger.log(OneHandedTriggerEvent.ONE_HANDED_TRIGGER_GESTURE_IN); break; case EVENT_ONE_HANDED_TRIGGER_GESTURE_OUT: - sUiEventLogger.log(OneHandedTriggerEvent.ONE_HANDED_TRIGGER_GESTURE_OUT); + mUiEventLogger.log(OneHandedTriggerEvent.ONE_HANDED_TRIGGER_GESTURE_OUT); break; case EVENT_ONE_HANDED_TRIGGER_OVERSPACE_OUT: - sUiEventLogger.log(OneHandedTriggerEvent.ONE_HANDED_TRIGGER_OVERSPACE_OUT); + mUiEventLogger.log(OneHandedTriggerEvent.ONE_HANDED_TRIGGER_OVERSPACE_OUT); break; case EVENT_ONE_HANDED_TRIGGER_POP_IME_OUT: - sUiEventLogger.log(OneHandedTriggerEvent.ONE_HANDED_TRIGGER_POP_IME_OUT); + mUiEventLogger.log(OneHandedTriggerEvent.ONE_HANDED_TRIGGER_POP_IME_OUT); break; case EVENT_ONE_HANDED_TRIGGER_ROTATION_OUT: - sUiEventLogger.log(OneHandedTriggerEvent.ONE_HANDED_TRIGGER_ROTATION_OUT); + mUiEventLogger.log(OneHandedTriggerEvent.ONE_HANDED_TRIGGER_ROTATION_OUT); break; case EVENT_ONE_HANDED_TRIGGER_APP_TAPS_OUT: - sUiEventLogger.log(OneHandedTriggerEvent.ONE_HANDED_TRIGGER_APP_TAPS_OUT); + mUiEventLogger.log(OneHandedTriggerEvent.ONE_HANDED_TRIGGER_APP_TAPS_OUT); break; case EVENT_ONE_HANDED_TRIGGER_TIMEOUT_OUT: - sUiEventLogger.log(OneHandedTriggerEvent.ONE_HANDED_TRIGGER_TIMEOUT_OUT); + mUiEventLogger.log(OneHandedTriggerEvent.ONE_HANDED_TRIGGER_TIMEOUT_OUT); break; case EVENT_ONE_HANDED_TRIGGER_SCREEN_OFF_OUT: - sUiEventLogger.log(OneHandedTriggerEvent.ONE_HANDED_TRIGGER_SCREEN_OFF_OUT); + mUiEventLogger.log(OneHandedTriggerEvent.ONE_HANDED_TRIGGER_SCREEN_OFF_OUT); break; - // Settings case EVENT_ONE_HANDED_SETTINGS_ENABLED_ON: - sUiEventLogger.log(OneHandedSettingsTogglesEvent + mUiEventLogger.log(OneHandedSettingsTogglesEvent .ONE_HANDED_SETTINGS_TOGGLES_ENABLED_ON); break; case EVENT_ONE_HANDED_SETTINGS_ENABLED_OFF: - sUiEventLogger.log(OneHandedSettingsTogglesEvent + mUiEventLogger.log(OneHandedSettingsTogglesEvent .ONE_HANDED_SETTINGS_TOGGLES_ENABLED_OFF); break; case EVENT_ONE_HANDED_SETTINGS_APP_TAPS_EXIT_ON: - sUiEventLogger.log(OneHandedSettingsTogglesEvent + mUiEventLogger.log(OneHandedSettingsTogglesEvent .ONE_HANDED_SETTINGS_TOGGLES_APP_TAPS_EXIT_ON); break; case EVENT_ONE_HANDED_SETTINGS_APP_TAPS_EXIT_OFF: - sUiEventLogger.log(OneHandedSettingsTogglesEvent + mUiEventLogger.log(OneHandedSettingsTogglesEvent .ONE_HANDED_SETTINGS_TOGGLES_APP_TAPS_EXIT_OFF); break; case EVENT_ONE_HANDED_SETTINGS_TIMEOUT_EXIT_ON: - sUiEventLogger.log(OneHandedSettingsTogglesEvent + mUiEventLogger.log(OneHandedSettingsTogglesEvent .ONE_HANDED_SETTINGS_TOGGLES_TIMEOUT_EXIT_ON); break; case EVENT_ONE_HANDED_SETTINGS_TIMEOUT_EXIT_OFF: - sUiEventLogger.log(OneHandedSettingsTogglesEvent + mUiEventLogger.log(OneHandedSettingsTogglesEvent .ONE_HANDED_SETTINGS_TOGGLES_TIMEOUT_EXIT_OFF); break; case EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_NEVER: - sUiEventLogger.log(OneHandedSettingsTogglesEvent + mUiEventLogger.log(OneHandedSettingsTogglesEvent .ONE_HANDED_SETTINGS_TOGGLES_TIMEOUT_SECONDS_NEVER); break; case EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_4: - sUiEventLogger.log(OneHandedSettingsTogglesEvent + mUiEventLogger.log(OneHandedSettingsTogglesEvent .ONE_HANDED_SETTINGS_TOGGLES_TIMEOUT_SECONDS_4); break; case EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_8: - sUiEventLogger.log(OneHandedSettingsTogglesEvent + mUiEventLogger.log(OneHandedSettingsTogglesEvent .ONE_HANDED_SETTINGS_TOGGLES_TIMEOUT_SECONDS_8); break; case EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_12: - sUiEventLogger.log(OneHandedSettingsTogglesEvent + mUiEventLogger.log(OneHandedSettingsTogglesEvent .ONE_HANDED_SETTINGS_TOGGLES_TIMEOUT_SECONDS_12); break; default: // Do nothing break; } - return sb.toString(); - } - - /** - * An interface for logging an event to the system log, if Callback present. - */ - public interface Callback { - /** - * - * @param time System current time. - * @param tag Event tag. - */ - void writeEvent(long time, int tag); } } diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedControllerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedControllerTest.java index 16d13f40f840a..f141167178a15 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedControllerTest.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedControllerTest.java @@ -28,7 +28,6 @@ import android.content.om.IOverlayManager; import android.os.Handler; import android.provider.Settings; import android.testing.AndroidTestingRunner; -import android.testing.TestableLooper; import android.view.Display; import androidx.test.filters.SmallTest; @@ -67,6 +66,8 @@ public class OneHandedControllerTest extends OneHandedTestCase { @Mock OneHandedTimeoutHandler mMockTimeoutHandler; @Mock + OneHandedUiEventLogger mMockUiEventLogger; + @Mock IOverlayManager mMockOverlayManager; @Mock TaskStackListenerImpl mMockTaskStackListener; @@ -89,6 +90,7 @@ public class OneHandedControllerTest extends OneHandedTestCase { mMockTutorialHandler, mMockGestureHandler, mTimeoutHandler, + mMockUiEventLogger, mMockOverlayManager, mMockTaskStackListener, mMockShellMainExecutor, diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedTutorialHandlerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedTutorialHandlerTest.java index c451b8b2d2d76..c3e6bf376bda7 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedTutorialHandlerTest.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedTutorialHandlerTest.java @@ -21,7 +21,6 @@ import static org.mockito.Mockito.verify; import android.content.om.IOverlayManager; import android.os.Handler; import android.testing.AndroidTestingRunner; -import android.testing.TestableLooper; import androidx.test.filters.SmallTest; @@ -58,6 +57,9 @@ public class OneHandedTutorialHandlerTest extends OneHandedTestCase { ShellExecutor mMockShellMainExecutor; @Mock Handler mMockShellMainHandler; + @Mock + OneHandedUiEventLogger mMockUiEventLogger; + @Before public void setUp() { @@ -75,6 +77,7 @@ public class OneHandedTutorialHandlerTest extends OneHandedTestCase { mTutorialHandler, mGestureHandler, mTimeoutHandler, + mMockUiEventLogger, mMockOverlayManager, mMockTaskStackListener, mMockShellMainExecutor, diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedEventsTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedUiEventLoggerTest.java similarity index 67% rename from libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedEventsTest.java rename to libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedUiEventLoggerTest.java index 492c34e10ed54..e29fc6a919331 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedEventsTest.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedUiEventLoggerTest.java @@ -33,7 +33,7 @@ import java.util.Collection; @RunWith(Parameterized.class) @SmallTest -public class OneHandedEventsTest extends OneHandedTestCase { +public class OneHandedUiEventLoggerTest extends OneHandedTestCase { private UiEventLoggerFake mUiEventLogger; @@ -48,7 +48,6 @@ public class OneHandedEventsTest extends OneHandedTestCase { @Before public void setFakeLoggers() { mUiEventLogger = new UiEventLoggerFake(); - OneHandedEvents.sUiEventLogger = mUiEventLogger; } @Test @@ -63,42 +62,42 @@ public class OneHandedEventsTest extends OneHandedTestCase { public static Collection data() { return Arrays.asList(new Object[][]{ // Triggers - {OneHandedEvents.EVENT_ONE_HANDED_TRIGGER_GESTURE_IN, + {OneHandedUiEventLogger.EVENT_ONE_HANDED_TRIGGER_GESTURE_IN, "writeEvent one_handed_trigger_gesture_in"}, - {OneHandedEvents.EVENT_ONE_HANDED_TRIGGER_GESTURE_OUT, + {OneHandedUiEventLogger.EVENT_ONE_HANDED_TRIGGER_GESTURE_OUT, "writeEvent one_handed_trigger_gesture_out"}, - {OneHandedEvents.EVENT_ONE_HANDED_TRIGGER_OVERSPACE_OUT, + {OneHandedUiEventLogger.EVENT_ONE_HANDED_TRIGGER_OVERSPACE_OUT, "writeEvent one_handed_trigger_overspace_out"}, - {OneHandedEvents.EVENT_ONE_HANDED_TRIGGER_POP_IME_OUT, + {OneHandedUiEventLogger.EVENT_ONE_HANDED_TRIGGER_POP_IME_OUT, "writeEvent one_handed_trigger_pop_ime_out"}, - {OneHandedEvents.EVENT_ONE_HANDED_TRIGGER_ROTATION_OUT, + {OneHandedUiEventLogger.EVENT_ONE_HANDED_TRIGGER_ROTATION_OUT, "writeEvent one_handed_trigger_rotation_out"}, - {OneHandedEvents.EVENT_ONE_HANDED_TRIGGER_APP_TAPS_OUT, + {OneHandedUiEventLogger.EVENT_ONE_HANDED_TRIGGER_APP_TAPS_OUT, "writeEvent one_handed_trigger_app_taps_out"}, - {OneHandedEvents.EVENT_ONE_HANDED_TRIGGER_TIMEOUT_OUT, + {OneHandedUiEventLogger.EVENT_ONE_HANDED_TRIGGER_TIMEOUT_OUT, "writeEvent one_handed_trigger_timeout_out"}, - {OneHandedEvents.EVENT_ONE_HANDED_TRIGGER_SCREEN_OFF_OUT, + {OneHandedUiEventLogger.EVENT_ONE_HANDED_TRIGGER_SCREEN_OFF_OUT, "writeEvent one_handed_trigger_screen_off_out"}, // Settings toggles - {OneHandedEvents.EVENT_ONE_HANDED_SETTINGS_ENABLED_ON, + {OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_ENABLED_ON, "writeEvent one_handed_settings_enabled_on"}, - {OneHandedEvents.EVENT_ONE_HANDED_SETTINGS_ENABLED_OFF, + {OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_ENABLED_OFF, "writeEvent one_handed_settings_enabled_off"}, - {OneHandedEvents.EVENT_ONE_HANDED_SETTINGS_APP_TAPS_EXIT_ON, + {OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_APP_TAPS_EXIT_ON, "writeEvent one_handed_settings_app_taps_exit_on"}, - {OneHandedEvents.EVENT_ONE_HANDED_SETTINGS_APP_TAPS_EXIT_OFF, + {OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_APP_TAPS_EXIT_OFF, "writeEvent one_handed_settings_app_taps_exit_off"}, - {OneHandedEvents.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_EXIT_ON, + {OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_EXIT_ON, "writeEvent one_handed_settings_timeout_exit_on"}, - {OneHandedEvents.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_EXIT_OFF, + {OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_EXIT_OFF, "writeEvent one_handed_settings_timeout_exit_off"}, - {OneHandedEvents.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_NEVER, + {OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_NEVER, "writeEvent one_handed_settings_timeout_seconds_never"}, - {OneHandedEvents.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_4, + {OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_4, "writeEvent one_handed_settings_timeout_seconds_4"}, - {OneHandedEvents.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_8, + {OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_8, "writeEvent one_handed_settings_timeout_seconds_8"}, - {OneHandedEvents.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_12, + {OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_TIMEOUT_SECONDS_12, "writeEvent one_handed_settings_timeout_seconds_12"} }); } diff --git a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java index f318388f7c545..760ebadf1b991 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java +++ b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java @@ -96,7 +96,6 @@ import com.android.systemui.statusbar.phone.StatusBarWindowCallback; import com.android.systemui.statusbar.policy.CallbackController; import com.android.wm.shell.legacysplitscreen.LegacySplitScreen; import com.android.wm.shell.onehanded.OneHanded; -import com.android.wm.shell.onehanded.OneHandedEvents; import com.android.wm.shell.pip.Pip; import com.android.wm.shell.pip.PipAnimationController; import com.android.wm.shell.transition.Transitions; @@ -469,8 +468,7 @@ public class OverviewProxyService extends CurrentUserTracker implements } final long token = Binder.clearCallingIdentity(); try { - mOneHandedOptional.ifPresent(oneHanded -> oneHanded.stopOneHanded( - OneHandedEvents.EVENT_ONE_HANDED_TRIGGER_GESTURE_OUT)); + mOneHandedOptional.ifPresent(oneHanded -> oneHanded.stopOneHanded()); } finally { Binder.restoreCallingIdentity(token); } diff --git a/packages/SystemUI/src/com/android/systemui/wmshell/WMShell.java b/packages/SystemUI/src/com/android/systemui/wmshell/WMShell.java index 715b0a25e4617..81ac21c008234 100644 --- a/packages/SystemUI/src/com/android/systemui/wmshell/WMShell.java +++ b/packages/SystemUI/src/com/android/systemui/wmshell/WMShell.java @@ -55,14 +55,14 @@ import com.android.systemui.tracing.ProtoTracer; import com.android.systemui.tracing.nano.SystemUiTraceProto; import com.android.wm.shell.ShellCommandHandler; import com.android.wm.shell.hidedisplaycutout.HideDisplayCutout; +import com.android.wm.shell.legacysplitscreen.LegacySplitScreen; import com.android.wm.shell.nano.WmShellTraceProto; import com.android.wm.shell.onehanded.OneHanded; -import com.android.wm.shell.onehanded.OneHandedEvents; import com.android.wm.shell.onehanded.OneHandedGestureHandler.OneHandedGestureEventCallback; import com.android.wm.shell.onehanded.OneHandedTransitionCallback; +import com.android.wm.shell.onehanded.OneHandedUiEventLogger; import com.android.wm.shell.pip.Pip; import com.android.wm.shell.protolog.ShellProtoLogImpl; -import com.android.wm.shell.legacysplitscreen.LegacySplitScreen; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -253,7 +253,7 @@ public final class WMShell extends SystemUI mSysUiMainExecutor.execute(() -> { if (oneHanded.isOneHandedEnabled()) { oneHanded.stopOneHanded( - OneHandedEvents.EVENT_ONE_HANDED_TRIGGER_GESTURE_OUT); + OneHandedUiEventLogger.EVENT_ONE_HANDED_TRIGGER_GESTURE_OUT); } else if (oneHanded.isSwipeToNotificationEnabled()) { mCommandQueue.handleSystemKey(KeyEvent.KEYCODE_SYSTEM_NAVIGATION_UP); } @@ -280,7 +280,7 @@ public final class WMShell extends SystemUI @Override public void onScreenTurningOff() { oneHanded.stopOneHanded( - OneHandedEvents.EVENT_ONE_HANDED_TRIGGER_SCREEN_OFF_OUT); + OneHandedUiEventLogger.EVENT_ONE_HANDED_TRIGGER_SCREEN_OFF_OUT); } }); @@ -294,7 +294,8 @@ public final class WMShell extends SystemUI public void setImeWindowStatus(int displayId, IBinder token, int vis, int backDisposition, boolean showImeSwitcher) { if (displayId == DEFAULT_DISPLAY && (vis & InputMethodService.IME_VISIBLE) != 0) { - oneHanded.stopOneHanded(OneHandedEvents.EVENT_ONE_HANDED_TRIGGER_POP_IME_OUT); + oneHanded.stopOneHanded( + OneHandedUiEventLogger.EVENT_ONE_HANDED_TRIGGER_POP_IME_OUT); } } }); diff --git a/packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java b/packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java index 1b5877f9da660..bbc238a35cbd2 100644 --- a/packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java +++ b/packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java @@ -350,10 +350,11 @@ public abstract class WMShellBaseModule { @Provides static Optional provideOneHandedController(Context context, DisplayController displayController, TaskStackListenerImpl taskStackListener, + UiEventLogger uiEventLogger, @ShellMainThread ShellExecutor mainExecutor, @ShellMainThread Handler mainHandler) { return Optional.ofNullable(OneHandedController.create(context, displayController, - taskStackListener, mainExecutor, mainHandler)); + taskStackListener, uiEventLogger, mainExecutor, mainHandler)); } @WMSingleton