From 7a888a6114403c5f7b9f4143fd8ae55d98db6e59 Mon Sep 17 00:00:00 2001 From: johndoe4221 Date: Thu, 14 Jul 2022 19:23:07 +0200 Subject: [PATCH] feat: [1052] show trust-indicator in contact list --- .../contact/ContactItemViewHolder.java | 34 +++++++++++++++++ .../src/main/res/layout/list_item_contact.xml | 38 +++++++++++++++++-- 2 files changed, 68 insertions(+), 4 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactItemViewHolder.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactItemViewHolder.java index 622bfe007..300ef37bd 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactItemViewHolder.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactItemViewHolder.java @@ -7,6 +7,8 @@ import android.widget.TextView; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.briar.R; +import org.briarproject.briar.android.view.TrustIndicatorView; +import org.briarproject.briar.api.identity.AuthorInfo; import javax.annotation.Nullable; @@ -26,6 +28,10 @@ public class ContactItemViewHolder protected final TextView name; @Nullable protected final ImageView bulb; + @Nullable + protected final TrustIndicatorView trustIndicator; + @Nullable + protected final TextView trustIndicatorDescription; public ContactItemViewHolder(View v) { super(v); @@ -35,6 +41,11 @@ public class ContactItemViewHolder name = v.findViewById(R.id.nameView); // this can be null as not all layouts that use this ViewHolder have it bulb = v.findViewById(R.id.bulbView); + // this can be null as not all layouts that use this ViewHolder have it + trustIndicator = v.findViewById(R.id.trustIndicator); + // this can be null as not all layouts that use this ViewHolder have it + trustIndicatorDescription = + v.findViewById(R.id.trustIndicatorDescription); } protected void bind(I item, @Nullable OnContactClickListener listener) { @@ -50,6 +61,29 @@ public class ContactItemViewHolder } } + if (trustIndicator != null && trustIndicatorDescription != null) { + final AuthorInfo.Status status = item.getAuthorInfo().getStatus(); + trustIndicator.setTrustLevel(status); + + switch (status) { + case UNVERIFIED: + trustIndicatorDescription.setText( + R.string.peer_trust_level_unverified); + break; + case VERIFIED: + trustIndicatorDescription.setText( + R.string.peer_trust_level_verified); + break; + case OURSELVES: + trustIndicatorDescription.setText( + R.string.peer_trust_level_ourselves); + break; + default: + trustIndicatorDescription.setText( + R.string.peer_trust_level_stranger); + } + } + layout.setOnClickListener(v -> { if (listener != null) listener.onItemClick(avatar, item); }); diff --git a/briar-android/src/main/res/layout/list_item_contact.xml b/briar-android/src/main/res/layout/list_item_contact.xml index a59a0e8d2..64ddebf97 100644 --- a/briar-android/src/main/res/layout/list_item_contact.xml +++ b/briar-android/src/main/res/layout/list_item_contact.xml @@ -55,13 +55,42 @@ android:paddingEnd="@dimen/margin_medium" android:textColor="?android:attr/textColorPrimary" android:textSize="@dimen/text_size_medium" - app:layout_constraintBottom_toTopOf="@+id/dateView" + app:layout_constraintBottom_toTopOf="@+id/trustIndicatorDescription" app:layout_constraintEnd_toStartOf="@+id/bulbView" + app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@+id/avatarFrameView" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_chainStyle="packed" tools:text="This is a name of a contact" /> + + + +