Commit Graph
8 Commits
Author SHA1 Message Date
herel 9524bc93ca feat: show nice dates in events 2026-08-04 11:14:51 +02:00
herel a8905327f0 fix(ui): Show event dates in card view
The EventCard had a fixed 120dp height that clipped the date line.
Remove the height constraint so the card grows to fit all content,
and format ISO datetime strings into readable dd.MM.yyyy HH:mm format.
2026-08-04 09:57:47 +02:00
herel ed97b2a1f0 license: add GPL-3.0-or-later license
- Add full LICENSE file (GPL-3.0)
- Add SPDX headers to all 44 Kotlin source files
- Add SPDX headers to 3 iOS Swift/Info.plist files
- Update README.md and AGENTS.md with license info
2026-07-09 16:19:38 +02:00
herel 294aebd0b4 feat: add AuthViewModel, ScheduleViewModel, and EventDetailViewModel with StateFlow 2026-07-08 17:25:41 +02:00
herel bb13a12d00 feat: add event filtering logic, TypeFilter enum, AuthSettings, and OAuthClient interface 2026-07-08 17:16:01 +02:00
herel 11c0a92421 feat: add ScheduleCache with multiplatform-settings for offline caching 2026-07-08 17:10:45 +02:00
herel b1661aaa4f feat: add Ktor networking layer with ApiService and auth token holder
Add ApiConfig, AuthTokenHolder singleton, expect/actual HttpClient
engine factories (CIO for Android/Desktop, Darwin for iOS), and
ApiService with four GET endpoints. Bearer token from AuthTokenHolder
is injected as Authorization header on each request.

Adjusted for Ktor 3.5.1: HttpClientEngineFactory lives in
io.ktor.client.engine; the timeout plugin is HttpTimeout (package
io.ktor.client.plugins), not HttpTimeoutPlugin. Tests wrap suspend
calls in runTest and assert request URLs without a trailing '?'.
2026-07-08 17:07:20 +02:00
herel a24297f821 feat: add serializable data models with FlexibleStringSerializer for number coercion 2026-07-08 17:02:31 +02:00