Add progress callbacks to importer and exporter, not used yet

This commit is contained in:
darthpaul 2021-09-18 21:54:44 +01:00
parent d78776e288
commit 24d9988ec1
6 changed files with 101 additions and 38 deletions

View file

@ -1,5 +1,6 @@
package com.simplemobiletools.smsmessenger.dialogs
import android.util.Log
import android.view.ViewGroup
import androidx.appcompat.app.AlertDialog
import com.simplemobiletools.commons.extensions.setupDialogStuff
@ -9,6 +10,7 @@ import com.simplemobiletools.smsmessenger.R
import com.simplemobiletools.smsmessenger.activities.SimpleActivity
import com.simplemobiletools.smsmessenger.extensions.config
import com.simplemobiletools.smsmessenger.helpers.MessagesImporter
import com.simplemobiletools.smsmessenger.helpers.MessagesImporter.ImportResult.*
import kotlinx.android.synthetic.main.dialog_import_messages.view.import_mms_checkbox
import kotlinx.android.synthetic.main.dialog_import_messages.view.import_sms_checkbox
@ -18,6 +20,7 @@ class ImportMessagesDialog(
private val callback: (refresh: Boolean) -> Unit,
) {
private val TAG = "ImportMessagesDialog"
private val config = activity.config
init {
@ -36,8 +39,10 @@ class ImportMessagesDialog(
config.importSms = view.import_sms_checkbox.isChecked
config.importMms = view.import_mms_checkbox.isChecked
ensureBackgroundThread {
MessagesImporter(activity).importMessages(path){
MessagesImporter(activity).importMessages(path, onProgress = { total: Int, current: Int ->
Log.d(TAG, "PERCENTAGE: ${current.toDouble() * 100 / total.toDouble()}%")
}) {
handleParseResult(it)
}
dismiss()
callback.invoke(true)
@ -46,4 +51,15 @@ class ImportMessagesDialog(
}
}
}
private fun handleParseResult(result: MessagesImporter.ImportResult) {
activity.toast(
when (result) {
IMPORT_OK -> R.string.importing_successful
IMPORT_PARTIAL -> R.string.importing_some_entries_failed
else -> R.string.no_items_found
}
)
callback(result != IMPORT_FAIL)
}
}