Skip to content

Commit 13f5fbc

Browse files
committed
allow sharing multiple handpicked contacts at once
1 parent dc308a9 commit 13f5fbc

File tree

4 files changed

+24
-4
lines changed

4 files changed

+24
-4
lines changed

app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ class ContactActivity : SimpleActivity() {
312312
}
313313

314314
private fun shareContact() {
315-
shareContact(contact!!)
315+
shareContacts(arrayListOf(contact!!))
316316
}
317317

318318
private fun showPhotoPlaceholder() {

app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import com.simplemobiletools.contacts.R
1919
import com.simplemobiletools.contacts.activities.SimpleActivity
2020
import com.simplemobiletools.contacts.extensions.config
2121
import com.simplemobiletools.contacts.extensions.openContact
22+
import com.simplemobiletools.contacts.extensions.shareContacts
2223
import com.simplemobiletools.contacts.helpers.ContactsHelper
2324
import com.simplemobiletools.contacts.interfaces.RefreshContactsListener
2425
import com.simplemobiletools.contacts.models.Contact
@@ -62,9 +63,10 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: MutableList<Co
6263
when (id) {
6364
R.id.cab_edit -> editContact()
6465
R.id.cab_select_all -> selectAll()
65-
R.id.cab_delete -> askConfirmDelete()
6666
R.id.cab_add_to_favorites -> addToFavorites()
67+
R.id.cab_share -> shareContacts()
6768
R.id.cab_remove -> removeFavorites()
69+
R.id.cab_delete -> askConfirmDelete()
6870
}
6971
}
7072

@@ -161,6 +163,19 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: MutableList<Co
161163
finishActMode()
162164
}
163165

166+
private fun shareContacts() {
167+
if (selectedPositions.isEmpty()) {
168+
return
169+
}
170+
171+
val contacts = ArrayList<Contact>()
172+
selectedPositions.forEach {
173+
contacts.add(contactItems[it])
174+
}
175+
176+
activity.shareContacts(contacts)
177+
}
178+
164179
override fun onViewRecycled(holder: ViewHolder?) {
165180
super.onViewRecycled(holder)
166181
if (!activity.isActivityDestroyed()) {

app/src/main/kotlin/com/simplemobiletools/contacts/extensions/Activity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,14 @@ fun SimpleActivity.showContactSourcePicker(currentSource: String, callback: (new
6868
}
6969
}
7070

71-
fun BaseSimpleActivity.shareContact(contact: Contact) {
71+
fun BaseSimpleActivity.shareContacts(contacts: ArrayList<Contact>) {
7272
val file = getTempFile()
7373
if (file == null) {
7474
toast(R.string.unknown_error_occurred)
7575
return
7676
}
7777

78-
VcfExporter().exportContacts(this, file, arrayListOf(contact)) {
78+
VcfExporter().exportContacts(this, file, contacts) {
7979
if (it == VcfExporter.ExportResult.EXPORT_OK) {
8080
val uri = getFilePublicUri(file, BuildConfig.APPLICATION_ID)
8181
shareUri(uri, BuildConfig.APPLICATION_ID)

app/src/main/res/menu/cab.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@
1616
android:icon="@drawable/ic_star_on"
1717
android:title="@string/add_to_favorites"
1818
app:showAsAction="ifRoom"/>
19+
<item
20+
android:id="@+id/cab_share"
21+
android:icon="@drawable/ic_share"
22+
android:title="@string/share"
23+
app:showAsAction="ifRoom"/>
1924
<item
2025
android:id="@+id/cab_delete"
2126
android:icon="@drawable/ic_delete"

0 commit comments

Comments
 (0)