From cb5f26ea81d98aba3204c2c362c0d6ed723c4196 Mon Sep 17 00:00:00 2001 From: Asmita Poddar Date: Wed, 15 Mar 2023 17:41:38 +0000 Subject: [PATCH] InputDeviceLightsManager to use InputManagerGlobal Move InputDeviceLightsManager, along with its associated functions from InputManager to InputManagerGlobal. Bug: b/267758905 Test: Pre-submit Change-Id: Ib253fb0365e7d99d2b2f4fc8cc9bebcd8ca753c9 --- .../input/InputDeviceLightsManager.java | 21 +++--- .../android/hardware/input/InputManager.java | 75 +------------------ .../hardware/input/InputManagerGlobal.java | 73 ++++++++++++++++++ 3 files changed, 85 insertions(+), 84 deletions(-) diff --git a/core/java/android/hardware/input/InputDeviceLightsManager.java b/core/java/android/hardware/input/InputDeviceLightsManager.java index 802e6dde497a4..f4ee9a21c42cb 100644 --- a/core/java/android/hardware/input/InputDeviceLightsManager.java +++ b/core/java/android/hardware/input/InputDeviceLightsManager.java @@ -18,6 +18,7 @@ package android.hardware.input; import android.annotation.NonNull; import android.app.ActivityThread; +import android.content.Context; import android.hardware.lights.Light; import android.hardware.lights.LightState; import android.hardware.lights.LightsManager; @@ -30,22 +31,22 @@ import java.lang.ref.Reference; import java.util.List; /** - * LightsManager manages an input device's lights {@link android.hardware.input.Light}. + * LightsManager manages an input device's lights {@link android.hardware.lights.Light} */ class InputDeviceLightsManager extends LightsManager { private static final String TAG = "InputDeviceLightsManager"; private static final boolean DEBUG = false; - private final InputManager mInputManager; + private final InputManagerGlobal mGlobal; // The input device ID. private final int mDeviceId; // Package name private final String mPackageName; - InputDeviceLightsManager(InputManager inputManager, int deviceId) { - super(ActivityThread.currentActivityThread().getSystemContext()); - mInputManager = inputManager; + InputDeviceLightsManager(Context context, int deviceId) { + super(context); + mGlobal = InputManagerGlobal.getInstance(); mDeviceId = deviceId; mPackageName = ActivityThread.currentPackageName(); } @@ -57,7 +58,7 @@ class InputDeviceLightsManager extends LightsManager { */ @Override public @NonNull List getLights() { - return mInputManager.getLights(mDeviceId); + return mGlobal.getLights(mDeviceId); } /** @@ -68,7 +69,7 @@ class InputDeviceLightsManager extends LightsManager { @Override public @NonNull LightState getLightState(@NonNull Light light) { Preconditions.checkNotNull(light); - return mInputManager.getLightState(mDeviceId, light); + return mGlobal.getLightState(mDeviceId, light); } /** @@ -77,7 +78,7 @@ class InputDeviceLightsManager extends LightsManager { @Override public @NonNull LightsSession openSession() { final LightsSession session = new InputDeviceLightsSession(); - mInputManager.openLightSession(mDeviceId, mPackageName, session.getToken()); + mGlobal.openLightSession(mDeviceId, mPackageName, session.getToken()); return session; } @@ -113,7 +114,7 @@ class InputDeviceLightsManager extends LightsManager { Preconditions.checkNotNull(request); Preconditions.checkArgument(!mClosed); - mInputManager.requestLights(mDeviceId, request, getToken()); + mGlobal.requestLights(mDeviceId, request, getToken()); } /** @@ -122,7 +123,7 @@ class InputDeviceLightsManager extends LightsManager { @Override public void close() { if (!mClosed) { - mInputManager.closeLightSession(mDeviceId, getToken()); + mGlobal.closeLightSession(mDeviceId, getToken()); mClosed = true; mCloseGuard.close(); } diff --git a/core/java/android/hardware/input/InputManager.java b/core/java/android/hardware/input/InputManager.java index 054ae21be14a3..93d955624ac2b 100644 --- a/core/java/android/hardware/input/InputManager.java +++ b/core/java/android/hardware/input/InputManager.java @@ -33,10 +33,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.hardware.BatteryState; import android.hardware.SensorManager; -import android.hardware.lights.Light; -import android.hardware.lights.LightState; import android.hardware.lights.LightsManager; -import android.hardware.lights.LightsRequest; import android.os.Binder; import android.os.Build; import android.os.CombinedVibration; @@ -1499,77 +1496,7 @@ public final class InputManager { */ @NonNull public LightsManager getInputDeviceLightsManager(int deviceId) { - return new InputDeviceLightsManager(InputManager.this, deviceId); - } - - /** - * Gets a list of light objects associated with an input device. - * @return The list of lights, never null. - */ - @NonNull List getLights(int deviceId) { - try { - return mIm.getLights(deviceId); - } catch (RemoteException e) { - throw e.rethrowFromSystemServer(); - } - } - - /** - * Returns the state of an input device light. - * @return the light state - */ - @NonNull LightState getLightState(int deviceId, @NonNull Light light) { - try { - return mIm.getLightState(deviceId, light.getId()); - } catch (RemoteException e) { - throw e.rethrowFromSystemServer(); - } - } - - /** - * Request to modify the states of multiple lights. - * - * @param request the settings for lights that should change - */ - void requestLights(int deviceId, @NonNull LightsRequest request, IBinder token) { - try { - List lightIdList = request.getLights(); - int[] lightIds = new int[lightIdList.size()]; - for (int i = 0; i < lightIds.length; i++) { - lightIds[i] = lightIdList.get(i); - } - List lightStateList = request.getLightStates(); - mIm.setLightStates(deviceId, lightIds, - lightStateList.toArray(new LightState[0]), - token); - } catch (RemoteException e) { - throw e.rethrowFromSystemServer(); - } - } - - /** - * Open light session for input device manager - * - * @param token The token for the light session - */ - void openLightSession(int deviceId, String opPkg, @NonNull IBinder token) { - try { - mIm.openLightSession(deviceId, opPkg, token); - } catch (RemoteException e) { - throw e.rethrowFromSystemServer(); - } - } - - /** - * Close light session - * - */ - void closeLightSession(int deviceId, @NonNull IBinder token) { - try { - mIm.closeLightSession(deviceId, token); - } catch (RemoteException e) { - throw e.rethrowFromSystemServer(); - } + return new InputDeviceLightsManager(getContext(), deviceId); } /** diff --git a/core/java/android/hardware/input/InputManagerGlobal.java b/core/java/android/hardware/input/InputManagerGlobal.java index 524d8206bddf9..bc48e6a0c7e60 100644 --- a/core/java/android/hardware/input/InputManagerGlobal.java +++ b/core/java/android/hardware/input/InputManagerGlobal.java @@ -27,6 +27,9 @@ import android.hardware.input.InputManager.InputDeviceBatteryListener; import android.hardware.input.InputManager.InputDeviceListener; import android.hardware.input.InputManager.KeyboardBacklightListener; import android.hardware.input.InputManager.OnTabletModeChangedListener; +import android.hardware.lights.Light; +import android.hardware.lights.LightState; +import android.hardware.lights.LightsRequest; import android.os.Handler; import android.os.IBinder; import android.os.Looper; @@ -903,4 +906,74 @@ public final class InputManagerGlobal { throw ex.rethrowFromSystemServer(); } } + + /** + * Gets a list of light objects associated with an input device. + * @return The list of lights, never null. + */ + @NonNull List getLights(int deviceId) { + try { + return mIm.getLights(deviceId); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + /** + * Returns the state of an input device light. + * @return the light state + */ + @NonNull LightState getLightState(int deviceId, @NonNull Light light) { + try { + return mIm.getLightState(deviceId, light.getId()); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + /** + * Request to modify the states of multiple lights. + * + * @param request the settings for lights that should change + */ + void requestLights(int deviceId, @NonNull LightsRequest request, IBinder token) { + try { + List lightIdList = request.getLights(); + int[] lightIds = new int[lightIdList.size()]; + for (int i = 0; i < lightIds.length; i++) { + lightIds[i] = lightIdList.get(i); + } + List lightStateList = request.getLightStates(); + mIm.setLightStates(deviceId, lightIds, + lightStateList.toArray(new LightState[0]), + token); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + /** + * Open light session for input device manager + * + * @param token The token for the light session + */ + void openLightSession(int deviceId, String opPkg, @NonNull IBinder token) { + try { + mIm.openLightSession(deviceId, opPkg, token); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + /** + * Close light session + * + */ + void closeLightSession(int deviceId, @NonNull IBinder token) { + try { + mIm.closeLightSession(deviceId, token); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } }