diff --git a/Opus/Code/Api/PlaylistManager.cs b/Opus/Code/Api/PlaylistManager.cs index ba34f5c..b882147 100644 --- a/Opus/Code/Api/PlaylistManager.cs +++ b/Opus/Code/Api/PlaylistManager.cs @@ -594,12 +594,12 @@ namespace Opus.Api if (askForPermission) { if (!await MainActivity.instance.GetReadPermission()) - return (null, Application.Context.GetString(Resource.String.no_permission)); + return (null, Application.Context.GetString(Resource.String.localpl_noperm)); } else { if (!MainActivity.instance.HasReadPermission()) - return (null, Application.Context.GetString(Resource.String.no_permission)); + return (null, Application.Context.GetString(Resource.String.localpl_noperm)); } List playlists = new List(); @@ -634,7 +634,7 @@ namespace Opus.Api }); if (playlists.Count == 0) - return (null, Application.Context.GetString(Resource.String.local_playlist_empty)); + return (null, "EMPTY"); else return (playlists, null); } diff --git a/Opus/Code/UI/Adapter/PlaylistAdapter.cs b/Opus/Code/UI/Adapter/PlaylistAdapter.cs index d4f11db..c7a6a4f 100644 --- a/Opus/Code/UI/Adapter/PlaylistAdapter.cs +++ b/Opus/Code/UI/Adapter/PlaylistAdapter.cs @@ -2,6 +2,7 @@ using Android.Content.Res; using Android.Graphics; using Android.Support.V7.Widget; +using Android.Text; using Android.Views; using Android.Widget; using Opus.Api.Services; @@ -33,6 +34,7 @@ namespace Opus.Adapter public override void OnBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { + //Headers if (position == 0) { HeaderHolder holder = (HeaderHolder)viewHolder; @@ -43,6 +45,8 @@ namespace Opus.Adapter HeaderHolder holder = (HeaderHolder)viewHolder; holder.headerText.Text = MainActivity.instance.Resources.GetString(Resource.String.youtube_playlists); } + + //Empty views else if (position == 1 && LocalPlaylists[1].Name == "EMPTY") { EmptyHolder holder = (EmptyHolder)viewHolder; @@ -53,6 +57,8 @@ namespace Opus.Adapter EmptyHolder holder = (EmptyHolder)viewHolder; holder.text.Text = YoutubePlaylists[1].Owner; } + + //End button else if (position == LocalPlaylists.Count + YoutubePlaylists.Count) { UslessHolder holder = (UslessHolder)viewHolder; @@ -70,13 +76,32 @@ namespace Opus.Adapter else holder.ItemView.SetPadding((int)(8 * scale + 0.5f), (int)(8 * scale + 0.5f), (int)(8 * scale + 0.5f), (int)(8 * scale + 0.5f)); } + + //Loading else if(position >= LocalPlaylists.Count && YoutubePlaylists[position - LocalPlaylists.Count].Name == "Loading" && YoutubePlaylists[position - LocalPlaylists.Count].YoutubeID == null) { } + + //Error views + else if (position < LocalPlaylists.Count && LocalPlaylists[position].Name == "Error" && LocalPlaylists[position].LocalID == -1) + { + EmptyHolder holder = (EmptyHolder)viewHolder; + holder.text.TextFormatted = Html.FromHtml(LocalPlaylists[position].Owner, FromHtmlOptions.OptionUseCssColors); + + if (!holder.text.HasOnClickListeners) + { + holder.text.Click += (s, e) => + { + Playlist.instance.RefreshLocalPlaylists(); + }; + } + } else if(position >= LocalPlaylists.Count && YoutubePlaylists[position - LocalPlaylists.Count].Name == "Error" && YoutubePlaylists[position - LocalPlaylists.Count].YoutubeID == null) { EmptyHolder holder = (EmptyHolder)viewHolder; holder.text.Text = MainActivity.instance.Resources.GetString(Resource.String.youtube_loading_error); holder.text.SetTextColor(Color.Red); } + + //Playlists binding else if (LocalPlaylists.Count >= position) { TwoLineHolder holder = (TwoLineHolder) viewHolder; @@ -228,6 +253,8 @@ namespace Opus.Adapter { if (position == 0 || position - LocalPlaylists.Count == 0) return 0; + else if (position < LocalPlaylists.Count && LocalPlaylists[position].Name == "Error" && LocalPlaylists[position].LocalID == -1) + return 5; else if (LocalPlaylists.Count >= position && (LocalPlaylists.Count > 2 || LocalPlaylists[1].Name != "EMPTY")) return 1; else if (position == LocalPlaylists.Count + YoutubePlaylists.Count) diff --git a/Opus/Code/UI/Fragments/Playlist.cs b/Opus/Code/UI/Fragments/Playlist.cs index b5baa13..a1914e6 100644 --- a/Opus/Code/UI/Fragments/Playlist.cs +++ b/Opus/Code/UI/Fragments/Playlist.cs @@ -75,23 +75,27 @@ namespace Opus.Fragments PlaylistItem Loading = new PlaylistItem("Loading", null); //Get all local playlist and display an error message if we have an error. - (List locPlaylists, string error) = await PlaylistManager.GetLocalPlaylists(); + (List locPlaylists, string error) = await PlaylistManager.GetLocalPlaylists(false); if (instance == null) return; - if (locPlaylists == null) //an error has occured - LocalPlaylists.Add(new PlaylistItem("EMPTY", -1) { Owner = error }); + if (error != null) //an error has occured + LocalPlaylists.Add(new PlaylistItem("Error", -1) { Owner = error }); //Handle synced playlist from the local playlist array we had before. (List loc, List SyncedPlaylists) = await PlaylistManager.ProcessSyncedPlaylists(locPlaylists); - if (loc.Count == 0) //Every local playlist is a synced one - LocalPlaylists.Add(new PlaylistItem("EMPTY", -1) { Owner = GetString(Resource.String.local_playlist_empty) }); - if (instance == null) return; - LocalPlaylists.AddRange(loc); + if(error == null) + { + if (loc == null || loc.Count == 0) //Every local playlist is a synced one + LocalPlaylists.Add(new PlaylistItem("EMPTY", -1) { Owner = GetString(Resource.String.local_playlist_empty) }); + else + LocalPlaylists.AddRange(loc); + } + YoutubePlaylists.AddRange(SyncedPlaylists); //Display this for now, we'll load non synced youtube playlist in the background. @@ -254,6 +258,38 @@ namespace Opus.Fragments await PopulateView(); } + public async void RefreshLocalPlaylists() + { + int count = LocalPlaylists.Count; + LocalPlaylists.Clear(); + LocalPlaylists.Add(new PlaylistItem("Header", -1)); + + (List locPlaylists, string error) = await PlaylistManager.GetLocalPlaylists(true); + if (instance == null) + return; + + if (error != null) //an error has occured + LocalPlaylists.Add(new PlaylistItem("Error", -1) { Owner = error }); + + //Handle synced playlist from the local playlist array we had before. + (List loc, List SyncedPlaylists) = await PlaylistManager.ProcessSyncedPlaylists(locPlaylists); + + if (instance == null) + return; + + if (error == null) + { + if (loc == null || loc.Count == 0) //Every local playlist is a synced one + LocalPlaylists.Add(new PlaylistItem("EMPTY", -1) { Owner = GetString(Resource.String.local_playlist_empty) }); + else + LocalPlaylists.AddRange(loc); + } + + adapter.NotifyItemRangeChanged(1, count - 1); + if(LocalPlaylists.Count > count) + adapter.NotifyItemRangeInserted(count, LocalPlaylists.Count - count); + } + private void ListView_ItemClick(object sender, int Position) { if(Position == LocalPlaylists.Count + YoutubePlaylists.Count) diff --git a/Opus/Resources/Resource.Designer.cs b/Opus/Resources/Resource.Designer.cs index fe9c636..d95bafd 100644 --- a/Opus/Resources/Resource.Designer.cs +++ b/Opus/Resources/Resource.Designer.cs @@ -7186,14 +7186,14 @@ namespace Opus // aapt resource value: 0x7f0d0072 public const int abc_toolbar_collapse_description = 2131558514; - // aapt resource value: 0x7f0d0131 - public const int add = 2131558705; + // aapt resource value: 0x7f0d0132 + public const int add = 2131558706; // aapt resource value: 0x7f0d00fc public const int add_playlist = 2131558652; - // aapt resource value: 0x7f0d010e - public const int add_playlist_msg = 2131558670; + // aapt resource value: 0x7f0d010f + public const int add_playlist_msg = 2131558671; // aapt resource value: 0x7f0d00e0 public const int add_to_library = 2131558624; @@ -7204,8 +7204,8 @@ namespace Opus // aapt resource value: 0x7f0d00da public const int add_to_queue = 2131558618; - // aapt resource value: 0x7f0d011a - public const int album = 2131558682; + // aapt resource value: 0x7f0d011b + public const int album = 2131558683; // aapt resource value: 0x7f0d00ea public const int all = 2131558634; @@ -7213,14 +7213,14 @@ namespace Opus // aapt resource value: 0x7f0d0080 public const int appbar_scrolling_view_behavior = 2131558528; - // aapt resource value: 0x7f0d013b - public const int appearances = 2131558715; + // aapt resource value: 0x7f0d013c + public const int appearances = 2131558716; - // aapt resource value: 0x7f0d012e - public const int apply = 2131558702; + // aapt resource value: 0x7f0d012f + public const int apply = 2131558703; - // aapt resource value: 0x7f0d0119 - public const int artist = 2131558681; + // aapt resource value: 0x7f0d011a + public const int artist = 2131558682; // aapt resource value: 0x7f0d00cb public const int autoplay = 2131558603; @@ -7228,14 +7228,14 @@ namespace Opus // aapt resource value: 0x7f0d00cc public const int autoplay_desc = 2131558604; - // aapt resource value: 0x7f0d0110 - public const int badplaylisturl = 2131558672; + // aapt resource value: 0x7f0d0111 + public const int badplaylisturl = 2131558673; - // aapt resource value: 0x7f0d0135 - public const int behavior = 2131558709; + // aapt resource value: 0x7f0d0136 + public const int behavior = 2131558710; - // aapt resource value: 0x7f0d0153 - public const int beta_available = 2131558739; + // aapt resource value: 0x7f0d0154 + public const int beta_available = 2131558740; // aapt resource value: 0x7f0d0081 public const int bottom_sheet_behavior = 2131558529; @@ -7243,17 +7243,17 @@ namespace Opus // aapt resource value: 0x7f0d00b4 public const int browse = 2131558580; - // aapt resource value: 0x7f0d012f - public const int cancel = 2131558703; + // aapt resource value: 0x7f0d0130 + public const int cancel = 2131558704; - // aapt resource value: 0x7f0d0159 - public const int cancelling = 2131558745; + // aapt resource value: 0x7f0d015a + public const int cancelling = 2131558746; // aapt resource value: 0x7f0d00f2 public const int cant_delete = 2131558642; - // aapt resource value: 0x7f0d0156 - public const int cant_play_non_youtube = 2131558742; + // aapt resource value: 0x7f0d0157 + public const int cant_play_non_youtube = 2131558743; // aapt resource value: 0x7f0d00b9 public const int cast = 2131558585; @@ -7336,11 +7336,11 @@ namespace Opus // aapt resource value: 0x7f0d0015 public const int cast_play = 2131558421; - // aapt resource value: 0x7f0d012c - public const int cast_queue_push = 2131558700; - // aapt resource value: 0x7f0d012d - public const int cast_queue_pushed = 2131558701; + public const int cast_queue_push = 2131558701; + + // aapt resource value: 0x7f0d012e + public const int cast_queue_pushed = 2131558702; // aapt resource value: 0x7f0d0016 public const int cast_rewind = 2131558422; @@ -7390,11 +7390,11 @@ namespace Opus // aapt resource value: 0x7f0d0025 public const int cast_unmute = 2131558437; - // aapt resource value: 0x7f0d011c - public const int change_albumart = 2131558684; + // aapt resource value: 0x7f0d011d + public const int change_albumart = 2131558685; - // aapt resource value: 0x7f0d0121 - public const int changes_saved = 2131558689; + // aapt resource value: 0x7f0d0122 + public const int changes_saved = 2131558690; // aapt resource value: 0x7f0d00ec public const int channels = 2131558636; @@ -7405,8 +7405,8 @@ namespace Opus // aapt resource value: 0x7f0d0083 public const int character_counter_pattern = 2131558531; - // aapt resource value: 0x7f0d0141 - public const int check_updates = 2131558721; + // aapt resource value: 0x7f0d0142 + public const int check_updates = 2131558722; // aapt resource value: 0x7f0d00b0 public const int clientID = 2131558576; @@ -7468,14 +7468,14 @@ namespace Opus // aapt resource value: 0x7f0d003b public const int common_signin_button_text_long = 2131558459; - // aapt resource value: 0x7f0d012b - public const int completed = 2131558699; + // aapt resource value: 0x7f0d012c + public const int completed = 2131558700; - // aapt resource value: 0x7f0d014d - public const int country_blocked = 2131558733; + // aapt resource value: 0x7f0d014e + public const int country_blocked = 2131558734; - // aapt resource value: 0x7f0d0115 - public const int create_local = 2131558677; + // aapt resource value: 0x7f0d0116 + public const int create_local = 2131558678; // aapt resource value: 0x7f0d00cd public const int create_mix = 2131558605; @@ -7483,38 +7483,38 @@ namespace Opus // aapt resource value: 0x7f0d00d1 public const int create_mix_from_song = 2131558609; - // aapt resource value: 0x7f0d0111 - public const int create_playlist = 2131558673; + // aapt resource value: 0x7f0d0112 + public const int create_playlist = 2131558674; + + // aapt resource value: 0x7f0d0118 + public const int create_synced = 2131558680; // aapt resource value: 0x7f0d0117 - public const int create_synced = 2131558679; + public const int create_youtube = 2131558679; - // aapt resource value: 0x7f0d0116 - public const int create_youtube = 2131558678; - - // aapt resource value: 0x7f0d013f - public const int dark_theme = 2131558719; + // aapt resource value: 0x7f0d0140 + public const int dark_theme = 2131558720; // aapt resource value: 0x7f0d00dc public const int delete = 2131558620; - // aapt resource value: 0x7f0d010a - public const int delete_playlist = 2131558666; + // aapt resource value: 0x7f0d010b + public const int delete_playlist = 2131558667; - // aapt resource value: 0x7f0d0126 - public const int deleted_file = 2131558694; + // aapt resource value: 0x7f0d0127 + public const int deleted_file = 2131558695; // aapt resource value: 0x7f0d00d4 public const int download = 2131558612; - // aapt resource value: 0x7f0d011e - public const int download_albumart = 2131558686; - - // aapt resource value: 0x7f0d0137 - public const int download_directory = 2131558711; - // aapt resource value: 0x7f0d011f - public const int download_meta = 2131558687; + public const int download_albumart = 2131558687; + + // aapt resource value: 0x7f0d0138 + public const int download_directory = 2131558712; + + // aapt resource value: 0x7f0d0120 + public const int download_meta = 2131558688; // aapt resource value: 0x7f0d00ee public const int download_path_error = 2131558638; @@ -7522,29 +7522,29 @@ namespace Opus // aapt resource value: 0x7f0d00ed public const int download_path_not_set = 2131558637; - // aapt resource value: 0x7f0d0125 - public const int download_queue = 2131558693; + // aapt resource value: 0x7f0d0126 + public const int download_queue = 2131558694; // aapt resource value: 0x7f0d00f0 public const int downloading = 2131558640; - // aapt resource value: 0x7f0d0157 - public const int downloading_notification = 2131558743; + // aapt resource value: 0x7f0d0158 + public const int downloading_notification = 2131558744; - // aapt resource value: 0x7f0d0129 - public const int downloading_status = 2131558697; + // aapt resource value: 0x7f0d012a + public const int downloading_status = 2131558698; - // aapt resource value: 0x7f0d0154 - public const int downloading_update = 2131558740; + // aapt resource value: 0x7f0d0155 + public const int downloading_update = 2131558741; // aapt resource value: 0x7f0d00d3 public const int edit_metadata = 2131558611; - // aapt resource value: 0x7f0d0100 - public const int element = 2131558656; - // aapt resource value: 0x7f0d0101 - public const int elements = 2131558657; + public const int element = 2131558657; + + // aapt resource value: 0x7f0d0102 + public const int elements = 2131558658; // aapt resource value: 0x7f0d0090 public const int exo_controls_fastforward_description = 2131558544; @@ -7672,11 +7672,11 @@ namespace Opus // aapt resource value: 0x7f0d00c4 public const int hours = 2131558596; - // aapt resource value: 0x7f0d0127 - public const int initialization = 2131558695; + // aapt resource value: 0x7f0d0128 + public const int initialization = 2131558696; - // aapt resource value: 0x7f0d0132 - public const int later = 2131558706; + // aapt resource value: 0x7f0d0133 + public const int later = 2131558707; // aapt resource value: 0x7f0d00d7 public const int list_songs = 2131558615; @@ -7690,26 +7690,29 @@ namespace Opus // aapt resource value: 0x7f0d00fa public const int local_playlists = 2131558650; - // aapt resource value: 0x7f0d0145 - public const int log_in = 2131558725; + // aapt resource value: 0x7f0d0100 + public const int localpl_noperm = 2131558656; // aapt resource value: 0x7f0d0146 - public const int log_out = 2131558726; + public const int log_in = 2131558726; - // aapt resource value: 0x7f0d0144 - public const int logged_in = 2131558724; + // aapt resource value: 0x7f0d0147 + public const int log_out = 2131558727; - // aapt resource value: 0x7f0d0138 - public const int max_download = 2131558712; + // aapt resource value: 0x7f0d0145 + public const int logged_in = 2131558725; // aapt resource value: 0x7f0d0139 - public const int max_download_dialog = 2131558713; + public const int max_download = 2131558713; - // aapt resource value: 0x7f0d0128 - public const int metadata = 2131558696; + // aapt resource value: 0x7f0d013a + public const int max_download_dialog = 2131558714; - // aapt resource value: 0x7f0d0122 - public const int metdata_error_noid = 2131558690; + // aapt resource value: 0x7f0d0129 + public const int metadata = 2131558697; + + // aapt resource value: 0x7f0d0123 + public const int metdata_error_noid = 2131558691; // aapt resource value: 0x7f0d00c1 public const int minute = 2131558593; @@ -7720,11 +7723,11 @@ namespace Opus // aapt resource value: 0x7f0d00e4 public const int more = 2131558628; - // aapt resource value: 0x7f0d0123 - public const int mount_error = 2131558691; - // aapt resource value: 0x7f0d0124 - public const int mount_error_action = 2131558692; + public const int mount_error = 2131558692; + + // aapt resource value: 0x7f0d0125 + public const int mount_error_action = 2131558693; // aapt resource value: 0x7f0d0040 public const int mr_button_content_description = 2131558464; @@ -7801,14 +7804,14 @@ namespace Opus // aapt resource value: 0x7f0d0087 public const int mtrl_chip_close_icon_content_description = 2131558535; - // aapt resource value: 0x7f0d0114 - public const int new_playlist = 2131558676; + // aapt resource value: 0x7f0d0115 + public const int new_playlist = 2131558677; // aapt resource value: 0x7f0d00be public const int next_loading = 2131558590; - // aapt resource value: 0x7f0d0134 - public const int no = 2131558708; + // aapt resource value: 0x7f0d0135 + public const int no = 2131558709; // aapt resource value: 0x7f0d00f7 public const int no_channel = 2131558647; @@ -7816,8 +7819,8 @@ namespace Opus // aapt resource value: 0x7f0d00f6 public const int no_lives = 2131558646; - // aapt resource value: 0x7f0d0148 - public const int no_permission = 2131558728; + // aapt resource value: 0x7f0d0149 + public const int no_permission = 2131558729; // aapt resource value: 0x7f0d00f5 public const int no_playlist = 2131558645; @@ -7828,17 +7831,17 @@ namespace Opus // aapt resource value: 0x7f0d00e9 public const int no_song = 2131558633; - // aapt resource value: 0x7f0d0149 - public const int no_song_mix = 2131558729; + // aapt resource value: 0x7f0d014a + public const int no_song_mix = 2131558730; // aapt resource value: 0x7f0d00f4 public const int no_track = 2131558644; - // aapt resource value: 0x7f0d0143 - public const int not_log = 2131558723; + // aapt resource value: 0x7f0d0144 + public const int not_log = 2131558724; - // aapt resource value: 0x7f0d014e - public const int not_streamable = 2131558734; + // aapt resource value: 0x7f0d014f + public const int not_streamable = 2131558735; // aapt resource value: 0x7f0d00bd public const int nothing = 2131558589; @@ -7846,14 +7849,14 @@ namespace Opus // aapt resource value: 0x7f0d00c0 public const int off = 2131558592; - // aapt resource value: 0x7f0d0130 - public const int ok = 2131558704; + // aapt resource value: 0x7f0d0131 + public const int ok = 2131558705; // aapt resource value: 0x7f0d00c6 public const int open_youtube = 2131558598; - // aapt resource value: 0x7f0d0140 - public const int others = 2131558720; + // aapt resource value: 0x7f0d0141 + public const int others = 2131558721; // aapt resource value: 0x7f0d0088 public const int password_toggle_content_description = 2131558536; @@ -7873,8 +7876,8 @@ namespace Opus // aapt resource value: 0x7f0d00c8 public const int paused = 2131558600; - // aapt resource value: 0x7f0d011d - public const int pick_album_local = 2131558685; + // aapt resource value: 0x7f0d011e + public const int pick_album_local = 2131558686; // aapt resource value: 0x7f0d00ce public const int play = 2131558606; @@ -7891,26 +7894,26 @@ namespace Opus // aapt resource value: 0x7f0d00c7 public const int playing = 2131558599; - // aapt resource value: 0x7f0d0109 - public const int playlist_add_song_not_found = 2131558665; - - // aapt resource value: 0x7f0d0106 - public const int playlist_already_saved = 2131558662; - - // aapt resource value: 0x7f0d0102 - public const int playlist_empty = 2131558658; - - // aapt resource value: 0x7f0d010f - public const int playlist_fork = 2131558671; - - // aapt resource value: 0x7f0d0108 - public const int playlist_not_found = 2131558664; - - // aapt resource value: 0x7f0d0105 - public const int playlist_saved = 2131558661; + // aapt resource value: 0x7f0d010a + public const int playlist_add_song_not_found = 2131558666; // aapt resource value: 0x7f0d0107 - public const int playlist_unsaved = 2131558663; + public const int playlist_already_saved = 2131558663; + + // aapt resource value: 0x7f0d0103 + public const int playlist_empty = 2131558659; + + // aapt resource value: 0x7f0d0110 + public const int playlist_fork = 2131558672; + + // aapt resource value: 0x7f0d0109 + public const int playlist_not_found = 2131558665; + + // aapt resource value: 0x7f0d0106 + public const int playlist_saved = 2131558662; + + // aapt resource value: 0x7f0d0108 + public const int playlist_unsaved = 2131558664; // aapt resource value: 0x7f0d00b5 public const int playlists = 2131558581; @@ -7924,8 +7927,8 @@ namespace Opus // aapt resource value: 0x7f0d00f9 public const int remove = 2131558649; - // aapt resource value: 0x7f0d0103 - public const int remove_from_playlist = 2131558659; + // aapt resource value: 0x7f0d0104 + public const int remove_from_playlist = 2131558660; // aapt resource value: 0x7f0d00d5 public const int remove_from_queue = 2131558613; @@ -7936,8 +7939,8 @@ namespace Opus // aapt resource value: 0x7f0d00d6 public const int remove_track_from_playlist = 2131558614; - // aapt resource value: 0x7f0d0104 - public const int removed_from_playlist = 2131558660; + // aapt resource value: 0x7f0d0105 + public const int removed_from_playlist = 2131558661; // aapt resource value: 0x7f0d00c9 public const int removed_from_queue = 2131558601; @@ -7945,8 +7948,8 @@ namespace Opus // aapt resource value: 0x7f0d00db public const int rename = 2131558619; - // aapt resource value: 0x7f0d010b - public const int rename_playlist = 2131558667; + // aapt resource value: 0x7f0d010c + public const int rename_playlist = 2131558668; // aapt resource value: 0x7f0d00b6 public const int repeat = 2131558582; @@ -7954,11 +7957,11 @@ namespace Opus // aapt resource value: 0x7f0d00ca public const int save_as_playlist = 2131558602; - // aapt resource value: 0x7f0d0113 - public const int save_folder_playlist = 2131558675; + // aapt resource value: 0x7f0d0114 + public const int save_folder_playlist = 2131558676; - // aapt resource value: 0x7f0d0112 - public const int save_playlist = 2131558674; + // aapt resource value: 0x7f0d0113 + public const int save_playlist = 2131558675; // aapt resource value: 0x7f0d0073 public const int search_menu_title = 2131558515; @@ -7990,8 +7993,8 @@ namespace Opus // aapt resource value: 0x7f0d00df public const int stop_sync = 2131558623; - // aapt resource value: 0x7f0d010c - public const int stop_syncing = 2131558668; + // aapt resource value: 0x7f0d010d + public const int stop_syncing = 2131558669; // aapt resource value: 0x7f0d003d public const int summary_collapsed_preference_list = 2131558461; @@ -8002,65 +8005,65 @@ namespace Opus // aapt resource value: 0x7f0d00de public const int sync_now = 2131558622; - // aapt resource value: 0x7f0d013a - public const int sync_remove = 2131558714; + // aapt resource value: 0x7f0d013b + public const int sync_remove = 2131558715; // aapt resource value: 0x7f0d00f1 public const int syncing = 2131558641; - // aapt resource value: 0x7f0d0158 - public const int tap_details = 2131558744; - - // aapt resource value: 0x7f0d013c - public const int theme = 2131558716; + // aapt resource value: 0x7f0d0159 + public const int tap_details = 2131558745; // aapt resource value: 0x7f0d013d - public const int theme_dialog = 2131558717; + public const int theme = 2131558717; + + // aapt resource value: 0x7f0d013e + public const int theme_dialog = 2131558718; // aapt resource value: 0x7f0d00c5 public const int timer = 2131558597; - // aapt resource value: 0x7f0d014b - public const int timout = 2131558731; + // aapt resource value: 0x7f0d014c + public const int timout = 2131558732; - // aapt resource value: 0x7f0d0118 - public const int title = 2131558680; + // aapt resource value: 0x7f0d0119 + public const int title = 2131558681; - // aapt resource value: 0x7f0d0147 - public const int undo = 2131558727; + // aapt resource value: 0x7f0d0148 + public const int undo = 2131558728; - // aapt resource value: 0x7f0d0120 - public const int undo_change = 2131558688; + // aapt resource value: 0x7f0d0121 + public const int undo_change = 2131558689; // aapt resource value: 0x7f0d00e1 public const int unfork = 2131558625; - // aapt resource value: 0x7f0d010d - public const int unfork_playlist = 2131558669; + // aapt resource value: 0x7f0d010e + public const int unfork_playlist = 2131558670; - // aapt resource value: 0x7f0d014c - public const int unknow = 2131558732; + // aapt resource value: 0x7f0d014d + public const int unknow = 2131558733; // aapt resource value: 0x7f0d00bc public const int up_next = 2131558588; - // aapt resource value: 0x7f0d0152 - public const int up_to_date = 2131558738; + // aapt resource value: 0x7f0d0153 + public const int up_to_date = 2131558739; - // aapt resource value: 0x7f0d012a - public const int up_to_date_status = 2131558698; - - // aapt resource value: 0x7f0d0150 - public const int update = 2131558736; + // aapt resource value: 0x7f0d012b + public const int up_to_date_status = 2131558699; // aapt resource value: 0x7f0d0151 - public const int update_message = 2131558737; + public const int update = 2131558737; - // aapt resource value: 0x7f0d014f - public const int update_no_internet = 2131558735; + // aapt resource value: 0x7f0d0152 + public const int update_message = 2131558738; - // aapt resource value: 0x7f0d0155 - public const int updating = 2131558741; + // aapt resource value: 0x7f0d0150 + public const int update_no_internet = 2131558736; + + // aapt resource value: 0x7f0d0156 + public const int updating = 2131558742; // aapt resource value: 0x7f0d003e public const int v7_preference_off = 2131558462; @@ -8068,20 +8071,20 @@ namespace Opus // aapt resource value: 0x7f0d003f public const int v7_preference_on = 2131558463; - // aapt resource value: 0x7f0d0142 - public const int version = 2131558722; + // aapt resource value: 0x7f0d0143 + public const int version = 2131558723; - // aapt resource value: 0x7f0d0136 - public const int volume = 2131558710; + // aapt resource value: 0x7f0d0137 + public const int volume = 2131558711; - // aapt resource value: 0x7f0d013e - public const int white_theme = 2131558718; + // aapt resource value: 0x7f0d013f + public const int white_theme = 2131558719; - // aapt resource value: 0x7f0d0133 - public const int yes = 2131558707; + // aapt resource value: 0x7f0d0134 + public const int yes = 2131558708; - // aapt resource value: 0x7f0d014a - public const int youtube_endpoint = 2131558730; + // aapt resource value: 0x7f0d014b + public const int youtube_endpoint = 2131558731; // aapt resource value: 0x7f0d00fd public const int youtube_loading_error = 2131558653; @@ -8095,8 +8098,8 @@ namespace Opus // aapt resource value: 0x7f0d00b7 public const int youtube_search = 2131558583; - // aapt resource value: 0x7f0d011b - public const int youtubeid = 2131558683; + // aapt resource value: 0x7f0d011c + public const int youtubeid = 2131558684; // aapt resource value: 0x7f0d00b2 public const int yt_api_key = 2131558578; diff --git a/Opus/Resources/values-fr/strings.xml b/Opus/Resources/values-fr/strings.xml index 5980bbb..b6f8bd2 100644 --- a/Opus/Resources/values-fr/strings.xml +++ b/Opus/Resources/values-fr/strings.xml @@ -98,6 +98,7 @@ Erreur de chargement. \nVérifiez avoir séléctionné un compte et votre connection internet. Vous n\'avez aucune playlist sur cet appareil. Vous n\'avez aucune playlist sur ce compte youtube \nAttention : seulement les playlists présentes sur votre compte google sont affichées. + <font color=red>Impossible de lister les playlists locales.</font><br><u>Clicez ici</u> pour donner les droits de lectures a l'application. titre titres Cette playlist est vide. diff --git a/Opus/Resources/values/strings.xml b/Opus/Resources/values/strings.xml index d5a74c6..9a98251 100644 --- a/Opus/Resources/values/strings.xml +++ b/Opus/Resources/values/strings.xml @@ -98,6 +98,7 @@ Error while loading.\nCheck your internet connection and check if your logged in. You don\'t have any playlist on your device. You don\'t have any youtube playlist on your account. \nWarning: Only playlist from your google account are displayed. + <font color=red>Can\'t list your local playlists.</font><br><u>Click here</u> to give read permissions element elements This playlist is empty.