* chore: move logic for lastUsedByActivityType into ConstructIdentifier
* feat: vocab practice
* add vocab activity progress bar
* fix: shuffle audio practice choices
* update UI of vocab practice
Added buttons, increased text size and change position, cards flip over and turn red/green on click and respond to hover input
* add xp sparkle, shimmering choice card placeholder
* spacing changes
fix padding, make choice cards spacing/sizing responsive to screen size, replace shimmer cards with stationary circle indicator
* don't include duplicate lemma choices
* use constructID and show lemma/emoji on choice cards
add method to clear cache in case the results was an error, and add a retry button on error
* gain xp immediately and take out continue session
also refactor the choice cards to have separate widgets for each type and a parent widget to give each an id for xp sparkle
* add practice finished page with analytics
* Color tweaks on completed page and time card placeholder
* add timer
* give XP for bonuses and change timer to use stopwatch
* simplify card logic, lock practice when few vocab words
* merge analytics changes and fix bugs
* reload on language change
- derive XP data from new analytics
- Don't allow any clicks after correct answer selected
* small fixes, added tooltip, added copy to l10
* small tweaks and comments
* formatting and import sorting
---------
Co-authored-by: avashilling <165050625+avashilling@users.noreply.github.com>
* rain confetti on activity finish
also add continue button, and change copy for completed single practice activities
* fix: show confetti popup when finish all activities with grammar activity
* translations
---------
Co-authored-by: ggurdin <ggurdin@gmail.com>
* don't show activity dropdown instructions if word card is open
* block other overlays from openning when tutorial overlay is open
* remove duplicate open overlay data, don't wait for construct banners to close if overlay fails to open
* android GA
* test for now
* removed test android
* formatting and pangea comments
---------
Co-authored-by: ggurdin <46800240+ggurdin@users.noreply.github.com>
Co-authored-by: ggurdin <ggurdin@gmail.com>
* style and functionality changes to level up notification
* generated
* chore: return construct summary directly from function instead of waiting for state event to be sent
* generated
* XP animation bug, asking wilson to take a look
* updated XP attributes but still facing XP retrieval bug
* generated
* Added new DinoBot image
* updated dinoBot image, added padding on sides to table row, fixed duplicate variable naming error
* generated
* chore: some updates to simplify level up widget
* chore: remove dino asset from pubspec.yaml
* chore: revert testing changes to analytics controller
* See details categories do not display unless XP gained above threshold
* generated
* chore: update icons in construct update popup above messages
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: ggurdin <ggurdin@gmail.com>
* refactor: separate token and message reading assistance modes
* chore: apply same token styling to HTML formatted messages
* chore: don't wait for lemma responses before showing reading assistance content
* chore: replace late animations with nullable to prevent late init error
* chore: remove null check operator in showToolbarButtons
* chore: don't call setState in CustomSVG if not mounted
* refactor: move construct notifications to the top of the screen
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* still in draft
* feat(reading_assistance): whole message activity oriented
* chore: fix .env file path
* feat: animate selected toolbar into middle of screen
* chore: initial work for message bubble size animation
* refactor(reading_assistance): hooking up the choice interactions and polishing UI
* chore: animate in content and buttons
* formatting
* position reading content relative to selected token
* working on limiting choices
* chore: fix positioning of toolbar animation
* chore: simplify positioning logic
* chore: animate in button height
* getting there
* rough draft with restricted activity number is complete
---------
Co-authored-by: ggurdin <ggurdin@gmail.com>