tor-browser

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

commit 9d1b7dbacd89d1dfcecca4630676eb63b81eff90
parent 253fa52ce1e97d9790b16ea6946c52a133544d98
Author: Gabriel Luong <gabriel.luong@gmail.com>
Date:   Thu, 20 Nov 2025 08:12:38 +0000

Bug 1998092 - Part 13: Migrate EditAddressTopBar to M3 Acorn specs r=android-reviewers,007

App Bar: https://www.figma.com/design/MjufE1X5fvkxZ0YneX4kRd/Android-Library--2025-?node-id=63923-29115&m=dev

Differential Revision: https://phabricator.services.mozilla.com/D272200

Diffstat:
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/address/ui/edit/EditAddressTopBar.kt | 64++++++++++++++++++++++++++++++++++++++++++++--------------------
1 file changed, 44 insertions(+), 20 deletions(-)

diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/address/ui/edit/EditAddressTopBar.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/address/ui/edit/EditAddressTopBar.kt @@ -10,17 +10,17 @@ import androidx.annotation.StringRes import androidx.compose.foundation.layout.WindowInsets import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar -import androidx.compose.material3.TopAppBarDefaults import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag 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.compose.base.annotation.FlexibleWindowLightDarkPreview +import mozilla.components.compose.base.button.IconButton import mozilla.components.concept.storage.Address import org.mozilla.fenix.R import org.mozilla.fenix.settings.address.store.AddressState @@ -30,6 +30,7 @@ import org.mozilla.fenix.settings.address.store.DeleteTapped import org.mozilla.fenix.settings.address.store.SaveTapped import org.mozilla.fenix.settings.address.store.isEditing import org.mozilla.fenix.theme.FirefoxTheme +import org.mozilla.fenix.theme.Theme import mozilla.components.ui.icons.R as iconsR /** @@ -40,22 +41,20 @@ import mozilla.components.ui.icons.R as iconsR @Composable internal fun EditAddressTopBar(store: AddressStore) { TopAppBar( - colors = TopAppBarDefaults.topAppBarColors( - containerColor = FirefoxTheme.colors.layer1, - titleContentColor = FirefoxTheme.colors.textPrimary, - actionIconContentColor = FirefoxTheme.colors.iconPrimary, - ), title = { Text( - style = FirefoxTheme.typography.headline6, text = stringResource(store.state.titleId), + style = FirefoxTheme.typography.headline5, ) }, navigationIcon = { - IconButton(onClick = { store.dispatch(BackTapped) }) { + IconButton( + onClick = { store.dispatch(BackTapped) }, + contentDescription = stringResource(R.string.bookmark_navigate_back_button_content_description), + ) { Icon( painter = painterResource(iconsR.drawable.mozac_ic_back_24), - contentDescription = stringResource(R.string.bookmark_navigate_back_button_content_description), + contentDescription = null, ) } }, @@ -63,23 +62,27 @@ internal fun EditAddressTopBar(store: AddressStore) { if (store.state.isEditing) { IconButton( onClick = { store.dispatch(DeleteTapped) }, + contentDescription = stringResource( + R.string.address_menu_delete_address, + ), modifier = Modifier.testTag(EditAddressTestTag.TOPBAR_DELETE_BUTTON), ) { Icon( painter = painterResource(iconsR.drawable.mozac_ic_delete_24), - contentDescription = stringResource( - R.string.address_menu_delete_address, - ), + contentDescription = null, ) } } - IconButton(onClick = { store.dispatch(SaveTapped) }) { + IconButton( + onClick = { store.dispatch(SaveTapped) }, + contentDescription = stringResource( + R.string.address_menu_save_address, + ), + ) { Icon( painter = painterResource(iconsR.drawable.mozac_ic_checkmark_24), - contentDescription = stringResource( - R.string.address_menu_save_address, - ), + contentDescription = null, ) } }, @@ -98,7 +101,7 @@ private val AddressState.titleId: Int R.string.addresses_add_address } -@FlexibleWindowLightDarkPreview +@PreviewLightDark @Composable private fun AddTopBarPreview() { val store = AddressStore(AddressState.initial(), listOf()) @@ -108,7 +111,17 @@ private fun AddTopBarPreview() { } } -@FlexibleWindowLightDarkPreview +@Preview +@Composable +private fun AddTopBarPrivatePreview() { + val store = AddressStore(AddressState.initial(), listOf()) + + FirefoxTheme(theme = Theme.Private) { + EditAddressTopBar(store) + } +} + +@PreviewLightDark @Composable private fun EditTopBarPreview() { val address = Address("BEEF", "Work", "Mozilla", "", "", "", "", "", "", "", "") @@ -118,3 +131,14 @@ private fun EditTopBarPreview() { EditAddressTopBar(store) } } + +@Preview +@Composable +private fun EditTopBarPrivatePreview() { + val address = Address("BEEF", "Work", "Mozilla", "", "", "", "", "", "", "", "") + val store = AddressStore(AddressState.initial(address = address), listOf()) + + FirefoxTheme(theme = Theme.Private) { + EditAddressTopBar(store) + } +}