Add About screen: OSM attribution and real third-party acknowledgements (#48) #107
No reviewers
Labels
No labels
area:companion
area:docs
area:shared
area:tooling
area:watchapp
blocker
kind:chore
kind:feature
kind:spike
kind:test
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
robert/PedalPebble!107
Loading…
Reference in a new issue
No description provided.
Delete branch "area/about-screen"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes most of the remaining scope of #48. LICENSE and README.md's licence/OSM sections were already correct from bootstrap (confirmed by reading both, not assumed) — this PR only adds what was actually still missing.
Added
companion/src/main/kotlin/de/butzei/pedalpebble/about/), reachable from a new button onMainActivity's skeleton screen. Shows app name/version, a reference to the MIT licence (not a full-text dump — seeAboutScreen's KDoc for the reasoning), the OSM attribution reproduced verbatim fromREADME.md(D15), and today's real third-party acknowledgements.ThirdPartyAcknowledgementsin:companion:core— a plain, JVM-tested list, checked against the real build rather than assumed: PebbleKit Android 2 (io.rebble.pebblekit2:client, Apache-2.0, D49) is a realimplementation()dependency of:companion:pebbleand is listed. Nothing else is: the 4.0.1 fallback isn't declared yet (that's #4's job),pebblekit2-client-uiis a version-catalog alias nothingimplementation()s, and BRouter is not vendored beyond a still-unbuilt AIDL boundary (#27).Module placement: no new Gradle module. The About screen lives directly in
:companion, matching the precedent already set byRideSetupActivity— a screen with real multi-module state still lives in the app module because there's nothing about it to reuse elsewhere; this screen has less going on than that one (no repository, no persisted state). Its one piece of real logic, the acknowledgement list, lives in:companion:core, which is exactly what that module is for.Explicitly left unchecked: "attribution in exported GPX metadata" — GPX export (#47) doesn't exist in this codebase yet, so there's nothing to embed attribution into. Noted as blocked on #47 rather than building an exporter just to satisfy the checkbox.
Testing: no Compose UI/instrumented test precedent exists anywhere in this project yet, so none was invented here. The one real testable piece — the acknowledgement list — has a JVM Kotest spec in
:companion:core. Verified against a real build:./gradlew :companion:assembleDebugand:companion:core:testboth succeed (JDK 21, local Android SDK).https://claude.ai/code/session_01DAoXbRmJUf2uxNYBfdAXPt