CalendulaApp registers the Hilt component graph. MainActivity uses
enableEdgeToEdge() and renders a centered placeholder showing app
name + tagline via CalendulaTheme. PlaceholderPreview lets the IDE
preview the layout. Resolves the pre-existing MissingClass lint
error from the manifest reference.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CalendulaSeed (0xFF5C6B7A) anchors the design palette. Theme picks
Dynamic Color on API 31+ when enabled (default true) and falls back
to a hand-tuned Light/Dark scheme otherwise. CalendulaTypography is
the M3 Expressive default for V1 - custom type scale lands in a
later UI-design iteration.
ColorSchemeTest pins the seed value (3 unit tests, all pass).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Material 3 Expressive 1.5.0-alpha21 transitively requires
material-ripple-android:1.12.0-alpha03, which mandates compileSdk >= 37
via its AAR metadata. The Android SDK platform 37.0 was installed
locally (already available as a preview).
targetSdk stays at 36 - we compile against API 37 only for the new
material-ripple constants, not to opt into runtime behavior changes.
targetSdk will follow when API 37 reaches stable.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Static stylized '1' on a slate (0xFF5C6B7A) background. The numeral
references kalendae, the Latin word for 'first day of the month' that is
the etymological root of both 'Calendar' and 'Calendula'. Adaptive icon
spec: foreground vector path, monochrome variant for themed icons (API
33+), no PNG fallback needed (minSdk 29 > 26).
Visual refinement is expected during the UI design iteration; this is
the foundational shape and meaning.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
READ_CALENDAR permission declared. Strings split into English master
(values/) and German (values-de/) with the Loading/Failure/Success
generic state strings used across screens. Backup rules let DataStore
back up by default with no file-based content. Theme stub delegates
real theming to Compose; the Activity-level XML theme only sets
transparent system bars and dark-mode hint.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Restore 4-space indent on kotlin-compose plugin alias (regression from
the previous cleanup commit)
- Fix invalid ProGuard rule: HiltAndroidApp is an annotation type, not
a class - use '-keep @dagger.hilt.android.HiltAndroidApp class *' to
actually retain the @HiltAndroidApp-annotated Application
- Remove vectorDrawables.useSupportLibrary - dead config since minSdk 29
(native VectorDrawable support since API 21)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>