Merge pull request #34 from FossifyOrg/fix_automatic_import

Fix automatic backup
This commit is contained in:
Naveen Singh 2024-01-25 05:34:48 +05:30 committed by GitHub
commit 25f9dbf5ba
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
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 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

View file

@ -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(