Skip to content

v1.7.5 — Visual UX uniformity pass

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 29 Apr 22:08
· 499 commits to main since this release

Visual UX uniformity pass

Real-device tour exposed three GUI/UX regressions in v1.7.4. All fixed without schema or feature changes.

Fixed

  • Timer tab — empty area below hero on devices with no active timers. Switched the parent Column to verticalScroll, dropped weight(1f) on TimerInputView (Card wraps to content height regardless of weight), and replaced the inner LazyColumn for active timers with a forEach Column. 24dp Spacer at the bottom keeps the input card breathing above the floating nav.
  • World Clock tab — saved cities not rendering despite the "N cities" hero chip. Replaced the inner Scaffold (which competed for system insets with the outer AppNavigation Scaffold) with a Box that hosts a single LazyColumn (hero is the first item, mirroring AlarmListScreen). FAB overlaid via Box BottomEnd alignment. contentPadding.bottom = 96.dp keeps the last city out from under the FAB. The "N cities" chip is hidden in the empty state.
  • Alarms tab — "Swipe to delete" text bleeding through disabled alarm cards. AlarmCard uses SurfaceCard.copy(alpha = 0.55f) for disabled alarms, so the SwipeToDismissBox background (always rendered, just transparent when not swiping) showed through. Looked like a stuck swipe gesture. Now gated on isSwiping = currentValue != Settled || targetValue != Settled so the affordance only paints during an active gesture. Added LaunchedEffect(Unit) snap-to-Settled so a saved partial-drag offset can't survive across navigation.
  • Today tab — duplicate "Now" cells in the hourly strip. The isFirstFutureSlot predicate ran a 45-minute window check on every cell, tagging two or three adjacent hours all as "Now". Replaced with a single-flag firstNowAssigned toggled after the first matching cell.

Build

  • R8 release build now succeeds with NewPipe Extractor's Mozilla Rhino dependency on board. Added -dontwarn javax.script.**, -dontwarn org.mozilla.javascript.**, and explicit keeps for Rhino's reflection-loaded classes so YouTube signature decoding still works in minified release builds.

Download: AlarmClockXtreme-v1.7.5-play.apk — signed Play-flavor APK, ~62 MB. Includes yt-dlp + NewPipe Extractor for the YouTube alarm-sound downloader.