diff options
author | Fred Quintana <fredq@google.com> | 2009-09-23 12:44:10 -0700 |
---|---|---|
committer | Fred Quintana <fredq@google.com> | 2009-09-23 12:58:51 -0700 |
commit | 600dde04ee07b740dc119c879cf096b5d697ec32 (patch) | |
tree | e086cebc432b6b4040963ca776aaee8f8cc11cf8 /core/java/android/content/SyncManager.java | |
parent | be3bceb5b908c23eeda5a8d04d2ea3d43cc7ed10 (diff) | |
download | frameworks_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.java | 14 |
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) { |