From 349ff11957b44e3ae24121e0e9e1abffbbd0c703 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 23 Aug 2020 21:43:50 +0200 Subject: [PATCH] fix #35, show a tick at successfully sent last messages --- .../smsmessenger/activities/ThreadActivity.kt | 7 ++++++- .../smsmessenger/adapters/ThreadAdapter.kt | 20 +++++++++++-------- .../smsmessenger/helpers/Constants.kt | 1 + .../smsmessenger/models/ThreadSuccess.kt | 4 ++++ app/src/main/res/layout/item_thread_error.xml | 2 +- .../main/res/layout/item_thread_success.xml | 14 +++++++++++++ 6 files changed, 38 insertions(+), 10 deletions(-) create mode 100644 app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/ThreadSuccess.kt create mode 100644 app/src/main/res/layout/item_thread_success.xml diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt index 37a64dbd..a5bbc16c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -439,7 +439,8 @@ class ThreadActivity : SimpleActivity() { var prevDateTime = 0 var hadUnreadItems = false - for (i in 0 until messages.size) { + val cnt = messages.size + for (i in 0 until cnt) { val message = messages[i] // do not show the date/time above every message, only if the difference between the 2 messages is at least MIN_DATE_TIME_DIFF_SECS if (message.date - prevDateTime > MIN_DATE_TIME_DIFF_SECS) { @@ -458,6 +459,10 @@ class ThreadActivity : SimpleActivity() { markMessageRead(message.id, message.isMMS) conversationsDB.markRead(threadId.toLong()) } + + if (i == cnt - 1 && message.type == Telephony.Sms.MESSAGE_TYPE_SENT) { + items.add(ThreadSuccess(message.id)) + } } if (hadUnreadItems) { diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt index aa4cec77..73086af1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt @@ -31,15 +31,13 @@ import com.simplemobiletools.smsmessenger.R import com.simplemobiletools.smsmessenger.activities.SimpleActivity import com.simplemobiletools.smsmessenger.extensions.deleteMessage import com.simplemobiletools.smsmessenger.helpers.* -import com.simplemobiletools.smsmessenger.models.Message -import com.simplemobiletools.smsmessenger.models.ThreadDateTime -import com.simplemobiletools.smsmessenger.models.ThreadError -import com.simplemobiletools.smsmessenger.models.ThreadItem +import com.simplemobiletools.smsmessenger.models.* import kotlinx.android.synthetic.main.item_attachment_image.view.* import kotlinx.android.synthetic.main.item_received_message.view.* import kotlinx.android.synthetic.main.item_received_unknown_attachment.view.* import kotlinx.android.synthetic.main.item_sent_unknown_attachment.view.* import kotlinx.android.synthetic.main.item_thread_date_time.view.* +import kotlinx.android.synthetic.main.item_thread_success.view.* class ThreadAdapter(activity: SimpleActivity, var messages: ArrayList, recyclerView: MyRecyclerView, fastScroller: FastScroller, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { @@ -93,6 +91,7 @@ class ThreadAdapter(activity: SimpleActivity, var messages: ArrayList R.layout.item_thread_date_time THREAD_RECEIVED_MESSAGE -> R.layout.item_received_message THREAD_SENT_MESSAGE_ERROR -> R.layout.item_thread_error + THREAD_SENT_MESSAGE_SUCCESS -> R.layout.item_thread_success else -> R.layout.item_sent_message } return createViewHolder(layout, parent) @@ -101,10 +100,10 @@ class ThreadAdapter(activity: SimpleActivity, var messages: ArrayList - if (item is ThreadDateTime) { - setupDateTime(itemView, item) - } else if (item !is ThreadError) { - setupView(itemView, item as Message) + when (item) { + is ThreadDateTime -> setupDateTime(itemView, item) + is ThreadSuccess -> setupThreadSuccess(itemView) + !is ThreadError -> setupView(itemView, item as Message) } } bindViewHolder(holder) @@ -118,6 +117,7 @@ class ThreadAdapter(activity: SimpleActivity, var messages: ArrayList THREAD_DATE_TIME (messages[position] as? Message)?.isReceivedMessage() == true -> THREAD_RECEIVED_MESSAGE item is ThreadError -> THREAD_SENT_MESSAGE_ERROR + item is ThreadSuccess -> THREAD_SENT_MESSAGE_SUCCESS else -> THREAD_SENT_MESSAGE } } @@ -309,4 +309,8 @@ class ThreadAdapter(activity: SimpleActivity, var messages: ArrayList + + + + +