diff options
author | Android (Google) Code Review <android-gerrit@google.com> | 2009-07-15 18:28:16 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-07-15 18:28:16 -0700 |
commit | 49763e42460d87c51485311507a45e5da636f2a5 (patch) | |
tree | 2b5f8aec334d335227aef609119965cd740fba68 /core/java/android | |
parent | c3350ab5b2ce01411c9a1b304e4462aa9e759dd8 (diff) | |
parent | 8294fadb155a33da8a40d8412afb35e6b424afcb (diff) | |
download | frameworks_base-49763e42460d87c51485311507a45e5da636f2a5.zip frameworks_base-49763e42460d87c51485311507a45e5da636f2a5.tar.gz frameworks_base-49763e42460d87c51485311507a45e5da636f2a5.tar.bz2 |
Merge change 7480
* changes:
Make sync not start until setup wizard is done.
Diffstat (limited to 'core/java/android')
-rw-r--r-- | core/java/android/content/SyncManager.java | 2 | ||||
-rw-r--r-- | core/java/android/content/SyncStorageEngine.java | 23 |
2 files changed, 17 insertions, 8 deletions
diff --git a/core/java/android/content/SyncManager.java b/core/java/android/content/SyncManager.java index f73b394..d54e260 100644 --- a/core/java/android/content/SyncManager.java +++ b/core/java/android/content/SyncManager.java @@ -1588,7 +1588,7 @@ class SyncManager implements OnAccountsUpdatedListener { ContentResolver.SYNC_EXTRAS_MANUAL, false); final boolean syncAutomatically = mSyncStorageEngine.getSyncAutomatically(op.account, op.authority) - || mSyncStorageEngine.getMasterSyncAutomatically(); + && mSyncStorageEngine.getMasterSyncAutomatically(); boolean syncAllowed = manualSync || (backgroundDataUsageAllowed && syncAutomatically); if (!syncAllowed) { diff --git a/core/java/android/content/SyncStorageEngine.java b/core/java/android/content/SyncStorageEngine.java index 9d2efb5..8cc0642 100644 --- a/core/java/android/content/SyncStorageEngine.java +++ b/core/java/android/content/SyncStorageEngine.java @@ -110,6 +110,8 @@ public class SyncStorageEngine extends Handler { private static final int MSG_WRITE_STATISTICS = 2; private static final long WRITE_STATISTICS_DELAY = 1000*60*30; // 1/2 hour + + private static final boolean SYNC_ENABLED_DEFAULT = false; public static class PendingOperation { final Account account; @@ -158,7 +160,7 @@ public class SyncStorageEngine extends Handler { this.account = account; this.authority = authority; this.ident = ident; - enabled = true; + enabled = SYNC_ENABLED_DEFAULT; } } @@ -376,23 +378,30 @@ public class SyncStorageEngine extends Handler { } public void setSyncAutomatically(Account account, String providerName, boolean sync) { + boolean wasEnabled; synchronized (mAuthorities) { - AuthorityInfo authority = getAuthorityLocked(account, providerName, - "setSyncAutomatically"); - if (authority != null) { - authority.enabled = sync; - } + AuthorityInfo authority = getOrCreateAuthorityLocked(account, providerName, -1, false); + wasEnabled = authority.enabled; + authority.enabled = sync; writeAccountInfoLocked(); } - + + if (!wasEnabled && sync) { + mContext.getContentResolver().requestSync(account, providerName, new Bundle()); + } reportChange(ContentResolver.SYNC_OBSERVER_TYPE_SETTINGS); } public void setMasterSyncAutomatically(boolean flag) { + boolean old; synchronized (mAuthorities) { + old = mMasterSyncAutomatically; mMasterSyncAutomatically = flag; writeAccountInfoLocked(); } + if (!old && flag) { + mContext.getContentResolver().requestSync(null, null, new Bundle()); + } reportChange(ContentResolver.SYNC_OBSERVER_TYPE_SETTINGS); mContext.sendBroadcast(SYNC_CONNECTION_SETTING_CHANGED_INTENT); } |