What's Changed
🏗️ Features
- Feat/node notes by @DaneEvans in #3014
- docs: update app store metadata by @jamesarich in #3048
- Update strings.xml - Include GeoJSON by @b8b8 in #3052
- feat(build): Convention Plugins by @jamesarich in #3081
- More
ConnectionsScreen
screen breakup by @poliver in #3108 - feat(build-logic): modularize build-logic & update dependencies by @jamesarich in #3110
- Example project: Appease Detekt by @poliver in #3125
- Move nav routes to new
:navigation
project module by @poliver in #3124 - Decouple
ConnectionsScreen
fromUiViewModel
by @poliver in #3126 - Re-add "set region" CTA by @poliver in #3129
- Start migration away from global top app bar by @poliver in #3132
- Decouple
SettingsScreen
fromUiViewModel
by @poliver in #3137 - Flatten
BluetoothViewModel
by @poliver in #3138 - Add
MapScreen
by @poliver in #3142 - New core modules for
:model
,:navigation
,:network
,:prefs
by @poliver in #3147 - Launch system language picker for API 33+ by @poliver in #3145
- Modularize protos by @poliver in #3152
- Modularize some model classes by @poliver in #3153
- feat(settings): align config screens copy and order with iOS by @jamesarich in #3144
- refactor(R): Move R file imports to core UI module by @jamesarich in #3159
- refactor(settings)!: standardize radio config screens by @jamesarich in #3167
- Add core data modules by @poliver in #3169
- Modularize prefs classes by @poliver in #3171
- feat(settings): add device telemetry toggle by @jamesarich in #3166
- Move common dispatchers to
:core:di
by @poliver in #3178 - Modularize
CustomTileProviderRepository
by @poliver in #3181 - Modularize more models/utils by @poliver in #3182
- refactor(ui): improve UX for saving node notes by @jamesarich in #3197
- Add
:core:ui
by @poliver in #3203 - Less state held by
MeshService
by @poliver in #3205 - Decouple
NodeScreen
fromUiViewModel
by @poliver in #3207
🛠️Fixes
- Update EnvironmentMetrics.kt - μR/h by @b8b8 in #3008
- fix(service): increase config wait time by @jamesarich in #3006
- docs: update release process for promotion strategy by @jamesarich in #3017
- feat(ci): migrate to fastlane for release management by @jamesarich in #3038
- docs(RELEASE_PROCESS): update release finalization steps by @jamesarich in #3040
- fix(merge-queue): add CODECOV_TOKEN to secrets by @jamesarich in #3064
- ci: add CODECOV_TOKEN to merge-queue workflow by @jamesarich in #3066
- ci: upload Android test results to Codecov by @jamesarich in #3055
- fix: detekt by @jamesarich in #3090
- fix: detekt by @jamesarich in #3096
- Add coverage status configuration to codecov.yml by @jamesarich in #3104
- #2803 Waypoints with line breaks by @DaneEvans in #3101
- Convert sample project to Kotlin by @poliver in #3111
- refactor(build): simplify lint, spotless, and detekt configurations by @jamesarich in #3133
- refactor(map): use hiltViewModel for MapViewModel by @jamesarich in #3135
- Modularize some map-related files by @poliver in #3154
- ci: streamline release process and artifact handling by @jamesarich in #3163
- Update strings.xml by @b8b8 in #3180
- Modularize database classes by @poliver in #3192
- refactor(service): unify config and node info request flow by @jamesarich in #3201
- chore(release): remove update-github-release step from workflow by @jamesarich in #3204
- feat(db): introduce transactional config installation by @jamesarich in #3209
👷Dependencies
- chore(deps): update meshtastic protobufs to 8caf423 by @renovate[bot] in #3025
- chore(deps): update actions/upload-pages-artifact action to v4 by @renovate[bot] in #3029
- chore(deps): update google maps compose to v6.10.0 by @renovate[bot] in #3036
- chore(deps): update actions/download-artifact action to v5 by @renovate[bot] in #3046
- chore(deps): update ruby to v3.4.5 by @renovate[bot] in #3045
- chore(deps): update kotlin ecosystem to v2.2.20 by @renovate[bot] in #3050
- chore(deps): update codecov/codecov-action action to v5 by @renovate[bot] in #3069
- chore(deps): update androidx adaptive ui to v1.2.0-beta02 by @renovate[bot] in #3057
- chore(deps): update androidx room to v2.8.0 by @renovate[bot] in #3060
- chore(deps): update androidx navigation by @renovate[bot] in #3059
- chore(deps): update androidx (general) by @renovate[bot] in #3056
- chore(deps): update androidx.hilt:hilt-navigation-compose to v1.3.0 by @renovate[bot] in #3068
- chore(deps): update com.google.devtools.ksp to v2.2.20-2.0.2 by @renovate[bot] in #3067
- chore(deps): update protobuf runtime to v4.32.1 by @renovate[bot] in #3078
- chore(deps): update com.google.protobuf:protoc to v4.32.1 by @renovate[bot] in #3102
- chore(deps): update androidx (general) by @renovate[bot] in #3103
- chore(deps): update plugin datadog to v1.20.0 by @renovate[bot] in #3105
- chore(deps): update plugin dependency-analysis to v3.0.3 by @renovate[bot] in #3112
- chore(deps): update plugin com.gradle.common-custom-user-data-gradle-plugin to v2.4.0 by @renovate[bot] in #3113
- chore(deps): update markdown renderer (mike penz) to v0.37.0 by @renovate[bot] in #3087
- chore(deps): update meshtastic protobufs to 945b796 by @renovate[bot] in #3114
- chore(deps): update androidx.compose.runtime:runtime-tracing to v1.9.1 by @renovate[bot] in #3116
- chore(deps): update plugin dependency-analysis to v3.0.3 by @renovate[bot] in #3115
- chore(deps): update ruby to v3.4.6 by @renovate[bot] in #3120
- Use Ktor/Ktorfit for API calls by @poliver in #3122
- chore(deps): update plugin com.gradle.develocity to v4.2 by @renovate[bot] in #3121
- chore(deps): update plugin kover to v0.9.2 by @renovate[bot] in #3123
- chore(deps): update androidx lifecycle to v2.9.4 by @renovate[bot] in #3130
- chore(deps): update plugin dependency-analysis to v3.0.4 by @renovate[bot] in #3131
- chore(deps): update gradle to v9.1.0 by @renovate[bot] in #3143
- chore(deps): update com.google.firebase:firebase-bom to v34.3.0 by @renovate[bot] in #3146
- chore(deps): update datadog to v3.1.0 by @renovate[bot] in #3150
- chore(deps): update meshtastic protobufs to 6a8b80a by @renovate[bot] in #3149
- chore(deps): update actions/download-artifact action to v5 by @renovate[bot] in #3164
- chore(deps): update actions/github-script action to v8 by @renovate[bot] in #3165
- chore(deps): update google maps compose to v6.11.0 by @renovate[bot] in #3168
- chore(deps): update androidx (general) by @renovate[bot] in #3186
- chore(deps): update com.diffplug.spotless:spotless-plugin-gradle to v8 by @renovate[bot] in #3190
- chore(deps): update plugin spotless to v8 by @renovate[bot] in #3191
- chore(deps): update androidx room to v2.8.1 by @renovate[bot] in #3189
- chore(deps): update androidx adaptive ui to v1.2.0-beta03 by @renovate[bot] in #3187
- chore(deps): update androidx navigation by @renovate[bot] in #3188
- chore(deps): update dagger & hilt to v2.57.2 by @renovate[bot] in #3208
🧱Repo
- chore(issues): overhaul issue templates by @jamesarich in #3012
- feat(docs): migrate configs to dokka 2 by @jamesarich in #3031
- feat(ci): add kover for test coverage reporting by @jamesarich in #3041
- repo(release): merge changes from 2.7.0 to main by @jamesarich in #3070
- add internal bug report with ch_testing tags by @DaneEvans in #3099
- Remove
design/
git submodule by @poliver in #3177 - Redundant methods in
RadioConfigRepository
by @poliver in #3198
🤖Automated
- New Crowdin updates by @jamesarich in #3013
- New Crowdin updates by @jamesarich in #3022
- New Crowdin updates by @jamesarich in #3026
- ci: add Dokka for kdoc documentation generation and deployment by @jamesarich in #3024
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #3030
- fix(release): Simplify Play Store deployment to upload-only by @jamesarich in #3027
- New Crowdin updates by @jamesarich in #3032
- fix(docs): dokka path by @jamesarich in #3034
- New Crowdin updates by @jamesarich in #3037
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #3039
- New Crowdin updates by @jamesarich in #3049
- New Crowdin updates by @jamesarich in #3054
- New Crowdin updates by @jamesarich in #3072
- New Crowdin updates by @jamesarich in #3074
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #3073
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #3075
- New Crowdin updates by @jamesarich in #3076
- New Crowdin updates by @jamesarich in #3080
- New Crowdin updates by @jamesarich in #3084
- New Crowdin updates by @jamesarich in #3086
- New Crowdin updates by @jamesarich in #3092
- ci(release): update artifact paths in release workflow by @jamesarich in #3097
- New Crowdin updates by @jamesarich in #3093
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #3098
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #3117
- New Crowdin updates by @jamesarich in #3134
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #3148
- 2.7.0 by @jamesarich in #2900
- New Crowdin updates by @jamesarich in #3155
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #3162
- New Crowdin updates by @jamesarich in #3170
- New Crowdin updates by @jamesarich in #3173
- New Crowdin updates by @jamesarich in #3174
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #3183
- New Crowdin updates by @jamesarich in #3184
- chore: Scheduled updates (Firmware, Hardware) by @jamesarich in #3193
- New Crowdin updates by @jamesarich in #3194
- New Crowdin updates by @jamesarich in #3195
- New Crowdin updates by @jamesarich in #3196
- New Crowdin updates by @jamesarich in #3200
- New Crowdin updates by @jamesarich in #3202
New Contributors
Full Changelog: v2.7.0...v2.7.1-closed.1