Fix automatic backup

Closes https://github.com/FossifyOrg/Contacts/issues/31
This commit is contained in:
Naveen 2024-01-23 01:09:50 +05:30
parent 16d296fd7d
commit 199889b12e
No known key found for this signature in database
GPG key ID: 0E155DAD31671DA3
2 changed files with 16 additions and 14 deletions

View file

@ -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<Contact>,
showExportingToast = false
) { exportResult ->
if (exportResult == VcfExporter.ExportResult.EXPORT_FAIL) {
toast(org.fossify.commons.R.string.exporting_failed)
}
}
config.lastAutoBackupTime = DateTime.now().millis

View file

@ -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<Contact>,
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<VCard>()
@ -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(