mirror of
https://github.com/SimpleMobileTools/Simple-SMS-Messenger.git
synced 2025-06-05 21:49:22 +02:00
fix #35, show a tick at successfully sent last messages
This commit is contained in:
@@ -439,7 +439,8 @@ class ThreadActivity : SimpleActivity() {
|
|||||||
|
|
||||||
var prevDateTime = 0
|
var prevDateTime = 0
|
||||||
var hadUnreadItems = false
|
var hadUnreadItems = false
|
||||||
for (i in 0 until messages.size) {
|
val cnt = messages.size
|
||||||
|
for (i in 0 until cnt) {
|
||||||
val message = messages[i]
|
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
|
// 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) {
|
if (message.date - prevDateTime > MIN_DATE_TIME_DIFF_SECS) {
|
||||||
@@ -458,6 +459,10 @@ class ThreadActivity : SimpleActivity() {
|
|||||||
markMessageRead(message.id, message.isMMS)
|
markMessageRead(message.id, message.isMMS)
|
||||||
conversationsDB.markRead(threadId.toLong())
|
conversationsDB.markRead(threadId.toLong())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (i == cnt - 1 && message.type == Telephony.Sms.MESSAGE_TYPE_SENT) {
|
||||||
|
items.add(ThreadSuccess(message.id))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hadUnreadItems) {
|
if (hadUnreadItems) {
|
||||||
|
@@ -31,15 +31,13 @@ import com.simplemobiletools.smsmessenger.R
|
|||||||
import com.simplemobiletools.smsmessenger.activities.SimpleActivity
|
import com.simplemobiletools.smsmessenger.activities.SimpleActivity
|
||||||
import com.simplemobiletools.smsmessenger.extensions.deleteMessage
|
import com.simplemobiletools.smsmessenger.extensions.deleteMessage
|
||||||
import com.simplemobiletools.smsmessenger.helpers.*
|
import com.simplemobiletools.smsmessenger.helpers.*
|
||||||
import com.simplemobiletools.smsmessenger.models.Message
|
import com.simplemobiletools.smsmessenger.models.*
|
||||||
import com.simplemobiletools.smsmessenger.models.ThreadDateTime
|
|
||||||
import com.simplemobiletools.smsmessenger.models.ThreadError
|
|
||||||
import com.simplemobiletools.smsmessenger.models.ThreadItem
|
|
||||||
import kotlinx.android.synthetic.main.item_attachment_image.view.*
|
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_message.view.*
|
||||||
import kotlinx.android.synthetic.main.item_received_unknown_attachment.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_sent_unknown_attachment.view.*
|
||||||
import kotlinx.android.synthetic.main.item_thread_date_time.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<ThreadItem>, recyclerView: MyRecyclerView, fastScroller: FastScroller,
|
class ThreadAdapter(activity: SimpleActivity, var messages: ArrayList<ThreadItem>, recyclerView: MyRecyclerView, fastScroller: FastScroller,
|
||||||
itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) {
|
itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) {
|
||||||
@@ -93,6 +91,7 @@ class ThreadAdapter(activity: SimpleActivity, var messages: ArrayList<ThreadItem
|
|||||||
THREAD_DATE_TIME -> R.layout.item_thread_date_time
|
THREAD_DATE_TIME -> R.layout.item_thread_date_time
|
||||||
THREAD_RECEIVED_MESSAGE -> R.layout.item_received_message
|
THREAD_RECEIVED_MESSAGE -> R.layout.item_received_message
|
||||||
THREAD_SENT_MESSAGE_ERROR -> R.layout.item_thread_error
|
THREAD_SENT_MESSAGE_ERROR -> R.layout.item_thread_error
|
||||||
|
THREAD_SENT_MESSAGE_SUCCESS -> R.layout.item_thread_success
|
||||||
else -> R.layout.item_sent_message
|
else -> R.layout.item_sent_message
|
||||||
}
|
}
|
||||||
return createViewHolder(layout, parent)
|
return createViewHolder(layout, parent)
|
||||||
@@ -101,10 +100,10 @@ class ThreadAdapter(activity: SimpleActivity, var messages: ArrayList<ThreadItem
|
|||||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||||
val item = messages[position]
|
val item = messages[position]
|
||||||
holder.bindView(item, true, item is Message) { itemView, layoutPosition ->
|
holder.bindView(item, true, item is Message) { itemView, layoutPosition ->
|
||||||
if (item is ThreadDateTime) {
|
when (item) {
|
||||||
setupDateTime(itemView, item)
|
is ThreadDateTime -> setupDateTime(itemView, item)
|
||||||
} else if (item !is ThreadError) {
|
is ThreadSuccess -> setupThreadSuccess(itemView)
|
||||||
setupView(itemView, item as Message)
|
!is ThreadError -> setupView(itemView, item as Message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bindViewHolder(holder)
|
bindViewHolder(holder)
|
||||||
@@ -118,6 +117,7 @@ class ThreadAdapter(activity: SimpleActivity, var messages: ArrayList<ThreadItem
|
|||||||
item is ThreadDateTime -> THREAD_DATE_TIME
|
item is ThreadDateTime -> THREAD_DATE_TIME
|
||||||
(messages[position] as? Message)?.isReceivedMessage() == true -> THREAD_RECEIVED_MESSAGE
|
(messages[position] as? Message)?.isReceivedMessage() == true -> THREAD_RECEIVED_MESSAGE
|
||||||
item is ThreadError -> THREAD_SENT_MESSAGE_ERROR
|
item is ThreadError -> THREAD_SENT_MESSAGE_ERROR
|
||||||
|
item is ThreadSuccess -> THREAD_SENT_MESSAGE_SUCCESS
|
||||||
else -> THREAD_SENT_MESSAGE
|
else -> THREAD_SENT_MESSAGE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -309,4 +309,8 @@ class ThreadAdapter(activity: SimpleActivity, var messages: ArrayList<ThreadItem
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun setupThreadSuccess(view: View) {
|
||||||
|
view.thread_success.applyColorFilter(textColor)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -21,6 +21,7 @@ const val THREAD_DATE_TIME = 1
|
|||||||
const val THREAD_RECEIVED_MESSAGE = 2
|
const val THREAD_RECEIVED_MESSAGE = 2
|
||||||
const val THREAD_SENT_MESSAGE = 3
|
const val THREAD_SENT_MESSAGE = 3
|
||||||
const val THREAD_SENT_MESSAGE_ERROR = 4
|
const val THREAD_SENT_MESSAGE_ERROR = 4
|
||||||
|
const val THREAD_SENT_MESSAGE_SUCCESS = 5
|
||||||
|
|
||||||
fun refreshMessages() {
|
fun refreshMessages() {
|
||||||
EventBus.getDefault().post(Events.RefreshMessages())
|
EventBus.getDefault().post(Events.RefreshMessages())
|
||||||
|
@@ -0,0 +1,4 @@
|
|||||||
|
package com.simplemobiletools.smsmessenger.models
|
||||||
|
|
||||||
|
// show a check after the latest message, if it is a sent one and succeeded
|
||||||
|
data class ThreadSuccess(val messageID: Int) : ThreadItem()
|
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
|
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:id="@+id/thread_date_time"
|
android:id="@+id/thread_error"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="end"
|
android:gravity="end"
|
||||||
|
14
app/src/main/res/layout/item_thread_success.xml
Normal file
14
app/src/main/res/layout/item_thread_success.xml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="end"
|
||||||
|
android:paddingEnd="@dimen/activity_margin">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/thread_success"
|
||||||
|
android:layout_width="@dimen/activity_margin"
|
||||||
|
android:layout_height="@dimen/activity_margin"
|
||||||
|
android:src="@drawable/ic_check_vector" />
|
||||||
|
|
||||||
|
</RelativeLayout>
|
Reference in New Issue
Block a user