nightwhistler / pageturner Goto Github PK
View Code? Open in Web Editor NEWAndroid e-book reader with cloud synchronization
Home Page: pageturner-reader.org
License: GNU General Public License v3.0
Android e-book reader with cloud synchronization
Home Page: pageturner-reader.org
License: GNU General Public License v3.0
Right now the app first does a server sync and then starts to load the book. This can take a long time when the network connection is slow and / or the book is big. It would give a nice speed increase to do these 2 things in paralel.
If an image is larger than a full page, it's possible to get stuck when in paged mode.
It's the only animation we're currently missing.
Make it configurable how progress should be displayed.
Unanswered question: should pages be "ideal pages", i.e. fixed per book, or pages based on the page-size of the current device?
One will give the situation that page-turns don't match with page-numbers, the other will make the book length seem variable between devices.
It would be nice to have different text rendering configurations, to get a kind of visual "themes".
This would also be a nice step up to getting CSS support.
It would be nice to be able to open txt and html files as well. Those are still being used quite a bit.
We should also be able to page by tapping the edges of the screen and swiping up and down ( in paged mode )
To make it easier for first-time users, run a scan automatically when their library is empty.
Caused by: java.lang.ArithmeticException: divide by zero
E/AndroidRuntime(29526): at net.nightwhistler.htmlspanner.handlers.TableHandler.calculateRowHeight(TableHandler.java:156)
E/AndroidRuntime(29526): at net.nightwhistler.htmlspanner.handlers.TableHandler.access$300(TableHandler.java:52)
E/AndroidRuntime(29526): at net.nightwhistler.htmlspanner.handlers.TableHandler$TableRowDrawable.getIntrinsicHeight(TableHandler.java:249)
E/AndroidRuntime(29526): at net.nightwhistler.htmlspanner.handlers.TableHandler.handleTagNode(TableHandler.java:186)
E/AndroidRuntime(29526): at net.nightwhistler.htmlspanner.HtmlSpanner.applySpan(HtmlSpanner.java:294)
E/AndroidRuntime(29526): at net.nightwhistler.htmlspanner.HtmlSpanner.handleContent(HtmlSpanner.java:270)
E/AndroidRuntime(29526): at net.nightwhistler.htmlspanner.HtmlSpanner.applySpan(HtmlSpanner.java:287)
E/AndroidRuntime(29526): at net.nightwhistler.htmlspanner.HtmlSpanner.handleContent(HtmlSpanner.java:270)
E/AndroidRuntime(29526): at net.nightwhistler.htmlspanner.HtmlSpanner.applySpan(HtmlSpanner.java:287)
E/AndroidRuntime(29526): at net.nightwhistler.htmlspanner.HtmlSpanner.handleContent(HtmlSpanner.java:270)
E/AndroidRuntime(29526): at net.nightwhistler.htmlspanner.HtmlSpanner.applySpan(HtmlSpanner.java:287)
E/AndroidRuntime(29526): at net.nightwhistler.htmlspanner.HtmlSpanner.handleContent(HtmlSpanner.java:270)
E/AndroidRuntime(29526): at net.nightwhistler.htmlspanner.HtmlSpanner.fromTagNode(HtmlSpanner.java:193)
E/AndroidRuntime(29526): at net.nightwhistler.htmlspanner.HtmlSpanner.fromHtml(HtmlSpanner.java:159)
E/AndroidRuntime(29526): at net.nightwhistler.pageturner.view.BookView$LoadTextTask.doInBackground(BookView.java:863)
E/AndroidRuntime(29526): at net.nightwhistler.pageturner.view.BookView$LoadTextTask.doInBackground(BookView.java:819)
E/AndroidRuntime(29526): at android.os.AsyncTask$2.call(AsyncTask.java:185)
E/AndroidRuntime(29526): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
E/AndroidRuntime(29526): ... 4 more
W/ActivityManager( 97): Force finishing activity net.nightwhistler.pageturne
Some books have too much space between paragraphs, it would be nice to trim that.
This is an alternative to the wooden book-case: it shows a big continuous wall of covers.
Should be fairly easy to implement using a GridView.
If the last local setting is ahead of the remote progress, choose the local one.
Should be added
Add a nice about dialog with the current version number and some more info.
Offer 3 options for paragraph separation: "indent, line skip, both"
Day and night mode should also have seperate colours for links.
The volume button placement differs a lot per device. The mapping to pageUp and pageDown should be configurable.
Right now the default is "slide"
Allow the user to name each device, and record positions per device. A good default for the devicename is Build.MODEL.
On a normal background sync pick the most recently updated position.
When the user requests a manual sync, show a popup dialog displaying all the sync points and allow the user to choose.
Required by The List :P
It would be nice to be able to browse and download from FeedBooks from inside the app.
The app should at least support Dutch and English.
Books don't always have proper meta-data. It would be good to be able to edit those fields.
Even better would be to be able to download meta-data from a source like library-thing or goodreads.
Especially for cheap tablets this is neccesary
Create an extra prefs screen with checkboxes for each of the main menu items, allowing users to disable items.
All the other kids are doing it :P
Allow users to tag books and organize them into shelves (like Goodreads does).
Maybe see if there is also a scaled default value.
Most users want some way to jump to the start of the book
In paging mode, swiping up resets the current position and takes you back to the start of the chapter.
Orientation change can be detected by the savedInstanceState bundle being present. In that case skip the server sync.
We currently show progress in the Android titlebar, but in Fullscreen mode this gets hidden.
It would be nice to have a component at the top show when the Menu button is pressed. This might mean implementing a custom Title bar.
In some cases in paged mode we get more than 1 screen of text, making a scroll-bar appear.
Might be related to headers and tags at the top of the page.
NPE at PageCurlAnimator.java:609
Also, PagCurl seems to be slower when the device is faster.
It would be useful to adjust the screen brightness, either from the reading screen or preferences.
As subject
Multiple people have reported that PageTurner doesn't always respond to swipes and / or edge tapping.
This should be fixed before going to the Market.
Some books (Feedbooks in particular) have no title image, but do have a title page. This should be used then instead of trying to generate one.
Currently HTML lists aren't rendered correctly.
It would be nice if you could have the app do a pagedown on a fixed interval. Think reading in the bath tub.
Also include a rating.
Set to 60 instead of 30
When scanning for books, add the option to build a structured library folder.
Right now we rely on OI file explorer being present, but it's better to have file browsing built in. Should not be hard to build.
When reading a book you hardly ever want to swtich orientation. It would be nice to be able to lock it.
Right now paging is emulated by scrolling down 1 screen at the time. This doesn't play nice with screen readers and also has the side effect of sliced of lines at the bottom.
Refactor the paging code into 2 PagingStrategy objects: ScrolledPagingStrategy and SinglePagePagingStrategy that each encapsulate the logic needed to perform the pageUp() and pageDown() methods.
Feedbooks books have a title page that's outside the spine, but is referenced in the TOC.
Give me a random unread book.
We need a library that shows which books the user has and offers different sorting options.
A nice bookshelf view is preferred.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.