This is a 1:1 re-implementation of the existing feature on the legacy Dante app.
Implementation
Use any Flutter package that offers a similar timeline view as on the legacy app. Make sure that both sorting strategies (first started / finished) are implemented.
I really love the app and have been wanting to rebuild it in Flutter for some time! I would love to get involved with this project, do you have a contribution guide and/or roadmap of features that you want developed so that I can help out?
Change bundle identifier and package name from .dantex to .dante and update Firebase configuration file. This is important to make the new app compatible with the previous Android version.
Firebase allows requesting a password reset mail. Add a field when entering email & password that sends the password reset email to the entered email address
This ticket implements the following method from the Android App:
Implement Firebase Auth in the same way as supported on the old Dante Android App. Users should be able to login with Google, Email and anonymously. Furthermore, anonymous users should be able to upgrade to an email account later on.
One special requirement is to use the Google Sign-In dependency for Google signup, as these credentials are later on required to access the Google Drive backups
Support email login for customers. Customer can click on Login with Mail and they can then enter email address and their password. If the user hasn't created an account, then create one if the credentials. Furthermore, check if the email isn't already used for Google logins.
The following methods from the Android app should be implemented.
Users should be able to delete their account and all their corresponding data with it. There should be an extra section in the settings which allows the users to do so.
Implementation
The firebase account, as well as all data on Firebase should be deleted. Just followed by a signout request of the customer.
Use the method FirebaseAuth.currentUser?.delete() for this.
Make the Search bar clickable and open a search screen.
The SearchCriteria class abstracts the actual criteria that the SearchBloc needs to implement. For the first implementation a simple text search for title, subtitle and author is sufficient.
Introduce the package EasyLocalization for a better localization handling. The current localization is cumbersome at least. The new package will make translations easier and does neither require a context nor a generated class to perform the translation.
Use Firebase Database as the primary data source for saving and reading books from the storage. Each user should have their own database path, which only they can access.
For this, create a dedicated implementation of the BookRepository interface.
When adding a book, only the main book suggestion is shown in the bottom sheet, although there are 10 more suggestion that are fetched within the same download call. These 10 other suggestions should be shown in a list when the user clicks on Not my book. The list can be either a dialog (as it is right now in the Android app) or it can be directly embedded within the bottom sheet (the preferred solution).
When clicking on another book, the main target should be replaced with the new book suggestion.
Hir, I've seen that Dante is moving forward and it's awesome.
But I wanted to ask if you could use this refactoring to add a "book I own" tracker.
Maybe just a feature to rename tabs could make it (I don't use the tracking feature, so the "reading" is useless?) And configure Wich tab is opened by default.
Maybe even configure Wich tabs are displayed and Wich ones are hidden in the menu (I only use "Done" and "Wishlist" tabs)
Implement Firebase In-App Messaging for sending context-specific announcements to the users. Previously, in Dante, this was done with hardcoded announcements. Since announcements should be made without a new release, Firebase In-App messaging should be used.