Merge "Add handleActiveSource() to update atom local active source."

This commit is contained in:
Shubang Lu
2018-07-24 00:05:58 +00:00
committed by Android (Google) Code Review
2 changed files with 24 additions and 0 deletions

View File

@@ -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() {

View File

@@ -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));
}
}