diff options
| author | Roman Birg <roman@cyngn.com> | 2014-11-11 14:45:11 -0800 |
|---|---|---|
| committer | Roman Birg <roman@cyngn.com> | 2014-11-13 22:59:48 +0000 |
| commit | 430baf7f2c94010c77be9893c1371d7858899e34 (patch) | |
| tree | 80cb3d72c0c3305c0e83b61cff9cdbe5a7e58110 | |
| parent | 38a90981e63fffca45ed3b0b6a6d16a3f98404ad (diff) | |
| download | packages_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.png | bin | 0 -> 443 bytes | |||
| -rw-r--r-- | res/drawable-mdpi/ic_hardware_phone_android.png | bin | 0 -> 385 bytes | |||
| -rw-r--r-- | res/drawable-xhdpi/ic_hardware_phone_android.png | bin | 0 -> 717 bytes | |||
| -rw-r--r-- | res/drawable-xxhdpi/ic_hardware_phone_android.png | bin | 0 -> 1042 bytes | |||
| -rw-r--r-- | src/com/android/contacts/common/model/AccountTypeManager.java | 13 | ||||
| -rw-r--r-- | src/com/android/contacts/common/model/account/PhoneAccountType.java | 5 |
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 Binary files differnew file mode 100644 index 00000000..c8866c55 --- /dev/null +++ b/res/drawable-hdpi/ic_hardware_phone_android.png diff --git a/res/drawable-mdpi/ic_hardware_phone_android.png b/res/drawable-mdpi/ic_hardware_phone_android.png Binary files differnew file mode 100644 index 00000000..30dcb7e7 --- /dev/null +++ b/res/drawable-mdpi/ic_hardware_phone_android.png diff --git a/res/drawable-xhdpi/ic_hardware_phone_android.png b/res/drawable-xhdpi/ic_hardware_phone_android.png Binary files differnew file mode 100644 index 00000000..8551ec45 --- /dev/null +++ b/res/drawable-xhdpi/ic_hardware_phone_android.png diff --git a/res/drawable-xxhdpi/ic_hardware_phone_android.png b/res/drawable-xxhdpi/ic_hardware_phone_android.png Binary files differnew file mode 100644 index 00000000..40ddcd0c --- /dev/null +++ b/res/drawable-xxhdpi/ic_hardware_phone_android.png 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); + } } |
