From 3a4edc745dad2698bc53bb04826db9b36884d0d5 Mon Sep 17 00:00:00 2001 From: Chris Ye Date: Mon, 26 Apr 2021 23:04:33 -0700 Subject: [PATCH] Add test coverage for android.hardware.lights.LightsRequest and hide android.hardware.lights.LightsManager.LightsSession constructor. Add core CTS test coverage for android.hardware.lights.LightsRequest API getLights() and getLightStates(). Hide android.hardware.lights.LightsManager.LightsSession constructor. Bug: 183239763 Bug: 183239666 Test: atest FrameworksCoreTests:InputDeviceLightsManagerTest Change-Id: I41e0272e64a55b631eda387af0645af077d025be --- core/api/current.txt | 1 - .../hardware/lights/LightsManager.java | 6 +++++ .../input/InputDeviceLightsManagerTest.java | 22 +++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/core/api/current.txt b/core/api/current.txt index b223bc6a4bcad..de1647b5c76aa 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -18992,7 +18992,6 @@ package android.hardware.lights { } 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); } diff --git a/core/java/android/hardware/lights/LightsManager.java b/core/java/android/hardware/lights/LightsManager.java index cbcef8604a9c1..2d9bc0eb14ab8 100644 --- a/core/java/android/hardware/lights/LightsManager.java +++ b/core/java/android/hardware/lights/LightsManager.java @@ -112,6 +112,12 @@ public abstract class LightsManager { public abstract static class LightsSession implements AutoCloseable { private final IBinder mToken = new Binder(); + /** + * @hide to prevent subclassing from outside of the framework + */ + public LightsSession() { + } + /** * Sends a request to modify the states of multiple lights. * diff --git a/core/tests/coretests/src/android/hardware/input/InputDeviceLightsManagerTest.java b/core/tests/coretests/src/android/hardware/input/InputDeviceLightsManagerTest.java index 412b36713fa27..8b39beb8cf54c 100644 --- a/core/tests/coretests/src/android/hardware/input/InputDeviceLightsManagerTest.java +++ b/core/tests/coretests/src/android/hardware/input/InputDeviceLightsManagerTest.java @@ -33,6 +33,7 @@ import static org.mockito.Mockito.when; import android.hardware.lights.Light; import android.hardware.lights.LightState; import android.hardware.lights.LightsManager; +import android.hardware.lights.LightsRequest; import android.os.IBinder; import android.platform.test.annotations.Presubmit; import android.util.ArrayMap; @@ -224,4 +225,25 @@ public class InputDeviceLightsManagerTest { session.close(); verify(mIInputManagerMock).closeLightSession(eq(DEVICE_ID), eq(token)); } + + @Test + public void testLightsRequest() throws Exception { + Light light = new Light(1 /* id */, 0 /* ordinal */, Light.LIGHT_TYPE_INPUT_PLAYER_ID); + LightState state = new LightState(0xf1); + LightsRequest request = new Builder().addLight(light, state).build(); + + // Covers the LightsRequest.getLights + assertThat(request.getLights().size()).isEqualTo(1); + assertThat(request.getLights().get(0)).isEqualTo(1); + + // Covers the LightsRequest.getLightStates + assertThat(request.getLightStates().size()).isEqualTo(1); + assertThat(request.getLightStates().get(0)).isEqualTo(state); + + // Covers the LightsRequest.getLightsAndStates + assertThat(request.getLightsAndStates().size()).isEqualTo(1); + assertThat(request.getLightsAndStates().containsKey(1)).isTrue(); + assertThat(request.getLightsAndStates().get(1)).isEqualTo(state); + } + }