diff --git a/vector/src/main/java/im/vector/riotx/core/qrcode/QrCode.kt b/vector/src/main/java/im/vector/riotx/core/qrcode/QrCode.kt index 2287d4ab43..110427a3ec 100644 --- a/vector/src/main/java/im/vector/riotx/core/qrcode/QrCode.kt +++ b/vector/src/main/java/im/vector/riotx/core/qrcode/QrCode.kt @@ -34,8 +34,6 @@ fun String.toBitMatrix(size: Int): BitMatrix { fun BitMatrix.toBitmap(@ColorInt backgroundColor: Int = Color.WHITE, @ColorInt foregroundColor: Int = Color.BLACK): Bitmap { - val height: Int = height - val width: Int = width val bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888) for (x in 0 until width) { for (y in 0 until height) { diff --git a/vector/src/main/java/im/vector/riotx/core/ui/views/QrCodeImageView.kt b/vector/src/main/java/im/vector/riotx/core/ui/views/QrCodeImageView.kt index e49af7f1d9..7cf54ae588 100644 --- a/vector/src/main/java/im/vector/riotx/core/ui/views/QrCodeImageView.kt +++ b/vector/src/main/java/im/vector/riotx/core/ui/views/QrCodeImageView.kt @@ -17,6 +17,7 @@ package im.vector.riotx.core.ui.views import android.content.Context +import android.graphics.Color import android.graphics.drawable.AnimationDrawable import android.graphics.drawable.BitmapDrawable import android.util.AttributeSet @@ -32,6 +33,10 @@ class QrCodeImageView @JvmOverloads constructor( private var data: String? = null private var animate = false + init { + setBackgroundColor(Color.WHITE) + } + fun setData(data: String, animate: Boolean) { this.data = data this.animate = animate @@ -46,24 +51,24 @@ class QrCodeImageView @JvmOverloads constructor( private fun render() { data - ?.takeIf { width > 0 } + ?.takeIf { height > 0 } ?.let { if (animate) { // NOT SUPPORTED YET val anim = createAnimation(it) // NOT SUPPORTED YET setImageDrawable(anim) // NOT SUPPORTED YET anim.start() - // NOT SUPPORTED YET setImageDrawable(BitmapDrawable(resources, it.toBitMatrix(width).toBitmap())) - val bitmap = it.toBitMatrix(width).toBitmap() + // NOT SUPPORTED YET setImageDrawable(BitmapDrawable(resources, it.toBitMatrix(height).toBitmap())) + val bitmap = it.toBitMatrix(height).toBitmap() post { setImageBitmap(bitmap) } } else { - val bitmap = it.toBitMatrix(width).toBitmap() + val bitmap = it.toBitMatrix(height).toBitmap() post { setImageBitmap(bitmap) } } } } private fun createAnimation(data: String): AnimationDrawable { - val finalQr = data.toBitMatrix(width) + val finalQr = data.toBitMatrix(height) val list = mutableListOf(finalQr) diff --git a/vector/src/main/java/im/vector/riotx/features/crypto/verification/epoxy/BottomSheetVerificationQrCodeItem.kt b/vector/src/main/java/im/vector/riotx/features/crypto/verification/epoxy/BottomSheetVerificationQrCodeItem.kt index e6f51784b1..dc126bc460 100644 --- a/vector/src/main/java/im/vector/riotx/features/crypto/verification/epoxy/BottomSheetVerificationQrCodeItem.kt +++ b/vector/src/main/java/im/vector/riotx/features/crypto/verification/epoxy/BottomSheetVerificationQrCodeItem.kt @@ -16,7 +16,6 @@ */ package im.vector.riotx.features.crypto.verification.epoxy -import androidx.core.view.ViewCompat import com.airbnb.epoxy.EpoxyAttribute import com.airbnb.epoxy.EpoxyModelClass import im.vector.riotx.R @@ -25,7 +24,7 @@ import im.vector.riotx.core.epoxy.VectorEpoxyModel import im.vector.riotx.core.ui.views.QrCodeImageView /** - * A action for bottom sheet. + * An Epoxy item displaying a QR code */ @EpoxyModelClass(layout = R.layout.item_verification_qr_code) abstract class BottomSheetVerificationQrCodeItem : VectorEpoxyModel() { @@ -36,21 +35,11 @@ abstract class BottomSheetVerificationQrCodeItem : VectorEpoxyModel(R.id.itemVerificationBigImage) + val qsrCodeImage by bind(R.id.itemVerificationQrCodeImage) } } diff --git a/vector/src/main/res/layout/item_verification_qr_code.xml b/vector/src/main/res/layout/item_verification_qr_code.xml index 2407d2754d..6a16315185 100644 --- a/vector/src/main/res/layout/item_verification_qr_code.xml +++ b/vector/src/main/res/layout/item_verification_qr_code.xml @@ -1,8 +1,16 @@ - + android:layout_height="wrap_content" + android:layout_margin="8dp"> + + + + diff --git a/vector/src/main/res/values/strings_riotX.xml b/vector/src/main/res/values/strings_riotX.xml index 3de0cdbf72..628493397f 100644 --- a/vector/src/main/res/values/strings_riotX.xml +++ b/vector/src/main/res/values/strings_riotX.xml @@ -100,7 +100,6 @@ Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. Enable encryption - For extra security, verify %s by checking a one-time code. For maximum security, do this in person. @@ -146,4 +145,6 @@ Initialize CrossSigning Reset Keys + + QR code