From 0cf347e69473d2259194257d5a4b9aa103c8e448 Mon Sep 17 00:00:00 2001 From: mindyp Date: Mon, 10 Dec 2012 11:58:29 -0800 Subject: Extend reverse lookup to also check GAL Fixes b/7499733 gal address sometimes treated as message-only address in chips Change-Id: I3fa79a43c672b1d2eac72dae6a9dfaf8701be977 --- .../com/android/ex/chips/BaseRecipientAdapter.java | 23 +++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'chips/src/com/android/ex/chips/BaseRecipientAdapter.java') diff --git a/chips/src/com/android/ex/chips/BaseRecipientAdapter.java b/chips/src/com/android/ex/chips/BaseRecipientAdapter.java index 53f3625..68efa0f 100644 --- a/chips/src/com/android/ex/chips/BaseRecipientAdapter.java +++ b/chips/src/com/android/ex/chips/BaseRecipientAdapter.java @@ -73,12 +73,12 @@ public abstract class BaseRecipientAdapter extends BaseAdapter implements Filter * The number of extra entries requested to allow for duplicates. Duplicates * are removed from the overall result. */ - private static final int ALLOWANCE_FOR_DUPLICATES = 5; + static final int ALLOWANCE_FOR_DUPLICATES = 5; // This is ContactsContract.PRIMARY_ACCOUNT_NAME. Available from ICS as hidden - private static final String PRIMARY_ACCOUNT_NAME = "name_for_primary_account"; + static final String PRIMARY_ACCOUNT_NAME = "name_for_primary_account"; // This is ContactsContract.PRIMARY_ACCOUNT_TYPE. Available from ICS as hidden - private static final String PRIMARY_ACCOUNT_TYPE = "type_for_primary_account"; + static final String PRIMARY_ACCOUNT_TYPE = "type_for_primary_account"; /** The number of photos cached in this Adapter. */ private static final int PHOTO_CACHE_SIZE = 20; @@ -118,7 +118,7 @@ public abstract class BaseRecipientAdapter extends BaseAdapter implements Filter public static final int PHOTO = 0; } - private static class DirectoryListQuery { + protected static class DirectoryListQuery { public static final Uri URI = Uri.withAppendedPath(ContactsContract.AUTHORITY_URI, "directories"); @@ -250,7 +250,7 @@ public abstract class BaseRecipientAdapter extends BaseAdapter implements Filter directoryCursor = mContentResolver.query( DirectoryListQuery.URI, DirectoryListQuery.PROJECTION, null, null, null); - paramsList = setupOtherDirectories(directoryCursor); + paramsList = setupOtherDirectories(mContext, directoryCursor, mAccount); } else { // We don't need to search other directories. paramsList = null; @@ -554,8 +554,9 @@ public abstract class BaseRecipientAdapter extends BaseAdapter implements Filter return new DefaultFilter(); } - private List setupOtherDirectories(Cursor directoryCursor) { - final PackageManager packageManager = mContext.getPackageManager(); + public static List setupOtherDirectories(Context context, + Cursor directoryCursor, Account account) { + final PackageManager packageManager = context.getPackageManager(); final List paramsList = new ArrayList(); DirectorySearchParams preferredDirectory = null; while (directoryCursor.moveToNext()) { @@ -592,8 +593,8 @@ public abstract class BaseRecipientAdapter extends BaseAdapter implements Filter // If an account has been provided and we found a directory that // corresponds to that account, place that directory second, directly // underneath the local contacts. - if (mAccount != null && mAccount.name.equals(params.accountName) && - mAccount.type.equals(params.accountType)) { + if (account != null && account.name.equals(params.accountName) && + account.type.equals(params.accountType)) { preferredDirectory = params; } else { paramsList.add(params); @@ -967,4 +968,8 @@ public abstract class BaseRecipientAdapter extends BaseAdapter implements Filter protected int getPhotoId() { return android.R.id.icon; } + + public Account getAccount() { + return mAccount; + } } -- cgit v1.2.3