🔴 Die Bibliotheks-Kette war aus den QUELLEN nicht baubar. Jede Klammer
zeigte auf eine aeltere Version, als die Quelle des Nachbarn traegt —
diese Staende existieren nur als veroeffentlichte Artefakte, und die
Repos haben keine einzige Git-Marke. Der Build fiel deshalb auf Forgejo
Packages zurueck, und das antwortet seit dem 2026-08-14 mit 401, auch
anonym. Ergebnis: auf einem frischen Rechner ging gar nichts.
Behoben, indem die Klammern auf die Staende gehoben wurden, die im Baum
liegen. Zwei Bibliotheken hatten ausserdem **kein `mavenLocal()`** in
ihrer Repository-Liste — sie konnten per Bauart nur aus dem Registry
ziehen, waehrend die Schwesterbibliotheken es laengst hatten.
Bewiesen, nicht behauptet: alle neun Artefakte liegen nach diesem Stand
in mavenLocal, und die Kartomo-Android-App baut daraus durch
(BUILD SUCCESSFUL, APK `ev.mana.kartomo`).
Sitzung: 5810ba55
|
||
|---|---|---|
| devlog/2026-06-09 | ||
| gradle | ||
| src/main/kotlin/ev/mana/widget | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| NOTICE | ||
| README.md | ||
| settings.gradle.kts | ||
mana-kotlin-widget
Geteilte Bausteine für Home-Screen-Widgets (Jetpack Glance) der mana-
Android-Flotte. Schwesterlib zu mana-kotlin-tokens / -ui / -core,
publiziert auf dem Forgejo-Maven (git.mana.how/api/packages/mana/maven,
anonym lesbar).
Warum
Jede App, die ein Widget hatte (memoro, nutriphi, stetick, wordeck, zitare),
hat Farben hart kodiert und den Glance-Boilerplate (Receiver, Intents)
kopiert. Diese Lib zieht den teilbaren Teil heraus — vor allem die
Theme-Brücke: Glance kann das Material-3-Theme der App nicht mitbenutzen,
also rechnet diese Lib eine ManaTheme-Variant in Glance-taugliche,
Hell/Dunkel-umschaltende Farben um.
Was nicht geteilt wird: das Datenladen (jede App liest ihr eigenes Repository) und bewusst eigene Paletten (z. B. Zitares Pergament-Optik).
API
| Symbol | Zweck |
|---|---|
ManaGlanceTheme(theme) { … } |
GlanceTheme-Wrapper; innen liefert GlanceTheme.colors.* die Variant-Farben. |
ManaTheme.toGlanceColors() |
Die 12 Tokens als ColorProvider (Auto-Hell/Dunkel) — für kleine Widgets, die Farben direkt setzen. |
ManaTheme.glanceColorProviders() |
Variant als Glance-ColorProviders (für eigene GlanceTheme-Aufrufe). |
openAppAction(ctx, Activity::class.java) |
Tap → App öffnen (NEW_TASK | CLEAR_TOP). |
openAppAction(ctx, …, action, extras) |
App öffnen mit Action/String-Extras. |
deepLinkAction(ctx, "app://…", Activity::class.java) |
Tap → Deep-Link öffnen. |
ManaGlanceWidgetReceiver(MyWidget()) |
Receiver-Basis (spart die override-Zeile). |
Beispiel
class DueWidget : GlanceAppWidget() {
override suspend fun provideGlance(context: Context, id: GlanceId) {
val due = withContext(Dispatchers.IO) {
(context.applicationContext as MyApp).container.repo.dueCount()
}
provideContent {
ManaGlanceTheme(ManaTheme.SKYLIGHT) {
Column(GlanceModifier.fillMaxSize().background(GlanceTheme.colors.surface).padding(12.dp)) {
Text("Wordeck", style = TextStyle(color = GlanceTheme.colors.primary))
Text(if (due > 0) "$due fällig" else "Nichts fällig")
}
}
}
}
}
class DueWidgetReceiver : ManaGlanceWidgetReceiver(DueWidget())
Build / Publish
Wie die anderen Kotlin-Libs auf der GPU-Box (Java/Android SDK):
FORGEJO_TOKEN=… ./gradlew publishReleasePublicationToForgejoRepository
Versionen: Glance 1.1.1, Compose BOM 2024.12.01, mana-kotlin-tokens 0.2.0
— deckungsgleich mit den App-Modulen, damit das Artefakt binär passt.