diff options
15 files changed, 64 insertions, 47 deletions
diff --git a/core/java/android/app/UiAutomationConnection.java b/core/java/android/app/UiAutomationConnection.java index 3e4e7cb453e1..3a32f2362c0d 100644 --- a/core/java/android/app/UiAutomationConnection.java +++ b/core/java/android/app/UiAutomationConnection.java @@ -27,6 +27,7 @@ import android.content.Context; import android.graphics.Bitmap; import android.graphics.Rect; import android.hardware.input.InputManager; +import android.hardware.input.InputManagerGlobal; import android.os.Binder; import android.os.Build; import android.os.IBinder; @@ -161,7 +162,7 @@ public final class UiAutomationConnection extends IUiAutomationConnection.Stub { mWindowManager.syncInputTransactions(waitForAnimations); } - final boolean result = InputManager.getInstance().injectInputEvent(event, + final boolean result = InputManagerGlobal.getInstance().injectInputEvent(event, sync ? InputManager.INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH : InputManager.INJECT_INPUT_EVENT_MODE_ASYNC); diff --git a/core/java/android/hardware/input/InputManagerGlobal.java b/core/java/android/hardware/input/InputManagerGlobal.java index 6e7e90e103e8..31ce7d985b15 100644 --- a/core/java/android/hardware/input/InputManagerGlobal.java +++ b/core/java/android/hardware/input/InputManagerGlobal.java @@ -307,7 +307,7 @@ public final class InputManagerGlobal { /** * @see InputManager#registerInputDeviceListener */ - void registerInputDeviceListener(InputDeviceListener listener, Handler handler) { + public void registerInputDeviceListener(InputDeviceListener listener, Handler handler) { if (listener == null) { throw new IllegalArgumentException("listener must not be null"); } @@ -324,7 +324,7 @@ public final class InputManagerGlobal { /** * @see InputManager#unregisterInputDeviceListener */ - void unregisterInputDeviceListener(InputDeviceListener listener) { + public void unregisterInputDeviceListener(InputDeviceListener listener) { if (listener == null) { throw new IllegalArgumentException("listener must not be null"); } @@ -1118,6 +1118,13 @@ public final class InputManagerGlobal { } /** + * @see InputManager#deviceHasKeys(int[]) + */ + public boolean[] deviceHasKeys(int[] keyCodes) { + return deviceHasKeys(-1, keyCodes); + } + + /** * @see InputManager#deviceHasKeys(int, int[]) */ public boolean[] deviceHasKeys(int id, int[] keyCodes) { @@ -1203,9 +1210,9 @@ public final class InputManagerGlobal { } /** - * @see Inputmanager#monitorGestureInput(String, int) + * @see InputManager#monitorGestureInput(String, int) */ - InputMonitor monitorGestureInput(String name, int displayId) { + public InputMonitor monitorGestureInput(String name, int displayId) { try { return mIm.monitorGestureInput(new Binder(), name, displayId); } catch (RemoteException ex) { @@ -1216,7 +1223,7 @@ public final class InputManagerGlobal { /** * @see InputManager#addUniqueIdAssociation(String, String) */ - void addUniqueIdAssociation(@NonNull String inputPort, @NonNull String displayUniqueId) { + public void addUniqueIdAssociation(@NonNull String inputPort, @NonNull String displayUniqueId) { try { mIm.addUniqueIdAssociation(inputPort, displayUniqueId); } catch (RemoteException e) { @@ -1251,7 +1258,7 @@ public final class InputManagerGlobal { /** * @see InputManager#cancelCurrentTouch() */ - void cancelCurrentTouch() { + public void cancelCurrentTouch() { try { mIm.cancelCurrentTouch(); } catch (RemoteException e) { @@ -1263,7 +1270,7 @@ public final class InputManagerGlobal { * @see InputManager#pilferPointers(IBinder) */ @RequiresPermission(Manifest.permission.MONITOR_INPUT) - void pilferPointers(IBinder inputChannelToken) { + public void pilferPointers(IBinder inputChannelToken) { try { mIm.pilferPointers(inputChannelToken); } catch (RemoteException e) { diff --git a/core/java/android/view/KeyCharacterMap.java b/core/java/android/view/KeyCharacterMap.java index ea5d9a684ba4..d8221a6267fd 100644 --- a/core/java/android/view/KeyCharacterMap.java +++ b/core/java/android/view/KeyCharacterMap.java @@ -18,7 +18,7 @@ package android.view; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; -import android.hardware.input.InputManager; +import android.hardware.input.InputManagerGlobal; import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -355,7 +355,7 @@ public class KeyCharacterMap implements Parcelable { * is missing from the system. */ public static KeyCharacterMap load(int deviceId) { - final InputManager im = InputManager.getInstance(); + final InputManagerGlobal im = InputManagerGlobal.getInstance(); InputDevice inputDevice = im.getInputDevice(deviceId); if (inputDevice == null) { inputDevice = im.getInputDevice(VIRTUAL_KEYBOARD); @@ -722,7 +722,7 @@ public class KeyCharacterMap implements Parcelable { * @return True if at least one attached keyboard supports the specified key code. */ public static boolean deviceHasKey(int keyCode) { - return InputManager.getInstance().deviceHasKeys(new int[] { keyCode })[0]; + return InputManagerGlobal.getInstance().deviceHasKeys(new int[] { keyCode })[0]; } /** @@ -735,7 +735,7 @@ public class KeyCharacterMap implements Parcelable { * at the same index in the key codes array. */ public static boolean[] deviceHasKeys(int[] keyCodes) { - return InputManager.getInstance().deviceHasKeys(keyCodes); + return InputManagerGlobal.getInstance().deviceHasKeys(keyCodes); } @Override diff --git a/core/java/com/android/internal/view/BaseIWindow.java b/core/java/com/android/internal/view/BaseIWindow.java index 4a5ed7e8970d..600058e88e4b 100644 --- a/core/java/com/android/internal/view/BaseIWindow.java +++ b/core/java/com/android/internal/view/BaseIWindow.java @@ -18,7 +18,7 @@ package com.android.internal.view; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; -import android.hardware.input.InputManager; +import android.hardware.input.InputManagerGlobal; import android.os.Bundle; import android.os.ParcelFileDescriptor; import android.os.RemoteException; @@ -127,7 +127,8 @@ public class BaseIWindow extends IWindow.Stub { @Override public void updatePointerIcon(float x, float y) { - InputManager.getInstance().setPointerIconType(PointerIcon.TYPE_NOT_SPECIFIED); + InputManagerGlobal.getInstance() + .setPointerIconType(PointerIcon.TYPE_NOT_SPECIFIED); } @Override diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedTouchHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedTouchHandler.java index 5b9f0c41e31e..4ec1351aa22b 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedTouchHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedTouchHandler.java @@ -19,7 +19,7 @@ package com.android.wm.shell.onehanded; import static android.view.Display.DEFAULT_DISPLAY; import android.graphics.Rect; -import android.hardware.input.InputManager; +import android.hardware.input.InputManagerGlobal; import android.os.Looper; import android.view.InputChannel; import android.view.InputEvent; @@ -129,7 +129,7 @@ public class OneHandedTouchHandler implements OneHandedTransitionCallback { private void updateIsEnabled() { disposeInputChannel(); if (mIsEnabled) { - mInputMonitor = InputManager.getInstance().monitorGestureInput( + mInputMonitor = InputManagerGlobal.getInstance().monitorGestureInput( "onehanded-touch", DEFAULT_DISPLAY); try { mMainExecutor.executeBlocking(() -> { diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/InputMonitorCompat.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/InputMonitorCompat.java index bf8e6a5663c0..c4aac111f24c 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/InputMonitorCompat.java +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/InputMonitorCompat.java @@ -15,7 +15,7 @@ */ package com.android.systemui.shared.system; -import android.hardware.input.InputManager; +import android.hardware.input.InputManagerGlobal; import android.os.Looper; import android.view.Choreographer; import android.view.InputMonitor; @@ -33,7 +33,8 @@ public class InputMonitorCompat { * Monitor input on the specified display for gestures. */ public InputMonitorCompat(String name, int displayId) { - mInputMonitor = InputManager.getInstance().monitorGestureInput(name, displayId); + mInputMonitor = InputManagerGlobal.getInstance() + .monitorGestureInput(name, displayId); } /** diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/KeyButtonView.java b/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/KeyButtonView.java index 83c2a5de5c6e..3529142467d5 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/KeyButtonView.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/KeyButtonView.java @@ -30,6 +30,7 @@ import android.graphics.Paint; import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; import android.hardware.input.InputManager; +import android.hardware.input.InputManagerGlobal; import android.media.AudioManager; import android.metrics.LogMaker; import android.os.AsyncTask; @@ -79,7 +80,7 @@ public class KeyButtonView extends ImageView implements ButtonInterface { private final KeyButtonRipple mRipple; private final OverviewProxyService mOverviewProxyService; private final MetricsLogger mMetricsLogger = Dependency.get(MetricsLogger.class); - private final InputManager mInputManager; + private final InputManagerGlobal mInputManagerGlobal; private final Paint mOvalBgPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG); private float mDarkIntensity; private boolean mHasOvalBg = false; @@ -145,12 +146,12 @@ public class KeyButtonView extends ImageView implements ButtonInterface { } public KeyButtonView(Context context, AttributeSet attrs, int defStyle) { - this(context, attrs, defStyle, InputManager.getInstance(), new UiEventLoggerImpl()); + this(context, attrs, defStyle, InputManagerGlobal.getInstance(), new UiEventLoggerImpl()); } @VisibleForTesting - public KeyButtonView(Context context, AttributeSet attrs, int defStyle, InputManager manager, - UiEventLogger uiEventLogger) { + public KeyButtonView(Context context, AttributeSet attrs, int defStyle, + InputManagerGlobal manager, UiEventLogger uiEventLogger) { super(context, attrs); mUiEventLogger = uiEventLogger; @@ -173,7 +174,7 @@ public class KeyButtonView extends ImageView implements ButtonInterface { mRipple = new KeyButtonRipple(context, this, R.dimen.key_button_ripple_max_width); mOverviewProxyService = Dependency.get(OverviewProxyService.class); - mInputManager = manager; + mInputManagerGlobal = manager; setBackground(mRipple); setWillNotDraw(false); forceHasOverlappingRendering(false); @@ -428,7 +429,8 @@ public class KeyButtonView extends ImageView implements ButtonInterface { if (displayId != INVALID_DISPLAY) { ev.setDisplayId(displayId); } - mInputManager.injectInputEvent(ev, InputManager.INJECT_INPUT_EVENT_MODE_ASYNC); + mInputManagerGlobal.injectInputEvent(ev, + InputManager.INJECT_INPUT_EVENT_MODE_ASYNC); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java index c28a40a91378..80eea81a541d 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java +++ b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java @@ -21,6 +21,7 @@ import static android.view.MotionEvent.ACTION_CANCEL; import static android.view.MotionEvent.ACTION_DOWN; import static android.view.MotionEvent.ACTION_UP; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON; + import static com.android.internal.accessibility.common.ShortcutConstants.CHOOSER_PACKAGE_NAME; import static com.android.systemui.shared.system.QuickStepContract.KEY_EXTRA_SUPPORTS_WINDOW_CORNERS; import static com.android.systemui.shared.system.QuickStepContract.KEY_EXTRA_SYSUI_PROXY; @@ -47,6 +48,7 @@ import android.content.IntentFilter; import android.content.ServiceConnection; import android.graphics.Region; import android.hardware.input.InputManager; +import android.hardware.input.InputManagerGlobal; import android.os.Binder; import android.os.Bundle; import android.os.Handler; @@ -104,6 +106,8 @@ import com.android.systemui.statusbar.policy.CallbackController; import com.android.systemui.unfold.progress.UnfoldTransitionProgressForwarder; import com.android.wm.shell.sysui.ShellInterface; +import dagger.Lazy; + import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; @@ -113,8 +117,6 @@ import java.util.function.Supplier; import javax.inject.Inject; -import dagger.Lazy; - /** * Class to send information from overview to launcher with a binder. */ @@ -267,7 +269,7 @@ public class OverviewProxyService implements CallbackController<OverviewProxyLis InputDevice.SOURCE_KEYBOARD); ev.setDisplayId(mContext.getDisplay().getDisplayId()); - return InputManager.getInstance() + return InputManagerGlobal.getInstance() .injectInputEvent(ev, InputManager.INJECT_INPUT_EVENT_MODE_ASYNC); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcutListSearch.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcutListSearch.java index c920e1ec6604..c84894fc81ee 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcutListSearch.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcutListSearch.java @@ -33,7 +33,7 @@ import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; -import android.hardware.input.InputManager; +import android.hardware.input.InputManagerGlobal; import android.os.Handler; import android.os.Looper; import android.os.RemoteException; @@ -388,7 +388,7 @@ public final class KeyboardShortcutListSearch { * Keyboard with its default map. */ private void retrieveKeyCharacterMap(int deviceId) { - final InputManager inputManager = InputManager.getInstance(); + final InputManagerGlobal inputManager = InputManagerGlobal.getInstance(); mBackupKeyCharacterMap = inputManager.getInputDevice(-1).getKeyCharacterMap(); if (deviceId != -1) { final InputDevice inputDevice = inputManager.getInputDevice(deviceId); diff --git a/packages/SystemUI/src/com/android/systemui/unfold/UnfoldLightRevealOverlayAnimation.kt b/packages/SystemUI/src/com/android/systemui/unfold/UnfoldLightRevealOverlayAnimation.kt index 9d8c4a5cf8b0..3018e62c11f1 100644 --- a/packages/SystemUI/src/com/android/systemui/unfold/UnfoldLightRevealOverlayAnimation.kt +++ b/packages/SystemUI/src/com/android/systemui/unfold/UnfoldLightRevealOverlayAnimation.kt @@ -22,7 +22,7 @@ import android.graphics.PixelFormat import android.hardware.devicestate.DeviceStateManager import android.hardware.devicestate.DeviceStateManager.FoldStateListener import android.hardware.display.DisplayManager -import android.hardware.input.InputManager +import android.hardware.input.InputManagerGlobal import android.os.Handler import android.os.Looper import android.os.Trace @@ -332,7 +332,7 @@ constructor( executeInBackground { addOverlay(reason = FOLD) } } // Disable input dispatching during transition. - InputManager.getInstance().cancelCurrentTouch() + InputManagerGlobal.getInstance().cancelCurrentTouch() } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/buttons/KeyButtonViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/buttons/KeyButtonViewTest.java index 853684ab8dfc..078a917eb689 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/buttons/KeyButtonViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/buttons/KeyButtonViewTest.java @@ -39,7 +39,7 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import android.hardware.input.InputManager; +import android.hardware.input.InputManagerGlobal; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; @@ -67,7 +67,7 @@ public class KeyButtonViewTest extends SysuiTestCase { private KeyButtonView mKeyButtonView; private MetricsLogger mMetricsLogger; private UiEventLogger mUiEventLogger; - private InputManager mInputManager = mock(InputManager.class); + private InputManagerGlobal mInputManagerGlobal = mock(InputManagerGlobal.class); @Captor private ArgumentCaptor<KeyEvent> mInputEventCaptor; @@ -79,7 +79,8 @@ public class KeyButtonViewTest extends SysuiTestCase { mUiEventLogger = mDependency.injectMockDependency(UiEventLogger.class); TestableLooper.get(this).runWithLooper(() -> { - mKeyButtonView = new KeyButtonView(mContext, null, 0, mInputManager, mUiEventLogger); + mKeyButtonView = new KeyButtonView(mContext, null, 0, + mInputManagerGlobal, mUiEventLogger); }); } @@ -139,7 +140,7 @@ public class KeyButtonViewTest extends SysuiTestCase { public void testEventInjectedOnAbortGesture() { mKeyButtonView.setCode(KEYCODE_HOME); mKeyButtonView.abortCurrentGesture(); - verify(mInputManager, times(1)) + verify(mInputManagerGlobal, times(1)) .injectInputEvent(any(KeyEvent.class), any(Integer.class)); } @@ -147,7 +148,7 @@ public class KeyButtonViewTest extends SysuiTestCase { public void testNoEventInjectedOnAbortUnknownGesture() { mKeyButtonView.setCode(KEYCODE_UNKNOWN); mKeyButtonView.abortCurrentGesture(); - verify(mInputManager, never()) + verify(mInputManagerGlobal, never()) .injectInputEvent(any(KeyEvent.class), any(Integer.class)); } diff --git a/services/companion/java/com/android/server/companion/virtual/InputController.java b/services/companion/java/com/android/server/companion/virtual/InputController.java index bd6788993301..990dd64434a0 100644 --- a/services/companion/java/com/android/server/companion/virtual/InputController.java +++ b/services/companion/java/com/android/server/companion/virtual/InputController.java @@ -244,7 +244,7 @@ class InputController { token.unlinkToDeath(inputDeviceDescriptor.getDeathRecipient(), /* flags= */ 0); mNativeWrapper.closeUinput(inputDeviceDescriptor.getNativePointer()); String phys = inputDeviceDescriptor.getPhys(); - InputManager.getInstance().removeUniqueIdAssociation(phys); + InputManagerGlobal.getInstance().removeUniqueIdAssociation(phys); // Type associations are added in the case of navigation touchpads. Those should be removed // once the input device gets closed. if (inputDeviceDescriptor.getType() == InputDeviceDescriptor.TYPE_NAVIGATION_TOUCHPAD) { @@ -355,7 +355,7 @@ class InputController { private void setUniqueIdAssociation(int displayId, String phys) { final String displayUniqueId = mDisplayManagerInternal.getDisplayInfo(displayId).uniqueId; - InputManager.getInstance().addUniqueIdAssociation(phys, displayUniqueId); + InputManagerGlobal.getInstance().addUniqueIdAssociation(phys, displayUniqueId); } boolean sendDpadKeyEvent(@NonNull IBinder token, @NonNull VirtualKeyEvent event) { @@ -711,7 +711,7 @@ class InputController { } }; - InputManager.getInstance().registerInputDeviceListener(mListener, mHandler); + InputManagerGlobal.getInstance().registerInputDeviceListener(mListener, mHandler); } /** @@ -740,7 +740,7 @@ class InputController { @Override public void close() { - InputManager.getInstance().unregisterInputDeviceListener(mListener); + InputManagerGlobal.getInstance().unregisterInputDeviceListener(mListener); } } @@ -809,7 +809,7 @@ class InputController { throw e; } } catch (DeviceCreationException e) { - InputManager.getInstance().removeUniqueIdAssociation(phys); + InputManagerGlobal.getInstance().removeUniqueIdAssociation(phys); throw e; } diff --git a/services/core/java/com/android/server/inputmethod/HandwritingModeController.java b/services/core/java/com/android/server/inputmethod/HandwritingModeController.java index 502855defa07..d54354715d03 100644 --- a/services/core/java/com/android/server/inputmethod/HandwritingModeController.java +++ b/services/core/java/com/android/server/inputmethod/HandwritingModeController.java @@ -24,8 +24,8 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.UiThread; -import android.hardware.input.InputManager; import android.os.Handler; +import android.hardware.input.InputManagerGlobal; import android.os.IBinder; import android.os.Looper; import android.text.TextUtils; @@ -255,7 +255,8 @@ final class HandwritingModeController { } if (DEBUG) Slog.d(TAG, "Starting handwriting session in display: " + mCurrentDisplayId); - InputManager.getInstance().pilferPointers(mHandwritingSurface.getInputChannel().getToken()); + InputManagerGlobal.getInstance() + .pilferPointers(mHandwritingSurface.getInputChannel().getToken()); // Stop processing more events. mHandwritingEventReceiver.dispose(); diff --git a/services/core/java/com/android/server/wm/DragState.java b/services/core/java/com/android/server/wm/DragState.java index bc9efc88ecae..0f1a1053716e 100644 --- a/services/core/java/com/android/server/wm/DragState.java +++ b/services/core/java/com/android/server/wm/DragState.java @@ -44,7 +44,7 @@ import android.content.ClipData; import android.content.ClipDescription; import android.graphics.Point; import android.graphics.Rect; -import android.hardware.input.InputManager; +import android.hardware.input.InputManagerGlobal; import android.os.Binder; import android.os.Build; import android.os.IBinder; @@ -694,7 +694,7 @@ class DragState { void overridePointerIconLocked(int touchSource) { mTouchSource = touchSource; if (isFromSource(InputDevice.SOURCE_MOUSE)) { - InputManager.getInstance().setPointerIconType(PointerIcon.TYPE_GRABBING); + InputManagerGlobal.getInstance().setPointerIconType(PointerIcon.TYPE_GRABBING); } } diff --git a/services/core/java/com/android/server/wm/TaskTapPointerEventListener.java b/services/core/java/com/android/server/wm/TaskTapPointerEventListener.java index 523b484269c0..7d22b744ad5f 100644 --- a/services/core/java/com/android/server/wm/TaskTapPointerEventListener.java +++ b/services/core/java/com/android/server/wm/TaskTapPointerEventListener.java @@ -24,7 +24,7 @@ import static android.view.PointerIcon.TYPE_VERTICAL_DOUBLE_ARROW; import android.graphics.Rect; import android.graphics.Region; -import android.hardware.input.InputManager; +import android.hardware.input.InputManagerGlobal; import android.view.InputDevice; import android.view.MotionEvent; import android.view.WindowManagerPolicyConstants.PointerEventListener; @@ -117,7 +117,8 @@ public class TaskTapPointerEventListener implements PointerEventListener { mService.mH.obtainMessage(H.RESTORE_POINTER_ICON, x, y, mDisplayContent).sendToTarget(); } else { - InputManager.getInstance().setPointerIconType(mPointerIconType); + InputManagerGlobal.getInstance() + .setPointerIconType(mPointerIconType); } } } |