Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,346 changes: 673 additions & 673 deletions LICENSE

Large diffs are not rendered by default.

52 changes: 29 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,35 +54,41 @@

## Features

### Core Compass & Navigation
- Displays clear cardinal directions with both **magnetic north** and **true north**
- Live **GPS location tracking** on _OpenStreetMap_
### Compass & Navigation
- Accurate compass with both **magnetic north** and **true north**
- Sensor fusion for improved accuracy (_accelerometer_, _magnetometer_, _gyroscope_)
- Shows magnetic field strength in **µT**
- Displays real-time magnetic field strength (**µT**)
- Live **GPS location tracking** on OpenStreetMap
- Keeps screen on during navigation

### Tracking & Waypoints
- **Real-time track recording** on the map (start, pause, resume)
- Smooth polyline rendering for clear path visualization
- Reliable tracking using Android’s native location APIs

### Tracking & GPX
- **Real-time track recording** directly on the map (start, pause, resume)
- **Track management screen** to view and organize all saved tracks
### Track Analysis & Management
- View and organize all saved tracks in one place
- **Track statistics**:
- Distance, duration, average speed
- Elevation gain/loss
- Min/max altitude
- Smooth polyline rendering for recorded tracks
- **Waypoint recording** during tracking
- **GPX export support** using system file picker
- **Share tracks** via Android share sheet
- **Star and sort tracks** (favorites, organization)
- Distance, duration, average speed
- Elevation gain/loss
- Min/max altitude
- **Star and sort tracks** for easy organization

### Export & Sharing
- Export tracks as **GPX files** using the system file picker
- Share tracks easily via Android share sheet

### App Experience
- Light and dark theme (AMOLED Dark also supported) support via Settings
- Keeps screen on during navigation
- Custom bottom bar for ease navigation
- Light, Dark, and **AMOLED** themes
- Landscape orientation support
- Built with Jetpack Compose and Material Design
- No ads, no in-app purchases, no tracking
- Clean UI with Jetpack Compose (Material Design)
- Custom bottom bar for easy navigation

### Privacy First
- **No ads, no tracking, no in-app purchases**
- No Google Play Services dependency
- Uses Android’s native location APIs
- Runs on Android 6.0+
- Uses native Android location APIs
- Supports Android 6.0+

[Learn more on the website](https://compassmb.github.io/MBCompass-site/#features)

Expand Down Expand Up @@ -127,7 +133,7 @@ MBCompass only requests the minimum permissions required for navigation and trac

- **Notification (Android 13+)**
- Used to show foreground service notifications during active tracking
- Enables track progress visibility and quick controls (start/pause/stop)
- Enables track progress visibility and quick controls (pause/resume)

- **Activity Recognition (Android 10+)**
- Used to improve tracking accuracy by detecting user movement state (e.g., walking)
Expand Down
4 changes: 2 additions & 2 deletions fastlane/metadata/android/en-US/changelogs/1.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
- Clear cardinal direction with degrees
- Landscape orientation support
- Clear cardinal direction with degrees
- Landscape orientation support
- Dark only theme
2 changes: 1 addition & 1 deletion fastlane/metadata/android/en-US/changelogs/2.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
- Display Magnetic Strength in µT.
- Display Magnetic Strength in µT.
- UI Improvements.
12 changes: 11 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,14 @@ kotlin.code.style=official
# Enables namespacing of each library's R class so that its R class includes only the
# resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library
android.nonTransitiveRClass=true
android.nonTransitiveRClass=true
android.defaults.buildfeatures.resvalues=true
android.sdk.defaultTargetSdkToCompileSdkIfUnset=false
android.enableAppCompileTimeRClass=false
android.usesSdkInManifest.disallowed=false
android.uniquePackageNames=false
android.dependency.useConstraints=true
android.r8.strictFullModeForKeepRules=false
android.r8.optimizedResourceShrinking=false
android.builtInKotlin=false
android.newDsl=false
6 changes: 3 additions & 3 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# SPDX-License-Identifier: GPL-3.0-or-later

[versions]
agp = "8.13.1"
agp = "9.1.1"
datastorePreferences = "1.2.0"
fragmentKtx = "1.8.9"
hiltAndroid = "2.56.2"
kotlin = "2.2.0"
kotlin = "2.2.10"
coreKtx = "1.17.0"
junit = "4.13.2"
hiltNavigationCompose = "1.3.0"
Expand All @@ -15,7 +15,7 @@ lifecycleRuntimeKtx = "2.10.0"
activityCompose = "1.12.2"
composeBom = "2026.02.01"
navigationCompose = "2.9.6"
kspVersion = "2.2.0-2.0.2"
kspVersion = "2.3.2"
kotlinxSerializationJson = "1.9.0"
osmdroidAndroid = "6.1.20"
uiViewbinding = "1.10.0"
Expand Down
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=20f1b1176237254a6fc204d8434196fa11a4cfb387567519c61556e8710aed78
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
distributionSha256Sum=b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
Loading