From 6fb8d963a8b3e7ba19170b9c0dad199155e8c452 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 13 May 2020 13:44:43 +0200 Subject: [PATCH 01/10] store the subscription ID at incoming messages too --- app/build.gradle | 2 +- .../simplemobiletools/smsmessenger/extensions/Context.kt | 6 ++++-- .../simplemobiletools/smsmessenger/receivers/SmsReceiver.kt | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 8490e2a1..c6aa1a38 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,7 +56,7 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.27.24' + implementation 'com.simplemobiletools:commons:5.27.27' implementation 'org.greenrobot:eventbus:3.2.0' implementation 'com.klinkerapps:android-smsmms:5.2.6' implementation 'com.github.tibbi:IndicatorFastScroll:08f512858a' diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt index 8634f708..7f5db3d0 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -39,7 +39,8 @@ fun Context.getMessages(threadId: Int): ArrayList { Sms.ADDRESS, Sms.DATE, Sms.READ, - Sms.THREAD_ID + Sms.THREAD_ID, + Sms.SUBSCRIPTION_ID ) val selection = "${Sms.THREAD_ID} = ?" @@ -415,7 +416,7 @@ fun Context.getNameAndPhotoFromPhoneNumber(number: String): NamePhoto? { return NamePhoto(number, null) } -fun Context.insertNewSMS(address: String, subject: String, body: String, date: Long, read: Int, threadId: Long, type: Int) { +fun Context.insertNewSMS(address: String, subject: String, body: String, date: Long, read: Int, threadId: Long, type: Int, subscriptionId: Int) { val uri = Sms.CONTENT_URI val contentValues = ContentValues().apply { put(Sms.ADDRESS, address) @@ -425,6 +426,7 @@ fun Context.insertNewSMS(address: String, subject: String, body: String, date: L put(Sms.READ, read) put(Sms.THREAD_ID, threadId) put(Sms.TYPE, type) + put(Sms.SUBSCRIPTION_ID, subscriptionId) } contentResolver.insert(uri, contentValues) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt index 3649bc9d..884aa719 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt @@ -20,6 +20,7 @@ class SmsReceiver : BroadcastReceiver() { var threadId = 0L val type = Telephony.Sms.MESSAGE_TYPE_INBOX val read = 0 + val subscriptionId = intent.getIntExtra("subscription", -1) messages.forEach { address = it.originatingAddress ?: "" @@ -30,7 +31,7 @@ class SmsReceiver : BroadcastReceiver() { } if (!context.isNumberBlocked(address)) { - context.insertNewSMS(address, subject, body, date, read, threadId, type) + context.insertNewSMS(address, subject, body, date, read, threadId, type, subscriptionId) context.showReceivedMessageNotification(address, body, threadId.toInt()) refreshMessages() } From dcc98c0a25b8cd3b07f89c7c4e70042a5d520fc0 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 13 May 2020 13:49:12 +0200 Subject: [PATCH 02/10] properly fetch the SIM card ID at messages --- .../simplemobiletools/smsmessenger/extensions/Context.kt | 9 ++++++--- .../com/simplemobiletools/smsmessenger/models/Message.kt | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt index 7f5db3d0..12caccc8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -73,9 +73,10 @@ fun Context.getMessages(threadId: Int): ArrayList { val date = (cursor.getLongValue(Sms.DATE) / 1000).toInt() val read = cursor.getIntValue(Sms.READ) == 1 val thread = cursor.getIntValue(Sms.THREAD_ID) + val subscriptionId = cursor.getIntValue(Sms.SUBSCRIPTION_ID) val participant = SimpleContact(0, 0, senderName, photoUri, senderNumber) val isMMS = false - val message = Message(id, body, type, arrayListOf(participant), date, read, thread, isMMS, null, senderName, photoUri) + val message = Message(id, body, type, arrayListOf(participant), date, read, thread, isMMS, null, senderName, photoUri, subscriptionId) messages.add(message) } @@ -94,7 +95,8 @@ fun Context.getMMS(threadId: Int? = null, sortOrder: String? = null): ArrayList< Mms.DATE, Mms.READ, Mms.MESSAGE_BOX, - Mms.THREAD_ID + Mms.THREAD_ID, + Mms.SUBSCRIPTION_ID ) val selection = if (threadId == null) { @@ -118,6 +120,7 @@ fun Context.getMMS(threadId: Int? = null, sortOrder: String? = null): ArrayList< val date = cursor.getLongValue(Mms.DATE).toInt() val read = cursor.getIntValue(Mms.READ) == 1 val threadId = cursor.getIntValue(Mms.THREAD_ID) + val subscriptionId = cursor.getIntValue(Mms.SUBSCRIPTION_ID) val participants = if (threadParticipants.containsKey(threadId)) { threadParticipants[threadId]!! } else { @@ -141,7 +144,7 @@ fun Context.getMMS(threadId: Int? = null, sortOrder: String? = null): ArrayList< } } - val message = Message(mmsId, body, type, participants, date, read, threadId, isMMS, attachment, senderName, senderPhotoUri) + val message = Message(mmsId, body, type, participants, date, read, threadId, isMMS, attachment, senderName, senderPhotoUri, subscriptionId) messages.add(message) participants.forEach { 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 2b6f24c2..4285d527 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/Message.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/Message.kt @@ -5,6 +5,6 @@ import com.simplemobiletools.commons.models.SimpleContact data class Message( val id: Int, val body: String, val type: Int, val participants: ArrayList, val date: Int, val read: Boolean, val thread: Int, - val isMMS: Boolean, val attachment: MessageAttachment?, val senderName: String, val senderPhotoUri: String) : ThreadItem() { + val isMMS: Boolean, val attachment: MessageAttachment?, val senderName: String, val senderPhotoUri: String, val subscriptionId: Int) : ThreadItem() { fun isReceivedMessage() = type == Telephony.Sms.MESSAGE_TYPE_INBOX } From e4d01a760703d3b9570f7768b2aacab0734b7326 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 13 May 2020 14:58:20 +0200 Subject: [PATCH 03/10] ignore messages and contacts without number --- .../com/simplemobiletools/smsmessenger/extensions/Context.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt index 12caccc8..819fba47 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -50,7 +50,7 @@ fun Context.getMessages(threadId: Int): ArrayList { val blockStatus = HashMap() var messages = ArrayList() queryCursor(uri, projection, selection, selectionArgs, sortOrder, showErrors = true) { cursor -> - val senderNumber = cursor.getStringValue(Sms.ADDRESS) + val senderNumber = cursor.getStringValue(Sms.ADDRESS) ?: return@queryCursor val isNumberBlocked = if (blockStatus.containsKey(senderNumber)) { blockStatus[senderNumber]!! @@ -375,7 +375,7 @@ fun Context.getSuggestedContacts(): ArrayList { val sortOrder = "${Sms.DATE} DESC LIMIT 20" queryCursor(uri, projection, selection, selectionArgs, sortOrder, showErrors = true) { cursor -> - val senderNumber = cursor.getStringValue(Sms.ADDRESS) + val senderNumber = cursor.getStringValue(Sms.ADDRESS) ?: return@queryCursor val namePhoto = getNameAndPhotoFromPhoneNumber(senderNumber) if (namePhoto == null || namePhoto.name == senderNumber || isNumberBlocked(senderNumber)) { return@queryCursor From 516aab0d5c4e451dbd66f8b307831919faa4298a Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 13 May 2020 15:22:18 +0200 Subject: [PATCH 04/10] do not show Block Number at the conversation screen, it wont be used often --- app/src/main/res/menu/menu_thread.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/menu/menu_thread.xml b/app/src/main/res/menu/menu_thread.xml index 6a88a233..4787cb75 100644 --- a/app/src/main/res/menu/menu_thread.xml +++ b/app/src/main/res/menu/menu_thread.xml @@ -1,11 +1,6 @@ - + From 64bb563ef6422766119ed8208690e99ca741691f Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 13 May 2020 15:27:25 +0200 Subject: [PATCH 05/10] show the SIM card ID at messages --- .../smsmessenger/activities/ThreadActivity.kt | 10 ++++- .../smsmessenger/adapters/ThreadAdapter.kt | 10 +++++ .../smsmessenger/models/ThreadDateTime.kt | 2 +- .../main/res/layout/item_thread_date_time.xml | 42 ++++++++++++++++--- 4 files changed, 56 insertions(+), 8 deletions(-) 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 163efec9..479d531e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -370,16 +370,24 @@ class ThreadActivity : SimpleActivity() { showSelectedContacts() } + @SuppressLint("MissingPermission") private fun getThreadItems(): ArrayList { messages.sortBy { it.date } + val subscriptionIdToSimId = HashMap() + subscriptionIdToSimId[-1] = "?" + SubscriptionManager.from(this).activeSubscriptionInfoList.forEachIndexed { index, subscriptionInfo -> + subscriptionIdToSimId[subscriptionInfo.subscriptionId] = "${index + 1}" + } + val items = ArrayList() var prevDateTime = 0 var hadUnreadItems = false messages.forEach { // 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 (it.date - prevDateTime > MIN_DATE_TIME_DIFF_SECS) { - items.add(ThreadDateTime(it.date)) + val simCardID = subscriptionIdToSimId[it.subscriptionId] ?: "?" + items.add(ThreadDateTime(it.date, simCardID)) prevDateTime = it.date } items.add(it) 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 0a609b19..7eb239b1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt @@ -3,6 +3,7 @@ package com.simplemobiletools.smsmessenger.adapters import android.content.Intent import android.graphics.drawable.Drawable import android.net.Uri +import android.telephony.SubscriptionManager import android.view.Menu import android.view.View import android.view.ViewGroup @@ -42,6 +43,7 @@ class ThreadAdapter(activity: SimpleActivity, var messages: ArrayList Unit) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { private val roundedCornersRadius = resources.getDimension(R.dimen.normal_margin).toInt() + private val hasMultipleSIMCards = SubscriptionManager.from(activity).activeSubscriptionInfoList.size > 1 init { setupDragListener(true) @@ -283,6 +285,14 @@ class ThreadAdapter(activity: SimpleActivity, var messages: ArrayList - + android:layout_marginTop="@dimen/medium_margin"> + + + + + + + + From 98a70953244e702bfc276f64ad6006cf12367d8e Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 13 May 2020 15:34:45 +0200 Subject: [PATCH 06/10] handle activeSubscriptionInfoList returning null --- .../smsmessenger/activities/ThreadActivity.kt | 4 ++-- .../simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) 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 479d531e..cd545422 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -274,7 +274,7 @@ class ThreadActivity : SimpleActivity() { @SuppressLint("MissingPermission") private fun setupSIMSelector() { - val availableSIMs = SubscriptionManager.from(this).activeSubscriptionInfoList + val availableSIMs = SubscriptionManager.from(this).activeSubscriptionInfoList ?: return if (availableSIMs.size > 1) { availableSIMs.forEachIndexed { index, subscriptionInfo -> var label = subscriptionInfo.displayName.toString() @@ -376,7 +376,7 @@ class ThreadActivity : SimpleActivity() { val subscriptionIdToSimId = HashMap() subscriptionIdToSimId[-1] = "?" - SubscriptionManager.from(this).activeSubscriptionInfoList.forEachIndexed { index, subscriptionInfo -> + SubscriptionManager.from(this).activeSubscriptionInfoList?.forEachIndexed { index, subscriptionInfo -> subscriptionIdToSimId[subscriptionInfo.subscriptionId] = "${index + 1}" } 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 7eb239b1..0f5a6531 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt @@ -1,5 +1,6 @@ package com.simplemobiletools.smsmessenger.adapters +import android.annotation.SuppressLint import android.content.Intent import android.graphics.drawable.Drawable import android.net.Uri @@ -43,7 +44,8 @@ class ThreadAdapter(activity: SimpleActivity, var messages: ArrayList Unit) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { private val roundedCornersRadius = resources.getDimension(R.dimen.normal_margin).toInt() - private val hasMultipleSIMCards = SubscriptionManager.from(activity).activeSubscriptionInfoList.size > 1 + @SuppressLint("MissingPermission") + private val hasMultipleSIMCards = SubscriptionManager.from(activity).activeSubscriptionInfoList?.size ?: 0 > 1 init { setupDragListener(true) From d4e9c22d13a1091024b52a830a807a6ff515a838 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 13 May 2020 16:04:28 +0200 Subject: [PATCH 07/10] add a Mark As Read notification item --- app/src/main/AndroidManifest.xml | 9 ++++++++ .../smsmessenger/extensions/Context.kt | 21 ++++++++++++----- .../smsmessenger/helpers/Constants.kt | 5 ++++ .../receivers/MarkAsReadReceiver.kt | 23 +++++++++++++++++++ .../smsmessenger/receivers/MmsReceiver.kt | 2 +- .../smsmessenger/receivers/SmsReceiver.kt | 4 ++-- 6 files changed, 55 insertions(+), 9 deletions(-) create mode 100644 app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/MarkAsReadReceiver.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c2f17766..770b80db 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -154,6 +154,15 @@ android:exported="true" android:taskAffinity="${applicationId}.SMS_SENT" /> + + + + + + { + val messageId = intent.getIntExtra(MESSAGE_ID, 0) + val isMMS = intent.getBooleanExtra(MESSAGE_IS_MMS, false) + context.markMessageRead(messageId, isMMS) + context.notificationManager.cancel(messageId) + } + } + } +} diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/MmsReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/MmsReceiver.kt index a35b51f5..865fb5a3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/MmsReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/MmsReceiver.kt @@ -31,7 +31,7 @@ class MmsReceiver : com.klinker.android.send_message.MmsReceivedReceiver() { null } - context.showReceivedMessageNotification(address, mms.body, mms.thread, glideBitmap) + context.showReceivedMessageNotification(address, mms.body, mms.thread, glideBitmap, mms.id, true) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt index 884aa719..17c6f62b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt @@ -31,8 +31,8 @@ class SmsReceiver : BroadcastReceiver() { } if (!context.isNumberBlocked(address)) { - context.insertNewSMS(address, subject, body, date, read, threadId, type, subscriptionId) - context.showReceivedMessageNotification(address, body, threadId.toInt()) + val messageId = context.insertNewSMS(address, subject, body, date, read, threadId, type, subscriptionId) + context.showReceivedMessageNotification(address, body, threadId.toInt(), null, messageId, false) refreshMessages() } } From 8d663b994d39ec6e33d56bfadfeb99f56cbfe401 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 13 May 2020 16:43:30 +0200 Subject: [PATCH 08/10] allow saving received phone numbers to contacts --- app/build.gradle | 2 +- .../adapters/ConversationsAdapter.kt | 27 ++++++++++++++++++- .../smsmessenger/extensions/Context.kt | 2 +- .../smsmessenger/models/Conversation.kt | 3 +-- app/src/main/res/menu/cab_conversations.xml | 5 ++++ 5 files changed, 34 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index c6aa1a38..bd1c886f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,7 +56,7 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.27.27' + implementation 'com.simplemobiletools:commons:5.27.29' implementation 'org.greenrobot:eventbus:3.2.0' implementation 'com.klinkerapps:android-smsmms:5.2.6' implementation 'com.github.tibbi:IndicatorFastScroll:08f512858a' diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt index 2677c10f..ed427e89 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -1,5 +1,6 @@ package com.simplemobiletools.smsmessenger.adapters +import android.content.Intent import android.graphics.Typeface import android.view.Menu import android.view.View @@ -9,6 +10,8 @@ import com.bumptech.glide.Glide import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter import com.simplemobiletools.commons.dialogs.ConfirmationDialog import com.simplemobiletools.commons.extensions.formatDateOrTime +import com.simplemobiletools.commons.extensions.toast +import com.simplemobiletools.commons.helpers.KEY_PHONE import com.simplemobiletools.commons.helpers.SimpleContactsHelper import com.simplemobiletools.commons.helpers.ensureBackgroundThread import com.simplemobiletools.commons.views.FastScroller @@ -29,7 +32,11 @@ class ConversationsAdapter(activity: SimpleActivity, var conversations: ArrayLis override fun getActionMenuId() = R.menu.cab_conversations - override fun prepareActionMode(menu: Menu) {} + override fun prepareActionMode(menu: Menu) { + menu.apply { + findItem(R.id.cab_add_number_to_contact).isVisible = isOneItemSelected() && getSelectedItems().firstOrNull()?.isGroupConversation == false + } + } override fun actionItemPressed(id: Int) { if (selectedKeys.isEmpty()) { @@ -37,6 +44,7 @@ class ConversationsAdapter(activity: SimpleActivity, var conversations: ArrayLis } when (id) { + R.id.cab_add_number_to_contact -> addNumberToContact() R.id.cab_select_all -> selectAll() R.id.cab_delete -> askConfirmDelete() } @@ -105,6 +113,23 @@ class ConversationsAdapter(activity: SimpleActivity, var conversations: ArrayLis } } + private fun addNumberToContact() { + val conversation = getSelectedItems().firstOrNull() ?: return + Intent().apply { + action = Intent.ACTION_INSERT_OR_EDIT + type = "vnd.android.cursor.item/contact" + putExtra(KEY_PHONE, conversation.phoneNumber) + + if (resolveActivity(activity.packageManager) != null) { + activity.startActivity(this) + } else { + activity.toast(R.string.no_app_found) + } + } + } + + private fun getSelectedItems() = conversations.filter { selectedKeys.contains(it.id) } as ArrayList + override fun onViewRecycled(holder: ViewHolder) { super.onViewRecycled(holder) if (!activity.isDestroyed && !activity.isFinishing) { diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt index 9ef340ef..dee4134e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -210,7 +210,7 @@ fun Context.getConversations(): ArrayList { val title = TextUtils.join(", ", names.toTypedArray()) val photoUri = if (phoneNumbers.size == 1) SimpleContactsHelper(this).getPhotoUriFromPhoneNumber(phoneNumbers.first()) else "" val isGroupConversation = phoneNumbers.size > 1 - val conversation = Conversation(id, snippet, date.toInt(), read, title, photoUri, isGroupConversation) + val conversation = Conversation(id, snippet, date.toInt(), read, title, photoUri, isGroupConversation, phoneNumbers.first()) conversations.add(conversation) } diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/Conversation.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/Conversation.kt index 81420432..65329fc8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/Conversation.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/Conversation.kt @@ -2,5 +2,4 @@ package com.simplemobiletools.smsmessenger.models data class Conversation( val id: Int, val snippet: String, val date: Int, val read: Boolean, val title: String, val photoUri: String, - val isGroupConversation: Boolean -) + val isGroupConversation: Boolean, val phoneNumber: String) diff --git a/app/src/main/res/menu/cab_conversations.xml b/app/src/main/res/menu/cab_conversations.xml index 2a2792e0..54c3891e 100644 --- a/app/src/main/res/menu/cab_conversations.xml +++ b/app/src/main/res/menu/cab_conversations.xml @@ -1,6 +1,11 @@ + Date: Wed, 13 May 2020 16:47:26 +0200 Subject: [PATCH 09/10] update version to 5.1.2 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index bd1c886f..46335361 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId "com.simplemobiletools.smsmessenger" minSdkVersion 22 targetSdkVersion 29 - versionCode 4 - versionName "5.1.1" + versionCode 5 + versionName "5.1.2" setProperty("archivesBaseName", "sms-messenger") } From 78d9525587ad649f1d5233289b835aa8b63a9e12 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 13 May 2020 16:47:33 +0200 Subject: [PATCH 10/10] updating changelog --- CHANGELOG.md | 7 +++++++ fastlane/metadata/android/en-US/changelogs/5.txt | 3 +++ 2 files changed, 10 insertions(+) create mode 100644 fastlane/metadata/android/en-US/changelogs/5.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d621cc5..569884ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ Changelog ========== +Version 5.1.2 *(2020-05-13)* +---------------------------- + + * Improved the handling of multiple SIM cards at once + * Added a Mark as Read action button in incoming message notifications + * Allow saving unknown numbers from the main screen easily + Version 5.1.1 *(2020-05-08)* ---------------------------- diff --git a/fastlane/metadata/android/en-US/changelogs/5.txt b/fastlane/metadata/android/en-US/changelogs/5.txt new file mode 100644 index 00000000..196c855e --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/5.txt @@ -0,0 +1,3 @@ + * Improved the handling of multiple SIM cards at once + * Added a Mark as Read action button in incoming message notifications + * Allow saving unknown numbers from the main screen easily