From e51b6e1cfff43c07236dd30531cf547d4ca60950 Mon Sep 17 00:00:00 2001 From: Robin Lee Date: Tue, 10 Mar 2020 07:50:24 +0100 Subject: [PATCH] Rename LightsManager.setLights to requestLights Per API feedback on clarifying that while we strive our best to provide excellent service to our customers, we cannot fulfil all of their orders at once. Fix: 150332011 Change-Id: Iac156ea5cb312cce16fbaf10fc1f8bcd6743d377 --- api/system-current.txt | 2 +- api/test-current.txt | 2 +- core/java/android/hardware/lights/Light.java | 27 ++++++++++++++----- .../hardware/lights/LightsManager.java | 2 +- .../hardware/lights/LightsRequest.java | 2 +- .../server/lights/LightsServiceTest.java | 27 +++++++++++-------- 6 files changed, 41 insertions(+), 21 deletions(-) diff --git a/api/system-current.txt b/api/system-current.txt index bab5823f0b2be..4acc497833da7 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -2938,7 +2938,7 @@ package android.hardware.lights { 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 setLights(@NonNull android.hardware.lights.LightsRequest); + method @RequiresPermission(android.Manifest.permission.CONTROL_DEVICE_LIGHTS) public void requestLights(@NonNull android.hardware.lights.LightsRequest); } public final class LightsRequest { diff --git a/api/test-current.txt b/api/test-current.txt index 9d284b59cdb36..6599ca8fe179a 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -1278,7 +1278,7 @@ package android.hardware.lights { 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 setLights(@NonNull android.hardware.lights.LightsRequest); + method @RequiresPermission(android.Manifest.permission.CONTROL_DEVICE_LIGHTS) public void requestLights(@NonNull android.hardware.lights.LightsRequest); } public final class LightsRequest { diff --git a/core/java/android/hardware/lights/Light.java b/core/java/android/hardware/lights/Light.java index c5cb8037d4db9..e90b57cdc7b47 100644 --- a/core/java/android/hardware/lights/Light.java +++ b/core/java/android/hardware/lights/Light.java @@ -37,7 +37,8 @@ public final class Light implements Parcelable { /** * Creates a new light with the given data. * - * @hide */ + * @hide + */ public Light(int id, int ordinal, int type) { mId = id; mOrdinal = ordinal; @@ -76,8 +77,24 @@ public final class Light implements Parcelable { } }; + @Override + public boolean equals(Object obj) { + if (obj instanceof Light) { + Light light = (Light) obj; + return mId == light.mId && mOrdinal == light.mOrdinal && mType == light.mType; + } + return false; + } + + @Override + public int hashCode() { + return mId; + } + /** * Returns the id of the light. + * + *

This is an opaque value used as a unique identifier for the light. */ public int getId() { return mId; @@ -86,11 +103,9 @@ public final class Light implements Parcelable { /** * Returns the ordinal of the light. * - *

This represents the physical order of the lights on the device. The exact values are - * device-dependent, but for example, if there are lights in a row, sorting the Light objects - * by ordinal should match the order in which they appear on the device. If the device has - * 4 lights, the ordinals could be [1, 2, 3, 4] or [0, 10, 20, 30] or any other values that - * have the same sort order. + *

This is a sort key that represents the physical order of lights on the device with the + * same type. In the case of multiple lights arranged in a line, for example, the ordinals + * could be [1, 2, 3, 4], or [0, 10, 20, 30], or any other values that have the same sort order. */ public int getOrdinal() { return mOrdinal; diff --git a/core/java/android/hardware/lights/LightsManager.java b/core/java/android/hardware/lights/LightsManager.java index 1bc051b977a89..8cd231224472a 100644 --- a/core/java/android/hardware/lights/LightsManager.java +++ b/core/java/android/hardware/lights/LightsManager.java @@ -161,7 +161,7 @@ public final class LightsManager { * @param request the settings for lights that should change */ @RequiresPermission(Manifest.permission.CONTROL_DEVICE_LIGHTS) - public void setLights(@NonNull LightsRequest request) { + public void requestLights(@NonNull LightsRequest request) { Preconditions.checkNotNull(request); if (!mClosed) { try { diff --git a/core/java/android/hardware/lights/LightsRequest.java b/core/java/android/hardware/lights/LightsRequest.java index a36da4c7d85dd..5c4fc6707e966 100644 --- a/core/java/android/hardware/lights/LightsRequest.java +++ b/core/java/android/hardware/lights/LightsRequest.java @@ -86,7 +86,7 @@ public final class LightsRequest { * Create a LightsRequest object used to override lights on the device. * *

The generated {@link LightsRequest} should be used in - * {@link LightsManager.Session#setLights(LightsLightsRequest). + * {@link LightsManager.Session#requestLights(LightsLightsRequest). */ public @NonNull LightsRequest build() { return new LightsRequest(mChanges); diff --git a/services/tests/servicestests/src/com/android/server/lights/LightsServiceTest.java b/services/tests/servicestests/src/com/android/server/lights/LightsServiceTest.java index b0def605db790..ccbaee41af7ce 100644 --- a/services/tests/servicestests/src/com/android/server/lights/LightsServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/lights/LightsServiceTest.java @@ -18,6 +18,11 @@ package com.android.server.lights; import static android.hardware.lights.LightsRequest.Builder; +import static android.graphics.Color.BLACK; +import static android.graphics.Color.BLUE; +import static android.graphics.Color.GREEN; +import static android.graphics.Color.WHITE; + import static com.google.common.truth.Truth.assertThat; import android.content.Context; @@ -92,7 +97,7 @@ public class LightsServiceTest { // When the session requests to turn 3/4 lights on: LightsManager.LightsSession session = manager.openSession(); - session.setLights(new Builder() + session.requestLights(new Builder() .setLight(manager.getLights().get(0), new LightState(0xf1)) .setLight(manager.getLights().get(1), new LightState(0xf2)) .setLight(manager.getLights().get(2), new LightState(0xf3)) @@ -114,18 +119,18 @@ public class LightsServiceTest { Light micLight = manager.getLights().get(0); // The light should begin by being off. - assertThat(manager.getLightState(micLight).getColor()).isEqualTo(0x00000000); + assertThat(manager.getLightState(micLight).getColor()).isEqualTo(BLACK); // When a session commits changes: LightsManager.LightsSession session = manager.openSession(); - session.setLights(new Builder().setLight(micLight, new LightState(0xff00ff00)).build()); + session.requestLights(new Builder().setLight(micLight, new LightState(GREEN)).build()); // Then the light should turn on. - assertThat(manager.getLightState(micLight).getColor()).isEqualTo(0xff00ff00); + assertThat(manager.getLightState(micLight).getColor()).isEqualTo(GREEN); // When the session goes away: session.close(); // Then the light should turn off. - assertThat(manager.getLightState(micLight).getColor()).isEqualTo(0x00000000); + assertThat(manager.getLightState(micLight).getColor()).isEqualTo(BLACK); } @Test @@ -138,15 +143,15 @@ public class LightsServiceTest { LightsManager.LightsSession session2 = manager.openSession(); // When session1 and session2 both request the same light: - session1.setLights(new Builder().setLight(micLight, new LightState(0xff0000ff)).build()); - session2.setLights(new Builder().setLight(micLight, new LightState(0xffffffff)).build()); + session1.requestLights(new Builder().setLight(micLight, new LightState(BLUE)).build()); + session2.requestLights(new Builder().setLight(micLight, new LightState(WHITE)).build()); // Then session1 should win because it was created first. - assertThat(manager.getLightState(micLight).getColor()).isEqualTo(0xff0000ff); + assertThat(manager.getLightState(micLight).getColor()).isEqualTo(BLUE); // When session1 goes away: session1.close(); // Then session2 should have its request go into effect. - assertThat(manager.getLightState(micLight).getColor()).isEqualTo(0xffffffff); + assertThat(manager.getLightState(micLight).getColor()).isEqualTo(WHITE); // When session2 goes away: session2.close(); @@ -162,10 +167,10 @@ public class LightsServiceTest { // When the session turns a light on: LightsManager.LightsSession session = manager.openSession(); - session.setLights(new Builder().setLight(micLight, new LightState(0xffffffff)).build()); + session.requestLights(new Builder().setLight(micLight, new LightState(WHITE)).build()); // And then the session clears it again: - session.setLights(new Builder().clearLight(micLight).build()); + session.requestLights(new Builder().clearLight(micLight).build()); // Then the light should turn back off. assertThat(manager.getLightState(micLight).getColor()).isEqualTo(0);