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>
This commit is contained in:
Harsh Shandilya
2021-04-08 04:21:53 +05:30
committed by GitHub
parent e13a54f212
commit 023f03a227
2 changed files with 28 additions and 15 deletions

View File

@@ -14,6 +14,13 @@
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <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 <application
android:name=".Application" android:name=".Application"
android:allowBackup="false" android:allowBackup="false"

View File

@@ -7,6 +7,7 @@ package dev.msfjarvis.aps.ui.crypto
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.pm.PackageManager
import android.os.Bundle import android.os.Bundle
import android.text.InputType import android.text.InputType
import android.view.Menu import android.view.Menu
@@ -158,22 +159,27 @@ class PasswordCreationActivity : BasePgpActivity(), OpenPgpServiceConnection.OnB
else binding.extraContent.append(contents) else binding.extraContent.append(contents)
} }
} }
val items = arrayOf(getString(R.string.otp_import_qr_code), getString(R.string.otp_import_manual_entry)) val hasCamera = packageManager?.hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY) == true
MaterialAlertDialogBuilder(this@PasswordCreationActivity) if (hasCamera) {
.setItems(items) { _, index -> val items = arrayOf(getString(R.string.otp_import_qr_code), getString(R.string.otp_import_manual_entry))
if (index == 0) { MaterialAlertDialogBuilder(this@PasswordCreationActivity)
otpImportAction.launch( .setItems(items) { _, index ->
IntentIntegrator(this@PasswordCreationActivity) when (index) {
.setOrientationLocked(false) 0 ->
.setBeepEnabled(false) otpImportAction.launch(
.setDesiredBarcodeFormats(QR_CODE) IntentIntegrator(this@PasswordCreationActivity)
.createScanIntent() .setOrientationLocked(false)
) .setBeepEnabled(false)
} else if (index == 1) { .setDesiredBarcodeFormats(QR_CODE)
OtpImportDialogFragment().show(supportFragmentManager, "OtpImport") .createScanIntent()
)
1 -> OtpImportDialogFragment().show(supportFragmentManager, "OtpImport")
}
} }
} .show()
.show() } else {
OtpImportDialogFragment().show(supportFragmentManager, "OtpImport")
}
} }
directoryInputLayout.apply { directoryInputLayout.apply {