* Enhanced the `isBookMarkExist` method, addressing a bug that prevented the addition of new bookmarks for the same file. The method has been refactored for improved functionality.
* In the debug version, added informative logs to provide developers with insights into the bookmark-saving functionality.
* We now save this library information into a file named `library.txt` and subsequently read from it to retrieve file paths and favicons.
* The test cases have been refactored to accommodate this new functionality.
* The `ObjectBoxToLibkiwiMigrator` code has also been enhanced. With this change, we now save books in the library for their favicon and zimFilePath, resulting in a refactor and improvement of this class's functionality and its associated test cases.
* The process of writing bookmarks and library data to file has been enhanced. Now, this is performed asynchronously in a background thread to mitigate potential data loss.
* Additionally, several other improvements have been made throughout the codebase.
* We introduced a Flowable list in LibkiwixBookmarks to observe live changes on the UI. Previously, the UI was not updating after deleting bookmarks on the BookmarkScreen, and toggling bookmarks in the reader screen was also not reflecting the changes. To address this, we created a Flowable list and are now observing it whenever bookmarks are added or removed in the library.
* A few Samsung devices use the `f2fs` file system, such as the `Samsung Galaxy Note 10` and `Samsung s23 ultra`. Therefore, we have added the f2fs file system to the support 4GB filesystem list because this file system type allows the writing of files larger than 4GB.
* We have enhanced our scanning process to provide real-time progress updates, allowing users to track how much time is required to complete the operation.
* Now, scanning the storage only occurs when the user explicitly requests it. When the user attempts to refresh the list, the storage is scanned to identify ZIM files. This approach prevents unnecessary scanning when users frequently navigate to other screens.
* Excluding the "data," "obb," and "Trash" folders from scanning is justified for several reasons. The "Trash" folder contains deleted files, making it unnecessary for scanning. Additionally,
the "data" and "obb" folders are specifically designed for the
app's private directory, and users usually do not store ZIM files there.
Most file managers prohibit direct copying of files into these directories. Therefore, scanning these folders is not essential. Moreover, such scans consume time, given the presence of numerous files written by other apps, which are irrelevant to our application.
* We identified an issue where opening notes crashes the application if the particular ZIM file does not exist. To test this scenario, we have added corresponding test cases.
* These test cases cover both scenarios – when the ZIM file is deleted and when it is present.
* Fixed the tab icon showing when there is no ZIM file is opened in the reader which causing the unexpected UI behaviour.
* Fixed "Read Aloud" menu item is showing when we close all tabs(which means currently no ZIM file is opened in the reader) so showing this button is redundant.