From 023f03a227492c6518e15ffb0b3ea289565809e2 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Thu, 8 Apr 2021 04:21:53 +0530 Subject: Declare and check for camera features (#1375) * app: set feature requirements * Don't offer QR import option if no camera is present Signed-off-by: Harsh Shandilya --- app/src/main/AndroidManifest.xml | 7 +++++ .../aps/ui/crypto/PasswordCreationActivity.kt | 36 +++++++++++++--------- 2 files changed, 28 insertions(+), 15 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 11814b5f..a2c6003c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -14,6 +14,13 @@ + + + - if (index == 0) { - otpImportAction.launch( - IntentIntegrator(this@PasswordCreationActivity) - .setOrientationLocked(false) - .setBeepEnabled(false) - .setDesiredBarcodeFormats(QR_CODE) - .createScanIntent() - ) - } else if (index == 1) { - OtpImportDialogFragment().show(supportFragmentManager, "OtpImport") + val hasCamera = packageManager?.hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY) == true + if (hasCamera) { + val items = arrayOf(getString(R.string.otp_import_qr_code), getString(R.string.otp_import_manual_entry)) + MaterialAlertDialogBuilder(this@PasswordCreationActivity) + .setItems(items) { _, index -> + when (index) { + 0 -> + otpImportAction.launch( + IntentIntegrator(this@PasswordCreationActivity) + .setOrientationLocked(false) + .setBeepEnabled(false) + .setDesiredBarcodeFormats(QR_CODE) + .createScanIntent() + ) + 1 -> OtpImportDialogFragment().show(supportFragmentManager, "OtpImport") + } } - } - .show() + .show() + } else { + OtpImportDialogFragment().show(supportFragmentManager, "OtpImport") + } } directoryInputLayout.apply { -- cgit v1.2.3