Feature/edit profile traditions#501
Conversation
- Added new dependencies: jni and jni_flutter to pubspec.lock. - Updated path_provider_android version to 2.3.1 in pubspec.lock. - Modified Flutter SDK version constraint in pubspec.lock. - Refactored connect screen to enhance group discovery and loading states. - Introduced DiscoverGroupsScreen and DiscoverGroupsSection for better UI organization. - Updated localization strings for improved user experience.
… sync process - Deleted PlanMetadataStore and SpecialPlanStartedAtStore to streamline storage management. - Updated notification sync process to directly hydrate server routines into local storage without relying on legacy metadata stores. - Adjusted notification scheduling to focus on local recitation and timer reminders, with plan reminders now delivered via server push (FCM). - Cleaned up related imports and references throughout the codebase for improved clarity and maintainability.
- Introduced user traditions functionality, allowing users to view, add, and remove traditions in their profile. - Implemented a new provider for managing user traditions, including fetching and syncing selections. - Added a tradition picker sheet for selecting traditions and a form field for displaying selected traditions. - Updated the edit profile screen to integrate the new traditions features, enhancing user experience.
- Added a new provider for caching onboarding tradition paths, improving the loading experience in the tradition picker. - Updated the tradition picker sheet to utilize the pre-fetched data, eliminating loading flashes when opening the sheet. - Refactored the tradition picker to handle loading states and errors more gracefully. - Modified the edit profile screen to ensure traditions are loaded before displaying the picker, enhancing user experience.
- Introduced new localization strings for managing user traditions in multiple languages, enhancing the edit profile experience. - Added translations for "Traditions", "Choose your traditions", and error messages related to tradition management across various language files.
Confidence Score: 5/5Safe to merge. All three issues from the previous review round are resolved, and the new tradition and notification-refactor code is well-structured with proper error handling and rollback logic. The three previously-flagged issues (unsafe model cast, partial sync failure with no tracking, unhandled error in _showTraditionPicker) are each addressed in this revision. The new code uses explicit type validation with FormatException, per-operation try/catch with failedCodes collection, and a caught snackbar for network errors. The notification refactor is a clean removal of local plan/series scheduling with FCM preference gating added to device registration. The one remaining note is a UX edge case (sheet dismissible during save) that does not cause data corruption. lib/features/more/presentation/widgets/tradition_picker_sheet.dart — the sheet can be swiped away mid-save; consider wiring isDismissible/enableDrag to the saving state. Reviews (3): Last reviewed commit: "Update lib/features/more/presentation/ed..." | Re-trigger Greptile |
- Enhanced the UserTraditionsNotifier to better handle the addition and removal of traditions, including improved error logging for failed operations. - Updated the tradition picker sheet to reflect server state when saving selections, ensuring a more accurate user experience. - Added validation in UserTradition model to ensure required fields are present during JSON deserialization, improving data integrity.
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Uh oh!
There was an error while loading. Please reload this page.