From ba5400575319aafcd0be2d8053412c6fb701ce23 Mon Sep 17 00:00:00 2001 From: Tamim Hossain <132823494+CodeWithTamim@users.noreply.github.com> Date: Fri, 25 Oct 2024 17:10:14 +0600 Subject: [PATCH] Improve Permission Handling and QR Code Import Logic in ScScannerActivity (#3777) Refactored permission request handling in ScScannerActivity to improve readability and simplify the flow. Improved QR code import logic to ensure better handling of the scanned result and enhance user feedback. --- .../kotlin/com/v2ray/ang/ui/ScScannerActivity.kt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/ScScannerActivity.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/ScScannerActivity.kt index 17090b75..03a9fd34 100644 --- a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/ScScannerActivity.kt +++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/ScScannerActivity.kt @@ -20,26 +20,31 @@ class ScScannerActivity : BaseActivity() { fun importQRcode(): Boolean { RxPermissions(this) .request(Manifest.permission.CAMERA) - .subscribe { - if (it) + .subscribe { granted -> + if (granted) { scanQRCode.launch(Intent(this, ScannerActivity::class.java)) - else + } else { toast(R.string.toast_permission_denied) + } } - return true } + private val scanQRCode = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { if (it.resultCode == RESULT_OK) { - val (count, countSub) = AngConfigManager.importBatchConfig(it.data?.getStringExtra("SCAN_RESULT"), "", false) + val scanResult = it.data?.getStringExtra("SCAN_RESULT").orEmpty() + val (count, countSub) = AngConfigManager.importBatchConfig(scanResult, "", false) + if (count + countSub > 0) { toast(R.string.toast_success) } else { toast(R.string.toast_failure) } + startActivity(Intent(this, MainActivity::class.java)) } finish() } + }