Copied from Agendula, which is the family's current template: AGP 9.x conventions, the shared version catalog, and the F-Droid reproducibility invariants that are load-bearing rather than cosmetic — no foojay toolchain resolver anywhere, vcsInfo off on release, dependenciesInfo out of the APK. floret-kit comes in as a git submodule wired up as a Gradle composite build, so the kit is built from source and pinned by commit, exactly as its ARCHITECTURE.md prescribes. Two deliberate divergences from Agendula's catalog: - Room replaces Glance. Clockula owns its storage (docs/PLAN.md §0) and ships no widget in v1 (§1, decision 2). The schema is exported to a committed directory, because a migration is only reviewable against a recorded previous version. - :provider and core-reminders are dropped. There is no vendored task provider here, and Agendula's reminder lead-time model is not the shape Clockula's scheduling takes. Version starts at 0.1.0 / 100. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L94fydiJC37LtxVusNQBDy
22 lines
1.1 KiB
Prolog
22 lines
1.1 KiB
Prolog
# Keep Hilt-generated classes
|
|
-keep class dagger.hilt.** { *; }
|
|
-keep @dagger.hilt.android.HiltAndroidApp class *
|
|
|
|
# Room instantiates its generated <Database>_Impl reflectively through a no-arg
|
|
# constructor. R8 under AGP 9 keeps the class but prunes that constructor, since
|
|
# nothing calls it directly — Room then throws InstantiationException, reported
|
|
# as "Failed to create an instance of ...". We pull Room in transitively via
|
|
# Glance -> WorkManager, whose WorkDatabase is built by WorkManagerInitializer
|
|
# at startup, so the app died on launch in every minified build (issue #1).
|
|
-keep class * extends androidx.room.RoomDatabase { <init>(); }
|
|
|
|
# WorkManager likewise looks its workers up by name and calls this constructor
|
|
# reflectively — same pruning, but it only bites once a worker actually runs
|
|
# (Glance's widget updates), so keep it explicitly rather than wait for it.
|
|
-keep class * extends androidx.work.ListenableWorker {
|
|
<init>(android.content.Context, androidx.work.WorkerParameters);
|
|
}
|
|
|
|
# Compose Compiler may keep its own; defaults are fine
|
|
-dontwarn org.jetbrains.annotations.**
|