summaryrefslogtreecommitdiffstats
path: root/core/java/android/content/SyncManager.java
diff options
context:
space:
mode:
authorFred Quintana <fredq@google.com>2009-09-23 12:44:10 -0700
committerFred Quintana <fredq@google.com>2009-09-23 12:58:51 -0700
commit600dde04ee07b740dc119c879cf096b5d697ec32 (patch)
treee086cebc432b6b4040963ca776aaee8f8cc11cf8 /core/java/android/content/SyncManager.java
parentbe3bceb5b908c23eeda5a8d04d2ea3d43cc7ed10 (diff)
downloadframeworks_base-600dde04ee07b740dc119c879cf096b5d697ec32.zip
frameworks_base-600dde04ee07b740dc119c879cf096b5d697ec32.tar.gz
frameworks_base-600dde04ee07b740dc119c879cf096b5d697ec32.tar.bz2
make the SyncManager listen for backgroun data setting changes and do a sync when the setting is enabled
Diffstat (limited to 'core/java/android/content/SyncManager.java')
-rw-r--r--core/java/android/content/SyncManager.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/core/java/android/content/SyncManager.java b/core/java/android/content/SyncManager.java
index eff6f52..1c61324d 100644
--- a/core/java/android/content/SyncManager.java
+++ b/core/java/android/content/SyncManager.java
@@ -208,6 +208,15 @@ class SyncManager implements OnAccountsUpdatedListener {
}
};
+ private BroadcastReceiver mBackgroundDataSettingChanged = new BroadcastReceiver() {
+ public void onReceive(Context context, Intent intent) {
+ if (getConnectivityManager().getBackgroundDataSetting()) {
+ scheduleSync(null /* account */, null /* authority */, new Bundle(), 0 /* delay */,
+ false /* onlyThoseWithUnknownSyncableState */);
+ }
+ }
+ };
+
public void onAccountsUpdated(Account[] accounts) {
// remember if this was the first time this was called after an update
final boolean justBootedUp = mAccounts == null;
@@ -351,6 +360,9 @@ class SyncManager implements OnAccountsUpdatedListener {
intentFilter = new IntentFilter(Intent.ACTION_BOOT_COMPLETED);
context.registerReceiver(mBootCompletedReceiver, intentFilter);
+ intentFilter = new IntentFilter(ConnectivityManager.ACTION_BACKGROUND_DATA_SETTING_CHANGED);
+ context.registerReceiver(mBackgroundDataSettingChanged, intentFilter);
+
intentFilter = new IntentFilter(Intent.ACTION_DEVICE_STORAGE_LOW);
intentFilter.addAction(Intent.ACTION_DEVICE_STORAGE_OK);
context.registerReceiver(mStorageIntentReceiver, intentFilter);
@@ -687,8 +699,8 @@ class SyncManager implements OnAccountsUpdatedListener {
if (isLoggable) {
Log.d(TAG, "scheduleSync: sync of " + account + ", " + authority
+ " is not allowed, dropping request");
- continue;
}
+ continue;
}
}
if (isLoggable) {