diff options
Diffstat (limited to 'services/core')
-rw-r--r-- | services/core/java/com/android/server/net/NetworkPolicyManagerService.java | 22 |
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; } |