diff options
| author | cyberta <cyberta@riseup.net> | 2025-04-15 01:00:08 +0000 |
|---|---|---|
| committer | cyberta <cyberta@riseup.net> | 2025-04-15 01:00:08 +0000 |
| commit | a9f2c30d415e1349616101a11ddfa0719995ef8d (patch) | |
| tree | 70838b6149deb178fc31a45cd8f38e55c110c1be /app/src/normal/java/se/leap | |
| parent | 1b668a3163ce2d824486f045a9f0a0b1ee29256f (diff) | |
show error dialog in case invite code scanning fails
Diffstat (limited to 'app/src/normal/java/se/leap')
| -rw-r--r-- | app/src/normal/java/se/leap/bitmaskclient/providersetup/helpers/QrScannerHelper.java | 35 |
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(); } }); } |
