summaryrefslogtreecommitdiffstats
path: root/src/com/android/contacts
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/contacts')
-rwxr-xr-x[-rw-r--r--]src/com/android/contacts/common/list/AccountFilterActivity.java3
-rwxr-xr-x[-rw-r--r--]src/com/android/contacts/common/list/ContactListFilterView.java12
-rwxr-xr-x[-rw-r--r--]src/com/android/contacts/common/list/CustomContactListFilterActivity.java19
-rwxr-xr-x[-rw-r--r--]src/com/android/contacts/common/model/account/AccountType.java44
-rwxr-xr-xsrc/com/android/contacts/common/util/AccountsListAdapter.java10
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;
}