am 6f3e1e27: am 9a400fa4: Merge "initialize sync adapters that get installed while the system is running bug http://b/issue?id=2360782" into eclair

Merge commit '6f3e1e27a697d3e64bf73792c1007135319ff0d5'

* commit '6f3e1e27a697d3e64bf73792c1007135319ff0d5':
  initialize sync adapters that get installed while the system is running
diff --git a/core/java/android/content/SyncManager.java b/core/java/android/content/SyncManager.java
index c9077bc..699b61d 100644
--- a/core/java/android/content/SyncManager.java
+++ b/core/java/android/content/SyncManager.java
@@ -31,6 +31,7 @@
 import android.content.pm.ResolveInfo;
 import android.content.pm.RegisteredServicesCache;
 import android.content.pm.ProviderInfo;
+import android.content.pm.RegisteredServicesCacheListener;
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
 import android.os.Bundle;
@@ -325,6 +326,14 @@
         mSyncHandler = new SyncHandler(syncThread.getLooper());
 
         mSyncAdapters = new SyncAdaptersCache(mContext);
+        mSyncAdapters.setListener(new RegisteredServicesCacheListener<SyncAdapterType>() {
+            public void onServiceChanged(SyncAdapterType type, boolean removed) {
+                if (!removed) {
+                    scheduleSync(null, type.authority, null, 0 /* no delay */,
+                            false /* onlyThoseWithUnkownSyncableState */);
+                }
+            }
+        }, mSyncHandler);
 
         mSyncAlarmIntent = PendingIntent.getBroadcast(
                 mContext, 0 /* ignored */, new Intent(ACTION_SYNC_ALARM), 0);