ankidroid / Anki-Android

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

Simplify "Pronunciation Check" feature for Reviewer #16185

Closed promike-github closed 4 months ago

promike-github commented 4 months ago

Is your feature request related to a problem? Please describe. I appreciate the great work done on Ankidroid. However, the new "Check Pronunciation" feature feels a bit overwhelming. It takes up too much space on the display and slows down card progression due to the increased number of touches required.

Describe the solution you'd like I would like a simplified mode in the settings that resembles the old pronunciation check feature. This mode should be more streamlined and efficient, making it easier to navigate through cards quickly.

Describe alternatives you've considered A simplified mode within the settings seems to be the most straightforward solution.

Additional context Thank you for the excellent work you do on Ankidroid!


Cause

welcome[bot] commented 4 months 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

david-allison commented 4 months ago

@promike-github

Could you quickly work through what your ideal process would look like, on a tap-by-tap basis to be sure we're minimising the overhead of the functionality while reviewing

@criticalAY FYI

promike-github commented 4 months ago

Thank you for your prompt response.

I was completely satisfied with the previous "Check pronunciation" feature. I'd appreciate it if this option could be made selectable within the menu system.

I have now downgraded to Anki because, for me, it was more efficient with the old one. I am attaching a picture of the old feature for reference. Screenshot_20240415_163316_AnkiDroid

Thank you for considering this request. Edit: Of course, a tap and hold and a release automatically playing the recorded audio would be even more efficient, but I'm happy with the old one too.

criticalAY commented 4 months ago

Of course, a tap and hold and a release automatically playing the recorded audio would be even more efficient, but I'm happy with the old one too.

I am not in favour of reverting the changes (the old recorder was not ideal in terms of UI/UX), though can alter the functionality as suggested minimising the steps. @david-allison I am planning if I can take it on during GSoC period (if selected/ or even if not selected) because I am going to peel of the old multimedia activity code anyway. I can separate the design for audio players in both Recorder and reviewer.

david-allison commented 4 months ago

@promike-github We're not going to go back directly to the old design, but we can make changes going forwards

What can we do with the new design to make things easier? Hiding the recording progress and turning it into an animated icon based on volume?

promike-github commented 4 months ago

@david-allison I totally understand the direction should be forward and not backwards.

Just so you know, I haven't been using the latest version much because the new design kind of slowed me down with all the extra taps it needed. Plus, it takes up quite a bit of space on the screen, especially when there's a lot of info or images to deal with.

I really liked how simple the old design was - record, stop, and play back in just three taps without having to "save" anything. (I think a tap and hold feature combined with auto replay would be a game-changer in terms of efficiency.)

As for the idea of hiding the recording progress and using an animated volume-based icon, I'm not sure how much visual feedback really adds to the studying experience. It might just end up taking up space on the card without adding much value.

If you could personalize it in the settings a little bit, that would be fantastic, because I'm sure there are people who like it this way.

criticalAY commented 4 months ago

Tap hold -> records audio Release reorder button -> plays the audio + option to replay and reset

This would remove few steps from the existing structure. Is this fine ?

david-allison commented 4 months ago

The idea of replacing the visualisation with an animated volume indicator for the reviewer is to save space vertically (I'm thinking similar to Shazam)

I'm onboard with "press & hold"

@BrayanDSO would you see this functionality in Android or in HTML after the Reviewer redesign?

criticalAY commented 4 months ago

David the way we use the audio recorder is just by simply injecting the view to a layout we have in reviewer so I don't think we will have a problem here

BrayanDSO commented 4 months ago

@BrayanDSO would you see this functionality in Android or in HTML after the Reviewer redesign?

I'm not proficient enough in Javascript to tell if all of that could be done with it, or if it is worth it.

I don't use it personally, so I'll probably just go with the easiest approach or leave it to someone else when the time comes

promike-github commented 4 months ago

Tap hold -> records audio Release reorder button -> plays the audio + option to replay and reset

This would remove few steps from the existing structure. Is this fine ?

Yes, thank you.

One suggestion could be to make the button multifunctional to streamline the feature further and save space. Most users access Ankidroid on their phones, so having a button that serves multiple purposes could be beneficial.

For example, users could record audio by holding down the button, and upon release, the recorded audio would play back immediately. During playback, the button could switch to either pause or stop (visually too), allowing users to interrupt playback if needed. With a single touch, users could stop or start the recorded audio over and over again, and a press and hold could initiate recording of new audio (overwrite).

This approach could cover various scenarios efficiently while maintaining a user-friendly experience. These are my two cents.

david-allison commented 4 months ago

I personally wouldn't want audio to playback immediately, I'll consider either making it configurable, or seeing how we can make things work

I can see uses for:

I think making the button multifunctional (hold/tap) is the right move

criticalAY commented 4 months ago

I will ping you for your input when I start working on it (Draft)

david-allison commented 4 months ago

@promike-github This may take a little while to get off the ground, and we're fairly close to a 2.18 release

What would you define as the 'minimum changes' needed to get you back onto the current release cycle of AnkiDroid in 2.18 (with the expectation that we continue to improve this feature)

BrayanDSO commented 4 months ago

image

A floating horizontal recorder like iOS's Dynamic islands can fit the idea well

promike-github commented 4 months ago

@promike-github This may take a little while to get off the ground, and we're fairly close to a 2.18 release

What would you define as the 'minimum changes' needed to get you back onto the current release cycle of AnkiDroid in 2.18 (with the expectation that we continue to improve this feature)

That's ok. Changes take time, and there's no rush from my end. The most significant issue for me is that a lot more information gets pushed out of view by the visual feedback, and I have to separately approve the recording to listen to it.

I believe these are just temporary files, and in the past, if I hadn't gotten it right the first time, I could always re-record it. The additional step made me inclined to skip the pronunciation part as it felt a bit cumbersome.

If visual feedback is necessary, @BrayanDSO 's suggestion appears elegant and unobtrusive enough not to disrupt the study flow.

I flip through 500-700 cards every day. Even if it just takes a second to hit the extra save button, it adds up to losing 10+ minutes daily, which could mean losing hours each week. The old design wasn't too complicated, but I found it worked better for me.

MarAdriatne96 commented 4 months ago

Hello first of all Thank you for your work.

Unfortunately, since the last updates of AnkiDroid (around Mar 22), with the new style and options for recording when the user is reviewing flashcards, I’ve been experiencing that after any number of recordings to check whether my answers are correct or not, suddenly I can’t record my voice anymore unless I exit the deck and enter it again (sometimes multiple times) or even exiting the app completely, closing it and open the app again. Sometimes, if I just move to the next card, the problem is “fixed,” but this solution doesn’t always work. It’s like the recorder is frozen because none of the buttons work when this happen.

Also, I think it occupies a large portion of the screen. As I read in a previous comment it would be nice if the recorder were like when you record a voice note in WhatsApp for example, and with the option to hear it when the user wants and not an automatic play.

Thank you for your time!

criticalAY commented 4 months ago

since the last updates of AnkiDroid (around Mar 22), with the new style and options for recording when the user is reviewing flashcards,

Did it work fine for 2.17.0? as this behavior is unlikely to happen and shouldn't happen

Also, I think it occupies a large portion of the screen. As I read in a previous comment it would be nice if the recorder were like when you record a voice note in WhatsApp for example, and with the option to hear it when the user wants and not an automatic play.

Suggestion noted

MarAdriatne96 commented 4 months ago

Did it work fine for 2.17.0? as this behavior is unlikely to happen and shouldn't happen

This is the version I have (maybe it's my device but as I said This didn't happen previously to the updates, with the other recorder was everything okay the problem is with these new one):

AnkiDroid Version = 2.17.6 (568538896be943818ca793dd2635822265712def)

Backend Version = 0.1.34-anki23.12.1 (23.12.1 1a1d4d5419c6b57ef3baf99c9d2d9cf85d36ae0a)

Android Version = 9 (SDK 28)

ProductFlavor = play

Manufacturer = motorola

Model = moto e6s

Hardware = mt6765

Webview User Agent = Mozilla/5.0 (Linux; Android 9; moto e6s Build/POBS29.288-60-6-1-29; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/123.0.6312.80 Mobile Safari/537.36

ACRA UUID = aeee54ab-aca6-4feb-b762-90e0169d06ed

Crash Reports Enabled = true

david-allison commented 4 months ago

I've been working with @criticalAY on a redesign and this is what we've come up with:

image

@promike-github @MarAdriatne96 could I have your initial thoughts?


Functionality changes will also occur:

david-allison commented 4 months ago

Logic of the recorder currently:

stateDiagram-v2
    [*] --> Empty

    Record --> Playback :💾
    Record --> Empty :🚮
    Playback --> Empty :🚮
    Empty --> Record :⏺️

    state Record {
        r1: Recording
        r2: Paused

        r1 --> r2 : ⏸️
        r2 --> r1 : ⏺️
    }

    state Playback {
        p1: Paused
        p2: Playing

        p1 --> p2 : ▶️
        p2 --> p1 : ⏸️
    }

Planned logic of the recorder if opened from the reviewer

stateDiagram-v2
    direction LR
    [*] --> Empty

    Empty --> Recording : ⏺️
    Recording --> Empty : ❎
    Recording --> Playback : ⏹️
    Playback --> Empty : ❎

    state Playback {
        [*]  --> p1
        p1: Paused
        p2: Playing

        p1 --> p2 : ▶️
        p2 --> p1 : ↩️
    }

Pending Questions:

MarAdriatne96 commented 4 months ago

@david-allison I love the design and the idea!

I suggest that when the user past a card either again, hard, good or easy the recorder should be empty again, so is ready to answer the next card. And when the card is flipped the recording should not disappear so the user can check their answer with the other side the card.

However That's the way I use that tool, I don't know if It would be good to add a button to save that recording so it can be listening in the next card as well if the user wants. Another thing I would like to point is the place where is situated the recorder, maybe it's not very confortable if the user have to hold the button (like WhatsApp) to record their voice being the button in that place.

I'm going to add another possibility so you will have more options. In this way should be more confortable hold the button during the recording (I forgot to add the recorder's timer):

screenshots ![WhatsApp Image 2024-04-21 at 10 05 14 PM](https://github.com/ankidroid/Anki-Android/assets/167715307/b74ef32b-c7ef-4eae-ad8a-e14e4f5473ce) ![WhatsApp Image 2024-04-21 at 10 05 14 PM](https://github.com/ankidroid/Anki-Android/assets/167715307/63b3cda1-b1cd-4613-8e95-4c186cfdfb8b) ![WhatsApp Image 2024-04-21 at 10 09 56 PM](https://github.com/ankidroid/Anki-Android/assets/167715307/1df314b4-f7eb-4d93-87ae-307f099513b9) ![longtext](https://github.com/ankidroid/Anki-Android/assets/167715307/534dea45-8c3e-4a25-8207-09836ca2c3b3)
david-allison commented 4 months ago

Here is the final implementation

https://github.com/ankidroid/Anki-Android/assets/62114487/6fb5c329-152e-4c89-b231-f2ac2ac4395c

Moving the recorder to the bottom of the screen is a great idea, and likely better handled when we redesign the Reviewer

If there are issues with the video, they can be fixed, do let us know

Hold to record has also been enabled

promike-github commented 4 months ago

Sorry for the delay in getting back to you, I was really busy. Just watched the video, and wow, it blew my mind!🤩 Moving the recorder to the bottom of the screen is such a great idea. It could make things easier for people who prefer using the main buttons (Show Answer and friends) over gestures, especially on larger screens.

Speaking of the recorder button (check pronunciation), it's like a hidden treasure in the app, isn't it? I've recommended AnkiDroid to a bunch of people over the years, but many of them miss out on the voice recorder feature because it's not immediately visible and needs to be enabled separately in the card menu (you may refer to it differently). And those "dangerous" buttons like "Delete note" can be a bit scary for some users, especially for the older ones.

I've noticed that "Check Pronunciation" is enabled, it disappears when they leave the deck, which means they end up not using it much. (It's interesting how the whiteboard function stays on while the pronunciation check doesn't.) Maybe if the feature could stick around until it's turned off (especially if it does not take up much space) or remember the decks it was used on, it could make things more user-friendly, especially for those who aren't as tech-savvy.

Thank you for your excellent work.

david-allison commented 4 months ago

Thanks!!! And thanks to @criticalAY for guidance on the design

With apologies, the 'hold to record' had some additional review-based feedback, so it's likely delayed to 2.19 (I wanted the majority of the redesign in 2.18, rather than blocked on 'hold to record')

This can be tracked:

I'm going to move further improvements to a new issue (please subscribe), but agreed on all counts

We've been discussing a new design for the Reviewer in 2.19, and 'bottom of the screen' will fit nicely I feel. Screenshot below

![image](https://github.com/ankidroid/Anki-Android/assets/62114487/74ce684a-e6c8-45c6-9bb2-81dceacad8c0)