summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoe Onorato <joeo@android.com>2009-07-14 19:49:27 -0700
committerJoe Onorato <joeo@android.com>2009-07-15 09:58:08 -0700
commit851da848e97d9a1ec23a89ff0e200c301f32d690 (patch)
treef46d550afce1168b58cb2fd9a2bb5c0f6e14d608
parentee5bbb7f6304c4930899d069c82fe02e49f050aa (diff)
downloadframeworks_base-851da848e97d9a1ec23a89ff0e200c301f32d690.zip
frameworks_base-851da848e97d9a1ec23a89ff0e200c301f32d690.tar.gz
frameworks_base-851da848e97d9a1ec23a89ff0e200c301f32d690.tar.bz2
Clamp app widget updates from updatePeriodMillis to a minimum of 30 minutes.
-rw-r--r--core/java/android/appwidget/AppWidgetProviderInfo.java3
-rw-r--r--services/java/com/android/server/AppWidgetService.java8
2 files changed, 9 insertions, 2 deletions
diff --git a/core/java/android/appwidget/AppWidgetProviderInfo.java b/core/java/android/appwidget/AppWidgetProviderInfo.java
index 8530c35..a2e0ba0a 100644
--- a/core/java/android/appwidget/AppWidgetProviderInfo.java
+++ b/core/java/android/appwidget/AppWidgetProviderInfo.java
@@ -57,6 +57,9 @@ public class AppWidgetProviderInfo implements Parcelable {
*
* <p>This field corresponds to the <code>android:updatePeriodMillis</code> attribute in
* the AppWidget meta-data file.
+ *
+ * <p class="note"><b>Note:</b> Updates requested with <code>updatePeriodMillis</code>
+ * will not be delivered more than once every 30 minutes.</p>
*/
public int updatePeriodMillis;
diff --git a/services/java/com/android/server/AppWidgetService.java b/services/java/com/android/server/AppWidgetService.java
index 131e156..78db6f9 100644
--- a/services/java/com/android/server/AppWidgetService.java
+++ b/services/java/com/android/server/AppWidgetService.java
@@ -68,6 +68,7 @@ class AppWidgetService extends IAppWidgetService.Stub
private static final String SETTINGS_FILENAME = "appwidgets.xml";
private static final String SETTINGS_TMP_FILENAME = SETTINGS_FILENAME + ".tmp";
+ private static final int MIN_UPDATE_PERIOD = 30 * 60 * 1000; // 30 minutes
/*
* When identifying a Host or Provider based on the calling process, use the uid field.
@@ -629,9 +630,12 @@ class AppWidgetService extends IAppWidgetService.Stub
Binder.restoreCallingIdentity(token);
}
if (!alreadyRegistered) {
+ long period = p.info.updatePeriodMillis;
+ if (period < MIN_UPDATE_PERIOD) {
+ period = MIN_UPDATE_PERIOD;
+ }
mAlarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
- SystemClock.elapsedRealtime() + p.info.updatePeriodMillis,
- p.info.updatePeriodMillis, p.broadcast);
+ SystemClock.elapsedRealtime() + period, period, p.broadcast);
}
}
}