Merge "Dismiss Inattentive Sleep Warning when inattentive sleep is disabled" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
4c7368f759
@@ -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");
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user