summaryrefslogtreecommitdiffstats
path: root/core/java/android/content/SyncStorageEngine.java
diff options
context:
space:
mode:
authorJoe Onorato <joeo@android.com>2009-07-15 16:08:44 -0700
committerJoe Onorato <joeo@android.com>2009-07-15 18:03:28 -0700
commit8294fadb155a33da8a40d8412afb35e6b424afcb (patch)
treee33ef5ed58bd74982fe31f9a4688ccce9c1eb60f /core/java/android/content/SyncStorageEngine.java
parentf3ea3e09684c82016e13140d68019b968c793190 (diff)
downloadframeworks_base-8294fadb155a33da8a40d8412afb35e6b424afcb.zip
frameworks_base-8294fadb155a33da8a40d8412afb35e6b424afcb.tar.gz
frameworks_base-8294fadb155a33da8a40d8412afb35e6b424afcb.tar.bz2
Make sync not start until setup wizard is done.
Diffstat (limited to 'core/java/android/content/SyncStorageEngine.java')
-rw-r--r--core/java/android/content/SyncStorageEngine.java23
1 files changed, 16 insertions, 7 deletions
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);
}