mirror of
https://github.com/android-password-store/Android-Password-Store
synced 2025-09-02 15:25:39 +00:00
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:
@@ -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"
|
||||||
|
@@ -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 {
|
||||||
|
Reference in New Issue
Block a user