mirror of
https://github.com/SimpleMobileTools/Simple-SMS-Messenger.git
synced 2025-06-05 21:49:22 +02:00
Merge remote-tracking branch 'origin/feat/export-sms' into feat/export-sms
# Conflicts: # app/src/main/kotlin/com/simplemobiletools/smsmessenger/dialogs/ImportMessagesDialog.kt
This commit is contained in:
@@ -29,14 +29,13 @@ import com.simplemobiletools.smsmessenger.helpers.THREAD_ID
|
|||||||
import com.simplemobiletools.smsmessenger.helpers.THREAD_TITLE
|
import com.simplemobiletools.smsmessenger.helpers.THREAD_TITLE
|
||||||
import com.simplemobiletools.smsmessenger.models.Conversation
|
import com.simplemobiletools.smsmessenger.models.Conversation
|
||||||
import com.simplemobiletools.smsmessenger.models.Events
|
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 kotlinx.android.synthetic.main.activity_main.*
|
||||||
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.EventBus
|
||||||
import org.greenrobot.eventbus.Subscribe
|
import org.greenrobot.eventbus.Subscribe
|
||||||
import org.greenrobot.eventbus.ThreadMode
|
import org.greenrobot.eventbus.ThreadMode
|
||||||
|
import java.io.FileOutputStream
|
||||||
|
import java.io.OutputStream
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class MainActivity : SimpleActivity() {
|
class MainActivity : SimpleActivity() {
|
||||||
private val MAKE_DEFAULT_APP_REQUEST = 1
|
private val MAKE_DEFAULT_APP_REQUEST = 1
|
||||||
@@ -340,7 +339,6 @@ class MainActivity : SimpleActivity() {
|
|||||||
private fun tryToExportMessages() {
|
private fun tryToExportMessages() {
|
||||||
if (isQPlus()) {
|
if (isQPlus()) {
|
||||||
ExportMessagesDialog(this, config.lastExportPath, true) { file ->
|
ExportMessagesDialog(this, config.lastExportPath, true) { file ->
|
||||||
|
|
||||||
Intent(Intent.ACTION_CREATE_DOCUMENT).apply {
|
Intent(Intent.ACTION_CREATE_DOCUMENT).apply {
|
||||||
type = EXPORT_MIME_TYPE
|
type = EXPORT_MIME_TYPE
|
||||||
putExtra(Intent.EXTRA_TITLE, file.name)
|
putExtra(Intent.EXTRA_TITLE, file.name)
|
||||||
@@ -362,15 +360,15 @@ class MainActivity : SimpleActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun exportMessagesTo(outputStream: OutputStream?) {
|
private fun exportMessagesTo(outputStream: OutputStream?) {
|
||||||
|
toast(R.string.exporting)
|
||||||
ensureBackgroundThread {
|
ensureBackgroundThread {
|
||||||
toast(R.string.exporting)
|
|
||||||
smsExporter.exportMessages(outputStream) {
|
smsExporter.exportMessages(outputStream) {
|
||||||
toast(
|
val toastId = when (it) {
|
||||||
when (it) {
|
MessagesExporter.ExportResult.EXPORT_OK -> R.string.exporting_successful
|
||||||
MessagesExporter.ExportResult.EXPORT_OK -> R.string.exporting_successful
|
else -> R.string.exporting_failed
|
||||||
else -> R.string.exporting_failed
|
}
|
||||||
}
|
|
||||||
)
|
toast(toastId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -11,8 +11,7 @@ import com.simplemobiletools.smsmessenger.extensions.config
|
|||||||
import com.simplemobiletools.smsmessenger.helpers.MessagesImporter
|
import com.simplemobiletools.smsmessenger.helpers.MessagesImporter
|
||||||
import com.simplemobiletools.smsmessenger.helpers.MessagesImporter.ImportResult.IMPORT_OK
|
import com.simplemobiletools.smsmessenger.helpers.MessagesImporter.ImportResult.IMPORT_OK
|
||||||
import com.simplemobiletools.smsmessenger.helpers.MessagesImporter.ImportResult.IMPORT_PARTIAL
|
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 kotlinx.android.synthetic.main.dialog_import_messages.view.import_sms_checkbox
|
|
||||||
|
|
||||||
class ImportMessagesDialog(
|
class ImportMessagesDialog(
|
||||||
private val activity: SimpleActivity,
|
private val activity: SimpleActivity,
|
||||||
@@ -22,6 +21,7 @@ class ImportMessagesDialog(
|
|||||||
private val config = activity.config
|
private val config = activity.config
|
||||||
|
|
||||||
init {
|
init {
|
||||||
|
var ignoreClicks = false
|
||||||
val view = (activity.layoutInflater.inflate(R.layout.dialog_import_messages, null) as ViewGroup).apply {
|
val view = (activity.layoutInflater.inflate(R.layout.dialog_import_messages, null) as ViewGroup).apply {
|
||||||
import_sms_checkbox.isChecked = config.importSms
|
import_sms_checkbox.isChecked = config.importSms
|
||||||
import_mms_checkbox.isChecked = config.importMms
|
import_mms_checkbox.isChecked = config.importMms
|
||||||
@@ -33,11 +33,16 @@ class ImportMessagesDialog(
|
|||||||
.create().apply {
|
.create().apply {
|
||||||
activity.setupDialogStuff(view, this, R.string.import_messages) {
|
activity.setupDialogStuff(view, this, R.string.import_messages) {
|
||||||
getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener {
|
getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener {
|
||||||
|
if (ignoreClicks) {
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
if (!view.import_sms_checkbox.isChecked && !view.import_mms_checkbox.isChecked) {
|
if (!view.import_sms_checkbox.isChecked && !view.import_mms_checkbox.isChecked) {
|
||||||
activity.toast(R.string.import_unchecked_error_message)
|
activity.toast(R.string.import_unchecked_error_message)
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ignoreClicks = true
|
||||||
activity.toast(R.string.importing)
|
activity.toast(R.string.importing)
|
||||||
config.importSms = view.import_sms_checkbox.isChecked
|
config.importSms = view.import_sms_checkbox.isChecked
|
||||||
config.importMms = view.import_mms_checkbox.isChecked
|
config.importMms = view.import_mms_checkbox.isChecked
|
||||||
|
@@ -1,12 +1,9 @@
|
|||||||
package com.simplemobiletools.smsmessenger.helpers
|
package com.simplemobiletools.smsmessenger.helpers
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.net.Uri
|
|
||||||
import android.provider.Telephony.*
|
import android.provider.Telephony.*
|
||||||
import android.util.Log
|
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.google.gson.reflect.TypeToken
|
import com.google.gson.reflect.TypeToken
|
||||||
import com.simplemobiletools.commons.extensions.queryCursor
|
|
||||||
import com.simplemobiletools.commons.extensions.showErrorToast
|
import com.simplemobiletools.commons.extensions.showErrorToast
|
||||||
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
||||||
import com.simplemobiletools.smsmessenger.extensions.*
|
import com.simplemobiletools.smsmessenger.extensions.*
|
||||||
@@ -44,6 +41,7 @@ class MessagesImporter(private val context: Context) {
|
|||||||
callback.invoke(IMPORT_NOTHING_NEW)
|
callback.invoke(IMPORT_NOTHING_NEW)
|
||||||
return@ensureBackgroundThread
|
return@ensureBackgroundThread
|
||||||
}
|
}
|
||||||
|
|
||||||
onProgress.invoke(totalMessages, messagesImported)
|
onProgress.invoke(totalMessages, messagesImported)
|
||||||
for (message in messages) {
|
for (message in messages) {
|
||||||
if (config.importSms) {
|
if (config.importSms) {
|
||||||
@@ -70,9 +68,7 @@ class MessagesImporter(private val context: Context) {
|
|||||||
|
|
||||||
callback.invoke(
|
callback.invoke(
|
||||||
when {
|
when {
|
||||||
messagesImported == 0 -> {
|
messagesImported == 0 -> IMPORT_FAIL
|
||||||
IMPORT_FAIL
|
|
||||||
}
|
|
||||||
messagesFailed > 0 -> IMPORT_PARTIAL
|
messagesFailed > 0 -> IMPORT_PARTIAL
|
||||||
else -> IMPORT_OK
|
else -> IMPORT_OK
|
||||||
}
|
}
|
||||||
|
@@ -34,6 +34,7 @@
|
|||||||
android:id="@+id/export_messages_filename_label"
|
android:id="@+id/export_messages_filename_label"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="@dimen/small_margin"
|
||||||
android:text="@string/filename_without_json"
|
android:text="@string/filename_without_json"
|
||||||
android:textSize="@dimen/smaller_text_size" />
|
android:textSize="@dimen/smaller_text_size" />
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user