* Fixed an issue where the notification for a completed download would disappear when the same notification ID was used for the foreground service.
* Enhanced the cancellation logic to immediately remove the ongoing download notification when the user cancels a download and no other downloads are active. This resolves the delay (2-3 seconds) that occurred when the notification was set as the foreground notification.
* Added the necessary comments in methods to understand this fix.
* Improved the scanning process for ZIM files to reduce scan time by excluding hidden folders, which are unnecessary and caused delays in scanning.
* Updated MediaStore to exclude ZIM files located in the SD card's trash folder, addressing the issue.
* Refactored the NewBookDao to remove any ZIM files from the library screen if they are located in the trash folder.
* Moved the storage device retrieval to the IO thread.
* Updated the StorageDeviceUtils.getWritableStorage method to a suspend function to ensure execution on the IO thread.
* Refactored CopyMoveFileHandler, OnlineLibraryFragment, KiwixPrefsFragment, and LocalLibraryFragment to adapt to this change.
* Optimized storage device retrieval by caching it in the main activity and reusing it across fragments to enhance performance, especially with large SD cards.
* Refactored the CopyMoveFileHandlerTest.
* Improved the showing of storage device list.
* The date is extracted from the specified git revision and set in the `KIWIX_ANDROID_RELEASE_DATE` environment variable, and the version code is generated for that date.
* This feature has been added to the Release section in the README file.
* Now, our `dummy_bundle.yml` will generate both the app bundle and APKs, so if we need the APK for a specified date, we can easily retrieve it.
* Added comments in both workflows to understand the flow of the workflows.
* Made `LAST_DATE` and `BASE_VERSION_CODE` constants, as these values are crucial for our app and should not be changed. We have marked them as constants and added comments to ensure they remain unchanged.
* To generate the APK for a specific date, set the "RELEASE_DATE" environment variable in the format `YYYY-MM-DD`. The APK will be generated for the specified date. If the variable is not set, the APK will be generated for the current date.
* It was showing the content behind the display cutout in landscape mode.
* Removed the unnecessary code from BaseFragment.
* Enhanced the applying edge to edge mode for lower devices(Before Android 10).
* Upgraded the `kotlin_coroutines` dependency to `1.10.1`.
* Upgraded the `espresso` dependency to `3.6.1`.
* Upgraded the `tracing` dependency to `1.2.0`.
* Upgraded the `espresso` dependency to `3.6.1`.
* Upgraded the `material` dependency to `1.12.0`.
* Upgraded the `webkit` dependency to `1.12.1`.
* Upgraded the `room` dependency to `2.6.1`.
* Upgraded the ksp version to `2.0.0-1.0.24`.
* Upgraded the kotlin version to `2.0.0`.
* Upgraded the objectbox version to `4.0.3`.
* Removed the deprecated `runBlockingTest` from test cases which was giving compilation error because it is permanently removed in this version of kotlin.
* Replaced some deprecated methods with new methods that is deprecated in latest version of gradle.
* Fixed some string lint issues.
* Created an extension function to safely retrieve the item's size and handle any potential errors within this function. This method was used in three places, and since we are already handling cases where this method returns null, the existing functionality remains unaffected.