ankidroid / Anki-Android

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

Adding an option to play/pause *automatic display answer* in gestures menu #8368

Closed AbdelrahmanMahmoudMD closed 7 months ago

AbdelrahmanMahmoudMD commented 3 years ago

Automatic display answer needs an easy way to pause it; considering the user may need to read the card again or needs a little more time to think about the answer.

I checked ankimobile and found that they added an option to make user able to tap on screen to pause/play.

I think it will be great on ankidroid to implement the same thing in the gesture menu, for example (From the gesture menu the user can adjust volume down to pause/play automatic answer display)

photo_2021-03-28_00-11-10

welcome[bot] commented 3 years ago

Hello! πŸ‘‹ Thanks for logging this issue. Please remember we are all volunteers here, so some patience may be required before we can get to the issue. Also remember that the fastest way to get resolution on an issue is to propose a change directly, https://github.com/ankidroid/Anki-Android/wiki/Contributing

Arthur-Milchior commented 3 years ago

Is this a picture from ankimobile? I guess this features makes a lot of sens. I don't use automated answer, but if you use it and state you like to have a gesture to stop automated answer, that's fine by me. I guess there is a slight risk that you start the gesture, then it answers automatically before you end the gesture, but that can't really be avoided.

Do you intend to work on it, or are you just requesting this feature? I'd believe it would be a good first issue

Out of curiosity, do you use both ankimobile and ankidroid? I believe it's the first time I read about someone using both.

AbdelrahmanMahmoudMD commented 3 years ago

-Yes the picture is from Ankimobile. -Regarding the risk of start the gesture, Ankidroid provide customization of volume up and down which is phenomenal in this case. In gesture menu >> User can set the volume up/down >> that makes the feature work using physical buttons with minimal risk of starting the gesture by mistake/mistouch -No, I'm just requesting this feature; I really don't know how to code but I'd love to share ideas

Personally I'm using all versions of anki. Ankidesktop, Ankidroid, and Ankimobile each one is unique on it's own way

For ankidesktop, it's the base for everything, editing card style, organizing the deck, tagging. susbending and unsusbending specific categories specially in huge pre-made decks with tons of cards inside and ultraspeed reviewing with the add-ons support

For ankimobile, I'm using IPad for the unique environment and apps for annotating PDFs and so. smooth butter drag and drop from large text books new cards

For Ankidroid, which I believe is the most important because most of time I not home so I need a small handy tool makes me maintain large numbers of reviews outside the home

AbdelrahmanMahmoudMD commented 3 years ago

This a video showing the menus and how I set it up

https://user-images.githubusercontent.com/79529298/112738153-e669db80-8f68-11eb-8c26-3285135798c2.mp4

AbdelrahmanMahmoudMD commented 3 years ago

And here’s a video from inside showing a scenario where user is having automatic answer display on but want to read the card again, review it or looking for resources beneath the card

https://user-images.githubusercontent.com/79529298/112738279-31382300-8f6a-11eb-96a2-d4cf554e6c82.MOV

david-allison commented 3 years ago

Looks good to me!

Does "Auto Advance" mean "Toggle Auto Advance (Pause/Continue)"

Does stopping auto-advance happen for a single card, and reset it to work on the next card, or does it pause the auto-advance until the gesture is applied again?

AbdelrahmanMahmoudMD commented 3 years ago

Auto advance in ankimobile = Automatic answer display in ankidroid the name of the feature itself is auto advance

Ankimobile >> in the tap menu when I chose auto advance; here it doesn't explain that this is a toggle. it just the name but functions as a toggle, I don't know if I explained it correctly

but what I mean is that in Ankidroid, we won't add toggle called auto advance; no, in ankidroid is called automatic display answer unless you decide to change the name from Automatic Display Answer to Auto Advance

david-allison commented 3 years ago

I understand.

Does stopping auto-advance happen for a single card, and reset it to work on the next card, or does it pause the auto-advance until the gesture is applied again?

AbdelrahmanMahmoudMD commented 3 years ago

I really like the second question, It's really important

I noticed there's a difference between anki-desktop and ankimobile behavior regarding this (Update 1, that happens because ankidesktop doesn't support this feature natively, it's an addon called speed focus addon. however on anki-mobile it has native support for it)


In anki-desktop, The option is to pause only. for example; I'm doing a card and I need to think about it more time, all I need to do is press P that will pause the feature, but when I choose again/good the card will be flipped showing the answer and automatic answer display will start counting again on it's own without any need to toggle it back

In anki-mobile, however, The option is Toggle > Stop/Play meaning if I'm doing a card and I need to think about it more time, I tap the screen or volume key (whatever the gesture I set) It will complete stop auto advance which mean if I chose (again/good) it will not start on it's own unless I toggle it back


My Perference is that anki-desktop seems more logic, why I'm even pausing the feature ? for checking something reading more info. Making it Pause saves you time because it's working only in 1 step >> pause, which makes review very fast and time efficient

But on Anki-mobile it's a 2 step process, I need to toggle it stop, then enable it again, which is quite annoying and makes my review process a little bit slow

of course if we can emblement both, it's okay for me but if we are going to choose one, Personally would like the Pause behavior rather than the Stop

(I didn't even realized the difference before your question) :D

AbdelrahmanMahmoudMD commented 3 years ago

Comment to avoid bot stale and thread closure (1)

kartikeysaran commented 3 years ago

Can i work on this issue ?

Arthur-Milchior commented 3 years ago

There is already #8781 that is related. I think we should wait until it's merged or abandoned before touching more pause/play

github-actions[bot] commented 3 years ago

Hello πŸ‘‹, this issue has been opened for more than 2 months with no activity on it. If the issue is still here, please keep in mind that we need community support and help to fix it! Just comment something like still searching for solutions and if you found one, please open a pull request! You have 7 days until this gets closed automatically

github-actions[bot] commented 3 years ago

Hello πŸ‘‹, this issue has been opened for more than 2 months with no activity on it. If the issue is still here, please keep in mind that we need community support and help to fix it! Just comment something like still searching for solutions and if you found one, please open a pull request! You have 7 days until this gets closed automatically

mikehardy commented 3 years ago

Related #8781 was merged. The whole gesture system itself was just reworked and that landed I think in #9142 / #9460. This is anki ecosystem compatibility and so should remain open. I believe it's available for work, but perhaps collaborate with @david-allison-1 on how to do a keyboard / gesture mapping if it's not obvious

david-allison commented 2 years ago

Added AutomaticAnswer.isDisabled in c5978ab3c67cf6e3b695c194d411d8e5ba12aced

This makes this an easier action to accomplish.

Should require a new element in ViewerCommand, and a handler for the ViewerCommand in AbstractFlashcardViewer.executeCommand

shreyadenny commented 2 years ago

Hello! I'm new to Open Source and trying to work on this issue. Please let me know if I'm going in the right direction?

in AbstractFlashcardViewer.executeCommand

case COMMAND_PAUSE_AUTOMATIC_DISPLAY_ANSWER:
                pauseAnswerDisplay();

in ViewerCommand

COMMAND_PAUSE_AUTOMATIC_DISPLAY_ANSWER(R.string.pause_answer_display, 38);

and string:

 <string name="pause_answer_display">Pause Answer Display</string> 
Arthur-Milchior commented 2 years ago

I @shreyadenny. Do you want to be assigned to this issue?

Regarding the text, I'd state to use "Auto advance" so that we are similar to ankimobile

It would be easier for me to review your code proposal in a PR, because this would allow me to get context. A lot of code here is going to be similar to code already existing, after all, we already have a lot of gesture. If the code you add looks like code already existing, that should be good.

The only exception being the method which will actually pause/restart the auto advance, which will have new code, as I believe that nothing similar to this feature has been implemented yet

euu2021 commented 2 years ago

Please, go on with this. My hands get exhausted after reviewing hundreds of cards, even if using a joystick. I think my only option is to use automatic display answer. And pausing is important to make it efficient. Thanks,

AbdelrahmanMahmoudMD commented 2 years ago

Please, go on with this. My hands get exhausted after reviewing hundreds of cards, even if using a joystick. I think my only option is to use automatic display answer. And pausing is important to make it efficient. Thanks,

I'm sure it will be added eventually ! :)

euu2021 commented 2 years ago

Btw, this seems to be a workaround that achieves the "pause" behavior: if you activate another app in the middle of the counting, the automatic display answer will be paused when you go back to anki. So, you can use an app like Macrodroid to create a floating button that performs a quick dummy switch back and forth to another app.

BrayanDSO commented 2 years ago

I'm working on this

Update: I need to fix #11046 first in order to deliver this feature with a nice user experience and no bugs. Gotta think a clean way to solve this, which may be difficult

AbdelrahmanMahmoudMD commented 2 years ago

It's okay! thanks for your great contribution ^^ alot of people waiting for this ^_^

oriooctopus commented 1 year ago

Is there any update on this? πŸ™

mikehardy commented 1 year ago

We're laser-focused on getting scoped migration done so there are not many updates anywhere else with regard to features etc. Bear with us while we get that done and out the door in release 2.16

david-allison commented 7 months ago

Duplicate of https://github.com/ankidroid/Anki-Android/issues/15519, which is being worked on