diff options
12 files changed, 28 insertions, 153 deletions
diff --git a/core/java/android/hardware/input/IInputManager.aidl b/core/java/android/hardware/input/IInputManager.aidl index 243ae142d9b6..8f78032435a8 100644 --- a/core/java/android/hardware/input/IInputManager.aidl +++ b/core/java/android/hardware/input/IInputManager.aidl @@ -148,8 +148,6 @@ interface IInputManager { IInputDeviceBatteryState getBatteryState(int deviceId); - void setPointerIconType(int typeId); - void setCustomPointerIcon(in PointerIcon icon); boolean setPointerIcon(in PointerIcon icon, int displayId, int deviceId, int pointerId, in IBinder inputToken); diff --git a/core/java/android/hardware/input/InputManager.java b/core/java/android/hardware/input/InputManager.java index dd4ea31af17d..57004bca80b6 100644 --- a/core/java/android/hardware/input/InputManager.java +++ b/core/java/android/hardware/input/InputManager.java @@ -992,21 +992,14 @@ public final class InputManager { } /** - * Changes the mouse pointer's icon shape into the specified id. - * - * @param iconId The id of the pointer graphic, as a value between - * {@link PointerIcon#TYPE_ARROW} and {@link PointerIcon#TYPE_HANDWRITING}. + * This method exists for backwards-compatibility, and is a no-op. * + * @deprecated * @hide */ @UnsupportedAppUsage public void setPointerIconType(int iconId) { - mGlobal.setPointerIconType(iconId); - } - - /** @hide */ - public void setCustomPointerIcon(PointerIcon icon) { - mGlobal.setCustomPointerIcon(icon); + Log.e(TAG, "setPointerIcon: Unsupported app usage!"); } /** @hide */ diff --git a/core/java/android/hardware/input/InputManagerGlobal.java b/core/java/android/hardware/input/InputManagerGlobal.java index a9c97b1a0e51..cb3af2b915bb 100644 --- a/core/java/android/hardware/input/InputManagerGlobal.java +++ b/core/java/android/hardware/input/InputManagerGlobal.java @@ -1411,28 +1411,6 @@ public final class InputManagerGlobal { } /** - * @see InputManager#setPointerIconType(int) - */ - public void setPointerIconType(int iconId) { - try { - mIm.setPointerIconType(iconId); - } catch (RemoteException ex) { - throw ex.rethrowFromSystemServer(); - } - } - - /** - * @see InputManager#setCustomPointerIcon(PointerIcon) - */ - public void setCustomPointerIcon(PointerIcon icon) { - try { - mIm.setCustomPointerIcon(icon); - } catch (RemoteException ex) { - throw ex.rethrowFromSystemServer(); - } - } - - /** * @see InputManager#setPointerIcon(PointerIcon, int, int, int, IBinder) */ public boolean setPointerIcon(PointerIcon icon, int displayId, int deviceId, int pointerId, diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 60ad926f2be1..1cb276568244 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -30695,21 +30695,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback, */ public void setPointerIcon(PointerIcon pointerIcon) { mMousePointerIcon = pointerIcon; - if (com.android.input.flags.Flags.enablePointerChoreographer()) { - final ViewRootImpl viewRootImpl = getViewRootImpl(); - if (viewRootImpl == null) { - return; - } - viewRootImpl.refreshPointerIcon(); - } else { - if (mAttachInfo == null || mAttachInfo.mHandlingPointerEvent) { - return; - } - try { - mAttachInfo.mSession.updatePointerIcon(mAttachInfo.mWindow); - } catch (RemoteException e) { - } + final ViewRootImpl viewRootImpl = getViewRootImpl(); + if (viewRootImpl == null) { + return; } + viewRootImpl.refreshPointerIcon(); } /** diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index fa579611a3a1..aa9ef9db56b8 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -74,7 +74,6 @@ import static android.view.ViewRootImplProto.WIDTH; import static android.view.ViewRootImplProto.WINDOW_ATTRIBUTES; import static android.view.ViewRootImplProto.WIN_FRAME; import static android.view.ViewTreeObserver.InternalInsetsInfo.TOUCHABLE_INSETS_REGION; -import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_OVERRIDE_LAYOUT_IN_DISPLAY_CUTOUT_MODE; import static android.view.WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS; import static android.view.WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS; import static android.view.WindowInsetsController.APPEARANCE_LOW_PROFILE_BARS; @@ -96,6 +95,7 @@ import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_FORCE_DECOR_V import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_INSET_PARENT_FRAME_BY_IME; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_LAYOUT_SIZE_EXTENDED_BY_CUTOUT; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_OPTIMIZE_MEASURE; +import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_OVERRIDE_LAYOUT_IN_DISPLAY_CUTOUT_MODE; import static android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE; import static android.view.WindowManager.LayoutParams.SOFT_INPUT_MASK_ADJUST; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING; @@ -122,7 +122,6 @@ import static android.view.flags.Flags.toolkitSetFrameRateReadOnly; import static android.view.inputmethod.InputMethodEditorTraceProto.InputMethodClientsTraceProto.ClientSideProto.IME_FOCUS_CONTROLLER; import static android.view.inputmethod.InputMethodEditorTraceProto.InputMethodClientsTraceProto.ClientSideProto.INSETS_CONTROLLER; -import static com.android.input.flags.Flags.enablePointerChoreographer; import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE; import static com.android.window.flags.Flags.activityWindowInfoFlag; import static com.android.window.flags.Flags.enableBufferTransformHintFromDisplay; @@ -7928,46 +7927,20 @@ public final class ViewRootImpl implements ViewParent, if (event.isStylusPointer() && mIsStylusPointerIconEnabled) { pointerIcon = mHandwritingInitiator.onResolvePointerIcon(mContext, event); } - if (pointerIcon == null) { pointerIcon = mView.onResolvePointerIcon(event, pointerIndex); } - - if (enablePointerChoreographer()) { - if (pointerIcon == null) { - pointerIcon = PointerIcon.getSystemIcon(mContext, PointerIcon.TYPE_NOT_SPECIFIED); - } - if (Objects.equals(mResolvedPointerIcon, pointerIcon)) { - return true; - } - mResolvedPointerIcon = pointerIcon; - - InputManagerGlobal.getInstance() - .setPointerIcon(pointerIcon, event.getDisplayId(), - event.getDeviceId(), event.getPointerId(0), getInputToken()); + if (pointerIcon == null) { + pointerIcon = PointerIcon.getSystemIcon(mContext, PointerIcon.TYPE_NOT_SPECIFIED); + } + if (Objects.equals(mResolvedPointerIcon, pointerIcon)) { return true; } + mResolvedPointerIcon = pointerIcon; - final int pointerType = (pointerIcon != null) ? - pointerIcon.getType() : PointerIcon.TYPE_NOT_SPECIFIED; - - if (mPointerIconType == null || mPointerIconType != pointerType) { - mPointerIconType = pointerType; - mCustomPointerIcon = null; - if (mPointerIconType != PointerIcon.TYPE_CUSTOM) { - InputManagerGlobal - .getInstance() - .setPointerIconType(pointerType); - return true; - } - } - if (mPointerIconType == PointerIcon.TYPE_CUSTOM && - !pointerIcon.equals(mCustomPointerIcon)) { - mCustomPointerIcon = pointerIcon; - InputManagerGlobal - .getInstance() - .setCustomPointerIcon(mCustomPointerIcon); - } + InputManagerGlobal.getInstance() + .setPointerIcon(pointerIcon, event.getDisplayId(), + event.getDeviceId(), event.getPointerId(0), getInputToken()); return true; } diff --git a/core/java/com/android/internal/view/BaseIWindow.java b/core/java/com/android/internal/view/BaseIWindow.java index e33704b0c535..26af19db58bd 100644 --- a/core/java/com/android/internal/view/BaseIWindow.java +++ b/core/java/com/android/internal/view/BaseIWindow.java @@ -18,7 +18,6 @@ package com.android.internal.view; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; -import android.hardware.input.InputManagerGlobal; import android.os.Bundle; import android.os.ParcelFileDescriptor; import android.os.RemoteException; @@ -29,7 +28,6 @@ import android.view.IWindow; import android.view.IWindowSession; import android.view.InsetsSourceControl; import android.view.InsetsState; -import android.view.PointerIcon; import android.view.ScrollCaptureResponse; import android.view.WindowInsets.Type.InsetsType; import android.view.inputmethod.ImeTracker; @@ -129,8 +127,6 @@ public class BaseIWindow extends IWindow.Stub { @Override public void updatePointerIcon(float x, float y) { - InputManagerGlobal.getInstance() - .setPointerIconType(PointerIcon.TYPE_NOT_SPECIFIED); } @Override diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeInputListener.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeInputListener.java index 9624d46678bf..07f0c3906766 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeInputListener.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeInputListener.java @@ -24,7 +24,6 @@ import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_TRUSTED_OVERL import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION; import static android.view.WindowManager.LayoutParams.TYPE_INPUT_CONSUMER; -import static com.android.input.flags.Flags.enablePointerChoreographer; import static com.android.wm.shell.windowdecor.DragPositioningCallback.CTRL_TYPE_BOTTOM; import static com.android.wm.shell.windowdecor.DragPositioningCallback.CTRL_TYPE_LEFT; import static com.android.wm.shell.windowdecor.DragPositioningCallback.CTRL_TYPE_RIGHT; @@ -499,12 +498,8 @@ class DragResizeInputListener implements AutoCloseable { // where views in the task can receive input events because we can't set touch regions // of input sinks to have rounded corners. if (mLastCursorType != cursorType || cursorType != PointerIcon.TYPE_DEFAULT) { - if (enablePointerChoreographer()) { - mInputManager.setPointerIcon(PointerIcon.getSystemIcon(mContext, cursorType), - displayId, deviceId, pointerId, mInputChannel.getToken()); - } else { - mInputManager.setPointerIconType(cursorType); - } + mInputManager.setPointerIcon(PointerIcon.getSystemIcon(mContext, cursorType), + displayId, deviceId, pointerId, mInputChannel.getToken()); mLastCursorType = cursorType; } } diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java index cbd309e1f957..0d8abdfdeac0 100644 --- a/services/core/java/com/android/server/input/InputManagerService.java +++ b/services/core/java/com/android/server/input/InputManagerService.java @@ -1612,18 +1612,6 @@ public class InputManagerService extends IInputManager.Stub // Binder call @Override - public void setPointerIconType(int iconType) { - // TODO(b/311416205): Remove. - } - - // Binder call - @Override - public void setCustomPointerIcon(PointerIcon icon) { - // TODO(b/311416205): Remove. - } - - // Binder call - @Override public boolean setPointerIcon(PointerIcon icon, int displayId, int deviceId, int pointerId, IBinder inputToken) { Objects.requireNonNull(icon); diff --git a/services/core/java/com/android/server/inputmethod/HandwritingModeController.java b/services/core/java/com/android/server/inputmethod/HandwritingModeController.java index 7956e03f22a9..79f1a9c90f53 100644 --- a/services/core/java/com/android/server/inputmethod/HandwritingModeController.java +++ b/services/core/java/com/android/server/inputmethod/HandwritingModeController.java @@ -330,14 +330,10 @@ final class HandwritingModeController { mHandwritingSurface.startIntercepting(imePid, imeUid); // Unset the pointer icon for the stylus in case the app had set it. - if (com.android.input.flags.Flags.enablePointerChoreographer()) { - Objects.requireNonNull(mContext.getSystemService(InputManager.class)).setPointerIcon( - PointerIcon.getSystemIcon(mContext, PointerIcon.TYPE_NOT_SPECIFIED), - downEvent.getDisplayId(), downEvent.getDeviceId(), downEvent.getPointerId(0), - mHandwritingSurface.getInputChannel().getToken()); - } else { - InputManagerGlobal.getInstance().setPointerIconType(PointerIcon.TYPE_NOT_SPECIFIED); - } + Objects.requireNonNull(mContext.getSystemService(InputManager.class)).setPointerIcon( + PointerIcon.getSystemIcon(mContext, PointerIcon.TYPE_NOT_SPECIFIED), + downEvent.getDisplayId(), downEvent.getDeviceId(), downEvent.getPointerId(0), + mHandwritingSurface.getInputChannel().getToken()); return new HandwritingSession(mCurrentRequestId, mHandwritingSurface.getInputChannel(), mHandwritingBuffer); diff --git a/services/core/java/com/android/server/wm/DragDropController.java b/services/core/java/com/android/server/wm/DragDropController.java index 8116f6870f66..30f2d0d64d13 100644 --- a/services/core/java/com/android/server/wm/DragDropController.java +++ b/services/core/java/com/android/server/wm/DragDropController.java @@ -21,13 +21,11 @@ import static android.view.View.DRAG_FLAG_GLOBAL; import static android.view.View.DRAG_FLAG_GLOBAL_SAME_APPLICATION; import static android.view.View.DRAG_FLAG_START_INTENT_SENDER_ON_UNHANDLED_DRAG; -import static com.android.input.flags.Flags.enablePointerChoreographer; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_DRAG; import static com.android.server.wm.WindowManagerDebugConfig.SHOW_LIGHT_TRANSACTIONS; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; import android.annotation.NonNull; -import android.app.ActivityManager; import android.content.ClipData; import android.content.Context; import android.hardware.input.InputManagerGlobal; @@ -266,16 +264,12 @@ class DragDropController { final SurfaceControl surfaceControl = mDragState.mSurfaceControl; mDragState.broadcastDragStartedLocked(touchX, touchY); - if (enablePointerChoreographer()) { - if ((touchSource & InputDevice.SOURCE_MOUSE) == InputDevice.SOURCE_MOUSE) { - InputManagerGlobal.getInstance().setPointerIcon( - PointerIcon.getSystemIcon( - mService.mContext, PointerIcon.TYPE_GRABBING), - mDragState.mDisplayContent.getDisplayId(), touchDeviceId, - touchPointerId, mDragState.getInputToken()); - } - } else { - mDragState.overridePointerIconLocked(touchSource); + if ((touchSource & InputDevice.SOURCE_MOUSE) == InputDevice.SOURCE_MOUSE) { + InputManagerGlobal.getInstance().setPointerIcon( + PointerIcon.getSystemIcon( + mService.mContext, PointerIcon.TYPE_GRABBING), + mDragState.mDisplayContent.getDisplayId(), touchDeviceId, + touchPointerId, mDragState.getInputToken()); } // remember the thumb offsets for later mDragState.mThumbOffsetX = thumbCenterX; diff --git a/services/core/java/com/android/server/wm/DragState.java b/services/core/java/com/android/server/wm/DragState.java index 5ed343a4d028..72ae64c455fe 100644 --- a/services/core/java/com/android/server/wm/DragState.java +++ b/services/core/java/com/android/server/wm/DragState.java @@ -45,7 +45,6 @@ import android.content.ClipData; import android.content.ClipDescription; import android.graphics.Point; import android.graphics.Rect; -import android.hardware.input.InputManagerGlobal; import android.os.Binder; import android.os.Build; import android.os.IBinder; @@ -58,9 +57,7 @@ import android.view.Display; import android.view.DragEvent; import android.view.InputApplicationHandle; import android.view.InputChannel; -import android.view.InputDevice; import android.view.InputWindowHandle; -import android.view.PointerIcon; import android.view.SurfaceControl; import android.view.View; import android.view.WindowManager; @@ -110,7 +107,6 @@ class DragState { boolean mCrossProfileCopyAllowed; ClipData mData; ClipDescription mDataDescription; - int mTouchSource; boolean mDragResult; boolean mRelinquishDragSurfaceToDropTarget; float mAnimatedScale = 1.0f; @@ -263,12 +259,6 @@ class DragState { Trace.instant(TRACE_TAG_WINDOW_MANAGER, "DragDropController#DRAG_ENDED"); } - // Take the cursor back if it has been changed. - if (isFromSource(InputDevice.SOURCE_MOUSE)) { - mService.restorePointerIconLocked(mDisplayContent, mCurrentX, mCurrentY); - mTouchSource = 0; - } - // Clear the internal variables. if (mInputSurface != null) { mTransaction.remove(mInputSurface).apply(); @@ -762,18 +752,6 @@ class DragState { return animator; } - private boolean isFromSource(int source) { - return (mTouchSource & source) == source; - } - - void overridePointerIconLocked(int touchSource) { - mTouchSource = touchSource; - if (isFromSource(InputDevice.SOURCE_MOUSE)) { - // TODO(b/293587049): Pointer Icon Refactor: Set the pointer icon from the drag window. - InputManagerGlobal.getInstance().setPointerIconType(PointerIcon.TYPE_GRABBING); - } - } - private class AnimationListener implements ValueAnimator.AnimatorUpdateListener, Animator.AnimatorListener { @Override diff --git a/services/core/java/com/android/server/wm/TaskTapPointerEventListener.java b/services/core/java/com/android/server/wm/TaskTapPointerEventListener.java index ac244c7b048e..0b753116137a 100644 --- a/services/core/java/com/android/server/wm/TaskTapPointerEventListener.java +++ b/services/core/java/com/android/server/wm/TaskTapPointerEventListener.java @@ -24,7 +24,6 @@ import static android.view.PointerIcon.TYPE_VERTICAL_DOUBLE_ARROW; import android.graphics.Rect; import android.graphics.Region; -import android.hardware.input.InputManagerGlobal; import android.view.InputDevice; import android.view.MotionEvent; import android.view.WindowManagerPolicyConstants.PointerEventListener; @@ -120,9 +119,6 @@ public class TaskTapPointerEventListener implements PointerEventListener { mService.mH.removeMessages(H.RESTORE_POINTER_ICON); mService.mH.obtainMessage(H.RESTORE_POINTER_ICON, x, y, mDisplayContent).sendToTarget(); - } else { - InputManagerGlobal.getInstance() - .setPointerIconType(mPointerIconType); } } } |