From 9ac12c25320f38c0f2cf0e38e4069257826cd1df Mon Sep 17 00:00:00 2001 From: Clark Date: Thu, 20 Jul 2023 16:53:46 -0400 Subject: [PATCH] Update safety number screen to be in line with design. --- .../components/verify/SafetyNumberQrView.kt | 2 +- .../thoughtcrime/securesms/qr/QrCodeUtil.java | 21 +++++++++++++++---- .../main/res/layout/safety_number_qr_view.xml | 5 +++-- .../res/layout/verify_display_fragment.xml | 6 +++--- app/src/main/res/values/styles.xml | 2 +- 5 files changed, 25 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/verify/SafetyNumberQrView.kt b/app/src/main/java/org/thoughtcrime/securesms/components/verify/SafetyNumberQrView.kt index 2a54679cd1..4de5e7bb4f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/verify/SafetyNumberQrView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/verify/SafetyNumberQrView.kt @@ -115,7 +115,7 @@ class SafetyNumberQrView : ConstraintLayout { val qrCodeData = fingerprint.scannableFingerprint.serialized val qrCodeString = String(qrCodeData, Charset.forName("ISO-8859-1")) - val qrCodeBitmap = QrCodeUtil.create(qrCodeString) + val qrCodeBitmap = QrCodeUtil.createNoPadding(qrCodeString) qrCode.setImageBitmap(qrCodeBitmap) shareButton.visible = true diff --git a/app/src/main/java/org/thoughtcrime/securesms/qr/QrCodeUtil.java b/app/src/main/java/org/thoughtcrime/securesms/qr/QrCodeUtil.java index 2180367c9a..cde3535539 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/qr/QrCodeUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/qr/QrCodeUtil.java @@ -8,6 +8,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.google.zxing.BarcodeFormat; +import com.google.zxing.EncodeHintType; import com.google.zxing.WriterException; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.QRCodeWriter; @@ -15,6 +16,9 @@ import com.google.zxing.qrcode.QRCodeWriter; import org.signal.core.util.logging.Log; import org.signal.core.util.Stopwatch; +import java.util.HashMap; +import java.util.Map; + public final class QrCodeUtil { private QrCodeUtil() { @@ -22,13 +26,22 @@ public final class QrCodeUtil { public static final String TAG = Log.tag(QrCodeUtil.class); - public static @NonNull Bitmap create(@Nullable String data) { - return create(data, Color.BLACK, Color.TRANSPARENT); + public static @NonNull Bitmap createNoPadding(@Nullable String data) { + Map hints = new HashMap<>(); + hints.put(EncodeHintType.MARGIN, 0); + return create(data, Color.BLACK, Color.TRANSPARENT, hints); } public static @NonNull Bitmap create(@Nullable String data, @ColorInt int foregroundColor, - @ColorInt int backgroundColor) + @ColorInt int backgroundColor) { + return create(data, foregroundColor, backgroundColor, null); + } + + public static @NonNull Bitmap create(@Nullable String data, + @ColorInt int foregroundColor, + @ColorInt int backgroundColor, + @Nullable Map hints) { if (data == null || data.length() == 0) { Log.w(TAG, "No data"); @@ -38,7 +51,7 @@ public final class QrCodeUtil { try { Stopwatch stopwatch = new Stopwatch("QrGen"); QRCodeWriter qrCodeWriter = new QRCodeWriter(); - BitMatrix qrData = qrCodeWriter.encode(data, BarcodeFormat.QR_CODE, 512, 512); + BitMatrix qrData = qrCodeWriter.encode(data, BarcodeFormat.QR_CODE, 512, 512, hints); int qrWidth = qrData.getWidth(); int qrHeight = qrData.getHeight(); int[] pixels = new int[qrWidth * qrHeight]; diff --git a/app/src/main/res/layout/safety_number_qr_view.xml b/app/src/main/res/layout/safety_number_qr_view.xml index 19a41aa121..6ba8c0f494 100644 --- a/app/src/main/res/layout/safety_number_qr_view.xml +++ b/app/src/main/res/layout/safety_number_qr_view.xml @@ -40,13 +40,14 @@ android:text="@string/verify_display_fragment__loading" android:textSize="20sp" /> - @@ -100,7 +101,7 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/verify_identity_vertical_margin" android:layout_marginBottom="49dp" - android:layout_marginHorizontal="25dp" + android:layout_marginHorizontal="24dp" app:layout_constraintTop_toBottomOf="@id/qr_code_container" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/verify_display_fragment.xml b/app/src/main/res/layout/verify_display_fragment.xml index 5d08ce2ab9..28e8da5182 100644 --- a/app/src/main/res/layout/verify_display_fragment.xml +++ b/app/src/main/res/layout/verify_display_fragment.xml @@ -91,7 +91,6 @@ android:id="@+id/dot_indicators" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="8dp" app:tabBackground="@drawable/safety_dot_indicator" app:tabGravity="center" app:tabPaddingEnd="10dp" @@ -104,8 +103,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="32dp" - android:layout_marginTop="@dimen/verify_identity_vertical_margin" android:layout_marginEnd="32dp" + android:layout_marginTop="8dp" android:layout_marginBottom="20dp" android:gravity="center" android:lineSpacingExtra="3sp" @@ -143,11 +142,12 @@ diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 498ab2a089..d316442b1b 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -313,7 +313,7 @@