feat(ui): add custom theme color support and share app functionality

Introduce a new custom theme feature that allows users to personalize the application background color using RGB sliders, hex input, or a set of predefined palettes.

Key changes include:
* **Custom Theme Engine**: Added `CustomThemeFragment` and `ThemeHelper` to manage color selection and application. The UI dynamically updates the background color across the `MainActivity` and `PlayerFragment` when preferences change.
* **Android TV Support**: Provided a specialized layout for television devices (`fragment_custom_theme.xml` in `layout-television`) with optimized focus handling for D-pad navigation.
* **Share Feature**: Implemented a "Share App" preference in `SettingsFragment` that triggers a standard Android share intent and displays a thank-you notification upon use.
* **Localization**: Added Ukrainian language support and updated string resources for multiple locales (DE, DA, EL, FR, JA, NL, PL, RU) to include the new theme and share options.
* **Persistence**: Updated `PreferencesHelper` and `Keys` to store theme-related settings, including the enabled state, selected color, and predefined color index.
This commit is contained in:
2026-06-01 19:32:46 +02:00
parent 4429ed4057
commit 181ebd47df
29 changed files with 947 additions and 3 deletions
+19
View File
@@ -161,4 +161,23 @@
<string name="media_route_menu_title">Μετάδοση</string>
<string name="pref_visualizer_title">Αναλυτής Φάσματος</string>
<string name="pref_visualizer_summary">Εμφάνιση του Αναλυτή Φάσματος.</string>
<string name="pref_share_app_title">Κοινοποίηση Εφαρμογής</string>
<string name="pref_share_app_summary">Προτείνετε αυτήν την εφαρμογή σε έναν φίλο.</string>
<string name="pref_share_app_share_text">Δείτε αυτήν την καταπληκτική εφαρμογή ραδιοφώνου: https://github.com/michatec/Radio</string>
<string name="pref_share_app_thank_title">Σας ευχαριστούμε!</string>
<string name="pref_share_app_thank_message">Ένα μεγάλο ευχαριστώ από τους προγραμματιστές.</string>
<!-- Custom Theme -->
<string name="pref_custom_theme_enabled_summary">Ενεργοποιεί την καρτέλα προσαρμοσμένου θέματος.</string>
<string name="pref_custom_theme_disabled_summary">Απενεργοποιεί την καρτέλα προσαρμοσμένου θέματος.</string>
<string name="pref_custom_theme_summary">Προσαρμόστε το χρώμα φόντου της εφαρμογής.</string>
<string name="pref_custom_theme_title">Προσαρμοσμένο Θέμα</string>
<string name="pref_custom_theme_enabled_title">Ενεργοποίηση Προσαρμοσμένου Θέματος</string>
<string name="theme_predefined_colors">Προκαθορισμένα Χρώματα (Φωτεινό/Σκοτεινό):</string>
<string name="theme_custom_rgb">Προσαρμοσμένο RGB (παρακαλώ προσαρμόστε στην εφαρμογή):</string>
<string name="theme_red">Κόκκινο</string>
<string name="theme_green">Πράσινο</string>
<string name="theme_blue">Μπλε</string>
<string name="hex_code">Κωδικός Hex</string>
</resources>