27 Commits

Author SHA1 Message Date
arnie b97e6f930b Update labels 2026-06-13 09:19:45 +02:00
arnie a196336f26 Add tests to flake 2026-06-12 21:02:34 +02:00
arnie 21819c4a9b Fix weburl for house conditions 2026-06-12 20:56:23 +02:00
arnie 99323694a3 Remove CI 2026-06-12 20:54:45 +02:00
arnie a3bbac72d6 Add banners
build / build (push) Failing after 8s
2026-06-12 20:45:28 +02:00
arnie 038cb51ba4 Update build process 2026-06-12 20:44:32 +02:00
arnie d2ad1ebe0b fix: tv-deploy as real script so direnv exposes it in PATH
build / build (push) Failing after 3m59s
shellHook functions are invisible to direnv; writeShellScriptBin
produces an actual binary added to packages.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 20:17:03 +02:00
arnie a8ff404116 refactor: remove tv-connect and tv-install helpers
build / build (push) Has been cancelled
tv-deploy covers the normal workflow.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 20:16:07 +02:00
arnie 5991a4291a feat: add tv-deploy devshell command
build / build (push) Has been cancelled
Connects adb, installs all flavor APKs, disconnects on exit (trap).
tv-connect and tv-install kept for manual use.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 20:15:50 +02:00
arnie dd04fba9af feat: add tv-connect / tv-install devshell helpers
build / build (push) Has been cancelled
tv-connect: adb connect $TV_IP:5555
tv-install <flavor>: installs flavor release APK

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 20:14:47 +02:00
arnie 168e862c3e fix: CI artifact path to cover all flavor APKs
build / build (push) Has been cancelled
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 20:13:22 +02:00
arnie b57e65f760 chore: upgrade toolchain to AGP 9.2.1 / Gradle 9 / nixpkgs 26.05
build / build (push) Has been cancelled
- nixpkgs 25.11 → 26.05; gradle_9 + jdk21; build-tools 35 → 36
- Drop custom gradle wrapper — GRADLE_OPTS works post-nixpkgs PR #449037
- AGP 8.7.3 → 9.2.1; Kotlin plugin removed (built-in since AGP 9)
- compileSdk/targetSdk 34 → 35; buildToolsVersion pinned to 36.0.0
- Java/Kotlin target 17 → 21; resValues feature flag required by AGP 9
- applicationVariants (removed in AGP 9) → androidComponents.onVariants
- Test task: testWeatherReleaseUnitTest → :app:test (all flavors, debug)
- CI artifact path fixed to cover all flavor APKs
- Docs: drop nix develop --command prefix (direnv activates shell)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 20:12:22 +02:00
arnie 32e45c266d Fix gradle aapt2 linking
build / build (push) Failing after 2m56s
2026-06-12 19:05:03 +02:00
arnie 184f7b3b4c Add fonts
build / build (push) Failing after 2m58s
2026-06-12 18:46:47 +02:00
Arnie via Claude cb1b98cbf9 feat: prefix app_name with "C3C " for Control4 identification
build / build (push) Failing after 2m54s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 18:38:09 +02:00
Arnie via Claude a36d3869b1 refactor: rename dashboards→webviews, unique applicationId per flavor
build / build (push) Failing after 3m11s
Each flavor gets applicationIdSuffix = ".<name>" so the Bravia
getApplicationList API returns a distinct URI per webview, enabling
Control4 to launch specific flavors independently.

BREAKING CHANGE: applicationId changed from cz.c3c.webviewkiosk to
cz.c3c.webviewkiosk.<flavor> — uninstall old app before reinstalling.
BuildConfig.DASHBOARD_URL renamed to WEBVIEW_URL.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 18:22:51 +02:00
Arnie via Claude 4982af9df4 feat: multi-flavor APK build from dashboards.yaml
build / build (push) Failing after 3m29s
Dashboard URL and label configured in dashboards.yaml; each entry
becomes a product flavor with BuildConfig.DASHBOARD_URL injected
at build time. APKs output as <flavor>-release.apk.
2026-06-12 18:15:21 +02:00
Arnie via Claude 5af5b4513d feat: gitea CI (test + apk artifact), repo docs
build / build (push) Failing after 4m29s
2026-06-12 15:10:13 +02:00
Arnie via Claude a57113232e chore: committed release keystore for stable sideload signature 2026-06-12 13:36:40 +02:00
Arnie via Claude 6ca64ea2ff feat: leanback webview kiosk activity 2026-06-12 13:21:16 +02:00
Arnie via Claude af5d4aa76a feat: exponential backoff policy for webview reload 2026-06-12 12:25:51 +02:00
Arnie via Claude 57aa0ab57b fix: use shellHook to set aapt2 override via gradle.properties
AGP 8.7.3 reads android.aapt2FromMavenOverride via providers.gradleProperty()
which only reads gradle.properties files, not JVM system properties set via
GRADLE_OPTS -D. The shellHook rewrites the sentinel value on every nix develop
so the correct nix store path is always present before gradle runs.
2026-06-12 12:25:47 +02:00
Arnie via Claude 1a2f687a88 feat: gradle project, AGP 8.7.3, sdk 34/min 26 2026-06-12 08:29:55 +02:00
Arnie via Claude 5e46cd7333 chore: untrack planning artifacts, ignore .superpowers/ docs/ PLAN.md 2026-06-12 00:29:40 +02:00
Arnie via Claude fd877411ef feat: nix dev shell with Android SDK 34, JDK 17, gradle 2026-06-12 00:28:27 +02:00
Arnie via Claude 0e43f970a6 chore: add .kotlin/ and *.iml to gitignore 2026-06-12 00:09:20 +02:00
Arnie via Claude 05e536fa92 chore: repo skeleton 2026-06-12 00:06:34 +02:00