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) { public void onEvent(int dockState) {
if (DEBUG) Log.d(TAG, "dock event = " + 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; mDockState = dockState;
if (isPulsing()) { if (isPulsing()) {
return; return;

View File

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