diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/BookingMapper.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/BookingMapper.kt
index 2b27ea2c341..c1760b20b1b 100644
--- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/BookingMapper.kt
+++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/BookingMapper.kt
@@ -78,7 +78,6 @@ class BookingMapper @Inject constructor(
staff = staffMemberStatus,
// TODO replace mocked values when available from API
location = "238 Willow Creek Drive, Montgomery AL 36109",
- price = currencyFormatter.formatCurrency(cost, currency),
cancelStatus = cancelStatus,
cancelButtonVisible = isCancellable,
duration = duration,
@@ -149,7 +148,7 @@ class BookingMapper @Inject constructor(
val date = detailsDateFormatter.format(booking.start)
val time = timeRangeFormatter.format(booking.start)
return UiString.UiStringRes(
- R.string.booking_cancel_dialog_message,
+ R.string.booking_cancel_dialog_message_v2,
listOf(
customerName,
UiString.UiStringText(serviceName),
diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/compose/BookingAppointmentDetails.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/compose/BookingAppointmentDetails.kt
index d754455071b..0fd9478c170 100644
--- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/compose/BookingAppointmentDetails.kt
+++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/compose/BookingAppointmentDetails.kt
@@ -33,7 +33,7 @@ fun BookingAppointmentDetails(
modifier: Modifier = Modifier,
) {
Column(modifier = modifier) {
- BookingSectionHeader(R.string.booking_appointment_details_header)
+ BookingSectionHeader(R.string.booking_details_section_header)
Column(modifier = Modifier.background(color = MaterialTheme.colorScheme.surfaceContainer)) {
HorizontalDivider(thickness = 0.5.dp)
AppointmentDetailsRow(
@@ -46,7 +46,7 @@ fun BookingAppointmentDetails(
)
model.staff?.let {
AppointmentDetailsRow(
- label = R.string.booking_appointment_label_staff
+ label = R.string.booking_appointment_label_team_member
) {
when (it) {
is BookingStaffMemberStatus.Loaded, is BookingStaffMemberStatus.Unavailable -> {
@@ -76,11 +76,7 @@ fun BookingAppointmentDetails(
)
AppointmentDetailsRow(
label = R.string.booking_appointment_label_duration,
- value = model.duration
- )
- AppointmentDetailsRow(
- label = R.string.booking_appointment_label_price,
- value = model.price,
+ value = model.duration,
withDivider = model.cancelButtonVisible,
)
AnimatedVisibility(model.cancelButtonVisible) {
@@ -152,7 +148,6 @@ data class BookingAppointmentDetailsModel(
val staff: BookingStaffMemberStatus?,
val location: String,
val duration: String,
- val price: String,
val cancelButtonVisible: Boolean,
val cancelStatus: CancelStatus,
) {
@@ -177,7 +172,6 @@ private fun BookingAppointmentDetailsPreview() {
staff = BookingStaffMemberStatus.Loading,
location = "238 Willow Creek Drive, Montgomery AL 36109",
duration = "60 min",
- price = "$55.00",
cancelButtonVisible = true,
cancelStatus = CancelStatus.Idle,
),
@@ -198,7 +192,6 @@ private fun BookingAppointmentDetailsCancelHiddenPreview() {
staff = BookingStaffMemberStatus.Loading,
location = "238 Willow Creek Drive, Montgomery AL 36109",
duration = "60 min",
- price = "$55.00",
cancelButtonVisible = false,
cancelStatus = CancelStatus.Idle,
),
diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/details/BookingDetailsScreen.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/details/BookingDetailsScreen.kt
index 8e92a730f23..3ae2cd267a2 100644
--- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/details/BookingDetailsScreen.kt
+++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/details/BookingDetailsScreen.kt
@@ -282,7 +282,6 @@ private fun BookingDetailsPreview() {
staff = BookingStaffMemberStatus.Loaded("Marianne Renoir"),
location = "238 Willow Creek Drive, Montgomery AL 36109",
duration = "60 min",
- price = "$55.00",
cancelButtonVisible = true,
cancelStatus = CancelStatus.Idle,
),
diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/details/BookingDetailsViewModel.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/details/BookingDetailsViewModel.kt
index 5b2dfbd675b..8d5e49dccb4 100644
--- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/details/BookingDetailsViewModel.kt
+++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/details/BookingDetailsViewModel.kt
@@ -87,7 +87,7 @@ class BookingDetailsViewModel @Inject constructor(
if (showCancelBooking && booking != null) {
val message = bookingMapper.buildCancelDialogMessage(booking)
DialogState(
- title = UiString.UiStringRes(R.string.booking_cancel_dialog_title),
+ title = UiString.UiStringRes(R.string.booking_cancel_dialog_title_v2),
message = message,
positiveButton = DialogState.DialogButton(
text = UiString.UiStringRes(R.string.booking_cancel_dialog_confirm),
diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/list/BookingListScreen.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/list/BookingListScreen.kt
index b1e5275b2a1..c064f770ebe 100644
--- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/list/BookingListScreen.kt
+++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/list/BookingListScreen.kt
@@ -398,7 +398,11 @@ private fun EmptyListView(
text = when (selectedTab) {
BookingListTab.Today -> stringResource(R.string.bookings_empty_state_title_today)
BookingListTab.Upcoming -> stringResource(R.string.bookings_empty_state_title_upcoming)
- BookingListTab.All -> stringResource(R.string.bookings_empty_state_title_default)
+ BookingListTab.All -> if (areFiltersActive) {
+ stringResource(R.string.bookings_empty_state_title_default)
+ } else {
+ stringResource(R.string.bookings_empty_state_title_all)
+ }
},
style = MaterialTheme.typography.titleLarge,
textAlign = TextAlign.Center
@@ -408,13 +412,13 @@ private fun EmptyListView(
Text(
text = when (selectedTab) {
- BookingListTab.Today -> stringResource(R.string.bookings_empty_state_description_today)
- BookingListTab.Upcoming -> stringResource(R.string.bookings_empty_state_description_upcoming)
+ BookingListTab.Today -> stringResource(R.string.bookings_empty_state_description_today_v2)
+ BookingListTab.Upcoming -> stringResource(R.string.bookings_empty_state_description_upcoming_v2)
else -> {
if (areFiltersActive) {
stringResource(R.string.bookings_empty_state_description_with_filters)
} else {
- stringResource(R.string.bookings_empty_state_description_default)
+ stringResource(R.string.bookings_empty_state_description_all)
}
}
},
diff --git a/WooCommerce/src/main/res/values/strings.xml b/WooCommerce/src/main/res/values/strings.xml
index b8ec6c74fe0..4993670b1f7 100644
--- a/WooCommerce/src/main/res/values/strings.xml
+++ b/WooCommerce/src/main/res/values/strings.xml
@@ -4205,9 +4205,10 @@
No bookings found
No bookings today
No upcoming bookings
- Incoming bookings will appear here, where you can view and manage them.
- You don’t have any appointments or events scheduled for today.
- You don’t have any future appointments or events scheduled yet.
+ No bookings yet
+ Bookings will appear here once customers start scheduling your services or registering for events.
+ Any bookings scheduled for today will appear here.
+ New bookings will appear here as customers schedule your services or register for events.
We couldn’t find any bookings with that name — try adjusting your search term to see more results.
We couldn’t find any bookings with that name — try adjusting your search term or your filters to see more results.
No bookings match your filters. Try adjusting them to see more results.
@@ -4238,13 +4239,12 @@
Booking #%s
- APPOINTMENT DETAILS
+ BOOKING DETAILS
Date
Time
- Assigned staff
+ Team member
Location
Duration
- Price
Unpaid
Paid
Pending Confirmation
@@ -4287,8 +4287,9 @@
BOOKING NOTE
Add note
This is a private note. It’ll not be shared with the customer.
- Cancel booking
+ Cancel booking?
%1$s will no longer be able to attend “%2$s” on %3$s at %4$s.
+ %1$s can no longer attend “%2$s” on %3$s at %4$s.
No, keep it
Yes, cancel it
Booking note
diff --git a/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/bookings/BookingMapperTest.kt b/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/bookings/BookingMapperTest.kt
index 914f91eebc1..ef40c6aa9b5 100644
--- a/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/bookings/BookingMapperTest.kt
+++ b/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/bookings/BookingMapperTest.kt
@@ -20,7 +20,6 @@ import org.mockito.kotlin.anyOrNull
import org.mockito.kotlin.doAnswer
import org.mockito.kotlin.eq
import org.mockito.kotlin.mock
-import org.mockito.kotlin.whenever
import org.wordpress.android.fluxc.model.LocalOrRemoteId
import org.wordpress.android.fluxc.network.rest.wpcom.wc.bookings.BookingCustomerInfo
import org.wordpress.android.fluxc.network.rest.wpcom.wc.bookings.BookingOrderInfo
@@ -119,8 +118,6 @@ class BookingMapperTest : BaseUnitTest() {
)
val staffMemberStatus = BookingStaffMemberStatus.Loaded("Marianne Renoir")
- whenever(currencyFormatter.formatCurrency(eq("55.00"), eq("USD"), eq(true))).thenReturn("$55.00")
-
val expectedDate = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL)
.withZone(ZoneOffset.UTC)
.format(start)
@@ -136,7 +133,6 @@ class BookingMapperTest : BaseUnitTest() {
assertThat(model.staff).isEqualTo(staffMemberStatus)
assertThat(model.location).isEqualTo("238 Willow Creek Drive, Montgomery AL 36109")
assertThat(model.duration).isEqualTo("1 hour 30 minutes")
- assertThat(model.price).isEqualTo("$55.00")
assertThat(model.cancelStatus).isEqualTo(CancelStatus.Idle)
}
@@ -217,7 +213,7 @@ class BookingMapperTest : BaseUnitTest() {
assertThat(message)
.isEqualTo(
UiString.UiStringRes(
- R.string.booking_cancel_dialog_message,
+ R.string.booking_cancel_dialog_message_v2,
listOf(
UiString.UiStringText(customerName),
UiString.UiStringText("${booking.order.productInfo?.name}"),
@@ -243,7 +239,7 @@ class BookingMapperTest : BaseUnitTest() {
assertThat(message)
.isEqualTo(
UiString.UiStringRes(
- R.string.booking_cancel_dialog_message,
+ R.string.booking_cancel_dialog_message_v2,
listOf(
UiString.UiStringRes(R.string.customer_detail_guest_customer),
UiString.UiStringText("${booking.order.productInfo?.name}"),
@@ -279,11 +275,6 @@ class BookingMapperTest : BaseUnitTest() {
@Test
fun `given cancellable statuses, when mapped to appointment details, then cancel button visible`() {
- whenever(currencyFormatter.formatCurrency(any(), any(), eq(true))).thenAnswer {
- val amount = it.getArgument(0)
- val currency = it.getArgument(1)
- "$currency$amount"
- }
val statuses = listOf(
BookingEntity.Status.Confirmed,
BookingEntity.Status.Paid,
@@ -301,11 +292,6 @@ class BookingMapperTest : BaseUnitTest() {
@Test
fun `given non-cancellable statuses, when mapped to appointment details, then cancel button hidden`() {
- whenever(currencyFormatter.formatCurrency(any(), any(), eq(true))).thenAnswer {
- val amount = it.getArgument(0)
- val currency = it.getArgument(1)
- "$currency$amount"
- }
val statuses = listOf(
BookingEntity.Status.Cancelled,
BookingEntity.Status.InCart,
diff --git a/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/bookings/details/BookingDetailsViewModelTest.kt b/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/bookings/details/BookingDetailsViewModelTest.kt
index 5500731e0bb..1a408fdb5b2 100644
--- a/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/bookings/details/BookingDetailsViewModelTest.kt
+++ b/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/bookings/details/BookingDetailsViewModelTest.kt
@@ -58,7 +58,6 @@ class BookingDetailsViewModelTest : BaseUnitTest() {
@Before
fun setup() {
- whenever(currencyFormatter.formatCurrency(any(), any(), any())).thenReturn("$0.00")
whenever(
resourceProvider.getString(
eq(R.string.booking_details_title),