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 e0872342..938dccbe 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -84,7 +84,6 @@ class ThreadActivity : SimpleActivity() { override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.menu_thread, menu) menu.apply { - findItem(R.id.manage_people).isVisible = false findItem(R.id.delete).isVisible = threadItems.isNotEmpty() } @@ -128,6 +127,7 @@ class ThreadActivity : SimpleActivity() { private fun setupButtons() { thread_type_message.setColors(config.textColor, config.primaryColor, config.backgroundColor) thread_send_message.applyColorFilter(config.textColor) + confirm_manage_contacts.applyColorFilter(config.textColor) thread_send_message.setOnClickListener { val msg = thread_type_message.value @@ -151,6 +151,19 @@ class ThreadActivity : SimpleActivity() { thread_send_message.isClickable = it.isNotEmpty() thread_send_message.alpha = if (it.isEmpty()) 0.4f else 0.9f } + + confirm_manage_contacts.setOnClickListener { + hideKeyboard() + thread_add_contacts.beGone() + + val numbers = selectedContacts.map { it.phoneNumber }.toSet() + val threadId = getThreadId(numbers).toInt() + Intent(this, ThreadActivity::class.java).apply { + putExtra(THREAD_ID, threadId) + addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP) + startActivity(this) + } + } } private fun blockNumber() { @@ -259,8 +272,9 @@ class ThreadActivity : SimpleActivity() { newLinearLayout.orientation = LinearLayout.HORIZONTAL val sideMargin = (selected_contacts.layoutParams as RelativeLayout.LayoutParams).leftMargin - val parentWidth = realScreenSize.x - sideMargin * 2 val mediumMargin = resources.getDimension(R.dimen.medium_margin).toInt() + val parentWidth = realScreenSize.x - sideMargin * 2 + val firstRowWidth = parentWidth - resources.getDimension(R.dimen.normal_icon_size).toInt() + sideMargin / 2 var widthSoFar = 0 var isFirstRow = true for (i in views.indices) { @@ -276,7 +290,8 @@ class ThreadActivity : SimpleActivity() { LL.measure(0, 0) widthSoFar += views[i].measuredWidth + mediumMargin - if (widthSoFar >= parentWidth) { + val checkWidth = if (isFirstRow) firstRowWidth else parentWidth + if (widthSoFar >= checkWidth) { isFirstRow = false selected_contacts.addView(newLinearLayout) newLinearLayout = LinearLayout(this) 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 b99bd52e..c3ffb357 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -472,6 +472,15 @@ fun Context.getThreadId(address: String): Long { } } +@SuppressLint("NewApi") +fun Context.getThreadId(addresses: Set): Long { + return if (isMarshmallowPlus()) { + Telephony.Threads.getOrCreateThreadId(this, addresses) + } else { + 0 + } +} + fun Context.isNumberBlocked(number: String): Boolean { val blockedNumbers = getBlockedNumbers() val numberToCompare = number.trimToComparableNumber() diff --git a/app/src/main/res/layout/activity_thread.xml b/app/src/main/res/layout/activity_thread.xml index d426a9e4..3b71df0d 100644 --- a/app/src/main/res/layout/activity_thread.xml +++ b/app/src/main/res/layout/activity_thread.xml @@ -1,6 +1,7 @@ + android:visibility="gone" + tools:visibility="visible"> + +