Bug 1853058 - Remove Translations Secret Settings and Use Nimbus

* This patch removes the secret setting to turn on translations and
removes the usage.
* Nimbus feature defaults for translations are all set to false.
fenix/125.0
ohall-m 2 months ago committed by mergify[bot]
parent 22a7222679
commit 0760ab5a58

@ -382,42 +382,42 @@ features:
description: > description: >
Show the primary toolbar entry point into the translations feature. (Translations icon on URL toolbar.) Show the primary toolbar entry point into the translations feature. (Translations icon on URL toolbar.)
type: Boolean type: Boolean
default: true default: false
main-flow-browser-menu-enabled: main-flow-browser-menu-enabled:
description: > description: >
Show the browser menu entry point into the translations feature. ('Translate Page' on browser menu.) Show the browser menu entry point into the translations feature. ('Translate Page' on browser menu.)
type: Boolean type: Boolean
default: true default: false
page-settings-enabled: page-settings-enabled:
description: > description: >
Show the page settings entry point within the translations feature. (Gear icon on the translations main flow page.) Show the page settings entry point within the translations feature. (Gear icon on the translations main flow page.)
'main-flow-toolbar-enabled' or 'main-flow-browser-menu-enabled' must also be enabled for users to access this feature. 'main-flow-toolbar-enabled' or 'main-flow-browser-menu-enabled' must also be enabled for users to access this feature.
type: Boolean type: Boolean
default: true default: false
global-settings-enabled: global-settings-enabled:
description: > description: >
Show the global settings entry point within the translations feature. ('Translation Settings' on the page settings view.) Show the global settings entry point within the translations feature. ('Translation Settings' on the page settings view.)
'page-settings-enabled' must also be enabled for users to access this feature. 'page-settings-enabled' must also be enabled for users to access this feature.
type: Boolean type: Boolean
default: true default: false
global-lang-settings-enabled: global-lang-settings-enabled:
description: > description: >
Show the global language options entry point for automatically translating. ('Automatic Translation' on the global settings view.) Show the global language options entry point for automatically translating. ('Automatic Translation' on the global settings view.)
'global-settings-enabled' must also be enabled for users to access this feature. 'global-settings-enabled' must also be enabled for users to access this feature.
type: Boolean type: Boolean
default: true default: false
global-site-settings-enabled: global-site-settings-enabled:
description: > description: >
Show the global never translate this site options entry point for site management. ('Never translate these sites' on the global settings view.) Show the global never translate this site options entry point for site management. ('Never translate these sites' on the global settings view.)
'global-settings-enabled' must also be enabled for users to access this feature. 'global-settings-enabled' must also be enabled for users to access this feature.
type: Boolean type: Boolean
default: true default: false
downloads-enabled: downloads-enabled:
description: > description: >
Show the global language model download options entry point for translations. ('Download languages' on the global settings view.) Show the global language model download options entry point for translations. ('Download languages' on the global settings view.)
'global-settings-enabled' must also be enabled for users to access this feature. 'global-settings-enabled' must also be enabled for users to access this feature.
type: Boolean type: Boolean
default: true default: false
types: types:
objects: {} objects: {}

@ -82,11 +82,6 @@ interface FeatureSettingsHelper {
*/ */
var composeTopSitesEnabled: Boolean var composeTopSitesEnabled: Boolean
/**
* Enable or disable translations flow.
*/
var isTranslationsEnabled: Boolean
fun applyFlagUpdates() fun applyFlagUpdates()
fun resetAllFeatureFlags() fun resetAllFeatureFlags()

@ -37,7 +37,6 @@ class FeatureSettingsHelperDelegate() : FeatureSettingsHelper {
etpPolicy = getETPPolicy(settings), etpPolicy = getETPPolicy(settings),
tabsTrayRewriteEnabled = settings.enableTabsTrayToCompose, tabsTrayRewriteEnabled = settings.enableTabsTrayToCompose,
composeTopSitesEnabled = settings.enableComposeTopSites, composeTopSitesEnabled = settings.enableComposeTopSites,
translationsEnabled = settings.enableTranslations,
) )
/** /**
@ -67,7 +66,6 @@ class FeatureSettingsHelperDelegate() : FeatureSettingsHelper {
override var etpPolicy: ETPPolicy by updatedFeatureFlags::etpPolicy override var etpPolicy: ETPPolicy by updatedFeatureFlags::etpPolicy
override var tabsTrayRewriteEnabled: Boolean by updatedFeatureFlags::tabsTrayRewriteEnabled override var tabsTrayRewriteEnabled: Boolean by updatedFeatureFlags::tabsTrayRewriteEnabled
override var composeTopSitesEnabled: Boolean by updatedFeatureFlags::composeTopSitesEnabled override var composeTopSitesEnabled: Boolean by updatedFeatureFlags::composeTopSitesEnabled
override var isTranslationsEnabled: Boolean by updatedFeatureFlags::translationsEnabled
override fun applyFlagUpdates() { override fun applyFlagUpdates() {
applyFeatureFlags(updatedFeatureFlags) applyFeatureFlags(updatedFeatureFlags)
@ -93,7 +91,6 @@ class FeatureSettingsHelperDelegate() : FeatureSettingsHelper {
settings.shouldShowOpenInAppBanner = featureFlags.isOpenInAppBannerEnabled settings.shouldShowOpenInAppBanner = featureFlags.isOpenInAppBannerEnabled
settings.enableTabsTrayToCompose = featureFlags.tabsTrayRewriteEnabled settings.enableTabsTrayToCompose = featureFlags.tabsTrayRewriteEnabled
settings.enableComposeTopSites = featureFlags.composeTopSitesEnabled settings.enableComposeTopSites = featureFlags.composeTopSitesEnabled
settings.enableTranslations = featureFlags.translationsEnabled
setETPPolicy(featureFlags.etpPolicy) setETPPolicy(featureFlags.etpPolicy)
} }
} }
@ -113,7 +110,6 @@ private data class FeatureFlags(
var etpPolicy: ETPPolicy, var etpPolicy: ETPPolicy,
var tabsTrayRewriteEnabled: Boolean, var tabsTrayRewriteEnabled: Boolean,
var composeTopSitesEnabled: Boolean, var composeTopSitesEnabled: Boolean,
var translationsEnabled: Boolean,
) )
internal fun getETPPolicy(settings: Settings): ETPPolicy { internal fun getETPPolicy(settings: Settings): ETPPolicy {

@ -165,7 +165,6 @@ class HomeActivityIntentTestRule internal constructor(
etpPolicy: ETPPolicy = getETPPolicy(settings), etpPolicy: ETPPolicy = getETPPolicy(settings),
tabsTrayRewriteEnabled: Boolean = false, tabsTrayRewriteEnabled: Boolean = false,
composeTopSitesEnabled: Boolean = false, composeTopSitesEnabled: Boolean = false,
translationsEnabled: Boolean = false,
) : this(initialTouchMode, launchActivity, skipOnboarding) { ) : this(initialTouchMode, launchActivity, skipOnboarding) {
this.isHomeOnboardingDialogEnabled = isHomeOnboardingDialogEnabled this.isHomeOnboardingDialogEnabled = isHomeOnboardingDialogEnabled
this.isPocketEnabled = isPocketEnabled this.isPocketEnabled = isPocketEnabled
@ -180,7 +179,6 @@ class HomeActivityIntentTestRule internal constructor(
this.etpPolicy = etpPolicy this.etpPolicy = etpPolicy
this.tabsTrayRewriteEnabled = tabsTrayRewriteEnabled this.tabsTrayRewriteEnabled = tabsTrayRewriteEnabled
this.composeTopSitesEnabled = composeTopSitesEnabled this.composeTopSitesEnabled = composeTopSitesEnabled
this.isTranslationsEnabled = translationsEnabled
} }
private val longTapUserPreference = getLongPressTimeout() private val longTapUserPreference = getLongPressTimeout()
@ -262,7 +260,6 @@ class HomeActivityIntentTestRule internal constructor(
skipOnboarding: Boolean = false, skipOnboarding: Boolean = false,
tabsTrayRewriteEnabled: Boolean = false, tabsTrayRewriteEnabled: Boolean = false,
composeTopSitesEnabled: Boolean = false, composeTopSitesEnabled: Boolean = false,
translationsEnabled: Boolean = false,
) = HomeActivityIntentTestRule( ) = HomeActivityIntentTestRule(
initialTouchMode = initialTouchMode, initialTouchMode = initialTouchMode,
launchActivity = launchActivity, launchActivity = launchActivity,
@ -274,7 +271,6 @@ class HomeActivityIntentTestRule internal constructor(
isWallpaperOnboardingEnabled = false, isWallpaperOnboardingEnabled = false,
isOpenInAppBannerEnabled = false, isOpenInAppBannerEnabled = false,
composeTopSitesEnabled = composeTopSitesEnabled, composeTopSitesEnabled = composeTopSitesEnabled,
translationsEnabled = translationsEnabled,
) )
} }
} }

@ -6,6 +6,7 @@ package org.mozilla.fenix.ui
import androidx.core.net.toUri import androidx.core.net.toUri
import mozilla.components.concept.engine.utils.EngineReleaseChannel import mozilla.components.concept.engine.utils.EngineReleaseChannel
import org.junit.Before
import org.junit.Rule import org.junit.Rule
import org.junit.Test import org.junit.Test
import org.mozilla.fenix.customannotations.SmokeTest import org.mozilla.fenix.customannotations.SmokeTest
@ -21,6 +22,8 @@ import org.mozilla.fenix.helpers.TestAssetHelper
import org.mozilla.fenix.helpers.TestHelper import org.mozilla.fenix.helpers.TestHelper
import org.mozilla.fenix.helpers.TestHelper.mDevice import org.mozilla.fenix.helpers.TestHelper.mDevice
import org.mozilla.fenix.helpers.TestSetup import org.mozilla.fenix.helpers.TestSetup
import org.mozilla.fenix.nimbus.FxNimbus
import org.mozilla.fenix.nimbus.Translations
import org.mozilla.fenix.ui.robots.browserScreen import org.mozilla.fenix.ui.robots.browserScreen
import org.mozilla.fenix.ui.robots.clickContextMenuItem import org.mozilla.fenix.ui.robots.clickContextMenuItem
import org.mozilla.fenix.ui.robots.clickPageObject import org.mozilla.fenix.ui.robots.clickPageObject
@ -30,10 +33,27 @@ import org.mozilla.fenix.ui.robots.navigationToolbar
class MainMenuTest : TestSetup() { class MainMenuTest : TestSetup() {
@get:Rule @get:Rule
val activityTestRule = val activityTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides()
HomeActivityIntentTestRule.withDefaultSettingsOverrides(translationsEnabled = true)
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/233849 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/233849
@Before
override fun setUp() {
super.setUp()
FxNimbus.features.translations.withInitializer { _, _ ->
// These are FML generated objects and enums
Translations(
mainFlowToolbarEnabled = true,
mainFlowBrowserMenuEnabled = true,
pageSettingsEnabled = true,
globalSettingsEnabled = true,
globalLangSettingsEnabled = true,
globalSiteSettingsEnabled = true,
downloadsEnabled = true,
)
}
}
@Test @Test
fun verifyTabMainMenuItemsTest() { fun verifyTabMainMenuItemsTest() {
val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)

@ -63,12 +63,6 @@ object FeatureFlags {
*/ */
const val unifiedSearchSettings = true const val unifiedSearchSettings = true
/**
* Allows users to enable translations.
* Preference to fully enable translations is pref_key_enable_translations.
*/
val translations = Config.channel.isNightlyOrDebug
/** /**
* Allows users to enable Firefox Suggest. * Allows users to enable Firefox Suggest.
*/ */

@ -314,7 +314,6 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler {
context.components.core.store.state.translationEngine.isEngineSupported context.components.core.store.state.translationEngine.isEngineSupported
if (isEngineSupported != true || if (isEngineSupported != true ||
!context.settings().enableTranslations ||
!FxNimbus.features.translations.value().mainFlowToolbarEnabled !FxNimbus.features.translations.value().mainFlowToolbarEnabled
) { ) {
return return

@ -199,7 +199,7 @@ open class DefaultToolbarMenu(
*/ */
@VisibleForTesting(otherwise = PRIVATE) @VisibleForTesting(otherwise = PRIVATE)
fun shouldShowTranslations(): Boolean = selectedSession?.let { fun shouldShowTranslations(): Boolean = selectedSession?.let {
context.settings().enableTranslations && store.state.translationEngine.isEngineSupported == true && store.state.translationEngine.isEngineSupported == true &&
FxNimbus.features.translations.value().mainFlowBrowserMenuEnabled FxNimbus.features.translations.value().mainFlowBrowserMenuEnabled
} ?: false } ?: false
// End of predicates // // End of predicates //

@ -76,12 +76,6 @@ class SecretSettingsFragment : PreferenceFragmentCompat() {
onPreferenceChangeListener = SharedPreferenceUpdater() onPreferenceChangeListener = SharedPreferenceUpdater()
} }
requirePreference<SwitchPreference>(R.string.pref_key_enable_translations).apply {
isVisible = FeatureFlags.translations
isChecked = context.settings().enableTranslations
onPreferenceChangeListener = SharedPreferenceUpdater()
}
requirePreference<SwitchPreference>(R.string.pref_key_enable_fxsuggest).apply { requirePreference<SwitchPreference>(R.string.pref_key_enable_fxsuggest).apply {
isVisible = FeatureFlags.fxSuggest isVisible = FeatureFlags.fxSuggest
isChecked = context.settings().enableFxSuggest isChecked = context.settings().enableFxSuggest

@ -1874,14 +1874,6 @@ class Settings(private val appContext: Context) : PreferencesHolder {
default = FeatureFlags.composeTopSites, default = FeatureFlags.composeTopSites,
) )
/**
* Indicates if Firefox translations are enabled.
*/
var enableTranslations by booleanPreference(
key = appContext.getPreferenceKey(R.string.pref_key_enable_translations),
default = false,
)
/** /**
* Adjust Activated User sent * Adjust Activated User sent
*/ */

@ -368,7 +368,6 @@
<string name="pref_key_custom_sponsored_stories_country" translatable="false">pref_key_custom_sponsored_stories_country</string> <string name="pref_key_custom_sponsored_stories_country" translatable="false">pref_key_custom_sponsored_stories_country</string>
<string name="pref_key_custom_sponsored_stories_city" translatable="false">pref_key_custom_sponsored_stories_city</string> <string name="pref_key_custom_sponsored_stories_city" translatable="false">pref_key_custom_sponsored_stories_city</string>
<string name="pref_key_enable_compose_top_sites" translatable="false">pref_key_enable_compose_top_sites</string> <string name="pref_key_enable_compose_top_sites" translatable="false">pref_key_enable_compose_top_sites</string>
<string name="pref_key_enable_translations" translatable="false">pref_key_enable_translations</string>
<!-- Growth Data --> <!-- Growth Data -->
<string name="pref_key_growth_set_as_default" translatable="false">pref_key_growth_set_as_default</string> <string name="pref_key_growth_set_as_default" translatable="false">pref_key_growth_set_as_default</string>

@ -68,8 +68,6 @@
<string name="preferences_debug_settings_tabs_tray_to_compose" translatable="false">Enable Tabs Tray to Compose rewrite</string> <string name="preferences_debug_settings_tabs_tray_to_compose" translatable="false">Enable Tabs Tray to Compose rewrite</string>
<!-- Label for enabling the Compose Top Sites --> <!-- Label for enabling the Compose Top Sites -->
<string name="preferences_debug_settings_compose_top_sites" translatable="false">Enable Compose Top Sites</string> <string name="preferences_debug_settings_compose_top_sites" translatable="false">Enable Compose Top Sites</string>
<!-- Label for enabling translations -->
<string name="preferences_debug_settings_translations" translatable="false">Enable Firefox Translations</string>
<!-- Label for enabling Firefox Suggest --> <!-- Label for enabling Firefox Suggest -->
<string name="preferences_debug_settings_fxsuggest" translatable="false">Enable Firefox Suggest</string> <string name="preferences_debug_settings_fxsuggest" translatable="false">Enable Firefox Suggest</string>
<!-- Label for enabling Toolbar Redesign incomplete portions --> <!-- Label for enabling Toolbar Redesign incomplete portions -->

@ -30,11 +30,6 @@
android:key="@string/pref_key_toolbar_use_redesign_incomplete" android:key="@string/pref_key_toolbar_use_redesign_incomplete"
android:title="@string/preferences_debug_settings_toolbar_redesign" android:title="@string/preferences_debug_settings_toolbar_redesign"
app:iconSpaceReserved="false" /> app:iconSpaceReserved="false" />
<SwitchPreference
android:defaultValue="false"
android:key="@string/pref_key_enable_translations"
android:title="@string/preferences_debug_settings_translations"
app:iconSpaceReserved="false" />
<SwitchPreference <SwitchPreference
android:defaultValue="false" android:defaultValue="false"
android:key="@string/pref_key_enable_fxsuggest" android:key="@string/pref_key_enable_fxsuggest"

Loading…
Cancel
Save