From e6b8db6ad0db8c4645b235974c620c0b02c54910 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 3 Apr 2020 12:29:57 +0200 Subject: [PATCH] renaming SMS to Message in some cases for easier handling --- .../smsmessenger/activities/MainActivity.kt | 20 +++--- .../smsmessenger/adapters/MessagesAdapter.kt | 65 +++++++++++++++++++ .../smsmessenger/adapters/SMSsAdapter.kt | 62 ------------------ .../smsmessenger/models/Message.kt | 3 + .../smsmessenger/models/SMS.kt | 3 - app/src/main/res/layout/activity_main.xml | 8 +-- .../layout/{item_sms.xml => item_message.xml} | 10 +-- .../menu/{cab_smss.xml => cab_messages.xml} | 0 8 files changed, 87 insertions(+), 84 deletions(-) create mode 100644 app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/MessagesAdapter.kt delete mode 100644 app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/SMSsAdapter.kt create mode 100644 app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/Message.kt delete mode 100644 app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/SMS.kt rename app/src/main/res/layout/{item_sms.xml => item_message.xml} (83%) rename app/src/main/res/menu/{cab_smss.xml => cab_messages.xml} (100%) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt index abae7eb3..bb5dc543 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt @@ -11,8 +11,8 @@ import com.simplemobiletools.commons.helpers.PERMISSION_READ_SMS import com.simplemobiletools.commons.models.FAQItem import com.simplemobiletools.smsmessenger.BuildConfig import com.simplemobiletools.smsmessenger.R -import com.simplemobiletools.smsmessenger.adapters.SMSsAdapter -import com.simplemobiletools.smsmessenger.models.SMS +import com.simplemobiletools.smsmessenger.adapters.MessagesAdapter +import com.simplemobiletools.smsmessenger.models.Message import kotlinx.android.synthetic.main.activity_main.* class MainActivity : SimpleActivity() { @@ -50,16 +50,16 @@ class MainActivity : SimpleActivity() { } private fun initMessenger() { - val smss = getSMSs() - SMSsAdapter(this, smss, smss_list, smsss_fastscroller) { + val messages = getMessages() + MessagesAdapter(this, messages, messages_list, messages_fastscroller) { }.apply { - smss_list.adapter = this + messages_list.adapter = this } } - private fun getSMSs(): ArrayList { - val smss = ArrayList() + private fun getMessages(): ArrayList { + val messages = ArrayList() val uri = Telephony.Sms.CONTENT_URI val projection = arrayOf( Telephony.Sms._ID, @@ -83,8 +83,8 @@ class MainActivity : SimpleActivity() { val address = cursor.getStringValue(Telephony.Sms.ADDRESS) val date = (cursor.getLongValue(Telephony.Sms.DATE) / 1000).toInt() val read = cursor.getIntValue(Telephony.Sms.READ) == 1 - val sms = SMS(id, subject, body, type, address, date, read) - smss.add(sms) + val message = Message(id, subject, body, type, address, date, read) + messages.add(message) } while (cursor.moveToNext()) } } catch (e: Exception) { @@ -92,7 +92,7 @@ class MainActivity : SimpleActivity() { } finally { cursor?.close() } - return smss + return messages } private fun launchSettings() { diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/MessagesAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/MessagesAdapter.kt new file mode 100644 index 00000000..c73fb0e4 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/MessagesAdapter.kt @@ -0,0 +1,65 @@ +package com.simplemobiletools.smsmessenger.adapters + +import android.view.Menu +import android.view.View +import android.view.ViewGroup +import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter +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.models.Message +import kotlinx.android.synthetic.main.item_message.view.* + +class MessagesAdapter( + activity: SimpleActivity, var messages: ArrayList, + recyclerView: MyRecyclerView, + fastScroller: FastScroller, + itemClick: (Any) -> Unit +) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { + + init { + setupDragListener(true) + } + + override fun getActionMenuId() = R.menu.cab_messages + + override fun prepareActionMode(menu: Menu) {} + + override fun actionItemPressed(id: Int) {} + + override fun getSelectableItemCount() = messages.size + + override fun getIsItemSelectable(position: Int) = true + + override fun getItemSelectionKey(position: Int) = messages.getOrNull(position)?.id + + override fun getItemKeyPosition(key: Int) = messages.indexOfFirst { it.id == key } + + override fun onActionModeCreated() {} + + override fun onActionModeDestroyed() {} + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = createViewHolder(R.layout.item_message, parent) + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + val message = messages[position] + holder.bindView(message, true, true) { itemView, layoutPosition -> + setupView(itemView, message) + } + bindViewHolder(holder) + } + + override fun getItemCount() = messages.size + + private fun getItemWithKey(key: Int): Message? = messages.firstOrNull { it.id == key } + + private fun getSelectedItems() = messages.filter { selectedKeys.contains(it.id) } as ArrayList + + private fun setupView(view: View, message: Message) { + view.apply { + view.message_address.text = message.address + view.message_body_short.text = message.body + } + } +} diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/SMSsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/SMSsAdapter.kt deleted file mode 100644 index 5e5e65be..00000000 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/SMSsAdapter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.simplemobiletools.smsmessenger.adapters - -import android.view.Menu -import android.view.View -import android.view.ViewGroup -import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter -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.models.SMS -import kotlinx.android.synthetic.main.item_sms.view.* - -class SMSsAdapter( - activity: SimpleActivity, var SMSs: ArrayList, recyclerView: MyRecyclerView, fastScroller: FastScroller, itemClick: (Any) -> Unit -) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { - - init { - setupDragListener(true) - } - - override fun getActionMenuId() = R.menu.cab_smss - - override fun prepareActionMode(menu: Menu) {} - - override fun actionItemPressed(id: Int) {} - - override fun getSelectableItemCount() = SMSs.size - - override fun getIsItemSelectable(position: Int) = true - - override fun getItemSelectionKey(position: Int) = SMSs.getOrNull(position)?.id - - override fun getItemKeyPosition(key: Int) = SMSs.indexOfFirst { it.id == key } - - override fun onActionModeCreated() {} - - override fun onActionModeDestroyed() {} - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = createViewHolder(R.layout.item_sms, parent) - - override fun onBindViewHolder(holder: ViewHolder, position: Int) { - val sms = SMSs[position] - holder.bindView(sms, true, true) { itemView, layoutPosition -> - setupView(itemView, sms) - } - bindViewHolder(holder) - } - - override fun getItemCount() = SMSs.size - - private fun getItemWithKey(key: Int): SMS? = SMSs.firstOrNull { it.id == key } - - private fun getSelectedItems() = SMSs.filter { selectedKeys.contains(it.id) } as ArrayList - - private fun setupView(view: View, sms: SMS) { - view.apply { - view.sms_address.text = sms.address - view.sms_message_short.text = sms.body - } - } -} diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/Message.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/Message.kt new file mode 100644 index 00000000..5c604737 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/Message.kt @@ -0,0 +1,3 @@ +package com.simplemobiletools.smsmessenger.models + +data class Message(val id: Int, val subject: String, val body: String, val type: Int, val address: String, val date: Int, val read: Boolean) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/SMS.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/SMS.kt deleted file mode 100644 index 7baffd96..00000000 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/SMS.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.simplemobiletools.smsmessenger.models - -data class SMS(val id: Int, val subject: String, val body: String, val type: Int, val address: String, val date: Int, val read: Boolean) diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index f2533b81..47aeafec 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -6,7 +6,7 @@ android:layout_height="match_parent"> diff --git a/app/src/main/res/layout/item_sms.xml b/app/src/main/res/layout/item_message.xml similarity index 83% rename from app/src/main/res/layout/item_sms.xml rename to app/src/main/res/layout/item_message.xml index 7b928c72..9352243b 100644 --- a/app/src/main/res/layout/item_sms.xml +++ b/app/src/main/res/layout/item_message.xml @@ -1,7 +1,7 @@