Merge "Dismiss Inattentive Sleep Warning when inattentive sleep is disabled" into sc-dev

This commit is contained in:
Robert Horvath
2021-07-02 13:45:43 +00:00
committed by Android (Google) Code Review
2 changed files with 25 additions and 8 deletions

View File

@@ -1344,7 +1344,8 @@ public final class PowerManagerService extends SystemService
mDirty |= DIRTY_SETTINGS;
}
private void handleSettingsChangedLocked() {
@VisibleForTesting
void handleSettingsChangedLocked() {
updateSettingsLocked();
updatePowerStateLocked();
}
@@ -2651,9 +2652,6 @@ public final class PowerManagerService extends SystemService
private void updateAttentiveStateLocked(long now, int dirty) {
long attentiveTimeout = getAttentiveTimeoutLocked();
if (attentiveTimeout < 0) {
return;
}
// Attentive state only applies to the default display group.
long goToSleepTime = mDisplayGroupPowerStateMapper.getLastUserActivityTimeLocked(
Display.DEFAULT_DISPLAY_GROUP) + attentiveTimeout;
@@ -2661,10 +2659,10 @@ public final class PowerManagerService extends SystemService
boolean warningDismissed = maybeHideInattentiveSleepWarningLocked(now, showWarningTime);
if (warningDismissed ||
(dirty & (DIRTY_ATTENTIVE | DIRTY_STAY_ON | DIRTY_SCREEN_BRIGHTNESS_BOOST
| DIRTY_PROXIMITY_POSITIVE | DIRTY_WAKEFULNESS | DIRTY_BOOT_COMPLETED
| DIRTY_SETTINGS)) != 0) {
if (attentiveTimeout >= 0 && (warningDismissed
|| (dirty & (DIRTY_ATTENTIVE | DIRTY_STAY_ON | DIRTY_SCREEN_BRIGHTNESS_BOOST
| DIRTY_PROXIMITY_POSITIVE | DIRTY_WAKEFULNESS | DIRTY_BOOT_COMPLETED
| DIRTY_SETTINGS)) != 0)) {
if (DEBUG_SPEW) {
Slog.d(TAG, "Updating attentive state");
}

View File

@@ -760,6 +760,25 @@ public class PowerManagerServiceTest {
verify(mInattentiveSleepWarningControllerMock, atLeastOnce()).dismiss(true);
}
@Test
public void testInattentiveSleep_hideWarningIfInattentiveSleepIsDisabled() throws Exception {
setMinimumScreenOffTimeoutConfig(5);
setAttentiveWarningDuration(120);
setAttentiveTimeout(100);
createService();
startSystem();
verify(mInattentiveSleepWarningControllerMock, times(1)).show();
verify(mInattentiveSleepWarningControllerMock, never()).dismiss(anyBoolean());
when(mInattentiveSleepWarningControllerMock.isShown()).thenReturn(true);
setAttentiveTimeout(-1);
mService.handleSettingsChangedLocked();
verify(mInattentiveSleepWarningControllerMock, atLeastOnce()).dismiss(true);
}
@Test
public void testInattentiveSleep_userActivityDismissesWarning() throws Exception {
final DisplayInfo info = new DisplayInfo();