diff options
| author | 2018-07-13 13:54:52 -0700 | |
|---|---|---|
| committer | 2018-07-20 18:24:49 -0700 | |
| commit | e30f993a808e11fa84891c7a18a97e8cc7ad289c (patch) | |
| tree | 8033eaf5aced0d5518edeb535abc05512b691516 | |
| parent | 4c436c0f4d6bdea6f4d285b627a4f5618eaffab3 (diff) | |
Add handleActiveSource() to update atom local active source.
Test: atest com.android.server.hdmi
Change-Id: Ic33a144e4b9c5055a76626b59c2d5293c7b82958
| -rw-r--r-- | services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java | 12 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java | 12 |
2 files changed, 24 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java index ae43ddff1d6b..71ee746761ae 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java @@ -102,6 +102,18 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDevice { } } + @ServiceThreadOnly + protected boolean handleActiveSource(HdmiCecMessage message) { + assertRunOnServiceThread(); + int logicalAddress = message.getSource(); + int physicalAddress = HdmiUtils.twoBytesToInt(message.getParams()); + ActiveSource activeSource = ActiveSource.of(logicalAddress, physicalAddress); + if (!mActiveSource.equals(activeSource)) { + setActiveSource(activeSource); + } + return true; + } + @Override @ServiceThreadOnly protected int getPreferredAddress() { 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 b392935cc9b5..232fb8c192c3 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java @@ -30,6 +30,7 @@ import android.os.Looper; import android.os.test.TestLooper; import android.support.test.filters.SmallTest; +import com.android.server.hdmi.HdmiCecLocalDevice.ActiveSource; import java.util.ArrayList; import org.junit.Before; import org.junit.Test; @@ -296,4 +297,15 @@ public class HdmiCecLocalDeviceAudioSystemTest { assertThat(mHdmiCecLocalDeviceAudioSystem .getActions(SystemAudioInitiationActionFromAvr.class)).isNotEmpty(); } + + @Test + public void handleActiveSource_updateActiveSource() { + HdmiCecMessage message = HdmiCecMessageBuilder + .buildActiveSource(ADDR_TV, 0x0000); + ActiveSource expectedActiveSource = new ActiveSource(ADDR_TV, 0x0000); + + assertTrue(mHdmiCecLocalDeviceAudioSystem.handleActiveSource(message)); + mTestLooper.dispatchAll(); + assertTrue(mHdmiCecLocalDeviceAudioSystem.getActiveSource().equals(expectedActiveSource)); + } } |