[Android] Flaming Durtles - Android app with offline support

Yes, isn’t that what you wanted? If not, could you give me a little more detail about what you want? Perhaps I just misunderstood you.

That’s how the review system works already. If you get an answer wrong, that question is automatically shuffled back into the queue, and it will come around again later in the session at a random point. And that repeats until you get the question right.

All subject to your ordering settings, of course. If you order by level, for example, the question will be shuffled in among the other items of the same level. And settings like reading/meaning back-to-back also change the ordering rules drastically.

I think what @Sobhanmp ment, is something I wanted to request, too. Currently, after you give a wrong answer, it’s possible that the same item comes back immediately. Some delay would be nice in these cases.

1 Like

Ah. Well, I’ll have a look at it, but it’s not as simple as it sounds, since then it wouldn’t really be random anymore. Because of the wrap-up limit of 10 items, the randomness is already reduced by a lot and the odds of getting an item back immediately are pretty high. If I start fudging the shuffling too much, the result becomes too predictable.

It’s like the Spotify thing. When Spotify implemented a feature to randomly shuffle playlists, people started complaining that the shuffles were not random. They were, but random shuffles would regularly generate noticeable patterns because that’s just how randomness works. Spotify tried to explain that to their customers, but failed. So now, when you shuffle a playlist on Spotify, what you get is not a random shuffle at all, just a shuffle that feels random to most people. Spotify’s shuffle is only about enjoying your music, but not enough randomness in WK means the SRS is crippled.

I’ll see what I can do, but I don’t want to pull a Spotify and hurt the SRS by removing too much randomness.

I think what they are asking for is similar to the random shuffling I had suggested being applied after the filter was taken into effect. Basically, if you answer something wrong, it is placed back into the queue randomly within it’s filtered area. However, many times you may only have one or two items in that filtered area.

For instance. I have mine set to filter first on level and then type. I use a limit of 20 items. So, if I have 1 item at level 5 and the rest of the items are at a higher level, no matter how many times I try to skip the item, it will always be the next one because there is only one item at level 5. Instead, if I fail an item or request to skip am item, it would be nice if the item could be inserted randomly into the queue of items and ignore the filter ordering.

The idea would be to prevent getting the same item immediately. So you give your mind a small period to forget and actually try to recall.

I have a skip button for one of mine which I sometimes use for this purpose. However, since many times the item I’m failing on is one I’ve failed on repeatedly before, it will be the only one at that level. So I get stuck answering it immediately.

Hey guys! Love the app; been using it. I seem to have encountered a bug where right after I complete my reviews, the app syncs and then the same reviews pop right back up… I’ve done this set of 53 reviews three times now :sob:

I’m thinking of just doing these a fourth time on vanilla WK and see if that fixes it, but I’ll be scared if I can’t trust Flaming Durtles to save my work.

As for how this happened, I’m not certain, but I suspect it might be because I initially did a set of 100+ reviews and then swapped out of the app before it was done syncing. Do we need to leave the app on full focus to allow the background tasks to finish syncing?

Thanks and sorry if this has been addressed before! I couldn’t find anything about it but the thread is long.

EDIT: I went ahead and redid the reviews on vanilla WK and it still happened, even within WK itself!? Is my WK busted somehow? When I completed the 53 reviews, the summary only showed 2 and then “More items became available while you were doing your reviews” – the same 53 again :sob: the heck is going on… lol.

I previously made it to level 11 before resetting, and never had this problem before…

There seems to have been some strange issues with WK just now, a few users are also reporting problems with the site. Here’s another example of a similar problem, including a response from the devs: Repeating reviews (again) . So I suspect you are just running into those problems and not an app problem.

But I’ll answer your question about the syncing anyway:

If you’re online, every item is synced immediately as soon as you finish it, so normally your sync will be completely finished by the time you finish your session. If you have unlocks the app will do an extra sync after you finish the session just to make sure you see those unlocks immediately.

But if you are offline during the review session, the sync will only start when your device comes back online. You’ll have to open the app for a moment to kick off the syncing process (unless you have background sync enabled), but once it’s started it will continue in the background even if you close the app.

Usually, the only reasons for a review result to be rejected by the WK API is if you did the review on the site or another app already, or if your device time is set incorrectly.

I’m testing your suggestion right now (I have a big update coming, I’m doing a lot of extra testing to make sure it’s all good), and I’m considering how to approach xxllua’s suggestion in a good way.

But ever since the app first launched I have resisted suggestions to fudge the shuffling when ordering is enabled, meaning that items might be shuffled into another sorting bin than where they’re supposed to be. And I’ll continue to do so.

It’s not really a technical behind-the-scenes issue. It would require a big overhaul of how the session ordering works, but I wouldn’t let that stop me. I’ve done bigger behind-the-scenes overhauls for just minor convenience features. It’s more that the whole re-ordering functionality would become a mess.

If you (for example) set the ordering to ‘Level’, then you’re expecting level 20 items to come before level 21 items. If I start shuffling level 20 items among level 21 items, for whatever reason, then some people are going to be confused and/or annoyed by it and want it to stop. And before you know it there are a dozen options to tweak the shuffling to everybody’s taste and it becomes impossible to figure out what’s going on. The app is already overloaded with more settings than is reasonable, and sometimes it’s quite hard to even explain what a setting does to a new user.

Your suggestion is a good compromise, I think, which is why I’m building it quickly now. Basically it’s an all-or-nothing thing: either the ordering is strictly adhered to throughout the entire session, or it’s just completely abandoned after the item selection has been done. That’s simple enough to explain and support.

2 Likes

Thank you so much, and I’m so sorry for assuming Flaming Durtles was the problem! It seems the WK devs fixed the blip and I was able to get those reviews down properly this time :blush:

As for syncing, hmm, I’m pretty sure it said it was performing 100+ background tasks right after I finished 100+ reviews. Did it wait to do the sync because I have the Undo button active? This part’s not a huge deal, just curious about what it’s doing.

Thank you!

No worries, it’s cool :slight_smile:

Ah yes, I forgot about that setting.

Normally, as soon as you finish one item, i.e. answered both meaning and reading correctly, the result is committed and can’t be undone anymore, and the sync is scheduled for immediate execution. And if you’re online, the sync is started immediately.

If you have delayed processing enabled, and you finish one item, the result is stored locally in the database, but it’s held back - it can still be undone, and if you abandon the session without finishing it normally, all of the results of the session will be completely lost. And when you finish the session, then all of the review results are committed at once, and all of them are scheduled for syncing in one go.

Other than that it all works the same. You need to have the app open so the sync can start, but once it’s going it will keep going in the background.

That makes a lot of sense! Sure enough, I seem to have “delayed processing” enabled. Maybe I turned it on thinking it was required to use the undo button normally – if that’s not the case, I think I have no need for it and will turn it back off. That should make things a little safer for future sessions.

Thanks for the quick responses and for making such a great app! My WK life is a lot easier with it – my last stint with WK was browser-only and I eventually fell off the boat, but after resetting and having this, it’s much easier to stay on top of reviews every day. Here’s to making it farther this time!

If you have delayed processing enabled, then you get unlimited undo, meaning that you can always undo all the way back to the start of the session. Without that option, undo only works up to the point of the last completed item, since completing an item commits the result for syncing - it’s a hard wall that you can’t undo across.

With or without that option, you can always undo an incorrect answer immediately after you make it, which is the most important thing. Most people don’t need the delayed processing option.

Got it! That’s perfect~ Thanks again!

Okay, so a thing just happened… I have just been accused in email of being racist because the APK file for Flaming Durtles contains the words ‘blacklist’, ‘whitelist’ and ‘whitespace’. It was a rather lengthy and abusive message.

I ignored the email because I refuse to have any kind of online discussion about racism anymore. The subject is so incredibly emotionally charged, especially now, that it’s effectively impossible to have a rational discussion on the subject anymore.

So I’m just going to say this once, and move on. I do not want to have a discussion about this, this is just a statement.

  • Flaming Durtles contains the words “blacklist” and “whitelist” because it has to. Those two words are used in the WK API, and for FD to function correctly it must know and recognize those two words. Recognizing them is the only purpose for which they appear. All occurrences of these words are hidden, i.e. they are not visible to a normal user.

  • Flaming Durtles contains the word “whitespace” because that is the standard term for a category of spacing characters, and I need to use that word because the Android standard library (based on the Java standard library) uses it as well. Interacting with the standard library is the only purpose for which that word appears. All occurrences of this word are hidden, i.e. they are not visible to a normal user.

  • The words “black” and “white” appear frequently in Flaming Durtles, sometimes in a way that is visible to a normal user. In all cases, the words “black” and “white” are only used to identify colours for UI elements in the app, and for no other reason.

  • The word “master” appears frequently in Flaming Durtles, often in a way that is visible to a normal user. This is because the word “master” is the name of one of WK’s SRS stages. The word “master” does not appear in any other meaning or context. The word “slave” does not appear in Flaming Durtles.

This is the full extent of the use of the words “black”, “white”, “master”, “slave” and their derivatives in the app. If you have a problem with this, I suggest you stop using Flaming Durtles and WaniKani. If you think I am racist because of this, that’s your problem. Not mine.

29 Likes

Wow, that’s ridiculous

11 Likes

That is the most profoundly uninformed email I have read about lately. Perhaps that person should take things up with Gutenberg, as whitespace is a basic typesetting term since like the 1600s?

Here is some love, @ejplugge!! <3 <3 <3

8 Likes

I personally use this feature to prevent items from burning when I don’t think I’m ready. Especially when my answer feels like it’s a guess and I don’t feel confident I will always give the same answer. I will undo and intentionally mark it wrong so I can continue reviewing.

In German, it is not white, but empty (Leerzeichen, Leerraum), so Gutenberg cannot be made responsible.

3 Likes

I am sorry you went through that. Those terms are standard programming jargon. How people even looked at your source code is beyond me. Especially considering they really would have had to go out of there way to see this kind of information.

1 Like

I did some thinking last night of how to maybe make the ordering better and give a better sense of randomness.

Instead of reordering the items in a filtered subgroup in a random order, keep the items in the filtered order. But, if you get a item wrong, then shuffle it back into the list somewhere randomly. That way, the initial ordering is kept. It will only be placed in a random later spot if it is skipper or wrong.

I think I’d prefer that honestly to just randomly ordering the subgroup.

Also, it may be good to check that the card isn’t placed randomly back at it’s same position and instead is placed at least one card away.