am 0203b9ba: am 1ada7ad6: Merge "Correcting issue where businesses with business photo URLs show a person avatar until the photo loads."
* commit '0203b9bafc90c2aa3f8fe42eeed8e5bcadbacf4a':
diff --git a/src/com/android/contacts/common/model/account/ExternalAccountType.java b/src/com/android/contacts/common/model/account/ExternalAccountType.java
index 0097592..e4cef52 100644
--- a/src/com/android/contacts/common/model/account/ExternalAccountType.java
+++ b/src/com/android/contacts/common/model/account/ExternalAccountType.java
@@ -48,7 +48,17 @@
public class ExternalAccountType extends BaseAccountType {
private static final String TAG = "ExternalAccountType";
- private static final String METADATA_CONTACTS = "android.provider.CONTACTS_STRUCTURE";
+ /**
+ * The metadata name for so-called "contacts.xml".
+ *
+ * On LMP and later, we also accept the "alternate" name.
+ * This is to allow sync adapters to have a contacts.xml without making it visible on older
+ * platforms.
+ */
+ private static final String[] METADATA_CONTACTS_NAMES = new String[] {
+ "android.provider.ALTERNATE_CONTACTS_STRUCTURE",
+ "android.provider.CONTACTS_STRUCTURE"
+ };
private static final String TAG_CONTACTS_SOURCE_LEGACY = "ContactsSource";
private static final String TAG_CONTACTS_ACCOUNT_TYPE = "ContactsAccountType";
@@ -187,10 +197,17 @@
PackageInfo packageInfo = pm.getPackageInfo(resPackageName,
PackageManager.GET_SERVICES|PackageManager.GET_META_DATA);
for (ServiceInfo serviceInfo : packageInfo.services) {
- final XmlResourceParser parser = serviceInfo.loadXmlMetaData(pm,
- METADATA_CONTACTS);
- if (parser != null) {
- return parser;
+ for (String metadataName : METADATA_CONTACTS_NAMES) {
+ final XmlResourceParser parser = serviceInfo.loadXmlMetaData(pm,
+ metadataName);
+ if (parser != null) {
+ if (Log.isLoggable(TAG, Log.DEBUG)) {
+ Log.d(TAG, String.format("Metadata loaded from: %s, %s, %s",
+ serviceInfo.packageName, serviceInfo.name,
+ metadataName));
+ }
+ return parser;
+ }
}
}
// Package was found, but that doesn't contain the CONTACTS_STRUCTURE metadata.