- Localization now supports nested translation keys (flattened to dot-separated
paths),
{{placeholder}}interpolation via the newargsargument oftranslate(), and plurals via its newcountargument, using the_zero,_one,_two,_few,_manyand_otherkey suffixes with the CLDR rules of the locale.translate('key')behaves exactly as before. LocalizationLoader.loadnow returnsFuture<Map<String, dynamic>>so a loader may return nested translations. Loaders returningFuture<Map<String, String>>need no change.- Added support for requesting OS permissions in context during informed consent
(issue #171). A consent section declares what its text explains the need for
via
RPConsentSection.permissions, and leaving that section prompts for them — but only when the step opts in withRPVisualConsentStep.askPermission: true. New:RPPermissionType,RPPermissionStatus,RPPermissionResult(added to the task result under the identifier of the step) andRPPermissions.request()for asking outside a consent flow. A denied permission is recorded but never blocks the participant. - Health data is asked for through the
healthpackage rather thanpermission_handler, since HealthKit and Health Connect authorise each data type separately: a section listingRPPermissionType.healthmust also list the types in the newRPConsentSection.healthDataTypes, or it resolves tounsupported.HealthDataTypeis re-exported andRPPermissions.requestHealthData()is public. On iOS the status is optimistic — HealthKit does not disclose read access, sograntedmeans the sheet was shown without error. - Added a "BACK" button to
RPUIVisualConsentStep, hidden on the first section and on one which is still going to open a permission alert. - Added
RPUITask.carouselBarBuilderandRPUITask.bottomNavigationBuilderfor replacing the carousel bar and the BACK/NEXT row with custom widgets; returnconst SizedBox.shrink()to hide either entirely. The bottom builder is handed anRPTaskNavigation—onNext(null while the step is not ready),onBack(null on the first step, and offered in linear tasks, where the default row has no BACK button),onCancel(confirms first), pluscanProceed,currentStep,stepIndexandstepCount— and is called on every step, including the ones the default row hides itself on. - Added
RPUITask.nextButtonText,RPStep.nextButtonText(which wins over it) andRPUITask.nextButtonStylefor labelling and styling the Next button. - The bottom navigation row now centres the Next button when there is no Back button, instead of pushing it to the trailing edge.
- Breaking: an informed consent flow — an
RPOrderedTaskcontaining anRPConsentReviewStep— no longer shows the close button in the top bar, nor a "CANCEL" button on the visual consent step. Apple requires that a screen explaining an upcoming permission request offers no way out other than the system alert it leads to. Such a task is now left with "DISAGREE" on the review step, which — unlike the old "CANCEL" — does callRPUITask.onCancel. Tasks which are not consent tasks keep their close button. - Breaking:
RPUIVisualConsentStepnow takes theRPVisualConsentStepasstep:instead ofconsentDocument:. This only affects code instantiating the widget directly. - New dependencies:
health: '>=13.0.0 <14.0.0', which raises the Android requirement tominSdkVersion 26for every app using research_package;permission_handler: '>=12.0.0 <13.0.0'; andintl: '>=0.19.0 <0.21.0'. Apps which ask for permissions must declare them natively, and health data also needsFlutterFragmentActivityand the Health Connect manifest entries — see the platform setup in the README.
- Migrated to
carp_themes_package0.2.0: widgets now read colors and text styles from the standardThemeData(ColorScheme,TextTheme,scaffoldBackgroundColor) instead of the removedCarpColorsextension andfsXXtext constants. - Lowered the minimum Dart SDK to
3.12.0.
Update dependencies:
sdk: ^3.12.2carp_themes_package: ^0.0.5carp_serializable: ^2.0.1signature: ^6.3.0json_annotation: ^4.12.0audioplayers: ^6.7.0video_player: ^2.11.1
- Updated example apps
- Improve typechecking for bottom bar visibility
- Adding custom padding to carouselBar
- Removing Research Package styles, integrating carp_themes_package instead.
- Added support for new media types in RPInstructionStep class. Media types include
- Video
- Audio
- Image Media can be accessed by providing a url in the protocol under an RPInstructionStep by setting it as "video_step": "url".
- Changed color of BACK button in task to be same as NEXT button.
- minor visual updates
- updating RPColors theme to act as carp_styles_package temporarily
- fixing nullable variables
- fixing asset path
- Redesign of informed consent
- Redesign of app bar
- Addition of research_package_styles
- Major flutter upgrade for example app
- Major gradle upgrade for exmaple app
- Added support for a
HealthDataCollectiontype in theRPConsentSectionTypewhich allow for showing what health data is being collected as part of an informed consent flow. - Added and example incl. translations of a
HealthDataCollectiontype
- Removing option to use back button due to Issue #141
- Fix signature background colour (#134)
- Fix of implicit back button (PR #140)
- Fix of start & end time stamps (#136)
- Upgrade of serialization
- Upgrade to
carp_serializablev. 2.0 - Now using camelCase for JSON.
- Support for deserialization of all
RPResultclasses and sub-classes (polymorphic serialization using thecarp_serializablepackage) (issue #83)
- Upgrade to
- Temporary fix of
rxdartissue (#131). - Small upgrade to text and email in demo app.
- Added support for Spanish (ES) in demo app.
- Add optional
footnoteoption to variousRPStepsand add it to the UI
- Fix issue #115 by removing unused widgets,
simple_html_csspackage
- Fix of issue #111
- Fix of linter / static analysis issues
DoubleQuestionFormatandIntegerQuestionFormatnow open a keyboard with only numbers, given that is the only accepted format.TextAnswerFormatnow has the possibility of disabling all the keyboard "helpers" (e.g., auto corrector, suggestions).- Fix of issue #95.
- Fix of a case in which an
RPStepcould be null. - Fix of
LateInitializationErrorby removing late variables.
- Fix of issue #183
stepsinRPFormStepare now calledquestions.- Improvements to API documentation
- Upgrade to Dart 3 and Android APK upgrades
- Fix of issue #86
- Added translation to French and to Portuguese (Portugal version).
- Added autoFocus to
TextAnswerFormat. - Added autoSkip, timeout, and autoSubmit to
FormStep. - Added autoSkip, timeout, and autoFocus to
QuestionStep. - Added autoSkip and showTime to
TimerStep. - Adapted colors in Research Package for the Cupertino theme.
- Added a
RPDoubleAnswerFormat.
- Upgrade to
carp_serializable: ^1.1.0. Note that this entails that all polymorphic json serialization uses the type key__type. Hence, the json format for all the domain classes is NOT compatible with earlier versions. - Update of Material Design names for title, caption, and body text.
- Added the
ResearchPackage.ensureInitialized()static method to be compliant with the other CARP packages.
- Added usage of
detailTextonRPChoices. - Small bug fixes
- Upgrade of
pubspecdependencies to latest versions.
- Support for initializing json serialization by calling the
ResearchPackage()factory method. This allows for dynamic loading of survey or informed consents from a json configuration.
- First stable release
RPActivityStepmade serializable.- Upgraded to Dart 2.18 and Fluter 3
- Refactoring to comply to official Dart recommended lint rules
- Upgrade of several constructors to use
superwhich break backwards compatibility to version 0.9.3 - Update of demo app
- Update and clean up in API documentation.
- Changed dependency from carp_core to carp_serializable, to reduce unnecessary dependencies.
- Added a
unfocusbetween question to avoid the keyboard remaining on the screen after answering a question.
- Fixed a big in the signature during consent review.
- Research Package now translates the
TaskResultand steps from the localization keys to the localized values. - Small updates to the example app
- Small fixes to localization in the package and the example app.
- Updated deprecated theme usages.
- Added the
RPTimerStepand serialization. - Added
Audiofileplayerplugin for theRPTimerStep - Updated README
- Updated .gitignore
- Update to
carp_corev. 0.33.0 - Misc. cleanup in Android example app configurations
- Updated
signatureto 5.0.0
- Changed asset urls to be specific urls of the assets
- Added a new "Checkmark" in the RPCompletionStep
- Changed brightness input on CupertinoDateTimePicker for
RPDateTimeAnswerFormatto use Theme brightness instead of System brightness.
- added base method for calculateScore() method into RPActivityStep class. Which is overridden by any child class that extends RPActivityStep
- fix / enhancement of localization based on issue #54.
- Removed Boolean questions, including answer format for simplicity and navigation changes. (Use regular RPChoices now)
- Removed Predicate Navigation rules, for simplicity and navigation changes. (Use
RPStepJumpRulenow) - JSON serialization to/from json, now retains the navigation rules added. Previously the navigation was lost after conversion.
- Updated example app
- Fixed issues #58, #59, #60, #61
- Small bugfixes
- Added Activity Steps as
RPActivityStep- A class that allows for the making of Cognitive Tests - Added Activity Result as
RPActivityResult- A class for storing the result of a Cognitive test - Added
RPActivityEventLogger- used for logging small events during eachactivity step - Include json serialization for added classes.
- update to
carp_corev. 0.31.0
- update to UI rendering in the Informed Consent based on PR #51.
- update to UI rendering in the Informed Consent based on PR #50.
- updating README to link to the new tutorials on
carp.cachet.dk.
RPLocalizationsDelegatenow support multipleloaderswhich can merge translations from several sources.
- Changed background color element from backgroundColor -> scaffoldBackgroundColor.
- Updated RPConsentSection to also take a custom title on predefined section types.
- Fixed an issue with the cupertinoDatePicker in dark mode, that caused the picker to not follow the theme values.
- Added headline6 to questions step titles.
- Additional customizable text in the theme
- Example app updated
- Textfield hintText uses the 'text' parameter.
- Bug fix (Missing signature)
- Null safety added.
- Theming updated using PR #24
- Minor fixes
- small update to robustness and debug info in
RPLocalizations
- update to the localization model (
RPLocalizations) so that:- the localization of the embedded text in RP is now part of RP (you don't need to worry about this anymore)
- localization of informed consent and survey is (still) in the
assets/lang/folder - support for custom [LocalizationLoader]s which can load translations from other sources
- another localization class has been added
AssetsLocalizations, which can load translations from json files. This is useful for e.g. simple localization of static text in an app - example app update to illustrate the use of both types of localization
- small updates to documentation
- making
RPTaskserializable instead of abstract - fix to
translatemethod
- update of json serialization in informed consent domain model
- updated example and unit test on
RPConsentSectionfor passive data collection
- Included the carp_core which allow for de/serialization of RP models to/from json, while also supporting polymorphism (e.g., that an
RPAnswerFormatcan have different implementations). See issue #12. - all
.withParams()and similar constructors have been replaced with named constructors (as recommended in Dart). - added unit test to verify json de/serialization.
- all examples and the demo app updated accordingly.
- Fixed error in consent that caused it to have 2 top bars
- Updated docs
- Score fixes
- Merged beta.1.0
- Added RPTextAnswerFormat (a format for getting written answers from the user)
- Minor bugfixes
- Updated UI for several elements:
- RPQuestionStep (incl. most answer formats)
- RPFormStep
- RPInstructionStep
- RPVisualConsentStep
- Added new consent types:
- User data collection
- Passive data collection
- Added simple support for theming in Research Package
- Minor bug fixes
- updates to documentation of RP and example app
- Added RPJumpStepRule - A navigation rule to jump to questions based on the chosen answer to the question.
- Revert of AnimationController
- Updated
AnimationControllers to Flutter 1.22 - Removed "Activity Steps" to be released in a separate package
- Merged small-scale branching feature
- Minor bugfixes
onCancelcallback changed to only optional
onCancelcallback added to Tasks
RPActivityStepandRPActivityResultadded with including UI.- 8 cognitive tests added as activity steps.
- Dependencies updated
- Minor bugfixes
- FormStep now supports Slider, Image, Date and Boolean Answer Formats as well
- Support for Navigable Tasks
- Branching support with
RPDirectStepNavigationRuleandRPPredicateStepNavigationRule - Navigation to previous questions
- Currently supports:
- Boolean Answer Format
- Choice Answer Format
- Branching support with
- Localization added
- Demo app available now in English and Danish
- Support for new Answer Format
- Boolean
- UI updates, bug fixes
- Support for new Answer Formats
- Slider
- Date and Time
- Image Choice
rx_dartdependency updated to^0.23.0- Small bug fixes and documentation update
json_annotationdependency updated to^3.0.0rx_dartdependency updated to^0.22.0
- Form Step feature added
- Bug fixing
- Example application added
- Initial release for Pub
- Support for three Answer Formats
- Single Choice
- Multiple Choice
- Integer
- Added initial support for serialization to/from JSON
- JSON serialization is available for these classes:
RPAnswerFormatRPChoiceAnswerFormatRPIntegerAnswerFormatRPConsentDocumentRPConsentSectionRPSignatureResultRPStepResultRPTaskResultRPChoice
- Initial release
- Entire framework done
- Support for SingleChoice question type