* Moved the `Book()` object creation to `lifeCycleScope` instead of running it on the main thread. Earlier, it was blocking the UI, especially with large ZIM files. Now, by using `lifeCycleScope`, it won't block the main thread.
* Improved the KiwixServer creation process. Server creation was previously happening on the main thread, which could cause the same issue we are facing with adding bookmarks. Because we are creating the same book object while creating the server, which is required for `server` creation.
* Updated the behavior of the "Starting server" dialog. Before, the dialog disappeared after validating the IP address, even though server creation was still in progress. Now, the server creation process is moved to the IO thread. For large ZIM files, server creation can take some time, so the dialog will only dismiss once the server is successfully created or if an error occurs. This ensures users are aware that server creation is in progress.
* Moved the cancel download logic to the IO thread, ensuring that download-related tasks are performed on the IO thread while keeping the main thread free.
* Also moved the functionality to the IO thread for checking the status when we receive the ACTION_DOWNLOAD_COMPLETE broadcast from DownloadManager, to determine if the download was successful or canceled. This ensures it doesn't block the main thread, as cancelDownload is currently causing a blockage.
* Updating the UI correctly when there is some error while creating the kiwixService(Specially when failed to connect with the server).
* Minor improvement in showing right drawer.
* The issue was with android 14 device, it is working fine in below devices.
* Improved the back press handling in CoreMainActivity using the latest onBackPressedDispatcher API, ensuring proper functionality on Android 14 and above.
* Enhanced the back press behavior in OnlineLibraryFragment while searching for ZIM files, so the SearchView does not close immediately when the user presses the back button to simply dismiss the keyboard.
* When the internet connection is turned off and then turned on back, the download progress is now properly tracked while the application is in the foreground. Tracking progress is working fine with this scenario when the application is closed.