diff options
| author | TreeHugger Robot <treehugger-gerrit@google.com> | 2020-11-04 18:27:36 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-11-04 18:27:36 +0000 |
| commit | a7b918c3f68832d681cff658eec6256989099326 (patch) | |
| tree | 5ba5460d6eb2c4be2c25ccb659fe1cc9baedaff3 /core/java | |
| parent | 0857a642a990caba755803f42b853a4bd45be33f (diff) | |
| parent | 2c7804034b77fa91f9f740452d21a69031502263 (diff) | |
Merge "[CEC Configuration] Introduce 'int' type to the API"
Diffstat (limited to 'core/java')
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); } |
