Merge pull request #34 from FossifyOrg/fix_automatic_import
Fix automatic backup
This commit is contained in:
commit
25f9dbf5ba
2 changed files with 16 additions and 14 deletions
|
|
@ -10,10 +10,12 @@ import androidx.core.app.AlarmManagerCompat
|
||||||
import androidx.core.content.FileProvider
|
import androidx.core.content.FileProvider
|
||||||
import org.fossify.commons.extensions.*
|
import org.fossify.commons.extensions.*
|
||||||
import org.fossify.commons.helpers.*
|
import org.fossify.commons.helpers.*
|
||||||
|
import org.fossify.commons.models.contacts.Contact
|
||||||
import org.fossify.contacts.BuildConfig
|
import org.fossify.contacts.BuildConfig
|
||||||
import org.fossify.contacts.R
|
import org.fossify.contacts.R
|
||||||
import org.fossify.contacts.helpers.AUTOMATIC_BACKUP_REQUEST_CODE
|
import org.fossify.contacts.helpers.AUTOMATIC_BACKUP_REQUEST_CODE
|
||||||
import org.fossify.contacts.helpers.Config
|
import org.fossify.contacts.helpers.Config
|
||||||
|
import org.fossify.contacts.helpers.VcfExporter
|
||||||
import org.fossify.contacts.helpers.getNextAutoBackupTime
|
import org.fossify.contacts.helpers.getNextAutoBackupTime
|
||||||
import org.fossify.contacts.helpers.getPreviousAutoBackupTime
|
import org.fossify.contacts.helpers.getPreviousAutoBackupTime
|
||||||
import org.fossify.contacts.receivers.AutomaticBackupReceiver
|
import org.fossify.contacts.receivers.AutomaticBackupReceiver
|
||||||
|
|
@ -129,15 +131,15 @@ fun Context.backupContacts() {
|
||||||
return@getContactsToExport
|
return@getContactsToExport
|
||||||
}
|
}
|
||||||
|
|
||||||
val exportResult = try {
|
VcfExporter().exportContacts(
|
||||||
ContactsHelper(this).exportContacts(contactsToBackup, outputStream)
|
context = this,
|
||||||
} catch (e: Exception) {
|
outputStream = outputStream,
|
||||||
showErrorToast(e)
|
contacts = contactsToBackup.toMutableList() as ArrayList<Contact>,
|
||||||
}
|
showExportingToast = false
|
||||||
|
) { exportResult ->
|
||||||
when (exportResult) {
|
if (exportResult == VcfExporter.ExportResult.EXPORT_FAIL) {
|
||||||
ExportResult.EXPORT_OK -> toast(org.fossify.commons.R.string.exporting_successful)
|
toast(org.fossify.commons.R.string.exporting_failed)
|
||||||
else -> toast(org.fossify.commons.R.string.exporting_failed)
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
config.lastAutoBackupTime = DateTime.now().millis
|
config.lastAutoBackupTime = DateTime.now().millis
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package org.fossify.contacts.helpers
|
package org.fossify.contacts.helpers
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.provider.ContactsContract.CommonDataKinds.Email
|
import android.provider.ContactsContract.CommonDataKinds.Email
|
||||||
import android.provider.ContactsContract.CommonDataKinds.Event
|
import android.provider.ContactsContract.CommonDataKinds.Event
|
||||||
|
|
@ -12,7 +13,6 @@ import ezvcard.VCard
|
||||||
import ezvcard.VCardVersion
|
import ezvcard.VCardVersion
|
||||||
import ezvcard.parameter.ImageType
|
import ezvcard.parameter.ImageType
|
||||||
import ezvcard.property.*
|
import ezvcard.property.*
|
||||||
import org.fossify.commons.activities.BaseSimpleActivity
|
|
||||||
import org.fossify.commons.extensions.getByteArray
|
import org.fossify.commons.extensions.getByteArray
|
||||||
import org.fossify.commons.extensions.getDateTimeFromDateString
|
import org.fossify.commons.extensions.getDateTimeFromDateString
|
||||||
import org.fossify.commons.extensions.showErrorToast
|
import org.fossify.commons.extensions.showErrorToast
|
||||||
|
|
@ -31,7 +31,7 @@ class VcfExporter {
|
||||||
private var contactsFailed = 0
|
private var contactsFailed = 0
|
||||||
|
|
||||||
fun exportContacts(
|
fun exportContacts(
|
||||||
activity: BaseSimpleActivity,
|
context: Context,
|
||||||
outputStream: OutputStream?,
|
outputStream: OutputStream?,
|
||||||
contacts: ArrayList<Contact>,
|
contacts: ArrayList<Contact>,
|
||||||
showExportingToast: Boolean,
|
showExportingToast: Boolean,
|
||||||
|
|
@ -45,7 +45,7 @@ class VcfExporter {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (showExportingToast) {
|
if (showExportingToast) {
|
||||||
activity.toast(org.fossify.commons.R.string.exporting)
|
context.toast(org.fossify.commons.R.string.exporting)
|
||||||
}
|
}
|
||||||
|
|
||||||
val cards = ArrayList<VCard>()
|
val cards = ArrayList<VCard>()
|
||||||
|
|
@ -146,7 +146,7 @@ class VcfExporter {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (contact.thumbnailUri.isNotEmpty()) {
|
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)
|
val photo = Photo(photoByteArray, ImageType.JPEG)
|
||||||
card.addPhoto(photo)
|
card.addPhoto(photo)
|
||||||
}
|
}
|
||||||
|
|
@ -166,7 +166,7 @@ class VcfExporter {
|
||||||
|
|
||||||
Ezvcard.write(cards).version(version).go(outputStream)
|
Ezvcard.write(cards).version(version).go(outputStream)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
activity.showErrorToast(e)
|
context.showErrorToast(e)
|
||||||
}
|
}
|
||||||
|
|
||||||
callback(
|
callback(
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue