* Refactored `StartMultiSelection` to use coroutines instead of RxJava.
* Refactored `fileSelectActions` to use coroutines instead of RxJava.
* Refactored the `updateBookItems` to use coroutines instead of `rxJava`.
* Refactored `LocalLibraryFragment` to use coroutine flows instead of RxJava code.
* Improved the test code to validate coroutine flows.
* Refactored the `NewRecentSearchDaoTest` according to new flow test code.
* Refactored the `StorageObserverTest`.
* Refactored the `SearchViewModelTest`.
* Refactored the `FileSearchTest`.
* Improved `AlertDialogShower` to support bottom padding for customView, allowing design customization from the caller side.
* Removed unused code from the project.
* Refactored the UI, and unit test cases.
* Fixed: The online library download progress bar was not initially visible when the fragment was created.
* Refactored all UI test cases to align with the new Compose UI.
* Created an extension function for composeTestRule to wait for a specified duration until the UI becomes visible. This is similar to BaristaSleepInteractions. Since Compose does not provide a built-in wait mechanism, this custom implementation helps stabilize UI test cases.
* Added `hideKeyboardOnLazyColumnScroll` extension function to hide the keyboard when scrolling a `LazyColumn`.
* Fixed: "Downloading library" message was not centered properly.
* Fixed: Unnecessary top margin appeared when the search view was active.
* Fixed: Search view did not display the entered text.
* Fixed: Search view did not restore the previously searched books when the device woke from sleep.
* Fixed: Search view did not close on back button press, causing previous search results to remain visible.
* Fixed: Various minor UI issues found while testing.
* Removed the unused code from project.
* Created `OnlineLibraryScreenState` to manage the UI state.
* Enhanced `ContentLoadingProgressBar` to allow setting the width of the circular progress bar from the calling site, enabling more flexible styling based on design requirements.
* Added `DownloadBookItem` composable for displaying download progress.
* Refactored `BookItem` by splitting the code into smaller, reusable composables, as several UI elements are shared across downloading, online, and downloaded books.
* Created OnlineBookItem for displaying online books.
* Created the `NavigationHistoryDialogScreen` using our app theme.
* Refactored the code according to comose UI.
* Refactored the UI test cases according to compose UI.
* Removed the unused code from project.
* Created a reusable `StorageDeviceItem` composable, which will also be used on the settings screen.
* Refactored the code to use the new Compose-based UI.
* Updated the UI test cases to align with the Compose implementation.
* Removed unused code from the project.
* Fixed: `IntroFragmentTest`, `KiwixSettingsFragmentTest`, and `KiwixSplashActivityTest`.
* Resolved memory leaks in `IntroFragment` and `LanguageFragment`.
* Improved the `IntroScreen` code to fix lint errors.
* Resolved the remaining accessibility issues.
* Fixed the issue where UnsupportedMimeTypeHandler and RateDialog were not showing.
* Added support for loading adaptive icons (from the mipmap folder) in the IconItem class.
* Introduced a `DialogHost` to support both Compose and View-based dialog rendering.
* Refactored `AlertDialogShower` to use Jetpack Compose for building dialog UI.
* Updated `ZimHostFragment` to integrate and display Compose-based dialogs.
* Modified `KiwixDialog` to align with the Compose UI structure and support custom Composables.
* Added animated pulse effect to highlight the selected view.
* Introduced support for custom width/height for the showcase circle, useful for large views that might otherwise extend off-screen. Defaults to the view's dimensions if not specified.
* Enhanced ShowCaseMessage to automatically position itself based on available space. It prefers the top, falls back to the bottom if needed, and uses left/right positioning when vertical space is insufficient — ensuring it always stays within screen bounds.