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 d0a484ce..c6d67219 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -50,10 +50,12 @@ class ThreadActivity : SimpleActivity() { private val PICK_ATTACHMENT_INTENT = 1 private var threadId = 0 + private var currentSIMCardIndex = 0 private var threadItems = ArrayList() private var bus: EventBus? = null private var participants = ArrayList() private var messages = ArrayList() + private val availableSIMCards = ArrayList() private var attachmentUris = LinkedHashSet() override fun onCreate(savedInstanceState: Bundle?) { @@ -266,10 +268,27 @@ class ThreadActivity : SimpleActivity() { val availableSIMs = SubscriptionManager.from(this).activeSubscriptionInfoList if (availableSIMs.size > 1) { + availableSIMs.forEachIndexed { index, subscriptionInfo -> + var label = subscriptionInfo.displayName.toString() + if (subscriptionInfo.number.isNotEmpty()) { + label += " (${subscriptionInfo.number})" + } + val SIMCard = SIMCard(index + 1, subscriptionInfo.subscriptionId, label) + availableSIMCards.add(SIMCard) + } + + currentSIMCardIndex = 0 thread_select_sim_icon.applyColorFilter(textColor) thread_select_sim_icon.beVisible() - thread_select_sim_icon.setOnClickListener { + thread_select_sim_number.beVisible() + if (availableSIMCards.isNotEmpty()) { + thread_select_sim_icon.setOnClickListener { + currentSIMCardIndex = (currentSIMCardIndex + 1) % availableSIMCards.size + val currentSIMCard = availableSIMCards[currentSIMCardIndex] + thread_select_sim_number.text = currentSIMCard.id.toString() + toast(currentSIMCard.label) + } } thread_select_sim_number.setTextColor(textColor.getContrastColor()) @@ -447,6 +466,11 @@ class ThreadActivity : SimpleActivity() { val settings = Settings() settings.useSystemSending = true + val SIMId = availableSIMCards.getOrNull(currentSIMCardIndex)?.subscriptionId + if (SIMId != null) { + settings.subscriptionId = SIMId + } + val transaction = Transaction(this, settings) val message = com.klinker.android.send_message.Message(msg, numbers) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/SIMCard.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/SIMCard.kt new file mode 100644 index 00000000..4d38b14b --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/models/SIMCard.kt @@ -0,0 +1,3 @@ +package com.simplemobiletools.smsmessenger.models + +data class SIMCard(val id: Int, val subscriptionId: Int, val label: String) diff --git a/app/src/main/res/layout/activity_thread.xml b/app/src/main/res/layout/activity_thread.xml index 6642f5d3..3978a078 100644 --- a/app/src/main/res/layout/activity_thread.xml +++ b/app/src/main/res/layout/activity_thread.xml @@ -173,7 +173,8 @@ android:alpha="0.9" android:background="?selectableItemBackgroundBorderless" android:padding="@dimen/normal_margin" - android:src="@drawable/ic_sim_vector" /> + android:src="@drawable/ic_sim_vector" + android:visibility="gone" />