You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Introduce user-configurable settings and persistence to control map style, overlay position, photo quality, date format, auto-save behavior and theme.
Replace ad-hoc PhotoManager usage with an internal AppPhoto store so captured geo-tagged images are managed by the app and optionally backed up.
Surface account and settings UI so users can view profile, enable backup, and change app behavior without rebuilding.
Improve map rendering and theming by using Google Static Maps thumbnails and adding dark theme support.
Description
Added new models and services: AppSettings, AppPhoto, AppPhotoStore, SettingsService, BackupService, and extended GoogleMapService to accept mapStyle and zoom parameters.
Converted MyApp to a StatefulWidget and load settings via SettingsService, wired themeMode and additional routes for SettingsScreen and AccountScreen in app.dart.
Implemented SettingsScreen for changing settings and persisting them via SettingsService, and an AccountScreen UI with simple profile editing and backup toggle using BackupService.
Reworked location UI in location_stamp_card.dart to read settings and render a static map image via GoogleMapService, and make coordinates/compass/speed/altitude rows conditional on settings.
Camera now loads settings (resolution preset, overlay position, date format) and simplified capture flow to only photo captures and geo-tagging; removed video recording code paths and templates.
Result flow now composes the geo-tagged image, respects autoSaveToGallery setting, and stores metadata in AppPhotoStore; gallery and locations screens were updated to use AppPhotoStore and include an in-app viewer with share/delete actions.
Added shared_preferences dependency in pubspec.yaml for settings and photo persistence and updated core/theme with a darkTheme config.
Testing
No automated tests were added or executed as part of this change.
Persist app photos outside the temporary directory
When the result image is added to AppPhotoStore, this stores finalResult.filePath, but ImageOverlayService.composeGeoTaggedImage writes that file under getTemporaryDirectory(). In the scenarios where the OS clears temporary/cache files (and especially when autoSaveToGallery is off, making this the only tracked copy), loadPhotos() later drops the entry because the file no longer exists, so saved app photos disappear from Gallery/Locations despite being recorded in preferences. Store a durable app-documents path or track the gallery-saved asset instead.
Notify the app shell when the theme setting changes
When users toggle App Theme, _save only updates this SettingsScreen state and SharedPreferences; MyApp reads SettingsService.load() once in initState and never listens or reloads after returning from settings. As a result the switch appears to save, but MaterialApp.themeMode stays on the old value for the rest of the session unless the app is restarted.
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
AppPhotostore so captured geo-tagged images are managed by the app and optionally backed up.Description
AppSettings,AppPhoto,AppPhotoStore,SettingsService,BackupService, and extendedGoogleMapServiceto acceptmapStyleandzoomparameters.MyAppto aStatefulWidgetand load settings viaSettingsService, wiredthemeModeand additional routes forSettingsScreenandAccountScreeninapp.dart.SettingsScreenfor changing settings and persisting them viaSettingsService, and anAccountScreenUI with simple profile editing and backup toggle usingBackupService.location_stamp_card.dartto read settings and render a static map image viaGoogleMapService, and make coordinates/compass/speed/altitude rows conditional on settings.autoSaveToGallerysetting, and stores metadata inAppPhotoStore; gallery and locations screens were updated to useAppPhotoStoreand include an in-app viewer with share/delete actions.shared_preferencesdependency inpubspec.yamlfor settings and photo persistence and updatedcore/themewith adarkThemeconfig.Testing
Codex Task