* We didn't account for the scenario where a user long-clicks on an image that contains an anchor tag with a URL. For now, we only check when a link is loading(when user simply clicks on the image button), and if the link is unsupported by Kiwix, we show the save/open dialog. Now, we are also checking for this scenario on long clicks.
* The issue was epub fileName containing the colon ":" in it that is not supported by most of fileSystem, that's why it is not creating the file in fileSystem and we are not able to download the epub file.
* So to fix this we have improved our `getDecodedFileName` method which returns the fileName of the epub file, here we are removing the colon from fileName if any contains. For this change we have added the test cases as well for our `getDecodedFileName` function to properly test it.
* We also refined our downloadFileFromUrl method. Previously, the generateSequence function was used to create new files with underscores and incremented numbers, anticipating multiple attempts to save the same file. However, since we now save files only once in our storage, this feature is no longer utilized. This enhancement is detailed in issue #2879.
* Added epub query in our manifest to properly open epub files in external application.
* Refactored the test cases for this new change.
* Now user can easily import the exported bookmarks by just selecting the exported `bookmark.xml` file.
* The application now exports 'bookmark.xml' file to the 'Android/media/org.kiwix...' folder. Users can copy this file to the 'Android/data/org.kiwix.../files/Bookmarks/' folder to view the exported bookmarks.
* Introduced an export bookmark feature in the settings screen, allowing users to easily export all bookmarks with a simple click. A dialog prompt appears before exporting, indicating the location where the exported bookmarks will be saved and providing instructions on how to import them.
* Added a test case for this change in our settings test.
* We have refactored our code to use PageDao for managing data related to Bookmarks, Notes, and History. With the ability to return Flowable from the Room database, the BasePageDao interface has become unnecessary. Consequently, we have removed BasePageDao and streamlined our code to use PageDao, providing a unified approach for these functionalities. This change reduces code complexity and enhances readability, making the codebase easier to understand and maintain.
* We have moved the deleting functionality to background thread because we should not perform any database operation on UI thread.
* Refactored all the test cases according to this change.
* Improved the migration code of recent searches, now all the migration will be performed on the background thread so that it can not impact the UI thread.