am 5cc07252: Merge "Add warning magic to be a bit more reasonable." into froyo

Merge commit '5cc072522b51f796085a73545a3dd34a02877059' into froyo-plus-aosp

* commit '5cc072522b51f796085a73545a3dd34a02877059':
  Add warning magic to be a bit more reasonable.
This commit is contained in:
Robert Greenwalt
2010-04-10 11:42:02 -07:00
committed by Android Git Automerger

View File

@@ -421,7 +421,24 @@ public class ThrottleService extends IThrottleManager.Stub {
} else { } else {
if ((mPolicyNotificationsAllowedMask & NOTIFICATION_WARNING) != 0) { if ((mPolicyNotificationsAllowedMask & NOTIFICATION_WARNING) != 0) {
// check if we should warn about throttle // check if we should warn about throttle
if (currentTotal > (mPolicyThreshold/2) && !mWarningNotificationSent) { // pretend we only have 1/2 the time remaining that we actually do
// if our burn rate in the period so far would have us exceed the limit
// in that 1/2 window, warn the user.
// this gets more generous in the early to middle period and converges back
// to the limit as we move toward the period end.
// adding another factor - it must be greater than the total cap/4
// else we may get false alarms very early in the period.. in the first
// tenth of a percent of the period if we used more than a tenth of a percent
// of the cap we'd get a warning and that's not desired.
long start = mRecorder.getPeriodStart();
long end = mRecorder.getPeriodEnd();
long periodLength = end - start;
long now = System.currentTimeMillis();
long timeUsed = now - start;
long warningThreshold = 2*mPolicyThreshold*timeUsed/(timeUsed+periodLength);
if ((currentTotal > warningThreshold) && (currentTotal > mPolicyThreshold/4)) {
if (mWarningNotificationSent == false) {
mWarningNotificationSent = true; mWarningNotificationSent = true;
mNotificationManager.cancel(com.android.internal.R.drawable. mNotificationManager.cancel(com.android.internal.R.drawable.
stat_sys_throttle_warning); stat_sys_throttle_warning);
@@ -431,12 +448,17 @@ public class ThrottleService extends IThrottleManager.Stub {
throttle_warning_notification_message, throttle_warning_notification_message,
com.android.internal.R.drawable.stat_sys_throttle_warning, com.android.internal.R.drawable.stat_sys_throttle_warning,
0); 0);
}
} else { } else {
if (mWarningNotificationSent == true) {
mNotificationManager.cancel(com.android.internal.R.drawable.
stat_sys_throttle_warning);
mWarningNotificationSent =false; mWarningNotificationSent =false;
} }
} }
} }
} }
}
private void postNotification(int titleInt, int messageInt, int icon, int flags) { private void postNotification(int titleInt, int messageInt, int icon, int flags) {
Intent intent = new Intent(); Intent intent = new Intent();