What are the steps to reproduce this bug?
- On the main deck list (Deck Picker), long-click a deck.
- Select “Custom study”.
- Select “Increase today’s new card limit”.
- Observe the “Available new cards” (e.g., 23).
- Enter a value that should change the count (e.g., a negative number like -4).
- Click OK and return to the main screen.
https://github.com/ankidroid/Anki-Android/issues/20102
Expected behaviour
Expected behaviour
The new card count on the main screen should update based on the input, respecting the bounds: New Count = max(0, min(Original + Input, Available_Limit)) Example: 23 + (-4) should result in 19.
Actual behaviour
The new card count on the main screen remains unchanged (stays at 23), even though the operation was confirmed.
Debug info
AnkiDroid Version = 2.23.2 (250313087304b98facfc4219c4db10311e91ea69)
Backend Version = 0.1.62-anki25.09.2 (25.09.2 3890e12c9e48c028c3f12aa58cb64bd9f8895e30)
Android Version = 14 (SDK 34)
ProductFlavor = full
Device Info = HONOR | HONOR | HNFNE | FNE-AN00 | FNE-AN00 | qcom
Webview User Agent = Mozilla/5.0 (Linux; Android 14; FNE-AN00 Build/HONORFNE-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/99.0.4844.88 Mobile Safari/537.36
ACRA UUID = 4ab21446-019a-4a57-889d-f55cf1b27099
FSRS = 5.1.0 (Enabled: false)
Crash Reports Enabled = true
(Optional) Anything else you want to share?
Analysis: I think this bug isn’t just about the UI not updating; it’s a backend logic problem. The frontend has min/max limits, but the backend doesn’t. Since users can’t see what’s happening in the backend, it just looks like the app is broken when the numbers don’t match.
I understand the backend logic, and I can infer that this is how the system handles limits internally. However, from a User Experience (UX) perspective, I believe this logic is unintuitive and can still be classified as a ‘bug’ for several reasons:
First, this ‘global limit’ is completely opaque to the user. Since the UI doesn’t show the current backend limit (e.g., 9999), users have no reference point. They might forget what they previously entered, make a typo, or become confused when their input results in no visible change. Most ordinary users—who aren’t necessarily from a Computer Science background—won’t (and shouldn’t have to) deduce the underlying backend math to understand why the numbers on their screen didn’t update.
To improve this, I would like to propose two potential solutions:
Increased Transparency: Explicitly display the current ‘hidden’ limit in the UI (e.g., ‘Current daily limit: 9999’). This gives users a clear reference so they know exactly how much they need to adjust to see a change.
Logic Unification: Align the backend limit logic with the frontend’s perceived bounds. If a user tries to decrease the new card count, the app should calculate the necessary offset automatically to make the visible number match the user’s intent.
I believe either of these changes would make the ‘Custom Study’ feature much more predictable and user-friendly.