Merge "Fix for "Share visible contacts" in Favorites tab." into ub-contactsdialer-a-dev
diff --git a/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java b/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java
index 823d522..7d92bc8 100644
--- a/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java
+++ b/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java
@@ -62,10 +62,16 @@
implements SelectAccountDialogFragment.Listener {
public static final String TAG = "ImportExportDialogFragment";
+ public static final int EXPORT_MODE_FAVORITES = 0;
+ public static final int EXPORT_MODE_ALL_CONTACTS = 1;
+ public static final int EXPORT_MODE_DEFAULT = -1;
+
private static final String KEY_RES_ID = "resourceId";
private static final String KEY_SUBSCRIPTION_ID = "subscriptionId";
private static final String ARG_CONTACTS_ARE_AVAILABLE = "CONTACTS_ARE_AVAILABLE";
+ private static int mExportMode = EXPORT_MODE_DEFAULT;
+
private final String[] LOOKUP_PROJECTION = new String[] {
Contacts.LOOKUP_KEY
};
@@ -74,13 +80,14 @@
/** Preferred way to show this dialog */
public static void show(FragmentManager fragmentManager, boolean contactsAreAvailable,
- Class callingActivity) {
+ Class callingActivity, int exportMode) {
final ImportExportDialogFragment fragment = new ImportExportDialogFragment();
Bundle args = new Bundle();
args.putBoolean(ARG_CONTACTS_ARE_AVAILABLE, contactsAreAvailable);
args.putString(VCardCommonArguments.ARG_CALLING_ACTIVITY, callingActivity.getName());
fragment.setArguments(args);
fragment.show(fragmentManager, ImportExportDialogFragment.TAG);
+ mExportMode = exportMode;
}
@Override
@@ -202,13 +209,20 @@
private void doShareVisibleContacts() {
try {
// TODO move the query into a loader and do this in a background thread
- final Cursor cursor = getActivity().getContentResolver().query(Contacts.CONTENT_URI,
- LOOKUP_PROJECTION, Contacts.IN_VISIBLE_GROUP + "!=0", null, null);
+ final Cursor cursor;
+ if (mExportMode == EXPORT_MODE_FAVORITES) {
+ cursor = getActivity().getContentResolver().query(Contacts.CONTENT_STREQUENT_URI,
+ LOOKUP_PROJECTION, null, null,
+ Contacts.DISPLAY_NAME + " COLLATE NOCASE ASC");
+ } else { // EXPORT_MODE_ALL_CONTACTS
+ cursor = getActivity().getContentResolver().query(Contacts.CONTENT_URI,
+ LOOKUP_PROJECTION, Contacts.IN_VISIBLE_GROUP + "!=0", null, null);
+ }
if (cursor != null) {
try {
if (!cursor.moveToFirst()) {
- Toast.makeText(getActivity(), R.string.share_error, Toast.LENGTH_SHORT)
- .show();
+ Toast.makeText(getActivity(), R.string.no_contact_to_share,
+ Toast.LENGTH_SHORT).show();
return;
}