Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cbb480c2 authored by Chris Ye's avatar Chris Ye
Browse files

Support input device lights manager feature in frameworks.

Add lights manager support to input frameworks.

Bug: 161633625
Test: atest LightsManagerTest, atest InputDeviceLightsManagerTest
Change-Id: Ic6c701cad84f277325583c77195592d96d9296b8
parent 4dd2f7f8
Loading
Loading
Loading
Loading
+53 −0
Original line number Diff line number Diff line
@@ -18575,6 +18575,58 @@ package android.hardware.input {
}
package android.hardware.lights {
  public final class Light implements android.os.Parcelable {
    method public int describeContents();
    method public int getId();
    method @NonNull public String getName();
    method public int getOrdinal();
    method public int getType();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.hardware.lights.Light> CREATOR;
    field public static final int LIGHT_TYPE_INPUT_PLAYER_ID = 10; // 0xa
    field public static final int LIGHT_TYPE_INPUT_RGB = 11; // 0xb
    field public static final int LIGHT_TYPE_INPUT_SINGLE = 9; // 0x9
    field public static final int LIGHT_TYPE_MICROPHONE = 8; // 0x8
  }
  public final class LightState implements android.os.Parcelable {
    method public int describeContents();
    method @NonNull public static android.hardware.lights.LightState forColor(@ColorInt int);
    method @NonNull public static android.hardware.lights.LightState forPlayerId(int);
    method @ColorInt public int getColor();
    method public int getPlayerId();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.hardware.lights.LightState> CREATOR;
  }
  public abstract class LightsManager {
    method @NonNull public abstract android.hardware.lights.LightState getLightState(@NonNull android.hardware.lights.Light);
    method @NonNull public abstract java.util.List<android.hardware.lights.Light> getLights();
    method @NonNull public abstract android.hardware.lights.LightsManager.LightsSession openSession();
  }
  public abstract static class LightsManager.LightsSession implements java.lang.AutoCloseable {
    ctor public LightsManager.LightsSession();
    method public abstract void close();
    method public abstract void requestLights(@NonNull android.hardware.lights.LightsRequest);
  }
  public final class LightsRequest {
    method @NonNull public java.util.List<android.hardware.lights.LightState> getLightStates();
    method @NonNull public java.util.List<java.lang.Integer> getLights();
  }
  public static final class LightsRequest.Builder {
    ctor public LightsRequest.Builder();
    method @NonNull public android.hardware.lights.LightsRequest.Builder addLight(@NonNull android.hardware.lights.Light, @NonNull android.hardware.lights.LightState);
    method @NonNull public android.hardware.lights.LightsRequest build();
    method @NonNull public android.hardware.lights.LightsRequest.Builder clearLight(@NonNull android.hardware.lights.Light);
  }
}
package android.hardware.usb {
  public class UsbAccessory implements android.os.Parcelable {
@@ -46508,6 +46560,7 @@ package android.view {
    method public int getId();
    method public android.view.KeyCharacterMap getKeyCharacterMap();
    method public int getKeyboardType();
    method @NonNull public android.hardware.lights.LightsManager getLightsManager();
    method public android.view.InputDevice.MotionRange getMotionRange(int);
    method public android.view.InputDevice.MotionRange getMotionRange(int, int);
    method public java.util.List<android.view.InputDevice.MotionRange> getMotionRanges();
+3 −33
Original line number Diff line number Diff line
@@ -3341,42 +3341,12 @@ package android.hardware.hdmi {
package android.hardware.lights {
  public final class Light implements android.os.Parcelable {
    method public int describeContents();
    method public int getId();
    method public int getOrdinal();
    method public int getType();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.hardware.lights.Light> CREATOR;
  }
  public final class LightState implements android.os.Parcelable {
    ctor public LightState(@ColorInt int);
    method public int describeContents();
    method @ColorInt public int getColor();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.hardware.lights.LightState> CREATOR;
  }
  public final class LightsManager {
    method @NonNull @RequiresPermission(android.Manifest.permission.CONTROL_DEVICE_LIGHTS) public java.util.List<android.hardware.lights.Light> getLights();
    method @NonNull @RequiresPermission(android.Manifest.permission.CONTROL_DEVICE_LIGHTS) public android.hardware.lights.LightsManager.LightsSession openSession();
    field public static final int LIGHT_TYPE_MICROPHONE = 8; // 0x8
  }
  public final class LightsManager.LightsSession implements java.lang.AutoCloseable {
    method @RequiresPermission(android.Manifest.permission.CONTROL_DEVICE_LIGHTS) public void close();
    method @RequiresPermission(android.Manifest.permission.CONTROL_DEVICE_LIGHTS) public void requestLights(@NonNull android.hardware.lights.LightsRequest);
  }
  public final class LightsRequest {
    ctor @Deprecated public LightState(@ColorInt int);
  }
  public static final class LightsRequest.Builder {
    ctor public LightsRequest.Builder();
    method @NonNull public android.hardware.lights.LightsRequest build();
    method @NonNull public android.hardware.lights.LightsRequest.Builder clearLight(@NonNull android.hardware.lights.Light);
    method @NonNull public android.hardware.lights.LightsRequest.Builder setLight(@NonNull android.hardware.lights.Light, @NonNull android.hardware.lights.LightState);
  public abstract class LightsManager {
    field @Deprecated public static final int LIGHT_TYPE_MICROPHONE = 8; // 0x8
  }
}
+0 −8
Original line number Diff line number Diff line
@@ -998,14 +998,6 @@ package android.hardware.input {

}

package android.hardware.lights {

  public final class LightsManager {
    method @NonNull @RequiresPermission(android.Manifest.permission.CONTROL_DEVICE_LIGHTS) public android.hardware.lights.LightState getLightState(@NonNull android.hardware.lights.Light);
  }

}

package android.hardware.soundtrigger {

  public class KeyphraseEnrollmentInfo {
+2 −1
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@ import android.hardware.input.InputManager;
import android.hardware.iris.IIrisService;
import android.hardware.iris.IrisManager;
import android.hardware.lights.LightsManager;
import android.hardware.lights.SystemLightsManager;
import android.hardware.location.ContextHubManager;
import android.hardware.radio.RadioManager;
import android.hardware.usb.IUsbManager;
@@ -1331,7 +1332,7 @@ public final class SystemServiceRegistry {
                @Override
                public LightsManager createService(ContextImpl ctx)
                    throws ServiceNotFoundException {
                    return new LightsManager(ctx);
                    return new SystemLightsManager(ctx);
                }});
        registerService(Context.INCREMENTAL_SERVICE, IncrementalManager.class,
                new CachedServiceFetcher<IncrementalManager>() {
+12 −0
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@ import android.hardware.input.TouchCalibration;
import android.os.CombinedVibrationEffect;
import android.hardware.input.IInputSensorEventListener;
import android.hardware.input.InputSensorInfo;
import android.hardware.lights.Light;
import android.hardware.lights.LightState;
import android.os.IBinder;
import android.os.IVibratorStateListener;
import android.os.VibrationEffect;
@@ -127,4 +129,14 @@ interface IInputManager {
    void disableSensor(int deviceId, int sensorType);

    boolean flushSensor(int deviceId, int sensorType);

    List<Light> getLights(int deviceId);

    LightState getLightState(int deviceId, int lightId);

    void setLightStates(int deviceId, in int[] lightIds, in LightState[] states, in IBinder token);

    void openLightSession(int deviceId, String opPkg, in IBinder token);

    void closeLightSession(int deviceId, in IBinder token);
}
Loading