Fix issue with account existence check

It should only consider accounts that provide contacts.

Test: ran GoogleContactsTests

Bug 33627801

Change-Id: Ib3907fbede4623b88d7f89f102f4eef3883ffbad
diff --git a/src/com/android/contacts/model/AccountTypeManager.java b/src/com/android/contacts/model/AccountTypeManager.java
index ddbadfd..cbdccd5 100644
--- a/src/com/android/contacts/model/AccountTypeManager.java
+++ b/src/com/android/contacts/model/AccountTypeManager.java
@@ -667,7 +667,15 @@
     @Override
     public boolean hasNonLocalAccount() {
         final Account[] accounts = mAccountManager.getAccounts();
-        return accounts != null && accounts.length > 0;
+        if (accounts == null) {
+            return false;
+        }
+        for (Account account : accounts) {
+            if (mTypeProvider.supportsContactsSyncing(account.type)) {
+                return true;
+            }
+        }
+        return false;
     }
 
     /**
diff --git a/src/com/android/contacts/model/account/AccountTypeProvider.java b/src/com/android/contacts/model/account/AccountTypeProvider.java
index e5d0448..e30ae29 100644
--- a/src/com/android/contacts/model/account/AccountTypeProvider.java
+++ b/src/com/android/contacts/model/account/AccountTypeProvider.java
@@ -15,6 +15,8 @@
  */
 package com.android.contacts.model.account;
 
+import static com.android.contacts.util.DeviceLocalAccountTypeFactory.Util.isLocalAccountType;
+
 import android.accounts.AccountManager;
 import android.accounts.AuthenticatorDescription;
 import android.content.ContentResolver;
@@ -38,8 +40,6 @@
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
-import static com.android.contacts.util.DeviceLocalAccountTypeFactory.Util.isLocalAccountType;
-
 /**
  * Provides access to {@link AccountType}s with contact data
  *
@@ -150,6 +150,10 @@
         return true;
     }
 
+    public boolean supportsContactsSyncing(String accountType) {
+        return mAuthTypes.containsKey(accountType);
+    }
+
     private List<AccountType> loadTypes(String type) {
         final AuthenticatorDescription auth = mAuthTypes.get(type);
         if (auth == null) {