diff options
| author | 2020-03-12 15:10:38 -0700 | |
|---|---|---|
| committer | 2020-03-17 16:11:42 -0700 | |
| commit | 80d224621f3b947be9ca5519fdfa7405e346b61d (patch) | |
| tree | 90a084bd4fdb9d89631a2a30c542590421ac85c1 | |
| parent | b4decfc142806b45adf273865aefdcfbc58b5375 (diff) | |
Send DEVICE_IDLE and DISPLAY_INACTIVE hint from framework
Bug: 140148621
Test: boot device
Change-Id: I34971fde28a80056c51d3c1501467f975c7e82a2
| -rw-r--r-- | core/java/android/view/Display.java | 9 | ||||
| -rw-r--r-- | services/core/java/com/android/server/power/PowerManagerService.java | 8 |
2 files changed, 15 insertions, 2 deletions
diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java index 0dcb9cc5256e..dffcafe1de0e 100644 --- a/core/java/android/view/Display.java +++ b/core/java/android/view/Display.java @@ -1307,6 +1307,15 @@ public final class Display { } /** + * Returns true if the display is in active state such as {@link #STATE_ON} + * or {@link #STATE_VR}. + * @hide + */ + public static boolean isActiveState(int state) { + return state == STATE_ON || state == STATE_VR; + } + + /** * A mode supported by a given display. * * @see Display#getSupportedModes() diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java index 294deba459fe..3257b63843ec 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -18,6 +18,8 @@ package com.android.server.power; import static android.os.IServiceManager.DUMP_FLAG_PRIORITY_CRITICAL; import static android.os.IServiceManager.DUMP_FLAG_PRIORITY_DEFAULT; +import static android.os.PowerManagerInternal.MODE_DEVICE_IDLE; +import static android.os.PowerManagerInternal.MODE_DISPLAY_INACTIVE; import static android.os.PowerManagerInternal.WAKEFULNESS_ASLEEP; import static android.os.PowerManagerInternal.WAKEFULNESS_AWAKE; import static android.os.PowerManagerInternal.WAKEFULNESS_DOZING; @@ -42,8 +44,6 @@ import android.hardware.SystemSensorManager; import android.hardware.display.AmbientDisplayConfiguration; import android.hardware.display.DisplayManagerInternal; import android.hardware.display.DisplayManagerInternal.DisplayPowerRequest; -import android.hardware.power.Boost; -import android.hardware.power.Mode; import android.hardware.power.V1_0.PowerHint; import android.net.Uri; import android.os.BatteryManager; @@ -2975,6 +2975,8 @@ public final class PowerManagerService extends SystemService synchronized (mLock) { if (mDisplayState != state) { mDisplayState = state; + setPowerModeInternal(MODE_DISPLAY_INACTIVE, + !Display.isActiveState(state)); if (state == Display.STATE_OFF) { if (!mDecoupleHalInteractiveModeFromDisplayConfig) { setHalInteractiveModeLocked(false); @@ -3297,6 +3299,7 @@ public final class PowerManagerService extends SystemService } mDeviceIdleMode = enabled; updateWakeLockDisabledStatesLocked(); + setPowerModeInternal(MODE_DEVICE_IDLE, mDeviceIdleMode || mLightDeviceIdleMode); } if (enabled) { EventLogTags.writeDeviceIdleOnPhase("power"); @@ -3310,6 +3313,7 @@ public final class PowerManagerService extends SystemService synchronized (mLock) { if (mLightDeviceIdleMode != enabled) { mLightDeviceIdleMode = enabled; + setPowerModeInternal(MODE_DEVICE_IDLE, mDeviceIdleMode || mLightDeviceIdleMode); return true; } return false; |