fix: event colors/null parsing, edit+copy, settings chips, scroll perf, splash

- CalEvent parsing: handle Android's JSONObject.optString JSON-null quirk that
  returned the string "null" — this made every event blue (color "null" →
  fallback) and showed "null" for empty location/description. Now null-safe.
- Event detail: copy-to-calendar action; calendar row uses a calendar icon
  (was identical to the notes icon); empty location/notes rows hidden
- Event editor: copy mode (prefill from an existing event, save as new)
- Settings: hour height, text/line contrast are now button chips (like the
  cache range); color picker wraps, shows the current colour and a check mark
- Month scroll perf: precompute a day→events index once per change and only
  reload when the visible month actually changes (was filtering every cell
  every frame → laggy)
- Splash: dark window/splash background + inset launcher icon (was an ugly
  white box on startup)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Guido Schmit
2026-05-31 13:27:03 +02:00
co-authored by Claude Opus 4.8
parent c236db7fe9
commit 608580fc7e
10 changed files with 181 additions and 66 deletions
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- The launcher icon inset so it sits comfortably inside the round splash mask. -->
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@mipmap/ic_launcher"
android:inset="18%" />
+10
View File
@@ -0,0 +1,10 @@
<resources>
<style name="Theme.Calendarr" parent="Theme.Material3.DayNight.NoActionBar">
<item name="android:windowBackground">@color/splash_bg</item>
<item name="android:statusBarColor">@color/splash_bg</item>
<item name="android:navigationBarColor">@color/splash_bg</item>
<!-- Android 12+ system splash screen -->
<item name="android:windowSplashScreenBackground">@color/splash_bg</item>
<item name="android:windowSplashScreenAnimatedIcon">@drawable/splash_icon</item>
</style>
</resources>
+6 -1
View File
@@ -1,5 +1,10 @@
<resources>
<color name="splash_bg">#0B1220</color>
<style name="Theme.Calendarr" parent="Theme.Material3.DayNight.NoActionBar">
<item name="android:windowBackground">?android:colorBackground</item>
<!-- Dark window background avoids a white flash before Compose draws. -->
<item name="android:windowBackground">@color/splash_bg</item>
<item name="android:statusBarColor">@color/splash_bg</item>
<item name="android:navigationBarColor">@color/splash_bg</item>
</style>
</resources>