mateusz-bak / openreads Goto Github PK
View Code? Open in Web Editor NEWA mobile books tracker written in Flutter that respects your privacy.
License: GNU General Public License v2.0
A mobile books tracker written in Flutter that respects your privacy.
License: GNU General Public License v2.0
Describe the bug
When looking for an ebook from OpenLibrary, such as Black Library Celebration 2022, I cannot find it using the Openreads search.
To Reproduce
Unfortunately, I haven't found much ebooks in OpenLibrary. The only ones I have found are the ones I have added. I'd like to have some more examples, because maybe I've made a mistake when adding those ?
Expected behavior
Maybe this is a design choice, but since I read some ebooks, I'd like to add them to the app from OpenLibrary and not only manually. I've looked a bit at the code, but my poor level in Kotlin and Android hasn't helped me find where this issue could come from.
Additional info(please complete the following information):
Additional context
I really love Openreads ! Thank you very much for your work !
Currently when manually adding a book you have to type out ISBN manually. Utilizing already existing barcode scanner could make this easier.
Hello! I have a feature proposal that would fit nicely with this one.
Many books have different editions, all derivative of an original work; take The professor by Charlotte Bronte, for example: 75 editions, with their own unique variations and covers.
It'd be nice if one could choose which edition they're reading, so that they can add the same work multiple times, with different editions; for example, a work could have multiple translation that differ a lot from each other, thus making it worth to read them all.
Describe the bug
When searching for "M.D. trinkt" the book is found correctly. When I click it, not all data available from OL is copied and the OL ID is botched. Title, publish year and cover work, No. of pages is lost and the ID is missing the last 3 characters. See screenshot below.
To Reproduce
Expected behavior
Correctly fetch data, don't botch ID.
Additional info(please complete the following information):
Additional context
Book doesn't have an ISBN or author associated with it.
Describe the solution you'd like
https://developer.android.com/develop/ui/views/launch/icon_design_adaptive
Since android 13, icons should follow Material You
Describe the bug
I periodically have come across books that are in Open Library, but cannot be found in Openreads using the ISBN or Open Library ID that appear on the book page.
For one test example, "More Than Conquerors", 97808018404, OL39216940M
I don't know if this is an issue with Openreads, or the OpenLibrary APIs.
Additional info(please complete the following information):
Cricket Icon 3
Android 11
Openreads 1.16.0
F-Droid
When the book list grows, adding books crashes the app more and more frequently. At first, it crashed after adding books, when trying to go back to the list screen. After a point, this crash happened after every book added, until the point where the app now crashes when selecting a result from the search screen (searching Open Library).
Additional context
Phone reports having more than 1GB free memory, and that this app uses very little of it, but the log shows an out of memory error, not sure how this works. Could there be a setting on the phone that limits this too much?
FATAL EXCEPTION: main
Process: software.mdev.bookstracker, PID: 29591
java.lang.OutOfMemoryError: Failed to allocate a 80 byte allocation with 531272 free bytes and 518KB until OOM, target footprint 134217728, growth limit 134217728; giving up on allocation because <1% of heap free after GC.
at q.h.<init>(SolverVariable.java:7)
at s.c.i(ConstraintAnchor.java:2)
at s.d.H(ConstraintWidget.java:8)
at s.j.H(WidgetContainer.java:4)
at s.e.V(ConstraintWidgetContainer.java:316)
at t.b.b(BasicMeasure.java:15)
at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:217)
at android.view.View.measure(View.java:25787)
at androidx.constraintlayout.widget.ConstraintLayout$b.b(ConstraintLayout.java:74)
at s.e.e0(ConstraintWidgetContainer.java:48)
at t.h.b(Direct.java:5)
at t.h.d(Direct.java:16)
at t.h.b(Direct.java:30)
at t.h.d(Direct.java:16)
at t.h.b(Direct.java:30)
at t.h.d(Direct.java:16)
at t.h.b(Direct.java:30)
at s.e.V(ConstraintWidgetContainer.java:50)
at t.b.b(BasicMeasure.java:15)
at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:217)
at android.view.View.measure(View.java:25787)
at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1441)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.widget.ScrollView.onMeasure(ScrollView.java:458)
at android.view.View.measure(View.java:25787)
at androidx.constraintlayout.widget.ConstraintLayout$b.b(ConstraintLayout.java:74)
at t.b.a(BasicMeasure.java:15)
at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:190)
at android.view.View.measure(View.java:25787)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6980)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:25787)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6980)
at androidx.coordinatorlayout.widget.CoordinatorLayout.t(CoordinatorLayout.java:1)
at s2.c.i(HeaderScrollingViewBehavior.java:14)
at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:53)
at android.view.View.measure(View.java:25787)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6980)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:25787)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6980)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
at android.view.View.measure(View.java:25787)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6980)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:778)
at android.view.View.measure(View.java:25787)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:3620)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:2419)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2689)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2138)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8686)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1120)
at android.view.Choreographer.doCallbacks(Choreographer.java:926)
at android.view.Choreographer.doFrame(Choreographer.java:859)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1105)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:346)
at android.os.Looper.loop(Looper.java:475)
at android.app.ActivityThread.main(ActivityThread.java:7889)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1009)
Is your feature request related to a problem? Please describe.
Currently, there is no option of sorting the books in your library in chronological order or latest to earliest.
Describe the solution you'd like
Add another option in the sort books option for ordering the books by first published date
Describe alternatives you've considered
Another Android FOSS app, Badreads, has this feature but it would be nice to have it implemented in Openreads
Is your feature request related to a problem? Please describe.
Koreader is one of the most popular ebook readers for both e-ink and standard android devices. Alas it does not have a management tool that would allow me to integrate both physical books and ebooks
I would like the ability to pull out the book status and metadata from Koreader
Additional context
I am not a programmer so I don't know if It can be done, but I know Koreader is a plugable program, so maybe you could create a Koreader plugin of some sort for your program that would allow to send the data out? I have literally hundreds of ebooks, so manually retyping the data is a huge pain
Describe the bug
When I try to backup the database to either cloud or local storage, the app crashes after showing the loading wheel. It only started this behavior when I had added more books to the app. I have tried quiting and restarting and this did not fix the issue.
To Reproduce
Settings - Backup - Cloud Backup / Local Backup
Expected behavior
App either opens the file manager or opens the share menu to select a cloud storage app.
Additional info(please complete the following information):
Additional context
Is your feature request related to a problem? Please describe.
We have a library which is shared among the family, so I would like to share the catalog, too.
Describe the solution you'd like
I would like to use private shared cloud space to share the catalog in a way that it is automatically synced with all participants. To avoid conflicts I could live with some simple restrictions: exclusive editing and no offline editing.
Describe alternatives you've considered
Manual sync using save-to-cloud/file and restore seems risky and inconvenient, because when editing it would be crucial to manually follow a restore-edit-backup cycle. This is way too complicated for some family members.
Describe the bug
While trying to add book by searching in OpenLibrary, searching for a book title in regional language (Tamil, in my case) doesn't yield any results, while invoking the OpenLibrary API with httpie http client from my GNU/Linux terminal yields results.
To Reproduce
Expected behavior
Books matching the title word should appear.
Additional info(please complete the following information):
Additional context
API Endpoint: https://openlibrary.org/search.json?q=சோஷலிசம்
Note: The above endpoint works fine with httpie
but fails with curl
Is your feature request related to a problem? Please describe.
Sometimes I don't finish a book, but I like to keep it just to revisit it in the future.
Describe the solution you'd like
Adding a "Did not finish" tab similar to the other book status tabs.
I would like to contribute to OpenLibrary via Openreads. Not all books are in OpenLibrary. If I add a book manually in Openreads, I would like to see a button to upload this book to OpenLibrary, provided I use my login credentials.
Is your feature request related to a problem? Please describe.
I've just imported books from Goodreads CSV and all the books are without cover.
Describe the solution you'd like
Possible solutions I can think of.
Describe alternatives you've considered
Alternative solutions (more like tedious workaround) is download covers from the internet and manually add them to every single book. Unless user have 3 books, it's not viable.
Thank you for considering this request.
Is your feature request related to a problem? Please describe.
To make this a great alternative for those who have years of GoodReads.com book data, it would be amazing to be able to import the books I've read from a GoodReads CSV.
Describe the solution you'd like
Describe alternatives you've considered
I would never use this app without being able to import all my books into it. I have considered BookWyrm but I don't really need all the social aspects of that solution.
Additional context
https://joinbookwyrm.com/
is your library connected to the library of other through fediverse. You can track your readings, your want to read, have read, reading challenges. You can follow others in their reading.
It is like goodreads but without evilcorp owning and monetizing your data and behavior.
How could this look like?
Your activity in the app could be synced to your bookwyrm account. The app could show what your bookwyrm instance notifies you about.
When taking a photo of a book cover, adding a camera dialog (choose your camera app) or respecting the system default choice should be the norm.
Right now if you use a different camera app (OpenCamera) and disable the stock one (Camera2) the app crashes because it cant find the stock one.
Is your feature request related to a problem? Please describe.
I'm always frustrated when i cannot see the progress of a book being currently read on the app in the "In progress" tab.
Describe the solution you'd like
I would like to have a progress bar ranging from 0-100% to see how far you've read. I would also for that to work add a field which says "Progress:" and in which you could eithet input the page number or the percentage itself.
Describe alternatives you've considered
Make the cover uncover itself when progressing through the book. Or just don't have any progress indicator for each book in the "In progress" section.
Additional context
Thanks for the amazing app btw! Really enjoy it :)
Is your feature request related to a problem? Please describe.
isn't it good idea to display the total number of items in section Finished, In Progress and For Later?
Describe the solution you'd like
Either here,
Describe alternatives you've considered
Well, we have Statistics. But displaying just the count here would be handy, I guess
Right now, adding an old date as the date finished (1980, for example) means pressing the calendar arrows multiple times until reaching the desired date (month by month, year by year).
Also, the current calendar system only allows to add exact dates, when we often remember the year we finished reading a book, but not the day and the month.
Both problems could be solved, if possible, with an option to manually filling a date field, also allowing the month and/or day to be left blank.
Another option:
Is your feature request related to a problem? Please describe.
I'd like to save the current page I'm at into the app. A virtual bookmark you could say. This might also open the doors for more detailed statistics if someone is into that
Describe the solution you'd like
Describe alternatives you've considered
A physical bookmark in the real world, but I might have to return the book to library and thus have to remove the bookmark
Additional context
This idea mainly comes from the app called Dante that is similar to this app
Is your feature request related to a problem? Please describe.
So after you View or Edit a book and press Back, the Tab View is "refreshed" and you are shown the top of the tab, the top of your list. When you want to View or Edit multiple books which are lower in the list, you have to scroll down, perform the operation, press back, then scroll down again (because the Tab View saw "refreshed"), perform the operation, press back, then scroll down again etc etc etc. When you have tens or hundreds of books in the list then this gets very very annoying.
Describe the solution you'd like
I want you to add a "Remember Last Position In The List" option in the Settings.
Describe alternatives you've considered
Alternatively you can just add this feature as standard behaviour for when you press Back after you View or Edit an entry.
Describe the bug
While adding a book manually I tried to add a cover picture. The app does offer taking a picture or upload it from local files. Choosing "take a picture", the app requests Android permissions for the camera, choosing "upload from file" nothing happens.
To Reproduce
Add a book manually, choose "click to add cover" and "upload cover from local files"
Expected behavior
The app should aks for storage permissions and allow me to choose a picture as the cover picture
Additional info(please complete the following information):
Looking forward to some improvements of the app, I already like it very much!
Is your feature request related to a problem? Please describe.
If I have tagged some books as science fiction in the "For Later" list, it is hard to find them again.
Describe the solution you'd like
A functionality to filter the books by selecting multiple tags. If I want some classic science fiction books, then I can find them by selecting the tags classic and science fiction.
Describe the bug
If a book is imported and accidentally (or intentionally) listed as finished, then moved to "in progress" or "for later", the app crashes. It can then be reopened with the change complete.
Expected behavior
Such a data change should occur without the app to crashing.
Additional info(please complete the following information):
Cricket Icon 3
Android 11
Openreads 1.16.0
F-Droid
Is your feature request related to a problem? Please describe.
My use case is keeping track of the books I own, where they go, and what I have loaned out.
Right now I use tags to split them by genre / section, if it is an eBook, and if I am borrowing one or have it loaned out. Books that I am using or have at home instead of on the office shelf get put in "in progress".
Describe the solution you'd like
If that's not a supported use case and you're not interested, no problem. But a few possible things that seem to me would be really helpful:
When editing a book, have a drop-down menu or something to select from a list of the tags currently used, in addition to typing in a new tag.
Make an easier UX to see and select from a large number of tags in the sort books menu (perhaps having the tags roll over onto multiple rows instead of having to scroll through them longways?)
Add an extra "location" category as a new optional column for each record. For those tracking their physical books, as well as reading history, this would allow them to sort them by shelves, where they got the book, etc.
Thanks for making a great and super useful app! I was very glad to be able to move from the non-open source alternative I previously used.
Describe the bug
Continuing from #60
Books without ISBN are shown in search results.
To Reproduce
Expected behavior
Should be able to see books without ISBN and add them to the list.
Is your feature request related to a problem? Please describe.
I have added books in OpenReads that didn't have much info on OpenLibrary. It would be nice if OpenReads could re-fetch and update certain/all fields.
Describe the solution you'd like
And additional button in the book view (from where you can delete/edit/add to favourites) that would trigger the re-fetch.
Describe alternatives you've considered
Currently I just add the same book - with the "fresh" OpenLibrary data - again and then delete the old one. This is a pain because I have to transfer the finished reading date.
Books with certain finished dates aren't sorted right.
When a book is added with 1982 as the finished date, it is listed before the 2000s ones, even if the list is sorted in descendent order (or after, if it's sorted in ascending order). Same thing wth books with other 1980s dates, etc.
Is your feature request related to a problem? Please describe.
When you choose a Sort Order, that order is applied all tabs.
If I choose to sort by Start Date in the In Progress tab then it will be applied to the In Progress tab and to the Finished tab as well. If I want to sort by Finish Date in the Finished tab then I will have to resort books. And then if I move back to the In Progress tab where I want the books to be sorted by Start Date then I will have to resort yet again.
In the For Later tab I'm not even sure how books are being sorted.
This is very frustrating.
Describe the solution you'd like
I would like to be able to change the Sort Order for each tab individually and I would like to be able to sort books manually in the For Later tab.
Is your feature request related to a problem? Please describe.
Sometimes books on OpenLibrary have multiple covers uploaded to them. It would be nice if I can select which one I want.
Describe the solution you'd like
A modal that displays all availbale covers (if there are any).
BookBrainz is a new user-based book database with a clean interface and an active team, which could be very useful as an alternative data provider in the app.
For example, it'd be nice if the user could choose between searching on OpenLibrary, BookBrainz, or both.
Bookbrainz website: https://bookbrainz.org/
BookBrainz is part of a bigger foundation called MetaBrainz: https://metabrainz.org/
There are books that I've read but don't want to rate (eg. setbooks, books I didn't like but think they are good etc.) and there is no option to not count them towards the average books rating in statistics.
I would like the app to either not count the 0-star ratings towards the average or give us an option on the book info editing page (maybe a crossed star to the left of the 5 stars or a checkbox to the left of the Your rating
caption) to not give a rating.
Is your feature request related to a problem? Please describe.
When sorting by author the app currently goes by first name.
Describe the solution you'd like
Please sort it by last name instead.
Describe the bug
The 'Edit', 'Delete', and 'Grid/List Layout' buttons are squeezed together for books in the 'In Progress' and 'For later' section.
To Reproduce
Add a book in the 'In Progress' or 'For Later' category.
Click on the book you added.
You will see the three icon buttons squeezed together, making it difficult to click the specific button you want.
Expected behavior
The three buttons are nicely spread out, just like books that are in the 'Finished' section (however, without the heart/favourite icon)
Screenshots
Correct icon spacing in the 'Finished' section:
https://i.imgur.com/NuvmFzM.png
Incorrect icon spacing in the 'In Progress' section:
https://i.imgur.com/9wsbb7s.png
Incorrect icon spacing in the 'For Later' section:
https://i.imgur.com/n1tbXEl.png
Additional info(please complete the following information):
Additional context
I did not try to reproduce the bug with cover images added to my entries. All my entries did not have covers added to them.
Describe the bug
Changelog is not shown only after app's update. It is shown also after:
To Reproduce
Expected behavior
Books lists are shown, not changelog
Screenshots
N/A
Additional info(please complete the following information):
Additional context
N/A
Is your feature request related to a problem? Please describe.
OpenLibrary database missing plenty of books
Describe the solution you'd like
Describe alternatives you've considered
I wrote an unofficial API thingy for Goodreads. It's not perfect, but it works.
https://gruapi.herokuapp.com/
Limitations:
Additional context
Feel free to make any suggestions. Though I'm still rookie at Go, I'll see what I can do.
This app is missing two key features that make it a viable alternative to goodreads. First, the app should have an option to import csv book lists. The main export option on goodreads and another app called badreads is csv backups. In order to migrate from either csv file importation is necessary. Second, it would be nice to have a yearly reading goal progress screen. This is another feature goodreads and badreads have. With these two features openreads would be the best reading tracker app available.
I want to translate to Portuguese (Brasil).
Is there any weblate, crowndin, something like that?
Or should I translate the strings.xml and send a PR?
Please consider adding Material You support
Not only would it be make the app feel more at home in modern devices, it would also make for a great marketing point.
Is your feature request related to a problem? Please describe.
Since there's already a CSV import option, it might be possible to implement an exporter as well? As it would be a great way to transfer your library to other services like Open Library or Bookwyrm, which accept Goodreads CSV files as an import option.
Describe the solution you'd like
Another option under the "backup" settings page, called "Export Goodreads CSV" or similar. Renaming the settings page to "Import/Export" might make sense.
Describe alternatives you've considered
I tried to write a script that converts the backup SQL files, but that endeavor wasn't successful.
Is your feature request related to a problem? Please describe.
Calibre has a great interface for managing book progress on desktop but not so great on mobile compared to OpenReads. It would be useful to have them both sync together so book progress can be synced.
Describe the solution you'd like
Ability to sync with Calibre via Calibre content server or calibre-web
Describe alternatives you've considered
Some way to access OpenReads as a web app perhaps
Add more space to write in the "notes" section, since it is too little space, and maybe change its name to "review", because that function does more with that than being "notes" itself, which I personally really likes
Create a space at the end where you can write comfortably, and be able to lower and raise the text (which is very easy now, because it can only be done with the cursor)
Is your feature request related to a problem? Please describe.
On similar services like Babelio we can share a list of books by generating a custom URL that anyone can see given he has already the URL.
It would be cool if we could do the same on OpenReads, in case we want to make some recommendations without giving the books' title one by one.
Describe the solution you'd like
A functionality that allows to create a link from a list of read / dropped / plan-to-read books with anyone
Describe alternatives you've considered
Maybe the possibility to import books from someone's list thereafter ?
As I've never done any mobile development, I don't know at all if it's possible to implement something like that, but here's my request !
Keep up the good work with the actual application mateusz, your work is highly appreciated.
Fantastic app -- I'm very much enjoying it. Thank you for your amazing work.
Unfortunately my other half has an iphone and is jealous.
I understand this is a huge ask, but no one seems to have asked before, and I wanted to express interest!
Maybe somewhere later down the road? 🤞
App crashes on Samsung S21 when trying to add book as follows:
I sometimes re-read books and I find no option to note that in the app.
I suggest a +
button under the existing date fields that creates a new pair of fields with a trash bin icon next to them. Like on the edited screenshots:
Currently, I add the book twice and add a Reread
tag, but anytime I want to change something I need to do it in 2+ places.
Additionally, information about the re-read
stutus could appear in filters, statistics etc. The user could have a new option in the sorting settings to either list re-reads twice/more times in the book list view or display the book once with both dates listed. I also think that re-reading a book should increment the Finished
counters in statistics, alternatively, it could appear as a new status (like Not finished books
).
I know a lot of Android apps are having this in black, but maybe consider doing a transparent navbar (edge to edge) for a better experience.
https://developer.android.com/training/gestures/edge-to-edge
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.