diff options
-rw-r--r-- | build.gradle | 2 | ||||
-rw-r--r-- | ui/src/main/AndroidManifest.xml | 3 | ||||
-rw-r--r-- | ui/src/main/java/com/wireguard/android/fragment/TunnelListFragment.kt | 20 |
3 files changed, 11 insertions, 14 deletions
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" /> - <!-- This is safe to override, the APIs we use work perfectly fine on Android 6 --> - <uses-sdk tools:overrideLibrary="com.google.zxing.client.android" /> - <application android:name=".Application" android:allowBackup="false" diff --git a/ui/src/main/java/com/wireguard/android/fragment/TunnelListFragment.kt b/ui/src/main/java/com/wireguard/android/fragment/TunnelListFragment.kt index c76ca6ac..eb24658a 100644 --- a/ui/src/main/java/com/wireguard/android/fragment/TunnelListFragment.kt +++ b/ui/src/main/java/com/wireguard/android/fragment/TunnelListFragment.kt @@ -21,7 +21,8 @@ import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.view.ActionMode import androidx.lifecycle.lifecycleScope import com.google.android.material.snackbar.Snackbar -import com.google.zxing.integration.android.IntentIntegrator +import com.journeyapps.barcodescanner.ScanContract +import com.journeyapps.barcodescanner.ScanOptions import com.wireguard.android.Application import com.wireguard.android.R import com.wireguard.android.activity.TunnelCreatorActivity @@ -55,12 +56,12 @@ class TunnelListFragment : BaseFragment() { } } - private val qrImportResultLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> - 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))) } } } |