What's Changed
🏗️ Features
- feat(map): persist and restore selected map type by @jamesarich in #2758
- Extract
MainAppBar
to its own file by @poliver in #2788 - Add modern battery info component by @poliver in #2801
- Improve top-level nav icons/labels by @poliver in #2790
- Clean up Connections UI, fix some friction with Bluetooth by @poliver in #2807
- feat(navigation): Add deep links to other screens by @jamesarich in #2811
- feat(map): add support for GeoJSON map layers by @jamesarich in #2827
MeshService
: extract basic packet handling by @poliver in #2813- Relocate radio config to new top-level Settings screen by @poliver in #2834
- feat(ui): display app version in connections screen by @jamesarich in #2835
- feat(logging): Remove redundant Report Bug button and related functionality by @jamesarich in #2836
NodeDetail
list items by @poliver in #2839- refactor(UI): Use animateFloatingActionButton for FAB animations by @jamesarich in #2844
- ci(release): update release workflow to tag based versioning by @jamesarich in #2838
- More migration to top-level Settings by @poliver in #2903
- Componentize traceroute button by @poliver in #2965
- refactor(map): replace VerticalFloatingToolbar with Horizontal by @jamesarich in #2968
- feat(theme): add expressive motion to theme by @jamesarich in #2967
- Move "show app intro" to phone settings by @poliver in #2984
- Migrate App Intro to Navigation 3 by @poliver in #2983
- Move remaining 3-dot menu items to Settings by @poliver in #2985
- feat #2570, Add ExportAll to csv by @DaneEvans in #2989
- move debug export to using URI by @DaneEvans in #2991
- add times to traceroute displays. by @DaneEvans in #2999
- Feat/2932 env metrics radiation by @DaneEvans in #2993
- feat #2810 - fix export config file name by @DaneEvans in #3000
- feat(map): allow map to follow phone bearing by @jamesarich in #3002
- feat(map): keep screen on when location tracking is enabled by @jamesarich in #3003
🛠️Fixes
- Add prefs repos and DI providers by @poliver in #2760
- Migrate custom emoji prefs to repo pattern by @poliver in #2767
- Migrate analytics prefs to repo pattern by @poliver in #2766
- Migrate
SharedPreferencesCustomTileProviderRepository
prefs to repo pattern by @poliver in #2772 - Migrate
RadioInterfaceService
prefs to repo pattern by @poliver in #2768 - Migrate map consent prefs to repo pattern by @poliver in #2771
- Migrate
MeshService
prefs to repo pattern by @poliver in #2769 - Migrate
MainActivity
prefs to repo pattern by @poliver in #2770 - Migrate
UiState
prefs to repo by @poliver in #2775 - Migrate (mostly) maps prefs to repo by @poliver in #2776
- Migrate remaining prefs usages to repo by @poliver in #2777
- docs: add release process documentation by @jamesarich in #2774
- Don't change nav graph start destination by @poliver in #2799
- Add SnackBarHost by @poliver in #2800
- Add share FAB button to conversations screen by @poliver in #2818
- Fix label: Messages -> Conversations by @poliver in #2822
- refactor(map)!: move initial map zoom logic to onMapLoaded by @jamesarich in #2821
- fix(contact-import): streamline shared contact handling by @jamesarich in #2828
- fix(sharing): don't auto-launch scanner after perm check by @jamesarich in #2832
- refactor(service): initialize PacketHandler lazily by @jamesarich in #2833
- refactor(connections): use collectAsStateWithLifecycle for UI state by @jamesarich in #2850
- ci(release): fix secrets handling in release workflow by @jamesarich in #2851
- fix(ci): Update track values in release workflow by @jamesarich in #2853
- docs!: update release process to reflect automation enhancements by @jamesarich in #2852
- refactor: clean up deprecations using recommendations by @jamesarich in #2859
- fix(release): release notes path by @jamesarich in #2861
- fix(ci): release status condition in workflow by @jamesarich in #2862
- Added Markdown Text by @RCGV1 in #2860
- fix(ci): release whatsnew path by @jamesarich in #2863
- Revert "refactor: clean up deprecations using recommendations" by @jamesarich in #2864
- fix(ci): releasenotes path? by @jamesarich in #2867
- fix(ci): release notes 3 by @jamesarich in #2868
- chore(release): simplify changelog generation for Play Store by @jamesarich in #2869
- fix(release): use correct GitHub release URL for Play Store whatsnew by @jamesarich in #2870
- refactor(analytics): consolidate consent logic, move to Settings by @jamesarich in #2885
- chore(datadog): Disable automatic compose instrumentation by @jamesarich in #2884
- #2711 move map controls up by @DaneEvans in #2886
- 2712 add format types note to custom layers by @DaneEvans in #2891
- #2894 - add responsiveness to the map scalebar by @DaneEvans in #2895
- #2887 Fix Paxcounter thresholds to take ints by @DaneEvans in #2898
- Fix #2906 - remove Lora.ignore_incoming by @DaneEvans in #2925
- Fix #2918 crash on hw model by @DaneEvans in #2927
- feat: Support the
add
export method on channel url/qr by @jamesarich in #2934 - Fix Bluetooth reconnection logic by @thebentern in #2948
- fix(ui): Prevent FAB from obscuring NodeScreen content by @jamesarich in #2949
- Add active tracking functionality to gmaps by @thebentern in #2953
- Make Nodes screen the root of the nav graph by @poliver in #2954
- Fix compass / orient north button by @thebentern in #2958
- fix: Set 'google' as default product flavor by @jamesarich in #2960
- Relocate debug panel to Settings nav graph by @poliver in #2971
- Align syle of admin settings by @poliver in #2969
- fix(service): set node time after config completion by @jamesarich in #2970
- refactor(map): fix scalebar and compass by @jamesarich in #2973
- fix units on current by @DaneEvans in #2980
- Improvements to Channel management by @Robert-0410 in #2935
- drop the glitchy animation by @DaneEvans in #2981
- Fix/2640 rangetest hops by @DaneEvans in #2979
- fix: map regressions by @jamesarich in #3004
- ci(release): improve Google Play release automation by @jamesarich in #3016
- ci(release): use correct promote action by @jamesarich in #3019
- ci(release): Cache build artifacts to speed up release workflow by @jamesarich in #3020
- ci(release): Remove build caching and set user fraction for promotions by @jamesarich in #3021
- ci(release): promote from NewAlpha to beta for open builds by @jamesarich in #3023
- feat(fastlane): return AAB path from build lane by @jamesarich in #3042
- chore(build): prioritize injected version properties by @jamesarich in #3043
- fix(fastlane): Align assemble_beta task with fastlane documentation by @jamesarich in #3044
- fix(fastlane): add skip_upload_apk option to Play Store upload tasks by @jamesarich in #3047
👷Dependencies
- chore(deps): update com.android.tools.build:gradle to v8.12.1 by @renovate[bot] in #2773
- chore(deps): update plugin com.gradle.develocity to v4.1.1 by @renovate[bot] in #2778
- chore(deps): update app/src/main/proto digest to be51376 by @renovate[bot] in #2780
- chore(deps): update mesh_service_example/src/main/proto digest to be51376 by @renovate[bot] in #2781
- chore(deps): update com.datadoghq:dd-sdk-android-gradle-plugin to v1.19.0 by @renovate[bot] in #2786
- chore(deps): update maps.compose to v6.7.2 by @renovate[bot] in #2791
- chore(deps): update mesh_service_example/src/main/proto digest to 8985852 by @renovate[bot] in #2795
- chore(deps): update app/src/main/proto digest to 8985852 by @renovate[bot] in #2794
- chore(deps): update hilt to v2.57.1 by @renovate[bot] in #2806
- chore(deps): update actions/setup-java action to v5 by @renovate[bot] in #2808
- chore(deps): update r0adkll/upload-google-play action to v1.1.3 by @renovate[bot] in #2849
- feat(analytics): enable datadog user interaction tracking by @jamesarich in #2848
- build: centralize repository declarations in settings.gradle.kts by @jamesarich in #2858
- chore(deps): update dd.sdk.android to v2.26.0 by @renovate[bot] in #2871
- chore(deps): update androidx.compose:compose-bom to v2025.08.01 by @renovate[bot] in #2880
- chore(deps): update adaptive to v1.2.0-beta01 by @renovate[bot] in #2879
- chore(deps): update lifecycle to v2.9.3 by @renovate[bot] in #2882
- chore(deps): update androidx.compose.material3:material3 to v1.5.0-alpha03 by @renovate[bot] in #2881
- chore(deps): update agp to v8.12.2 by @renovate[bot] in #2904
- chore(deps): update com.google.firebase:firebase-bom to v34.2.0 by @renovate[bot] in #2907
- chore(deps): update actions/attest-build-provenance action to v3 by @renovate[bot] in #2908
- chore(deps): group meshtastic protobuf updates by @jamesarich in #2923
- chore(deps): update meshtastic protobufs to 4c4427c by @renovate[bot] in #2924
- chore(deps): update agp to v8.13.0 by @renovate[bot] in #2943
- chore(deps): update google maps compose to v6.8.0 by @renovate[bot] in #2945
- chore(deps): update meshtastic protobufs to 34f0c81 by @renovate[bot] in #2946
- chore(deps): update com.google.android.material:material to v1.13.0 by @renovate[bot] in #2950
- chore(deps): update actions/stale action to v10 by @renovate[bot] in #2955
- chore(deps): update meshtastic protobufs to 07d6573 by @renovate[bot] in #2956
- chore(deps): update actions/github-script action to v8 by @renovate[bot] in #2961
- chore(deps): update actions/labeler action to v6 by @renovate[bot] in #2963
- chore(config): migrate renovate config by @renovate[bot] in #2964
- chore(deps): update datadog to v3 (major) by @renovate[bot] in #2962
- chore(deps): update google maps compose to v6.9.0 by @renovate[bot] in #2986
- chore(deps): update meshtastic protobufs to a84657c by @renovate[bot] in #3001
🧱Repo
- Fix CI badge in README by @poliver in #2761
- Run Spotless by @poliver in #2762
- refactor(l10n): start from scratch by @jamesarich in #2914
- chore(deps): group all the things by @jamesarich in #2928
- repo: update label check so it doesn't need help by @DaneEvans in #2995
🤖Automated
- New Crowdin updates by @jamesarich in #2779
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #2783
- New Crowdin updates by @jamesarich in #2785
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #2787
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #2789
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #2792
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #2797
- New Crowdin updates by @jamesarich in #2798
- New Crowdin updates by @jamesarich in #2817
- New Crowdin updates by @jamesarich in #2819
- New Crowdin updates by @jamesarich in #2820
- New Crowdin updates by @jamesarich in #2824
- New Crowdin updates by @jamesarich in #2829
- 2.6.35 by @jamesarich in #2697
- New Crowdin updates by @jamesarich in #2837
- New Crowdin updates by @jamesarich in #2845
- New Crowdin updates by @jamesarich in #2854
- New Crowdin updates by @jamesarich in #2856
- fix(ci): improve release workflow and proguard setup by @jamesarich in #2857
- New Crowdin updates by @jamesarich in #2866
- New Crowdin updates by @jamesarich in #2874
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #2883
- New Crowdin updates by @jamesarich in #2888
- New Crowdin updates by @jamesarich in #2892
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #2897
- New Crowdin updates by @jamesarich in #2899
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #2901
- New Crowdin updates by @jamesarich in #2902
- New Crowdin updates by @jamesarich in #2905
- New Crowdin updates by @jamesarich in #2917
- New Crowdin updates by @jamesarich in #2922
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #2926
- New Crowdin updates by @jamesarich in #2929
- New Crowdin updates by @jamesarich in #2937
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #2940
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #2947
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #2951
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #2952
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #2957
- New Crowdin updates by @jamesarich in #2959
- New Crowdin updates by @jamesarich in #2975
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #2978
- New Crowdin updates by @jamesarich in #2982
- New Crowdin updates by @jamesarich in #2987
- New Crowdin updates by @jamesarich in #2988
- New Crowdin updates by @jamesarich in #2994
- New Crowdin updates by @jamesarich in #2997
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #2998
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #3005
Full Changelog: v2.6.35...v2.7.0-closed.1