Compare commits

..

1 Commits

Author SHA1 Message Date
6abfef00f2 docs(fdroid): warn against premature submodules:true in official recipe
fdroidserver's initsubmodules() raises NoSubmodulesException on any build
entry whose commit lacks .gitmodules, so `submodules: true` is a hard build
failure on every release before the floret-kit submodule lands (verified
2026-06-28 against fdroiddata MR !41553). Document that it must be added
only in the recipe entry targeting the first release that ships the
floret-kit composite build.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 19:32:23 +02:00
4 changed files with 21 additions and 29 deletions

View File

@@ -28,8 +28,8 @@ android {
// which builds this version and then creates the matching vX.Y.Z tag +
// release itself (versionCode is pinned to MAJOR*10000 + MINOR*100 +
// PATCH from versionName, e.g. 2.7.2 -> 20702). See docs/RELEASING.md.
versionCode = 21200
versionName = "2.12.0"
versionCode = 21102
versionName = "2.11.2"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

View File

@@ -692,7 +692,6 @@ private fun DayColumnCard(
EventBlock(
block = block,
dark = dark,
height = height,
onClick = { onEventClick(block.event) },
modifier = Modifier
.offset(x = laneWidth * block.lane, y = top)
@@ -713,7 +712,6 @@ private fun DayColumnCard(
private fun EventBlock(
block: TimedBlock,
dark: Boolean,
height: Dp,
onClick: () -> Unit,
modifier: Modifier = Modifier,
) {
@@ -722,22 +720,7 @@ private fun EventBlock(
val locale = currentLocale()
val timeLabel = "${minToHm(block.startMin, use24Hour, locale)}" +
minToHm(block.endMin, use24Hour, locale)
// Only full-width (non-overlapping) blocks that are tall enough show the time.
// On narrow overlapping columns we drop it so the title can wrap to fill the
// whole block, mirroring Google Calendar.
val showTime = block.endMin - block.startMin >= 45 && block.laneCount == 1
val density = LocalDensity.current
val titleLineHeight = with(density) {
MaterialTheme.typography.labelMedium.lineHeight.toDp()
}
val timeLineHeight = with(density) {
MaterialTheme.typography.labelSmall.lineHeight.toDp()
}
// Wrap the title across as many lines as the block can fit (minus the 2.dp
// top/bottom padding and the reserved time line) instead of clipping it to a
// single character on slim, overlapping blocks.
val contentHeight = height - 4.dp - if (showTime) timeLineHeight else 0.dp
val titleMaxLines = (contentHeight / titleLineHeight).toInt().coerceAtLeast(1)
val showTime = block.endMin - block.startMin >= 45
Box(
modifier = modifier
.background(pastelize(block.event.color, dark), RoundedCornerShape(4.dp))
@@ -749,15 +732,18 @@ private fun EventBlock(
Text(
text = title,
style = MaterialTheme.typography.labelMedium,
maxLines = titleMaxLines,
maxLines = if (showTime) 1 else 2,
overflow = TextOverflow.Ellipsis,
color = Color.Black.copy(alpha = 0.85f),
)
if (showTime) {
// Narrow columns can't fit "13:0014:00" on one line, so let it
// wrap to a second line (after the dash) instead of clipping the
// end time.
Text(
text = timeLabel,
style = MaterialTheme.typography.labelSmall,
maxLines = 1,
maxLines = 2,
overflow = TextOverflow.Ellipsis,
color = Color.Black.copy(alpha = 0.6f),
)

View File

@@ -48,6 +48,19 @@ Builds:
# No NDK / no flavors. The release buildType applies a signingConfig only
# when key.properties exists; on the buildserver it does not, so this
# produces the unsigned APK F-Droid compares against our binary.
#
# DO NOT add `submodules: true` here ahead of need. fdroidserver's
# initsubmodules() RAISES NoSubmodulesException ("No git submodules
# available") on any build entry whose commit has no `.gitmodules`, so
# `submodules: true` is a HARD BUILD FAILURE — not a no-op — on every
# release before the floret-kit submodule lands. (Verified 2026-06-28: it
# broke the fdroid build / checkupdates / check-source-code jobs on
# fdroiddata MR !41553; confirmed locally with the fdroidserver-master
# fetchsrclibs path.) Add `submodules: true` ONLY in the recipe entry that
# targets the FIRST release actually shipping the `floret-kit` git submodule
# (composite build via `includeBuild("floret-kit")`, core-time refactor on
# branch `chore/floret-kit-core-time`) — and only there. From that entry on
# it becomes the AutoUpdateMode template and propagates to future builds.
# SHA-256 of our app signing certificate (public; embedded in every published
# APK). Locks F-Droid to publish only binaries signed with our key.

View File

@@ -1,7 +0,0 @@
### Changed
- Readable titles on overlapping events. In the week and day views, events that
overlap split a day into slim columns where the title used to be clipped to a
character or two. The title now wraps across as many lines as the block can
fit, and the time is hidden on those narrow blocks so the name can fill the
space — so you can tell events apart without opening each one. Thanks to @ptab
for the suggestion ([#13]).