ankidroid / Anki-Android

AnkiDroid: Anki flashcards on Android. Your secret trick to achieve superhuman information retention.
GNU General Public License v3.0
7.93k stars 2.16k forks source link

[BUG]: Custom Study Stops Working #16243

Open brishtibheja opened 2 weeks ago

brishtibheja commented 2 weeks ago

Checked for duplicates?

Does it also happen in the desktop version?

What are the steps to reproduce this bug?

  1. Have deck with multiple subdecks
  2. Increase new card limit in each (parent+child)
  3. Increase new card limit in parent deck

This is confusing so I'll try to get a recording

Expected behaviour

works fine

Actual behaviour

stops working suddenly

Debug info

AnkiDroid Version = 2.18alpha9 (7da94c1238199a166310b7db63d53d5dbb40f054)

Backend Version = 0.1.36-anki24.04 (24.04 429bc9e14cefb597646a0e1beac6ef140f226b6f)

Android Version = 11 (SDK 30)

ProductFlavor = full

Manufacturer = realme

Model = RMX2193

Hardware = mt6768

Webview User Agent = Mozilla/5.0 (Linux; Android 11; RMX2193 Build/RP1A.200720.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/123.0.6312.118 Mobile Safari/537.36

ACRA UUID = cf265e01-9693-407f-984d-61ddf9698fac

FSRS Enabled = true

Crash Reports Enabled = true

(Optional) Anything else you want to share?

No response

Research

brishtibheja commented 2 weeks ago

Here's the video

virginviolet commented 2 weeks ago

Here's the video

I broke down the video in steps and made tables showing the relevant changes. What I found out is that you should have increased the child decks again in order to get more cards.

I came up with some terminology.

H = Hungry (wants more cards) E = Exhausted (does not want more cards)

A deck being hungry means that the deck's limit allow for more cards, but the deck is limited by its parent. A parent deck can never be hungry. A deck being exhausted just means that it is not hungry. The deck's limit is utilized to its full potential.

I will call your decks just by alphabetic letters and numbers. Decks C1, C2, C6 and other decks I excluded are not relevant to the demonstration.

Initial state

DECK        ACTION  CHANGE  STATE   NEW CARDS
A           -       -         E       0
A::B        -       -         E       0
A::B::C3    -       -         E       0
A::B::C4    -       -         H       0
A::B::C5    -       -         H       0

--

Step 1 (0:00 - 0:09)

DECK        ACTION  CHANGE  STATE   NEW CARDS
A           +2      +2        E     0→2
A::B        -       -         E       0
A::B::C3    -       -         E       0
A::B::C4    -       -         H       0
A::B::C5    -       -         H       0

Notes

--

Step 2 (0:09 - 0:16)

DECK        ACTION  CHANGE  STATE   NEW CARDS
A           -       +2        E     2→4
A::B        +2      +2        E     0→2
A::B::C3    -       -         E       0
A::B::C4    -       +2        H     0→2
A::B::C5    -       +2        H     0→2

Notes

--

Step 3 (0:16 - 0:21)

DECK        ACTION  CHANGE  STATE   NEW CARDS
A           -       +2        E     4→6
A::B        -       +2        E     2→4
A::B::C3    +2      +2        E     0→2
A::B::C4    -       +2      H→E     2→4
A::B::C5    -       +2      H→E     2→4

Notes

--

Step 4 (0:21 - 0:28)

DECK        ACTION  CHANGE  STATE   NEW CARDS
A           +2      +2        E     6→8
A::B        -       -         E       4
A::B::C1    -       -         E       2
A::B::C3    -       -         E       2
A::B::C4    -       -         E       4
A::B::C5    -       -         E       4

Notes

--

Step 5 (0:28 - 0:32)

DECK        ACTION  CHANGE  STATE   NEW CARDS
A           +2      +1        E     8→9
A::B        -       -         E       4
A::B::C1    -       -         E       2
A::B::C3    -       -         E       2
A::B::C4    -       -         E       4

Notes

--

Step 6 (0:32 - 0:38)

DECK        ACTION  CHANGE  STATE   NEW CARDS
A           +2      -         E       9
A::B        -       -         E       4
A::B::C1    -       -         E       2
A::B::C3    -       -         E       2
A::B::C4    -       -         E       4

Notes

--

Step 7 (0:38 - 0:46)

DECK        ACTION  CHANGE  STATE   NEW CARDS
A           +2      -         E       9
A::B        -       -         E       4
A::B::C1    -       -         E       2
A::B::C3    -       -         E       2
A::B::C4    -       -         E       4

Notes

virginviolet commented 2 weeks ago

Some way of identifying hungry decks might be nice. Maybe they could be grayed out, meaning "sorry buddy, I know you want more, but you will have to wait until tomorrow." It would also be nice to be able to see exactly how hungry a deck is, i.e. how many cards below the limit the deck is. Maybe. I need to take a break from this now.