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:
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 = {},
+ )
+ }
+ }
+}