Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 75b045da authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

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

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

Change-Id: I167e33c5661d219e44afdb086e09621b77967ef3
parents c581c335 80df3099
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -634,6 +634,12 @@ public class HdmiControlService extends SystemService {
        // on boot, if device is interactive, set HDMI CEC state as powered on as well
        // on boot, if device is interactive, set HDMI CEC state as powered on as well
        if (mPowerManager.isInteractive() && isPowerStandbyOrTransient()) {
        if (mPowerManager.isInteractive() && isPowerStandbyOrTransient()) {
            mPowerStatusController.setPowerStatus(HdmiControlManager.POWER_STATUS_ON);
            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();
                }
            }
        }
        }
    }
    }


+15 −0
Original line number Original line Diff line number Diff line
@@ -33,6 +33,8 @@ import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
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 static org.mockito.Mockito.when;


import android.content.Context;
import android.content.Context;
@@ -59,6 +61,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import org.junit.runners.JUnit4;
import org.mockito.Mock;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.MockitoAnnotations;


import java.util.ArrayList;
import java.util.ArrayList;
@@ -320,6 +323,18 @@ public class HdmiControlServiceTest {
        assertThat(mNativeWrapper.getResultMessages()).doesNotContain(reportPowerStatus);
        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
    @Test
    public void initialPowerStatus_normalBoot_goToStandby_broadcastsPowerStatus_2_0() {
    public void initialPowerStatus_normalBoot_goToStandby_broadcastsPowerStatus_2_0() {
        mHdmiControlServiceSpy.getHdmiCecConfig().setIntValue(
        mHdmiControlServiceSpy.getHdmiCecConfig().setIntValue(