From 5b439898d8abe50317208fda0effbf015b54720e Mon Sep 17 00:00:00 2001 From: Hardcore Sushi Date: Mon, 31 May 2021 11:42:42 +0200 Subject: [PATCH] Display trust level indicator in toolbar --- .../java/sushi/hardcore/aira/ChatActivity.kt | 23 +++++++++++++++---- app/src/main/res/layout/activity_chat.xml | 11 +++++---- app/src/main/res/layout/activity_main.xml | 1 + app/src/main/res/layout/profile_toolbar.xml | 8 +++++++ app/src/main/res/menu/chat_activity.xml | 12 +++++----- app/src/main/res/values/strings.xml | 1 + app/src/main/res/values/styles.xml | 4 ++++ 7 files changed, 45 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/sushi/hardcore/aira/ChatActivity.kt b/app/src/main/java/sushi/hardcore/aira/ChatActivity.kt index eba34cf..1ad7d09 100644 --- a/app/src/main/java/sushi/hardcore/aira/ChatActivity.kt +++ b/app/src/main/java/sushi/hardcore/aira/ChatActivity.kt @@ -9,6 +9,7 @@ import android.view.Menu import android.view.MenuItem import android.view.View import android.view.inputmethod.InputMethodManager +import android.widget.ImageView import android.widget.Toast import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AlertDialog @@ -93,9 +94,11 @@ class ChatActivity : ServiceBoundActivity() { chatAdapter.clear() val contact = airaService.contacts[sessionId] val avatar = if (contact == null) { + displayIconTrustLevel(false, false) sessionName = airaService.savedNames[sessionId] airaService.savedAvatars[sessionId] } else { + displayIconTrustLevel(true, contact.verified) sessionName = contact.name contact.avatar } @@ -110,7 +113,6 @@ class ChatActivity : ServiceBoundActivity() { } } if (contact != null) { - displayIconTrustLevel(true, contact.verified) loadMsgs(contact.uuid) } airaService.savedMsgs[sessionId]?.let { @@ -206,15 +208,28 @@ class ChatActivity : ServiceBoundActivity() { } private fun displayIconTrustLevel(isContact: Boolean, isVerified: Boolean) { + val setResource = fun (imageView: ImageView, resource: Int?) { + imageView.apply { + visibility = if (resource == null) { + View.GONE + } else { + setImageResource(resource) + View.VISIBLE + } + } + } when { isVerified -> { - binding.imageTrustLevel.setImageResource(R.drawable.ic_verified) + setResource(binding.toolbar.toolbarImageTrustLevel, R.drawable.ic_verified) + setResource(binding.bottomImageTrustLevel, R.drawable.ic_verified) } isContact -> { - binding.imageTrustLevel.setImageDrawable(null) + setResource(binding.toolbar.toolbarImageTrustLevel, null) + setResource(binding.bottomImageTrustLevel, null) } else -> { - binding.imageTrustLevel.setImageResource(R.drawable.ic_warning) + setResource(binding.toolbar.toolbarImageTrustLevel, R.drawable.ic_warning) + setResource(binding.bottomImageTrustLevel, R.drawable.ic_warning) } } } diff --git a/app/src/main/res/layout/activity_chat.xml b/app/src/main/res/layout/activity_chat.xml index c44c10b..5a1b6c3 100644 --- a/app/src/main/res/layout/activity_chat.xml +++ b/app/src/main/res/layout/activity_chat.xml @@ -34,14 +34,14 @@ app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintEnd_toStartOf="@id/image_trust_level"/> + app:layout_constraintEnd_toStartOf="@id/bottom_image_trust_level"/> + + \ No newline at end of file diff --git a/app/src/main/res/menu/chat_activity.xml b/app/src/main/res/menu/chat_activity.xml index 80542de..ea57687 100644 --- a/app/src/main/res/menu/chat_activity.xml +++ b/app/src/main/res/menu/chat_activity.xml @@ -3,10 +3,10 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> + android:icon="@drawable/ic_info" + android:title="@string/details"/> + android:icon="@drawable/ic_delete_conversation" + android:title="@string/delete_conversation" /> Choose avatar Send a messageā€¦ This session has no name ! + Invalid IP address Send file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 47c5fc0..d042dab 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -18,6 +18,10 @@ fitXY 5dp +