mihonapp / mihon

Free and open source manga reader for Android
Apache License 2.0
10.32k stars 471 forks source link

Accessibility-Granular scrolling when using volume buttons/external controller #1008

Open Jaykoerner opened 3 months ago

Jaykoerner commented 3 months ago

Describe your suggested feature

I have RSl in my wrist so I generally use a Bluetooth remote(generally a spare android tv remote, fyi both the volume and directional buttons seem to work fine for this) to scroll through pages, this is completely fine paged series and still acceptable for vertical/webtoons but would be improved by having more flexibility in scrolling increments, currently it's either a fixed amount based on what seems to be screen hight when at full width(irrespective of actual zoom) or full pages.

Other details

I am not sure on best implementation of this, the three options I can think of all have trade offs(granted any would be a improvement for my use case)

1 keep the scrolling steps based on the image at max width

2 base the scrolling steps based on current view of the image

3 fixed pixel scrolling increments(this one seems the least usable)

Regardless of the option chooses a slider like what's used for the padding options seems the most appropriate for the actual selection.

It's not a big deal for me if it's added I just thought I would make the request.

Acknowledgements

mm12 commented 2 months ago

I'm sorry I opened the wrong issue and commented this

Jaykoerner commented 1 month ago

Upon Further investigation scrolling increment for vertical readers is set in a variable called scrolldistance set in this file app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt

It is set to a fixed value of screen height*3/4 and as far as I can tell that's applied to the vertical pixels of the default viewport to scroll and not the actual viewport after padding or zoom is applied (less than ideal in my opinion since it gives a different percentage of the screen to scroll based on padding and zoom, this is especially apparent if heavily zoomed in, I think this borders on the territory of being a bug?)

Given the current way it's derived, at least for my use case being able to set it to instead be steps of 1/4 screen height would be nice,

Regardless of my ability to properly implement this(I'll probably give it a shot but no promises) at the very least I now know what to change to be able to at least suit my own needs and build from source since I have only a mediocre ability to read most languages let alone write them,

Also sorry for the constant edits I will stop(for real this time, I tested my low resolution theory leading to different scrolling distances and it did not prove sound,)