advplyr / audiobookshelf-app

Mobile application for Audiobookshelf
https://audiobookshelf.org
GNU General Public License v3.0
1.34k stars 174 forks source link

[Feature request] (Android/iOS) Allow tapping screen to turn page in e-reader #800

Open nerdpersonthing opened 1 year ago

nerdpersonthing commented 1 year ago

Currently, when using the e-reader mode to read (non-audio) e-books in the Android and iOS apps, the only way to turn the page forward or back is using a swipe gesture.

In most e-reader apps, as well as most e-reader devices (Kindle, Nook, etc), simply tapping different regions of the screen also works to turn the page in the same way. As an example, see the attached screenshot from Calibre's webserver.

Screenshot_20230721-172538

It would be great if this could be implemented in Audiobookshelf for accessibility and ease of use.

One potential implementation that would make sense to me would be adding an option in the "Ereader Settings" menu - a selector labeled "Turn pages with:", with options "Tap", "Swipe", or "Both". In my opinion, "Both" should be made the default, as this is the behavior in the vast majority of other e-readers I have used.

advplyr commented 1 year ago

Have you seen settings in other ereaders that allow you to change how the page navigation works?

nerdpersonthing commented 1 year ago

Sure, here are a few examples.

Calibre doesn't actually have any options to configure its page navigation, to my knowledge - it just functions with both tap and swipe, and doesn't seem to have any way to customize that behavior.

Meanwhile, ReadEra (my preferred document reader on Android) does have some pretty extensive options to customize how its page navigation works - see the screenshots below.

Screenshot_20230721-175046

(It refers to navigation by tapping as "Flipping by touch.") Screenshot_20230721-175004

Scheme 1: Screenshot_20230721-175637

Scheme 2: Screenshot_20230721-175029

Scheme 3: Screenshot_20230721-175035

I don't think customization this extensive needs to be in audiobookshelf; merely being able to enable/disable navigation that functions like Scheme 1, or Calibre's layout from the original post, would be sufficient IMO. (Though having the option to navigate via volume buttons as well would be nice.)

KaiStarkk commented 11 months ago

Agreed that detailed customization isn't needed, but a tap option would be very helpful as it prevents ghosting and works better on devices with lesser CPU / refresh rate.

dathbe commented 11 months ago

I support this. I would say that I think the later mock-ups in this thread are better than the one in the original post because most ereaders I’m familiar with will bring up the settings/options when you tap in the middle, but will turn the page if you tap the edge of the screen.

goodeye1 commented 5 months ago

I would definitely be interested in this, the swipe is a big throw off for me coming from the kindle app and Libby where I’ve used the tap to swipe page setting for years.

KaiStarkk commented 1 month ago

Appears to be possible in upstream, although their docs are down. Helpful references: https://github.com/futurepress/epub.js/issues/46#issuecomment-530419388 https://github.com/futurepress/epub.js/issues/1400

KaiStarkk commented 1 month ago

Just noticed, the default behaviour in-app is now to turn the page instantly. Not sure if anyone feels this issue is still necessary? This has addressed my major concern of power draw and ghosting.

nerdpersonthing commented 1 month ago

Just tested it again, that doesn't appear to be the case for me on Android 0.9.76. Tapping the page still brings up the menu, with seemingly no option to instantly turn the page.

KaiStarkk commented 1 month ago

To clarify it used to be that there was a page turn animation which was the crux of the issue for me — you’re right that it doesn’t page on a tap, but it does now instantly page instead of animating which is an improvement from the power and e-ink standpoint

On Sat, 26 Oct 2024 at 4:04 PM, nerdpersonthing @.***> wrote:

Just tested it again, that doesn't appear to be the case for me on Android 0.9.76. Tapping the page still brings up the menu, with seemingly no option to instantly turn the page.

— Reply to this email directly, view it on GitHub https://github.com/advplyr/audiobookshelf-app/issues/800#issuecomment-2439424314, or unsubscribe https://github.com/notifications/unsubscribe-auth/AANENUG3GWVWPFZRYHG2CXDZ5NEJZAVCNFSM6AAAAABJ2GG4RSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMZZGQZDIMZRGQ . You are receiving this because you commented.Message ID: @.***>

dathbe commented 1 month ago

Animation was not my issue. By far the most common interaction I have while reading (I suspect others too) is turning a page. That should be as simple as possible a gesture. Nothing is simpler than a single tap with a single finger. Instead, that brings up a menu I rarely need. And to turn the page I have to put the finger down, move it, then pick it up. So the request is regions on the screen so that menu only comes up if, say, you tap the top, bottom, or center of screen. Tapping left side will turn page back. Tapping right will turn the page forward. This is relatively standard reader behavior in my experience. But, to reiterate, it’s not secondary effects like battery life.

I’ve found the abs is not consistent about saving my reading position with books, so I’ve switched back to kavita for my e-reading (it does allow single tap page turning, too). I use abs exclusively for audiobooks now. But will give it another run when some of the kinks are worked out.

nerdpersonthing commented 5 days ago

@dathbe: Animation was not my issue. By far the most common interaction I have while reading (I suspect others too) is turning a page. That should be as simple as possible a gesture. Nothing is simpler than a single tap with a single finger. Instead, that brings up a menu I rarely need. And to turn the page I have to put the finger down, move it, then pick it up. So the request is regions on the screen so that menu only comes up if, say, you tap the top, bottom, or center of screen. Tapping left side will turn page back. Tapping right will turn the page forward. This is relatively standard reader behavior in my experience. But, to reiterate, it’s not secondary effects like battery life.

Agreed - my issue here was much more with the touch gestures than the animations. It's cumbersome and awkward to navigate by swiping, and in my opinion, tap-to-turn-page should be enabled by default. At a bare minimum, it should be an option.

@KaiStarkk: To clarify it used to be that there was a page turn animation which was the crux of the issue for me — you’re right that it doesn’t page on a tap, but it does now instantly page instead of animating which is an improvement from the power and e-ink standpoint

Curious - for me, the page turn animation does still seem to be present on v0.9.77-beta, on both of my Android devices (a Moto 5G Ace and a Boox Page).

Regardless, I think having an option to disable animations entirely would be great (for e-ink devices and others), and it could also apply across the app, not just in the ebook interface. This is outside the scope of this issue, though, so I've created a new feature request for it (https://github.com/advplyr/audiobookshelf-app/issues/1398).

nerdpersonthing commented 5 days ago

Also, it has been over a year since I opened this request - @advplyr, may I ask what the status of this feature is, and if there are currently any plans to implement it? (Either way, I do understand, and I appreciate all the time you already put into this awesome piece of software.)

If not, I'd be happy to take a crack at trying to add it myself, but it would be my first time contributing to a major GitHub project and I may have to learn the ropes a bit :)