summaryrefslogtreecommitdiffstats
path: root/chips/src/com/android/ex/chips/BaseRecipientAdapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'chips/src/com/android/ex/chips/BaseRecipientAdapter.java')
-rw-r--r--chips/src/com/android/ex/chips/BaseRecipientAdapter.java32
1 files changed, 17 insertions, 15 deletions
diff --git a/chips/src/com/android/ex/chips/BaseRecipientAdapter.java b/chips/src/com/android/ex/chips/BaseRecipientAdapter.java
index b6d4fa8..f742cf1 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;
@@ -556,8 +556,9 @@ public abstract class BaseRecipientAdapter extends BaseAdapter implements Filter
return new DefaultFilter();
}
- private List<DirectorySearchParams> setupOtherDirectories(Cursor directoryCursor) {
- final PackageManager packageManager = mContext.getPackageManager();
+ public static List<DirectorySearchParams> setupOtherDirectories(Context context,
+ Cursor directoryCursor, Account account) {
+ final PackageManager packageManager = context.getPackageManager();
final List<DirectorySearchParams> paramsList = new ArrayList<DirectorySearchParams>();
DirectorySearchParams preferredDirectory = null;
while (directoryCursor.moveToNext()) {
@@ -594,8 +595,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);
@@ -708,6 +709,11 @@ public abstract class BaseRecipientAdapter extends BaseAdapter implements Filter
return entries;
}
+
+ protected interface EntriesUpdatedObserver {
+ public void onChanged(List<RecipientEntry> entries);
+ }
+
public void registerUpdateObserver(EntriesUpdatedObserver observer) {
mEntriesUpdatedObserver = observer;
}
@@ -975,11 +981,7 @@ public abstract class BaseRecipientAdapter extends BaseAdapter implements Filter
return android.R.id.icon;
}
- /**
- * Interface called before the BaseRecipientAdapter updates recipient
- * results in the popup window.
- */
- protected interface EntriesUpdatedObserver {
- public void onChanged(List<RecipientEntry> entries);
+ public Account getAccount() {
+ return mAccount;
}
}