aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/dev/msfjarvis/aps/util/features
diff options
context:
space:
mode:
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)
+ }
+}