Loading services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java +0 −19 Original line number Diff line number Diff line Loading @@ -128,25 +128,6 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource { String.valueOf(addr)); } @ServiceThreadOnly void queryDisplayStatus(IHdmiControlCallback callback) { assertRunOnServiceThread(); List<DevicePowerStatusAction> actions = getActions(DevicePowerStatusAction.class); if (!actions.isEmpty()) { Slog.i(TAG, "queryDisplayStatus already in progress"); actions.get(0).addCallback(callback); return; } DevicePowerStatusAction action = DevicePowerStatusAction.create(this, Constants.ADDR_TV, callback); if (action == null) { Slog.w(TAG, "Cannot initiate queryDisplayStatus"); invokeCallback(callback, HdmiControlManager.RESULT_EXCEPTION); return; } addAndStartAction(action); } @Override @ServiceThreadOnly void onHotplug(int portId, boolean connected) { Loading services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceSource.java +19 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,25 @@ abstract class HdmiCecLocalDeviceSource extends HdmiCecLocalDevice { super(service, deviceType); } @ServiceThreadOnly void queryDisplayStatus(IHdmiControlCallback callback) { assertRunOnServiceThread(); List<DevicePowerStatusAction> actions = getActions(DevicePowerStatusAction.class); if (!actions.isEmpty()) { Slog.i(TAG, "queryDisplayStatus already in progress"); actions.get(0).addCallback(callback); return; } DevicePowerStatusAction action = DevicePowerStatusAction.create(this, Constants.ADDR_TV, callback); if (action == null) { Slog.w(TAG, "Cannot initiate queryDisplayStatus"); invokeCallback(callback, HdmiControlManager.RESULT_EXCEPTION); return; } addAndStartAction(action); } @Override @ServiceThreadOnly void onHotplug(int portId, boolean connected) { Loading services/core/java/com/android/server/hdmi/HdmiControlService.java +6 −2 Original line number Diff line number Diff line Loading @@ -2400,9 +2400,13 @@ public class HdmiControlService extends SystemService { return; } HdmiCecLocalDevicePlayback source = playback(); HdmiCecLocalDeviceSource source = playback(); if (source == null) { source = audioSystem(); } if (source == null) { Slog.w(TAG, "Local playback device not available"); Slog.w(TAG, "Local source device not available"); invokeCallback(callback, HdmiControlManager.RESULT_SOURCE_NOT_AVAILABLE); return; } Loading services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -1249,6 +1249,20 @@ public class HdmiCecLocalDevicePlaybackTest { externalDevice.getPhysicalAddress()); } @Test public void queryDisplayStatus() { mHdmiControlService.queryDisplayStatus(new IHdmiControlCallback.Stub() { @Override public void onComplete(int result) { } }); mTestLooper.dispatchAll(); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( mPlaybackLogicalAddress, Constants.ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); } @Test public void toggleAndFollowTvPower_ToTv_TvStatusOn() { mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( Loading Loading
services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java +0 −19 Original line number Diff line number Diff line Loading @@ -128,25 +128,6 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource { String.valueOf(addr)); } @ServiceThreadOnly void queryDisplayStatus(IHdmiControlCallback callback) { assertRunOnServiceThread(); List<DevicePowerStatusAction> actions = getActions(DevicePowerStatusAction.class); if (!actions.isEmpty()) { Slog.i(TAG, "queryDisplayStatus already in progress"); actions.get(0).addCallback(callback); return; } DevicePowerStatusAction action = DevicePowerStatusAction.create(this, Constants.ADDR_TV, callback); if (action == null) { Slog.w(TAG, "Cannot initiate queryDisplayStatus"); invokeCallback(callback, HdmiControlManager.RESULT_EXCEPTION); return; } addAndStartAction(action); } @Override @ServiceThreadOnly void onHotplug(int portId, boolean connected) { Loading
services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceSource.java +19 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,25 @@ abstract class HdmiCecLocalDeviceSource extends HdmiCecLocalDevice { super(service, deviceType); } @ServiceThreadOnly void queryDisplayStatus(IHdmiControlCallback callback) { assertRunOnServiceThread(); List<DevicePowerStatusAction> actions = getActions(DevicePowerStatusAction.class); if (!actions.isEmpty()) { Slog.i(TAG, "queryDisplayStatus already in progress"); actions.get(0).addCallback(callback); return; } DevicePowerStatusAction action = DevicePowerStatusAction.create(this, Constants.ADDR_TV, callback); if (action == null) { Slog.w(TAG, "Cannot initiate queryDisplayStatus"); invokeCallback(callback, HdmiControlManager.RESULT_EXCEPTION); return; } addAndStartAction(action); } @Override @ServiceThreadOnly void onHotplug(int portId, boolean connected) { Loading
services/core/java/com/android/server/hdmi/HdmiControlService.java +6 −2 Original line number Diff line number Diff line Loading @@ -2400,9 +2400,13 @@ public class HdmiControlService extends SystemService { return; } HdmiCecLocalDevicePlayback source = playback(); HdmiCecLocalDeviceSource source = playback(); if (source == null) { source = audioSystem(); } if (source == null) { Slog.w(TAG, "Local playback device not available"); Slog.w(TAG, "Local source device not available"); invokeCallback(callback, HdmiControlManager.RESULT_SOURCE_NOT_AVAILABLE); return; } Loading
services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -1249,6 +1249,20 @@ public class HdmiCecLocalDevicePlaybackTest { externalDevice.getPhysicalAddress()); } @Test public void queryDisplayStatus() { mHdmiControlService.queryDisplayStatus(new IHdmiControlCallback.Stub() { @Override public void onComplete(int result) { } }); mTestLooper.dispatchAll(); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( mPlaybackLogicalAddress, Constants.ADDR_TV); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); } @Test public void toggleAndFollowTvPower_ToTv_TvStatusOn() { mHdmiCecLocalDevicePlayback.mService.getHdmiCecConfig().setStringValue( Loading