summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2020-11-04 18:27:36 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-11-04 18:27:36 +0000
commita7b918c3f68832d681cff658eec6256989099326 (patch)
tree5ba5460d6eb2c4be2c25ccb659fe1cc9baedaff3 /core/java
parent0857a642a990caba755803f42b853a4bd45be33f (diff)
parent2c7804034b77fa91f9f740452d21a69031502263 (diff)
Merge "[CEC Configuration] Introduce 'int' type to the API"
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/hardware/hdmi/HdmiControlManager.java71
-rw-r--r--core/java/android/hardware/hdmi/HdmiControlServiceWrapper.java48
-rw-r--r--core/java/android/hardware/hdmi/IHdmiControlService.aidl9
3 files changed, 95 insertions, 33 deletions
diff --git a/core/java/android/hardware/hdmi/HdmiControlManager.java b/core/java/android/hardware/hdmi/HdmiControlManager.java
index 401bb9d32492..bf325609b1a6 100644
--- a/core/java/android/hardware/hdmi/HdmiControlManager.java
+++ b/core/java/android/hardware/hdmi/HdmiControlManager.java
@@ -42,9 +42,11 @@ import com.android.internal.util.ConcurrentUtils;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.Executor;
+import java.util.stream.Collectors;
/**
* The {@link HdmiControlManager} class is used to send HDMI control messages
@@ -325,17 +327,17 @@ public final class HdmiControlManager {
*
* @hide
*/
- public static final String HDMI_CEC_CONTROL_ENABLED = "1";
+ public static final int HDMI_CEC_CONTROL_ENABLED = 1;
/**
* HDMI CEC disabled.
*
* @hide
*/
- public static final String HDMI_CEC_CONTROL_DISABLED = "0";
+ public static final int HDMI_CEC_CONTROL_DISABLED = 0;
/**
* @hide
*/
- @StringDef({
+ @IntDef({
HDMI_CEC_CONTROL_ENABLED,
HDMI_CEC_CONTROL_DISABLED
})
@@ -401,17 +403,17 @@ public final class HdmiControlManager {
*
* @hide
*/
- public static final String SYSTEM_AUDIO_MODE_MUTING_ENABLED = "1";
+ public static final int SYSTEM_AUDIO_MODE_MUTING_ENABLED = 1;
/**
* System Audio Mode muting disabled.
*
* @hide
*/
- public static final String SYSTEM_AUDIO_MODE_MUTING_DISABLED = "0";
+ public static final int SYSTEM_AUDIO_MODE_MUTING_DISABLED = 0;
/**
* @hide
*/
- @StringDef({
+ @IntDef({
SYSTEM_AUDIO_MODE_MUTING_ENABLED,
SYSTEM_AUDIO_MODE_MUTING_DISABLED
})
@@ -1317,24 +1319,51 @@ public final class HdmiControlManager {
}
/**
- * Get a set of allowed values for a settings.
+ * Get a set of allowed values for a setting (string value-type).
+ *
+ * @param name name of the setting
+ * @return a set of allowed values for a settings. {@code null} on failure.
+ * @throws IllegalArgumentException when setting {@code name} does not exist.
+ * @throws IllegalArgumentException when setting {@code name} value type is invalid.
+ * @throws RuntimeException when the HdmiControlService is not available.
+ *
+ * @hide
+ */
+ @NonNull
+ @RequiresPermission(android.Manifest.permission.HDMI_CEC)
+ public List<String> getAllowedCecSettingStringValues(@NonNull @CecSettingName String name) {
+ if (mService == null) {
+ Log.e(TAG, "HdmiControlService is not available");
+ throw new RuntimeException("HdmiControlService is not available");
+ }
+ try {
+ return mService.getAllowedCecSettingStringValues(name);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+
+ /**
+ * Get a set of allowed values for a setting (int value-type).
*
* @param name name of the setting
* @return a set of allowed values for a settings. {@code null} on failure.
* @throws IllegalArgumentException when setting {@code name} does not exist.
+ * @throws IllegalArgumentException when setting {@code name} value type is invalid.
* @throws RuntimeException when the HdmiControlService is not available.
*
* @hide
*/
@NonNull
@RequiresPermission(android.Manifest.permission.HDMI_CEC)
- public List<String> getAllowedCecSettingValues(@NonNull @CecSettingName String name) {
+ public List<Integer> getAllowedCecSettingIntValues(@NonNull @CecSettingName String name) {
if (mService == null) {
Log.e(TAG, "HdmiControlService is not available");
throw new RuntimeException("HdmiControlService is not available");
}
try {
- return mService.getAllowedCecSettingValues(name);
+ int[] allowedValues = mService.getAllowedCecSettingIntValues(name);
+ return Arrays.stream(allowedValues).boxed().collect(Collectors.toList());
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
@@ -1350,13 +1379,13 @@ public final class HdmiControlManager {
* @hide
*/
@RequiresPermission(android.Manifest.permission.HDMI_CEC)
- public void setHdmiCecEnabled(@NonNull @HdmiCecControl String value) {
+ public void setHdmiCecEnabled(@NonNull @HdmiCecControl int value) {
if (mService == null) {
Log.e(TAG, "HdmiControlService is not available");
throw new RuntimeException("HdmiControlService is not available");
}
try {
- mService.setCecSettingValue(CEC_SETTING_NAME_HDMI_CEC_ENABLED, value);
+ mService.setCecSettingIntValue(CEC_SETTING_NAME_HDMI_CEC_ENABLED, value);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
@@ -1373,13 +1402,13 @@ public final class HdmiControlManager {
@NonNull
@HdmiCecControl
@RequiresPermission(android.Manifest.permission.HDMI_CEC)
- public String getHdmiCecEnabled() {
+ public int getHdmiCecEnabled() {
if (mService == null) {
Log.e(TAG, "HdmiControlService is not available");
throw new RuntimeException("HdmiControlService is not available");
}
try {
- return mService.getCecSettingValue(CEC_SETTING_NAME_HDMI_CEC_ENABLED);
+ return mService.getCecSettingIntValue(CEC_SETTING_NAME_HDMI_CEC_ENABLED);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
@@ -1401,7 +1430,7 @@ public final class HdmiControlManager {
throw new RuntimeException("HdmiControlService is not available");
}
try {
- mService.setCecSettingValue(CEC_SETTING_NAME_SEND_STANDBY_ON_SLEEP, value);
+ mService.setCecSettingStringValue(CEC_SETTING_NAME_SEND_STANDBY_ON_SLEEP, value);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
@@ -1424,7 +1453,7 @@ public final class HdmiControlManager {
throw new RuntimeException("HdmiControlService is not available");
}
try {
- return mService.getCecSettingValue(CEC_SETTING_NAME_SEND_STANDBY_ON_SLEEP);
+ return mService.getCecSettingStringValue(CEC_SETTING_NAME_SEND_STANDBY_ON_SLEEP);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
@@ -1447,7 +1476,7 @@ public final class HdmiControlManager {
throw new RuntimeException("HdmiControlService is not available");
}
try {
- mService.setCecSettingValue(
+ mService.setCecSettingStringValue(
CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST, value);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
@@ -1471,7 +1500,7 @@ public final class HdmiControlManager {
throw new RuntimeException("HdmiControlService is not available");
}
try {
- return mService.getCecSettingValue(
+ return mService.getCecSettingStringValue(
CEC_SETTING_NAME_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
@@ -1488,13 +1517,13 @@ public final class HdmiControlManager {
* @hide
*/
@RequiresPermission(android.Manifest.permission.HDMI_CEC)
- public void setSystemAudioModeMuting(@NonNull @SystemAudioModeMuting String value) {
+ public void setSystemAudioModeMuting(@NonNull @SystemAudioModeMuting int value) {
if (mService == null) {
Log.e(TAG, "HdmiControlService is not available");
throw new RuntimeException("HdmiControlService is not available");
}
try {
- mService.setCecSettingValue(CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING, value);
+ mService.setCecSettingIntValue(CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING, value);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
@@ -1511,13 +1540,13 @@ public final class HdmiControlManager {
@NonNull
@SystemAudioModeMuting
@RequiresPermission(android.Manifest.permission.HDMI_CEC)
- public String getSystemAudioModeMuting() {
+ public int getSystemAudioModeMuting() {
if (mService == null) {
Log.e(TAG, "HdmiControlService is not available");
throw new RuntimeException("HdmiControlService is not available");
}
try {
- return mService.getCecSettingValue(CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING);
+ return mService.getCecSettingIntValue(CEC_SETTING_NAME_SYSTEM_AUDIO_MODE_MUTING);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
diff --git a/core/java/android/hardware/hdmi/HdmiControlServiceWrapper.java b/core/java/android/hardware/hdmi/HdmiControlServiceWrapper.java
index 22d4640be493..fab56b8cea49 100644
--- a/core/java/android/hardware/hdmi/HdmiControlServiceWrapper.java
+++ b/core/java/android/hardware/hdmi/HdmiControlServiceWrapper.java
@@ -301,18 +301,33 @@ public final class HdmiControlServiceWrapper {
}
@Override
- public List<String> getAllowedCecSettingValues(String name) {
- return HdmiControlServiceWrapper.this.getAllowedCecSettingValues(name);
+ public List<String> getAllowedCecSettingStringValues(String name) {
+ return HdmiControlServiceWrapper.this.getAllowedCecSettingStringValues(name);
}
@Override
- public String getCecSettingValue(String name) {
- return HdmiControlServiceWrapper.this.getCecSettingValue(name);
+ public int[] getAllowedCecSettingIntValues(String name) {
+ return HdmiControlServiceWrapper.this.getAllowedCecSettingIntValues(name);
}
@Override
- public void setCecSettingValue(String name, String value) {
- HdmiControlServiceWrapper.this.setCecSettingValue(name, value);
+ public String getCecSettingStringValue(String name) {
+ return HdmiControlServiceWrapper.this.getCecSettingStringValue(name);
+ }
+
+ @Override
+ public void setCecSettingStringValue(String name, String value) {
+ HdmiControlServiceWrapper.this.setCecSettingStringValue(name, value);
+ }
+
+ @Override
+ public int getCecSettingIntValue(String name) {
+ return HdmiControlServiceWrapper.this.getCecSettingIntValue(name);
+ }
+
+ @Override
+ public void setCecSettingIntValue(String name, int value) {
+ HdmiControlServiceWrapper.this.setCecSettingIntValue(name, value);
}
};
@@ -494,15 +509,30 @@ public final class HdmiControlServiceWrapper {
}
/** @hide */
- public List<String> getAllowedCecSettingValues(String name) {
+ public List<String> getAllowedCecSettingStringValues(String name) {
return new ArrayList<>();
}
/** @hide */
- public String getCecSettingValue(String name) {
+ public int[] getAllowedCecSettingIntValues(String name) {
+ return new int[0];
+ }
+
+ /** @hide */
+ public String getCecSettingStringValue(String name) {
return "";
}
/** @hide */
- public void setCecSettingValue(String name, String value) {}
+ public void setCecSettingStringValue(String name, String value) {
+ }
+
+ /** @hide */
+ public int getCecSettingIntValue(String name) {
+ return 0;
+ }
+
+ /** @hide */
+ public void setCecSettingIntValue(String name, int value) {
+ }
}
diff --git a/core/java/android/hardware/hdmi/IHdmiControlService.aidl b/core/java/android/hardware/hdmi/IHdmiControlService.aidl
index 6df164bb71dc..af9d3accd00e 100644
--- a/core/java/android/hardware/hdmi/IHdmiControlService.aidl
+++ b/core/java/android/hardware/hdmi/IHdmiControlService.aidl
@@ -88,7 +88,10 @@ interface IHdmiControlService {
void reportAudioStatus(int deviceType, int volume, int maxVolume, boolean isMute);
void setSystemAudioModeOnForAudioOnlySource();
List<String> getUserCecSettings();
- List<String> getAllowedCecSettingValues(String name);
- String getCecSettingValue(String name);
- void setCecSettingValue(String name, String value);
+ List<String> getAllowedCecSettingStringValues(String name);
+ int[] getAllowedCecSettingIntValues(String name);
+ String getCecSettingStringValue(String name);
+ void setCecSettingStringValue(String name, String value);
+ int getCecSettingIntValue(String name);
+ void setCecSettingIntValue(String name, int value);
}