diff --git a/build.gradle b/build.gradle index 2bda0118..336c4631 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ buildscript { lifecycleRuntimeKtxVersion = '2.3.1' materialComponentsVersion = '1.4.0' preferenceVersion = '1.1.1' - zxingEmbeddedVersion = '4.2.0' + zxingEmbeddedVersion = '4.3.0' groupName = 'com.wireguard.android' } diff --git a/ui/src/main/AndroidManifest.xml b/ui/src/main/AndroidManifest.xml index ce527498..4c957bd7 100644 --- a/ui/src/main/AndroidManifest.xml +++ b/ui/src/main/AndroidManifest.xml @@ -29,9 +29,6 @@ android:label="@string/permission_label" android:protectionLevel="dangerous" /> - - - - val qrCode = IntentIntegrator.parseActivityResult(result.resultCode, result.data)?.contents - ?: return@registerForActivityResult - val activity = activity ?: return@registerForActivityResult - val fragManager = parentFragmentManager - activity.lifecycleScope.launch { TunnelImporter.importTunnel(fragManager, qrCode) { showSnackbar(it) } } + private val qrImportResultLauncher = registerForActivityResult(ScanContract()) { result -> + val qrCode = result.contents + val activity = activity + if (qrCode != null && activity != null) { + activity.lifecycleScope.launch { TunnelImporter.importTunnel(parentFragmentManager, qrCode) { showSnackbar(it) } } + } } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -89,11 +90,10 @@ class TunnelListFragment : BaseFragment() { tunnelFileImportResultLauncher.launch("*/*") } AddTunnelsSheet.REQUEST_SCAN -> { - qrImportResultLauncher.launch(IntentIntegrator(requireActivity()) + qrImportResultLauncher.launch(ScanOptions() .setOrientationLocked(false) .setBeepEnabled(false) - .setPrompt(getString(R.string.qr_code_hint)) - .createScanIntent()) + .setPrompt(getString(R.string.qr_code_hint))) } } }