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