fix(#23,#24,#27): theme preference wiring, dd MMM yyyy dates, calendar icon in DateField #38
@@ -21,10 +21,10 @@ import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import dev.achmad.ledgerr.R
|
||||
import dev.achmad.ledgerr.ui.util.dateFormatter
|
||||
import java.time.Instant
|
||||
import java.time.LocalDate
|
||||
import java.time.ZoneId
|
||||
import java.time.format.DateTimeFormatter
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
@@ -37,7 +37,7 @@ fun DateField(
|
||||
var showPicker by remember { mutableStateOf(false) }
|
||||
|
||||
OutlinedTextField(
|
||||
value = date.format(DateTimeFormatter.ISO_LOCAL_DATE),
|
||||
value = date.format(dateFormatter()),
|
||||
onValueChange = {},
|
||||
label = { Text(label) },
|
||||
readOnly = true,
|
||||
|
||||
@@ -32,6 +32,7 @@ import androidx.compose.ui.unit.dp
|
||||
import dev.achmad.ledgerr.R
|
||||
import dev.achmad.ledgerr.domain.expense.model.DateRange
|
||||
import dev.achmad.ledgerr.ui.components.preference.widget.TextPreferenceWidget
|
||||
import dev.achmad.ledgerr.ui.util.dateFormatter
|
||||
import java.time.Instant
|
||||
import java.time.LocalDate
|
||||
import java.time.ZoneId
|
||||
@@ -172,7 +173,7 @@ private fun DateField(
|
||||
var showPicker by remember { mutableStateOf(false) }
|
||||
|
||||
OutlinedTextField(
|
||||
value = date.format(DateTimeFormatter.ISO_LOCAL_DATE),
|
||||
value = date.format(dateFormatter()),
|
||||
onValueChange = {},
|
||||
label = { Text(label) },
|
||||
readOnly = true,
|
||||
|
||||
@@ -70,8 +70,8 @@ import dev.achmad.ledgerr.ui.components.SingleSelectFilterChipGroup
|
||||
import dev.achmad.ledgerr.ui.screens.add_edit_expense.AddEditExpenseScreen
|
||||
import dev.achmad.ledgerr.ui.screens.add_edit_recurring.AddEditRecurringScreen
|
||||
import dev.achmad.ledgerr.ui.screens.import_bank_statement.ImportBankStatementScreen
|
||||
import dev.achmad.ledgerr.ui.util.dateFormatter
|
||||
import kotlinx.coroutines.launch
|
||||
import java.time.format.DateTimeFormatter
|
||||
|
||||
object ExpenseListScreen : Screen {
|
||||
|
||||
@@ -365,7 +365,7 @@ private fun ExpenseRow(
|
||||
)
|
||||
}
|
||||
Text(
|
||||
text = item.expense.date.format(DateTimeFormatter.ISO_LOCAL_DATE),
|
||||
text = item.expense.date.format(dateFormatter()),
|
||||
style = MaterialTheme.typography.bodySmall,
|
||||
color = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||
)
|
||||
@@ -412,7 +412,7 @@ private fun RecurringRow(
|
||||
RecurringInterval.YEARLY -> stringResource(R.string.add_edit_recurring_interval_yearly)
|
||||
}
|
||||
Text(
|
||||
text = "$intervalText · ${item.recurring.nextDueDate.format(DateTimeFormatter.ISO_LOCAL_DATE)}",
|
||||
text = "$intervalText · ${item.recurring.nextDueDate.format(dateFormatter())}",
|
||||
style = MaterialTheme.typography.bodySmall,
|
||||
color = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||
)
|
||||
|
||||
@@ -77,8 +77,8 @@ import dev.achmad.ledgerr.ui.screens.add_edit_expense.AddEditExpenseScreen
|
||||
import dev.achmad.ledgerr.ui.screens.expenses.ExpenseListScreen
|
||||
import dev.achmad.ledgerr.ui.screens.import_bank_statement.ImportBankStatementScreen
|
||||
import dev.achmad.ledgerr.ui.screens.settings.SettingsScreen
|
||||
import dev.achmad.ledgerr.ui.util.dateFormatter
|
||||
import kotlinx.coroutines.launch
|
||||
import java.time.format.DateTimeFormatter
|
||||
|
||||
object HomeScreen : Screen {
|
||||
|
||||
@@ -443,7 +443,7 @@ private fun ExpenseRow(item: ExpenseWithCategory) {
|
||||
)
|
||||
}
|
||||
Text(
|
||||
text = item.expense.date.format(DateTimeFormatter.ISO_LOCAL_DATE),
|
||||
text = item.expense.date.format(dateFormatter()),
|
||||
style = MaterialTheme.typography.bodySmall,
|
||||
color = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||
)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package dev.achmad.ledgerr.ui.util
|
||||
|
||||
import java.time.format.DateTimeFormatter
|
||||
import java.util.Locale
|
||||
|
||||
fun timeFormatter(is24Hour: Boolean): DateTimeFormatter {
|
||||
return if (is24Hour) {
|
||||
@@ -10,6 +11,9 @@ fun timeFormatter(is24Hour: Boolean): DateTimeFormatter {
|
||||
}
|
||||
}
|
||||
|
||||
fun dateFormatter(): DateTimeFormatter =
|
||||
DateTimeFormatter.ofPattern("dd MMM yyyy", Locale.getDefault())
|
||||
|
||||
fun String.toTitleCase(): String {
|
||||
return this.lowercase().split(" ").joinToString(" ") { word ->
|
||||
word.replaceFirstChar { it.uppercase() }
|
||||
|
||||
Reference in New Issue
Block a user