From e9e9fa2bb83d5e18b07aa3c8220c327f4ed35759 Mon Sep 17 00:00:00 2001 From: Mygod Date: Tue, 10 Dec 2019 19:59:31 +0800 Subject: [PATCH] Code clean up --- .../be/mygod/vpnhotspot/util/QRCodeDialog.kt | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/util/QRCodeDialog.kt b/mobile/src/main/java/be/mygod/vpnhotspot/util/QRCodeDialog.kt index 71bb2bb9..61d4d27d 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/util/QRCodeDialog.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/util/QRCodeDialog.kt @@ -17,11 +17,6 @@ import com.google.zxing.WriterException import timber.log.Timber import java.nio.charset.StandardCharsets -/** - * Based on: - * https://android.googlesource.com/platform/packages/apps/Settings/+/0d706f0/src/com/android/settings/wifi/qrcode/QrCodeGenerator.java - * https://android.googlesource.com/platform/packages/apps/Settings/+/8a9ccfd/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java#153 - */ class QRCodeDialog : DialogFragment() { companion object { private const val KEY_ARG = "arg" @@ -31,18 +26,23 @@ class QRCodeDialog : DialogFragment() { fun withArg(arg: String) = apply { arguments = bundleOf(KEY_ARG to arg) } private val arg get() = arguments?.getString(KEY_ARG) + /** + * Based on: + * https://android.googlesource.com/platform/packages/apps/Settings/+/0d706f0/src/com/android/settings/wifi/qrcode/QrCodeGenerator.java + * https://android.googlesource.com/platform/packages/apps/Settings/+/8a9ccfd/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java#153 + */ override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?) = try { + val size = resources.getDimensionPixelSize(R.dimen.qrcode_size) + val hints = mutableMapOf() + if (!iso88591.canEncode(arg)) hints[EncodeHintType.CHARACTER_SET] = StandardCharsets.UTF_8.name() + val qrBits = MultiFormatWriter().encode(arg, BarcodeFormat.QR_CODE, size, size, hints) ImageView(context).apply { - val hints = HashMap() - if (!iso88591.canEncode(arg)) hints[EncodeHintType.CHARACTER_SET] = StandardCharsets.UTF_8.name() - val size = resources.getDimensionPixelSize(R.dimen.qrcode_size) - val qrBits = MultiFormatWriter().encode(arg, BarcodeFormat.QR_CODE, size, size, hints) - val bitmap = Bitmap.createBitmap(size, size, Bitmap.Config.RGB_565) - for (x in 0 until size) for (y in 0 until size) { - bitmap.setPixel(x, y, if (qrBits.get(x, y)) Color.BLACK else Color.WHITE) - } layoutParams = ViewGroup.LayoutParams(size, size) - setImageBitmap(bitmap) + setImageBitmap(Bitmap.createBitmap(size, size, Bitmap.Config.RGB_565).apply { + for (x in 0 until size) for (y in 0 until size) { + setPixel(x, y, if (qrBits.get(x, y)) Color.BLACK else Color.WHITE) + } + }) } } catch (e: WriterException) { Timber.w(e)