diff --git a/Opus/Code/Api/ChannelManager.cs b/Opus/Code/Api/ChannelManager.cs index 1bc9332..01b5fd4 100644 --- a/Opus/Code/Api/ChannelManager.cs +++ b/Opus/Code/Api/ChannelManager.cs @@ -1,6 +1,6 @@ using Google.Apis.YouTube.v3; using Google.Apis.YouTube.v3.Data; -using Opus.DataStructure; +using Opus.Fragments; using System.Collections.Generic; using System.Threading.Tasks; using Channel = Opus.DataStructure.Channel; @@ -16,18 +16,26 @@ namespace Opus.Api /// public async static Task GetChannel(string channelID) { - ChannelsResource.ListRequest request = YoutubeManager.YoutubeService.Channels.List("snippet"); - request.Id = channelID; - - ChannelListResponse response = await request.ExecuteAsync(); - - if (response.Items.Count > 0) + try { - var result = response.Items[0]; - return new Channel(result.Snippet.Title, channelID, result.Snippet.Thumbnails.High.Url); + ChannelsResource.ListRequest request = YoutubeManager.YoutubeService.Channels.List("snippet"); + request.Id = channelID; + + ChannelListResponse response = await request.ExecuteAsync(); + + if (response.Items.Count > 0) + { + var result = response.Items[0]; + return new Channel(result.Snippet.Title, channelID, result.Snippet.Thumbnails.High.Url); + } + else + return null; } - else + catch + { + MainActivity.instance.UnknowError(ErrorCode.CG1); return null; + } } /// @@ -53,5 +61,20 @@ namespace Opus.Api else return null; } + + /// + /// Open the channel details tab for a channel and add the current view to the background. + /// + /// + public async static void OpenChannelTab(string channelID) + { + Channel channel = await GetChannel(channelID); + if(channel != null) + OpenChannelTab(channel); + } + public static void OpenChannelTab(Channel channel) + { + MainActivity.instance.SupportFragmentManager.BeginTransaction().Replace(Resource.Id.contentView, ChannelDetails.NewInstance(channel)).AddToBackStack("Channel Details").Commit(); + } } } \ No newline at end of file diff --git a/Opus/Code/Api/Services/MusicPlayer.cs b/Opus/Code/Api/Services/MusicPlayer.cs index c147e4f..e4629cd 100644 --- a/Opus/Code/Api/Services/MusicPlayer.cs +++ b/Opus/Code/Api/Services/MusicPlayer.cs @@ -1158,9 +1158,9 @@ namespace Opus.Api.Services public async static Task Duration() { if (!UseCastPlayer) - return player == null ? (await GetItem()).Duration : (int)player.Duration; + return (player == null ? (await GetItem())?.Duration : (int)player.Duration) ?? 0; else - return RemotePlayer == null ? (await GetItem()).Duration : (int)RemotePlayer.StreamDuration; + return (RemotePlayer == null ? (await GetItem())?.Duration : (int)RemotePlayer.StreamDuration) ?? 0; } public async static Task LoadDuration() diff --git a/Opus/Code/DataStructure/Song.cs b/Opus/Code/DataStructure/Song.cs index e1433d1..039b102 100644 --- a/Opus/Code/DataStructure/Song.cs +++ b/Opus/Code/DataStructure/Song.cs @@ -31,6 +31,7 @@ namespace Opus.DataStructure public int Duration { get; set; } public bool IsLiveStream = false; public string TrackID; + public string channelID; public Song() { } diff --git a/Opus/Code/MainActivity.cs b/Opus/Code/MainActivity.cs index b0011dc..e4d576e 100644 --- a/Opus/Code/MainActivity.cs +++ b/Opus/Code/MainActivity.cs @@ -1326,6 +1326,7 @@ namespace Opus SP1, //Song parser 1 SP2, //Song parser 2 DL1, //Main downloader loop - SM1 //Song Mix 1 + SM1, //Song Mix 1 + CG1 //Channel Get 1 } } \ No newline at end of file diff --git a/Opus/Code/UI/Fragments/YoutubeSearch.cs b/Opus/Code/UI/Fragments/YoutubeSearch.cs index 329d466..d09fe5d 100644 --- a/Opus/Code/UI/Fragments/YoutubeSearch.cs +++ b/Opus/Code/UI/Fragments/YoutubeSearch.cs @@ -304,7 +304,10 @@ namespace Opus.Fragments switch (result.Id.Kind) { case "youtube#video": - Song videoInfo = new Song(System.Net.WebUtility.HtmlDecode(result.Snippet.Title), result.Snippet.ChannelTitle, result.Snippet.Thumbnails.High.Url, result.Id.VideoId, -1, -1, null, true, false); + Song videoInfo = new Song(System.Net.WebUtility.HtmlDecode(result.Snippet.Title), result.Snippet.ChannelTitle, result.Snippet.Thumbnails.High.Url, result.Id.VideoId, -1, -1, null, true, false) + { + channelID = result.Snippet.ChannelId + }; if (result.Snippet.LiveBroadcastContent == "live") videoInfo.IsLiveStream = true; @@ -402,6 +405,15 @@ namespace Opus.Fragments { YoutubeManager.Download(new[] { item }); bottomSheet.Dismiss(); + }), + new BottomSheetAction(Resource.Drawable.account, Resources.GetString(Resource.String.goto_channel), (sender, eventArg) => + { + MainActivity.instance.menu.FindItem(Resource.Id.search).ActionView.Focusable = false; + MainActivity.instance.menu.FindItem(Resource.Id.search).CollapseActionView(); + MainActivity.instance.menu.FindItem(Resource.Id.search).ActionView.Focusable = true; + MainActivity.instance.FindViewById(Resource.Id.tabs).Visibility = ViewStates.Gone; + ChannelManager.OpenChannelTab(item.channelID); + bottomSheet.Dismiss(); }) }); bottomSheet.Show(); diff --git a/Opus/Resources/Resource.Designer.cs b/Opus/Resources/Resource.Designer.cs index 329e0a9..ced9bc5 100644 --- a/Opus/Resources/Resource.Designer.cs +++ b/Opus/Resources/Resource.Designer.cs @@ -7183,41 +7183,41 @@ namespace Opus // aapt resource value: 0x7f0d0072 public const int abc_toolbar_collapse_description = 2131558514; - // aapt resource value: 0x7f0d0139 - public const int add = 2131558713; + // aapt resource value: 0x7f0d013a + public const int add = 2131558714; - // aapt resource value: 0x7f0d00fc - public const int add_playlist = 2131558652; + // aapt resource value: 0x7f0d00fd + public const int add_playlist = 2131558653; - // aapt resource value: 0x7f0d0110 - public const int add_playlist_msg = 2131558672; + // aapt resource value: 0x7f0d0111 + public const int add_playlist_msg = 2131558673; - // aapt resource value: 0x7f0d00df - public const int add_to_library = 2131558623; + // aapt resource value: 0x7f0d00e0 + public const int add_to_library = 2131558624; // aapt resource value: 0x7f0d00d1 public const int add_to_playlist = 2131558609; - // aapt resource value: 0x7f0d00d9 - public const int add_to_queue = 2131558617; + // aapt resource value: 0x7f0d00da + public const int add_to_queue = 2131558618; - // aapt resource value: 0x7f0d0120 - public const int album = 2131558688; + // aapt resource value: 0x7f0d0121 + public const int album = 2131558689; - // aapt resource value: 0x7f0d00ea - public const int all = 2131558634; + // aapt resource value: 0x7f0d00eb + public const int all = 2131558635; // aapt resource value: 0x7f0d0080 public const int appbar_scrolling_view_behavior = 2131558528; - // aapt resource value: 0x7f0d0143 - public const int appearances = 2131558723; + // aapt resource value: 0x7f0d0144 + public const int appearances = 2131558724; - // aapt resource value: 0x7f0d0136 - public const int apply = 2131558710; + // aapt resource value: 0x7f0d0137 + public const int apply = 2131558711; - // aapt resource value: 0x7f0d011f - public const int artist = 2131558687; + // aapt resource value: 0x7f0d0120 + public const int artist = 2131558688; // aapt resource value: 0x7f0d00ca public const int autoplay = 2131558602; @@ -7225,17 +7225,17 @@ namespace Opus // aapt resource value: 0x7f0d00cb public const int autoplay_desc = 2131558603; - // aapt resource value: 0x7f0d0112 - public const int badplaylisturl = 2131558674; + // aapt resource value: 0x7f0d0113 + public const int badplaylisturl = 2131558675; - // aapt resource value: 0x7f0d013d - public const int behavior = 2131558717; + // aapt resource value: 0x7f0d013e + public const int behavior = 2131558718; - // aapt resource value: 0x7f0d015d - public const int beta_available = 2131558749; + // aapt resource value: 0x7f0d015e + public const int beta_available = 2131558750; - // aapt resource value: 0x7f0d0148 - public const int black_theme = 2131558728; + // aapt resource value: 0x7f0d0149 + public const int black_theme = 2131558729; // aapt resource value: 0x7f0d0081 public const int bottom_sheet_behavior = 2131558529; @@ -7243,17 +7243,17 @@ namespace Opus // aapt resource value: 0x7f0d00b2 public const int browse = 2131558578; - // aapt resource value: 0x7f0d0137 - public const int cancel = 2131558711; + // aapt resource value: 0x7f0d0138 + public const int cancel = 2131558712; - // aapt resource value: 0x7f0d0163 - public const int cancelling = 2131558755; + // aapt resource value: 0x7f0d0164 + public const int cancelling = 2131558756; - // aapt resource value: 0x7f0d00f2 - public const int cant_delete = 2131558642; + // aapt resource value: 0x7f0d00f3 + public const int cant_delete = 2131558643; - // aapt resource value: 0x7f0d0160 - public const int cant_play_non_youtube = 2131558752; + // aapt resource value: 0x7f0d0161 + public const int cant_play_non_youtube = 2131558753; // aapt resource value: 0x7f0d00b7 public const int cast = 2131558583; @@ -7336,11 +7336,11 @@ namespace Opus // aapt resource value: 0x7f0d0015 public const int cast_play = 2131558421; - // aapt resource value: 0x7f0d0134 - public const int cast_queue_push = 2131558708; - // aapt resource value: 0x7f0d0135 - public const int cast_queue_pushed = 2131558709; + public const int cast_queue_push = 2131558709; + + // aapt resource value: 0x7f0d0136 + public const int cast_queue_pushed = 2131558710; // aapt resource value: 0x7f0d0016 public const int cast_rewind = 2131558422; @@ -7390,14 +7390,14 @@ namespace Opus // aapt resource value: 0x7f0d0025 public const int cast_unmute = 2131558437; - // aapt resource value: 0x7f0d0122 - public const int change_albumart = 2131558690; + // aapt resource value: 0x7f0d0123 + public const int change_albumart = 2131558691; - // aapt resource value: 0x7f0d0127 - public const int changes_saved = 2131558695; + // aapt resource value: 0x7f0d0128 + public const int changes_saved = 2131558696; - // aapt resource value: 0x7f0d00ec - public const int channels = 2131558636; + // aapt resource value: 0x7f0d00ed + public const int channels = 2131558637; // aapt resource value: 0x7f0d0082 public const int character_counter_content_description = 2131558530; @@ -7405,8 +7405,8 @@ namespace Opus // aapt resource value: 0x7f0d0083 public const int character_counter_pattern = 2131558531; - // aapt resource value: 0x7f0d014a - public const int check_updates = 2131558730; + // aapt resource value: 0x7f0d014b + public const int check_updates = 2131558731; // aapt resource value: 0x7f0d002b public const int common_google_play_services_enable_button = 2131558443; @@ -7462,14 +7462,14 @@ namespace Opus // aapt resource value: 0x7f0d003b public const int common_signin_button_text_long = 2131558459; - // aapt resource value: 0x7f0d0133 - public const int completed = 2131558707; + // aapt resource value: 0x7f0d0134 + public const int completed = 2131558708; - // aapt resource value: 0x7f0d0157 - public const int country_blocked = 2131558743; + // aapt resource value: 0x7f0d0158 + public const int country_blocked = 2131558744; - // aapt resource value: 0x7f0d0118 - public const int create_local = 2131558680; + // aapt resource value: 0x7f0d0119 + public const int create_local = 2131558681; // aapt resource value: 0x7f0d00cc public const int create_mix = 2131558604; @@ -7477,74 +7477,74 @@ namespace Opus // aapt resource value: 0x7f0d00d0 public const int create_mix_from_song = 2131558608; - // aapt resource value: 0x7f0d0114 - public const int create_playlist = 2131558676; + // aapt resource value: 0x7f0d0115 + public const int create_playlist = 2131558677; + + // aapt resource value: 0x7f0d011b + public const int create_synced = 2131558683; // aapt resource value: 0x7f0d011a - public const int create_synced = 2131558682; + public const int create_youtube = 2131558682; - // aapt resource value: 0x7f0d0119 - public const int create_youtube = 2131558681; + // aapt resource value: 0x7f0d0148 + public const int dark_theme = 2131558728; - // aapt resource value: 0x7f0d0147 - public const int dark_theme = 2131558727; + // aapt resource value: 0x7f0d00dc + public const int delete = 2131558620; - // aapt resource value: 0x7f0d00db - public const int delete = 2131558619; + // aapt resource value: 0x7f0d010d + public const int delete_playlist = 2131558669; - // aapt resource value: 0x7f0d010c - public const int delete_playlist = 2131558668; - - // aapt resource value: 0x7f0d012d - public const int deleted_file = 2131558701; + // aapt resource value: 0x7f0d012e + public const int deleted_file = 2131558702; // aapt resource value: 0x7f0d00d3 public const int download = 2131558611; - // aapt resource value: 0x7f0d0124 - public const int download_albumart = 2131558692; - - // aapt resource value: 0x7f0d013f - public const int download_directory = 2131558719; - // aapt resource value: 0x7f0d0125 - public const int download_meta = 2131558693; + public const int download_albumart = 2131558693; + + // aapt resource value: 0x7f0d0140 + public const int download_directory = 2131558720; + + // aapt resource value: 0x7f0d0126 + public const int download_meta = 2131558694; + + // aapt resource value: 0x7f0d00ef + public const int download_path_error = 2131558639; // aapt resource value: 0x7f0d00ee - public const int download_path_error = 2131558638; + public const int download_path_not_set = 2131558638; - // aapt resource value: 0x7f0d00ed - public const int download_path_not_set = 2131558637; - - // aapt resource value: 0x7f0d012c - public const int download_queue = 2131558700; - - // aapt resource value: 0x7f0d0130 - public const int downloader_playlist = 2131558704; - - // aapt resource value: 0x7f0d00f0 - public const int downloading = 2131558640; - - // aapt resource value: 0x7f0d0161 - public const int downloading_notification = 2131558753; + // aapt resource value: 0x7f0d012d + public const int download_queue = 2131558701; // aapt resource value: 0x7f0d0131 - public const int downloading_status = 2131558705; + public const int downloader_playlist = 2131558705; - // aapt resource value: 0x7f0d015e - public const int downloading_update = 2131558750; + // aapt resource value: 0x7f0d00f1 + public const int downloading = 2131558641; + + // aapt resource value: 0x7f0d0162 + public const int downloading_notification = 2131558754; + + // aapt resource value: 0x7f0d0132 + public const int downloading_status = 2131558706; + + // aapt resource value: 0x7f0d015f + public const int downloading_update = 2131558751; // aapt resource value: 0x7f0d00d2 public const int edit_metadata = 2131558610; - // aapt resource value: 0x7f0d0102 - public const int element = 2131558658; - // aapt resource value: 0x7f0d0103 - public const int elements = 2131558659; + public const int element = 2131558659; - // aapt resource value: 0x7f0d00e6 - public const int empty_queue = 2131558630; + // aapt resource value: 0x7f0d0104 + public const int elements = 2131558660; + + // aapt resource value: 0x7f0d00e7 + public const int empty_queue = 2131558631; // aapt resource value: 0x7f0d0090 public const int exo_controls_fastforward_description = 2131558544; @@ -7651,17 +7651,20 @@ namespace Opus // aapt resource value: 0x7f0d0085 public const int fab_transformation_sheet_behavior = 2131558533; - // aapt resource value: 0x7f0d00e5 - public const int featured = 2131558629; + // aapt resource value: 0x7f0d00e6 + public const int featured = 2131558630; // aapt resource value: 0x7f0d00b6 public const int filter = 2131558582; - // aapt resource value: 0x7f0d00e8 - public const int folders = 2131558632; + // aapt resource value: 0x7f0d00e9 + public const int folders = 2131558633; - // aapt resource value: 0x7f0d012b - public const int format_unsupported = 2131558699; + // aapt resource value: 0x7f0d012c + public const int format_unsupported = 2131558700; + + // aapt resource value: 0x7f0d00d6 + public const int goto_channel = 2131558614; // aapt resource value: 0x7f0d0086 public const int hide_bottom_view_on_scroll_behavior = 2131558534; @@ -7675,56 +7678,56 @@ namespace Opus // aapt resource value: 0x7f0d00c2 public const int hours = 2131558594; - // aapt resource value: 0x7f0d012e - public const int initialization = 2131558702; + // aapt resource value: 0x7f0d012f + public const int initialization = 2131558703; - // aapt resource value: 0x7f0d013a - public const int later = 2131558714; + // aapt resource value: 0x7f0d013b + public const int later = 2131558715; - // aapt resource value: 0x7f0d00d6 - public const int list_songs = 2131558614; + // aapt resource value: 0x7f0d00d7 + public const int list_songs = 2131558615; - // aapt resource value: 0x7f0d00eb - public const int lives = 2131558635; + // aapt resource value: 0x7f0d00ec + public const int lives = 2131558636; // aapt resource value: 0x7f0d00c7 public const int loading = 2131558599; - // aapt resource value: 0x7f0d00ff - public const int local_playlist_empty = 2131558655; + // aapt resource value: 0x7f0d0100 + public const int local_playlist_empty = 2131558656; - // aapt resource value: 0x7f0d00fa - public const int local_playlists = 2131558650; + // aapt resource value: 0x7f0d00fb + public const int local_playlists = 2131558651; - // aapt resource value: 0x7f0d0101 - public const int localpl_noperm = 2131558657; - - // aapt resource value: 0x7f0d014e - public const int log_in = 2131558734; + // aapt resource value: 0x7f0d0102 + public const int localpl_noperm = 2131558658; // aapt resource value: 0x7f0d014f - public const int log_out = 2131558735; - - // aapt resource value: 0x7f0d014d - public const int logged_in = 2131558733; + public const int log_in = 2131558735; // aapt resource value: 0x7f0d0150 - public const int login_disabled = 2131558736; + public const int log_out = 2131558736; - // aapt resource value: 0x7f0d011b - public const int long_loading = 2131558683; + // aapt resource value: 0x7f0d014e + public const int logged_in = 2131558734; - // aapt resource value: 0x7f0d0140 - public const int max_download = 2131558720; + // aapt resource value: 0x7f0d0151 + public const int login_disabled = 2131558737; + + // aapt resource value: 0x7f0d011c + public const int long_loading = 2131558684; // aapt resource value: 0x7f0d0141 - public const int max_download_dialog = 2131558721; + public const int max_download = 2131558721; - // aapt resource value: 0x7f0d012f - public const int metadata = 2131558703; + // aapt resource value: 0x7f0d0142 + public const int max_download_dialog = 2131558722; - // aapt resource value: 0x7f0d0128 - public const int metdata_error_noid = 2131558696; + // aapt resource value: 0x7f0d0130 + public const int metadata = 2131558704; + + // aapt resource value: 0x7f0d0129 + public const int metdata_error_noid = 2131558697; // aapt resource value: 0x7f0d00bf public const int minute = 2131558591; @@ -7732,14 +7735,14 @@ namespace Opus // aapt resource value: 0x7f0d00c0 public const int minutes = 2131558592; - // aapt resource value: 0x7f0d00e3 - public const int more = 2131558627; - - // aapt resource value: 0x7f0d0129 - public const int mount_error = 2131558697; + // aapt resource value: 0x7f0d00e4 + public const int more = 2131558628; // aapt resource value: 0x7f0d012a - public const int mount_error_action = 2131558698; + public const int mount_error = 2131558698; + + // aapt resource value: 0x7f0d012b + public const int mount_error_action = 2131558699; // aapt resource value: 0x7f0d0040 public const int mr_button_content_description = 2131558464; @@ -7816,44 +7819,44 @@ namespace Opus // aapt resource value: 0x7f0d0087 public const int mtrl_chip_close_icon_content_description = 2131558535; - // aapt resource value: 0x7f0d0117 - public const int new_playlist = 2131558679; + // aapt resource value: 0x7f0d0118 + public const int new_playlist = 2131558680; // aapt resource value: 0x7f0d00bc public const int next_loading = 2131558588; - // aapt resource value: 0x7f0d013c - public const int no = 2131558716; + // aapt resource value: 0x7f0d013d + public const int no = 2131558717; + + // aapt resource value: 0x7f0d00f8 + public const int no_channel = 2131558648; // aapt resource value: 0x7f0d00f7 - public const int no_channel = 2131558647; - - // aapt resource value: 0x7f0d00f6 - public const int no_lives = 2131558646; - - // aapt resource value: 0x7f0d0152 - public const int no_permission = 2131558738; - - // aapt resource value: 0x7f0d00f5 - public const int no_playlist = 2131558645; - - // aapt resource value: 0x7f0d00f3 - public const int no_result = 2131558643; - - // aapt resource value: 0x7f0d00e9 - public const int no_song = 2131558633; + public const int no_lives = 2131558647; // aapt resource value: 0x7f0d0153 - public const int no_song_mix = 2131558739; + public const int no_permission = 2131558739; + + // aapt resource value: 0x7f0d00f6 + public const int no_playlist = 2131558646; // aapt resource value: 0x7f0d00f4 - public const int no_track = 2131558644; + public const int no_result = 2131558644; - // aapt resource value: 0x7f0d014c - public const int not_log = 2131558732; + // aapt resource value: 0x7f0d00ea + public const int no_song = 2131558634; - // aapt resource value: 0x7f0d0158 - public const int not_streamable = 2131558744; + // aapt resource value: 0x7f0d0154 + public const int no_song_mix = 2131558740; + + // aapt resource value: 0x7f0d00f5 + public const int no_track = 2131558645; + + // aapt resource value: 0x7f0d014d + public const int not_log = 2131558733; + + // aapt resource value: 0x7f0d0159 + public const int not_streamable = 2131558745; // aapt resource value: 0x7f0d00bb public const int nothing = 2131558587; @@ -7861,14 +7864,14 @@ namespace Opus // aapt resource value: 0x7f0d00be public const int off = 2131558590; - // aapt resource value: 0x7f0d0138 - public const int ok = 2131558712; + // aapt resource value: 0x7f0d0139 + public const int ok = 2131558713; // aapt resource value: 0x7f0d00c4 public const int open_youtube = 2131558596; - // aapt resource value: 0x7f0d0149 - public const int others = 2131558729; + // aapt resource value: 0x7f0d014a + public const int others = 2131558730; // aapt resource value: 0x7f0d0088 public const int password_toggle_content_description = 2131558536; @@ -7888,14 +7891,14 @@ namespace Opus // aapt resource value: 0x7f0d00c6 public const int paused = 2131558598; - // aapt resource value: 0x7f0d0123 - public const int pick_album_local = 2131558691; + // aapt resource value: 0x7f0d0124 + public const int pick_album_local = 2131558692; // aapt resource value: 0x7f0d00cd public const int play = 2131558605; - // aapt resource value: 0x7f0d00d7 - public const int play_in_order = 2131558615; + // aapt resource value: 0x7f0d00d8 + public const int play_in_order = 2131558616; // aapt resource value: 0x7f0d00cf public const int play_last = 2131558607; @@ -7906,65 +7909,65 @@ namespace Opus // aapt resource value: 0x7f0d00c5 public const int playing = 2131558597; - // aapt resource value: 0x7f0d010b - public const int playlist_add_song_not_found = 2131558667; - - // aapt resource value: 0x7f0d0108 - public const int playlist_already_saved = 2131558664; - - // aapt resource value: 0x7f0d0104 - public const int playlist_empty = 2131558660; - - // aapt resource value: 0x7f0d0111 - public const int playlist_fork = 2131558673; - - // aapt resource value: 0x7f0d010a - public const int playlist_not_found = 2131558666; - - // aapt resource value: 0x7f0d0107 - public const int playlist_saved = 2131558663; + // aapt resource value: 0x7f0d010c + public const int playlist_add_song_not_found = 2131558668; // aapt resource value: 0x7f0d0109 - public const int playlist_unsaved = 2131558665; + public const int playlist_already_saved = 2131558665; - // aapt resource value: 0x7f0d0113 - public const int playlist_uptodate = 2131558675; + // aapt resource value: 0x7f0d0105 + public const int playlist_empty = 2131558661; + + // aapt resource value: 0x7f0d0112 + public const int playlist_fork = 2131558674; + + // aapt resource value: 0x7f0d010b + public const int playlist_not_found = 2131558667; + + // aapt resource value: 0x7f0d0108 + public const int playlist_saved = 2131558664; + + // aapt resource value: 0x7f0d010a + public const int playlist_unsaved = 2131558666; + + // aapt resource value: 0x7f0d0114 + public const int playlist_uptodate = 2131558676; // aapt resource value: 0x7f0d00b3 public const int playlists = 2131558579; - // aapt resource value: 0x7f0d00e4 - public const int queue = 2131558628; + // aapt resource value: 0x7f0d00e5 + public const int queue = 2131558629; - // aapt resource value: 0x7f0d00d8 - public const int random_play = 2131558616; + // aapt resource value: 0x7f0d00d9 + public const int random_play = 2131558617; - // aapt resource value: 0x7f0d00f9 - public const int remove = 2131558649; + // aapt resource value: 0x7f0d00fa + public const int remove = 2131558650; - // aapt resource value: 0x7f0d0105 - public const int remove_from_playlist = 2131558661; + // aapt resource value: 0x7f0d0106 + public const int remove_from_playlist = 2131558662; // aapt resource value: 0x7f0d00d4 public const int remove_from_queue = 2131558612; - // aapt resource value: 0x7f0d00f8 - public const int remove_search = 2131558648; + // aapt resource value: 0x7f0d00f9 + public const int remove_search = 2131558649; // aapt resource value: 0x7f0d00d5 public const int remove_track_from_playlist = 2131558613; - // aapt resource value: 0x7f0d0106 - public const int removed_from_playlist = 2131558662; + // aapt resource value: 0x7f0d0107 + public const int removed_from_playlist = 2131558663; // aapt resource value: 0x7f0d00c8 public const int removed_from_queue = 2131558600; - // aapt resource value: 0x7f0d00da - public const int rename = 2131558618; + // aapt resource value: 0x7f0d00db + public const int rename = 2131558619; - // aapt resource value: 0x7f0d010d - public const int rename_playlist = 2131558669; + // aapt resource value: 0x7f0d010e + public const int rename_playlist = 2131558670; // aapt resource value: 0x7f0d00b4 public const int repeat = 2131558580; @@ -7972,17 +7975,17 @@ namespace Opus // aapt resource value: 0x7f0d00c9 public const int save_as_playlist = 2131558601; - // aapt resource value: 0x7f0d0116 - public const int save_folder_playlist = 2131558678; + // aapt resource value: 0x7f0d0117 + public const int save_folder_playlist = 2131558679; - // aapt resource value: 0x7f0d0115 - public const int save_playlist = 2131558677; + // aapt resource value: 0x7f0d0116 + public const int save_playlist = 2131558678; // aapt resource value: 0x7f0d0073 public const int search_menu_title = 2131558515; - // aapt resource value: 0x7f0d00ef - public const int set_path = 2131558639; + // aapt resource value: 0x7f0d00f0 + public const int set_path = 2131558640; // aapt resource value: 0x7f0d00b8 public const int settings = 2131558584; @@ -7990,95 +7993,95 @@ namespace Opus // aapt resource value: 0x7f0d00b9 public const int show_queue = 2131558585; - // aapt resource value: 0x7f0d00e2 - public const int shuffle = 2131558626; + // aapt resource value: 0x7f0d00e3 + public const int shuffle = 2131558627; - // aapt resource value: 0x7f0d00e1 - public const int shuffle_all = 2131558625; + // aapt resource value: 0x7f0d00e2 + public const int shuffle_all = 2131558626; // aapt resource value: 0x7f0d00bd public const int sleep_timer = 2131558589; - // aapt resource value: 0x7f0d00e7 - public const int songs = 2131558631; + // aapt resource value: 0x7f0d00e8 + public const int songs = 2131558632; // aapt resource value: 0x7f0d008d public const int status_bar_notification_info_overflow = 2131558541; - // aapt resource value: 0x7f0d00de - public const int stop_sync = 2131558622; + // aapt resource value: 0x7f0d00df + public const int stop_sync = 2131558623; - // aapt resource value: 0x7f0d010e - public const int stop_syncing = 2131558670; + // aapt resource value: 0x7f0d010f + public const int stop_syncing = 2131558671; // aapt resource value: 0x7f0d003d public const int summary_collapsed_preference_list = 2131558461; - // aapt resource value: 0x7f0d00dc - public const int sync = 2131558620; - // aapt resource value: 0x7f0d00dd - public const int sync_now = 2131558621; + public const int sync = 2131558621; - // aapt resource value: 0x7f0d0142 - public const int sync_remove = 2131558722; + // aapt resource value: 0x7f0d00de + public const int sync_now = 2131558622; - // aapt resource value: 0x7f0d00f1 - public const int syncing = 2131558641; + // aapt resource value: 0x7f0d0143 + public const int sync_remove = 2131558723; - // aapt resource value: 0x7f0d0162 - public const int tap_details = 2131558754; + // aapt resource value: 0x7f0d00f2 + public const int syncing = 2131558642; - // aapt resource value: 0x7f0d0144 - public const int theme = 2131558724; + // aapt resource value: 0x7f0d0163 + public const int tap_details = 2131558755; // aapt resource value: 0x7f0d0145 - public const int theme_dialog = 2131558725; + public const int theme = 2131558725; + + // aapt resource value: 0x7f0d0146 + public const int theme_dialog = 2131558726; // aapt resource value: 0x7f0d00c3 public const int timer = 2131558595; - // aapt resource value: 0x7f0d0155 - public const int timout = 2131558741; - - // aapt resource value: 0x7f0d011e - public const int title = 2131558686; - - // aapt resource value: 0x7f0d0151 - public const int undo = 2131558737; - - // aapt resource value: 0x7f0d0126 - public const int undo_change = 2131558694; - - // aapt resource value: 0x7f0d00e0 - public const int unfork = 2131558624; - - // aapt resource value: 0x7f0d010f - public const int unfork_playlist = 2131558671; - // aapt resource value: 0x7f0d0156 - public const int unknow = 2131558742; + public const int timout = 2131558742; + + // aapt resource value: 0x7f0d011f + public const int title = 2131558687; + + // aapt resource value: 0x7f0d0152 + public const int undo = 2131558738; + + // aapt resource value: 0x7f0d0127 + public const int undo_change = 2131558695; + + // aapt resource value: 0x7f0d00e1 + public const int unfork = 2131558625; + + // aapt resource value: 0x7f0d0110 + public const int unfork_playlist = 2131558672; + + // aapt resource value: 0x7f0d0157 + public const int unknow = 2131558743; // aapt resource value: 0x7f0d00ba public const int up_next = 2131558586; - // aapt resource value: 0x7f0d015c - public const int up_to_date = 2131558748; + // aapt resource value: 0x7f0d015d + public const int up_to_date = 2131558749; - // aapt resource value: 0x7f0d0132 - public const int up_to_date_status = 2131558706; - - // aapt resource value: 0x7f0d015a - public const int update = 2131558746; + // aapt resource value: 0x7f0d0133 + public const int up_to_date_status = 2131558707; // aapt resource value: 0x7f0d015b - public const int update_message = 2131558747; + public const int update = 2131558747; - // aapt resource value: 0x7f0d0159 - public const int update_no_internet = 2131558745; + // aapt resource value: 0x7f0d015c + public const int update_message = 2131558748; - // aapt resource value: 0x7f0d015f - public const int updating = 2131558751; + // aapt resource value: 0x7f0d015a + public const int update_no_internet = 2131558746; + + // aapt resource value: 0x7f0d0160 + public const int updating = 2131558752; // aapt resource value: 0x7f0d003e public const int v7_preference_off = 2131558462; @@ -8086,44 +8089,44 @@ namespace Opus // aapt resource value: 0x7f0d003f public const int v7_preference_on = 2131558463; - // aapt resource value: 0x7f0d014b - public const int version = 2131558731; + // aapt resource value: 0x7f0d014c + public const int version = 2131558732; + + // aapt resource value: 0x7f0d011e + public const int view_less = 2131558686; // aapt resource value: 0x7f0d011d - public const int view_less = 2131558685; + public const int view_more = 2131558685; - // aapt resource value: 0x7f0d011c - public const int view_more = 2131558684; + // aapt resource value: 0x7f0d013f + public const int volume = 2131558719; - // aapt resource value: 0x7f0d013e - public const int volume = 2131558718; + // aapt resource value: 0x7f0d0147 + public const int white_theme = 2131558727; - // aapt resource value: 0x7f0d0146 - public const int white_theme = 2131558726; + // aapt resource value: 0x7f0d013c + public const int yes = 2131558716; - // aapt resource value: 0x7f0d013b - public const int yes = 2131558715; - - // aapt resource value: 0x7f0d0154 - public const int youtube_endpoint = 2131558740; - - // aapt resource value: 0x7f0d00fd - public const int youtube_loading_error = 2131558653; + // aapt resource value: 0x7f0d0155 + public const int youtube_endpoint = 2131558741; // aapt resource value: 0x7f0d00fe - public const int youtube_not_logged = 2131558654; + public const int youtube_loading_error = 2131558654; - // aapt resource value: 0x7f0d0100 - public const int youtube_playlist_empty = 2131558656; + // aapt resource value: 0x7f0d00ff + public const int youtube_not_logged = 2131558655; - // aapt resource value: 0x7f0d00fb - public const int youtube_playlists = 2131558651; + // aapt resource value: 0x7f0d0101 + public const int youtube_playlist_empty = 2131558657; + + // aapt resource value: 0x7f0d00fc + public const int youtube_playlists = 2131558652; // aapt resource value: 0x7f0d00b5 public const int youtube_search = 2131558581; - // aapt resource value: 0x7f0d0121 - public const int youtubeid = 2131558689; + // aapt resource value: 0x7f0d0122 + public const int youtubeid = 2131558690; // aapt resource value: 0x7f0d00b0 public const int yt_api_key = 2131558576; diff --git a/Opus/Resources/values-fr/strings.xml b/Opus/Resources/values-fr/strings.xml index ecb3d7d..1bd9769 100644 --- a/Opus/Resources/values-fr/strings.xml +++ b/Opus/Resources/values-fr/strings.xml @@ -48,6 +48,7 @@ Télécharger Enlever de la liste de lecture Enlever de la playlist + Allez voir la chaine Lister les titres Lire dans l\'ordre diff --git a/Opus/Resources/values/strings.xml b/Opus/Resources/values/strings.xml index 5888e1d..4b987da 100644 --- a/Opus/Resources/values/strings.xml +++ b/Opus/Resources/values/strings.xml @@ -48,6 +48,7 @@ Download Remove from queue Remove track from playlist + Open channel tab List songs Play in order