Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
77b0c6db09 | ||
|
|
76314aebbd | ||
|
|
bd3b4605cb | ||
|
|
506ebdb092 |
No files matched your search
@@ -0,0 +1,21 @@
|
||||
package de.jeanlucmakiola.calendula.ui.common
|
||||
|
||||
import android.content.res.Resources
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import de.jeanlucmakiola.floret.time.rowWeekNumber
|
||||
import kotlinx.datetime.LocalDate
|
||||
import kotlinx.datetime.toJavaLocalDate
|
||||
import java.time.temporal.WeekFields
|
||||
|
||||
/**
|
||||
* The week number of the grid row starting on [rowStart], numbered by the
|
||||
* device region's rules (#493). The region, not the app language: an English
|
||||
* UI in the Netherlands still numbers weeks the ISO way. Shared by the Month
|
||||
* gutter and the Week badge so the two always agree.
|
||||
*/
|
||||
@Composable
|
||||
internal fun rememberRowWeekNumber(rowStart: LocalDate): Int {
|
||||
val fields = remember { WeekFields.of(Resources.getSystem().configuration.locales[0]) }
|
||||
return remember(rowStart, fields) { rowStart.toJavaLocalDate().rowWeekNumber(fields) }
|
||||
}
|
||||
@@ -187,7 +187,6 @@ import de.jeanlucmakiola.floret.identity.itemEnter
|
||||
import de.jeanlucmakiola.floret.identity.rememberReduceMotion
|
||||
import de.jeanlucmakiola.floret.locale.currentLocale
|
||||
import de.jeanlucmakiola.calendula.ui.common.next
|
||||
import de.jeanlucmakiola.floret.time.isoWeekNumber
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
import kotlinx.coroutines.flow.filterNotNull
|
||||
@@ -205,6 +204,7 @@ import java.time.format.TextStyle as JavaTextStyle
|
||||
import java.util.Locale
|
||||
import kotlinx.datetime.toJavaMonth
|
||||
import kotlinx.datetime.yearMonth
|
||||
import de.jeanlucmakiola.calendula.ui.common.rememberRowWeekNumber
|
||||
|
||||
private val LocalTodayPulse = staticCompositionLocalOf { 0 }
|
||||
|
||||
@@ -2701,13 +2701,13 @@ private fun monthChipDragModifier(
|
||||
/**
|
||||
* Left-gutter calendar-week cell (#25): a full-height tonal pill mirroring the
|
||||
* day cells' geometry, set apart by the secondaryContainer tint (matching the
|
||||
* Week view's badge), with the ISO week number centred like a day number. The
|
||||
* week is computed on the row's first day — the same basis as the Week view — so
|
||||
* the two agree.
|
||||
* Week view's badge), with the week number centred like a day number. It is
|
||||
* numbered by the device region from the row's mid-week day, as in the Week
|
||||
* view, so it is right for any first weekday (#493).
|
||||
*/
|
||||
@Composable
|
||||
private fun WeekNumberGutter(weekStart: LocalDate, modifier: Modifier = Modifier) {
|
||||
val weekNumber = remember(weekStart) { weekStart.toJavaLocalDate().isoWeekNumber() }
|
||||
val weekNumber = rememberRowWeekNumber(weekStart)
|
||||
val label = stringResource(R.string.week_number_label)
|
||||
val openLabel = stringResource(R.string.month_open_week, weekNumber)
|
||||
val onOpenWeek = LocalOpenWeek.current
|
||||
|
||||
@@ -209,7 +209,6 @@ import de.jeanlucmakiola.calendula.ui.common.TIMELINE_CONTENT_END_INSET
|
||||
import de.jeanlucmakiola.calendula.ui.common.hourCellBlockInset
|
||||
import de.jeanlucmakiola.calendula.ui.common.hourGridCells
|
||||
import de.jeanlucmakiola.calendula.ui.common.tappedMinuteOfDay
|
||||
import de.jeanlucmakiola.floret.time.isoWeekNumber
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.datetime.DateTimeUnit
|
||||
import kotlinx.datetime.LocalDate
|
||||
@@ -221,6 +220,7 @@ import kotlinx.datetime.toLocalDateTime
|
||||
import java.time.format.TextStyle as JavaTextStyle
|
||||
import java.util.Locale
|
||||
import kotlinx.datetime.yearMonth
|
||||
import de.jeanlucmakiola.calendula.ui.common.rememberRowWeekNumber
|
||||
|
||||
/** One lane of the all-day strip, sized to a trimmed bar line (#190). */
|
||||
private val ALL_DAY_ROW_HEIGHT = 20.dp
|
||||
@@ -1137,7 +1137,7 @@ private fun WeekDayHeader(
|
||||
*/
|
||||
@Composable
|
||||
private fun WeekNumberCell(weekStart: LocalDate, showBadge: Boolean, modifier: Modifier = Modifier) {
|
||||
val weekNumber = remember(weekStart) { weekStart.toJavaLocalDate().isoWeekNumber() }
|
||||
val weekNumber = rememberRowWeekNumber(weekStart)
|
||||
Column(
|
||||
modifier = modifier
|
||||
.fillMaxWidth()
|
||||
|
||||
+1
-1
Submodule floret-kit updated: 1ff6702fe6...003eca337a.
Reference in new issue
Block a user