-
Notifications
You must be signed in to change notification settings - Fork 487
feat(theme): add theme preference settings with system/light/dark options #121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat(theme): add theme preference settings with system/light/dark options #121
Conversation
…ions Implement theme preference management using SettingsManager with SharedPreferences Add settings dialog UI with theme selection options Update theme handling to respect user preference
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add support for Material You dynamic colors.
Consider the following actions:
- Add a "Dynamic" option to the theme settings so users can explicitly choose dynamic colors.
- Update the Theme logic (in Theme.kt) to apply
dynamicLightColorScheme
anddynamicDarkColorScheme
when the "Dynamic" option is selected and the device supports it. - Ensure the SettingsManager and SettingsDialog handle the new option.
This will provide users with a more modern and customizable experience on supported devices.
- Add DYNAMIC theme preference for Material You colors (Android 12+) - Replace hardcoded colors with theme colorScheme references - Update components to use theme colors consistently - Improve accessibility with proper content descriptions - Refactor SettingsManager to support new theme options
9d724c2
to
607a51c
Compare
Update loading indicators in onboarding screens to use MaterialTheme.colorScheme.primary instead of direct colorScheme reference for better consistency with Material Design theming
Everything done @callebtc @pedrobrantes |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Excellent work @anonfaded on this PR! This is a comprehensive and well-executed update. 🎉
The refactoring of hardcoded colors to use MaterialTheme.colorScheme
throughout the onboarding and UI components is a fantastic improvement for theme consistency and maintainability.
Fixing the ViewModel
to use getApplication<Application>().applicationContext
is a critical change that correctly aligns with MVVM principles and enhances the app's stability by preventing potential memory leaks.
Finally, the implementation of the Dynamic Theme option for Android 12+ is perfectly executed, from the UI in the settings dialog to the logic in Theme.kt
. This is a great feature that significantly improves the user experience on modern devices and effectively resolves issue #160.
Dynamic Color - Dark Theme | Dynamic Color - Light Theme |
---|---|
This is a solid contribution that greatly improves the codebase. Approved and ready to merge! 👍
app/src/main/java/com/bitchat/android/onboarding/BluetoothCheckScreen.kt
Outdated
Show resolved
Hide resolved
@callebtc |
Resolved conflicts by: - Keeping main branch's improved input UX (placeholder text, command quick access) - Integrating theme system with proper tertiary colors for favorites - Using colorScheme.tertiary for favorite stars instead of hardcoded colors - Maintaining settings dialog and theme management functionality
- Replace settings dialog with full-screen interface - Move settings icon to left of app name with Tune icon - Fix purple theme colors to use consistent green palette - Add /settings slash command for quick access - Enhanced animations and visual feedback in settings screen
Hi @pedrobrantes @callebtc, Also i noticed that the background color that we had for the slash command in input field isn't there anymore, should i add that back?
|
Description
Closes: #118
Checklist