Files
Calendarr-Android/claude.md
Guido Schmit a1c36a8a03 fix: green brand theme, iOS launcher icon, password reveal, real login error
- Theme primary now the iOS brand green (#20A050), fixed app-wide (was tied
  to the server's blue primary_color)
- Launcher icon generated from the iOS AppIcon across all densities;
  dropped the placeholder adaptive icon
- PasswordField: eye toggle + brief last-character reveal; used on login,
  profile and CalDAV password inputs
- Login now surfaces the server's actual error detail (verified the JSON
  contract against the live server; a 401 is a genuine credential mismatch)
- CLAUDE.md: correct prod base URL to calendar.scarriffle.com

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 12:48:53 +02:00

1.9 KiB
Raw Permalink Blame History

Calendarr Android

Projektübersicht

Android-App für den Calendarr-Server. Funktionsgleich mit der iOS-App (Swift, liegt unter ../Calendarr iOS/). Der Server-Code liegt unter ../Calendarr server/.

⚠️ WICHTIG: Read-Only Ordner

Die folgenden Ordner dienen NUR zur Referenz. NIEMALS Dateien darin verändern, löschen oder erstellen:

  • ../Calendarr iOS/ → READ ONLY nur zur Analyse der Features und API-Nutzung
  • ../Calendarr server/ → READ ONLY nur zur Analyse der API-Endpunkte und Datenmodelle

Alle Änderungen und neue Dateien kommen ausschliesslich in ../Calendarr Android/.

Server

  • Basis-URL (Prod): https://calendar.scarriffle.com
  • Auth: Erst Server-URL eingeben, dann Benutzername + Passwort
  • Credentials werden auf Android im EncryptedSharedPreferences gespeichert (Äquivalent zu Apple Keychain)

Tech Stack

  • Sprache: Kotlin
  • UI: Jetpack Compose + Material 3
  • Architektur: MVVM
  • Netzwerk: Retrofit + OkHttp
  • Lokale Speicherung: EncryptedSharedPreferences (Credentials), Room (Cache)
  • Async: Coroutines + Flow
  • DI: Hilt

Projektstruktur

  • ../Calendarr iOS/ → READ ONLY Swift-App als Referenz
  • ../Calendarr server/ → READ ONLY Server als Referenz
  • ../Calendarr Android/ → dieses Projekt, hier wird gebaut

Git

Build

  • Debug APK: ./gradlew assembleDebug
  • Release APK: ./gradlew assembleRelease
  • Tests: ./gradlew test

Konventionen

  • Kein XML für Layouts ausschliesslich Jetpack Compose
  • ViewModels dürfen keine Android-Framework-Klassen direkt referenzieren
  • StateFlow für UI-State, keine LiveData
  • Alle Strings in res/values/strings.xml
  • Vor jedem Push: ./gradlew build muss fehlerfrei durchlaufen