diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt index 15289689..4468a7f3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt @@ -29,14 +29,13 @@ import com.simplemobiletools.smsmessenger.helpers.THREAD_ID import com.simplemobiletools.smsmessenger.helpers.THREAD_TITLE import com.simplemobiletools.smsmessenger.models.Conversation import com.simplemobiletools.smsmessenger.models.Events -import java.io.FileOutputStream -import java.io.OutputStream -import java.util.ArrayList -import java.util.Arrays import kotlinx.android.synthetic.main.activity_main.* import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode +import java.io.FileOutputStream +import java.io.OutputStream +import java.util.* class MainActivity : SimpleActivity() { private val MAKE_DEFAULT_APP_REQUEST = 1 @@ -340,7 +339,6 @@ class MainActivity : SimpleActivity() { private fun tryToExportMessages() { if (isQPlus()) { ExportMessagesDialog(this, config.lastExportPath, true) { file -> - Intent(Intent.ACTION_CREATE_DOCUMENT).apply { type = EXPORT_MIME_TYPE putExtra(Intent.EXTRA_TITLE, file.name) @@ -362,15 +360,15 @@ class MainActivity : SimpleActivity() { } private fun exportMessagesTo(outputStream: OutputStream?) { + toast(R.string.exporting) ensureBackgroundThread { - toast(R.string.exporting) smsExporter.exportMessages(outputStream) { - toast( - when (it) { - MessagesExporter.ExportResult.EXPORT_OK -> R.string.exporting_successful - else -> R.string.exporting_failed - } - ) + val toastId = when (it) { + MessagesExporter.ExportResult.EXPORT_OK -> R.string.exporting_successful + else -> R.string.exporting_failed + } + + toast(toastId) } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/dialogs/ImportMessagesDialog.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/dialogs/ImportMessagesDialog.kt index 29d3ce75..83ef644d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/dialogs/ImportMessagesDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/dialogs/ImportMessagesDialog.kt @@ -11,8 +11,7 @@ import com.simplemobiletools.smsmessenger.extensions.config import com.simplemobiletools.smsmessenger.helpers.MessagesImporter import com.simplemobiletools.smsmessenger.helpers.MessagesImporter.ImportResult.IMPORT_OK import com.simplemobiletools.smsmessenger.helpers.MessagesImporter.ImportResult.IMPORT_PARTIAL -import kotlinx.android.synthetic.main.dialog_import_messages.view.import_mms_checkbox -import kotlinx.android.synthetic.main.dialog_import_messages.view.import_sms_checkbox +import kotlinx.android.synthetic.main.dialog_import_messages.view.* class ImportMessagesDialog( private val activity: SimpleActivity, @@ -22,6 +21,7 @@ class ImportMessagesDialog( private val config = activity.config init { + var ignoreClicks = false val view = (activity.layoutInflater.inflate(R.layout.dialog_import_messages, null) as ViewGroup).apply { import_sms_checkbox.isChecked = config.importSms import_mms_checkbox.isChecked = config.importMms @@ -33,11 +33,16 @@ class ImportMessagesDialog( .create().apply { activity.setupDialogStuff(view, this, R.string.import_messages) { getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener { + if (ignoreClicks) { + return@setOnClickListener + } + if (!view.import_sms_checkbox.isChecked && !view.import_mms_checkbox.isChecked) { activity.toast(R.string.import_unchecked_error_message) return@setOnClickListener } + ignoreClicks = true activity.toast(R.string.importing) config.importSms = view.import_sms_checkbox.isChecked config.importMms = view.import_mms_checkbox.isChecked diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/MessagesImporter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/MessagesImporter.kt index 167b191c..4ff1f5b7 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/MessagesImporter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/MessagesImporter.kt @@ -1,12 +1,9 @@ package com.simplemobiletools.smsmessenger.helpers import android.content.Context -import android.net.Uri import android.provider.Telephony.* -import android.util.Log import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.simplemobiletools.commons.extensions.queryCursor import com.simplemobiletools.commons.extensions.showErrorToast import com.simplemobiletools.commons.helpers.ensureBackgroundThread import com.simplemobiletools.smsmessenger.extensions.* @@ -44,6 +41,7 @@ class MessagesImporter(private val context: Context) { callback.invoke(IMPORT_NOTHING_NEW) return@ensureBackgroundThread } + onProgress.invoke(totalMessages, messagesImported) for (message in messages) { if (config.importSms) { @@ -70,9 +68,7 @@ class MessagesImporter(private val context: Context) { callback.invoke( when { - messagesImported == 0 -> { - IMPORT_FAIL - } + messagesImported == 0 -> IMPORT_FAIL messagesFailed > 0 -> IMPORT_PARTIAL else -> IMPORT_OK } diff --git a/app/src/main/res/layout/dialog_export_messages.xml b/app/src/main/res/layout/dialog_export_messages.xml index 510967dd..66376d8e 100644 --- a/app/src/main/res/layout/dialog_export_messages.xml +++ b/app/src/main/res/layout/dialog_export_messages.xml @@ -34,6 +34,7 @@ android:id="@+id/export_messages_filename_label" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginStart="@dimen/small_margin" android:text="@string/filename_without_json" android:textSize="@dimen/smaller_text_size" />