fix(gym_mode): prevent LateInitializationError during exercise hydration (#1366) - #1370
Open
pankaj-basnet wants to merge 1 commit into
Open
pankaj-basnet wants to merge 1 commit into
pankaj-basnet wants to merge 1 commit into
Conversation
…ion (wger-project#1366) - Replace unguarded in SetConfigData with safe getter/setter and . - Update , , and to guard against un-hydrated exercise references. - Skip un-hydrated sets in to avoid building invalid gym mode pages during initial PowerSync sync. Fixes wger-project#1366
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
LateInitializationErrorcrash occurring in gym-mode pages when accessingSetConfigData.exercisebefore local exercise reference data has finished syncing via PowerSync (#1366).SetConfigDatasafely nullable (matching the existingSlotEntryhydration pattern), guards the UI against unhydrated exercises, and skips incomplete pages inGymStateNotifieruntil hydration completes.Root Cause
SetConfigDatadeclaredlate Exercise exercisewith no initializer, relying onRoutinesNotifier._hydrateRoutine()to attachExerciseinstances asynchronously post-sync. WhenGymStateNotifier.calculatePages()ran before theexercisestable finished syncing, gym-mode widgets (StartPage,ExerciseOverview,LogPage) attempted to read.exerciseon unhydrated objects, throwing aLateInitializationError.File Changes & ]
Proposed Changes
Related Issue(s)
Fixes #1366
Please check that the PR fulfills these requirements
dart format .)