summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/net/NetworkPolicyManagerService.java22
1 files changed, 15 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
index 374ac5d..f1d1c35 100644
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -247,6 +247,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
private static final int MSG_RESTRICT_BACKGROUND_CHANGED = 6;
private static final int MSG_ADVISE_PERSIST_THRESHOLD = 7;
private static final int MSG_SCREEN_ON_CHANGED = 8;
+ private static final int MSG_PROCESS_LOW_POWER_CHANGED = 9;
private final Context mContext;
private final IActivityManager mActivityManager;
@@ -437,13 +438,10 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
mPowerManagerInternal.registerLowPowerModeObserver(
new PowerManagerInternal.LowPowerModeListener() {
@Override
- public void onLowPowerModeChanged(boolean enabled) {
- synchronized (mRulesLock) {
- if (mRestrictPower != enabled) {
- mRestrictPower = enabled;
- updateRulesForGlobalChangeLocked(true);
- }
- }
+ public void onLowPowerModeChanged(final boolean enabled) {
+ mHandler.removeMessages(MSG_PROCESS_LOW_POWER_CHANGED);
+ Message msg = Message.obtain(mHandler, MSG_PROCESS_LOW_POWER_CHANGED, enabled);
+ mHandler.sendMessage(msg);
}
});
mRestrictPower = mPowerManagerInternal.getLowPowerModeEnabled();
@@ -2443,6 +2441,16 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
updateScreenOn();
return true;
}
+ case MSG_PROCESS_LOW_POWER_CHANGED: {
+ boolean enabled = (Boolean) msg.obj;
+ synchronized (mRulesLock) {
+ if (mRestrictPower != enabled) {
+ mRestrictPower = enabled;
+ updateRulesForGlobalChangeLocked(true);
+ }
+ }
+ return true;
+ }
default: {
return false;
}