diff options
author | Harsh Shandilya <me@msfjarvis.dev> | 2021-04-08 04:21:53 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-08 04:21:53 +0530 |
commit | 023f03a227492c6518e15ffb0b3ea289565809e2 (patch) | |
tree | bf3df9a04828905f5b07b40ad9c6fa921d5611ce | |
parent | e13a54f212f7fc628eb48561f1b225e28468c6e7 (diff) |
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 <me@msfjarvis.dev>
-rw-r--r-- | app/src/main/AndroidManifest.xml | 7 | ||||
-rw-r--r-- | app/src/main/java/dev/msfjarvis/aps/ui/crypto/PasswordCreationActivity.kt | 36 |
2 files changed, 28 insertions, 15 deletions
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 @@ <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> + <uses-feature + android:name="android.hardware.touchscreen" + android:required="false" /> + <uses-feature + android:name="android.hardware.camera.any" + android:required="false" /> + <application android:name=".Application" android:allowBackup="false" diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/crypto/PasswordCreationActivity.kt b/app/src/main/java/dev/msfjarvis/aps/ui/crypto/PasswordCreationActivity.kt index ea950a5e..7966628f 100644 --- a/app/src/main/java/dev/msfjarvis/aps/ui/crypto/PasswordCreationActivity.kt +++ b/app/src/main/java/dev/msfjarvis/aps/ui/crypto/PasswordCreationActivity.kt @@ -7,6 +7,7 @@ package dev.msfjarvis.aps.ui.crypto import android.content.Context import android.content.Intent +import android.content.pm.PackageManager import android.os.Bundle import android.text.InputType import android.view.Menu @@ -158,22 +159,27 @@ class PasswordCreationActivity : BasePgpActivity(), OpenPgpServiceConnection.OnB else binding.extraContent.append(contents) } } - val items = arrayOf(getString(R.string.otp_import_qr_code), getString(R.string.otp_import_manual_entry)) - MaterialAlertDialogBuilder(this@PasswordCreationActivity) - .setItems(items) { _, index -> - 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 { |