summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-07-15 18:28:16 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-07-15 18:28:16 -0700
commit49763e42460d87c51485311507a45e5da636f2a5 (patch)
tree2b5f8aec334d335227aef609119965cd740fba68 /core/java/android
parentc3350ab5b2ce01411c9a1b304e4462aa9e759dd8 (diff)
parent8294fadb155a33da8a40d8412afb35e6b424afcb (diff)
downloadframeworks_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.java2
-rw-r--r--core/java/android/content/SyncStorageEngine.java23
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);
}