diff --git a/Opus/Code/MainActivity.cs b/Opus/Code/MainActivity.cs index 8d5f57f..3a5641d 100644 --- a/Opus/Code/MainActivity.cs +++ b/Opus/Code/MainActivity.cs @@ -261,6 +261,10 @@ namespace Opus themeRes = Resource.Style.DarkTheme; dialogTheme = Resource.Style.AppCompatDarkAlertDialogStyle; break; + case 2: + themeRes = Resource.Style.BlackTheme; + dialogTheme = Resource.Style.AppCompatDarkAlertDialogStyle; + break; } context.SetTheme(themeRes); } diff --git a/Opus/Code/UI/Adapter/BottomSheetAdapter.cs b/Opus/Code/UI/Adapter/BottomSheetAdapter.cs index e6a222e..0114195 100644 --- a/Opus/Code/UI/Adapter/BottomSheetAdapter.cs +++ b/Opus/Code/UI/Adapter/BottomSheetAdapter.cs @@ -45,7 +45,7 @@ namespace Opus.Adapter Color color; TypedValue value = new TypedValue(); - if (Context.Theme.ResolveAttribute(Resource.Attribute.iconColor, value, true)) + if (Context.Theme.ResolveAttribute(Android.Resource.Attribute.ColorForeground, value, true)) color = Color.ParseColor("#" + Integer.ToHexString(value.Data)); else color = Color.Black; diff --git a/Opus/Code/UI/Fragments/Preferences.cs b/Opus/Code/UI/Fragments/Preferences.cs index 66c9d84..daca2a3 100644 --- a/Opus/Code/UI/Fragments/Preferences.cs +++ b/Opus/Code/UI/Fragments/Preferences.cs @@ -176,7 +176,19 @@ namespace Opus.Fragments Preference themePreference = PreferenceScreen.FindPreference("theme"); themePreference.IconSpaceReserved = false; themePreference.PreferenceClick += ChangeTheme; - themePreference.Summary = prefManager.GetInt("theme", 0) == 0 ? Resources.GetString(Resource.String.white_theme) : Resources.GetString(Resource.String.dark_theme); + switch (prefManager.GetInt("theme", 0)) + { + case 0: + default: + themePreference.Summary = Resources.GetString(Resource.String.white_theme); + break; + case 1: + themePreference.Summary = Resources.GetString(Resource.String.dark_theme); + break; + case 2: + themePreference.Summary = Resources.GetString(Resource.String.black_theme); + break; + } //Check For Update Preference updatePreference = PreferenceScreen.FindPreference("update"); @@ -307,7 +319,7 @@ namespace Opus.Fragments { AlertDialog.Builder builder = new AlertDialog.Builder(Activity, MainActivity.dialogTheme); builder.SetTitle(Resources.GetString(Resource.String.theme_dialog)); - builder.SetItems(new[] { Resources.GetString(Resource.String.white_theme), Resources.GetString(Resource.String.dark_theme) }, (s, args) => + builder.SetItems(new[] { Resources.GetString(Resource.String.white_theme), Resources.GetString(Resource.String.dark_theme), Resources.GetString(Resource.String.black_theme) }, (s, args) => { ISharedPreferences pref = PreferenceManager.GetDefaultSharedPreferences(Application.Context); ISharedPreferencesEditor editor = pref.Edit(); diff --git a/Opus/Resources/Resource.Designer.cs b/Opus/Resources/Resource.Designer.cs index 44b6add..0733aa2 100644 --- a/Opus/Resources/Resource.Designer.cs +++ b/Opus/Resources/Resource.Designer.cs @@ -162,8 +162,8 @@ namespace Opus public partial class Attribute { - // aapt resource value: 0x7f010280 - public const int accountIconColor = 2130772608; + // aapt resource value: 0x7f01027d + public const int accountIconColor = 2130772605; // aapt resource value: 0x7f0100d1 public const int actionBarDivider = 2130772177; @@ -336,9 +336,6 @@ namespace Opus // aapt resource value: 0x7f010090 public const int background = 2130772112; - // aapt resource value: 0x7f01027f - public const int backgroundAccent = 2130772607; - // aapt resource value: 0x7f010092 public const int backgroundSplit = 2130772114; @@ -375,6 +372,9 @@ namespace Opus // aapt resource value: 0x7f0101b4 public const int behavior_skipCollapsed = 2130772404; + // aapt resource value: 0x7f01027f + public const int blackSeperatorColor = 2130772607; + // aapt resource value: 0x7f0101ea public const int borderWidth = 2130772458; @@ -795,9 +795,6 @@ namespace Opus // aapt resource value: 0x7f010093 public const int customNavigationLayout = 2130772115; - // aapt resource value: 0x7f01027d - public const int defaultColor = 2130772605; - // aapt resource value: 0x7f010154 public const int defaultQueryHint = 2130772308; @@ -1125,9 +1122,6 @@ namespace Opus // aapt resource value: 0x7f01008d public const int icon = 2130772109; - // aapt resource value: 0x7f01027e - public const int iconColor = 2130772606; - // aapt resource value: 0x7f0101c9 public const int iconEndPadding = 2130772425; @@ -1389,6 +1383,9 @@ namespace Opus // aapt resource value: 0x7f0100a7 public const int multiChoiceItemLayout = 2130772135; + // aapt resource value: 0x7f01027e + public const int navigationBarColor = 2130772606; + // aapt resource value: 0x7f010176 public const int navigationContentDescription = 2130772342; @@ -7231,8 +7228,11 @@ namespace Opus // aapt resource value: 0x7f0d0138 public const int behavior = 2131558712; - // aapt resource value: 0x7f0d0157 - public const int beta_available = 2131558743; + // aapt resource value: 0x7f0d0158 + public const int beta_available = 2131558744; + + // aapt resource value: 0x7f0d0143 + public const int black_theme = 2131558723; // aapt resource value: 0x7f0d0081 public const int bottom_sheet_behavior = 2131558529; @@ -7243,14 +7243,14 @@ namespace Opus // aapt resource value: 0x7f0d0132 public const int cancel = 2131558706; - // aapt resource value: 0x7f0d015d - public const int cancelling = 2131558749; + // aapt resource value: 0x7f0d015e + public const int cancelling = 2131558750; // aapt resource value: 0x7f0d00f0 public const int cant_delete = 2131558640; - // aapt resource value: 0x7f0d015a - public const int cant_play_non_youtube = 2131558746; + // aapt resource value: 0x7f0d015b + public const int cant_play_non_youtube = 2131558747; // aapt resource value: 0x7f0d00b7 public const int cast = 2131558583; @@ -7402,8 +7402,8 @@ namespace Opus // aapt resource value: 0x7f0d0083 public const int character_counter_pattern = 2131558531; - // aapt resource value: 0x7f0d0144 - public const int check_updates = 2131558724; + // aapt resource value: 0x7f0d0145 + public const int check_updates = 2131558725; // aapt resource value: 0x7f0d002b public const int common_google_play_services_enable_button = 2131558443; @@ -7462,8 +7462,8 @@ namespace Opus // aapt resource value: 0x7f0d012e public const int completed = 2131558702; - // aapt resource value: 0x7f0d0151 - public const int country_blocked = 2131558737; + // aapt resource value: 0x7f0d0152 + public const int country_blocked = 2131558738; // aapt resource value: 0x7f0d0116 public const int create_local = 2131558678; @@ -7522,14 +7522,14 @@ namespace Opus // aapt resource value: 0x7f0d00ee public const int downloading = 2131558638; - // aapt resource value: 0x7f0d015b - public const int downloading_notification = 2131558747; + // aapt resource value: 0x7f0d015c + public const int downloading_notification = 2131558748; // aapt resource value: 0x7f0d012c public const int downloading_status = 2131558700; - // aapt resource value: 0x7f0d0158 - public const int downloading_update = 2131558744; + // aapt resource value: 0x7f0d0159 + public const int downloading_update = 2131558745; // aapt resource value: 0x7f0d00d1 public const int edit_metadata = 2131558609; @@ -7690,17 +7690,17 @@ namespace Opus // aapt resource value: 0x7f0d00ff public const int localpl_noperm = 2131558655; - // aapt resource value: 0x7f0d0148 - public const int log_in = 2131558728; - // aapt resource value: 0x7f0d0149 - public const int log_out = 2131558729; - - // aapt resource value: 0x7f0d0147 - public const int logged_in = 2131558727; + public const int log_in = 2131558729; // aapt resource value: 0x7f0d014a - public const int login_disabled = 2131558730; + public const int log_out = 2131558730; + + // aapt resource value: 0x7f0d0148 + public const int logged_in = 2131558728; + + // aapt resource value: 0x7f0d014b + public const int login_disabled = 2131558731; // aapt resource value: 0x7f0d013b public const int max_download = 2131558715; @@ -7819,8 +7819,8 @@ namespace Opus // aapt resource value: 0x7f0d00f4 public const int no_lives = 2131558644; - // aapt resource value: 0x7f0d014c - public const int no_permission = 2131558732; + // aapt resource value: 0x7f0d014d + public const int no_permission = 2131558733; // aapt resource value: 0x7f0d00f3 public const int no_playlist = 2131558643; @@ -7831,17 +7831,17 @@ namespace Opus // aapt resource value: 0x7f0d00e7 public const int no_song = 2131558631; - // aapt resource value: 0x7f0d014d - public const int no_song_mix = 2131558733; + // aapt resource value: 0x7f0d014e + public const int no_song_mix = 2131558734; // aapt resource value: 0x7f0d00f2 public const int no_track = 2131558642; - // aapt resource value: 0x7f0d0146 - public const int not_log = 2131558726; + // aapt resource value: 0x7f0d0147 + public const int not_log = 2131558727; - // aapt resource value: 0x7f0d0152 - public const int not_streamable = 2131558738; + // aapt resource value: 0x7f0d0153 + public const int not_streamable = 2131558739; // aapt resource value: 0x7f0d00bb public const int nothing = 2131558587; @@ -7855,8 +7855,8 @@ namespace Opus // aapt resource value: 0x7f0d00c4 public const int open_youtube = 2131558596; - // aapt resource value: 0x7f0d0143 - public const int others = 2131558723; + // aapt resource value: 0x7f0d0144 + public const int others = 2131558724; // aapt resource value: 0x7f0d0088 public const int password_toggle_content_description = 2131558536; @@ -8014,8 +8014,8 @@ namespace Opus // aapt resource value: 0x7f0d00ef public const int syncing = 2131558639; - // aapt resource value: 0x7f0d015c - public const int tap_details = 2131558748; + // aapt resource value: 0x7f0d015d + public const int tap_details = 2131558749; // aapt resource value: 0x7f0d013f public const int theme = 2131558719; @@ -8026,14 +8026,14 @@ namespace Opus // aapt resource value: 0x7f0d00c3 public const int timer = 2131558595; - // aapt resource value: 0x7f0d014f - public const int timout = 2131558735; + // aapt resource value: 0x7f0d0150 + public const int timout = 2131558736; // aapt resource value: 0x7f0d0119 public const int title = 2131558681; - // aapt resource value: 0x7f0d014b - public const int undo = 2131558731; + // aapt resource value: 0x7f0d014c + public const int undo = 2131558732; // aapt resource value: 0x7f0d0121 public const int undo_change = 2131558689; @@ -8044,29 +8044,29 @@ namespace Opus // aapt resource value: 0x7f0d010d public const int unfork_playlist = 2131558669; - // aapt resource value: 0x7f0d0150 - public const int unknow = 2131558736; + // aapt resource value: 0x7f0d0151 + public const int unknow = 2131558737; // aapt resource value: 0x7f0d00ba public const int up_next = 2131558586; - // aapt resource value: 0x7f0d0156 - public const int up_to_date = 2131558742; + // aapt resource value: 0x7f0d0157 + public const int up_to_date = 2131558743; // aapt resource value: 0x7f0d012d public const int up_to_date_status = 2131558701; - // aapt resource value: 0x7f0d0154 - public const int update = 2131558740; - // aapt resource value: 0x7f0d0155 - public const int update_message = 2131558741; + public const int update = 2131558741; - // aapt resource value: 0x7f0d0153 - public const int update_no_internet = 2131558739; + // aapt resource value: 0x7f0d0156 + public const int update_message = 2131558742; - // aapt resource value: 0x7f0d0159 - public const int updating = 2131558745; + // aapt resource value: 0x7f0d0154 + public const int update_no_internet = 2131558740; + + // aapt resource value: 0x7f0d015a + public const int updating = 2131558746; // aapt resource value: 0x7f0d003e public const int v7_preference_off = 2131558462; @@ -8074,8 +8074,8 @@ namespace Opus // aapt resource value: 0x7f0d003f public const int v7_preference_on = 2131558463; - // aapt resource value: 0x7f0d0145 - public const int version = 2131558725; + // aapt resource value: 0x7f0d0146 + public const int version = 2131558726; // aapt resource value: 0x7f0d0139 public const int volume = 2131558713; @@ -8086,8 +8086,8 @@ namespace Opus // aapt resource value: 0x7f0d0136 public const int yes = 2131558710; - // aapt resource value: 0x7f0d014e - public const int youtube_endpoint = 2131558734; + // aapt resource value: 0x7f0d014f + public const int youtube_endpoint = 2131558735; // aapt resource value: 0x7f0d00fb public const int youtube_loading_error = 2131558651; @@ -8711,6 +8711,12 @@ namespace Opus // aapt resource value: 0x7f0e01b2 public const int Base_Widget_MaterialComponents_TextInputLayout = 2131624370; + // aapt resource value: 0x7f0e023a + public const int BlackPreferences = 2131624506; + + // aapt resource value: 0x7f0e0232 + public const int BlackTheme = 2131624498; + // aapt resource value: 0x7f0e0032 public const int CardView = 2131623986; @@ -8738,8 +8744,8 @@ namespace Opus // aapt resource value: 0x7f0e0239 public const int DarkPreferences = 2131624505; - // aapt resource value: 0x7f0e0232 - public const int DarkTheme = 2131624498; + // aapt resource value: 0x7f0e0231 + public const int DarkTheme = 2131624497; // aapt resource value: 0x7f0e0226 public const int ExoMediaButton = 2131624486; @@ -8879,8 +8885,8 @@ namespace Opus // aapt resource value: 0x7f0e0020 public const int Preference_SwitchPreferenceCompat_Material = 2131623968; - // aapt resource value: 0x7f0e023a - public const int PreferenceCategoryStyle = 2131624506; + // aapt resource value: 0x7f0e023b + public const int PreferenceCategoryStyle = 2131624507; // aapt resource value: 0x7f0e0008 public const int PreferenceFragment = 2131623944; @@ -9302,9 +9308,6 @@ namespace Opus // aapt resource value: 0x7f0e0138 public const int Theme_AppCompat_NoActionBar = 2131624248; - // aapt resource value: 0x7f0e0231 - public const int Theme_Base = 2131624497; - // aapt resource value: 0x7f0e01ca public const int Theme_Design = 2131624394; diff --git a/Opus/Resources/layout/AddToPlaylistItem.xml b/Opus/Resources/layout/AddToPlaylistItem.xml index 910f040..d816cc8 100644 --- a/Opus/Resources/layout/AddToPlaylistItem.xml +++ b/Opus/Resources/layout/AddToPlaylistItem.xml @@ -24,7 +24,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@null" - android:tint="?iconColor" + android:tint="?android:colorForeground" android:id="@+id/status" android:paddingRight="15dp" android:layout_centerVertical="true" @@ -35,7 +35,7 @@ android:layout_height="20dp" android:paddingRight="15dp" android:indeterminate="true" - android:indeterminateTint="?iconColor" + android:indeterminateTint="?android:colorForeground" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:visibility="gone" /> diff --git a/Opus/Resources/layout/AddToPlaylistLayout.xml b/Opus/Resources/layout/AddToPlaylistLayout.xml index e6b8c1e..3895ed5 100644 --- a/Opus/Resources/layout/AddToPlaylistLayout.xml +++ b/Opus/Resources/layout/AddToPlaylistLayout.xml @@ -16,7 +16,7 @@ android:id="@+id/divider" android:layout_margin="5dp" android:alpha="0.6" - android:background="?iconColor" /> + android:background="?android:colorForeground" /> diff --git a/Opus/Resources/layout/HomeChannels.xml b/Opus/Resources/layout/HomeChannels.xml index 911aaee..2bc6df2 100644 --- a/Opus/Resources/layout/HomeChannels.xml +++ b/Opus/Resources/layout/HomeChannels.xml @@ -5,7 +5,7 @@ android:layout_width="fill_parent" android:layout_height="wrap_content" android:elevation="6dp" - android:background="?backgroundAccent" + android:background="?android:panelBackground" android:layout_marginTop="10dp" android:layout_marginBottom="10dp" android:orientation="vertical"> diff --git a/Opus/Resources/layout/HomePlaylist.xml b/Opus/Resources/layout/HomePlaylist.xml index 43e8741..c2461a0 100644 --- a/Opus/Resources/layout/HomePlaylist.xml +++ b/Opus/Resources/layout/HomePlaylist.xml @@ -26,7 +26,7 @@ android:layout_height="30dp" android:layout_margin="6dp" android:src="@drawable/play" - android:tint="?iconColor" + android:tint="?android:colorForeground" android:background="@null" android:id="@+id/play" /> diff --git a/Opus/Resources/layout/HomePlaylists.xml b/Opus/Resources/layout/HomePlaylists.xml index 81611b3..186a87c 100644 --- a/Opus/Resources/layout/HomePlaylists.xml +++ b/Opus/Resources/layout/HomePlaylists.xml @@ -5,7 +5,7 @@ android:layout_width="fill_parent" android:layout_height="wrap_content" android:elevation="6dp" - android:background="?backgroundAccent" + android:background="?android:panelBackground" android:layout_marginTop="10dp" android:layout_marginBottom="10dp" android:orientation="vertical"> diff --git a/Opus/Resources/layout/LineSongs.xml b/Opus/Resources/layout/LineSongs.xml index 3ef2e76..bfcd8a8 100644 --- a/Opus/Resources/layout/LineSongs.xml +++ b/Opus/Resources/layout/LineSongs.xml @@ -5,7 +5,7 @@ android:layout_width="fill_parent" android:layout_height="wrap_content" android:elevation="6dp" - android:background="?backgroundAccent" + android:background="?android:panelBackground" android:layout_marginTop="10dp" android:layout_marginBottom="10dp" android:orientation="vertical"> diff --git a/Opus/Resources/layout/Main.xml b/Opus/Resources/layout/Main.xml index 5c60468..0d94880 100644 --- a/Opus/Resources/layout/Main.xml +++ b/Opus/Resources/layout/Main.xml @@ -114,13 +114,20 @@ + + diff --git a/Opus/Resources/layout/PlaylistItem.xml b/Opus/Resources/layout/PlaylistItem.xml index 97dc1d6..bc6f237 100644 --- a/Opus/Resources/layout/PlaylistItem.xml +++ b/Opus/Resources/layout/PlaylistItem.xml @@ -52,7 +52,7 @@ android:layout_height="30dp" android:padding="5dp" android:background="@null" - android:tint="?iconColor" + android:tint="?android:colorForeground" android:src="@drawable/Edit" android:visibility="gone" /> diff --git a/Opus/Resources/layout/PlaylistSmallHeader.xml b/Opus/Resources/layout/PlaylistSmallHeader.xml index 5168a3f..4adf7e7 100644 --- a/Opus/Resources/layout/PlaylistSmallHeader.xml +++ b/Opus/Resources/layout/PlaylistSmallHeader.xml @@ -3,7 +3,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="fill_parent" - android:background="?backgroundAccent" + android:background="?android:panelBackground" android:id="@+id/playlistHeader" android:elevation="6dp" > @@ -33,7 +33,7 @@ android:id="@+id/headerShuffle" android:layout_width="60dp" android:layout_height="60dp" - android:tint="?iconColor" + android:tint="?android:colorForeground" android:clickable="true" android:src="@drawable/Shuffle" android:background="@null"/> @@ -41,9 +41,14 @@ android:id="@+id/headerMore" android:layout_width="60dp" android:layout_height="60dp" - android:tint="?iconColor" + android:tint="?android:colorForeground" android:clickable="true" android:src="@drawable/More" android:background="@null" /> + \ No newline at end of file diff --git a/Opus/Resources/layout/PreferenceRoot.xml b/Opus/Resources/layout/PreferenceRoot.xml index cc9e8ef..6bfe4e5 100644 --- a/Opus/Resources/layout/PreferenceRoot.xml +++ b/Opus/Resources/layout/PreferenceRoot.xml @@ -22,6 +22,6 @@ \ No newline at end of file diff --git a/Opus/Resources/layout/ShuffleButton.xml b/Opus/Resources/layout/ShuffleButton.xml index 8142ab7..4eb1d36 100644 --- a/Opus/Resources/layout/ShuffleButton.xml +++ b/Opus/Resources/layout/ShuffleButton.xml @@ -11,7 +11,6 @@ app:cardCornerRadius="16dp" app:cardElevation="14dp" android:foreground="?android:attr/selectableItemBackground" - app:cardBackgroundColor="?defaultColor" android:clickable="true" > @@ -85,7 +85,7 @@ android:padding="5dp" android:clickable="true" android:visibility="gone" - android:tint="?iconColor" + android:tint="?android:colorForeground" android:layout_gravity="center_vertical" android:src="@drawable/Reorder" /> diff --git a/Opus/Resources/layout/SuggestionLayout.xml b/Opus/Resources/layout/SuggestionLayout.xml index 5b33314..7a23320 100644 --- a/Opus/Resources/layout/SuggestionLayout.xml +++ b/Opus/Resources/layout/SuggestionLayout.xml @@ -10,7 +10,7 @@ android:layout_marginLeft="18dp" android:layout_marginTop="12dp" android:layout_marginBottom="12dp" - android:tint="?iconColor" + android:tint="?android:colorForeground" android:layout_alignParentStart="true" android:layout_centerVertical="true" /> diff --git a/Opus/Resources/layout/folderList.xml b/Opus/Resources/layout/folderList.xml index e5d5905..6652cf5 100644 --- a/Opus/Resources/layout/folderList.xml +++ b/Opus/Resources/layout/folderList.xml @@ -2,7 +2,6 @@ Choisissez un thème Thème clair Thème sombre + Thème noir Autres Rechercher des mises à jour Version diff --git a/Opus/Resources/values/attars.xml b/Opus/Resources/values/attars.xml index 03b77e4..a155314 100644 --- a/Opus/Resources/values/attars.xml +++ b/Opus/Resources/values/attars.xml @@ -1,7 +1,6 @@  - - - - + + + \ No newline at end of file diff --git a/Opus/Resources/values/strings.xml b/Opus/Resources/values/strings.xml index c7d85d3..2c7b398 100644 --- a/Opus/Resources/values/strings.xml +++ b/Opus/Resources/values/strings.xml @@ -179,6 +179,7 @@ Choose a theme White Theme Dark Theme + Black Theme Others Check for updates Version diff --git a/Opus/Resources/values/styles.xml b/Opus/Resources/values/styles.xml index 9a1be66..82828b3 100644 --- a/Opus/Resources/values/styles.xml +++ b/Opus/Resources/values/styles.xml @@ -1,8 +1,6 @@  - - - - + + + @@ -75,9 +94,21 @@ true false true - #212121 - #ffffff - #424242 + #212121 + #ffffff + + +