Skip to content

Commit fbb7d93

Browse files
committed
Use UiString for booking filter subtitles
Replaced the custom `BookingFilterListItemSubtitle` class with the generic `UiString` model to handle subtitle text in the bookings filter list.
1 parent 171a7e2 commit fbb7d93

File tree

3 files changed

+13
-19
lines changed

3 files changed

+13
-19
lines changed
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
package com.woocommerce.android.ui.bookings.filter
22

33
import androidx.annotation.StringRes
4+
import com.woocommerce.android.model.UiString
45

56
/**
67
* UI model simple filter item
78
*/
89
data class BookingFilterListItem(
910
@StringRes val title: Int,
10-
val subtitle: BookingFilterListItemSubtitle? = null,
11+
val subtitle: UiString? = null,
1112
val selected: Boolean = false,
1213
val onClick: () -> Unit = {}
13-
) {
14-
data class BookingFilterListItemSubtitle(val valueString: String? = null, @StringRes val valueRes: Int? = null)
15-
}
14+
)

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/filter/BookingFilterListUiState.kt

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.woocommerce.android.ui.bookings.filter
33
import androidx.annotation.DrawableRes
44
import androidx.annotation.StringRes
55
import com.woocommerce.android.R
6+
import com.woocommerce.android.model.UiString
67
import com.woocommerce.android.ui.bookings.filter.type.titleRes
78
import org.wordpress.android.fluxc.network.rest.wpcom.wc.bookings.BookingFilters
89
import org.wordpress.android.fluxc.network.rest.wpcom.wc.bookings.BookingsFilterOption
@@ -48,28 +49,23 @@ data class BookingFilterListUiState(
4849
else -> R.drawable.ic_back_24dp
4950
}
5051

51-
val BookingFilterPage.filterValue: BookingFilterListItem.BookingFilterListItemSubtitle?
52+
val BookingFilterPage.filterValue: UiString?
5253
get() = when (this) {
5354
BookingFilterPage.Customer -> {
54-
BookingFilterListItem.BookingFilterListItemSubtitle(
55-
valueString = newBookingFilters.getOrDefault<BookingsFilterOption.Customer>(
56-
initialBookingFilters?.customer
57-
)?.customerName
58-
)
55+
newBookingFilters.getOrDefault<BookingsFilterOption.Customer>(
56+
initialBookingFilters?.customer
57+
)?.customerName?.let { name -> UiString.UiStringText(name) }
5958
}
6059

6160
BookingFilterPage.BookingType -> {
62-
BookingFilterListItem.BookingFilterListItemSubtitle(
63-
valueRes = newBookingFilters.getOrDefault<BookingsFilterOption.BookingType>(
64-
initialBookingFilters?.bookingType
65-
)?.titleRes
66-
)
61+
newBookingFilters.getOrDefault<BookingsFilterOption.BookingType>(
62+
initialBookingFilters?.bookingType
63+
)?.titleRes?.let { res -> UiString.UiStringRes(res) }
6764
}
6865

6966
BookingFilterPage.DateTime,
7067
BookingFilterPage.Location,
7168
BookingFilterPage.AttendanceStatus,
72-
BookingFilterPage.BookingType,
7369
BookingFilterPage.PaymentStatus,
7470
BookingFilterPage.ServiceEvent,
7571
BookingFilterPage.TeamMember,

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/filter/BookingFilterRootPage.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import androidx.compose.ui.res.stringResource
1515
import androidx.compose.ui.unit.dp
1616
import com.woocommerce.android.R
1717
import com.woocommerce.android.ui.compose.component.WCListItemWithInlineSubtitle
18+
import com.woocommerce.android.ui.compose.component.getText
1819

1920
@Composable
2021
fun BookingFilterRootPage(
@@ -34,9 +35,7 @@ private fun BookingFilterListRow(item: BookingFilterListItem) {
3435
Column(modifier = Modifier.fillMaxWidth()) {
3536
WCListItemWithInlineSubtitle(
3637
text = stringResource(item.title),
37-
subtitle = item.subtitle?.valueString
38-
?: item.subtitle?.valueRes?.let { stringResource(id = it) }
39-
?: stringResource(id = R.string.bookings_filter_default),
38+
subtitle = item.subtitle?.getText() ?: stringResource(id = R.string.bookings_filter_default),
4039
modifier = Modifier
4140
.defaultMinSize(minHeight = 64.dp)
4241
.clickable { item.onClick() }

0 commit comments

Comments
 (0)