Move functions to InputManager Global
Move remaining functions from InputManager to InputManagerGlobal. Also change some instances of InputManager.getInstance() to InputManagerGlobal.getInstance(). Bug: b/267758905 Test: Pre-submit Change-Id: I96cc5bdaaa9b8adf3b6ae6f50998160855144ae0
This commit is contained in:
@@ -28,6 +28,7 @@ import android.content.IntentFilter;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.res.Configuration;
|
||||
import android.hardware.input.InputManager;
|
||||
import android.hardware.input.InputManagerGlobal;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
@@ -1130,7 +1131,7 @@ public class Instrumentation {
|
||||
newEvent.setFlags(event.getFlags() | KeyEvent.FLAG_FROM_SYSTEM);
|
||||
setDisplayIfNeeded(newEvent);
|
||||
|
||||
InputManager.getInstance().injectInputEvent(newEvent,
|
||||
InputManagerGlobal.getInstance().injectInputEvent(newEvent,
|
||||
InputManager.INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH);
|
||||
}
|
||||
|
||||
@@ -1229,7 +1230,7 @@ public class Instrumentation {
|
||||
}
|
||||
|
||||
// Direct the injected event into windows owned by the instrumentation target.
|
||||
InputManager.getInstance().injectInputEvent(
|
||||
InputManagerGlobal.getInstance().injectInputEvent(
|
||||
event, InputManager.INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH, Process.myUid());
|
||||
|
||||
if (syncAfter) {
|
||||
@@ -1259,7 +1260,7 @@ public class Instrumentation {
|
||||
if (!event.isFromSource(InputDevice.SOURCE_CLASS_TRACKBALL)) {
|
||||
event.setSource(InputDevice.SOURCE_TRACKBALL);
|
||||
}
|
||||
InputManager.getInstance().injectInputEvent(event,
|
||||
InputManagerGlobal.getInstance().injectInputEvent(event,
|
||||
InputManager.INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH);
|
||||
}
|
||||
|
||||
|
||||
@@ -34,12 +34,10 @@ import android.content.Context;
|
||||
import android.hardware.BatteryState;
|
||||
import android.hardware.SensorManager;
|
||||
import android.hardware.lights.LightsManager;
|
||||
import android.os.Binder;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.IBinder;
|
||||
import android.os.InputEventInjectionSync;
|
||||
import android.os.Process;
|
||||
import android.os.RemoteException;
|
||||
import android.os.SystemClock;
|
||||
import android.os.Vibrator;
|
||||
@@ -392,12 +390,7 @@ public final class InputManager {
|
||||
* @hide
|
||||
*/
|
||||
public boolean isInputDeviceEnabled(int id) {
|
||||
try {
|
||||
return mIm.isInputDeviceEnabled(id);
|
||||
} catch (RemoteException ex) {
|
||||
Log.w(TAG, "Could not check enabled status of input device with id = " + id);
|
||||
throw ex.rethrowFromSystemServer();
|
||||
}
|
||||
return mGlobal.isInputDeviceEnabled(id);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -411,12 +404,7 @@ public final class InputManager {
|
||||
* @hide
|
||||
*/
|
||||
public void enableInputDevice(int id) {
|
||||
try {
|
||||
mIm.enableInputDevice(id);
|
||||
} catch (RemoteException ex) {
|
||||
Log.w(TAG, "Could not enable input device with id = " + id);
|
||||
throw ex.rethrowFromSystemServer();
|
||||
}
|
||||
mGlobal.enableInputDevice(id);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -430,12 +418,7 @@ public final class InputManager {
|
||||
* @hide
|
||||
*/
|
||||
public void disableInputDevice(int id) {
|
||||
try {
|
||||
mIm.disableInputDevice(id);
|
||||
} catch (RemoteException ex) {
|
||||
Log.w(TAG, "Could not disable input device with id = " + id);
|
||||
throw ex.rethrowFromSystemServer();
|
||||
}
|
||||
mGlobal.disableInputDevice(id);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1007,13 +990,7 @@ public final class InputManager {
|
||||
* @hide
|
||||
*/
|
||||
public boolean[] deviceHasKeys(int id, int[] keyCodes) {
|
||||
boolean[] ret = new boolean[keyCodes.length];
|
||||
try {
|
||||
mIm.hasKeys(id, InputDevice.SOURCE_ANY, keyCodes, ret);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
return ret;
|
||||
return mGlobal.deviceHasKeys(id, keyCodes);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1038,11 +1015,7 @@ public final class InputManager {
|
||||
* @hide
|
||||
*/
|
||||
public int getKeyCodeForKeyLocation(int deviceId, int locationKeyCode) {
|
||||
try {
|
||||
return mIm.getKeyCodeForKeyLocation(deviceId, locationKeyCode);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
return mGlobal.getKeyCodeForKeyLocation(deviceId, locationKeyCode);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1075,20 +1048,7 @@ public final class InputManager {
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.INJECT_EVENTS)
|
||||
public boolean injectInputEvent(InputEvent event, int mode, int targetUid) {
|
||||
if (event == null) {
|
||||
throw new IllegalArgumentException("event must not be null");
|
||||
}
|
||||
if (mode != InputEventInjectionSync.NONE
|
||||
&& mode != InputEventInjectionSync.WAIT_FOR_FINISHED
|
||||
&& mode != InputEventInjectionSync.WAIT_FOR_RESULT) {
|
||||
throw new IllegalArgumentException("mode is invalid");
|
||||
}
|
||||
|
||||
try {
|
||||
return mIm.injectInputEventToTarget(event, mode, targetUid);
|
||||
} catch (RemoteException ex) {
|
||||
throw ex.rethrowFromSystemServer();
|
||||
}
|
||||
return mGlobal.injectInputEvent(event, mode, targetUid);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1114,7 +1074,7 @@ public final class InputManager {
|
||||
@RequiresPermission(Manifest.permission.INJECT_EVENTS)
|
||||
@UnsupportedAppUsage
|
||||
public boolean injectInputEvent(InputEvent event, int mode) {
|
||||
return injectInputEvent(event, mode, Process.INVALID_UID);
|
||||
return mGlobal.injectInputEvent(event, mode);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1149,20 +1109,12 @@ public final class InputManager {
|
||||
*/
|
||||
@UnsupportedAppUsage
|
||||
public void setPointerIconType(int iconId) {
|
||||
try {
|
||||
mIm.setPointerIconType(iconId);
|
||||
} catch (RemoteException ex) {
|
||||
throw ex.rethrowFromSystemServer();
|
||||
}
|
||||
mGlobal.setPointerIconType(iconId);
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
public void setCustomPointerIcon(PointerIcon icon) {
|
||||
try {
|
||||
mIm.setCustomPointerIcon(icon);
|
||||
} catch (RemoteException ex) {
|
||||
throw ex.rethrowFromSystemServer();
|
||||
}
|
||||
mGlobal.setCustomPointerIcon(icon);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1191,11 +1143,7 @@ public final class InputManager {
|
||||
* @hide
|
||||
*/
|
||||
public void requestPointerCapture(IBinder windowToken, boolean enable) {
|
||||
try {
|
||||
mIm.requestPointerCapture(windowToken, enable);
|
||||
} catch (RemoteException ex) {
|
||||
throw ex.rethrowFromSystemServer();
|
||||
}
|
||||
mGlobal.requestPointerCapture(windowToken, enable);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1204,11 +1152,7 @@ public final class InputManager {
|
||||
* @hide
|
||||
*/
|
||||
public InputMonitor monitorGestureInput(String name, int displayId) {
|
||||
try {
|
||||
return mIm.monitorGestureInput(new Binder(), name, displayId);
|
||||
} catch (RemoteException ex) {
|
||||
throw ex.rethrowFromSystemServer();
|
||||
}
|
||||
return mGlobal.monitorGestureInput(name, displayId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1313,12 +1257,9 @@ public final class InputManager {
|
||||
* @hide
|
||||
*/
|
||||
@TestApi
|
||||
public void addUniqueIdAssociation(@NonNull String inputPort, @NonNull String displayUniqueId) {
|
||||
try {
|
||||
mIm.addUniqueIdAssociation(inputPort, displayUniqueId);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
public void addUniqueIdAssociation(@NonNull String inputPort,
|
||||
@NonNull String displayUniqueId) {
|
||||
mGlobal.addUniqueIdAssociation(inputPort, displayUniqueId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1331,11 +1272,7 @@ public final class InputManager {
|
||||
*/
|
||||
@TestApi
|
||||
public void removeUniqueIdAssociation(@NonNull String inputPort) {
|
||||
try {
|
||||
mIm.removeUniqueIdAssociation(inputPort);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
mGlobal.removeUniqueIdAssociation(inputPort);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1361,11 +1298,7 @@ public final class InputManager {
|
||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||
@Nullable
|
||||
public String getInputDeviceBluetoothAddress(int deviceId) {
|
||||
try {
|
||||
return mIm.getInputDeviceBluetoothAddress(deviceId);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
return mGlobal.getInputDeviceBluetoothAddress(deviceId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1423,11 +1356,7 @@ public final class InputManager {
|
||||
* @hide
|
||||
*/
|
||||
public void cancelCurrentTouch() {
|
||||
try {
|
||||
mIm.cancelCurrentTouch();
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
mGlobal.cancelCurrentTouch();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1451,11 +1380,7 @@ public final class InputManager {
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.MONITOR_INPUT)
|
||||
public void pilferPointers(IBinder inputChannelToken) {
|
||||
try {
|
||||
mIm.pilferPointers(inputChannelToken);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
mGlobal.pilferPointers(inputChannelToken);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -30,19 +30,27 @@ import android.hardware.input.InputManager.OnTabletModeChangedListener;
|
||||
import android.hardware.lights.Light;
|
||||
import android.hardware.lights.LightState;
|
||||
import android.hardware.lights.LightsRequest;
|
||||
import android.os.Binder;
|
||||
import android.os.CombinedVibration;
|
||||
import android.os.Handler;
|
||||
import android.os.IBinder;
|
||||
import android.os.IVibratorStateListener;
|
||||
import android.os.InputEventInjectionSync;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import android.os.Process;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.os.VibrationEffect;
|
||||
import android.os.Vibrator;
|
||||
import android.os.VibratorManager;
|
||||
import android.util.Log;
|
||||
import android.util.SparseArray;
|
||||
import android.view.Display;
|
||||
import android.view.InputDevice;
|
||||
import android.view.InputEvent;
|
||||
import android.view.InputMonitor;
|
||||
import android.view.PointerIcon;
|
||||
|
||||
import com.android.internal.annotations.GuardedBy;
|
||||
import com.android.internal.os.SomeArgs;
|
||||
@@ -358,6 +366,42 @@ public final class InputManagerGlobal {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see InputManager#isInputDeviceEnabled(int)
|
||||
*/
|
||||
public boolean isInputDeviceEnabled(int id) {
|
||||
try {
|
||||
return mIm.isInputDeviceEnabled(id);
|
||||
} catch (RemoteException ex) {
|
||||
Log.w(TAG, "Could not check enabled status of input device with id = " + id);
|
||||
throw ex.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see InputManager#enableInputDevice(int)
|
||||
*/
|
||||
public void enableInputDevice(int id) {
|
||||
try {
|
||||
mIm.enableInputDevice(id);
|
||||
} catch (RemoteException ex) {
|
||||
Log.w(TAG, "Could not enable input device with id = " + id);
|
||||
throw ex.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see InputManager#disableInputDevice(int)
|
||||
*/
|
||||
public void disableInputDevice(int id) {
|
||||
try {
|
||||
mIm.disableInputDevice(id);
|
||||
} catch (RemoteException ex) {
|
||||
Log.w(TAG, "Could not disable input device with id = " + id);
|
||||
throw ex.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see InputManager#getInputDeviceByDescriptor
|
||||
*/
|
||||
@@ -672,7 +716,7 @@ public final class InputManagerGlobal {
|
||||
* @see InputManager#getInputDeviceBatteryState(int, boolean)
|
||||
*/
|
||||
@NonNull
|
||||
BatteryState getInputDeviceBatteryState(int deviceId, boolean hasBattery) {
|
||||
public BatteryState getInputDeviceBatteryState(int deviceId, boolean hasBattery) {
|
||||
if (!hasBattery) {
|
||||
return new LocalBatteryState();
|
||||
}
|
||||
@@ -835,7 +879,7 @@ public final class InputManagerGlobal {
|
||||
* @see InputManager#getInputDeviceSensorManager(int)
|
||||
*/
|
||||
@NonNull
|
||||
SensorManager getInputDeviceSensorManager(int deviceId) {
|
||||
public SensorManager getInputDeviceSensorManager(int deviceId) {
|
||||
if (mInputDeviceSensorManager == null) {
|
||||
mInputDeviceSensorManager = new InputDeviceSensorManager(this);
|
||||
}
|
||||
@@ -980,6 +1024,21 @@ public final class InputManagerGlobal {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see InputManager#getInputDeviceVibrator(int, int)
|
||||
*/
|
||||
public Vibrator getInputDeviceVibrator(int deviceId, int vibratorId) {
|
||||
return new InputDeviceVibrator(deviceId, vibratorId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see InputManager#getInputDeviceVibratorManager(int)
|
||||
*/
|
||||
@NonNull
|
||||
public VibratorManager getInputDeviceVibratorManager(int deviceId) {
|
||||
return new InputDeviceVibratorManager(deviceId);
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the list of device vibrators
|
||||
* @return The list of vibrators IDs
|
||||
@@ -1057,4 +1116,158 @@ public final class InputManagerGlobal {
|
||||
throw ex.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see InputManager#deviceHasKeys(int, int[])
|
||||
*/
|
||||
public boolean[] deviceHasKeys(int id, int[] keyCodes) {
|
||||
boolean[] ret = new boolean[keyCodes.length];
|
||||
try {
|
||||
mIm.hasKeys(id, InputDevice.SOURCE_ANY, keyCodes, ret);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see InputManager#getKeyCodeforKeyLocation(int, int)
|
||||
*/
|
||||
public int getKeyCodeForKeyLocation(int deviceId, int locationKeyCode) {
|
||||
try {
|
||||
return mIm.getKeyCodeForKeyLocation(deviceId, locationKeyCode);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see InputManager#injectInputEvent(InputEvent, int, int)
|
||||
*/
|
||||
|
||||
public boolean injectInputEvent(InputEvent event, int mode, int targetUid) {
|
||||
if (event == null) {
|
||||
throw new IllegalArgumentException("event must not be null");
|
||||
}
|
||||
if (mode != InputEventInjectionSync.NONE
|
||||
&& mode != InputEventInjectionSync.WAIT_FOR_FINISHED
|
||||
&& mode != InputEventInjectionSync.WAIT_FOR_RESULT) {
|
||||
throw new IllegalArgumentException("mode is invalid");
|
||||
}
|
||||
|
||||
try {
|
||||
return mIm.injectInputEventToTarget(event, mode, targetUid);
|
||||
} catch (RemoteException ex) {
|
||||
throw ex.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see InputManager#injectInputEvent(InputEvent, int)
|
||||
*/
|
||||
public boolean injectInputEvent(InputEvent event, int mode) {
|
||||
return injectInputEvent(event, mode, Process.INVALID_UID);
|
||||
}
|
||||
|
||||
/**
|
||||
* @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#requestPointerCapture(IBinder, boolean)
|
||||
*/
|
||||
void requestPointerCapture(IBinder windowToken, boolean enable) {
|
||||
try {
|
||||
mIm.requestPointerCapture(windowToken, enable);
|
||||
} catch (RemoteException ex) {
|
||||
throw ex.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see Inputmanager#monitorGestureInput(String, int)
|
||||
*/
|
||||
InputMonitor monitorGestureInput(String name, int displayId) {
|
||||
try {
|
||||
return mIm.monitorGestureInput(new Binder(), name, displayId);
|
||||
} catch (RemoteException ex) {
|
||||
throw ex.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see InputManager#addUniqueIdAssociation(String, String)
|
||||
*/
|
||||
void addUniqueIdAssociation(@NonNull String inputPort, @NonNull String displayUniqueId) {
|
||||
try {
|
||||
mIm.addUniqueIdAssociation(inputPort, displayUniqueId);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see InputManager#removeUniqueIdAssociation(String)
|
||||
*/
|
||||
public void removeUniqueIdAssociation(@NonNull String inputPort) {
|
||||
try {
|
||||
mIm.removeUniqueIdAssociation(inputPort);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see InputManager#getInputDeviceBluetoothAddress(int)
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||
@Nullable
|
||||
public String getInputDeviceBluetoothAddress(int deviceId) {
|
||||
try {
|
||||
return mIm.getInputDeviceBluetoothAddress(deviceId);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see InputManager#cancelCurrentTouch()
|
||||
*/
|
||||
void cancelCurrentTouch() {
|
||||
try {
|
||||
mIm.cancelCurrentTouch();
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see InputManager#pilferPointers(IBinder)
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.MONITOR_INPUT)
|
||||
void pilferPointers(IBinder inputChannelToken) {
|
||||
try {
|
||||
mIm.pilferPointers(inputChannelToken);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -776,7 +776,7 @@ public final class InputDevice implements Parcelable {
|
||||
* Each gamepad or joystick is given a unique, positive controller number when initially
|
||||
* configured by the system. This number may change due to events such as device disconnects /
|
||||
* reconnects or user initiated reassignment. Any change in number will trigger an event that
|
||||
* can be observed by registering an {@link InputManager.InputDeviceListener}.
|
||||
* can be observed by registering an {@link InputManagerGlobal.InputDeviceListener}.
|
||||
* </p>
|
||||
* <p>
|
||||
* All input devices which are not gamepads or joysticks will be assigned a controller number
|
||||
@@ -981,7 +981,7 @@ public final class InputDevice implements Parcelable {
|
||||
* generating the keycode given by the corresponding value at the same index in the keys array.
|
||||
*/
|
||||
public boolean[] hasKeys(int... keys) {
|
||||
return InputManager.getInstance().deviceHasKeys(mId, keys);
|
||||
return InputManagerGlobal.getInstance().deviceHasKeys(mId, keys);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1028,7 +1028,8 @@ public final class InputDevice implements Parcelable {
|
||||
* {@link InputDevice#SOURCE_KEYBOARD} or the requested mapping cannot be determined.
|
||||
*/
|
||||
public int getKeyCodeForKeyLocation(int locationKeyCode) {
|
||||
return InputManager.getInstance().getKeyCodeForKeyLocation(mId, locationKeyCode);
|
||||
return InputManagerGlobal.getInstance()
|
||||
.getKeyCodeForKeyLocation(mId, locationKeyCode);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1109,9 +1110,11 @@ public final class InputDevice implements Parcelable {
|
||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||
@Nullable
|
||||
public String getBluetoothAddress() {
|
||||
// We query the address via a separate InputManager API instead of pre-populating it in
|
||||
// this class to avoid leaking it to apps that do not have sufficient permissions.
|
||||
return InputManager.getInstance().getInputDeviceBluetoothAddress(mId);
|
||||
// We query the address via a separate InputManagerGlobal API
|
||||
// instead of pre-populating it in this class to avoid
|
||||
// leaking it to apps that do not have sufficient permissions.
|
||||
return InputManagerGlobal.getInstance()
|
||||
.getInputDeviceBluetoothAddress(mId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1132,7 +1135,8 @@ public final class InputDevice implements Parcelable {
|
||||
synchronized (mMotionRanges) {
|
||||
if (mVibrator == null) {
|
||||
if (mHasVibrator) {
|
||||
mVibrator = InputManager.getInstance().getInputDeviceVibrator(mId,
|
||||
mVibrator = InputManagerGlobal.getInstance()
|
||||
.getInputDeviceVibrator(mId,
|
||||
VIBRATOR_ID_ALL);
|
||||
} else {
|
||||
mVibrator = NullVibrator.getInstance();
|
||||
@@ -1154,7 +1158,8 @@ public final class InputDevice implements Parcelable {
|
||||
public VibratorManager getVibratorManager() {
|
||||
synchronized (mMotionRanges) {
|
||||
if (mVibratorManager == null) {
|
||||
mVibratorManager = InputManager.getInstance().getInputDeviceVibratorManager(mId);
|
||||
mVibratorManager = InputManagerGlobal.getInstance()
|
||||
.getInputDeviceVibratorManager(mId);
|
||||
}
|
||||
}
|
||||
return mVibratorManager;
|
||||
@@ -1170,7 +1175,8 @@ public final class InputDevice implements Parcelable {
|
||||
*/
|
||||
@NonNull
|
||||
public BatteryState getBatteryState() {
|
||||
return InputManager.getInstance().getInputDeviceBatteryState(mId, mHasBattery);
|
||||
return InputManagerGlobal.getInstance()
|
||||
.getInputDeviceBatteryState(mId, mHasBattery);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1206,7 +1212,8 @@ public final class InputDevice implements Parcelable {
|
||||
public SensorManager getSensorManager() {
|
||||
synchronized (mMotionRanges) {
|
||||
if (mSensorManager == null) {
|
||||
mSensorManager = InputManager.getInstance().getInputDeviceSensorManager(mId);
|
||||
mSensorManager = InputManagerGlobal.getInstance()
|
||||
.getInputDeviceSensorManager(mId);
|
||||
}
|
||||
}
|
||||
return mSensorManager;
|
||||
@@ -1217,7 +1224,7 @@ public final class InputDevice implements Parcelable {
|
||||
* @return Whether the input device is enabled.
|
||||
*/
|
||||
public boolean isEnabled() {
|
||||
return InputManager.getInstance().isInputDeviceEnabled(mId);
|
||||
return InputManagerGlobal.getInstance().isInputDeviceEnabled(mId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1228,7 +1235,7 @@ public final class InputDevice implements Parcelable {
|
||||
@RequiresPermission(android.Manifest.permission.DISABLE_INPUT_DEVICE)
|
||||
@TestApi
|
||||
public void enable() {
|
||||
InputManager.getInstance().enableInputDevice(mId);
|
||||
InputManagerGlobal.getInstance().enableInputDevice(mId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1239,7 +1246,7 @@ public final class InputDevice implements Parcelable {
|
||||
@RequiresPermission(android.Manifest.permission.DISABLE_INPUT_DEVICE)
|
||||
@TestApi
|
||||
public void disable() {
|
||||
InputManager.getInstance().disableInputDevice(mId);
|
||||
InputManagerGlobal.getInstance().disableInputDevice(mId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1274,7 +1281,7 @@ public final class InputDevice implements Parcelable {
|
||||
* @hide
|
||||
*/
|
||||
public void setPointerType(int pointerType) {
|
||||
InputManager.getInstance().setPointerIconType(pointerType);
|
||||
InputManagerGlobal.getInstance().setPointerIconType(pointerType);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1283,7 +1290,7 @@ public final class InputDevice implements Parcelable {
|
||||
* @hide
|
||||
*/
|
||||
public void setCustomPointerIcon(PointerIcon icon) {
|
||||
InputManager.getInstance().setCustomPointerIcon(icon);
|
||||
InputManagerGlobal.getInstance().setCustomPointerIcon(icon);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1301,7 +1308,7 @@ public final class InputDevice implements Parcelable {
|
||||
*
|
||||
* @return the supported USI version, or null if the device does not support USI
|
||||
* @see <a href="https://universalstylus.org">Universal Stylus Initiative</a>
|
||||
* @see InputManager#getHostUsiVersion(int)
|
||||
* @see InputManagerGlobal#getHostUsiVersion(int)
|
||||
* @hide
|
||||
*/
|
||||
@Nullable
|
||||
|
||||
@@ -22,6 +22,7 @@ import android.hardware.hdmi.HdmiControlManager;
|
||||
import android.hardware.hdmi.HdmiDeviceInfo;
|
||||
import android.hardware.hdmi.IHdmiControlCallback;
|
||||
import android.hardware.input.InputManager;
|
||||
import android.hardware.input.InputManagerGlobal;
|
||||
import android.hardware.tv.cec.V1_0.Result;
|
||||
import android.hardware.tv.cec.V1_0.SendMessageResult;
|
||||
import android.media.AudioManager;
|
||||
@@ -827,7 +828,7 @@ abstract class HdmiCecLocalDevice extends HdmiLocalDevice {
|
||||
KeyEvent.FLAG_FROM_SYSTEM,
|
||||
InputDevice.SOURCE_HDMI,
|
||||
null);
|
||||
InputManager.getInstance()
|
||||
InputManagerGlobal.getInstance()
|
||||
.injectInputEvent(keyEvent, InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);
|
||||
keyEvent.recycle();
|
||||
}
|
||||
|
||||
@@ -42,6 +42,7 @@ import static android.view.KeyEvent.META_SHIFT_RIGHT_ON;
|
||||
import static java.util.Collections.unmodifiableMap;
|
||||
|
||||
import android.hardware.input.InputManager;
|
||||
import android.hardware.input.InputManagerGlobal;
|
||||
import android.os.ShellCommand;
|
||||
import android.os.SystemClock;
|
||||
import android.util.ArrayMap;
|
||||
@@ -109,7 +110,7 @@ public class InputShellCommand extends ShellCommand {
|
||||
}
|
||||
|
||||
private void injectKeyEvent(KeyEvent event) {
|
||||
InputManager.getInstance().injectInputEvent(event,
|
||||
InputManagerGlobal.getInstance().injectInputEvent(event,
|
||||
InputManager.INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH);
|
||||
}
|
||||
|
||||
@@ -178,7 +179,7 @@ public class InputShellCommand extends ShellCommand {
|
||||
pointerProperties, pointerCoords, DEFAULT_META_STATE, DEFAULT_BUTTON_STATE,
|
||||
DEFAULT_PRECISION_X, DEFAULT_PRECISION_Y, getInputDeviceId(inputSource),
|
||||
DEFAULT_EDGE_FLAGS, inputSource, displayId, DEFAULT_FLAGS);
|
||||
InputManager.getInstance().injectInputEvent(event,
|
||||
InputManagerGlobal.getInstance().injectInputEvent(event,
|
||||
InputManager.INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH);
|
||||
}
|
||||
|
||||
@@ -530,7 +531,7 @@ public class InputShellCommand extends ShellCommand {
|
||||
}
|
||||
|
||||
private void injectKeyEventAsync(KeyEvent event) {
|
||||
InputManager.getInstance().injectInputEvent(event,
|
||||
InputManagerGlobal.getInstance().injectInputEvent(event,
|
||||
InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user