Colota
com.Colota
Zapstore _@zapstore.dev Republished from GitHub / F-Droid by the Zapstore main account.
Colota is an open-source GPS tracking application that sends your location to your own server over HTTP(S). It works offline, supports geofencing, and doesn't share any data except with your configured backends. **Features** - **Self-Hosted** - Works with Dawarich, GeoPulse, OwnTracks, PhoneTrack, Reitti, Traccar, Home Assistant, or any custom backend that accepts JSON over HTTP - **Privacy First** - No analytics, no telemetry, no third-party SDKs. Licensed under AGPL-3.0 - **Tracking Profiles** - Create multiple GPS configurations that switch automatically based on charging, Android Auto, speed or stationary detection - **Native Maps** - Smooth map rendering with MapLibre GL, speed-colored tracks, tappable point details and downloadable offline map packs - **Location Inspector** - Browse recorded trips on an interactive map with per-point details, stats and elevation charts - **Works Offline** - Locations are queued locally and synced when connectivity returns. Export as CSV, GeoJSON, GPX or KML - **Reliable Tracking** - Foreground service with auto-start on boot, passive location listener and exponential backoff for failed syncs - **Geofencing** - Define pause zones with per-zone WiFi pause, motionless detection, entry delay and notification settings - **Flexible Sync** - Instant send, periodic batch sync, Wi-Fi only or fully offline mode - **Auto-Export** - Schedule automatic background exports on a daily, weekly or monthly basis - **Authentication** - Basic Auth, Bearer Token, or custom headers with AES-256-GCM encryption - **Quick Setup** - Configure devices instantly via colota:// deep links, QR codes or home screen shortcuts - **Configurable** - Custom field mapping, update intervals, distance filters, accuracy thresholds, unit system and time format - **Data Management** - Database statistics, scheduled cleanup and full data export - **Dark Mode** - Full dark and light theme support The FOSS variant uses Android's native LocationManager and has no Google Play Services dependency.
First release: Mar 28, 2026, 16 total releases.
Most recent release: Sep 26, 2026.
Appears in 0 app stacks.
0 sats / 0 zaps received in the past year.
Sats Received
Underlying data available via MCP: app_zaps, app_releases.
Zap Count
Underlying data available via MCP: app_zaps, app_releases.
Releases
- Sep 26, 2026 1.19.0## Highlights - New Language setting under Appearance; translations are welcome - Profiles keep their deactivation delay and apply their sync interval at once - Setup links show the full server address and are refused when it hides its host - Placing a geofence shows where you are - After a reboot with location off, tracking resumes once location is back on - Elevation, accuracy and altitude follow the Units setting; numbers use your device's decimal separator ## Which APK should I download?
More…
Pick the build that matches your device: - **arm64-v8a** - almost every phone from the last several years (recommended) - **armeabi-v7a** - older 32-bit devices - **universal** - one larger APK that runs on any device, if you are unsure Each comes in two flavors: **gms** uses Google Play Services for location, **foss** uses Android's own LocationManager and needs no Google services. ## Changes ### What's New - feat(i18n): add a language picker and a contributor guide for translations (#918) - feat(geofences): mark the user's position on the place-zone map (#893) ### Fixes - fix(connection): log only the status of a failed test connection (#920) - fix(permissions): remove the unused disclosure fallbacks (#919) - fix(service): post the resume notification when a background start is refused with location services off (#896) - fix(sync): apply a changed sync interval to the wait already running (#895) - fix(setup-link): show the full endpoint host on import and reject a link whose address hides it (#887) - fix(profiles): keep the deactivation delay when a lower-priority profile matches (#885) ### Improvements <details> <summary>18 changes</summary> - refactor(i18n): move notification and toast strings into Android resources (#917) - refactor(i18n): move units and number formatting into the catalog (#916) - refactor(i18n): move Logging, About and setup links into the catalog (#915) - refactor(i18n): move Backup & restore and Offline maps into the catalog (#914) - refactor(i18n): move Auto-export into the catalog (#911) - refactor(i18n): move Data management and Export & import into the catalog (#910) - refactor(i18n): move the Dashboard into the catalog (#909) - refactor(i18n): move Trip detail and Summary into the catalog (#908) - refactor(i18n): move Location history into the catalog (#907) - refactor(i18n): move Geofences into the catalog (#905) - refactor(i18n): move Authentication and mTLS into the catalog (#904) - refactor(i18n): move Authentication and mTLS into the catalog (#903) - refactor(i18n): move Request format into the catalog (#902) - refactor(i18n): move the Connection screen into the catalog (#901) - refactor(i18n): move Tracking & sync into the catalog (#899) - refactor(i18n): settings (#898) - refactor(i18n): move header titles, tab labels and dialog defaults in to the catalog (#897) - refactor(profiles): cut each condition caption to what the condition means (#882) </details> ### Maintenance - chore(i18n): sort the catalogs and check their order (#922) - ci: close issues waiting on a release when one is published (#894) ### Documentation <details> <summary>5 changes</summary> - docs(i18n): keep the language registration out of translation PRs (#926) - docs: refresh screenshots with a smoother demo track (#924) - docs(changelog): shorten the 51 notes (#921) - docs(landing): make F-Droid the primary download button (#906) - docs: credit contributors in the copyright lines (#883) </details> ### Dependencies <details> <summary>7 changes</summary> - fix(deps): update dependency org.jetbrains.kotlin:kotlin-gradle-plugin to v2.4.20 [security] (#788) - refactor(i18n): move notification and toast strings into Android resources (#917) - chore(deps): update github/codeql-action digest to 2892aa5 (#900) - chore(deps): bump qs from 6.15.3 to 6.16.0 in the npm_and_yarn group across 1 directory (#892) - chore(deps): bump the npm_and_yarn group across 1 directory with 3 updates (#891) - chore(deps): update dependency prettier to v3.9.8 (#890) - chore(deps): update dependency prettier to v3.9.7 (#884) </details> **Full Changelog**: https://github.com/dietrichmax/colota/compare/v1.18.0...v1.19.0 - Sep 18, 2026 1.18.0## Highlights - New design on every screen, and settings show their current value - Appearance can use your wallpaper colors (Android 12+) - Export and import share one screen, and an import shows what it adds first - Restoring a backup checks the file and password before replacing anything - A setup link says what it will change before you apply it - GeoJSON exports write one point per recording - Offline maps shows a running download when you return - Map credits show a custom tile server's own sources
More…
## Which APK should I download? Pick the build that matches your device: - **arm64-v8a** - almost every phone from the last several years (recommended) - **armeabi-v7a** - older 32-bit devices - **universal** - one larger APK that runs on any device, if you are unsure Each comes in two flavors: **gms** uses Google Play Services for location, **foss** uses Android's own LocationManager and needs no Google services. ## Changes ### What's New - feat(screenshots): capture docs and store screenshots automatically (#871) - feat(ui): the primitives, map layer and type scale the screens build on (#849) - feat(platform): sync state, bridge methods and the tokens beneath the screens (#847) ### Fixes - fix(inspector): format the time since last fix and name the power state in the location table (#876) - fix(map): credit a custom tile server with its own sources (#869) - fix(theme): keep controls visible with wallpaper colors (#866) - fix(export): show a spinner on Import a file while it parses (#864) ### Improvements <details> <summary>19 changes</summary> - refactor(auth): shorten the auth captions and show the hints only when they apply (#875) - refactor(connection): turn the certificate actions into rows (#874) - refactor(logging): turn the log file actions into rows and read the log oldest to newest (#873) - refactor(ui): cut six field hints to one line each (#868) - refactor(backup): move the backup captions into the form and make restore a row (#867) - fix(export): show a spinner on Import a file while it parses (#864) - refactor(data): turn the maintenance and delete actions into rows (#865) - refactor(ui): retire the pre-redesign fallbacks and pin the token rules (#861) - refactor(share): hand the setup link to the system sharesheet (#860) - refactor(settings): five groups, and every row carries its value (#859) - refactor(offline-maps): keep the download live across focus and name what each action costs (#858) - refactor(backup): verify the archive before offering restore (#857) - refactor(export): one screen for moving data in and out (#856) - refactor(data): every action says what it deletes (#855) - refactor(geofences): the same bones as the other tabs (#854) - refactor(tracking): fields first, and the profile that owns them (#853) - refactor(history): a daybook with one spine per day (#852) - refactor(dashboard): the map is the screen, the state reads as one line (#851) - refactor(connection): one chain from endpoint to certificate (#850) </details> ### Maintenance - docs(landing): draw cards and chips as fills, take radii from the shared tokens and keep hero text white in dark mode (#880) ### Dependencies <details> <summary>9 changes</summary> - feat(screenshots): capture docs and store screenshots automatically (#871) - fix(deps): update dependency org.bouncycastle:bcprov-jdk18on to v1.86 (#878) - fix(deps): update dependency org.robolectric:robolectric to v4.17 (#879) - chore(deps): update github/codeql-action digest to 1c5b675 (#877) - fix(deps): update react-native monorepo to v0.87.1 (#626) - chore(deps): update dependency @types/react-test-renderer to v19.3.0 (#862) - refactor(ui): retire the pre-redesign fallbacks and pin the token rules (#861) - feat(ui): the primitives, map layer and type scale the screens build on (#849) - feat(platform): sync state, bridge methods and the tokens beneath the screens (#847) </details> **Full Changelog**: https://github.com/dietrichmax/colota/compare/v1.17.0...v1.18.0 - Sep 12, 2026 1.17.0## Highlights - A notification alerts you when tracking stops on its own - Auto-export now deletes old files on storage providers that rename them - Unplugging at a low battery no longer restarts tracking in a loop - Pause zones no longer take hours to engage when a tracking profile is active - The tracking notification shows the state and the sync queue, never your location, zone or profile name - A low-battery stop says tracking resumes when charging - Sync now no longer uploads a location twice
More…
## Which APK should I download? Pick the build that matches your device: - **arm64-v8a** - almost every phone from the last several years (recommended) - **armeabi-v7a** - older 32-bit devices - **universal** - one larger APK that runs on any device, if you are unsure Each comes in two flavors: **gms** uses Google Play Services for location, **foss** uses Android's own LocationManager and needs no Google services. ## Changes ### What's New - feat(i18n): add the i18next foundation and a pilot screen (#650) ### Fixes - fix(sync): run one sync pass at a time (#843) - fix(gradle): resync the wrapper JAR and check it in CI (#657) - fix(docs): correct three screen paths that name screens the app does not have (#659) - fix(export): let retention recognise the files auto-export wrote (#653) - fix(geofence): entry delay cap (#652) - fix(battery): stop the recovery worker restarting into another battery stop (#651) - fix(notifications): make an unexpected stop audible (#648) ### Improvements - refactor(notifications): show tracking state and queue instead of coordinates (#842) ### Maintenance - chore(docs): replace qrcode with uqr (#655) - chore(docs): drop the unused @mdx-js/react declaration (#654) - chore(renovate): exempt the docusaurus-owned deps from abandonment reporting (#656) ### Documentation - docs: fix stale screen paths and rename the gps settings page (#658) ### Dependencies <details> <summary>7 changes</summary> - chore(deps): update github/codeql-action digest to b96794f (#831) - chore(deps): update actions/setup-java digest to de7274f (#830) - chore(deps): lock file maintenance (#770) - chore(docs): replace qrcode with uqr (#655) - chore(docs): drop the unused @mdx-js/react declaration (#654) - chore(deps): lock file maintenance (#635) - feat(i18n): add the i18next foundation and a pilot screen (#650) </details> **Full Changelog**: https://github.com/dietrichmax/colota/compare/v1.16.0...v1.17.0 - Sep 3, 2026 1.16.0## Highlights - Settings no longer reset to defaults when they fail to load - The privacy indicator no longer lights up while GPS is off - A stationary profile no longer switches on while you are moving - Auto-export works on cloud folders and survives a restore - Backup files get a date and time in their name - Offline map areas are no longer lost by a failed read - Uploads to a local server recover from DNS hiccups on their own - Subscribe to new releases at colota.app/releases.xml
More…
## Which APK should I download? Pick the build that matches your device: - **arm64-v8a** - almost every phone from the last several years (recommended) - **armeabi-v7a** - older 32-bit devices - **universal** - one larger APK that runs on any device, if you are unsure Each comes in two flavors: **gms** uses Google Play Services for location, **foss** uses Android's own LocationManager and needs no Google services. ## Changes ### What's New - feat(backup): add date and time to the backup filename (#645) - feat(docs): publish an rss feed of the releases page (#640) ### Fixes - fix(profiles): require fixes before a stationary profile activates (#641) - fix(map): stop offline area bounds being lost on a failed read (#644) - fix(sync): resolve the private-host check on every call (#639) - fix(service): stop lighting the location indicator while paused (#638) - fix(backup): resume tracking after a failed restore (#634) - fix(backup): re-arm auto-export after a restore (#633) - fix(export): verify the auto-export copy by bytes written (#632) - fix(export): stop treating a failed page read as the end of the data (#631) - fix(logging): mask token-like path segments and the invalid-URL test message (#628) - fix(settings): stop a failed settings read from wiping every setting (#627) ### Maintenance - chore(sync): log every periodic sync tick (#629) - chore(android): pin AGP to the version that actually builds (#624) ### Dependencies <details> <summary>6 changes</summary> - chore(deps): bump fast-uri from 3.1.5 to 3.1.7 in the npm_and_yarn group across 1 directory (#646) - chore(deps): update actions/deploy-pages digest to 368f825 (#642) - chore(deps): update actions/setup-java action to v6 (#637) - chore(deps): update softprops/action-gh-release digest to efb3536 (#630) - chore(deps): update dependency sharp to v0.35.4 (#625) - chore(android): pin AGP to the version that actually builds (#624) </details> **Full Changelog**: https://github.com/dietrichmax/colota/compare/v1.15.0...v1.16.0 - Aug 29, 2026 1.15.0## Highlights - Map requests identify the app by name and version, never the device or user - Tracking no longer refuses to start when notifications are turned off - Geofence heartbeat keeps recording while the phone sleeps - Tracking restarts itself when Android kills it in the background - Notes saved on the map no longer disappear when you switch tabs - Every permission prompt is preceded by the location disclosure ## Which APK should I download?
More…
Pick the build that matches your device: - **arm64-v8a** - almost every phone from the last several years (recommended) - **armeabi-v7a** - older 32-bit devices - **universal** - one larger APK that runs on any device, if you are unsure Each comes in two flavors: **gms** uses Google Play Services for location, **foss** uses Android's own LocationManager and needs no Google services. ## Changes ### What's New - feat(service): restart tracking the phone killed while the app was closed (aff0815) - feat(map): identify the app to tile servers with a User-Agent (#601) ### Fixes - fix(permissions): keep every runtime prompt behind the location disclosure (#623) - fix(app): wait for hydrated settings before reviving the service (#620) - fix(service): say the location stream never started instead of printing uptime (#619) - fix(service): label a held tracking service as paused, not stopped (#613) - fix(sync): collapse the HTTP error body before logging it (#611) - fix(inspector): keep notes saved on the map after switching tabs (#610) - fix(service): promote a lightweight wake on a cold service to a full start (#609) - fix(app): restart a dead tracking service when the app comes to the foreground (#607) - fix(service): read service liveness instead of the tracking flag in the bridge guards (#606) - fix(geofence): arm the zone heartbeat with an alarm instead of a coroutine (#605) - fix(permissions): start tracking when notifications are denied (#603) - fix(service): keep the diagnostic running through pauses (#602) ### Maintenance - chore(docs): correct the payload and queue claims in the API reference (#612) ### Documentation - docs: describe how tracking recovers after Android kills the service (#608) ### Dependencies <details> <summary>3 changes</summary> - chore(deps): update github/codeql-action digest to cdf488f (#617) - chore(deps): lock file maintenance (#614) - chore(deps): update github/codeql-action digest to db488dd (#604) </details> **Full Changelog**: https://github.com/dietrichmax/colota/compare/v1.14.0...v1.15.0 - Aug 18, 2026 1.14.0## Highlights - Tracking restarts itself when the phone stops delivering locations - Tracking no longer gets stuck on Pause after a geofence is deleted - Geofence heartbeat records points offline and when the server is unreachable - Merge adjacent trips from the Trips selection bar, or split one by tapping the map - Elevation gain and loss count less altitude noise as climb - Trips show an average speed instead of 0 km/h when points carry no speed - Large point counts show as 123K or 2.0M## Which APK should I download?
More…
Pick the build that matches your device: - **arm64-v8a** - almost every phone from the last several years (recommended) - **armeabi-v7a** - older 32-bit devices - **universal** - one larger APK that runs on any device, if you are unsure Each comes in two flavors: **gms** uses Google Play Services for location, **foss** uses Android's own LocationManager and needs no Google services. ## Changes ### What's New - feat(trips): merge and split trips manually (#582) ### Fixes - fix(geofence): send the pause-zone heartbeat past the sync interval (#594) - Fix/motionless restore guard (#584) - fix(service): skip the boot restart when the service is already running (#597) - fix(trips): smooth altitude over a time window before summing elevation (#591) - fix(tracking): re-register location updates when the active stream goes quiet (#586) - fix(trips): derive average speed from position when no fix reports one (#580) - fix(geofence): record the pause-zone heartbeat even when it cannot be sent (#579) - fix(settings): abbreviate stat counts that overflow their column (#577) - fix(settings): stop the accuracy filter hint promising more than it filters (#573) ### Maintenance - chore(geofence): log fixes dropped inside an active pause zone (#598) - test(backup): pin the backup format with a known-answer fixture (#587) - ci: read the Node version from .nvmrc (#578) - chore(renovate): drop config:recommended, the bot already sets the baseline (#576) - ci: split autolabeling out of the release draft update (#575) - ci: use the setup-build composite action in the release workflows (#574) ### Documentation <details> <summary>3 changes</summary> - docs: derive the releases page from git tags (#595) - docs: tidy footer links and add a /download redirect (#593) - docs: generate a releases page from the store changelogs (#592) </details> ### Dependencies <details> <summary>4 changes</summary> - docs: generate a releases page from the store changelogs (#592) - fix(deps): update dependency org.bouncycastle:bcprov-jdk18on to v1.85.2 (#585) - Chore/rn 0.87 (#588) - chore(deps): update github/codeql-action digest to ff2f1c6 (#581) </details> **Full Changelog**: https://github.com/dietrichmax/colota/compare/v1.13.0...v1.14.0 - Aug 11, 2026 1.13.0## Highlights - The Stationary profile now records a point at each interval while the device is still - Auto-export file names are now customisable with {date}, {time} and {device} placeholders - Add {device} to the file name to keep retention per device model when several phones share an export folder - Stationary heartbeat points no longer show up as 0 m trips in the history - Delete a single point by tapping it on the map and using the trash icon in its popup ## All changes - feat(history): delete a single point from the map popup by @dietrichmax (#570)
More…
- Chore/release notes structure by @dietrichmax (#568) ### What's New - feat(export): customisable auto-export file names by @dietrichmax (#566) ### Fixes - fix(trips): stop stationary heartbeat runs becoming 0m trips by @dietrichmax (#569) - fix(profiles): heartbeat a point while a Stationary profile is active by @dietrichmax (#563) ### Maintenance - chore(release): 1.13.0 (versionCode 44) by @dietrichmax (#572) - ci: restructure release notes and fix two drafting bugs by @dietrichmax (#567) ### Dependencies <details> <summary>13 changes</summary> - chore(release): 1.13.0 (versionCode 44) by @dietrichmax (#572) - chore(deps): apply non-breaking npm audit fixes by @dietrichmax (#571) - Revert "fix(deps): update react-native monorepo to v0.86.2" by @dietrichmax (#564) - fix(deps): update dependency org.bouncycastle:bcprov-jdk18on to v1.85 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#543) - chore(deps): update dependency @react-native-community/cli-platform-android to v20.2.0 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#540) - chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @[dependabot[bot]](https://github.com/apps/dependabot) (#559) - chore(deps): update actions/setup-node action to v7 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#558) - fix(deps): update react-native monorepo to v0.86.2 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#556) - chore(deps): update dependency @types/react to v19.2.18 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#555) - chore(deps): update actions/setup-java digest to b6effb0 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#552) - chore(deps): update actions/labeler action to v7 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#557) - chore(deps): update release-drafter/release-drafter digest to 34d8067 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#554) - chore(deps): update github/codeql-action digest to 5595cca by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#553) </details> ## New Contributors * No new contributors ## Which APK should I download? Pick the build that matches your device: - **arm64-v8a** - almost every phone from the last several years (recommended) - **armeabi-v7a** - older 32-bit devices - **universal** - one larger APK that runs on any device, if you are unsure **Full Changelog**: https://github.com/dietrichmax/colota/compare/v1.12.2...v1.13.0 - Aug 5, 2026 1.12.2## Bug Fixes - fix(dashboard): reflect real sync status instead of a separate health probe by @dietrichmax (#549) - fix(service): stop a destroyed service instance leaking location updates by @dietrichmax (#547) - Fix/restored pause hold by @dietrichmax (#532) - fix(motion): resync detector on profile stationary-entry by @0LGuenth (#530) - fix(location): only latch a cold-start pause from a fresh last-known fix by @dietrichmax (#529) - fix(location): force high accuracy on FOSS fresh-fix probe by @dietrichmax (#525) - fix(map): use a fixed zoom for a single point so the map doesn't overzoom by @dietrichmax (#523)
More…
## Maintenance - chore(release): 1.12.2 (versionCode 43) by @dietrichmax (#550) - Pin dependencies fixed by @dietrichmax (#535) - chore(deps): fix non-major npm audit vulnerabilities by @dietrichmax (#534) ## Dependencies <details> <summary>23 changes</summary> - fix(deps): update dependency org.bouncycastle:bcprov-jdk18on to v1.85 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#543) - chore(deps): update dependency @react-native-community/cli-platform-android to v20.2.0 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#540) - chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @[dependabot[bot]](https://github.com/apps/dependabot) (#559) - chore(deps): update actions/setup-node action to v7 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#558) - fix(deps): update react-native monorepo to v0.86.2 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#556) - chore(deps): update dependency @types/react to v19.2.18 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#555) - chore(deps): update actions/setup-java digest to b6effb0 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#552) - chore(deps): update actions/labeler action to v7 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#557) - chore(deps): update release-drafter/release-drafter digest to 34d8067 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#554) - chore(deps): update github/codeql-action digest to 5595cca by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#553) - chore(release): 1.12.2 (versionCode 43) by @dietrichmax (#550) - chore(deps): update dependency @react-native-community/cli-platform-ios to v20.2.0 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#541) - fix(deps): update patch updates by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#538) - chore(deps): update dependency @react-native-community/cli to v20.2.0 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#539) - chore(deps): update dependency eslint to v9.39.5 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#536) - chore(deps): update babel monorepo to v8 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#501) - fix(deps): update docusaurus monorepo to v3.10.2 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#537) - chore(deps): update dependency typescript to v7 by @[mxdcodes-bot[bot]](https://github.com/apps/mxdcodes-bot) (#520) - Pin dependencies fixed by @dietrichmax (#535) - chore(deps): bump the npm_and_yarn group across 1 directory with 3 updates by @[dependabot[bot]](https://github.com/apps/dependabot) (#533) - chore(deps): fix non-major npm audit vulnerabilities by @dietrichmax (#534) - chore(deps): bump svgo from 3.3.3 to 3.3.4 in the npm_and_yarn group across 1 directory by @[dependabot[bot]](https://github.com/apps/dependabot) (#531) - chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @[dependabot[bot]](https://github.com/apps/dependabot) (#527) </details> ## New Contributors * @0LGuenth made their first contribution in #530 ## Which APK should I download? Pick the build that matches your device: - **arm64-v8a** - almost every phone from the last several years (recommended) - **armeabi-v7a** - older 32-bit devices - **universal** - one larger APK that runs on any device, if you are unsure Choose a **gms** build if you use Google Play Services (better for most users) or a **foss** build for no Google dependencies. **Full Changelog**: https://github.com/dietrichmax/colota/compare/v1.12.1...v1.12.2 - Jul 7, 2026 1.12.0## New Features - feat(export): columnar MultiPoint GeoJSON export (#515) - Feat/annotation visual hints (#511) - ci: scan FOSS in CodeQL, document release APKs, dedupe non-release setup (#469) - feat(settings): share full setup as a colota://setup link (#468) ## Bug Fixes - fix(geofence): resume tracking after leaving a geofence zone (#509)
More…
- fix(tracking): restart tracking after app update (#486) ## Maintenance - chore(release): bump version to 1.12.0 (#517) - chore(renovate): group react-native monorepo updates into one PR (#479) - chore(ci): tidy release-drafter and autolabel PRs by title (#467) - ci: run docs-check and build-check when their workflows change (#490) ## Dependencies <details> <summary>11 changes</summary> - chore(release): bump version to 1.12.0 (#517) - fix(deps): update dependency com.google.android.gms:play-services-location to v21.4.0 (#506) - chore(deps): update dependency prettier to ^3.9.0 (#512) - chore(deps): pin dependency @types/react to 19.2.17 (#500) - chore(deps): update dependency prettier to v3.9.0 (#496) - chore(deps): remove redundant root react pins and overrides (#491) - fix(deps): update react monorepo to v19.2.7 (#456) - fix(deps): update react-native to v0.86.0 (#485) - chore(deps): bump launch-editor from 2.13.2 to 2.14.1 in the npm_and_yarn group across 1 directory (#478) - chore(deps): update dependency sharp to ^0.35.0 (#462) - chore(deps): update dependency prettier to v3.8.4 (#455) - chore(deps): update dependency node to v24 for docs (#489) - chore(deps): update actions/checkout action to v7 (#488) </details> ## Which APK should I download? Pick the build that matches your device: - **arm64-v8a** - almost every phone from the last several years (recommended) - **armeabi-v7a** - older 32-bit devices - **universal** - one larger APK that runs on any device, if you are unsure Choose a **gms** build if you use Google Play Services (better for most users) or a **foss** build for no Google dependencies. **Full Changelog**: https://github.com/dietrichmax/colota/compare/v1.11.0...v1.12.0 - May 31, 2026 1.10.0## New Features - **[Automation triggers (Tasker etc.)](https://colota.app/docs/guides/automation#broadcast-intents)** - Start and stop tracking from broadcast intents, so apps like Tasker can drive Colota. - **[File logging](https://colota.app/docs/guides/troubleshooting#viewing-and-exporting-logs)** - The Activity Log is now "Logging" and adds a File tab that captures logs to a file for bug reports. - **Multi-select trips** - Long-press a trip in Location History to enter selection mode, then bulk export or delete the ones you pick. - **Trip detail navigation** - The map track now matches the trip's title color, and prev/next arrows step between trips without leaving the detail screen. ## Bug Fixes - **Traccar sync over GET** - Timestamps were sent in scientific notation (e.g. `1.78e9`), which Traccar's OsmAnd endpoint couldn't parse, so it dropped the request. They're now sent as plain integers.
More…
- **Large file imports** - Importing location history from files larger than a few KB no longer fails. - **Motion-detection freezes** - Accelerometer processing moved off the main thread, fixing stutters and freezes on slower devices. - **Battery charging status** - The Data tab now reports the correct charging state. - **Backup password field** - Switched to hold-to-reveal. **Full Changelog**: https://github.com/dietrichmax/colota/compare/v1.9.0...v1.10.0 - May 2, 2026 1.7.1## Bug Fixes - **Stuck inside geofence after leaving** - Tracking no longer gets stuck after the device physically leaves a geofence with motionless or wifi pause active. (#329) - **Auto-export notification PendingIntent** - Hardened against implicit-intent hijacking **Full Changelog**: https://github.com/dietrichmax/colota/compare/v1.7.0...v1.7.1
- Apr 30, 2026 1.7.0## New Features - **F-Droid release** - The FOSS variant is now [published on F-Droid](https://f-droid.org/de/packages/com.Colota/) in addition to IzzyOnDroid and GitHub Releases - **Configurable auto-export time** - Pick when daily, weekly or monthly auto-exports run instead of the fixed time, backed by AlarmManager for reliable wakeups (#291) - **Location Services warning** - Dashboard now shows an explicit warning when the system Location toggle is off, so tracking failures aren't silent (#312) - **Per-trip delete** - Remove an individual trip from the history detail screen without wiping the whole database - **Settings reorganization** - Settings is grouped into categories with focused sub-screens instead of one long list ## Improvements
More…
- **Profile switching at low speeds** - Speed and movement-based tracking profiles now react during slow walking and indoor drift instead of waiting for the OS distance filter to release a fix (#304) - **Tappable connection status** - Dashboard connection status row now links directly into the Connection settings screen - **FOSS variant: GPS-only** - The FOSS build now uses `GPS_PROVIDER` exclusively, dropping the Network provider for a stricter dependency-free behavior - **Geofence heartbeat accuracy** - Synthetic heartbeat and exit-anchor positions no longer skew accuracy stats (#299) - **Geofence editor clarity** - Heartbeat and pause sub-options now indicate they depend on "Don't record in zone" being enabled - **Stationary heartbeat reliability** - Heartbeat fires more reliably when the device is stationary (#284) ## Bug Fixes - **Battery-critical button stuck** - "Start Tracking" button now refreshes immediately when the charger is plugged in or unplugged, instead of staying disabled until you navigate away (#311) - **Map tile errors no longer fatal** - A failed tile load is treated as a warning instead of killing the whole map session - **GeoPulse health check** - Health probe uses the correct `/api/health` endpoint (#300) - **Database migration crash** - v3 schema migration completes faster, fixing first-launch hangs after upgrading - **Empty day in history** - Map keeps mounted state on days with no trips so auto-fit works when you next select a day with data (#275) - **Sub-screen bottom inset** - Settings sub-screens no longer hide content behind the system bar **Full Changelog**: https://github.com/dietrichmax/colota/compare/v1.6.1...v1.7.0 - Apr 17, 2026 1.6.1## Improvements - **Heartbeat position** - Geofence heartbeat now sends the zone center as a synthetic position instead of waking GPS for a real fix, reducing battery usage (#282) - **GPS stall diagnostics** - Tracking service logs time-since-last-fix every 5 minutes in exported activity logs to help diagnose silent GPS stalls - **WiFi resume** - Reduced WiFi resume debounce from 15s to 2s for snappier geofence zone exit - **Map performance** - Same-color track segments are merged into a single GeoJSON feature for faster map rendering ## Bug Fixes - **Sync condition in heartbeat** - Heartbeat and zone entry flush now respect the configured sync condition (Wi-Fi, SSID, VPN) instead of always sending over any available network
More…
- **Pause state restore** - WiFi pause now correctly blocks GPS from starting on service restart; motionless countdown is also correctly resumed when the timeout had not yet elapsed - **Android 11 crash** - Fixed crash caused by API 31+ `NetworkCallback` constructor and API 33+ `RECEIVER_NOT_EXPORTED` flag (#288) - **Tab bar safe area** - Fixed duplicate tab bar on Android 14 (#283) - **Back arrow on tabs** - Fixed back arrow incorrectly showing on tab root screens - **Log export** - Fixed activity log export missing entries after a process restart - **Today button** - Improved tap reliability with a larger hit target (#274) - **Test connection** - Fixed protocol validation and private host detection to use native DNS resolution **Full Changelog**: https://github.com/dietrichmax/colota/compare/v1.6.0...v1.6.1 - Apr 9, 2026 1.6.0## New Features - **Bottom tab bar** - Replaced the quick access grid with a persistent bottom tab bar for faster navigation between Dashboard, History, Geofences and Settings - **Dashboard route** - Today's tracked route is now shown on the dashboard map with a toggle button - **Daily distance in calendar** - Calendar day cells now display the total distance tracked that day - **Stationary heartbeat** - Geofence pause zones can now send periodic location updates to the server at a configurable interval to keep the device visible while paused - **Flexible sync conditions** - Replaced the Wi-Fi-only toggle with granular sync options: Any, Wi-Fi, specific SSID or VPN - **URL template variables** - Endpoint URLs now support date-based variables (`%DATE`, `%YEAR`, `%MONTH`, `%DAY`) for hive-partitioned storage - **Battery critical status** - Dashboard and notification now show when tracking stopped due to low battery (#261) - **Android 17 support** - Added ACCESS_LOCAL_NETWORK permission for local server sync on Android 17
More…
- **Unlimited retries** - Failed uploads are now retried indefinitely instead of stopping after a limit ## Bug Fixes - **Dark mode persistence** - Fixed dark mode toggle not persisting across app restarts (#276) - **Map auto-zoom** - Fixed intermittent auto-zoom failure by deferring fitBounds to the next frame (#275) - **Touch targets** - Improved touch target sizes and navigation render performance (#274) - **Dashboard scroll freeze** - Fixed frozen touch events on the dashboard after scrolling - **Pause reason display** - Fixed WiFi/motionless pause reason not showing on dashboard map when app resumes - **Sync flush on zone entry** - Fixed sync queue not flushing when entering a geofence pause zone (#269) - **API template reset** - Fixed API template resetting to "custom" when editing custom field values - **Activity recreation crash** - Fixed fragment restoration crash on activity recreation ## Documentation - **URL template variables** - Documented date-based endpoint variables for hive partitioning - **Battery critical** - Documented battery critical dashboard status and notification behavior - **Home Assistant** - Updated integration guide for the custom Home Assistant component - **Deep link generator** - Interactive deep link generator on the setup docs page **Full Changelog**: https://github.com/dietrichmax/colota/compare/v1.5.1...v1.6.0 - Apr 1, 2026 1.5.1## Bug Fixes - **Stale speed profile** - Fixed speed profiles staying stuck when stationary because the distance filter was discarding location updates before they reached the profile logic. - **Geofence map position** - Fixed map not updating position while inside a geofence pause zone - **Anchor point ordering** - Fixed phantom location jump on zone exit by backdating the anchor point timestamp to sort before the first real GPS fix. ## Improvements - **Activity Log** - New screen in Settings for viewing, filtering and exporting app logs. Includes level filtering, search, auto-scroll with following indicator and share/export. - **Always-on logging** - Native and JS logs are now always collected in a ring buffer (2000 entries) without requiring debug mode
More…
- **Log privacy** - Stripped coordinates from debug logs to protect user privacy when sharing logs - **Notification permission** - Clarified that notification permission is required for the foreground service to start, including after reboot ## Documentation - **Notification permission** - Added notification permission requirement to quick start, troubleshooting, permissions guide and disclosure modal - **GPS settings** - Removed obsolete "Pause GPS when stationary" toggle (now handled via tracking profiles and geofences) - **Geofencing** - Updated anchor point documentation with timestamp behavior - **API reference** - Corrected anchor point description and added timestamp details - **Troubleshooting** - Added "Tracking doesn't start after reboot" section and Samsung-specific battery setting **Full Changelog**: https://github.com/dietrichmax/colota/compare/v1.5.0...v1.5.1 - Mar 28, 2026 1.5.0## New Features - **Traccar JSON POST** - Added native JSON POST support for Traccar backends with per-backend health checks - **Per-zone WiFi pause** - Pause GPS when connected to WiFi inside geofence zones, with a dedicated geofence editor screen - **Stationary tracking profile** - New profile condition type that activates when the device is stationary - **Offline maps** - Download and manage offline map packs with bounding box picker, size estimates and progress tracking - **Custom tile server** - Configure a self-hosted tile server URL, removing the dependency on the default maps.mxd.codes instance - **Self-signed certificates** - Support self-signed TLS certificates and HTTP for local/private network servers - **Home screen shortcuts** - Start and stop tracking directly from Android app shortcuts - **Geofence entry delay** - Keep recording for a configurable delay on zone entry for reliable arrival detection
More…
- **Monochrome adaptive icon** - Added monochrome icon layer for Android themed icon support - **Interactive line charts** - Replaced bar charts with interactive SVG line charts on the trip detail screen - **WiFi/motionless pause reason** - Dashboard map banner now shows why tracking is paused ## Bug Fixes - **Pause zone marker** - Fixed marker icon staying gray after exiting a pause zone ## Maintenance - **UI redesign** - Redesigned status indicators and trip list cards, replaced colored left borders with cleaner status indicators - **UI consistency** - Standardized UI tokens and fixed visual inconsistencies across screens - **Self-hosted tile server** - Migrated from OpenFreeMap to a self-hosted tileserver-gl instance, removing an external dependency ## Documentation - **Self-hosting guide** - Added guide for self-hosting tileserver-gl with local styles and fonts - **Tracking profiles guide** - Added priority guidance and example profiles - **Privacy policy** - Updated for v1.5.0 features including WiFi pause, motionless detection and self-signed certificate support - **Alternatives page** - Added alternatives comparison, integrations overview and FAQ improvements **Full Changelog**: https://github.com/dietrichmax/colota/compare/v1.4.0...v1.5.0