From 968b7bfc78d5059b2b0becae3a3e146b795372b9 Mon Sep 17 00:00:00 2001 From: Gabriel Luong Date: Fri, 26 Feb 2021 17:12:47 -0500 Subject: [PATCH] For #18198 - Add a feature flag for Credit Cards and Addresses autofill feature (#18200) --- app/src/main/java/org/mozilla/fenix/FeatureFlags.kt | 10 ++++++++++ .../mozilla/fenix/settings/SecretSettingsFragment.kt | 12 ++++++++++++ .../main/java/org/mozilla/fenix/utils/Settings.kt | 12 ++++++++++++ app/src/main/res/values/preference_keys.xml | 6 +++++- app/src/main/res/values/static_strings.xml | 6 +++++- app/src/main/res/xml/secret_settings_preferences.xml | 10 ++++++++++ 6 files changed, 54 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt index 0c551e4f3..34890976d 100644 --- a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +++ b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt @@ -19,6 +19,16 @@ object FeatureFlags { */ val nimbusExperiments = Config.channel.isNightlyOrDebug + /** + * Enables the Addresses autofill feature. + */ + val addressesFeature = Config.channel.isNightlyOrDebug + + /** + * Enables the Credit Cards autofill feature. + */ + val creditCardsFeature = Config.channel.isNightlyOrDebug + /** * Enables WebAuthn support. */ diff --git a/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt index a61dd26bc..4b965904b 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt @@ -22,6 +22,18 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.secret_settings_preferences, rootKey) + requirePreference(R.string.pref_key_show_address_feature).apply { + isVisible = FeatureFlags.addressesFeature + isChecked = context.settings().addressFeature + onPreferenceChangeListener = SharedPreferenceUpdater() + } + + requirePreference(R.string.pref_key_show_credit_cards_feature).apply { + isVisible = FeatureFlags.creditCardsFeature + isChecked = context.settings().creditCardsFeature + onPreferenceChangeListener = SharedPreferenceUpdater() + } + requirePreference(R.string.pref_key_new_tabs_tray).apply { isVisible = FeatureFlags.tabsTrayRewrite isChecked = context.settings().tabsTrayRewrite diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index ca1893d7e..fb0a0ffe4 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -976,4 +976,16 @@ class Settings(private val appContext: Context) : PreferencesHolder { appContext.getPreferenceKey(R.string.pref_key_swipe_toolbar_switch_tabs), default = true ) + + var creditCardsFeature by featureFlagPreference( + appContext.getPreferenceKey(R.string.pref_key_show_credit_cards_feature), + default = false, + featureFlag = FeatureFlags.creditCardsFeature + ) + + var addressFeature by featureFlagPreference( + appContext.getPreferenceKey(R.string.pref_key_show_address_feature), + default = false, + featureFlag = FeatureFlags.addressesFeature + ) } diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index 885c37b06..32fd7cbf1 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -241,11 +241,15 @@ pref_key_camera_permissions_needed pref_key_return_to_browser - + pref_key_secret_debug_info pref_key_leanplum_user_id pref_key_leanplum_device_id pref_key_search_region_home pref_key_search_region_current + + + pref_key_show_credit_cards_feature + pref_key_show_address_feature diff --git a/app/src/main/res/values/static_strings.xml b/app/src/main/res/values/static_strings.xml index 272359bf5..cce937c5c 100644 --- a/app/src/main/res/values/static_strings.xml +++ b/app/src/main/res/values/static_strings.xml @@ -30,15 +30,19 @@ AS + Secret Settings Secret Debug Info + + Enable Address Autofill + + Enable Credit Card Autofill Use new Tabs Tray A refactored tabs tray that will include Synced Tabs. - Show Synced Tabs in the tabs tray diff --git a/app/src/main/res/xml/secret_settings_preferences.xml b/app/src/main/res/xml/secret_settings_preferences.xml index 9b61c1e2d..851a27964 100644 --- a/app/src/main/res/xml/secret_settings_preferences.xml +++ b/app/src/main/res/xml/secret_settings_preferences.xml @@ -4,6 +4,16 @@ - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + +