diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/filter/BookingFilterListScreen.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/filter/BookingFilterListScreen.kt
index 0bc72ea42a9..b31aeea8dd5 100644
--- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/filter/BookingFilterListScreen.kt
+++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/filter/BookingFilterListScreen.kt
@@ -32,6 +32,7 @@ import com.woocommerce.android.ui.bookings.filter.type.BookingTypeFilterRoute
import com.woocommerce.android.ui.compose.Render
import com.woocommerce.android.ui.compose.component.Toolbar
import com.woocommerce.android.ui.compose.component.WCColoredButton
+import com.woocommerce.android.ui.compose.component.getText
import com.woocommerce.android.ui.compose.preview.LightDarkThemePreviews
import com.woocommerce.android.ui.compose.theme.WooThemeWithBackground
@@ -41,7 +42,7 @@ fun BookingFilterListScreen(state: BookingFilterListUiState) {
topBar = {
Column {
Toolbar(
- title = stringResource(state.currentPage.titleRes),
+ title = state.title.getText(),
onNavigationButtonClick = state.onClose,
navigationIcon = ImageVector.vectorResource(id = state.navigationIcon)
)
diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/filter/BookingFilterListUiState.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/filter/BookingFilterListUiState.kt
index 73e86229148..01986c48fa2 100644
--- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/filter/BookingFilterListUiState.kt
+++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/filter/BookingFilterListUiState.kt
@@ -45,6 +45,23 @@ data class BookingFilterListUiState(
initialBookingFilters?.bookingType
) ?: BookingsFilterOption.BookingType(BookingsFilterOption.BookingType.Type.ANY)
+ val updatedBookingFilters: BookingFilters
+ get() {
+ val initial = initialBookingFilters ?: BookingFilters()
+ return BookingFilters(
+ dateRange = newBookingFilters.getOrDefault(initial.dateRange),
+ customer = newBookingFilters.getOrDefault(initial.customer),
+ teamMember = newBookingFilters.getOrDefault(initial.teamMember),
+ attendanceStatus = newBookingFilters.getOrDefault(initial.attendanceStatus),
+ paymentStatus = newBookingFilters.getOrDefault(initial.paymentStatus),
+ bookingType = newBookingFilters.getOrDefault(initial.bookingType),
+ location = newBookingFilters.getOrDefault(initial.location),
+ serviceEvent = newBookingFilters.getOrDefault(initial.serviceEvent),
+ )
+ }
+
+ val updatedBookingFiltersCount = updatedBookingFilters.enabledFiltersCount
+
@DrawableRes
val navigationIcon: Int = when (currentPage) {
BookingFilterPage.List -> R.drawable.ic_gridicons_cross_24dp
@@ -73,6 +90,18 @@ data class BookingFilterListUiState(
BookingFilterPage.TeamMember,
BookingFilterPage.List -> null
}
+
+ val title: UiString
+ get() = if (currentPage != BookingFilterPage.List) {
+ UiString.UiStringRes(currentPage.titleRes)
+ } else if (updatedBookingFiltersCount > 0) {
+ UiString.UiStringRes(
+ stringRes = R.string.bookings_filters_title_with_count,
+ params = listOf(UiString.UiStringText(updatedBookingFiltersCount.toString()))
+ )
+ } else {
+ UiString.UiStringRes(R.string.bookings_filters_default_title)
+ }
}
val BookingFilterPage.titleRes: Int
diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/filter/BookingFilterListViewModel.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/filter/BookingFilterListViewModel.kt
index d743db42813..5b50db47cad 100644
--- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/filter/BookingFilterListViewModel.kt
+++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/filter/BookingFilterListViewModel.kt
@@ -114,22 +114,3 @@ class BookingFilterListViewModel @Inject constructor(
return updated != initial
}
}
-
-private val BookingFilterListUiState.updatedBookingFilters: BookingFilters
- get() {
- val initial = initialBookingFilters ?: BookingFilters()
- val updates = this@updatedBookingFilters.newBookingFilters
-
- return BookingFilters(
- dateRange = updates.getOrDefault(initial.dateRange),
- customer = updates.getOrDefault(initial.customer),
- teamMember = updates.getOrDefault(
- initial.teamMember
- ),
- attendanceStatus = updates.getOrDefault(initial.attendanceStatus),
- paymentStatus = updates.getOrDefault(initial.paymentStatus),
- bookingType = updates.getOrDefault(initial.bookingType),
- location = updates.getOrDefault(initial.location),
- serviceEvent = updates.getOrDefault(initial.serviceEvent),
- )
- }
diff --git a/WooCommerce/src/main/res/values/strings.xml b/WooCommerce/src/main/res/values/strings.xml
index 3483d2a5160..28e1c349a51 100644
--- a/WooCommerce/src/main/res/values/strings.xml
+++ b/WooCommerce/src/main/res/values/strings.xml
@@ -4236,7 +4236,7 @@
Clear filters
Filters
Filters • %d
- Filters (%d)
+ Filters (%s)
Show bookings
Assigned team member
Attendance status