summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoman Birg <roman@cyngn.com>2014-11-11 14:45:11 -0800
committerRoman Birg <roman@cyngn.com>2014-11-13 22:59:48 +0000
commit430baf7f2c94010c77be9893c1371d7858899e34 (patch)
tree80cb3d72c0c3305c0e83b61cff9cdbe5a7e58110
parent38a90981e63fffca45ed3b0b6a6d16a3f98404ad (diff)
downloadpackages_apps_ContactsCommon-430baf7f2c94010c77be9893c1371d7858899e34.tar.gz
packages_apps_ContactsCommon-430baf7f2c94010c77be9893c1371d7858899e34.tar.bz2
packages_apps_ContactsCommon-430baf7f2c94010c77be9893c1371d7858899e34.zip
ContactsCommon: always create local phone AccountType
We assumed this was created by an adapter, but no adapter exists to create local contacts. This account type is always available, and any new contacts created will properly be added to this account type. Change-Id: Id2b68ade6ee26b63b6e2eb5cdc65ba04b2b52f5a Signed-off-by: Roman Birg <roman@cyngn.com>
-rw-r--r--res/drawable-hdpi/ic_hardware_phone_android.pngbin0 -> 443 bytes
-rw-r--r--res/drawable-mdpi/ic_hardware_phone_android.pngbin0 -> 385 bytes
-rw-r--r--res/drawable-xhdpi/ic_hardware_phone_android.pngbin0 -> 717 bytes
-rw-r--r--res/drawable-xxhdpi/ic_hardware_phone_android.pngbin0 -> 1042 bytes
-rw-r--r--src/com/android/contacts/common/model/AccountTypeManager.java13
-rw-r--r--src/com/android/contacts/common/model/account/PhoneAccountType.java5
6 files changed, 17 insertions, 1 deletions
diff --git a/res/drawable-hdpi/ic_hardware_phone_android.png b/res/drawable-hdpi/ic_hardware_phone_android.png
new file mode 100644
index 00000000..c8866c55
--- /dev/null
+++ b/res/drawable-hdpi/ic_hardware_phone_android.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_hardware_phone_android.png b/res/drawable-mdpi/ic_hardware_phone_android.png
new file mode 100644
index 00000000..30dcb7e7
--- /dev/null
+++ b/res/drawable-mdpi/ic_hardware_phone_android.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_hardware_phone_android.png b/res/drawable-xhdpi/ic_hardware_phone_android.png
new file mode 100644
index 00000000..8551ec45
--- /dev/null
+++ b/res/drawable-xhdpi/ic_hardware_phone_android.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_hardware_phone_android.png b/res/drawable-xxhdpi/ic_hardware_phone_android.png
new file mode 100644
index 00000000..40ddcd0c
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_hardware_phone_android.png
Binary files differ
diff --git a/src/com/android/contacts/common/model/AccountTypeManager.java b/src/com/android/contacts/common/model/AccountTypeManager.java
index 955242c3..0aa2f4c2 100644
--- a/src/com/android/contacts/common/model/AccountTypeManager.java
+++ b/src/com/android/contacts/common/model/AccountTypeManager.java
@@ -414,6 +414,16 @@ class AccountTypeManagerImpl extends AccountTypeManager
final SyncAdapterType[] syncs = ContentResolver.getSyncAdapterTypes();
final AuthenticatorDescription[] auths = am.getAuthenticatorTypes();
+
+ // add local account type. we do not need a sync adapter for local contacts.
+ AccountType localAccount = new PhoneAccountType(mContext, mContext.getPackageName());
+ localAccount.titleRes = com.android.contacts.common.R.string.local_storage_account;
+ addAccountType(localAccount, accountTypesByTypeAndDataSet, accountTypesByType);
+ AccountWithDataSet phoneAccountType = new AccountWithDataSet(SimContactsConstants.PHONE_NAME,
+ localAccount.accountType, localAccount.dataSet);
+ allAccounts.add(phoneAccountType);
+ contactWritableAccounts.add(phoneAccountType);
+
// First process sync adapters to find any that provide contact data.
for (SyncAdapterType sync : syncs) {
if (!ContactsContract.AUTHORITY.equals(sync.authority)) {
@@ -438,7 +448,8 @@ class AccountTypeManagerImpl extends AccountTypeManager
} else if (SimAccountType.ACCOUNT_TYPE.equals(type)) {
accountType = new SimAccountType(mContext, auth.packageName);
} else if (PhoneAccountType.ACCOUNT_TYPE.equals(type)) {
- accountType = new PhoneAccountType(mContext, auth.packageName);
+ // handled above manually.
+ continue;
} else {
// TODO: use syncadapter package instead, since it provides resources
Log.d(TAG, "Registering external account type=" + type
diff --git a/src/com/android/contacts/common/model/account/PhoneAccountType.java b/src/com/android/contacts/common/model/account/PhoneAccountType.java
index c86759a6..f1eabca3 100644
--- a/src/com/android/contacts/common/model/account/PhoneAccountType.java
+++ b/src/com/android/contacts/common/model/account/PhoneAccountType.java
@@ -32,6 +32,7 @@ package com.android.contacts.common.model.account;
import android.content.Context;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
import android.os.SystemProperties;
import android.provider.ContactsContract.CommonDataKinds.Email;
import android.provider.ContactsContract.CommonDataKinds.StructuredName;
@@ -95,4 +96,8 @@ public class PhoneAccountType extends BaseAccountType{
return true;
}
+ @Override
+ public Drawable getDisplayIcon(Context context) {
+ return context.getResources().getDrawable(R.drawable.ic_hardware_phone_android);
+ }
}