diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e25bbf6b..db618e40 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -141,6 +141,12 @@
android:label="@string/contact_details"
android:parentActivityName=".activities.ThreadActivity" />
+
+
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_conversation_details)
+
+ threadId = intent.getLongExtra(THREAD_ID, 0L)
+ ensureBackgroundThread {
+ conversation = conversationsDB.getConversationWithThreadId(threadId)
+ participants = getThreadParticipants(threadId, null)
+ runOnUiThread {
+ setupTextViews()
+ setupParticipants()
+ }
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ setupToolbar(conversation_details_toolbar, NavigationIcon.Arrow)
+ }
+
+ private fun setupTextViews() {
+ val textColor = getProperTextColor()
+ val headingColor = textColor.adjustAlpha(0.8f)
+
+ members_heading.setTextColor(headingColor)
+ conversation_name_heading.setTextColor(headingColor)
+ conversation_name.apply {
+ setTextColor(textColor)
+ ResourcesCompat.getDrawable(resources, R.drawable.ic_edit_vector, theme)?.apply {
+ applyColorFilter(textColor)
+ setCompoundDrawablesWithIntrinsicBounds(null, null, this, null)
+ }
+
+ text = conversation?.title
+ setOnClickListener {
+ RenameConversationDialog(this@ConversationDetailsActivity, conversation!!) { title ->
+ text = title
+ ensureBackgroundThread {
+ conversation = renameConversation(conversation!!, newTitle = title)
+ }
+ }
+ }
+ }
+ }
+
+ private fun setupParticipants() {
+ val adapter = ContactsAdapter(this, participants, participants_recyclerview) {
+ val contact = it as SimpleContact
+ val lookupKey = SimpleContactsHelper(this).getContactLookupKey(contact.rawId.toString())
+ val publicUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey)
+ runOnUiThread {
+ launchViewContactIntent(publicUri)
+ }
+ }
+ participants_recyclerview.adapter = adapter
+ }
+}
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 67f9be0f..822d4362 100644
--- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt
@@ -188,6 +188,7 @@ class ThreadActivity : SimpleActivity() {
thread_toolbar.menu.apply {
findItem(R.id.delete).isVisible = threadItems.isNotEmpty()
findItem(R.id.rename_conversation).isVisible = participants.size > 1 && conversation != null
+ findItem(R.id.conversation_details).isVisible = participants.size > 1 && conversation != null
findItem(R.id.block_number).title = addLockedLabelIfNeeded(R.string.block_number)
findItem(R.id.block_number).isVisible = isNougatPlus()
findItem(R.id.dial_number).isVisible = participants.size == 1
@@ -210,6 +211,7 @@ class ThreadActivity : SimpleActivity() {
R.id.block_number -> tryBlocking()
R.id.delete -> askConfirmDelete()
R.id.rename_conversation -> renameConversation()
+ R.id.conversation_details -> showConversationDetails()
R.id.add_number_to_contact -> addNumberToContact()
R.id.dial_number -> dialNumber()
R.id.manage_people -> managePeople()
@@ -851,6 +853,13 @@ class ThreadActivity : SimpleActivity() {
}
}
+ private fun showConversationDetails() {
+ Intent(this, ConversationDetailsActivity::class.java).apply {
+ putExtra(THREAD_ID, threadId)
+ startActivity(this)
+ }
+ }
+
@SuppressLint("MissingPermission")
private fun getThreadItems(): ArrayList {
val items = ArrayList()
diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/dialogs/RenameConversationDialog.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/dialogs/RenameConversationDialog.kt
index f5f8af71..a02deb02 100644
--- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/dialogs/RenameConversationDialog.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/dialogs/RenameConversationDialog.kt
@@ -24,6 +24,7 @@ class RenameConversationDialog(
val backgroundColor = activity.getProperBackgroundColor()
val view = (activity.layoutInflater.inflate(R.layout.dialog_rename_conversation, null) as ViewGroup).apply {
+ rename_conv_info.setTextColor(textColor)
rename_conv_input_layout.apply {
setColors(textColor, primaryColor, backgroundColor)
setBoxCornerRadiiResources(R.dimen.medium_margin, R.dimen.medium_margin, R.dimen.medium_margin, R.dimen.medium_margin)
diff --git a/app/src/main/res/layout/activity_conversation_details.xml b/app/src/main/res/layout/activity_conversation_details.xml
new file mode 100644
index 00000000..5a219a20
--- /dev/null
+++ b/app/src/main/res/layout/activity_conversation_details.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/menu/menu_thread.xml b/app/src/main/res/menu/menu_thread.xml
index a97bed23..bbcb4380 100644
--- a/app/src/main/res/menu/menu_thread.xml
+++ b/app/src/main/res/menu/menu_thread.xml
@@ -23,6 +23,11 @@
android:icon="@drawable/ic_edit_vector"
android:title="@string/rename_conversation"
app:showAsAction="ifRoom" />
+