Working Android dashboard app for self-hosted Plausible Analytics CE. Connects to Plausible API v2 (POST /api/v2/query), displays top stats, visitor chart, top sources, and top pages with date range selection. Architecture: Kotlin + Jetpack Compose + Material 3 + Hilt + Ktor + SQLDelight + EncryptedSharedPreferences. Single :app module, four-layer unidirectional data flow (UI → ViewModel → Repository → Data). Includes: instance management, site list, caching with TTL per date range, encrypted API key storage, custom Canvas visitor chart, pull-to-refresh, and unit tests for API, cache, repository, and domain model layers. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
27 lines
728 B
Prolog
27 lines
728 B
Prolog
# SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
# kotlinx.serialization
|
|
-keepattributes *Annotation*, InnerClasses
|
|
-dontnote kotlinx.serialization.AnnotationsKt
|
|
|
|
-keepclassmembers class kotlinx.serialization.json.** {
|
|
*** Companion;
|
|
}
|
|
-keepclasseswithmembers class kotlinx.serialization.json.** {
|
|
kotlinx.serialization.KSerializer serializer(...);
|
|
}
|
|
|
|
-keep,includedescriptorclasses class no.naiv.implausibly.**$$serializer { *; }
|
|
-keepclassmembers class no.naiv.implausibly.** {
|
|
*** Companion;
|
|
}
|
|
-keepclasseswithmembers class no.naiv.implausibly.** {
|
|
kotlinx.serialization.KSerializer serializer(...);
|
|
}
|
|
|
|
# Ktor
|
|
-keep class io.ktor.** { *; }
|
|
-dontwarn io.ktor.**
|
|
|
|
# SQLDelight
|
|
-keep class app.cash.sqldelight.** { *; }
|