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" /> +