Loading app-common/src/main/java/im/angry/openeuicc/ui/wizard/DownloadWizardMethodSelectFragment.kt +6 −9 Original line number Diff line number Diff line Loading @@ -44,17 +44,14 @@ class DownloadWizardMethodSelectFragment : DownloadWizardActivity.DownloadWizard lifecycleScope.launch(Dispatchers.IO) { runCatching { requireContext().contentResolver.openInputStream(result)?.let { input -> val bmp = BitmapFactory.decodeStream(input) input.close() requireContext().contentResolver.openInputStream(result)?.use { input -> BitmapFactory.decodeStream(input).use { bmp -> decodeQrFromBitmap(bmp)?.let { withContext(Dispatchers.Main) { processLpaString(it) } } bmp.recycle() } } } } Loading app-common/src/main/java/im/angry/openeuicc/util/Utils.kt +7 −0 Original line number Diff line number Diff line Loading @@ -86,6 +86,13 @@ suspend fun connectSEService(context: Context): SEService = suspendCoroutine { c } } inline fun <T> Bitmap.use(f: (Bitmap) -> T): T = try { f(this) } finally { recycle() } fun decodeQrFromBitmap(bmp: Bitmap): String? = runCatching { val pixels = IntArray(bmp.width * bmp.height) Loading Loading
app-common/src/main/java/im/angry/openeuicc/ui/wizard/DownloadWizardMethodSelectFragment.kt +6 −9 Original line number Diff line number Diff line Loading @@ -44,17 +44,14 @@ class DownloadWizardMethodSelectFragment : DownloadWizardActivity.DownloadWizard lifecycleScope.launch(Dispatchers.IO) { runCatching { requireContext().contentResolver.openInputStream(result)?.let { input -> val bmp = BitmapFactory.decodeStream(input) input.close() requireContext().contentResolver.openInputStream(result)?.use { input -> BitmapFactory.decodeStream(input).use { bmp -> decodeQrFromBitmap(bmp)?.let { withContext(Dispatchers.Main) { processLpaString(it) } } bmp.recycle() } } } } Loading
app-common/src/main/java/im/angry/openeuicc/util/Utils.kt +7 −0 Original line number Diff line number Diff line Loading @@ -86,6 +86,13 @@ suspend fun connectSEService(context: Context): SEService = suspendCoroutine { c } } inline fun <T> Bitmap.use(f: (Bitmap) -> T): T = try { f(this) } finally { recycle() } fun decodeQrFromBitmap(bmp: Bitmap): String? = runCatching { val pixels = IntArray(bmp.width * bmp.height) Loading