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, {
|
||||
str1 = from
|
||||
str2 = state.name
|
||||
str2 = state?.name
|
||||
}, {
|
||||
"Pulse dropped, cannot pulse from=$str1 state=$str2"
|
||||
})
|
||||
|
||||
@@ -536,13 +536,13 @@ public class DozeTriggers implements DozeMachine.Part {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!mAllowPulseTriggers || mDozeHost.isPulsePending() || !canPulse()) {
|
||||
if (!mAllowPulseTriggers || mDozeHost.isPulsePending() || !canPulse(dozeState)) {
|
||||
if (!mAllowPulseTriggers) {
|
||||
mDozeLog.tracePulseDropped("requestPulse - !mAllowPulseTriggers");
|
||||
} else if (mDozeHost.isPulsePending()) {
|
||||
mDozeLog.tracePulseDropped("requestPulse - pulsePending");
|
||||
} else if (!canPulse()) {
|
||||
mDozeLog.tracePulseDropped("requestPulse", dozeState);
|
||||
} else if (!canPulse(dozeState)) {
|
||||
mDozeLog.tracePulseDropped("requestPulse - dozeState cannot pulse", dozeState);
|
||||
}
|
||||
runIfNotNull(onPulseSuppressedListener);
|
||||
return;
|
||||
@@ -559,15 +559,16 @@ public class DozeTriggers implements DozeMachine.Part {
|
||||
// not in pocket, continue pulsing
|
||||
final boolean isPulsePending = mDozeHost.isPulsePending();
|
||||
mDozeHost.setPulsePending(false);
|
||||
if (!isPulsePending || mDozeHost.isPulsingBlocked() || !canPulse()) {
|
||||
if (!isPulsePending || mDozeHost.isPulsingBlocked() || !canPulse(dozeState)) {
|
||||
if (!isPulsePending) {
|
||||
mDozeLog.tracePulseDropped("continuePulseRequest - pulse no longer"
|
||||
+ " pending, pulse was cancelled before it could start"
|
||||
+ " transitioning to pulsing state.");
|
||||
} else if (mDozeHost.isPulsingBlocked()) {
|
||||
mDozeLog.tracePulseDropped("continuePulseRequest - pulsingBlocked");
|
||||
} else if (!canPulse()) {
|
||||
mDozeLog.tracePulseDropped("continuePulseRequest", mMachine.getState());
|
||||
} else if (!canPulse(dozeState)) {
|
||||
mDozeLog.tracePulseDropped("continuePulseRequest"
|
||||
+ " - doze state cannot pulse", dozeState);
|
||||
}
|
||||
runIfNotNull(onPulseSuppressedListener);
|
||||
return;
|
||||
@@ -582,10 +583,10 @@ public class DozeTriggers implements DozeMachine.Part {
|
||||
.ifPresent(uiEventEnum -> mUiEventLogger.log(uiEventEnum, getKeyguardSessionId()));
|
||||
}
|
||||
|
||||
private boolean canPulse() {
|
||||
return mMachine.getState() == DozeMachine.State.DOZE
|
||||
|| mMachine.getState() == DozeMachine.State.DOZE_AOD
|
||||
|| mMachine.getState() == DozeMachine.State.DOZE_AOD_DOCKED;
|
||||
private boolean canPulse(DozeMachine.State dozeState) {
|
||||
return dozeState == DozeMachine.State.DOZE
|
||||
|| dozeState == DozeMachine.State.DOZE_AOD
|
||||
|| dozeState == DozeMachine.State.DOZE_AOD_DOCKED;
|
||||
}
|
||||
|
||||
@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.anyFloat;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.clearInvocations;
|
||||
import static org.mockito.Mockito.doAnswer;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
@@ -88,6 +88,8 @@ public class DozeTriggersTest extends SysuiTestCase {
|
||||
@Mock
|
||||
private ProximityCheck mProximityCheck;
|
||||
@Mock
|
||||
private DozeLog mDozeLog;
|
||||
@Mock
|
||||
private AuthController mAuthController;
|
||||
@Mock
|
||||
private UiEventLogger mUiEventLogger;
|
||||
@@ -127,7 +129,7 @@ public class DozeTriggersTest extends SysuiTestCase {
|
||||
|
||||
mTriggers = new DozeTriggers(mContext, mHost, config, dozeParameters,
|
||||
asyncSensorManager, wakeLock, mDockManager, mProximitySensor,
|
||||
mProximityCheck, mock(DozeLog.class), mBroadcastDispatcher, new FakeSettings(),
|
||||
mProximityCheck, mDozeLog, mBroadcastDispatcher, new FakeSettings(),
|
||||
mAuthController, mUiEventLogger, mSessionTracker, mKeyguardStateController,
|
||||
mDevicePostureController);
|
||||
mTriggers.setDozeMachine(mMachine);
|
||||
@@ -342,6 +344,16 @@ public class DozeTriggersTest extends SysuiTestCase {
|
||||
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() {
|
||||
mExecutor.runAllReady();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user