summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/BlurController.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/BlurController.java b/services/core/java/com/android/server/wm/BlurController.java
index 03639449c3df..41d9dbf894f4 100644
--- a/services/core/java/com/android/server/wm/BlurController.java
+++ b/services/core/java/com/android/server/wm/BlurController.java
@@ -16,6 +16,7 @@
package com.android.server.wm;
+import static android.os.PowerManager.THERMAL_STATUS_CRITICAL;
import static android.view.CrossWindowBlurListeners.CROSS_WINDOW_BLUR_SUPPORTED;
import android.content.BroadcastReceiver;
@@ -45,6 +46,7 @@ final class BlurController {
private final Object mLock = new Object();
private volatile boolean mBlurEnabled;
private boolean mInPowerSaveMode;
+ private boolean mCriticalThermalStatus;
private boolean mBlurDisabledSetting;
private boolean mTunnelModeEnabled = false;
@@ -89,6 +91,12 @@ final class BlurController {
});
mBlurDisabledSetting = getBlurDisabledSetting();
+ powerManager.addThermalStatusListener((status) -> {
+ mCriticalThermalStatus = status >= THERMAL_STATUS_CRITICAL;
+ updateBlurEnabled();
+ });
+ mCriticalThermalStatus = powerManager.getCurrentThermalStatus() >= THERMAL_STATUS_CRITICAL;
+
TunnelModeEnabledListener.register(mTunnelModeListener);
updateBlurEnabled();
@@ -112,7 +120,7 @@ final class BlurController {
private void updateBlurEnabled() {
synchronized (mLock) {
final boolean newEnabled = CROSS_WINDOW_BLUR_SUPPORTED && !mBlurDisabledSetting
- && !mInPowerSaveMode && !mTunnelModeEnabled;
+ && !mInPowerSaveMode && !mTunnelModeEnabled && !mCriticalThermalStatus;
if (mBlurEnabled == newEnabled) {
return;
}