aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/dev/msfjarvis/aps/util/features
diff options
context:
space:
mode:
authorHarsh Shandilya <me@msfjarvis.dev>2022-01-09 17:50:22 +0530
committerGitHub <noreply@github.com>2022-01-09 17:50:22 +0530
commit35155e55841bc87b2c0e0dc577e1433041b44bc5 (patch)
treec9cf58da55e5876b4fe5676a415b9299881e83ef /app/src/main/java/dev/msfjarvis/aps/util/features
parent1738879fb3ba1b2c2d0ca7933c861bf99ae32535 (diff)
downloadHardenedPass-35155e55841bc87b2c0e0dc577e1433041b44bc5.tar.gz
HardenedPass-35155e55841bc87b2c0e0dc577e1433041b44bc5.zip
Make PGPainless backend feature flag runtime configurable (#1654)
* Make feature flags runtime configurable * Add a settings entry for PGPainless feature flag * Add changelog entry
Diffstat (limited to 'app/src/main/java/dev/msfjarvis/aps/util/features')
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/util/features/Feature.kt18
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/util/features/Features.kt21
2 files changed, 39 insertions, 0 deletions
diff --git a/app/src/main/java/dev/msfjarvis/aps/util/features/Feature.kt b/app/src/main/java/dev/msfjarvis/aps/util/features/Feature.kt
new file mode 100644
index 00000000..7ae2e642
--- /dev/null
+++ b/app/src/main/java/dev/msfjarvis/aps/util/features/Feature.kt
@@ -0,0 +1,18 @@
+/*
+ * Copyright © 2014-2022 The Android Password Store Authors. All Rights Reserved.
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+
+package dev.msfjarvis.aps.util.features
+
+/** List of all feature flags for the app. */
+enum class Feature(
+ /** Default value for the flag. */
+ val defaultValue: Boolean,
+ /** Key to retrieve the current value for the flag. */
+ val configKey: String,
+) {
+
+ /** Opt into the new PGP backend powered by the PGPainless library. */
+ EnablePGPainlessBackend(false, "enable_pgp_v2_backend"),
+}
diff --git a/app/src/main/java/dev/msfjarvis/aps/util/features/Features.kt b/app/src/main/java/dev/msfjarvis/aps/util/features/Features.kt
new file mode 100644
index 00000000..39b2c3a8
--- /dev/null
+++ b/app/src/main/java/dev/msfjarvis/aps/util/features/Features.kt
@@ -0,0 +1,21 @@
+/*
+ * Copyright © 2014-2022 The Android Password Store Authors. All Rights Reserved.
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+
+package dev.msfjarvis.aps.util.features
+
+import android.content.SharedPreferences
+import dev.msfjarvis.aps.injection.prefs.SettingsPreferences
+import javax.inject.Inject
+
+class Features
+@Inject
+constructor(
+ @SettingsPreferences private val preferences: SharedPreferences,
+) {
+
+ fun isEnabled(feature: Feature): Boolean {
+ return preferences.getBoolean(feature.configKey, feature.defaultValue)
+ }
+}