summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java5
-rw-r--r--services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java19
-rw-r--r--services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java16
3 files changed, 38 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java
index dde873b5ef97..e5a08d3e79aa 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java
@@ -70,6 +70,9 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource {
private static final String TAG = "HdmiCecLocalDeviceAudioSystem";
+ private static final boolean WAKE_ON_HOTPLUG =
+ SystemProperties.getBoolean(Constants.PROPERTY_WAKE_ON_HOTPLUG, false);
+
// Whether the System Audio Control feature is enabled or not. True by default.
@GuardedBy("mLock")
private boolean mSystemAudioControlFeatureEnabled;
@@ -318,7 +321,7 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource {
@ServiceThreadOnly
void onHotplug(int portId, boolean connected) {
assertRunOnServiceThread();
- if (connected) {
+ if (WAKE_ON_HOTPLUG && connected) {
mService.wakeUp();
}
if (mService.getPortInfo(portId).getType() == HdmiPortInfo.PORT_OUTPUT) {
diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java
index 50ed975263e0..0551f2ec1968 100644
--- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java
+++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java
@@ -76,6 +76,7 @@ public class HdmiCecLocalDeviceAudioSystemTest {
private boolean mMutingEnabled;
private boolean mArcSupport;
private HdmiPortInfo[] mHdmiPortInfo;
+ private boolean mWokenUp;
@Before
public void setUp() {
@@ -138,7 +139,9 @@ public class HdmiCecLocalDeviceAudioSystemTest {
}
@Override
- void wakeUp() {}
+ void wakeUp() {
+ mWokenUp = true;
+ }
@Override
void invokeDeviceEventListeners(HdmiDeviceInfo device, int status) {
@@ -698,4 +701,18 @@ public class HdmiCecLocalDeviceAudioSystemTest {
.getCecDeviceInfo(differentDevice.getLogicalAddress())).isEqualTo(differentDevice);
assertThat(mInvokeDeviceEventState).isEqualTo(DEVICE_EVENT_ADD_DEVICE);
}
+
+ @Test
+ public void doNotWakeUpOnHotPlug_PlugIn() {
+ mWokenUp = false;
+ mHdmiCecLocalDeviceAudioSystem.onHotplug(0, true);
+ assertThat(mWokenUp).isFalse();
+ }
+
+ @Test
+ public void doNotWakeUpOnHotPlug_PlugOut() {
+ mWokenUp = false;
+ mHdmiCecLocalDeviceAudioSystem.onHotplug(0, false);
+ assertThat(mWokenUp).isFalse();
+ }
}
diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java
index 0062a1751802..4a1af51deab6 100644
--- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java
+++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java
@@ -47,6 +47,7 @@ public class HdmiCecLocalDevicePlaybackTest {
private TestLooper mTestLooper = new TestLooper();
private ArrayList<HdmiCecLocalDevice> mLocalDevices = new ArrayList<>();
private int mPlaybackPhysicalAddress;
+ private boolean mWokenUp;
@Before
public void setUp() {
@@ -54,6 +55,7 @@ public class HdmiCecLocalDevicePlaybackTest {
new HdmiControlService(InstrumentationRegistry.getTargetContext()) {
@Override
void wakeUp() {
+ mWokenUp = true;
}
@Override
@@ -135,4 +137,18 @@ public class HdmiCecLocalDevicePlaybackTest {
assertThat(mHdmiCecLocalDevicePlayback.handleSystemAudioModeStatus(message)).isTrue();
assertThat(mHdmiCecLocalDevicePlayback.mService.isSystemAudioActivated()).isTrue();
}
+
+ @Test
+ public void doNotWakeUpOnHotPlug_PlugIn() {
+ mWokenUp = false;
+ mHdmiCecLocalDevicePlayback.onHotplug(0, true);
+ assertThat(mWokenUp).isFalse();
+ }
+
+ @Test
+ public void doNotWakeUpOnHotPlug_PlugOut() {
+ mWokenUp = false;
+ mHdmiCecLocalDevicePlayback.onHotplug(0, false);
+ assertThat(mWokenUp).isFalse();
+ }
}