use 12/24 hour format

Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
sowjanyakch 2025-08-04 12:59:55 +02:00
parent a18723c9f9
commit 50f289ca63
No known key found for this signature in database
GPG Key ID: F7AA2A8B65B50220

View File

@ -10,6 +10,7 @@ package com.nextcloud.talk.ui.dialog
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.os.Bundle import android.os.Bundle
import android.text.format.DateFormat
import androidx.compose.foundation.clickable import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.BoxWithConstraints import androidx.compose.foundation.layout.BoxWithConstraints
@ -50,6 +51,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.scale import androidx.compose.ui.draw.scale
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.Dialog
@ -185,27 +187,31 @@ class DateTimeCompose(val bundle: Bundle) {
@Composable @Composable
private fun Body() { private fun Body() {
val context = LocalContext.current
val currTime = LocalDateTime.now() val currTime = LocalDateTime.now()
val timeFormatter = DateTimeFormatter.ofPattern(timePattern(context))
val dayTimeFormatter = DateTimeFormatter.ofPattern(dayTimePattern(context))
val laterToday = LocalDateTime.now() val laterToday = LocalDateTime.now()
.withHour(INT_18) .withHour(INT_18)
.withMinute(0) .withMinute(0)
.withSecond(0) .withSecond(0)
val laterTodayStr = laterToday.format(DateTimeFormatter.ofPattern(TIME_PATTERN)) val laterTodayStr = laterToday.format(timeFormatter)
val tomorrow = LocalDateTime.now() val tomorrow = LocalDateTime.now()
.plusDays(1) .plusDays(1)
.withHour(INT_8) .withHour(INT_8)
.withMinute(0) .withMinute(0)
.withSecond(0) .withSecond(0)
val tomorrowStr = tomorrow.format(DateTimeFormatter.ofPattern(DAY_TIME_PATTERN)) val tomorrowStr = tomorrow.format(dayTimeFormatter)
val thisWeekend = LocalDateTime.now() val thisWeekend = LocalDateTime.now()
.with(nextOrSame(DayOfWeek.SATURDAY)) .with(nextOrSame(DayOfWeek.SATURDAY))
.withHour(INT_8) .withHour(INT_8)
.withMinute(0) .withMinute(0)
.withSecond(0) .withSecond(0)
val thisWeekendStr = thisWeekend.format(DateTimeFormatter.ofPattern(DAY_TIME_PATTERN)) val thisWeekendStr = thisWeekend.format(dayTimeFormatter)
val nextWeek = LocalDateTime.now() val nextWeek = LocalDateTime.now()
.plusWeeks(1) .plusWeeks(1)
@ -213,7 +219,7 @@ class DateTimeCompose(val bundle: Bundle) {
.withHour(INT_8) .withHour(INT_8)
.withMinute(0) .withMinute(0)
.withSecond(0) .withSecond(0)
val nextWeekStr = nextWeek.format(DateTimeFormatter.ofPattern(DAY_TIME_PATTERN)) val nextWeekStr = nextWeek.format(dayTimeFormatter)
if (currTime < laterToday) { if (currTime < laterToday) {
TimeOption( TimeOption(
@ -259,6 +265,7 @@ class DateTimeCompose(val bundle: Bundle) {
@Composable @Composable
private fun Header() { private fun Header() {
val context = LocalContext.current
Row( Row(
modifier = Modifier modifier = Modifier
.padding(INT_8.dp) .padding(INT_8.dp)
@ -281,7 +288,7 @@ class DateTimeCompose(val bundle: Bundle) {
} }
val timeText = if (timeState.value != LocalDateTime.ofEpochSecond(0, 0, ZoneOffset.MIN)) { val timeText = if (timeState.value != LocalDateTime.ofEpochSecond(0, 0, ZoneOffset.MIN)) {
timeState.value.format(DateTimeFormatter.ofPattern(PATTERN)) timeState.value.format(DateTimeFormatter.ofPattern(fullPattern(context)))
} else { } else {
"" ""
} }
@ -319,7 +326,8 @@ class DateTimeCompose(val bundle: Bundle) {
val now = LocalDateTime.now() val now = LocalDateTime.now()
val timePickerState = rememberTimePickerState( val timePickerState = rememberTimePickerState(
initialHour = now.hour, initialHour = now.hour,
initialMinute = now.minute initialMinute = now.minute,
is24Hour = DateFormat.is24HourFormat(LocalContext.current)
) )
BoxWithConstraints( BoxWithConstraints(
@ -385,6 +393,14 @@ class DateTimeCompose(val bundle: Bundle) {
} }
} }
private fun timePattern(context: Context): String = if (DateFormat.is24HourFormat(context)) "HH:mm" else "hh:mm a"
private fun dayTimePattern(context: Context): String =
if (DateFormat.is24HourFormat(context)) "EEE, HH:mm" else "EEE, hh:mm a"
private fun fullPattern(context: Context): String =
if (DateFormat.is24HourFormat(context)) "dd MMM, HH:mm" else "dd MMM, hh:mm a"
@Composable @Composable
private fun TimeOption(label: String, timeString: String, onClick: () -> Unit) { private fun TimeOption(label: String, timeString: String, onClick: () -> Unit) {
Row( Row(
@ -399,9 +415,6 @@ class DateTimeCompose(val bundle: Bundle) {
} }
companion object { companion object {
private const val PATTERN = "dd MMM, HH:mm"
private const val TIME_PATTERN = "HH:mm"
private const val DAY_TIME_PATTERN = "EEE, HH:mm"
private const val HALF_WEIGHT = 0.5f private const val HALF_WEIGHT = 0.5f
private const val INT_8 = 8 private const val INT_8 = 8
private const val INT_16 = 16 private const val INT_16 = 16