Merge "Add null-safety check for DozeState" into tm-qpr-dev am: c518a734ff
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20234044 Change-Id: Idb1100c65cfd213413ce5f5d610dc6e6a62574be Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -224,10 +224,14 @@ class DozeLogger @Inject constructor(
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fun logPulseDropped(from: String, state: DozeMachine.State) {
|
/**
|
||||||
|
* Log why a pulse was dropped and the current doze machine state. The state can be null
|
||||||
|
* if the DozeMachine is the middle of transitioning between states.
|
||||||
|
*/
|
||||||
|
fun logPulseDropped(from: String, state: DozeMachine.State?) {
|
||||||
buffer.log(TAG, INFO, {
|
buffer.log(TAG, INFO, {
|
||||||
str1 = from
|
str1 = from
|
||||||
str2 = state.name
|
str2 = state?.name
|
||||||
}, {
|
}, {
|
||||||
"Pulse dropped, cannot pulse from=$str1 state=$str2"
|
"Pulse dropped, cannot pulse from=$str1 state=$str2"
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -536,13 +536,13 @@ public class DozeTriggers implements DozeMachine.Part {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!mAllowPulseTriggers || mDozeHost.isPulsePending() || !canPulse()) {
|
if (!mAllowPulseTriggers || mDozeHost.isPulsePending() || !canPulse(dozeState)) {
|
||||||
if (!mAllowPulseTriggers) {
|
if (!mAllowPulseTriggers) {
|
||||||
mDozeLog.tracePulseDropped("requestPulse - !mAllowPulseTriggers");
|
mDozeLog.tracePulseDropped("requestPulse - !mAllowPulseTriggers");
|
||||||
} else if (mDozeHost.isPulsePending()) {
|
} else if (mDozeHost.isPulsePending()) {
|
||||||
mDozeLog.tracePulseDropped("requestPulse - pulsePending");
|
mDozeLog.tracePulseDropped("requestPulse - pulsePending");
|
||||||
} else if (!canPulse()) {
|
} else if (!canPulse(dozeState)) {
|
||||||
mDozeLog.tracePulseDropped("requestPulse", dozeState);
|
mDozeLog.tracePulseDropped("requestPulse - dozeState cannot pulse", dozeState);
|
||||||
}
|
}
|
||||||
runIfNotNull(onPulseSuppressedListener);
|
runIfNotNull(onPulseSuppressedListener);
|
||||||
return;
|
return;
|
||||||
@@ -559,15 +559,16 @@ public class DozeTriggers implements DozeMachine.Part {
|
|||||||
// not in pocket, continue pulsing
|
// not in pocket, continue pulsing
|
||||||
final boolean isPulsePending = mDozeHost.isPulsePending();
|
final boolean isPulsePending = mDozeHost.isPulsePending();
|
||||||
mDozeHost.setPulsePending(false);
|
mDozeHost.setPulsePending(false);
|
||||||
if (!isPulsePending || mDozeHost.isPulsingBlocked() || !canPulse()) {
|
if (!isPulsePending || mDozeHost.isPulsingBlocked() || !canPulse(dozeState)) {
|
||||||
if (!isPulsePending) {
|
if (!isPulsePending) {
|
||||||
mDozeLog.tracePulseDropped("continuePulseRequest - pulse no longer"
|
mDozeLog.tracePulseDropped("continuePulseRequest - pulse no longer"
|
||||||
+ " pending, pulse was cancelled before it could start"
|
+ " pending, pulse was cancelled before it could start"
|
||||||
+ " transitioning to pulsing state.");
|
+ " transitioning to pulsing state.");
|
||||||
} else if (mDozeHost.isPulsingBlocked()) {
|
} else if (mDozeHost.isPulsingBlocked()) {
|
||||||
mDozeLog.tracePulseDropped("continuePulseRequest - pulsingBlocked");
|
mDozeLog.tracePulseDropped("continuePulseRequest - pulsingBlocked");
|
||||||
} else if (!canPulse()) {
|
} else if (!canPulse(dozeState)) {
|
||||||
mDozeLog.tracePulseDropped("continuePulseRequest", mMachine.getState());
|
mDozeLog.tracePulseDropped("continuePulseRequest"
|
||||||
|
+ " - doze state cannot pulse", dozeState);
|
||||||
}
|
}
|
||||||
runIfNotNull(onPulseSuppressedListener);
|
runIfNotNull(onPulseSuppressedListener);
|
||||||
return;
|
return;
|
||||||
@@ -582,10 +583,10 @@ public class DozeTriggers implements DozeMachine.Part {
|
|||||||
.ifPresent(uiEventEnum -> mUiEventLogger.log(uiEventEnum, getKeyguardSessionId()));
|
.ifPresent(uiEventEnum -> mUiEventLogger.log(uiEventEnum, getKeyguardSessionId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean canPulse() {
|
private boolean canPulse(DozeMachine.State dozeState) {
|
||||||
return mMachine.getState() == DozeMachine.State.DOZE
|
return dozeState == DozeMachine.State.DOZE
|
||||||
|| mMachine.getState() == DozeMachine.State.DOZE_AOD
|
|| dozeState == DozeMachine.State.DOZE_AOD
|
||||||
|| mMachine.getState() == DozeMachine.State.DOZE_AOD_DOCKED;
|
|| dozeState == DozeMachine.State.DOZE_AOD_DOCKED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|||||||
@@ -23,10 +23,10 @@ import static com.android.systemui.doze.DozeMachine.State.UNINITIALIZED;
|
|||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.anyFloat;
|
import static org.mockito.ArgumentMatchers.anyFloat;
|
||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
|
import static org.mockito.ArgumentMatchers.anyString;
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Mockito.clearInvocations;
|
import static org.mockito.Mockito.clearInvocations;
|
||||||
import static org.mockito.Mockito.doAnswer;
|
import static org.mockito.Mockito.doAnswer;
|
||||||
import static org.mockito.Mockito.mock;
|
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
@@ -88,6 +88,8 @@ public class DozeTriggersTest extends SysuiTestCase {
|
|||||||
@Mock
|
@Mock
|
||||||
private ProximityCheck mProximityCheck;
|
private ProximityCheck mProximityCheck;
|
||||||
@Mock
|
@Mock
|
||||||
|
private DozeLog mDozeLog;
|
||||||
|
@Mock
|
||||||
private AuthController mAuthController;
|
private AuthController mAuthController;
|
||||||
@Mock
|
@Mock
|
||||||
private UiEventLogger mUiEventLogger;
|
private UiEventLogger mUiEventLogger;
|
||||||
@@ -127,7 +129,7 @@ public class DozeTriggersTest extends SysuiTestCase {
|
|||||||
|
|
||||||
mTriggers = new DozeTriggers(mContext, mHost, config, dozeParameters,
|
mTriggers = new DozeTriggers(mContext, mHost, config, dozeParameters,
|
||||||
asyncSensorManager, wakeLock, mDockManager, mProximitySensor,
|
asyncSensorManager, wakeLock, mDockManager, mProximitySensor,
|
||||||
mProximityCheck, mock(DozeLog.class), mBroadcastDispatcher, new FakeSettings(),
|
mProximityCheck, mDozeLog, mBroadcastDispatcher, new FakeSettings(),
|
||||||
mAuthController, mUiEventLogger, mSessionTracker, mKeyguardStateController,
|
mAuthController, mUiEventLogger, mSessionTracker, mKeyguardStateController,
|
||||||
mDevicePostureController);
|
mDevicePostureController);
|
||||||
mTriggers.setDozeMachine(mMachine);
|
mTriggers.setDozeMachine(mMachine);
|
||||||
@@ -342,6 +344,16 @@ public class DozeTriggersTest extends SysuiTestCase {
|
|||||||
verify(mProximityCheck).destroy();
|
verify(mProximityCheck).destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIsExecutingTransition_dropPulse() {
|
||||||
|
when(mHost.isPulsePending()).thenReturn(false);
|
||||||
|
when(mMachine.isExecutingTransition()).thenReturn(true);
|
||||||
|
|
||||||
|
mTriggers.onSensor(DozeLog.PULSE_REASON_SENSOR_LONG_PRESS, 100, 100, null);
|
||||||
|
|
||||||
|
verify(mDozeLog).tracePulseDropped(anyString(), eq(null));
|
||||||
|
}
|
||||||
|
|
||||||
private void waitForSensorManager() {
|
private void waitForSensorManager() {
|
||||||
mExecutor.runAllReady();
|
mExecutor.runAllReady();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user