Fix automatic backup
Closes https://github.com/FossifyOrg/Contacts/issues/31
This commit is contained in:
parent
16d296fd7d
commit
199889b12e
2 changed files with 16 additions and 14 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
Loading…
Reference in a new issue