From 3eb1127c74904643a38fc10cefc7e9a0443a2cf2 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 4 Apr 2020 19:41:48 +0200 Subject: [PATCH] show an error at messages that havent been sent --- .../smsmessenger/activities/ThreadActivity.kt | 6 ++++++ .../smsmessenger/adapters/ThreadAdapter.kt | 6 +++++- .../simplemobiletools/smsmessenger/helpers/Constants.kt | 1 + .../simplemobiletools/smsmessenger/models/ThreadError.kt | 3 +++ app/src/main/res/layout/item_thread_error.xml | 9 +++++++++ app/src/main/res/values/strings.xml | 1 + 6 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/ThreadError.kt create mode 100644 app/src/main/res/layout/item_thread_error.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 c87360c0..b6c5e63f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -1,6 +1,7 @@ package com.simplemobiletools.smsmessenger.activities import android.os.Bundle +import android.provider.Telephony import android.telephony.SmsManager import com.simplemobiletools.commons.extensions.applyColorFilter import com.simplemobiletools.commons.extensions.onTextChangeListener @@ -13,6 +14,7 @@ import com.simplemobiletools.smsmessenger.helpers.THREAD_ID import com.simplemobiletools.smsmessenger.helpers.THREAD_NAME import com.simplemobiletools.smsmessenger.helpers.THREAD_NUMBER import com.simplemobiletools.smsmessenger.models.ThreadDateTime +import com.simplemobiletools.smsmessenger.models.ThreadError import com.simplemobiletools.smsmessenger.models.ThreadItem import kotlinx.android.synthetic.main.activity_thread.* @@ -67,6 +69,10 @@ class ThreadActivity : SimpleActivity() { prevDateTime = it.date } items.add(it) + + if (it.type == Telephony.Sms.MESSAGE_TYPE_FAILED) { + items.add(ThreadError(it.id)) + } } return items 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 678416ae..4848c857 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt @@ -12,8 +12,10 @@ import com.simplemobiletools.smsmessenger.activities.SimpleActivity import com.simplemobiletools.smsmessenger.helpers.THREAD_DATE_TIME import com.simplemobiletools.smsmessenger.helpers.THREAD_RECEIVED_MESSAGE import com.simplemobiletools.smsmessenger.helpers.THREAD_SENT_MESSAGE +import com.simplemobiletools.smsmessenger.helpers.THREAD_SENT_MESSAGE_ERROR 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 kotlinx.android.synthetic.main.item_received_message.view.* import kotlinx.android.synthetic.main.item_thread_date_time.view.* @@ -59,6 +61,7 @@ class ThreadAdapter( val layout = when (viewType) { THREAD_DATE_TIME -> R.layout.item_thread_date_time THREAD_RECEIVED_MESSAGE -> R.layout.item_received_message + THREAD_SENT_MESSAGE_ERROR -> R.layout.item_thread_error else -> R.layout.item_sent_message } return createViewHolder(layout, parent) @@ -69,7 +72,7 @@ class ThreadAdapter( holder.bindView(item, true, item is Message) { itemView, layoutPosition -> if (item is ThreadDateTime) { setupDateTime(itemView, item) - } else { + } else if (item !is ThreadError) { setupView(itemView, item as Message) } } @@ -83,6 +86,7 @@ class ThreadAdapter( return when { item is ThreadDateTime -> THREAD_DATE_TIME (messages[position] as? Message)?.isReceivedMessage() == true -> THREAD_RECEIVED_MESSAGE + item is ThreadError -> THREAD_SENT_MESSAGE_ERROR else -> THREAD_SENT_MESSAGE } } 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 1300bebb..4da4f345 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt @@ -8,3 +8,4 @@ const val THREAD_NUMBER = "thread_number" const val THREAD_DATE_TIME = 1 const val THREAD_RECEIVED_MESSAGE = 2 const val THREAD_SENT_MESSAGE = 3 +const val THREAD_SENT_MESSAGE_ERROR = 4 diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/ThreadError.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/ThreadError.kt new file mode 100644 index 00000000..69df786f --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/ThreadError.kt @@ -0,0 +1,3 @@ +package com.simplemobiletools.smsmessenger.models + +data class ThreadError(val messageID: Int) : ThreadItem() diff --git a/app/src/main/res/layout/item_thread_error.xml b/app/src/main/res/layout/item_thread_error.xml new file mode 100644 index 00000000..dcbebf95 --- /dev/null +++ b/app/src/main/res/layout/item_thread_error.xml @@ -0,0 +1,9 @@ + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 20922a0a..81c7ed89 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2,4 +2,5 @@ Simple SMS Messenger SMS Messenger Type a messageā€¦ + Message has not been sent.