Skip to content

Animated progress bar for today's goal - #101

Merged
float3 merged 3 commits into
mainfrom
goal-progress-bar
Nov 4, 2026
Merged

float3 merged 3 commits into
mainfrom
goal-progress-bar

Conversation

@float3

@float3 float3 commented Nov 2, 2026

Copy link
Copy Markdown
Owner

Replaces the two plain meters in Today's goal card with a progress bar that looks like a game, and adds a one-line version of it above the deck list.

Design:

  • Goal bar (AnkiquestGoalBar): an 18dp fully rounded track with a blue gradient fill (light #4FA8FF → #2B66D9, brighter in night mode). It has a glossy white stripe along the top and a glowing white knob at the leading edge. Milestone dots sit at 25/50/75% and pop when the fill passes them.
  • Animation: the fill grows from the value last shown that day (remembered per screen) with a slight overshoot, so coming back after studying animates only the gain. When the goal is reached the fill turns gold (#FFD84D → #FFA200) with one shine sweep and a small bounce, once per day. If animations are off (system scale 0, battery saver or AnkiDroid's own setting), it shows the final state without animating.
  • Labels: "48 of 140 cards" on the left and "~13 min left" on the right, using the average answer time from the review log (same as the goal dialog). Backlog goals keep the "today's due cards plus N overdue" line, and the done text replaces the label once reached. The bar's contentDescription is "Daily goal: 48 of 140 cards".
  • Streak chip: an orange pill with a small ring around 🔥 that fills with the review minutes, "7 / 10 min", which becomes "Streak safe" once today counts. The existing streak sentences are its contentDescription.
  • Deck list: a tappable card above the decks with the label, a 10dp version of the bar and the streak ring. Tapping it opens Today. It is hidden when no account is set or the goal is off, and refreshes in onResume, so it updates after reviewing. It goes through AnkiquestDeckPickerHooks.refreshGoal; DeckPicker only gets that one call.

Quest meters are unchanged. New strings are in en/es/de/fr/pt.

Tests: AnkiquestGoalBarTest covers clamping, over-target, reached and gold, labels and the time left, contentDescription, reduced motion, animating from the remembered value (and from 0 on a new day), chip states, and showing, hiding and reusing the deck-list line. AnkiquestHomeScreenshotTest.todayGoal captures Today with a goal at 48/140 and the streak at 7/10.

@github-actions

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Snapshot diff report vs main. Open screenshot-diff for diffs.

  • AllActivitiesScreenshotTest: 2 changes
  • AnkiquestHomeScreenshotTest: 1 change
  • CustomStudyScreenshotTest: 2 changes
  • DeckPickerScreenshotTest: 6 changes
  • DeckPickerTabletScreenshotTest: 1 change
  • NavigationDrawerScreenshotTest: 1 change
  • ReviewRemindersScreenshotTest: 5 changes
All 18 changed screenshots

AllActivitiesScreenshotTest

  • AnkiquestHomeActivity_compare.png
  • AnkiquestHomeActivity_edgeToEdge_compare.png

AnkiquestHomeScreenshotTest

  • today_goal_320dp_compare.png

CustomStudyScreenshotTest

  • tablet_unavailable_deck_compare.png
  • unavailable_deck_compare.png

DeckPickerScreenshotTest

  • bottom_navigation_keyboard_open_scrolled_to_bottom_compare.png
  • deck_list_after_dismissing_create_deck_dialog_compare.png
  • hierarchy_lines_collapsed_compare.png
  • hierarchy_lines_compare.png
  • hierarchy_lines_many_siblings_compare.png
  • keyboard_open_scrolled_to_bottom_compare.png

DeckPickerTabletScreenshotTest

  • keyboard_open_compare.png

NavigationDrawerScreenshotTest

  • navigationDrawer_compare.png

ReviewRemindersScreenshotTest

  • studyOptionsFragmentHost_scheduleReminders_compare.png
  • studyOptionsFragmentHost_systemBars_compare.png
  • studyOptionsFragmentHost_systemBars_scrolledToEnd_compare.png
  • studyOptionsFragmentHost_troubleshooting_compare.png
  • studyOptionsFragmentHost_troubleshooting_systemBars_compare.png

@float3
float3 merged commit d2cb69c into main Nov 4, 2026
36 of 39 checks passed
@float3
float3 deleted the goal-progress-bar branch November 4, 2026 15:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant