Add android.disallowKotlinSourceSets=false and android.sourceset.disallowProvider=false
to gradle.properties to resolve build failures caused by stricter checks in newer
Android Gradle Plugin versions. This allows the project to build successfully from CLI.
Move locationSearchProvider and googleMapsApiKey properties in Global.kt
and en_US.json to be positioned between 'spoofLocation' and 'coordinates'.
This ensures they appear in the correct order in any auto-generated feature lists,
while maintaining their manual placement in BetterLocationRoot.kt.
Use mutable state for locationSearchProvider and googleMapsApiKey display
values in BetterLocationRoot. Update these state variables immediately
when dialogs are dismissed/saved to ensure the UI reflects changes without
reopening the screen.
- Introduce currentProvider/currentApiKey state variables.
- Refresh state in onDismissRequest/callbacks.
Explicitly call context.config.writeConfig() when dismissing the
Location Search Provider or Google Maps API Key dialogs.
This ensures that the selected values are persisted immediately,
resolving issues where settings changes were lost or not applied.
Also wraps API key input dialog in explicit writeConfig logic.
Resolve vertical text rendering issue by using Modifier.weight(1f) in
ConfigSelector. Add proper translation keys to the 'better_location'
block in en_US.json so they are accessible to BetterLocationRoot.
Update key references to match the new structure.
- Add keys: location_search_provider_title, google_maps_api_key_title,
option_osm, option_google_maps.
- Fix UI layout to handle text wrapping properly.
Add support for Google Maps Geocoding API in location search dialog.
- Update ChooseLocationDialog signature to accept API key.
- Switch search provider logic based on configuration.
- Use Google Maps Geocoding API when provider is 'google_maps'.
- Maintain OpenStreetMap Nominatim support as fallback/default.
- Pass configured API key from BetterLocationRoot UI.
- Add ConfigFlag.NO_DISABLE_KEY to locationSearchProvider config to prevent
'Disable' (null) option which caused fallback to OSM.
- Add manual UI controls to BetterLocationRoot.kt for Location Search Provider
and Google Maps API Key, as automatic UI generation was not present on this page.
- Add ConfigSelector and ConfigInput helpers to BetterLocationRoot.kt.
- Ensure API key input is hidden/masked in the UI list.
Replace XYTileSource with OnlineTileSourceBase anonymous object to correctly
handle Google Maps query parameter format (&x=...&y=...&z=...) instead of
path-based format (/z/x/y.png).
- Use correct tile servers (mt0-mt3)
- Override getTileURLString to construct valid Google Maps URLs
Add config properties for locationSearchProvider (osm/google_maps) and
googleMapsApiKey to BetterLocationConfig. Modify ChooseLocationDialog
to switch between OpenStreetMap (MAPNIK) and Google Maps tile sources
based on user preference.
- Add locationSearchProvider unique config property
- Add googleMapsApiKey string config property (SENSITIVE flag)
- Add XYTileSource for Google Maps tiles in AlertDialogs
- Pass locationSearchProvider from BetterLocationRoot to dialog
Translation keys already existed in all 28 language files.