summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkaiyiz <kaiyiz@codeaurora.org>2014-05-31 10:44:58 +0800
committerRoman Birg <roman@cyngn.com>2014-09-02 11:53:44 -0700
commit68b0639a7742b7d40da9659c1f8db901ab74b612 (patch)
treeccce86dc0f225cd0f9ab737834fad1a1137fcdcf
parent5f8e6163c1a82be04af89fbbe952e05be9d53e70 (diff)
downloadpackages_apps_Contacts-68b0639a7742b7d40da9659c1f8db901ab74b612.tar.gz
packages_apps_Contacts-68b0639a7742b7d40da9659c1f8db901ab74b612.tar.bz2
packages_apps_Contacts-68b0639a7742b7d40da9659c1f8db901ab74b612.zip
Contacts: Add user can choose contacts to share visible contacts
Add user can choose contacts to share visible contacts CRs-Fixed: 671741 Change-Id: I770a6493a9997072e4ec8d2727e49a79ce361440
-rw-r--r--src/com/android/contacts/activities/PeopleActivity.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index fdcf2dca3..b41c64b9a 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -72,6 +72,7 @@ import com.android.contacts.detail.ContactDetailLayoutController;
import com.android.contacts.detail.ContactDetailUpdatesFragment;
import com.android.contacts.detail.ContactLoaderFragment;
import com.android.contacts.detail.ContactLoaderFragment.ContactLoaderFragmentListener;
+import com.android.contacts.editor.MultiPickContactActivity;
import com.android.contacts.common.ContactsUtils;
import com.android.contacts.common.dialog.ClearFrequentsDialog;
import com.android.contacts.common.editor.SelectAccountDialogFragment;
@@ -1877,6 +1878,41 @@ public class PeopleActivity extends ContactsActivity
this.startActivity(exportIntent);
}
break;
+ case ImportExportDialogFragment.SUBACTIVITY_SHARE_VISILBLE_CONTACTS:
+ if (resultCode == RESULT_OK) {
+ Bundle result = data.getExtras().getBundle(RESULT_KEY);
+ StringBuilder uriListBuilder = new StringBuilder();
+ int index = 0;
+ int size =result.keySet().size();
+ // The premise of allowing to share contacts is that the
+ // amount of those contacts which have been selected to
+ // append and will be put into intent as extra data to
+ // deliver is not more that 2000, because too long arguments
+ // will cause TransactionTooLargeException in binder.
+ if (size > ImportExportDialogFragment.MAX_COUNT_ALLOW_SHARE_CONTACT) {
+ Toast.makeText(this, R.string.share_failed,
+ Toast.LENGTH_SHORT).show();
+ return;
+ }
+ Iterator<String> it = result.keySet().iterator();
+ String[] values = null;
+ while (it.hasNext()) {
+ if (index != 0) {
+ uriListBuilder.append(':');
+ }
+ values = result.getStringArray(it.next());
+ uriListBuilder.append(values[0]);
+ index++;
+ }
+ Uri uri = Uri.withAppendedPath(
+ Contacts.CONTENT_MULTI_VCARD_URI,
+ Uri.encode(uriListBuilder.toString()));
+ final Intent intent = new Intent(Intent.ACTION_SEND);
+ intent.setType(Contacts.CONTENT_VCARD_TYPE);
+ intent.putExtra(Intent.EXTRA_STREAM, uri);
+ startActivity(intent);
+ }
+ break;
}
}