Only load dynamic preload data when needed #5823
Merged
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.
Closes #5620
Blocked by #5665Blocked by getodk/javarosa#733Uses the newly added
XFormParser.XPathProcessor
to detectpulldata
orsearch
in forms and only if they are present create the database needed for them.Why is this the best possible solution? Were any other approaches considered?
This is a direct follow on from #5665 where most of the structure was defined - all I've done here is integrate
XFormParser.XPathProcessor
to properly implementDynamicPreloadParseProcessor
.How does this change affect users? Describe intentional changes to behavior and behavior that could have accidentally been affected by code changes. In other words, what are the regression risks?
Users should no longer see the "Pre-loading data from" loading state when opening a form with a secondary instance for the first time unless it contains a
pulldata
orsearch
function. It'd be good to test forms with and without these functions to check that everything works as expected, and that the first load is now faster for forms that don't includesearch
/pulldata
.Before submitting this PR, please make sure you have:
./gradlew checkAll
and confirmed all checks still pass OR confirm CircleCI build passes and run./gradlew connectedDebugAndroidTest
locally.