diff --git a/app/src/main/kotlin/org/fossify/messages/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/messages/activities/MainActivity.kt index 929390ed..9da038aa 100644 --- a/app/src/main/kotlin/org/fossify/messages/activities/MainActivity.kt +++ b/app/src/main/kotlin/org/fossify/messages/activities/MainActivity.kt @@ -104,11 +104,9 @@ class MainActivity : SimpleActivity() { useTopSearchMenu = true ) - if (savedInstanceState == null) { - checkAndDeleteOldRecycleBinMessages() - clearAllMessagesIfNeeded { - loadMessages() - } + checkAndDeleteOldRecycleBinMessages() + clearAllMessagesIfNeeded { + loadMessages() } if (checkAppSideloading()) { diff --git a/app/src/main/kotlin/org/fossify/messages/activities/ThreadActivity.kt b/app/src/main/kotlin/org/fossify/messages/activities/ThreadActivity.kt index 9dc18dd3..3893fa7d 100644 --- a/app/src/main/kotlin/org/fossify/messages/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/org/fossify/messages/activities/ThreadActivity.kt @@ -307,9 +307,9 @@ class ThreadActivity : SimpleActivity() { override fun onPause() { super.onPause() - - if (binding.messageHolder.threadTypeMessage.value != "" && getAttachmentSelections().isEmpty()) { - saveSmsDraft(binding.messageHolder.threadTypeMessage.value, threadId) + val draftMessage = binding.messageHolder.threadTypeMessage.value + if (draftMessage.isNotEmpty() && getAttachmentSelections().isEmpty()) { + saveSmsDraft(draftMessage, threadId) } else { deleteSmsDraft(threadId) } @@ -969,6 +969,7 @@ class ThreadActivity : SimpleActivity() { private fun maybeDisableShortCodeReply() { if (isSpecialNumber() && !isRecycleBin) { + binding.messageHolder.threadTypeMessage.text?.clear() binding.messageHolder.root.beGone() binding.shortCodeHolder.root.beVisible() val textColor = getProperTextColor() diff --git a/app/src/main/kotlin/org/fossify/messages/extensions/Context.kt b/app/src/main/kotlin/org/fossify/messages/extensions/Context.kt index f4fff271..7e8e48a6 100644 --- a/app/src/main/kotlin/org/fossify/messages/extensions/Context.kt +++ b/app/src/main/kotlin/org/fossify/messages/extensions/Context.kt @@ -1081,6 +1081,8 @@ fun Context.getAllDrafts(): HashMap { } fun Context.saveSmsDraft(body: String, threadId: Long) { + deleteSmsDraft(threadId) + val uri = Sms.Draft.CONTENT_URI val contentValues = ContentValues().apply { put(Sms.BODY, body) @@ -1092,6 +1094,7 @@ fun Context.saveSmsDraft(body: String, threadId: Long) { try { contentResolver.insert(uri, contentValues) } catch (e: Exception) { + showErrorToast(e) } } @@ -1100,16 +1103,16 @@ fun Context.deleteSmsDraft(threadId: Long) { val projection = arrayOf(Sms._ID) val selection = "${Sms.THREAD_ID} = ?" val selectionArgs = arrayOf(threadId.toString()) - try { - val cursor = contentResolver.query(uri, projection, selection, selectionArgs, null) - cursor.use { - if (cursor?.moveToFirst() == true) { - val draftId = cursor.getLong(0) - val draftUri = Uri.withAppendedPath(Sms.CONTENT_URI, "/${draftId}") - contentResolver.delete(draftUri, null, null) - } - } - } catch (e: Exception) { + queryCursor( + uri = uri, + projection = projection, + selection = selection, + selectionArgs = selectionArgs, + showErrors = true + ) { cursor -> + val draftId = cursor.getLongValue(Sms._ID) + val draftUri = Uri.withAppendedPath(Sms.CONTENT_URI, "/${draftId}") + contentResolver.delete(draftUri, null, null) } } diff --git a/app/src/main/res/layout/activity_thread.xml b/app/src/main/res/layout/activity_thread.xml index 38b0272a..f4af118e 100644 --- a/app/src/main/res/layout/activity_thread.xml +++ b/app/src/main/res/layout/activity_thread.xml @@ -22,6 +22,10 @@ android:fillViewport="true" android:scrollbars="none"> + +