From dc708438a623bb73a0f558c9935ff7413c398057 Mon Sep 17 00:00:00 2001 From: Valere Date: Tue, 26 Oct 2021 10:14:59 +0200 Subject: [PATCH 1/4] Update shields to match web --- .../src/main/res/drawable/ic_shield_black.xml | 9 +++---- .../main/res/drawable/ic_shield_custom.xml | 13 ++++------ .../main/res/drawable/ic_shield_trusted.xml | 14 ++++------- .../main/res/drawable/ic_shield_warning.xml | 17 +++++-------- .../res/drawable/ic_shield_warning_small.xml | 25 ++++++++----------- 5 files changed, 29 insertions(+), 49 deletions(-) diff --git a/vector/src/main/res/drawable/ic_shield_black.xml b/vector/src/main/res/drawable/ic_shield_black.xml index a87a84547a..8ab70d981b 100644 --- a/vector/src/main/res/drawable/ic_shield_black.xml +++ b/vector/src/main/res/drawable/ic_shield_black.xml @@ -5,10 +5,7 @@ android:viewportHeight="24"> + android:pathData="M12.0077,23.4869C12.0051,23.4875 12.0025,23.4881 12,23.4886C11.9975,23.4881 11.9949,23.4875 11.9923,23.4869C11.9204,23.4706 11.8129,23.4452 11.6749,23.4092C11.3989,23.3373 11.0015,23.2235 10.5233,23.0575C9.5654,22.725 8.2921,22.186 7.0225,21.3608C4.4897,19.7145 2,16.954 2,12.405V3.4496L12,0.521L22,3.4496V12.405C22,16.954 19.5103,19.7145 16.9775,21.3608C15.7079,22.186 14.4346,22.725 13.4767,23.0575C12.9985,23.2235 12.6011,23.3373 12.3251,23.4092C12.1871,23.4452 12.0796,23.4706 12.0077,23.4869Z" + android:fillColor="#17191C" + android:strokeColor="#ffffff"/> diff --git a/vector/src/main/res/drawable/ic_shield_custom.xml b/vector/src/main/res/drawable/ic_shield_custom.xml index cb5e98c033..ca58f028d9 100644 --- a/vector/src/main/res/drawable/ic_shield_custom.xml +++ b/vector/src/main/res/drawable/ic_shield_custom.xml @@ -3,12 +3,9 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - + diff --git a/vector/src/main/res/drawable/ic_shield_trusted.xml b/vector/src/main/res/drawable/ic_shield_trusted.xml index 56f0aa0b63..cac0cfcaf6 100644 --- a/vector/src/main/res/drawable/ic_shield_trusted.xml +++ b/vector/src/main/res/drawable/ic_shield_trusted.xml @@ -5,14 +5,10 @@ android:viewportHeight="24"> + android:pathData="M12.0077,23.4869C12.0051,23.4875 12.0025,23.4881 12,23.4886C11.9975,23.4881 11.9949,23.4875 11.9923,23.4869C11.9204,23.4706 11.8129,23.4452 11.6749,23.4092C11.3989,23.3373 11.0015,23.2235 10.5233,23.0575C9.5654,22.725 8.2921,22.186 7.0225,21.3608C4.4897,19.7145 2,16.954 2,12.405V3.4496L12,0.521L22,3.4496V12.405C22,16.954 19.5103,19.7145 16.9775,21.3608C15.7079,22.186 14.4346,22.725 13.4767,23.0575C12.9985,23.2235 12.6011,23.3373 12.3251,23.4092C12.1871,23.4452 12.0796,23.4706 12.0077,23.4869Z" + android:fillColor="#0DBD8B" + android:strokeColor="#ffffff"/> + android:pathData="M17.4157,6.8094C17.1457,6.5244 16.6957,6.5094 16.4107,6.7794L10.0057,12.7794L7.6507,11.1294C7.3357,10.9194 6.9007,10.9194 6.6007,11.1894C6.2407,11.4894 6.2107,12.0294 6.5107,12.3894L9.2257,15.5094C9.2707,15.5544 9.3157,15.6144 9.3757,15.6444C9.8857,16.0644 10.6507,15.9894 11.0707,15.4794L11.1157,15.4194L17.4457,7.7544C17.6557,7.4844 17.6557,7.0794 17.4157,6.8094Z" + android:fillColor="#ffffff"/> diff --git a/vector/src/main/res/drawable/ic_shield_warning.xml b/vector/src/main/res/drawable/ic_shield_warning.xml index 387e14f52c..ace7d7dbae 100644 --- a/vector/src/main/res/drawable/ic_shield_warning.xml +++ b/vector/src/main/res/drawable/ic_shield_warning.xml @@ -5,16 +5,11 @@ android:viewportHeight="24"> + android:pathData="M12.0077,23.4869C12.0051,23.4875 12.0025,23.4881 12,23.4886C11.9975,23.4881 11.9949,23.4875 11.9923,23.4869C11.9204,23.4706 11.8129,23.4452 11.6749,23.4092C11.3989,23.3373 11.0015,23.2235 10.5233,23.0575C9.5654,22.725 8.2921,22.186 7.0225,21.3608C4.4897,19.7145 2,16.954 2,12.405V3.4496L12,0.521L22,3.4496V12.405C22,16.954 19.5103,19.7145 16.9775,21.3608C15.7079,22.186 14.4346,22.725 13.4767,23.0575C12.9985,23.2235 12.6011,23.3373 12.3251,23.4092C12.1871,23.4452 12.0796,23.4706 12.0077,23.4869Z" + android:fillColor="#FF4B55" + android:strokeColor="#ffffff"/> - + android:pathData="M10.8527,8.0725C10.7964,7.4313 11.2689,6.8688 11.9102,6.8238C12.5402,6.7788 13.1027,7.2513 13.1702,7.8925V8.0725L12.8102,12.5725C12.7764,12.9888 12.4277,13.3038 12.0114,13.3038H11.9439C11.5502,13.27 11.2464,12.9663 11.2127,12.5725L10.8527,8.0725ZM12.9888,15.5076C12.9888,16.0543 12.5456,16.4976 11.9988,16.4976C11.452,16.4976 11.0088,16.0543 11.0088,15.5076C11.0088,14.9608 11.452,14.5176 11.9988,14.5176C12.5456,14.5176 12.9888,14.9608 12.9888,15.5076Z" + android:fillColor="#ffffff" + android:fillType="evenOdd"/> diff --git a/vector/src/main/res/drawable/ic_shield_warning_small.xml b/vector/src/main/res/drawable/ic_shield_warning_small.xml index d42add32ea..69c1c70bc7 100644 --- a/vector/src/main/res/drawable/ic_shield_warning_small.xml +++ b/vector/src/main/res/drawable/ic_shield_warning_small.xml @@ -1,20 +1,15 @@ + android:width="12dp" + android:height="12dp" + android:viewportWidth="12" + android:viewportHeight="12"> + android:pathData="M6.0995,11.4627C6.0611,11.4727 6.0278,11.481 6,11.4876C5.9722,11.481 5.9389,11.4727 5.9005,11.4627C5.768,11.4282 5.5757,11.3731 5.3437,11.2926C4.8779,11.1309 4.2608,10.8694 3.6475,10.4708C2.4272,9.6776 1.25,8.3665 1.25,6.2025V1.9121L6,0.521L10.75,1.9121V6.2025C10.75,8.3665 9.5728,9.6776 8.3525,10.4708C7.7392,10.8694 7.1221,11.1309 6.6563,11.2926C6.4243,11.3731 6.232,11.4282 6.0995,11.4627Z" + android:fillColor="#FF4B55" + android:strokeColor="#ffffff"/> - + android:pathData="M5.4263,4.0363C5.3982,3.7156 5.6345,3.4344 5.9551,3.4119C6.2701,3.3894 6.5513,3.6256 6.5851,3.9463V4.0363L6.4051,6.2863C6.3882,6.4944 6.2138,6.6519 6.0057,6.6519H5.972C5.7751,6.635 5.6232,6.4831 5.6063,6.2863L5.4263,4.0363ZM6.4944,7.7538C6.4944,8.0272 6.2728,8.2488 5.9994,8.2488C5.726,8.2488 5.5044,8.0272 5.5044,7.7538C5.5044,7.4804 5.726,7.2588 5.9994,7.2588C6.2728,7.2588 6.4944,7.4804 6.4944,7.7538Z" + android:fillColor="#ffffff" + android:fillType="evenOdd"/> From 1a204c6b5a90f34d2584e732d9f84c3196a78870 Mon Sep 17 00:00:00 2001 From: Valere Date: Wed, 17 Nov 2021 09:26:38 +0100 Subject: [PATCH 2/4] Use borderless shield for verification (web parity) --- .../BottomSheetVerificationBigImageItem.kt | 19 ++++++++++++++++--- .../drawable/ic_shield_trusted_no_border.xml | 12 ++++++++++++ .../drawable/ic_shield_warning_no_border.xml | 12 ++++++++++++ .../layout/item_verification_big_image.xml | 5 ++++- vector/src/main/res/values/strings.xml | 4 ++-- 5 files changed, 46 insertions(+), 6 deletions(-) create mode 100644 vector/src/main/res/drawable/ic_shield_trusted_no_border.xml create mode 100644 vector/src/main/res/drawable/ic_shield_warning_no_border.xml diff --git a/vector/src/main/java/im/vector/app/features/crypto/verification/epoxy/BottomSheetVerificationBigImageItem.kt b/vector/src/main/java/im/vector/app/features/crypto/verification/epoxy/BottomSheetVerificationBigImageItem.kt index d0d7e5013b..d1d323f95c 100644 --- a/vector/src/main/java/im/vector/app/features/crypto/verification/epoxy/BottomSheetVerificationBigImageItem.kt +++ b/vector/src/main/java/im/vector/app/features/crypto/verification/epoxy/BottomSheetVerificationBigImageItem.kt @@ -16,12 +16,12 @@ */ package im.vector.app.features.crypto.verification.epoxy +import android.widget.ImageView import com.airbnb.epoxy.EpoxyAttribute import com.airbnb.epoxy.EpoxyModelClass import im.vector.app.R import im.vector.app.core.epoxy.VectorEpoxyHolder import im.vector.app.core.epoxy.VectorEpoxyModel -import im.vector.app.core.ui.views.ShieldImageView import org.matrix.android.sdk.api.crypto.RoomEncryptionTrustLevel /** @@ -35,10 +35,23 @@ abstract class BottomSheetVerificationBigImageItem : VectorEpoxyModel { + holder.image.contentDescription = holder.view.context.getString(R.string.a11y_trust_level_default) + holder.image.setImageResource(R.drawable.ic_shield_black) + } + RoomEncryptionTrustLevel.Warning -> { + holder.image.contentDescription = holder.view.context.getString(R.string.a11y_trust_level_warning) + holder.image.setImageResource(R.drawable.ic_shield_warning_no_border) + } + RoomEncryptionTrustLevel.Trusted -> { + holder.image.contentDescription = holder.view.context.getString(R.string.a11y_trust_level_trusted) + holder.image.setImageResource(R.drawable.ic_shield_trusted_no_border) + } + } } class Holder : VectorEpoxyHolder() { - val image by bind(R.id.itemVerificationBigImage) + val image by bind(R.id.itemVerificationBigImage) } } diff --git a/vector/src/main/res/drawable/ic_shield_trusted_no_border.xml b/vector/src/main/res/drawable/ic_shield_trusted_no_border.xml new file mode 100644 index 0000000000..2266c23548 --- /dev/null +++ b/vector/src/main/res/drawable/ic_shield_trusted_no_border.xml @@ -0,0 +1,12 @@ + + + + diff --git a/vector/src/main/res/drawable/ic_shield_warning_no_border.xml b/vector/src/main/res/drawable/ic_shield_warning_no_border.xml new file mode 100644 index 0000000000..2266c23548 --- /dev/null +++ b/vector/src/main/res/drawable/ic_shield_warning_no_border.xml @@ -0,0 +1,12 @@ + + + + diff --git a/vector/src/main/res/layout/item_verification_big_image.xml b/vector/src/main/res/layout/item_verification_big_image.xml index 8d23f342cd..7c036d298f 100644 --- a/vector/src/main/res/layout/item_verification_big_image.xml +++ b/vector/src/main/res/layout/item_verification_big_image.xml @@ -1,5 +1,8 @@ -QR code - Almost there! Is %s showing the same shield? + Almost there! Is %s showing a tick? Yes No @@ -3051,7 +3051,7 @@ Add a topic "Topic: " - Almost there! Is the other device showing the same shield? + Almost there! Is the other device showing a tick? Almost there! Waiting for confirmation… Waiting for %s… From cedf553602a14da859f80e787375823007546cd4 Mon Sep 17 00:00:00 2001 From: Valere Date: Wed, 17 Nov 2021 09:28:22 +0100 Subject: [PATCH 3/4] Add change log --- changelog.d/4338.bugfix | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog.d/4338.bugfix diff --git a/changelog.d/4338.bugfix b/changelog.d/4338.bugfix new file mode 100644 index 0000000000..539c32672c --- /dev/null +++ b/changelog.d/4338.bugfix @@ -0,0 +1 @@ +Make the verification shields the same in Element Web and Element Android \ No newline at end of file From 78bdef4e2d3f2eec67b67f93637052ee25881b3e Mon Sep 17 00:00:00 2001 From: Valere Date: Wed, 17 Nov 2021 16:37:16 +0100 Subject: [PATCH 4/4] Code review --- .../app/core/ui/views/ShieldImageView.kt | 17 +++++++++++++---- .../BottomSheetVerificationBigImageItem.kt | 19 +++---------------- .../drawable/ic_shield_black_no_border.xml | 9 +++++++++ .../drawable/ic_shield_warning_no_border.xml | 14 ++++++++++---- .../layout/item_verification_big_image.xml | 5 +---- 5 files changed, 36 insertions(+), 28 deletions(-) create mode 100644 vector/src/main/res/drawable/ic_shield_black_no_border.xml diff --git a/vector/src/main/java/im/vector/app/core/ui/views/ShieldImageView.kt b/vector/src/main/java/im/vector/app/core/ui/views/ShieldImageView.kt index 8b127307ce..44724f7954 100644 --- a/vector/src/main/java/im/vector/app/core/ui/views/ShieldImageView.kt +++ b/vector/src/main/java/im/vector/app/core/ui/views/ShieldImageView.kt @@ -36,21 +36,30 @@ class ShieldImageView @JvmOverloads constructor( } } - fun render(roomEncryptionTrustLevel: RoomEncryptionTrustLevel?) { + fun render(roomEncryptionTrustLevel: RoomEncryptionTrustLevel?, borderLess: Boolean = false) { isVisible = roomEncryptionTrustLevel != null when (roomEncryptionTrustLevel) { RoomEncryptionTrustLevel.Default -> { contentDescription = context.getString(R.string.a11y_trust_level_default) - setImageResource(R.drawable.ic_shield_black) + setImageResource( + if (borderLess) R.drawable.ic_shield_black_no_border + else R.drawable.ic_shield_black + ) } RoomEncryptionTrustLevel.Warning -> { contentDescription = context.getString(R.string.a11y_trust_level_warning) - setImageResource(R.drawable.ic_shield_warning) + setImageResource( + if (borderLess) R.drawable.ic_shield_warning_no_border + else R.drawable.ic_shield_warning + ) } RoomEncryptionTrustLevel.Trusted -> { contentDescription = context.getString(R.string.a11y_trust_level_trusted) - setImageResource(R.drawable.ic_shield_trusted) + setImageResource( + if (borderLess) R.drawable.ic_shield_trusted_no_border + else R.drawable.ic_shield_trusted + ) } } } diff --git a/vector/src/main/java/im/vector/app/features/crypto/verification/epoxy/BottomSheetVerificationBigImageItem.kt b/vector/src/main/java/im/vector/app/features/crypto/verification/epoxy/BottomSheetVerificationBigImageItem.kt index d1d323f95c..b15f857c3a 100644 --- a/vector/src/main/java/im/vector/app/features/crypto/verification/epoxy/BottomSheetVerificationBigImageItem.kt +++ b/vector/src/main/java/im/vector/app/features/crypto/verification/epoxy/BottomSheetVerificationBigImageItem.kt @@ -16,12 +16,12 @@ */ package im.vector.app.features.crypto.verification.epoxy -import android.widget.ImageView import com.airbnb.epoxy.EpoxyAttribute import com.airbnb.epoxy.EpoxyModelClass import im.vector.app.R import im.vector.app.core.epoxy.VectorEpoxyHolder import im.vector.app.core.epoxy.VectorEpoxyModel +import im.vector.app.core.ui.views.ShieldImageView import org.matrix.android.sdk.api.crypto.RoomEncryptionTrustLevel /** @@ -35,23 +35,10 @@ abstract class BottomSheetVerificationBigImageItem : VectorEpoxyModel { - holder.image.contentDescription = holder.view.context.getString(R.string.a11y_trust_level_default) - holder.image.setImageResource(R.drawable.ic_shield_black) - } - RoomEncryptionTrustLevel.Warning -> { - holder.image.contentDescription = holder.view.context.getString(R.string.a11y_trust_level_warning) - holder.image.setImageResource(R.drawable.ic_shield_warning_no_border) - } - RoomEncryptionTrustLevel.Trusted -> { - holder.image.contentDescription = holder.view.context.getString(R.string.a11y_trust_level_trusted) - holder.image.setImageResource(R.drawable.ic_shield_trusted_no_border) - } - } + holder.image.render(roomEncryptionTrustLevel, borderLess = true) } class Holder : VectorEpoxyHolder() { - val image by bind(R.id.itemVerificationBigImage) + val image by bind(R.id.itemVerificationBigImage) } } diff --git a/vector/src/main/res/drawable/ic_shield_black_no_border.xml b/vector/src/main/res/drawable/ic_shield_black_no_border.xml new file mode 100644 index 0000000000..1e322c77c3 --- /dev/null +++ b/vector/src/main/res/drawable/ic_shield_black_no_border.xml @@ -0,0 +1,9 @@ + + + diff --git a/vector/src/main/res/drawable/ic_shield_warning_no_border.xml b/vector/src/main/res/drawable/ic_shield_warning_no_border.xml index 2266c23548..49698f273f 100644 --- a/vector/src/main/res/drawable/ic_shield_warning_no_border.xml +++ b/vector/src/main/res/drawable/ic_shield_warning_no_border.xml @@ -4,9 +4,15 @@ android:viewportWidth="24" android:viewportHeight="24"> + android:strokeWidth="1" + android:pathData="M12.0077,23.4869C12.0051,23.4875 12.0025,23.4881 12,23.4886C11.9975,23.4881 11.9949,23.4875 11.9923,23.4869C11.9204,23.4706 11.8129,23.4452 11.6749,23.4092C11.3989,23.3373 11.0015,23.2235 10.5233,23.0575C9.5654,22.725 8.2921,22.186 7.0225,21.3608C4.4897,19.7145 2,16.954 2,12.405V3.4496L12,0.521L22,3.4496V12.405C22,16.954 19.5103,19.7145 16.9775,21.3608C15.7079,22.186 14.4346,22.725 13.4767,23.0575C12.9985,23.2235 12.6011,23.3373 12.3251,23.4092C12.1871,23.4452 12.0796,23.4706 12.0077,23.4869Z" + android:fillColor="#FF4B55" + android:strokeColor="#ffffff"/> + android:pathData="M1.5,12.405V3.075L12,0L22.5,3.075V12.405C22.5,21.945 12,24 12,24C12,24 1.5,21.945 1.5,12.405Z" + android:fillColor="#FF4B55"/> + diff --git a/vector/src/main/res/layout/item_verification_big_image.xml b/vector/src/main/res/layout/item_verification_big_image.xml index 7c036d298f..8d23f342cd 100644 --- a/vector/src/main/res/layout/item_verification_big_image.xml +++ b/vector/src/main/res/layout/item_verification_big_image.xml @@ -1,8 +1,5 @@ -