EUC OsmAnd Plugin
GitHub project

Read it. Build it. Change it.

The entire Android app lives at github.com/githuba42r/OSM-EUC-World — no closed components: what you install is what's in the repo.

Full source, one repo

Kotlin app — OsmAnd widget plugin, the Android Auto Car App Service, home screen widget, trip meter persistence, and the release tooling, all in one tree with tests and CI.

Reproducible releases

./release.sh patch|minor|major bumps version.properties (semver + version code), tags the release, and builds the signed artifact. GitHub Actions publishes the signed APK for every v* tag.

Issues & contributions

Found a widget that behaves oddly, or a surface you'd like the wheel data on? Open an issue or a pull request on GitHub.

Built on open foundations

Maps and widgets run on OsmAnd; wheel data comes from EUC World. Grateful for both — and for the phone-mount hacks that got us here.

Current releases: signed APKs are on the latest release page, published automatically by GitHub Actions on every release tag. Google Play distribution is handled separately.

Build from source

Prerequisites:

Clone, open in Android Studio, sync, and build:

git clone https://github.com/githuba42r/OSM-EUC-World.git cd OSM-EUC-World ./gradlew assembleDebug # build the APK ./gradlew test # unit tests

Signing credentials are read from an untracked keystore.properties at the repo root (storeFile, storePassword, keyAlias, keyPassword); without it, debug builds work normally.

Releases are cut with the release script, which keeps everything in lock-step:

./release.sh patch # e.g. 1.1.17 -> 1.1.18 ./release.sh minor # 1.1.17 -> 1.2.0 ./release.sh major # 1.1.17 -> 2.0.0 ./release.sh minor --pre-release

The script verifies a clean working tree, updates version.properties, commits and tags v<version>. Pushing the tag is what fires the GitHub Actions release workflow, which restores signing material from repository secrets, builds the signed APK, and publishes it on the GitHub Release:

git push && git push --tags

Project layout

app/src/main/java/com/a42r/eucosmandplugin/ ├── api/ # EUC World internal-webservice client ├── service/ # Foreground service polling the wheel data ├── widget/ # Home screen widget ├── auto/ # Android Auto Car App Service & HUD screens ├── range/ # Practical-range estimation ├── ai/ # (feature-flagged) AI range estimation └── ui/ # Main phone app screens & trip meters .github/workflows/release.yml # signed APK release pipeline .github/workflows/deploy-website.yml # this project site → Oracle Cloud