diff --git a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt index 9de3f7a45..e99f40266 100644 --- a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +++ b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt @@ -55,4 +55,9 @@ object FeatureFlags { * Gives option in Settings to Delete Browsing Data on new menu option Quit */ val deleteDataOnQuit = nightly or debug + + /** + * Gives option in Settings to disable auto play media + */ + val autoPlayMedia = nightly or debug } diff --git a/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsFragment.kt index 44d6b6288..fee1037c0 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsFragment.kt @@ -10,6 +10,7 @@ import androidx.navigation.Navigation import androidx.preference.Preference import androidx.preference.Preference.OnPreferenceClickListener import androidx.preference.PreferenceFragmentCompat +import org.mozilla.fenix.FeatureFlags import org.mozilla.fenix.R import org.mozilla.fenix.ext.getPreferenceKey import org.mozilla.fenix.ext.settings @@ -36,6 +37,18 @@ class SitePermissionsFragment : PreferenceFragmentCompat() { private fun setupPreferences() { bindCategoryPhoneFeatures() bindExceptions() + + if (FeatureFlags.autoPlayMedia) { + displayAutoplayPreference() + } + } + + private fun displayAutoplayPreference() { + findPreference( + getPreferenceKey(R.string.pref_key_browser_feature_autoplay) + )?.apply { + isVisible = true + } } private fun bindExceptions() { 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 44aee186e..b04ffa6b7 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -20,6 +20,7 @@ import mozilla.components.support.ktx.android.content.longPreference import mozilla.components.support.ktx.android.content.stringPreference import org.mozilla.fenix.BuildConfig import org.mozilla.fenix.Config +import org.mozilla.fenix.FeatureFlags import org.mozilla.fenix.R import org.mozilla.fenix.components.metrics.MozillaProductDetector import org.mozilla.fenix.ext.getPreferenceKey @@ -118,9 +119,10 @@ class Settings private constructor( default = true ) + // If autoPlayMedia is flagged OFF, default to true here val isAutoPlayEnabled = getSitePermissionsPhoneFeatureAction( PhoneFeature.AUTOPLAY, Action.BLOCKED - ) != Action.BLOCKED + ) != Action.BLOCKED || !FeatureFlags.autoPlayMedia private var trackingProtectionOnboardingShownThisSession = false diff --git a/app/src/main/res/xml/site_permissions_preferences.xml b/app/src/main/res/xml/site_permissions_preferences.xml index 955288e13..e54778d24 100644 --- a/app/src/main/res/xml/site_permissions_preferences.xml +++ b/app/src/main/res/xml/site_permissions_preferences.xml @@ -9,7 +9,8 @@ android:icon="@drawable/ic_autoplay_enabled" android:key="@string/pref_key_browser_feature_autoplay" android:title="@string/preference_browser_feature_autoplay" - android:summary="@string/preference_option_autoplay_blocked"/> + android:summary="@string/preference_option_autoplay_blocked" + app:isPreferenceVisible="false"/>