From fc3e72d3907f606ccee38772efd54eab3540880d Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 3 Apr 2020 21:44:18 +0200 Subject: [PATCH] split messages between received and sent --- .../smsmessenger/adapters/ThreadAdapter.kt | 21 +++++++++++++++++-- .../smsmessenger/helpers/Constants.kt | 4 ++++ .../smsmessenger/models/Message.kt | 6 +++++- .../main/res/layout/item_received_message.xml | 16 ++++++++++++++ ...read_message.xml => item_sent_message.xml} | 2 +- 5 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 app/src/main/res/layout/item_received_message.xml rename app/src/main/res/layout/{item_thread_message.xml => item_sent_message.xml} (93%) 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 eb8b0cf9..83098972 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt @@ -8,8 +8,10 @@ import com.simplemobiletools.commons.views.FastScroller import com.simplemobiletools.commons.views.MyRecyclerView import com.simplemobiletools.smsmessenger.R import com.simplemobiletools.smsmessenger.activities.SimpleActivity +import com.simplemobiletools.smsmessenger.helpers.RECEIVED_MESSAGE +import com.simplemobiletools.smsmessenger.helpers.SENT_MESSAGE import com.simplemobiletools.smsmessenger.models.Message -import kotlinx.android.synthetic.main.item_thread_message.view.* +import kotlinx.android.synthetic.main.item_received_message.view.* class ThreadAdapter( activity: SimpleActivity, var messages: ArrayList, @@ -48,7 +50,14 @@ class ThreadAdapter( override fun onActionModeDestroyed() {} - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = createViewHolder(R.layout.item_thread_message, parent) + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val layout = if (viewType == RECEIVED_MESSAGE) { + R.layout.item_received_message + } else { + R.layout.item_sent_message + } + return createViewHolder(layout, parent) + } override fun onBindViewHolder(holder: ViewHolder, position: Int) { val message = messages[position] @@ -60,6 +69,14 @@ class ThreadAdapter( override fun getItemCount() = messages.size + override fun getItemViewType(position: Int): Int { + return if (messages[position].isReceivedMessage()) { + RECEIVED_MESSAGE + } else { + SENT_MESSAGE + } + } + private fun getItemWithKey(key: Int): Message? = messages.firstOrNull { it.id == key } private fun getSelectedItems() = messages.filter { selectedKeys.contains(it.id) } as ArrayList diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt index 129a9865..9ecebf38 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt @@ -2,3 +2,7 @@ package com.simplemobiletools.smsmessenger.helpers const val THREAD_ID = "thread_id" const val THREAD_NAME = "thread_name" + +// message types for the thread list view +const val RECEIVED_MESSAGE = 1 +const val SENT_MESSAGE = 2 diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/Message.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/Message.kt index 819ecfa3..d6e359b4 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/Message.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/Message.kt @@ -1,6 +1,10 @@ package com.simplemobiletools.smsmessenger.models +import android.provider.Telephony + data class Message( val id: Int, val subject: String, val body: String, val type: Int, val address: String, val date: Int, val read: Boolean, val thread: Int -) +) { + fun isReceivedMessage() = type == Telephony.Sms.MESSAGE_TYPE_INBOX +} diff --git a/app/src/main/res/layout/item_received_message.xml b/app/src/main/res/layout/item_received_message.xml new file mode 100644 index 00000000..9256f0d8 --- /dev/null +++ b/app/src/main/res/layout/item_received_message.xml @@ -0,0 +1,16 @@ + + + + + + diff --git a/app/src/main/res/layout/item_thread_message.xml b/app/src/main/res/layout/item_sent_message.xml similarity index 93% rename from app/src/main/res/layout/item_thread_message.xml rename to app/src/main/res/layout/item_sent_message.xml index 73906622..f960200d 100644 --- a/app/src/main/res/layout/item_thread_message.xml +++ b/app/src/main/res/layout/item_sent_message.xml @@ -11,6 +11,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="@dimen/normal_text_size" - tools:text="Hey buddy!" /> + tools:text="Sent message" />