OSDN Git Service

Respond to changes in throttle policy.
authorRobert Greenwalt <robdroid@android.com>
Fri, 23 Apr 2010 20:15:44 +0000 (13:15 -0700)
committerRobert Greenwalt <robdroid@android.com>
Fri, 23 Apr 2010 20:15:44 +0000 (13:15 -0700)
We were updating limits and such before, but we were not applying them
to the current situation if we were already throttled.  Now it can result in
us throttling or changing our throttle rate or unthrottling or even making
the ui come or go (disabling/enable throttling)

bug:2622543
bug:2619879
Change-Id: I64a62634d54f4768ab8625f8d72f9f66a239cb19

services/java/com/android/server/ThrottleService.java

index 58a642e..2fe7420 100644 (file)
@@ -391,6 +391,9 @@ public class ThrottleService extends IThrottleManager.Stub {
                     ", resetDay=" + mPolicyResetDay + ", noteType=" +
                     mPolicyNotificationsAllowedMask);
 
+            // force updates
+            mThrottleIndex = THROTTLE_INDEX_UNINITIALIZED;
+
             onResetAlarm();
 
             onPollAlarm();
@@ -490,6 +493,7 @@ public class ThrottleService extends IThrottleManager.Stub {
 
                 } // else already up!
             } else {
+                clearThrottleAndNotification();
                 if ((mPolicyNotificationsAllowedMask & NOTIFICATION_WARNING) != 0) {
                     // check if we should warn about throttle
                     // pretend we only have 1/2 the time remaining that we actually do
@@ -566,9 +570,9 @@ public class ThrottleService extends IThrottleManager.Stub {
                 Intent broadcast = new Intent(ThrottleManager.THROTTLE_ACTION);
                 broadcast.putExtra(ThrottleManager.EXTRA_THROTTLE_LEVEL, -1);
                 mContext.sendStickyBroadcast(broadcast);
+                mNotificationManager.cancel(R.drawable.stat_sys_throttled);
+                mWarningNotificationSent = false;
             }
-            mNotificationManager.cancel(R.drawable.stat_sys_throttled);
-            mWarningNotificationSent = false;
         }
 
         private Calendar calculatePeriodEnd(long now) {
@@ -627,7 +631,6 @@ public class ThrottleService extends IThrottleManager.Stub {
                 Calendar start = calculatePeriodStart(end);
 
                 if (mRecorder.setNextPeriod(start, end)) {
-                    clearThrottleAndNotification();
                     onPollAlarm();
                 }