tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 8b90755f7ae7d4a42d1e945388bdd1aaf6b3cf33
parent c1f83757ce35e26c79604ecb5455a03022aa42fc
Author: Cristina Horotan <chorotan@mozilla.com>
Date:   Thu, 16 Oct 2025 08:45:14 +0300

Revert "Bug 1993655 - Part 3: Remove unused MenuHeader r=android-reviewers,007" for causing lint failure strings.xml

This reverts commit d53828063cae7caa212bddb3ddbb627f6593f2db.

Diffstat:
Amobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/header/MenuHeader.kt | 127+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 127 insertions(+), 0 deletions(-)

diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/header/MenuHeader.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/header/MenuHeader.kt @@ -0,0 +1,127 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.components.menu.compose.header + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewLightDark +import androidx.compose.ui.unit.dp +import mozilla.components.service.fxa.manager.AccountState +import mozilla.components.service.fxa.manager.AccountState.NotAuthenticated +import mozilla.components.service.fxa.store.Account +import org.mozilla.fenix.R +import org.mozilla.fenix.theme.FirefoxTheme +import org.mozilla.fenix.theme.Theme +import mozilla.components.ui.icons.R as iconsR + +@Composable +internal fun MenuHeader( + account: Account?, + accountState: AccountState, + onMozillaAccountButtonClick: () -> Unit, + onHelpButtonClick: () -> Unit, + onSettingsButtonClick: () -> Unit, +) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(start = 12.dp, end = 6.dp) + .verticalScroll(rememberScrollState()), + verticalAlignment = Alignment.CenterVertically, + ) { + MozillaAccountMenuItem( + account = account, + accountState = accountState, + onClick = onMozillaAccountButtonClick, + isPrivate = false, + modifier = Modifier.weight(1f), + ) + + Spacer(modifier = Modifier.width(8.dp)) + + HorizontalDivider(modifier = Modifier.size(width = 2.dp, height = 32.dp)) + + Spacer(modifier = Modifier.width(4.dp)) + + IconButton( + onClick = onHelpButtonClick, + ) { + Icon( + painter = painterResource(id = iconsR.drawable.mozac_ic_help_circle_24), + contentDescription = stringResource( + id = R.string.browser_main_menu_content_description_help_button, + ), + tint = FirefoxTheme.colors.iconPrimary, + ) + } + + IconButton( + onClick = onSettingsButtonClick, + ) { + Icon( + painter = painterResource(id = iconsR.drawable.mozac_ic_settings_24), + contentDescription = stringResource( + id = R.string.browser_main_menu_content_description_settings_button, + ), + tint = FirefoxTheme.colors.iconPrimary, + ) + } + } +} + +@PreviewLightDark +@Composable +private fun MenuHeaderPreview() { + FirefoxTheme { + Column( + modifier = Modifier + .background(color = FirefoxTheme.colors.layer3), + ) { + MenuHeader( + account = null, + accountState = NotAuthenticated, + onMozillaAccountButtonClick = {}, + onHelpButtonClick = {}, + onSettingsButtonClick = {}, + ) + } + } +} + +@Preview +@Composable +private fun MenuHeaderPrivatePreview() { + FirefoxTheme(theme = Theme.Private) { + Column( + modifier = Modifier + .background(color = FirefoxTheme.colors.layer3), + ) { + MenuHeader( + account = null, + accountState = NotAuthenticated, + onMozillaAccountButtonClick = {}, + onHelpButtonClick = {}, + onSettingsButtonClick = {}, + ) + } + } +}