AbstractSyncableContentProvider must only call onAccountsChanged with GAIA accounts

Currently, ASCP calls onAccountsChanged with an array of ALL accounts, but
ContactsProvider and CalendarProvider assume these are all GAIA accounts.
This can cause a looping crash in acore, so the code has been changed to
only pass an array of GAIA accounts...
diff --git a/core/java/android/content/AbstractSyncableContentProvider.java b/core/java/android/content/AbstractSyncableContentProvider.java
index db73dd5..218f501 100644
--- a/core/java/android/content/AbstractSyncableContentProvider.java
+++ b/core/java/android/content/AbstractSyncableContentProvider.java
@@ -165,6 +165,20 @@
                         // Some providers override onAccountsChanged(); give them a database to
                         // work with.
                         mDb = mOpenHelper.getWritableDatabase();
+                        // Only call onAccountsChanged on GAIA accounts; otherwise, the contacts and
+                        // calendar providers will choke as they try to sync unknown accounts with
+                        // AbstractGDataSyncAdapter, which will put acore into a crash loop
+                        ArrayList<Account> gaiaAccounts = new ArrayList<Account>();
+                        for (Account acct: accounts) {
+                            if (acct.mType.equals("com.google.GAIA")) {
+                                gaiaAccounts.add(acct);
+                            }
+                        }
+                        accounts = new Account[gaiaAccounts.size()];
+                        int i = 0;
+                        for (Account acct: gaiaAccounts) {
+                            accounts[i++] = acct;
+                        }
                         onAccountsChanged(accounts);
                         TempProviderSyncAdapter syncAdapter = getTempProviderSyncAdapter();
                         if (syncAdapter != null) {
@@ -175,7 +189,6 @@
 
         return true;
     }
-
     /**
      * Get a non-persistent instance of this content provider.
      * You must call {@link #close} on the returned