Skip to content

Commit d842ffb

Browse files
rocketsrogerpchevrel@mozilla.com
authored andcommitted
Bug 1976032 - Always initialize translations binding regardless of whether the translations page action is present. a=pascalc
Original Revision: https://phabricator.services.mozilla.com/D256478 Differential Revision: https://phabricator.services.mozilla.com/D257835
1 parent 9d28ece commit d842ffb

File tree

1 file changed

+41
-36
lines changed

1 file changed

+41
-36
lines changed

app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt

Lines changed: 41 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)