summaryrefslogtreecommitdiff
path: root/app/src/normal/java/se
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/normal/java/se')
-rw-r--r--app/src/normal/java/se/leap/bitmaskclient/providersetup/helpers/QrScannerHelper.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/app/src/normal/java/se/leap/bitmaskclient/providersetup/helpers/QrScannerHelper.java b/app/src/normal/java/se/leap/bitmaskclient/providersetup/helpers/QrScannerHelper.java
new file mode 100644
index 00000000..88046360
--- /dev/null
+++ b/app/src/normal/java/se/leap/bitmaskclient/providersetup/helpers/QrScannerHelper.java
@@ -0,0 +1,39 @@
+package se.leap.bitmaskclient.providersetup.helpers;
+
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.fragment.app.Fragment;
+
+import com.journeyapps.barcodescanner.ScanContract;
+import com.journeyapps.barcodescanner.ScanOptions;
+
+import se.leap.bitmaskclient.base.models.Introducer;
+import se.leap.bitmaskclient.providersetup.fragments.helpers.AbstractQrScannerHelper;
+
+public class QrScannerHelper extends AbstractQrScannerHelper {
+
+ private final ActivityResultLauncher<ScanOptions> scannerActivityResultLauncher;
+
+ public QrScannerHelper(Fragment fragment, ScanResultCallback callback) {
+ super(fragment, callback);
+ this.scannerActivityResultLauncher = fragment.registerForActivityResult(new ScanContract(), result -> {
+ if(result.getContents() != null) {
+ try {
+ Introducer introducer = Introducer.fromUrl(result.getContents());
+ callback.onScanResult(introducer);
+ } catch (Exception e) {
+ e.printStackTrace();
+ //binding.editCustomProvider.setText(result.getContents());
+ }
+ }
+ });
+ }
+
+ @Override
+ public void startScan() {
+ ScanOptions options = new ScanOptions();
+ options.setBeepEnabled(false);
+ options.setBarcodeImageEnabled(false);
+ options.setOrientationLocked(false);
+ scannerActivityResultLauncher.launch(options);
+ }
+}