diff options
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.kt | 18 | ||||
| -rw-r--r-- | app/src/main/java/dev/msfjarvis/aps/util/features/Features.kt | 21 |
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) + } +} |
