forked from mirrors/gecko-dev
Backed out changeset b2046b45aca1 (bug 1890838) for causing lint failures on nav_graph.xml CLOSED TREE
This commit is contained in:
parent
584084b993
commit
1218263560
17 changed files with 90 additions and 97 deletions
|
|
@ -868,12 +868,11 @@ translations:
|
|||
A string containing the name of the item the user tapped. These items
|
||||
include:
|
||||
main_flow_toolbar, main_flow_browser, page_settings, global_settings,
|
||||
global_lang_settings, global_site_settings, downloads, global_settings_from_preferences
|
||||
global_lang_settings, global_site_settings, downloads
|
||||
type: string
|
||||
bugs:
|
||||
- https://bugzilla.mozilla.org/show_bug.cgi?id=1883968
|
||||
- https://bugzilla.mozilla.org/show_bug.cgi?id=1886851
|
||||
- https://bugzilla.mozilla.org/show_bug.cgi?id=1890838
|
||||
data_reviews:
|
||||
- https://bugzilla.mozilla.org/show_bug.cgi?id=1883968#c6
|
||||
- https://bugzilla.mozilla.org/show_bug.cgi?id=1886851#c8
|
||||
|
|
|
|||
|
|
@ -233,7 +233,9 @@ class DefaultBrowserToolbarController(
|
|||
override fun handleTranslationsButtonClick() {
|
||||
Translations.action.record(Translations.ActionExtra("main_flow_toolbar"))
|
||||
val directions =
|
||||
BrowserFragmentDirections.actionBrowserFragmentToTranslationsDialogFragment()
|
||||
BrowserFragmentDirections.actionBrowserFragmentToTranslationsDialogFragment(
|
||||
sessionId = currentSession?.id,
|
||||
)
|
||||
navController.navigateSafe(R.id.browserFragment, directions)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -424,7 +424,9 @@ class DefaultBrowserToolbarMenuController(
|
|||
ToolbarMenu.Item.Translate -> {
|
||||
Translations.action.record(Translations.ActionExtra("main_flow_browser"))
|
||||
val directions =
|
||||
BrowserFragmentDirections.actionBrowserFragmentToTranslationsDialogFragment()
|
||||
BrowserFragmentDirections.actionBrowserFragmentToTranslationsDialogFragment(
|
||||
sessionId = currentSession?.id,
|
||||
)
|
||||
navController.navigateSafe(R.id.browserFragment, directions)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,7 +47,6 @@ import org.mozilla.fenix.GleanMetrics.Addons
|
|||
import org.mozilla.fenix.GleanMetrics.CookieBanners
|
||||
import org.mozilla.fenix.GleanMetrics.Events
|
||||
import org.mozilla.fenix.GleanMetrics.TrackingProtection
|
||||
import org.mozilla.fenix.GleanMetrics.Translations
|
||||
import org.mozilla.fenix.HomeActivity
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.components.accounts.FenixFxAEntryPoint
|
||||
|
|
@ -316,11 +315,6 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|||
SettingsFragmentDirections.actionSettingsFragmentToLocaleSettingsFragment()
|
||||
}
|
||||
|
||||
resources.getString(R.string.pref_key_translation) -> {
|
||||
Translations.action.record(Translations.ActionExtra("global_settings_from_preferences"))
|
||||
SettingsFragmentDirections.actionSettingsFragmentToTranslationsSettingsFragment()
|
||||
}
|
||||
|
||||
/* Privacy and security preferences */
|
||||
resources.getString(R.string.pref_key_private_browsing) -> {
|
||||
SettingsFragmentDirections.actionSettingsFragmentToPrivateBrowsingFragment()
|
||||
|
|
@ -515,9 +509,6 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|||
findPreference<Preference>(
|
||||
getPreferenceKey(R.string.pref_key_sync_debug),
|
||||
)?.isVisible = showSecretDebugMenuThisSession
|
||||
findPreference<Preference>(
|
||||
getPreferenceKey(R.string.pref_key_translation),
|
||||
)?.isVisible = FxNimbus.features.translations.value().globalSettingsEnabled
|
||||
preferenceStartProfiler?.isVisible = showSecretDebugMenuThisSession &&
|
||||
(requireContext().components.core.engine.profiler?.isProfilerActive() != null)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,9 +17,11 @@ import androidx.compose.ui.platform.ComposeView
|
|||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import mozilla.components.browser.state.action.TranslationsAction
|
||||
import mozilla.components.browser.state.state.TranslationsBrowserState
|
||||
import mozilla.components.browser.state.selector.findTab
|
||||
import mozilla.components.browser.state.store.BrowserStore
|
||||
import mozilla.components.concept.engine.translate.TranslationPageSettingOperation
|
||||
import mozilla.components.lib.state.ext.observeAsComposableState
|
||||
import mozilla.components.support.base.feature.UserInteractionHandler
|
||||
import org.mozilla.fenix.GleanMetrics.Translations
|
||||
|
|
@ -34,6 +36,7 @@ import org.mozilla.fenix.theme.FirefoxTheme
|
|||
* A fragment displaying the Firefox Translation settings screen.
|
||||
*/
|
||||
class TranslationSettingsFragment : Fragment(), UserInteractionHandler {
|
||||
private val args by navArgs<TranslationSettingsFragmentArgs>()
|
||||
private val browserStore: BrowserStore by lazy { requireComponents.core.store }
|
||||
|
||||
override fun onResume() {
|
||||
|
|
@ -81,19 +84,19 @@ class TranslationSettingsFragment : Fragment(), UserInteractionHandler {
|
|||
|
||||
/**
|
||||
* Set the switch item values.
|
||||
* The first one is based on [TranslationsBrowserState.offerTranslation].
|
||||
* The first one is based on [TranslationPageSettings.alwaysOfferPopup].
|
||||
* The second one is [DownloadLanguageFileDialog] visibility.
|
||||
* This pop-up will appear if the switch item is unchecked, the phone is in saving mode, and
|
||||
* doesn't have a WiFi connection.
|
||||
*/
|
||||
@Composable
|
||||
private fun getTranslationSwitchItemList(): MutableList<TranslationSwitchItem> {
|
||||
val offerToTranslate = browserStore.observeAsComposableState { state ->
|
||||
state.translationEngine.offerTranslation
|
||||
val pageSettingsState = browserStore.observeAsComposableState { state ->
|
||||
state.findTab(args.sessionId)?.translationsState?.pageSettings
|
||||
}.value
|
||||
val translationSwitchItems = mutableListOf<TranslationSwitchItem>()
|
||||
|
||||
offerToTranslate?.let {
|
||||
pageSettingsState?.alwaysOfferPopup?.let {
|
||||
translationSwitchItems.add(
|
||||
TranslationSwitchItem(
|
||||
type = TranslationSettingsScreenOption.OfferToTranslate(
|
||||
|
|
@ -104,8 +107,10 @@ class TranslationSettingsFragment : Fragment(), UserInteractionHandler {
|
|||
isEnabled = true,
|
||||
onStateChange = { _, checked ->
|
||||
browserStore.dispatch(
|
||||
TranslationsAction.SetGlobalOfferTranslateSettingAction(
|
||||
offerTranslation = checked,
|
||||
TranslationsAction.UpdatePageSettingAction(
|
||||
tabId = args.sessionId,
|
||||
operation = TranslationPageSettingOperation.UPDATE_ALWAYS_OFFER_POPUP,
|
||||
setting = checked,
|
||||
),
|
||||
)
|
||||
// Ensures persistence of value
|
||||
|
|
@ -136,15 +141,12 @@ class TranslationSettingsFragment : Fragment(), UserInteractionHandler {
|
|||
}
|
||||
|
||||
override fun onBackPressed(): Boolean {
|
||||
return if (findNavController().previousBackStackEntry?.destination?.id == R.id.browserFragment) {
|
||||
findNavController().navigate(
|
||||
TranslationSettingsFragmentDirections.actionTranslationSettingsFragmentToTranslationsDialogFragment(
|
||||
translationsDialogAccessPoint = TranslationsDialogAccessPoint.TranslationsOptions,
|
||||
),
|
||||
)
|
||||
true
|
||||
} else {
|
||||
false
|
||||
}
|
||||
findNavController().navigate(
|
||||
TranslationSettingsFragmentDirections.actionTranslationSettingsFragmentToTranslationsDialogFragment(
|
||||
sessionId = args.sessionId,
|
||||
translationsDialogAccessPoint = TranslationsDialogAccessPoint.TranslationsOptions,
|
||||
),
|
||||
)
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -171,7 +171,6 @@ internal fun TranslationsOptionsDialog(
|
|||
context: Context,
|
||||
showGlobalSettings: Boolean,
|
||||
translationPageSettings: TranslationPageSettings? = null,
|
||||
offerTranslation: Boolean? = null,
|
||||
initialFrom: Language? = null,
|
||||
onStateChange: (TranslationSettingsOption, Boolean) -> Unit,
|
||||
onBackClicked: () -> Unit,
|
||||
|
|
@ -182,7 +181,6 @@ internal fun TranslationsOptionsDialog(
|
|||
showGlobalSettings = showGlobalSettings,
|
||||
translationOptionsList = getTranslationSwitchItemList(
|
||||
translationPageSettings = translationPageSettings,
|
||||
offerTranslation = offerTranslation,
|
||||
initialFrom = initialFrom,
|
||||
context = context,
|
||||
onStateChange = onStateChange,
|
||||
|
|
@ -196,7 +194,6 @@ internal fun TranslationsOptionsDialog(
|
|||
@Composable
|
||||
private fun getTranslationSwitchItemList(
|
||||
translationPageSettings: TranslationPageSettings? = null,
|
||||
offerTranslation: Boolean? = null,
|
||||
initialFrom: Language? = null,
|
||||
context: Context,
|
||||
onStateChange: (TranslationSettingsOption, Boolean) -> Unit,
|
||||
|
|
@ -204,11 +201,12 @@ private fun getTranslationSwitchItemList(
|
|||
val translationSwitchItemList = mutableListOf<TranslationSwitchItem>()
|
||||
|
||||
translationPageSettings?.let {
|
||||
val alwaysOfferPopup = translationPageSettings.alwaysOfferPopup
|
||||
val alwaysTranslateLanguage = translationPageSettings.alwaysTranslateLanguage
|
||||
val neverTranslateLanguage = translationPageSettings.neverTranslateLanguage
|
||||
val neverTranslateSite = translationPageSettings.neverTranslateSite
|
||||
|
||||
offerTranslation?.let {
|
||||
alwaysOfferPopup?.let {
|
||||
translationSwitchItemList.add(
|
||||
TranslationSwitchItem(
|
||||
type = TranslationPageSettingsOption.AlwaysOfferPopup(),
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import kotlinx.coroutines.flow.Flow
|
|||
import kotlinx.coroutines.flow.combine
|
||||
import kotlinx.coroutines.flow.distinctUntilChangedBy
|
||||
import kotlinx.coroutines.flow.mapNotNull
|
||||
import mozilla.components.browser.state.selector.selectedTab
|
||||
import mozilla.components.browser.state.selector.findTab
|
||||
import mozilla.components.browser.state.state.BrowserState
|
||||
import mozilla.components.browser.state.state.TabSessionState
|
||||
import mozilla.components.browser.state.state.TranslationsBrowserState
|
||||
|
|
@ -29,6 +29,7 @@ import java.util.Locale
|
|||
class TranslationsDialogBinding(
|
||||
browserStore: BrowserStore,
|
||||
private val translationsDialogStore: TranslationsDialogStore,
|
||||
private val sessionId: String,
|
||||
private val getTranslatedPageTitle: (localizedFrom: String?, localizedTo: String?) -> String,
|
||||
) : AbstractBinding<BrowserState>(browserStore) {
|
||||
|
||||
|
|
@ -41,7 +42,7 @@ class TranslationsDialogBinding(
|
|||
}
|
||||
|
||||
// Session level flows
|
||||
val sessionFlow = flow.mapNotNull { state -> state.selectedTab }
|
||||
val sessionFlow = flow.mapNotNull { state -> state.findTab(sessionId) }
|
||||
.distinctUntilChangedBy {
|
||||
it.translationsState
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ import androidx.navigation.fragment.findNavController
|
|||
import androidx.navigation.fragment.navArgs
|
||||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import mozilla.components.browser.state.selector.selectedTab
|
||||
import mozilla.components.browser.state.selector.findTab
|
||||
import mozilla.components.browser.state.store.BrowserStore
|
||||
import mozilla.components.concept.engine.translate.Language
|
||||
import mozilla.components.concept.engine.translate.TranslationError
|
||||
|
|
@ -92,6 +92,7 @@ class TranslationsDialogFragment : BottomSheetDialogFragment() {
|
|||
listOf(
|
||||
TranslationsDialogMiddleware(
|
||||
browserStore = browserStore,
|
||||
sessionId = args.sessionId,
|
||||
settings = requireContext().settings(),
|
||||
),
|
||||
),
|
||||
|
|
@ -244,6 +245,7 @@ class TranslationsDialogFragment : BottomSheetDialogFragment() {
|
|||
feature = TranslationsDialogBinding(
|
||||
browserStore = browserStore,
|
||||
translationsDialogStore = translationsDialogStore,
|
||||
sessionId = args.sessionId,
|
||||
getTranslatedPageTitle = { localizedFrom, localizedTo ->
|
||||
requireContext().getString(
|
||||
R.string.translations_bottom_sheet_title_translation_completed,
|
||||
|
|
@ -382,17 +384,12 @@ class TranslationsDialogFragment : BottomSheetDialogFragment() {
|
|||
) {
|
||||
val pageSettingsState =
|
||||
browserStore.observeAsComposableState { state ->
|
||||
state.selectedTab?.translationsState?.pageSettings
|
||||
state.findTab(args.sessionId)?.translationsState?.pageSettings
|
||||
}.value
|
||||
|
||||
val offerTranslation = browserStore.observeAsComposableState { state ->
|
||||
state.translationEngine.offerTranslation
|
||||
}.value
|
||||
|
||||
TranslationsOptionsDialog(
|
||||
context = requireContext(),
|
||||
translationPageSettings = pageSettingsState,
|
||||
offerTranslation = offerTranslation,
|
||||
showGlobalSettings = showGlobalSettings,
|
||||
initialFrom = initialFrom,
|
||||
onStateChange = { type, checked ->
|
||||
|
|
@ -411,7 +408,9 @@ class TranslationsDialogFragment : BottomSheetDialogFragment() {
|
|||
Translations.action.record(Translations.ActionExtra("global_settings"))
|
||||
findNavController().navigate(
|
||||
TranslationsDialogFragmentDirections
|
||||
.actionTranslationsDialogFragmentToTranslationSettingsFragment(),
|
||||
.actionTranslationsDialogFragmentToTranslationSettingsFragment(
|
||||
sessionId = args.sessionId,
|
||||
),
|
||||
)
|
||||
},
|
||||
aboutTranslationClicked = {
|
||||
|
|
@ -426,7 +425,7 @@ class TranslationsDialogFragment : BottomSheetDialogFragment() {
|
|||
setFragmentResult(
|
||||
TRANSLATION_IN_PROGRESS,
|
||||
bundleOf(
|
||||
SESSION_ID to browserStore.state.selectedTab?.id,
|
||||
SESSION_ID to args.sessionId,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,12 +5,12 @@
|
|||
package org.mozilla.fenix.translations
|
||||
|
||||
import mozilla.components.browser.state.action.TranslationsAction
|
||||
import mozilla.components.browser.state.selector.selectedTab
|
||||
import mozilla.components.browser.state.store.BrowserStore
|
||||
import mozilla.components.concept.engine.translate.TranslationOperation
|
||||
import mozilla.components.concept.engine.translate.TranslationPageSettingOperation
|
||||
import mozilla.components.lib.state.Middleware
|
||||
import mozilla.components.lib.state.MiddlewareContext
|
||||
import org.mozilla.fenix.ext.settings
|
||||
import org.mozilla.fenix.utils.Settings
|
||||
|
||||
/**
|
||||
|
|
@ -18,17 +18,16 @@ import org.mozilla.fenix.utils.Settings
|
|||
*/
|
||||
class TranslationsDialogMiddleware(
|
||||
private val browserStore: BrowserStore,
|
||||
private val sessionId: String,
|
||||
private val settings: Settings,
|
||||
) : Middleware<TranslationsDialogState, TranslationsDialogAction> {
|
||||
|
||||
@Suppress("LongMethod", "CyclomaticComplexMethod")
|
||||
@Suppress("LongMethod")
|
||||
override fun invoke(
|
||||
context: MiddlewareContext<TranslationsDialogState, TranslationsDialogAction>,
|
||||
next: (TranslationsDialogAction) -> Unit,
|
||||
action: TranslationsDialogAction,
|
||||
) {
|
||||
val sessionId = browserStore.state.selectedTab?.id ?: return
|
||||
|
||||
when (action) {
|
||||
is TranslationsDialogAction.InitTranslationsDialog -> {
|
||||
// If the languages are missing, we should attempt to fetch the supported languages.
|
||||
|
|
@ -99,8 +98,10 @@ class TranslationsDialogMiddleware(
|
|||
is TranslationPageSettingsOption.AlwaysOfferPopup -> {
|
||||
// Ensures the translations engine has the correct value
|
||||
browserStore.dispatch(
|
||||
TranslationsAction.SetGlobalOfferTranslateSettingAction(
|
||||
offerTranslation = action.checkValue,
|
||||
TranslationsAction.UpdatePageSettingAction(
|
||||
tabId = sessionId,
|
||||
operation = TranslationPageSettingOperation.UPDATE_ALWAYS_OFFER_POPUP,
|
||||
setting = action.checkValue,
|
||||
),
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -319,7 +319,6 @@
|
|||
app:destination="@id/reviewQualityCheckFragment" />
|
||||
<action
|
||||
android:id="@+id/action_browserFragment_to_translationsDialogFragment"
|
||||
app:destination="@id/translationsDialogFragment" />
|
||||
app:destination="@id/translations_graph" />
|
||||
<action
|
||||
android:id="@+id/action_loginsListFragment"
|
||||
|
|
@ -638,13 +637,6 @@
|
|||
app:exitAnim="@anim/slide_out_left"
|
||||
app:popEnterAnim="@anim/slide_in_left"
|
||||
app:popExitAnim="@anim/slide_out_right" />
|
||||
<action
|
||||
android:id="@+id/action_settingsFragment_to_translationsSettingsFragment"
|
||||
app:destination="@id/translations_settings_graph"
|
||||
app:enterAnim="@anim/slide_in_right"
|
||||
app:exitAnim="@anim/slide_out_left"
|
||||
app:popEnterAnim="@anim/slide_in_left"
|
||||
app:popExitAnim="@anim/slide_out_right" />
|
||||
<action
|
||||
android:id="@+id/action_settingsFragment_to_addonsFragment"
|
||||
app:destination="@id/addons_management_graph"
|
||||
|
|
@ -1452,24 +1444,33 @@
|
|||
</fragment>
|
||||
</navigation>
|
||||
|
||||
<dialog
|
||||
android:id="@+id/translationsDialogFragment"
|
||||
android:name="org.mozilla.fenix.translations.TranslationsDialogFragment">
|
||||
<argument
|
||||
android:name="translationsDialogAccessPoint"
|
||||
android:defaultValue="Translations"
|
||||
app:argType="org.mozilla.fenix.translations.TranslationsDialogAccessPoint" />
|
||||
<action
|
||||
android:id="@+id/action_translationsDialogFragment_to_translationSettingsFragment"
|
||||
app:destination="@id/translations_settings_graph" />
|
||||
</dialog>
|
||||
|
||||
<navigation
|
||||
android:id="@+id/translations_settings_graph"
|
||||
app:startDestination="@id/translationSettingsFragment">
|
||||
android:id="@+id/translations_graph"
|
||||
app:startDestination="@id/translationsDialogFragment">
|
||||
<argument
|
||||
android:name="sessionId"
|
||||
app:argType="string"
|
||||
app:nullable="true" />
|
||||
<dialog
|
||||
android:id="@+id/translationsDialogFragment"
|
||||
android:name="org.mozilla.fenix.translations.TranslationsDialogFragment">
|
||||
<argument
|
||||
android:name="sessionId"
|
||||
app:argType="string" />
|
||||
<argument
|
||||
android:name="translationsDialogAccessPoint"
|
||||
android:defaultValue="Translations"
|
||||
app:argType="org.mozilla.fenix.translations.TranslationsDialogAccessPoint" />
|
||||
<action
|
||||
android:id="@+id/action_translationsDialogFragment_to_translationSettingsFragment"
|
||||
app:destination="@id/translationSettingsFragment" />
|
||||
</dialog>
|
||||
<fragment
|
||||
android:id="@+id/translationSettingsFragment"
|
||||
android:name="org.mozilla.fenix.translations.TranslationSettingsFragment">
|
||||
<argument
|
||||
android:name="sessionId"
|
||||
app:argType="string" />
|
||||
<action
|
||||
android:id="@+id/action_translationSettingsFragment_to_translationsDialogFragment"
|
||||
app:destination="@id/translationsDialogFragment"
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@
|
|||
<string name="pref_key_accessibility_force_enable_zoom" translatable="false">pref_key_accessibility_force_enable_zoom</string>
|
||||
<string name="pref_key_advanced" translatable="false">pref_key_advanced</string>
|
||||
<string name="pref_key_language" translatable="false">pref_key_language</string>
|
||||
<string name="pref_key_translation" translatable="false">pref_key_translation</string>
|
||||
<string name="pref_key_data_choices" translatable="false">pref_key_data_choices</string>
|
||||
<string name="pref_key_delete_browsing_data" translatable="false">pref_key_delete_browsing_data</string>
|
||||
<string name="pref_key_delete_browsing_data_on_quit_preference" translatable="false">pref_key_delete_browsing_data_on_quit_preference</string>
|
||||
|
|
|
|||
|
|
@ -553,8 +553,6 @@
|
|||
<string name="preferences_account_sync_error">Reconnect to resume syncing</string>
|
||||
<!-- Preference for language -->
|
||||
<string name="preferences_language">Language</string>
|
||||
<!-- Preference for translation -->
|
||||
<string name="preferences_translation">Translation</string>
|
||||
<!-- Preference for data choices -->
|
||||
<string name="preferences_data_choices">Data choices</string>
|
||||
<!-- Preference for data collection -->
|
||||
|
|
|
|||
|
|
@ -82,11 +82,6 @@
|
|||
app:iconSpaceReserved="false"
|
||||
android:title="@string/preferences_language" />
|
||||
|
||||
<androidx.preference.Preference
|
||||
android:key="@string/pref_key_translation"
|
||||
app:iconSpaceReserved="false"
|
||||
android:title="@string/preferences_translation" />
|
||||
|
||||
<org.mozilla.fenix.settings.DefaultBrowserPreference
|
||||
android:key="@string/pref_key_make_default_browser"
|
||||
app:iconSpaceReserved="false"
|
||||
|
|
|
|||
|
|
@ -454,7 +454,9 @@ class DefaultBrowserToolbarControllerTest {
|
|||
|
||||
verify {
|
||||
navController.navigate(
|
||||
BrowserFragmentDirections.actionBrowserFragmentToTranslationsDialogFragment(),
|
||||
BrowserFragmentDirections.actionBrowserFragmentToTranslationsDialogFragment(
|
||||
sessionId = "1",
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -837,7 +837,9 @@ class DefaultBrowserToolbarMenuControllerTest {
|
|||
verify {
|
||||
navController.navigate(
|
||||
directionsEq(
|
||||
BrowserFragmentDirections.actionBrowserFragmentToTranslationsDialogFragment(),
|
||||
BrowserFragmentDirections.actionBrowserFragmentToTranslationsDialogFragment(
|
||||
sessionId = selectedTab.id,
|
||||
),
|
||||
),
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ class TranslationsDialogBindingTest {
|
|||
val binding = TranslationsDialogBinding(
|
||||
browserStore = browserStore,
|
||||
translationsDialogStore = translationsDialogStore,
|
||||
sessionId = tabId,
|
||||
getTranslatedPageTitle = { localizedFrom, localizedTo ->
|
||||
testContext.getString(
|
||||
R.string.translations_bottom_sheet_title_translation_completed,
|
||||
|
|
@ -137,6 +138,7 @@ class TranslationsDialogBindingTest {
|
|||
val binding = TranslationsDialogBinding(
|
||||
browserStore = browserStore,
|
||||
translationsDialogStore = translationsDialogStore,
|
||||
sessionId = tabId,
|
||||
getTranslatedPageTitle = { localizedFrom, localizedTo ->
|
||||
testContext.getString(
|
||||
R.string.translations_bottom_sheet_title_translation_completed,
|
||||
|
|
@ -182,6 +184,7 @@ class TranslationsDialogBindingTest {
|
|||
val binding = TranslationsDialogBinding(
|
||||
browserStore = browserStore,
|
||||
translationsDialogStore = translationsDialogStore,
|
||||
sessionId = tabId,
|
||||
getTranslatedPageTitle = { localizedFrom, localizedTo ->
|
||||
testContext.getString(
|
||||
R.string.translations_bottom_sheet_title_translation_completed,
|
||||
|
|
@ -228,6 +231,7 @@ class TranslationsDialogBindingTest {
|
|||
val binding = TranslationsDialogBinding(
|
||||
browserStore = browserStore,
|
||||
translationsDialogStore = translationsDialogStore,
|
||||
sessionId = tabId,
|
||||
getTranslatedPageTitle = { localizedFrom, localizedTo ->
|
||||
testContext.getString(
|
||||
R.string.translations_bottom_sheet_title_translation_completed,
|
||||
|
|
@ -277,6 +281,7 @@ class TranslationsDialogBindingTest {
|
|||
val binding = TranslationsDialogBinding(
|
||||
browserStore = browserStore,
|
||||
translationsDialogStore = translationsDialogStore,
|
||||
sessionId = tabId,
|
||||
getTranslatedPageTitle = { localizedFrom, localizedTo ->
|
||||
testContext.getString(
|
||||
R.string.translations_bottom_sheet_title_translation_completed,
|
||||
|
|
@ -316,6 +321,7 @@ class TranslationsDialogBindingTest {
|
|||
val binding = TranslationsDialogBinding(
|
||||
browserStore = browserStore,
|
||||
translationsDialogStore = translationsDialogStore,
|
||||
sessionId = tabId,
|
||||
getTranslatedPageTitle = { localizedFrom, localizedTo ->
|
||||
testContext.getString(
|
||||
R.string.translations_bottom_sheet_title_translation_completed,
|
||||
|
|
@ -353,6 +359,7 @@ class TranslationsDialogBindingTest {
|
|||
val binding = TranslationsDialogBinding(
|
||||
browserStore = browserStore,
|
||||
translationsDialogStore = translationsDialogStore,
|
||||
sessionId = tabId,
|
||||
getTranslatedPageTitle = { localizedFrom, localizedTo ->
|
||||
testContext.getString(
|
||||
R.string.translations_bottom_sheet_title_translation_completed,
|
||||
|
|
@ -403,6 +410,7 @@ class TranslationsDialogBindingTest {
|
|||
val binding = TranslationsDialogBinding(
|
||||
browserStore = browserStore,
|
||||
translationsDialogStore = translationsDialogStore,
|
||||
sessionId = tabId,
|
||||
getTranslatedPageTitle = { localizedFrom, localizedTo ->
|
||||
testContext.getString(
|
||||
R.string.translations_bottom_sheet_title_translation_completed,
|
||||
|
|
|
|||
|
|
@ -4,12 +4,10 @@
|
|||
|
||||
package org.mozilla.fenix.translations
|
||||
|
||||
import io.mockk.spyk
|
||||
import io.mockk.mockk
|
||||
import io.mockk.verify
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import mozilla.components.browser.state.action.TranslationsAction
|
||||
import mozilla.components.browser.state.state.BrowserState
|
||||
import mozilla.components.browser.state.state.createTab
|
||||
import mozilla.components.browser.state.store.BrowserStore
|
||||
import mozilla.components.concept.engine.translate.Language
|
||||
import mozilla.components.concept.engine.translate.TranslationOperation
|
||||
|
|
@ -26,17 +24,10 @@ import org.mozilla.fenix.utils.Settings
|
|||
|
||||
@RunWith(FenixRobolectricTestRunner::class)
|
||||
class TranslationsDialogMiddlewareTest {
|
||||
private val browserStore = spyk(
|
||||
BrowserStore(
|
||||
BrowserState(
|
||||
tabs = listOf(createTab("https://www.mozilla.org", id = "tab1")),
|
||||
selectedTabId = "tab1",
|
||||
),
|
||||
),
|
||||
)
|
||||
private val browserStore = mockk<BrowserStore>(relaxed = true)
|
||||
private val settings = Settings(testContext)
|
||||
private val translationsDialogMiddleware =
|
||||
TranslationsDialogMiddleware(browserStore = browserStore, settings = settings)
|
||||
TranslationsDialogMiddleware(browserStore = browserStore, sessionId = "tab1", settings = settings)
|
||||
|
||||
@Test
|
||||
fun `GIVEN translationState WHEN FetchSupportedLanguages action is called THEN call OperationRequestedAction from BrowserStore`() =
|
||||
|
|
@ -173,8 +164,10 @@ class TranslationsDialogMiddlewareTest {
|
|||
|
||||
verify {
|
||||
browserStore.dispatch(
|
||||
TranslationsAction.SetGlobalOfferTranslateSettingAction(
|
||||
offerTranslation = false,
|
||||
TranslationsAction.UpdatePageSettingAction(
|
||||
tabId = "tab1",
|
||||
operation = TranslationPageSettingOperation.UPDATE_ALWAYS_OFFER_POPUP,
|
||||
setting = false,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue