@@ -173,56 +173,61 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler {
173173 }
174174
175175 private fun initTranslationsAction (context : Context , view : View ) {
176- // Do not add translation page action if device doesn't have large window
177- if (! isLargeWindow()) {
178- return
179- }
180-
181176 if (
182177 ! FxNimbus .features.translations.value().mainFlowToolbarEnabled
183178 ) {
184179 return
185180 }
186181
187- val translationsAction = Toolbar .ActionButton (
188- AppCompatResources .getDrawable(
189- context,
190- R .drawable.mozac_ic_translate_24,
191- ),
192- contentDescription = context.getString(R .string.browser_toolbar_translate),
193- iconTintColorResource = ThemeManager .resolveAttribute(R .attr.textPrimary, context),
194- visible = { translationsAvailable },
195- weight = { TRANSLATIONS_WEIGHT },
196- listener = {
197- browserToolbarInteractor.onTranslationsButtonClicked()
198- },
199- )
200- (browserToolbarView as BrowserToolbarView ).toolbar.addPageAction(translationsAction)
182+ // Do not add translation page action if device doesn't have large window
183+ val translationsAction = if (isLargeWindow()) {
184+ Toolbar .ActionButton (
185+ AppCompatResources .getDrawable(
186+ context,
187+ R .drawable.mozac_ic_translate_24,
188+ ),
189+ contentDescription = context.getString(R .string.browser_toolbar_translate),
190+ iconTintColorResource = ThemeManager .resolveAttribute(R .attr.textPrimary, context),
191+ visible = { translationsAvailable },
192+ weight = { TRANSLATIONS_WEIGHT },
193+ listener = {
194+ browserToolbarInteractor.onTranslationsButtonClicked()
195+ },
196+ )
197+ } else {
198+ null
199+ }
200+
201+ translationsAction?.let {
202+ (browserToolbarView as BrowserToolbarView ).toolbar.addPageAction(it)
203+ }
201204
202205 translationsBinding.set(
203206 feature = TranslationsBinding (
204207 browserStore = context.components.core.store,
205208 onTranslationStatusUpdate = {
206209 translationsAvailable = it.isTranslationPossible
207210
208- translationsAction.updateView(
209- tintColorResource = if (it.isTranslated) {
210- R .color.fx_mobile_icon_color_accent_violet
211- } else {
212- ThemeManager .resolveAttribute(R .attr.textPrimary, context)
213- },
214- contentDescription = if (it.isTranslated) {
215- context.getString(
216- R .string.browser_toolbar_translated_successfully,
217- it.fromSelectedLanguage?.localizedDisplayName,
218- it.toSelectedLanguage?.localizedDisplayName,
219- )
220- } else {
221- context.getString(R .string.browser_toolbar_translate)
222- },
223- )
211+ translationsAction?.let { action ->
212+ action.updateView(
213+ tintColorResource = if (it.isTranslated) {
214+ R .color.fx_mobile_icon_color_accent_violet
215+ } else {
216+ ThemeManager .resolveAttribute(R .attr.textPrimary, context)
217+ },
218+ contentDescription = if (it.isTranslated) {
219+ context.getString(
220+ R .string.browser_toolbar_translated_successfully,
221+ it.fromSelectedLanguage?.localizedDisplayName,
222+ it.toSelectedLanguage?.localizedDisplayName,
223+ )
224+ } else {
225+ context.getString(R .string.browser_toolbar_translate)
226+ },
227+ )
224228
225- safeInvalidateBrowserToolbarView()
229+ safeInvalidateBrowserToolbarView()
230+ }
226231
227232 if (! it.isTranslateProcessing) {
228233 requireComponents.appStore.dispatch(SnackbarAction .SnackbarDismissed )
0 commit comments