For #27753 - Update search engines immediately after changing language

fork
DreVla 2 years ago committed by mergify[bot]
parent 1b63240f99
commit 807b0567f9

@ -420,11 +420,7 @@ class SettingsSearchTest {
"Bing",
"Amazon.com",
"DuckDuckGo",
"eBay",
/* Disabled Arabic Wikipedia verification
until https://github.com/mozilla-mobile/fenix/issues/12236 gets fixed
"ويكيبيديا (ar)"
*/
"ويكيبيديا (ar)",
)
}
}

@ -6,6 +6,8 @@ package org.mozilla.fenix.settings.advanced
import android.app.Activity
import android.content.Context
import mozilla.components.browser.state.action.SearchAction
import mozilla.components.browser.state.store.BrowserStore
import mozilla.components.support.locale.LocaleManager
import mozilla.components.support.locale.LocaleUseCases
import org.mozilla.fenix.nimbus.FxNimbus
@ -20,6 +22,7 @@ interface LocaleSettingsController {
class DefaultLocaleSettingsController(
private val activity: Activity,
private val localeSettingsStore: LocaleSettingsStore,
private val browserStore: BrowserStore,
private val localeUseCase: LocaleUseCases,
) : LocaleSettingsController {
@ -30,6 +33,7 @@ class DefaultLocaleSettingsController(
return
}
localeSettingsStore.dispatch(LocaleSettingsAction.Select(locale))
browserStore.dispatch(SearchAction.RefreshSearchEnginesAction)
LocaleManager.setNewLocale(activity, localeUseCase, locale)
LocaleManager.updateBaseConfiguration(activity, locale)
@ -44,6 +48,7 @@ class DefaultLocaleSettingsController(
return
}
localeSettingsStore.dispatch(LocaleSettingsAction.Select(localeSettingsStore.state.localeList[0]))
browserStore.dispatch(SearchAction.RefreshSearchEnginesAction)
LocaleManager.resetToSystemDefault(activity, localeUseCase)
LocaleManager.updateBaseConfiguration(activity, localeSettingsStore.state.localeList[0])

@ -58,6 +58,7 @@ class LocaleSettingsFragment : Fragment(), MenuProvider {
controller = DefaultLocaleSettingsController(
activity = requireActivity(),
localeSettingsStore = localeSettingsStore,
browserStore = browserStore,
localeUseCase = localeUseCase,
),
)

@ -14,6 +14,8 @@ import io.mockk.mockkStatic
import io.mockk.spyk
import io.mockk.verify
import io.mockk.verifyAll
import mozilla.components.browser.state.action.SearchAction
import mozilla.components.browser.state.store.BrowserStore
import mozilla.components.support.locale.LocaleManager
import mozilla.components.support.locale.LocaleUseCases
import org.junit.Before
@ -24,6 +26,7 @@ class LocaleSettingsControllerTest {
private val activity = mockk<Activity>(relaxed = true)
private val localeSettingsStore: LocaleSettingsStore = mockk(relaxed = true)
private val browserStore: BrowserStore = mockk(relaxed = true)
private val localeUseCases: LocaleUseCases = mockk(relaxed = true)
private val mockState = LocaleSettingsState(mockk(), mockk(), mockk())
@ -35,6 +38,7 @@ class LocaleSettingsControllerTest {
DefaultLocaleSettingsController(
activity,
localeSettingsStore,
browserStore,
localeUseCases,
),
)
@ -53,6 +57,7 @@ class LocaleSettingsControllerTest {
verifyAll(inverse = true) {
localeSettingsStore.dispatch(LocaleSettingsAction.Select(selectedLocale))
browserStore.dispatch(SearchAction.RefreshSearchEnginesAction)
LocaleManager.setNewLocale(activity, locale = selectedLocale)
activity.recreate()
}
@ -77,6 +82,7 @@ class LocaleSettingsControllerTest {
controller.handleLocaleSelected(selectedLocale)
verify { localeSettingsStore.dispatch(LocaleSettingsAction.Select(selectedLocale)) }
verify { browserStore.dispatch(SearchAction.RefreshSearchEnginesAction) }
verify { LocaleManager.setNewLocale(activity, localeUseCases, selectedLocale) }
verify { activity.recreate() }
verify { activity.overridePendingTransition(0, 0) }
@ -101,6 +107,7 @@ class LocaleSettingsControllerTest {
controller.handleLocaleSelected(selectedLocale)
verify { localeSettingsStore.dispatch(LocaleSettingsAction.Select(selectedLocale)) }
verify { browserStore.dispatch(SearchAction.RefreshSearchEnginesAction) }
verify { LocaleManager.setNewLocale(activity, localeUseCases, selectedLocale) }
verify { activity.recreate() }
verify { activity.overridePendingTransition(0, 0) }
@ -120,6 +127,7 @@ class LocaleSettingsControllerTest {
verifyAll(inverse = true) {
localeSettingsStore.dispatch(LocaleSettingsAction.Select(selectedLocale))
browserStore.dispatch(SearchAction.RefreshSearchEnginesAction)
LocaleManager.resetToSystemDefault(activity, localeUseCases)
activity.recreate()
with(controller) {
@ -141,6 +149,7 @@ class LocaleSettingsControllerTest {
controller.handleDefaultLocaleSelected()
verify { localeSettingsStore.dispatch(LocaleSettingsAction.Select(selectedLocale)) }
verify { browserStore.dispatch(SearchAction.RefreshSearchEnginesAction) }
verify { LocaleManager.resetToSystemDefault(activity, localeUseCases) }
verify { activity.recreate() }
verify { activity.overridePendingTransition(0, 0) }

Loading…
Cancel
Save