Skip to content

feat: implement dark theme with system integration and persistent use…#5

Open
amanjn38 wants to merge 2 commits intoberadeep:masterfrom
amanjn38:feat/dark-theme-implementation
Open

feat: implement dark theme with system integration and persistent use…#5
amanjn38 wants to merge 2 commits intoberadeep:masterfrom
amanjn38:feat/dark-theme-implementation

Conversation

@amanjn38
Copy link
Copy Markdown

@amanjn38 amanjn38 commented Jun 19, 2025

Pull Request (PR) Checklist

Please check if your pull request fulfills the following requirements:

  • The PR is submitted to the master branch.
  • I confirm that I've run the code locally and everything works as expected.
  • 🎬 I've attached a screen recording of the changes (in case of UI changes).

Tip: drag & drop the video to the PR description.

What type of PR is this? (check all applicable)

  • Refactor
  • Feature
  • Bug Fix
  • Optimization
  • Documentation Update

What's changed?

Describe with a few bullets what's new:

  • Implemented comprehensive dark theme with Material Design 3 colors
  • Added system theme integration - app follows phone's theme by default
  • Created persistent theme preferences using DataStore
  • Added animated ThemeSwitcher component with smooth transitions
  • Integrated theme switcher into HomeScreen for easy user access
  • Added ThemeViewModel for centralized theme state management
  • Implemented robust error handling for DataStore type safety
  • Support for three theme modes: SYSTEM (default), LIGHT, and DARK
  • Theme preferences persist across app restarts

💡 Tip: Please, attach screenshots and screen recordings. It helps a lot!

Risk Factors

What may go wrong if we merge your PR?

  • DataStore migration issues if users have existing conflicting preferences (mitigated with error handling)
  • Potential UI inconsistencies in screens not tested with dark theme
  • Theme switching animation might cause brief visual glitches on slower devices

In what cases your code won't work?

  • If DataStore dependency fails to initialize (gracefully falls back to system theme)
  • On devices with corrupted preference storage (handled with try-catch blocks)
  • If Hilt dependency injection fails for ThemeDataStore (app would crash - requires proper DI setup)

Does this PR closes any GitHub Issues?

Check CollegeSearch Issues.

  • Closes #ISSUE_NUMBER

Replace ISSUE_NUMBER with your issue number (for example Closes #1234). If you've done that correctly, you'll see the issue title linked when previewing your PR description.

@amanjn38 amanjn38 force-pushed the feat/dark-theme-implementation branch from ec21a25 to 98b68a3 Compare June 19, 2025 16:58
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