private void downloadCredentials()

in tools/android-app/app/src/main/java/com/aws/iotfleetwise/MainActivity.java [178:216]


    private void downloadCredentials(String provisioningLink)
    {
        Thread t = new Thread(() -> {
            Log.i("DownloadCredentials", "Provisioning link: " + provisioningLink);
            final String urlParam = "url=";

            // First try getting the S3 link normally from the provisioning link:
            Uri uri = Uri.parse(provisioningLink);
            String fragment = uri.getFragment();
            if (fragment != null) {
                int urlStart = fragment.indexOf(urlParam);
                if (urlStart >= 0) {
                    String s3Link = fragment.substring(urlStart + urlParam.length());
                    if (downloadCredentialsFromS3(s3Link)) {
                        return;
                    }
                }
            }

            // Some QR code scanning apps url decode the provisioning link, so try that next:
            int urlStart = provisioningLink.indexOf(urlParam);
            if (urlStart >= 0) {
                String s3Link = provisioningLink.substring(urlStart + urlParam.length());
                if (downloadCredentialsFromS3(s3Link)) {
                    return;
                }
            }

            // Neither worked, show an error:
            runOnUiThread(() -> {
                AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
                alertDialog.setTitle("Error");
                alertDialog.setMessage("Invalid provisioning link");
                alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK", (dialog, which) -> dialog.dismiss());
                alertDialog.show();
            });
        });
        t.start();
    }