Merge "Fix stuck HDMI-CEC actions after boot" into stage-aosp-master am: 5d7bfac82a

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15930804

Change-Id: Ie0ac6b3d5117466cec6a4cd3263658d8541a47a4
This commit is contained in:
TreeHugger Robot
2021-09-28 14:10:21 +00:00
committed by Automerger Merge Worker
2 changed files with 21 additions and 0 deletions

View File

@@ -634,6 +634,12 @@ public class HdmiControlService extends SystemService {
// on boot, if device is interactive, set HDMI CEC state as powered on as well
if (mPowerManager.isInteractive() && isPowerStandbyOrTransient()) {
mPowerStatusController.setPowerStatus(HdmiControlManager.POWER_STATUS_ON);
// Start all actions that were queued because the device was in standby
if (mAddressAllocated) {
for (HdmiCecLocalDevice localDevice : getAllLocalDevices()) {
localDevice.startQueuedActions();
}
}
}
}

View File

@@ -33,6 +33,8 @@ import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
@@ -59,6 +61,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
@@ -320,6 +323,18 @@ public class HdmiControlServiceTest {
assertThat(mNativeWrapper.getResultMessages()).doesNotContain(reportPowerStatus);
}
@Test
public void normalBoot_queuedActionsStartedAfterBoot() {
Mockito.clearInvocations(mAudioSystemDeviceSpy);
Mockito.clearInvocations(mPlaybackDeviceSpy);
mHdmiControlServiceSpy.onBootPhase(PHASE_BOOT_COMPLETED);
mTestLooper.dispatchAll();
verify(mAudioSystemDeviceSpy, times(1)).startQueuedActions();
verify(mPlaybackDeviceSpy, times(1)).startQueuedActions();
}
@Test
public void initialPowerStatus_normalBoot_goToStandby_broadcastsPowerStatus_2_0() {
mHdmiControlServiceSpy.getHdmiCecConfig().setIntValue(