* Upgraded the `uiautomator` version to `2.3.0`.
* Upgraded the `appcompat` version to `1.7.0`.
* Upgraded the coroutines version to `1.8.1`.
* Upgraded the `androidx.test:runner` version to `1.6.1`.
* Upgraded the `androidx.test:core` version to `1.6.1`.
* Upgraded the `androidx.test:orchestrator` version to `1.5.0`.
* Upgraded the `io.mockk:mockk` version to `1.13.12`.
* Upgraded the `org.junit.jupiter:junit-jupiter` version to `5.11.0`.
* Upgraded the `org.assertj:assertj-core` version to `3.26.3`.
* Upgraded the `androidx.annotation:annotation` version to `1.6.0`.
* Improved the SearchStateTest.
* Fixed some deprecated code which is deprecated in new dependencies.
* Improved the LanguageFragmentTest by updating it to no longer wait for the "Off the grid" file, which no longer exists. The test case has been enhanced to check whether the data is loaded without relying on any specific ZIM file name.
* Also, now we are not using fetch library anymore so we have removed this from our credits files.
* Removed the unused code from detekt_baseline.xml file.
* When there is no available connection that the user started the download with, the pause/resume button is disabled to prevent attempts to resume or pause the download, which would not work in this state.
* If the user attempts to resume the download but it does not resume due to some issue, the code will automatically try to resume the download. This ensures a smooth user experience.
* Proper pause reasons are displayed to the user, keeping them informed about the current state of the download.
* If a download fails for any reason, the pause/resume button is disabled. At this point, the pause/resume functionality is unnecessary and would not work, so the button is disabled to avoid confusion.
* To ensure clarity and understanding, we have added necessary comments on the method and conditions.
* For Android 11 and above, we now download ZIM files to the app-specific directory because the download manager does not allow downloads to custom paths. Therefore, ZIM files are now downloaded inside the app-specific directory for these versions.
* Removed the folder selection dialog from the application for selecting the SD card in non-Play Store variants on Android 11 and Android 12.
* For Android 10 and below, ZIM files are now downloading to the public directory on the SD card. This ensures that the files are not lost when the application is uninstalled, as they are stored in a public directory similar to internal storage on these versions.
* Also improved the showing pause reason on download screen when downloadManager is paused due to "PAUSED_WAITING_TO_RETRY" error so that user can know about the downloading state.
* Now, the storage selection (internal/external) is directly visible in the settings, allowing users to select storage without using a dialog box.
* The total and available space for each storage option is displayed.
* Additionally, the selected storage path is shown in the settings, so users know where the downloaded files will be saved.