Merge "Only act on event if something actually changed" into rvc-dev am: b80eb1ec73

Change-Id: I639222528b6ae9419c15809b2348e3b68b32c28f
This commit is contained in:
Lucas Dupin
2020-04-28 01:49:02 +00:00
committed by Automerger Merge Worker
2 changed files with 18 additions and 0 deletions

View File

@@ -75,6 +75,12 @@ public class DozeDockHandler implements DozeMachine.Part {
public void onEvent(int dockState) {
if (DEBUG) Log.d(TAG, "dock event = " + dockState);
// Only act upon state changes, otherwise we might overwrite other transitions,
// like proximity sensor initialization.
if (mDockState == dockState) {
return;
}
mDockState = dockState;
if (isPulsing()) {
return;

View File

@@ -19,6 +19,7 @@ package com.android.systemui.doze;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
@@ -82,8 +83,17 @@ public class DozeDockHandlerTest extends SysuiTestCase {
verify(mMachine).requestState(eq(State.DOZE_AOD_DOCKED));
}
@Test
public void onEvent_noneWhileEnabledAod_ignoresIfAlreadyNone() {
mDockManagerFake.setDockEvent(DockManager.STATE_NONE);
verify(mMachine, never()).requestState(eq(State.DOZE_AOD));
}
@Test
public void onEvent_noneWhileEnabledAod_requestsAodState() {
mDockManagerFake.setDockEvent(DockManager.STATE_DOCKED);
clearInvocations(mMachine);
mDockManagerFake.setDockEvent(DockManager.STATE_NONE);
verify(mMachine).requestState(eq(State.DOZE_AOD));
@@ -91,6 +101,8 @@ public class DozeDockHandlerTest extends SysuiTestCase {
@Test
public void onEvent_noneWhileDisabledAod_requestsDozeState() {
mDockManagerFake.setDockEvent(DockManager.STATE_DOCKED);
clearInvocations(mMachine);
doReturn(false).when(mConfig).alwaysOnEnabled(anyInt());
mDockManagerFake.setDockEvent(DockManager.STATE_NONE);