aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarsh Shandilya <me@msfjarvis.dev>2021-04-08 04:21:53 +0530
committerGitHub <noreply@github.com>2021-04-08 04:21:53 +0530
commit023f03a227492c6518e15ffb0b3ea289565809e2 (patch)
treebf3df9a04828905f5b07b40ad9c6fa921d5611ce
parente13a54f212f7fc628eb48561f1b225e28468c6e7 (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.xml7
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/ui/crypto/PasswordCreationActivity.kt36
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 {