Clear drafts instead of deleting them

Closes https://github.com/FossifyOrg/Messages/issues/13
This commit is contained in:
Naveen Singh 2025-01-04 03:23:59 +05:30
parent 4434d187bc
commit f343085703
No known key found for this signature in database
GPG key ID: AF5D43C216778C0B
3 changed files with 65 additions and 45 deletions

View file

@ -117,7 +117,6 @@ import org.fossify.messages.extensions.createTemporaryThread
import org.fossify.messages.extensions.deleteConversation
import org.fossify.messages.extensions.deleteMessage
import org.fossify.messages.extensions.deleteScheduledMessage
import org.fossify.messages.extensions.deleteSmsDraft
import org.fossify.messages.extensions.dialNumber
import org.fossify.messages.extensions.emptyMessagesRecycleBinForConversation
import org.fossify.messages.extensions.getAddresses
@ -282,7 +281,7 @@ class ThreadActivity : SimpleActivity() {
)
val smsDraft = getSmsDraft(threadId)
if (smsDraft != null) {
if (!smsDraft.isNullOrEmpty()) {
binding.messageHolder.threadTypeMessage.setText(smsDraft)
}
isActivityVisible = true
@ -307,17 +306,16 @@ class ThreadActivity : SimpleActivity() {
override fun onPause() {
super.onPause()
val draftMessage = binding.messageHolder.threadTypeMessage.value
if (draftMessage.isNotEmpty() && getAttachmentSelections().isEmpty()) {
saveSmsDraft(draftMessage, threadId)
} else {
deleteSmsDraft(threadId)
}
saveDraftMessage()
bus?.post(Events.RefreshMessages())
isActivityVisible = false
}
override fun onStop() {
super.onStop()
saveDraftMessage()
}
override fun onBackPressed() {
isAttachmentPickerVisible = false
if (binding.messageHolder.attachmentPickerHolder.isVisible()) {
@ -332,6 +330,15 @@ class ThreadActivity : SimpleActivity() {
bus?.unregister(this)
}
private fun saveDraftMessage() {
val draftMessage = binding.messageHolder.threadTypeMessage.value
if (getAttachmentSelections().isEmpty()) {
saveSmsDraft(draftMessage, threadId)
} else {
saveSmsDraft("", threadId)
}
}
private fun refreshMenuItems() {
val firstPhoneNumber = participants.firstOrNull()?.phoneNumbers?.firstOrNull()?.value
val archiveAvailable = config.isArchiveAvailable