summaryrefslogtreecommitdiff
path: root/app/src/normal
diff options
context:
space:
mode:
authorcyberta <cyberta@riseup.net>2025-04-15 01:00:08 +0000
committercyberta <cyberta@riseup.net>2025-04-15 01:00:08 +0000
commita9f2c30d415e1349616101a11ddfa0719995ef8d (patch)
tree70838b6149deb178fc31a45cd8f38e55c110c1be /app/src/normal
parent1b668a3163ce2d824486f045a9f0a0b1ee29256f (diff)
show error dialog in case invite code scanning fails
Diffstat (limited to 'app/src/normal')
-rw-r--r--app/src/normal/java/se/leap/bitmaskclient/providersetup/helpers/QrScannerHelper.java35
1 files changed, 29 insertions, 6 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
index 88046360..350bbd25 100644
--- a/app/src/normal/java/se/leap/bitmaskclient/providersetup/helpers/QrScannerHelper.java
+++ b/app/src/normal/java/se/leap/bitmaskclient/providersetup/helpers/QrScannerHelper.java
@@ -1,11 +1,22 @@
package se.leap.bitmaskclient.providersetup.helpers;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.ERRORID;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.ERRORS;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.ERROR_EXTRA;
+import static se.leap.bitmaskclient.providersetup.ProviderSetupFailedDialog.SETUP_ERRORS.ERROR_QR_CODE_SCANNING;
+
+import android.content.Context;
+
import androidx.activity.result.ActivityResultLauncher;
import androidx.fragment.app.Fragment;
import com.journeyapps.barcodescanner.ScanContract;
import com.journeyapps.barcodescanner.ScanOptions;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import se.leap.bitmaskclient.R;
import se.leap.bitmaskclient.base.models.Introducer;
import se.leap.bitmaskclient.providersetup.fragments.helpers.AbstractQrScannerHelper;
@@ -16,14 +27,26 @@ public class QrScannerHelper extends AbstractQrScannerHelper {
public QrScannerHelper(Fragment fragment, ScanResultCallback callback) {
super(fragment, callback);
this.scannerActivityResultLauncher = fragment.registerForActivityResult(new ScanContract(), result -> {
- if(result.getContents() != null) {
+ if(result.getContents() == null) {
+ return;
+ }
+ try {
+ Introducer introducer = Introducer.fromUrl(result.getContents());
+ callback.onScanResult(introducer);
+ } catch (Introducer.IntroducerException e) {
+ e.printStackTrace();
+ JSONObject jsonObject = new JSONObject();
try {
- Introducer introducer = Introducer.fromUrl(result.getContents());
- callback.onScanResult(introducer);
- } catch (Exception e) {
- e.printStackTrace();
- //binding.editCustomProvider.setText(result.getContents());
+ Context c = fragment.getContext();
+ jsonObject.put(ERRORS, c.getString(R.string.error_invite_title) + " " + e.getLocalizedMessage(c) + "\n\n" + c.getString(R.string.error_invite_hint));
+ jsonObject.put(ERRORID, ERROR_QR_CODE_SCANNING.toString());
+ jsonObject.put(ERROR_EXTRA, c.getString(R.string.error_invite, "\n" + result.getContents().trim()));
+ callback.onScanError(jsonObject);
+ } catch (JSONException | NullPointerException ex) {
+ ex.printStackTrace();
}
+ } catch (NullPointerException npe) {
+ npe.printStackTrace();
}
});
}