Skip to content

Commit de864f3

Browse files
committed
fix exporting contacts on sd cards
1 parent b7d7eb5 commit de864f3

File tree

3 files changed

+21
-19
lines changed

3 files changed

+21
-19
lines changed

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -374,8 +374,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
374374
if (contacts.isEmpty()) {
375375
toast(R.string.no_entries_for_exporting)
376376
} else {
377-
toast(R.string.exporting)
378-
VcfExporter().exportContacts(this, file, contacts as ArrayList<Contact>) {
377+
VcfExporter().exportContacts(this, file, contacts as ArrayList<Contact>, true) {
379378
toast(when (it) {
380379
VcfExporter.ExportResult.EXPORT_OK -> R.string.exporting_successful
381380
VcfExporter.ExportResult.EXPORT_PARTIAL -> R.string.exporting_some_entries_failed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ fun BaseSimpleActivity.shareContacts(contacts: ArrayList<Contact>) {
9090
return
9191
}
9292

93-
VcfExporter().exportContacts(this, file, contacts) {
93+
VcfExporter().exportContacts(this, file, contacts, false) {
9494
if (it == VcfExporter.ExportResult.EXPORT_OK) {
9595
sharePathIntent(file.absolutePath, BuildConfig.APPLICATION_ID)
9696
} else {

app/src/main/kotlin/com/simplemobiletools/contacts/helpers/VcfExporter.kt

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,9 @@ import android.provider.ContactsContract.CommonDataKinds
66
import android.provider.MediaStore
77
import android.util.Base64
88
import com.simplemobiletools.commons.activities.BaseSimpleActivity
9-
import com.simplemobiletools.commons.extensions.getFileOutputStream
10-
import com.simplemobiletools.commons.extensions.showErrorToast
11-
import com.simplemobiletools.commons.extensions.toFileDirItem
12-
import com.simplemobiletools.commons.extensions.writeLn
13-
import com.simplemobiletools.contacts.helpers.VcfExporter.ExportResult.*
9+
import com.simplemobiletools.commons.extensions.*
10+
import com.simplemobiletools.contacts.R
11+
import com.simplemobiletools.contacts.helpers.VcfExporter.ExportResult.EXPORT_FAIL
1412
import com.simplemobiletools.contacts.models.Contact
1513
import java.io.BufferedWriter
1614
import java.io.ByteArrayOutputStream
@@ -26,14 +24,18 @@ class VcfExporter {
2624
private var contactsExported = 0
2725
private var contactsFailed = 0
2826

29-
fun exportContacts(activity: BaseSimpleActivity, file: File, contacts: ArrayList<Contact>, callback: (result: ExportResult) -> Unit) {
30-
try {
31-
activity.getFileOutputStream(file.toFileDirItem(activity)) {
27+
fun exportContacts(activity: BaseSimpleActivity, file: File, contacts: ArrayList<Contact>, showExportingToast: Boolean, callback: (result: ExportResult) -> Unit) {
28+
activity.getFileOutputStream(file.toFileDirItem(activity), true) {
29+
try {
3230
if (it == null) {
3331
callback(EXPORT_FAIL)
3432
return@getFileOutputStream
3533
}
3634

35+
if (showExportingToast) {
36+
activity.toast(R.string.exporting)
37+
}
38+
3739
it.bufferedWriter().use { out ->
3840
for (contact in contacts) {
3941
out.writeLn(BEGIN_VCARD)
@@ -88,16 +90,17 @@ class VcfExporter {
8890
contactsExported++
8991
}
9092
}
93+
94+
} catch (e: Exception) {
95+
activity.showErrorToast(e)
9196
}
92-
} catch (e: Exception) {
93-
activity.showErrorToast(e)
94-
}
9597

96-
callback(when {
97-
contactsExported == 0 -> EXPORT_FAIL
98-
contactsFailed > 0 -> EXPORT_PARTIAL
99-
else -> EXPORT_OK
100-
})
98+
callback(when {
99+
contactsExported == 0 -> EXPORT_FAIL
100+
contactsFailed > 0 -> ExportResult.EXPORT_PARTIAL
101+
else -> ExportResult.EXPORT_OK
102+
})
103+
}
101104
}
102105

103106
private fun addBitmap(bitmap: Bitmap, out: BufferedWriter) {

0 commit comments

Comments
 (0)