Signal Station Android development preview — corresponding source

By Luke Steuber, based on the Core Devices companion.
Android source revision: recorded in SOURCE_REVISION.txt.
Android package: com.lukesteuber.signalstation
Version: 0.7.0-local-dev (20)
Optional watch package: Signal Station 1.8.1

This archive includes the matching source, Gradle wrapper, vendored modules,
and license notices. It contains no signing private key or personal provider key.

Use Android SDK 37, build-tools 36.1.0, and JDK 21. Set ANDROID_HOME and
JAVA_HOME to those installations. Gradle resolves dependencies from the
repositories in settings.gradle.kts. The build downloads the checksum-pinned
Vosk English model; model and library notices are included with the sources.

Initialize a local Git snapshot because the parent build configures legacy
versioned projects, then build the separate Android application:

  git init
  git add .
  git -c user.name='Local builder' -c user.email='builder@localhost' commit -m 'Source snapshot'
  git tag 1.12.0.1
  ./gradlew :signalApp:assembleDebug --no-configuration-cache

Output: signalApp/build/outputs/apk/debug/signalApp-debug.apk

The shared feature module is :signal. The Android shell is :signalApp. The
legacy companion remains separate. This app has its own storage; updates of
the separate Signal Station preview preserve its existing data.

A locally generated Android signing certificate differs from the published
preview's certificate. Preserve installed data; a differently signed build
cannot update that installation in place.

The separate watch source archive contains package.json, wscript, C source,
resources and notices. Build with Pebble SDK 4.33.1 using `pebble build`.
It declares com.lukesteuber.signalstation as its companion and embeds no PKJS.
Capture through the stock Pebble app has been tested on a Time 2 and Pixel 9a.
The watch app remains in testing; other models need physical validation.

Read SIGNAL_STATION_GUIDE.md for observation sessions, local memory and Health Connect.
Health Connect reads are optional and do not need a language-model provider.
