diff options
Diffstat (limited to 'src/com/android/contacts')
-rwxr-xr-x[-rw-r--r--] | src/com/android/contacts/common/list/AccountFilterActivity.java | 3 | ||||
-rwxr-xr-x[-rw-r--r--] | src/com/android/contacts/common/list/ContactListFilterView.java | 12 | ||||
-rwxr-xr-x[-rw-r--r--] | src/com/android/contacts/common/list/CustomContactListFilterActivity.java | 19 | ||||
-rwxr-xr-x[-rw-r--r--] | src/com/android/contacts/common/model/account/AccountType.java | 44 | ||||
-rwxr-xr-x | src/com/android/contacts/common/util/AccountsListAdapter.java | 10 |
5 files changed, 78 insertions, 10 deletions
diff --git a/src/com/android/contacts/common/list/AccountFilterActivity.java b/src/com/android/contacts/common/list/AccountFilterActivity.java index 58450c65..9dba5362 100644..100755 --- a/src/com/android/contacts/common/list/AccountFilterActivity.java +++ b/src/com/android/contacts/common/list/AccountFilterActivity.java @@ -120,7 +120,8 @@ public class AccountFilterActivity extends Activity implements AdapterView.OnIte // Hide extensions with no raw_contacts. continue; } - Drawable icon = accountType != null ? accountType.getDisplayIcon(context) : null; + Drawable icon = accountType != null ? accountType.getDisplayIcon( + context, account.name) : null; accountFilters.add(ContactListFilter.createAccountFilter( account.type, account.name, account.dataSet, icon)); } diff --git a/src/com/android/contacts/common/list/ContactListFilterView.java b/src/com/android/contacts/common/list/ContactListFilterView.java index 4cea7558..075f1fb6 100644..100755 --- a/src/com/android/contacts/common/list/ContactListFilterView.java +++ b/src/com/android/contacts/common/list/ContactListFilterView.java @@ -28,6 +28,8 @@ import android.widget.TextView; import com.android.contacts.common.R; import com.android.contacts.common.model.AccountTypeManager; import com.android.contacts.common.model.account.AccountType; +import com.android.contacts.common.model.account.PhoneAccountType; +import com.android.contacts.common.model.account.SimAccountType; /** * Contact list filter parameters. @@ -113,7 +115,13 @@ public class ContactListFilterView extends LinearLayout { break; } case ContactListFilter.FILTER_TYPE_ACCOUNT: { - mAccountUserName.setVisibility(View.VISIBLE); + if (SimAccountType.ACCOUNT_TYPE.equals(mFilter.accountType) + || PhoneAccountType.ACCOUNT_TYPE + .equals(mFilter.accountType)) { + mAccountUserName.setVisibility(View.GONE); + } else { + mAccountUserName.setVisibility(View.VISIBLE); + } mIcon.setVisibility(View.VISIBLE); if (mFilter.icon != null) { mIcon.setImageDrawable(mFilter.icon); @@ -123,7 +131,7 @@ public class ContactListFilterView extends LinearLayout { final AccountType accountType = accountTypes.getAccountType(mFilter.accountType, mFilter.dataSet); mAccountUserName.setText(mFilter.accountName); - mAccountType.setText(accountType.getDisplayLabel(getContext())); + mAccountType.setText(accountType.getDisplayLabel(getContext(),mFilter.accountName)); break; } } diff --git a/src/com/android/contacts/common/list/CustomContactListFilterActivity.java b/src/com/android/contacts/common/list/CustomContactListFilterActivity.java index 6a72c3f4..b0bf9c3d 100644..100755 --- a/src/com/android/contacts/common/list/CustomContactListFilterActivity.java +++ b/src/com/android/contacts/common/list/CustomContactListFilterActivity.java @@ -55,11 +55,14 @@ import android.widget.ExpandableListView.ExpandableListContextMenuInfo; import android.widget.TextView; import com.android.contacts.common.R; +import com.android.contacts.common.MoreContactUtils; import com.android.contacts.common.model.AccountTypeManager; import com.android.contacts.common.model.ValuesDelta; import com.android.contacts.common.model.account.AccountType; import com.android.contacts.common.model.account.AccountWithDataSet; import com.android.contacts.common.model.account.GoogleAccountType; +import com.android.contacts.common.model.account.PhoneAccountType; +import com.android.contacts.common.model.account.SimAccountType; import com.android.contacts.common.util.EmptyService; import com.android.contacts.common.util.LocalizedNameResolver; import com.android.contacts.common.util.WeakAsyncTask; @@ -587,11 +590,17 @@ public class CustomContactListFilterActivity extends Activity final AccountType accountType = mAccountTypes.getAccountType( account.mType, account.mDataSet); - - text1.setText(account.mName); - text1.setVisibility(account.mName == null ? View.GONE : View.VISIBLE); - text2.setText(accountType.getDisplayLabel(mContext)); - + if (SimAccountType.ACCOUNT_TYPE.equals(account.mType) + || PhoneAccountType.ACCOUNT_TYPE.equals(account.mType)) { + text1.setVisibility(View.VISIBLE); + text1.setText(accountType.getDisplayLabel(mContext, account.mName)); + text2.setVisibility(View.GONE); + } else { + text1.setText(account.mName); + text1.setVisibility(account.mName == null ? View.GONE : View.VISIBLE); + text2.setText(accountType.getDisplayLabel(mContext, account.mName)); + text2.setVisibility(View.VISIBLE); + } return convertView; } diff --git a/src/com/android/contacts/common/model/account/AccountType.java b/src/com/android/contacts/common/model/account/AccountType.java index 560d33d0..f7b9772c 100644..100755 --- a/src/com/android/contacts/common/model/account/AccountType.java +++ b/src/com/android/contacts/common/model/account/AccountType.java @@ -27,6 +27,7 @@ import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.CommonDataKinds.StructuredPostal; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.RawContacts; +import android.telephony.TelephonyManager; import android.util.Log; import android.view.inputmethod.EditorInfo; import android.widget.EditText; @@ -34,6 +35,7 @@ import android.widget.EditText; import com.android.contacts.common.MoreContactUtils; import com.android.contacts.common.R; import com.android.contacts.common.model.dataitem.DataKind; +import com.android.internal.telephony.PhoneConstants; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -304,9 +306,27 @@ public abstract class AccountType { return label; } + public CharSequence getDisplayLabel(Context context, String accountName) { + if ((SimAccountType.ACCOUNT_TYPE).equals(accountType)) { + final int slot = MoreContactUtils.getSubscription(accountType, + accountName); + return MoreContactUtils.getMultiSimAliasesName(context, slot); + } + return getDisplayLabel(context); + } + + /** + * Gets an icon associated with a particular account type. If none found, return null. + * + * @param accountType the type of account + * @return a drawable for the icon or null if one cannot be found. + */ public Drawable getDisplayIcon(Context context) { Drawable icon = null; updateAuthDescriptions(context); + if (PhoneAccountType.ACCOUNT_TYPE.equals(accountType)) { + return context.getResources().getDrawable(R.drawable.phone_account); + } if (mTypeToAuthDescription.containsKey(accountType)) { try { AuthenticatorDescription desc = mTypeToAuthDescription @@ -324,6 +344,30 @@ public abstract class AccountType { return icon; } + public Drawable getDisplayIcon(Context context, String accountName) { + if ((SimAccountType.ACCOUNT_TYPE).equals(accountType)) { + final int slot = MoreContactUtils.getSubscription(accountType, + accountName); + if (TelephonyManager.getDefault().isMultiSimEnabled()) { + switch (slot) { + case PhoneConstants.SUB1: + return context.getResources().getDrawable( + R.drawable.sim1_account); + case PhoneConstants.SUB2: + return context.getResources().getDrawable( + R.drawable.sim2_account); + default: + return context.getResources().getDrawable( + R.drawable.simcard_account); + } + } else { + return context.getResources().getDrawable( + R.drawable.simcard_account); + } + } + return getDisplayIcon(context); + } + /** * Whether or not groups created under this account type have editable membership lists. */ diff --git a/src/com/android/contacts/common/util/AccountsListAdapter.java b/src/com/android/contacts/common/util/AccountsListAdapter.java index af526cc9..0b2e24af 100755 --- a/src/com/android/contacts/common/util/AccountsListAdapter.java +++ b/src/com/android/contacts/common/util/AccountsListAdapter.java @@ -108,14 +108,20 @@ public final class AccountsListAdapter extends BaseAdapter { final AccountWithDataSet account = mAccounts.get(position); final AccountType accountType = mAccountTypes.getAccountType(account.type, account.dataSet); - text1.setText(accountType.getDisplayLabel(mContext)); + text1.setText(accountType.getDisplayLabel(mContext, account.name)); // For email addresses, we don't want to truncate at end, which might cut off the domain // name. + if (SimAccountType.ACCOUNT_TYPE.equals(account.type) + || PhoneAccountType.ACCOUNT_TYPE.equals(account.type)) { + text2.setVisibility(View.GONE); + } else { + text2.setVisibility(View.VISIBLE); + } text2.setText(account.name); text2.setEllipsize(TruncateAt.MIDDLE); - icon.setImageDrawable(accountType.getDisplayIcon(mContext)); + icon.setImageDrawable(accountType.getDisplayIcon(mContext, account.name)); return resultView; } |