Skip to content

Add settings, persistent AppPhoto store, account & settings screens, and map/theme improvements - #23

Merged
krishna3554 merged 2 commits into
mainfrom
codex/remove-video-tab-from-bottom-bar-69wogx
May 14, 2026
Merged

krishna3554 merged 2 commits into
mainfrom
codex/remove-video-tab-from-bottom-bar-69wogx

Conversation

@krishna3554

Copy link
Copy Markdown
Owner

Motivation

  • 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.

Codex Task

@krishna3554
krishna3554 merged commit c0ff1fa into main May 14, 2026
0 of 3 checks passed
@chatgpt-codex-connector

Copy link
Copy Markdown

💡 Codex Review

filePath: finalResult.filePath,

P2 Badge 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.


onChanged: (value) => _save(_settings.copyWith(darkTheme: value)),

P2 Badge 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.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

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".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant