feat(theme): add theme preference settings with system/light/dark options#121
feat(theme): add theme preference settings with system/light/dark options#121anonfaded wants to merge 6 commits intopermissionlesstech:mainfrom
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
pedrobrantes
left a comment
There was a problem hiding this comment.
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
dynamicLightColorSchemeanddynamicDarkColorSchemewhen 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 |
pedrobrantes
left a comment
There was a problem hiding this comment.
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
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