Skip to content

Improved UI/ux#19

Merged
Aatricks merged 5 commits intomainfrom
Improved-UI/UX
Jan 10, 2026
Merged

Improved UI/ux#19
Aatricks merged 5 commits intomainfrom
Improved-UI/UX

Conversation

@Aatricks
Copy link
Copy Markdown
Owner

This pull request introduces several major infrastructure improvements and refactors to the project, focusing on dependency management, DI setup, navigation, and codebase modernization. The most significant changes are the adoption of Hilt for dependency injection, migration to Room for local data storage, refactoring of MainActivity to leverage injected dependencies and navigation, and updates to build and ProGuard configurations to support these new libraries.

Dependency Injection & Project Infrastructure

  • Integrated Hilt for dependency injection and updated the project to use Hilt annotations and injected dependencies throughout the codebase, including in MainActivity and the new EasyReaderApplication class. (app/build.gradle.kts, app/src/main/AndroidManifest.xml, app/src/main/java/io/aatricks/novelscraper/EasyReaderApplication.kt, app/src/main/java/io/aatricks/novelscraper/MainActivity.kt) [1] [2] [3] [4]

Database & Serialization

  • Added Room as the local database solution, including new dependencies and the implementation of AppDatabase with a DAO for LibraryItem. (app/build.gradle.kts, app/src/main/java/io/aatricks/novelscraper/data/local/AppDatabase.kt) [1] [2]
  • Switched from Gson to kotlinx.serialization for JSON serialization, updating dependencies and ProGuard rules accordingly. (app/build.gradle.kts, app/proguard-rules.pro) [1] [2]

Navigation & UI Refactor

  • Migrated navigation to use the official Navigation Compose library, refactored MainActivity to use NavHost and injected ViewModels, and updated screen composition logic. (app/build.gradle.kts, app/src/main/java/io/aatricks/novelscraper/MainActivity.kt) [1] [2]

Build System & Dependency Management

  • Updated build.gradle.kts to use version catalog (libs.*) for all major dependencies, added plugins for Hilt, KSP, and Kotlin serialization, and reorganized dependencies for clarity and maintainability. (app/build.gradle.kts) [1] [2]

ProGuard Configuration

  • Added ProGuard rules to support new libraries (Ktor, Hilt, Room, kotlinx.serialization, OkHttp, llmedge), ensuring proper code shrinking and obfuscation for release builds. (app/proguard-rules.pro)

- Updated LibraryDrawerContent.kt to replace hardcoded colors with MaterialTheme colors for better consistency and theming.
- Enhanced ReaderScreen.kt by integrating MaterialTheme colors and adding support for dynamic theming based on user preferences.
- Improved ExploreScreen.kt by implementing MaterialTheme colors and adding a skeleton loading card for better user experience during data fetching.
- Adjusted Theme.kt to enable dynamic colors and set status/navigation bar colors based on the current theme.
- Modified ReaderViewModel.kt to include reader theme management, allowing users to switch themes seamlessly.
…ncy injection; update LibraryRepository tests to mock LibraryDao; enhance build configuration with Hilt, KSP, and Kotlin serialization; update dependencies in libs.versions.toml for improved functionality and compatibility.
…ving image handling, and refining progress tracking
@Aatricks Aatricks self-assigned this Jan 10, 2026
@Aatricks Aatricks merged commit 9a547d3 into main Jan 10, 2026
1 check passed
@Aatricks Aatricks deleted the Improved-UI/UX branch January 10, 2026 14:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant