* 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.
* Now, the user can view the notes even if the ZIM file does not exist. However, they cannot edit the note since the corresponding ZIM file is not present. Nevertheless, the user can still share and delete that note.
* Addressed an issue with the `SaveSearchToRecentsTest` test, which occasionally failed. The primary cause of this was the recent modification to save the `RecentSearch` on a background thread using `coroutines`. In some cases, the test was validating the output before the coroutine completed its execution. Consequently, we have adjusted our test case to properly wait for the coroutine to finish its work before validating the output.
* The issue was with the `FileObserver` class constructor we used, which is introduced in SDK 29. As a result, it is not available for older versions, leading to a `NoSuchMethodError` when attempting to access it. This caused the application to crash below API level 29 when selecting external storage.
* We utilize `Play Asset Delivery` in our bundle, housing the ZIM file within it. The size of the wikispecies ZIM file is 2.13GB. To process all resources inside the bundle, we require a minimum of 6GB of Java heap memory.
* Fixed the badging of `Build Status` and `Codecov`.
* Since there is no `master` and `develop` branches, we have updated our `CONTRIBUTING.md` to reflect these changes.
* Upgraded the `WebKit` version to the latest (from 1.3.0 to 1.7.0) to leverage improvements and bug fixes. This update is essential to address the issue with the latest `chromium` dependency, as outlined in #3644.
* Additionally, elevated the `androidx.annotation:annotation` dependency from `1.1.0` to `1.2.0` to meet the requirements of the updated WebKit version.
* Removed the link from `zim_files_not_showing_description`.
* Modified the dialog for displaying the link in `PlayStoreRestrictionPopup`.
* Refactored the `rawTitleDescriptionMap`() method in `HelpFragment` to accommodate both strings and arrays for showing links inside the HelpFragment.
* We have excluded the universal APK from the variant list that is being uploaded to the Play Store.
* This exclusion is necessary because we cannot disable the universal APK, as it is required to set the version code for the bundle. Disabling the universal APK would result in the bundle version code being set exclusively for `x86_64`.