diff --git a/app/src/main/kotlin/org/fossify/contacts/extensions/Context.kt b/app/src/main/kotlin/org/fossify/contacts/extensions/Context.kt index dda7ef169..44759fcfc 100644 --- a/app/src/main/kotlin/org/fossify/contacts/extensions/Context.kt +++ b/app/src/main/kotlin/org/fossify/contacts/extensions/Context.kt @@ -10,10 +10,12 @@ import androidx.core.app.AlarmManagerCompat import androidx.core.content.FileProvider import org.fossify.commons.extensions.* import org.fossify.commons.helpers.* +import org.fossify.commons.models.contacts.Contact import org.fossify.contacts.BuildConfig import org.fossify.contacts.R import org.fossify.contacts.helpers.AUTOMATIC_BACKUP_REQUEST_CODE import org.fossify.contacts.helpers.Config +import org.fossify.contacts.helpers.VcfExporter import org.fossify.contacts.helpers.getNextAutoBackupTime import org.fossify.contacts.helpers.getPreviousAutoBackupTime import org.fossify.contacts.receivers.AutomaticBackupReceiver @@ -129,15 +131,15 @@ fun Context.backupContacts() { return@getContactsToExport } - val exportResult = try { - ContactsHelper(this).exportContacts(contactsToBackup, outputStream) - } catch (e: Exception) { - showErrorToast(e) - } - - when (exportResult) { - ExportResult.EXPORT_OK -> toast(org.fossify.commons.R.string.exporting_successful) - else -> toast(org.fossify.commons.R.string.exporting_failed) + VcfExporter().exportContacts( + context = this, + outputStream = outputStream, + contacts = contactsToBackup.toMutableList() as ArrayList, + showExportingToast = false + ) { exportResult -> + if (exportResult == VcfExporter.ExportResult.EXPORT_FAIL) { + toast(org.fossify.commons.R.string.exporting_failed) + } } config.lastAutoBackupTime = DateTime.now().millis diff --git a/app/src/main/kotlin/org/fossify/contacts/helpers/VcfExporter.kt b/app/src/main/kotlin/org/fossify/contacts/helpers/VcfExporter.kt index 9e60f8c48..9b3ff4432 100644 --- a/app/src/main/kotlin/org/fossify/contacts/helpers/VcfExporter.kt +++ b/app/src/main/kotlin/org/fossify/contacts/helpers/VcfExporter.kt @@ -1,5 +1,6 @@ package org.fossify.contacts.helpers +import android.content.Context import android.net.Uri import android.provider.ContactsContract.CommonDataKinds.Email import android.provider.ContactsContract.CommonDataKinds.Event @@ -12,7 +13,6 @@ import ezvcard.VCard import ezvcard.VCardVersion import ezvcard.parameter.ImageType import ezvcard.property.* -import org.fossify.commons.activities.BaseSimpleActivity import org.fossify.commons.extensions.getByteArray import org.fossify.commons.extensions.getDateTimeFromDateString import org.fossify.commons.extensions.showErrorToast @@ -31,7 +31,7 @@ class VcfExporter { private var contactsFailed = 0 fun exportContacts( - activity: BaseSimpleActivity, + context: Context, outputStream: OutputStream?, contacts: ArrayList, showExportingToast: Boolean, @@ -45,7 +45,7 @@ class VcfExporter { } if (showExportingToast) { - activity.toast(org.fossify.commons.R.string.exporting) + context.toast(org.fossify.commons.R.string.exporting) } val cards = ArrayList() @@ -146,7 +146,7 @@ class VcfExporter { } if (contact.thumbnailUri.isNotEmpty()) { - val photoByteArray = MediaStore.Images.Media.getBitmap(activity.contentResolver, Uri.parse(contact.thumbnailUri)).getByteArray() + val photoByteArray = MediaStore.Images.Media.getBitmap(context.contentResolver, Uri.parse(contact.thumbnailUri)).getByteArray() val photo = Photo(photoByteArray, ImageType.JPEG) card.addPhoto(photo) } @@ -166,7 +166,7 @@ class VcfExporter { Ezvcard.write(cards).version(version).go(outputStream) } catch (e: Exception) { - activity.showErrorToast(e) + context.showErrorToast(e) } callback(