Most of the items are now translatable.

This commit is contained in:
Tristan Roux
2019-02-03 17:45:19 +01:00
parent a749067208
commit 642662fed8
11 changed files with 381 additions and 298 deletions

View File

@@ -410,7 +410,6 @@ namespace MusicApp
}
else if (YoutubeEngine.instances != null)
{
YoutubeEngine.error = false;
var searchView = menu.FindItem(Resource.Id.search).ActionView.JavaCast<SearchView>();
menu.FindItem(Resource.Id.search).CollapseActionView();
searchView.ClearFocus();
@@ -521,8 +520,6 @@ namespace MusicApp
if (YoutubeEngine.instances != null)
{
YoutubeEngine.error = false;
var searchView = menu.FindItem(Resource.Id.search).ActionView.JavaCast<SearchView>();
menu.FindItem(Resource.Id.search).CollapseActionView();
searchView.ClearFocus();
@@ -541,11 +538,9 @@ namespace MusicApp
switch (layout)
{
case Resource.Id.musicLayout:
if (Home.instance != null)
if (Home.instance != null && Home.instance.ListView != null)
{
#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
Home.instance.Refresh();
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
Home.instance.ListView.ScrollToPosition(0);
return;
}
@@ -554,11 +549,10 @@ namespace MusicApp
break;
case Resource.Id.browseLayout:
if (Browse.instance != null)
if (Browse.instance != null && Pager.instance != null && Browse.instance.ListView != null)
{
#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
Browse.instance.Refresh();
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
Pager.instance.ScrollToFirst();
Browse.instance.ListView.ScrollToPosition(0);
return;
}
@@ -569,9 +563,7 @@ namespace MusicApp
case Resource.Id.playlistLayout:
if (Playlist.instance != null)
{
#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
Playlist.instance.Refresh();
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
Playlist.instance.ListView.ScrollToPosition(0);
return;
}

View File

@@ -408,7 +408,7 @@ namespace MusicApp.Resources.Portable_Class
Layout.FindViewById<View>(Resource.Id.divider).SetBackgroundColor(Color.White);
}
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.instance, MainActivity.dialogTheme);
builder.SetTitle("Add to playlists");
builder.SetTitle(Resource.String.save_playlist);
builder.SetView(Layout);
RecyclerView ListView = Layout.FindViewById<RecyclerView>(Resource.Id.recycler);
ListView.SetLayoutManager(new LinearLayoutManager(MainActivity.instance));
@@ -453,7 +453,7 @@ namespace MusicApp.Resources.Portable_Class
}
}
};
builder.SetPositiveButton("OK", (sender, e) => { });
builder.SetPositiveButton(Resource.String.ok, (sender, e) => { });
AlertDialog dialog = builder.Create();
Layout.FindViewById<LinearLayout>(Resource.Id.CreatePlaylist).Click += (sender, e) => { dialog.Dismiss(); CreatePlalistDialog(item); };
dialog.Show();

View File

@@ -31,6 +31,11 @@ namespace MusicApp.Resources.Portable_Class
return instance;
}
public void ScrollToFirst()
{
View.FindViewById<ViewPager>(Resource.Id.pager).CurrentItem = 0;
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
if (savedInstanceState != null)

View File

@@ -37,8 +37,7 @@ namespace MusicApp
private TextView timerStart;
private ImageView imgView;
private bool prepared = false;
private readonly int[] timers = new int[] { 0, 1, 10, 30, 60, 120 };
private readonly string[] items = new string[] { "Off", "1 minute", "10 minutes", "30 minutes", "1 hour", "2 hours" };
private readonly int[] timers = new int[] { 0, 2, 10, 30, 60, 120 };
private int checkedItem = 0;
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
@@ -475,11 +474,13 @@ namespace MusicApp
public void SleepButton_Click(object sender, EventArgs e)
{
string minutes = GetString(Resource.String.minutes);
string hours = GetString(Resource.String.hours);
Android.Support.V7.App.AlertDialog.Builder builder = new Android.Support.V7.App.AlertDialog.Builder(MainActivity.instance, MainActivity.dialogTheme);
builder.SetTitle("Sleep in :");
builder.SetSingleChoiceItems(items, checkedItem, ((senders, eventargs) => { checkedItem = eventargs.Which; }));
builder.SetPositiveButton("Ok", ((senders, args) => { Sleep(timers[checkedItem]); }));
builder.SetNegativeButton("Cancel", ((senders, args) => { }));
builder.SetTitle(Resource.String.sleep_timer);
builder.SetSingleChoiceItems(new string[] { GetString(Resource.String.off), "2 " + minutes, "10 " + minutes, "30 " + minutes, "1 " + hours, "2 " + hours }, checkedItem, ((senders, eventargs) => { checkedItem = eventargs.Which; }));
builder.SetPositiveButton(Resource.String.ok, ((senders, args) => { Sleep(timers[checkedItem]); }));
builder.SetNegativeButton(Resource.String.cancel, ((senders, args) => { }));
builder.Show();
}

View File

@@ -366,10 +366,10 @@ namespace MusicApp.Resources.Portable_Class
{
View view = LayoutInflater.Inflate(Resource.Layout.SaveAPlaylist, null);
AlertDialog dialog = new AlertDialog.Builder(Activity, MainActivity.dialogTheme)
.SetTitle("Add a Playlist")
.SetTitle(Resource.String.add_playlist_msg)
.SetView(view)
.SetNegativeButton("Cancel", (s, eventArgs) => { })
.SetPositiveButton("Go", async (s, eventArgs) =>
.SetNegativeButton(Resource.String.cancel, (s, eventArgs) => { })
.SetPositiveButton(Resource.String.add, async (s, eventArgs) =>
{
string url = view.FindViewById<EditText>(Resource.Id.playlistURL).Text;
string shrinkedURL = url.Substring(url.IndexOf('=') + 1);
@@ -529,7 +529,7 @@ namespace MusicApp.Resources.Portable_Class
if (local)
RemovePlaylist(Position, item.LocalID);
else
RemoveYoutubePlaylist(Position, item.YoutubeID);
DeleteYoutubePlaylist(Position, item.YoutubeID);
bottomSheet.Dismiss();
})});
}
@@ -800,11 +800,11 @@ namespace MusicApp.Resources.Portable_Class
void Rename(int position, PlaylistItem playlist)
{
AlertDialog.Builder builder = new AlertDialog.Builder(Activity, MainActivity.dialogTheme);
builder.SetTitle("Playlist name");
builder.SetTitle(Resource.String.rename_playlist);
View view = LayoutInflater.Inflate(Resource.Layout.CreatePlaylistDialog, null);
builder.SetView(view);
builder.SetNegativeButton("Cancel", (senderAlert, args) => { });
builder.SetPositiveButton("Rename", (senderAlert, args) =>
builder.SetNegativeButton(Resource.String.cancel, (senderAlert, args) => { });
builder.SetPositiveButton(Resource.String.rename, (senderAlert, args) =>
{
playlist.Name = view.FindViewById<EditText>(Resource.Id.playlistName).Text;
RenamePlaylist(position, playlist);
@@ -829,8 +829,8 @@ namespace MusicApp.Resources.Portable_Class
if (await MainActivity.instance.GetWritePermission())
{
AlertDialog dialog = new AlertDialog.Builder(MainActivity.instance, MainActivity.dialogTheme)
.SetTitle("Do you want to delete the playlist \"" + LocalPlaylists[position].Name + "\"?")
.SetPositiveButton("Yes", (sender, e) =>
.SetTitle(string.Format(GetString(Resource.String.delete_playlist), LocalPlaylists[position].Name))
.SetPositiveButton(Resource.String.yes, (sender, e) =>
{
ContentResolver resolver = Activity.ContentResolver;
Android.Net.Uri uri = Playlists.ExternalContentUri;
@@ -844,7 +844,7 @@ namespace MusicApp.Resources.Portable_Class
adapter.NotifyItemInserted(1);
}
})
.SetNegativeButton("No", (sender, e) => { })
.SetNegativeButton(Resource.String.no, (sender, e) => { })
.Create();
dialog.Show();
}
@@ -931,11 +931,11 @@ namespace MusicApp.Resources.Portable_Class
public void RenameYoutubePlaylist(int position, string YoutubeID, long LocalID = -1)
{
AlertDialog.Builder builder = new AlertDialog.Builder(Activity, MainActivity.dialogTheme);
builder.SetTitle("Playlist name");
builder.SetTitle(Resource.String.rename_playlist);
View view = LayoutInflater.Inflate(Resource.Layout.CreatePlaylistDialog, null);
builder.SetView(view);
builder.SetNegativeButton("Cancel", (senderAlert, args) => { });
builder.SetPositiveButton("Rename", (senderAlert, args) =>
builder.SetNegativeButton(Resource.String.cancel, (senderAlert, args) => { });
builder.SetPositiveButton(Resource.String.rename, (senderAlert, args) =>
{
RenameYT(position, view.FindViewById<EditText>(Resource.Id.playlistName).Text, YoutubeID, LocalID);
});
@@ -968,11 +968,11 @@ namespace MusicApp.Resources.Portable_Class
}
}
void RemoveYoutubePlaylist(int position, string playlistID)
void DeleteYoutubePlaylist(int position, string playlistID)
{
AlertDialog dialog = new AlertDialog.Builder(MainActivity.instance, MainActivity.dialogTheme)
.SetTitle("Do you want to delete the playlist \"" + YoutubePlaylists[position - LocalPlaylists.Count].Name + "\"?")
.SetPositiveButton("Yes", async (sender, e) =>
.SetTitle(string.Format(GetString(Resource.String.delete_playlist), YoutubePlaylists[position - LocalPlaylists.Count].Name))
.SetPositiveButton(Resource.String.yes, async (sender, e) =>
{
try
{
@@ -996,7 +996,7 @@ namespace MusicApp.Resources.Portable_Class
MainActivity.instance.Timout();
}
})
.SetNegativeButton("No", (sender, e) => { })
.SetNegativeButton(Resource.String.no, (sender, e) => { })
.Create();
dialog.Show();
}
@@ -1004,8 +1004,8 @@ namespace MusicApp.Resources.Portable_Class
void Unfork(int position, string playlistID)
{
AlertDialog dialog = new AlertDialog.Builder(MainActivity.instance, MainActivity.dialogTheme)
.SetTitle("Do you want to remove \"" + YoutubePlaylists[position].Name + "\" from your playlists?")
.SetPositiveButton("Yes", async (sender, e) =>
.SetTitle(string.Format(GetString(Resource.String.unfork_playlist), YoutubePlaylists[position].Name))
.SetPositiveButton(Resource.String.yes, async (sender, e) =>
{
try
{
@@ -1045,7 +1045,7 @@ namespace MusicApp.Resources.Portable_Class
MainActivity.instance.Timout();
}
})
.SetNegativeButton("No", (sender, e) => { })
.SetNegativeButton(Resource.String.no, (sender, e) => { })
.Create();
dialog.Show();
}

View File

@@ -89,11 +89,11 @@ namespace MusicApp.Resources.Portable_Class
case Resource.Id.rename:
AlertDialog.Builder builder = new AlertDialog.Builder(Activity, MainActivity.dialogTheme);
builder.SetTitle("Playlist name");
builder.SetTitle(Resource.String.rename_playlist);
View view = LayoutInflater.Inflate(Resource.Layout.CreatePlaylistDialog, null);
builder.SetView(view);
builder.SetNegativeButton("Cancel", (senderAlert, args) => { });
builder.SetPositiveButton("Rename", (senderAlert, args) =>
builder.SetNegativeButton(Resource.String.cancel, (senderAlert, args) => { });
builder.SetPositiveButton(Resource.String.rename, (senderAlert, args) =>
{
Rename(view.FindViewById<EditText>(Resource.Id.playlistName).Text);
});
@@ -169,8 +169,8 @@ namespace MusicApp.Resources.Portable_Class
void StopSyncing()
{
AlertDialog dialog = new AlertDialog.Builder(MainActivity.instance, MainActivity.dialogTheme)
.SetTitle("Do you want to stop syncing the playlist \"" + playlistName + "\" ?")
.SetPositiveButton("Yes", async (sender, e) =>
.SetTitle(Resource.String.stop_syncing)
.SetPositiveButton(Resource.String.yes, async (sender, e) =>
{
await Task.Run(() =>
{
@@ -181,7 +181,7 @@ namespace MusicApp.Resources.Portable_Class
});
MainActivity.instance.SupportFragmentManager.PopBackStack();
})
.SetNegativeButton("No", (sender, e) => { })
.SetNegativeButton(Resource.String.no, (sender, e) => { })
.Create();
dialog.Show();
}
@@ -189,8 +189,8 @@ namespace MusicApp.Resources.Portable_Class
void Delete()
{
AlertDialog dialog = new AlertDialog.Builder(MainActivity.instance, MainActivity.dialogTheme)
.SetTitle("Do you want to delete the playlist \"" + playlistName + "\" ?")
.SetPositiveButton("Yes", async (sender, e) =>
.SetTitle(string.Format(MainActivity.instance.GetString(Resource.String.delete_playlist), playlistName))
.SetPositiveButton(Resource.String.yes, async (sender, e) =>
{
if (YoutubeID != null)
{
@@ -238,7 +238,7 @@ namespace MusicApp.Resources.Portable_Class
}
MainActivity.instance.SupportFragmentManager.PopBackStack();
})
.SetNegativeButton("No", (sender, e) => { })
.SetNegativeButton(Resource.String.no, (sender, e) => { })
.Create();
dialog.Show();
}
@@ -855,8 +855,8 @@ namespace MusicApp.Resources.Portable_Class
song = result[position];
AlertDialog dialog = new AlertDialog.Builder(MainActivity.instance, MainActivity.dialogTheme)
.SetTitle("Remove " + song.Title + " from playlist ?")
.SetPositiveButton("Yes", async (sender, e) =>
.SetTitle(string.Format(MainActivity.instance.GetString(Resource.String.remove_from_playlist), song.Title))
.SetPositiveButton(Resource.String.yes, async (sender, e) =>
{
if(Synced && YoutubeID != null && LocalID != 0)
{
@@ -900,7 +900,7 @@ namespace MusicApp.Resources.Portable_Class
result?.Remove(song);
}
})
.SetNegativeButton("No", (sender, e) => { adapter.NotifyItemChanged(position); })
.SetNegativeButton(Resource.String.no, (sender, e) => { adapter.NotifyItemChanged(position); })
.Create();
dialog.Show();
}

View File

@@ -57,8 +57,8 @@ namespace MusicApp.Resources.Portable_Class
{
AlertDialog dialog = new AlertDialog.Builder(this, MainActivity.dialogTheme)
.SetTitle(suggestions[e.Position].Text)
.SetMessage("Remove from search history?")
.SetPositiveButton("Remove", (send, eventArg) =>
.SetMessage(Resource.String.remove_search)
.SetPositiveButton(Resource.String.remove, (send, eventArg) =>
{
History.Remove(toRemove);
adapter.Remove(toRemove);
@@ -69,7 +69,7 @@ namespace MusicApp.Resources.Portable_Class
db.Delete(db.Table<Suggestion>().ToList().Find(x => x.Text == toRemove.Text));
});
})
.SetNegativeButton("Cancel", (send, eventArg) => { })
.SetNegativeButton(Resource.String.cancel, (send, eventArg) => { })
.Create();
dialog.Show();
}

View File

@@ -31,7 +31,6 @@ namespace MusicApp.Resources.Portable_Class
public static YoutubeEngine[] instances;
public static YouTubeService youtubeService;
public string Query;
public static bool error = false;
private string nextPageToken = null;
public string querryType;
@@ -223,7 +222,6 @@ namespace MusicApp.Resources.Portable_Class
if (!await MainActivity.instance.WaitForYoutube())
{
error = true;
ListView.SetAdapter(null);
EmptyView.Text = MainActivity.instance.GetString(Resource.String.youtube_loading_error);
EmptyView.SetTextColor(Color.Red);
@@ -348,19 +346,19 @@ namespace MusicApp.Resources.Portable_Class
switch (querryType)
{
case "All":
EmptyView.Text = "No result for " + search;
EmptyView.Text = GetString(Resource.String.no_result) + search;
break;
case "Tracks":
EmptyView.Text = "No tracks for " + search;
EmptyView.Text = GetString(Resource.String.no_track) + search;
break;
case "Playlists":
EmptyView.Text = "No playlist for " + search;
EmptyView.Text = GetString(Resource.String.no_playlist) + search;
break;
case "Lives":
EmptyView.Text = "No lives for " + Query;
EmptyView.Text = GetString(Resource.String.no_lives) + search;
break;
case "Channels":
EmptyView.Text = "No channel for " + search;
EmptyView.Text = GetString(Resource.String.no_channel) + search;
break;
default:
break;
@@ -372,7 +370,7 @@ namespace MusicApp.Resources.Portable_Class
catch (System.Net.Http.HttpRequestException)
{
MainActivity.instance.Timout();
EmptyView.Text = "Timout exception, check if you're still connected to internet.";
EmptyView.Text = GetString(Resource.String.timout);
EmptyView.Visibility = ViewStates.Visible;
}
}

View File

@@ -7174,53 +7174,59 @@ namespace MusicApp
// aapt resource value: 0x7f0c0072
public const int abc_toolbar_collapse_description = 2131492978;
// aapt resource value: 0x7f0c00ee
public const int add_playlist = 2131493102;
// aapt resource value: 0x7f0c011b
public const int add = 2131493147;
// aapt resource value: 0x7f0c00d6
public const int add_to_library = 2131493078;
// aapt resource value: 0x7f0c00f9
public const int add_playlist = 2131493113;
// aapt resource value: 0x7f0c00c8
public const int add_to_playlist = 2131493064;
// aapt resource value: 0x7f0c0108
public const int add_playlist_msg = 2131493128;
// aapt resource value: 0x7f0c00d0
public const int add_to_queue = 2131493072;
// aapt resource value: 0x7f0c00da
public const int add_to_library = 2131493082;
// aapt resource value: 0x7f0c00fb
public const int album = 2131493115;
// aapt resource value: 0x7f0c00cc
public const int add_to_playlist = 2131493068;
// aapt resource value: 0x7f0c00e2
public const int all = 2131493090;
// aapt resource value: 0x7f0c00d4
public const int add_to_queue = 2131493076;
// aapt resource value: 0x7f0c010d
public const int and = 2131493133;
public const int album = 2131493133;
// aapt resource value: 0x7f0c010e
public const int and_more = 2131493134;
// aapt resource value: 0x7f0c00e6
public const int all = 2131493094;
// aapt resource value: 0x7f0c0122
public const int and = 2131493154;
// aapt resource value: 0x7f0c0123
public const int and_more = 2131493155;
// aapt resource value: 0x7f0c0080
public const int appbar_scrolling_view_behavior = 2131492992;
// aapt resource value: 0x7f0c0114
public const int appearances = 2131493140;
// aapt resource value: 0x7f0c0129
public const int appearances = 2131493161;
// aapt resource value: 0x7f0c0106
public const int apply = 2131493126;
// aapt resource value: 0x7f0c0118
public const int apply = 2131493144;
// aapt resource value: 0x7f0c00fa
public const int artist = 2131493114;
// aapt resource value: 0x7f0c010c
public const int artist = 2131493132;
// aapt resource value: 0x7f0c00c1
public const int autoplay = 2131493057;
// aapt resource value: 0x7f0c00c5
public const int autoplay = 2131493061;
// aapt resource value: 0x7f0c00c2
public const int autoplay_desc = 2131493058;
// aapt resource value: 0x7f0c00c6
public const int autoplay_desc = 2131493062;
// aapt resource value: 0x7f0c010a
public const int behavior = 2131493130;
// aapt resource value: 0x7f0c011f
public const int behavior = 2131493151;
// aapt resource value: 0x7f0c012b
public const int beta_available = 2131493163;
// aapt resource value: 0x7f0c0140
public const int beta_available = 2131493184;
// aapt resource value: 0x7f0c0081
public const int bottom_sheet_behavior = 2131492993;
@@ -7228,14 +7234,14 @@ namespace MusicApp
// aapt resource value: 0x7f0c00b3
public const int browse = 2131493043;
// aapt resource value: 0x7f0c0107
public const int cancel = 2131493127;
// aapt resource value: 0x7f0c0119
public const int cancel = 2131493145;
// aapt resource value: 0x7f0c00eb
public const int cant_delete = 2131493099;
// aapt resource value: 0x7f0c00ef
public const int cant_delete = 2131493103;
// aapt resource value: 0x7f0c012e
public const int cant_play_non_youtube = 2131493166;
// aapt resource value: 0x7f0c0143
public const int cant_play_non_youtube = 2131493187;
// aapt resource value: 0x7f0c00b8
public const int cast = 2131493048;
@@ -7318,11 +7324,11 @@ namespace MusicApp
// aapt resource value: 0x7f0c0015
public const int cast_play = 2131492885;
// aapt resource value: 0x7f0c0104
public const int cast_queue_push = 2131493124;
// aapt resource value: 0x7f0c0116
public const int cast_queue_push = 2131493142;
// aapt resource value: 0x7f0c0105
public const int cast_queue_pushed = 2131493125;
// aapt resource value: 0x7f0c0117
public const int cast_queue_pushed = 2131493143;
// aapt resource value: 0x7f0c0016
public const int cast_rewind = 2131492886;
@@ -7372,14 +7378,14 @@ namespace MusicApp
// aapt resource value: 0x7f0c0025
public const int cast_unmute = 2131492901;
// aapt resource value: 0x7f0c00fd
public const int change_albumart = 2131493117;
// aapt resource value: 0x7f0c010f
public const int change_albumart = 2131493135;
// aapt resource value: 0x7f0c0102
public const int changes_saved = 2131493122;
// aapt resource value: 0x7f0c0114
public const int changes_saved = 2131493140;
// aapt resource value: 0x7f0c00e5
public const int channels = 2131493093;
// aapt resource value: 0x7f0c00e9
public const int channels = 2131493097;
// aapt resource value: 0x7f0c0082
public const int character_counter_content_description = 2131492994;
@@ -7387,8 +7393,8 @@ namespace MusicApp
// aapt resource value: 0x7f0c0083
public const int character_counter_pattern = 2131492995;
// aapt resource value: 0x7f0c011a
public const int check_updates = 2131493146;
// aapt resource value: 0x7f0c012f
public const int check_updates = 2131493167;
// aapt resource value: 0x7f0c00b0
public const int clientID = 2131493040;
@@ -7450,50 +7456,56 @@ namespace MusicApp
// aapt resource value: 0x7f0c003b
public const int common_signin_button_text_long = 2131492923;
// aapt resource value: 0x7f0c00c3
public const int create_mix = 2131493059;
// aapt resource value: 0x7f0c00c7
public const int create_mix_from_song = 2131493063;
public const int create_mix = 2131493063;
// aapt resource value: 0x7f0c0118
public const int dark_theme = 2131493144;
// aapt resource value: 0x7f0c00cb
public const int create_mix_from_song = 2131493067;
// aapt resource value: 0x7f0c00d2
public const int delete = 2131493074;
// aapt resource value: 0x7f0c0109
public const int create_playlist = 2131493129;
// aapt resource value: 0x7f0c00ca
public const int download = 2131493066;
// aapt resource value: 0x7f0c012d
public const int dark_theme = 2131493165;
// aapt resource value: 0x7f0c00ff
public const int download_albumart = 2131493119;
// aapt resource value: 0x7f0c00d6
public const int delete = 2131493078;
// aapt resource value: 0x7f0c0110
public const int download_directory = 2131493136;
// aapt resource value: 0x7f0c0104
public const int delete_playlist = 2131493124;
// aapt resource value: 0x7f0c0100
public const int download_meta = 2131493120;
// aapt resource value: 0x7f0c00ce
public const int download = 2131493070;
// aapt resource value: 0x7f0c00e7
public const int download_path_error = 2131493095;
// aapt resource value: 0x7f0c0111
public const int download_albumart = 2131493137;
// aapt resource value: 0x7f0c00e6
public const int download_path_not_set = 2131493094;
// aapt resource value: 0x7f0c0125
public const int download_directory = 2131493157;
// aapt resource value: 0x7f0c00e9
public const int downloading = 2131493097;
// aapt resource value: 0x7f0c0112
public const int download_meta = 2131493138;
// aapt resource value: 0x7f0c012c
public const int downloading_update = 2131493164;
// aapt resource value: 0x7f0c00eb
public const int download_path_error = 2131493099;
// aapt resource value: 0x7f0c00c9
public const int edit_metadata = 2131493065;
// aapt resource value: 0x7f0c00ea
public const int download_path_not_set = 2131493098;
// aapt resource value: 0x7f0c00f2
public const int element = 2131493106;
// aapt resource value: 0x7f0c00ed
public const int downloading = 2131493101;
// aapt resource value: 0x7f0c00f3
public const int elements = 2131493107;
// aapt resource value: 0x7f0c0141
public const int downloading_update = 2131493185;
// aapt resource value: 0x7f0c00cd
public const int edit_metadata = 2131493069;
// aapt resource value: 0x7f0c00fd
public const int element = 2131493117;
// aapt resource value: 0x7f0c00fe
public const int elements = 2131493118;
// aapt resource value: 0x7f0c0090
public const int exo_controls_fastforward_description = 2131493008;
@@ -7600,17 +7612,17 @@ namespace MusicApp
// aapt resource value: 0x7f0c0085
public const int fab_transformation_sheet_behavior = 2131492997;
// aapt resource value: 0x7f0c00dc
public const int featured = 2131493084;
// aapt resource value: 0x7f0c00e0
public const int featured = 2131493088;
// aapt resource value: 0x7f0c00b7
public const int filter = 2131493047;
// aapt resource value: 0x7f0c00e0
public const int folders = 2131493088;
// aapt resource value: 0x7f0c00e4
public const int folders = 2131493092;
// aapt resource value: 0x7f0c010c
public const int genre_nothing = 2131493132;
// aapt resource value: 0x7f0c0121
public const int genre_nothing = 2131493153;
// aapt resource value: 0x7f0c0086
public const int hide_bottom_view_on_scroll_behavior = 2131492998;
@@ -7618,41 +7630,47 @@ namespace MusicApp
// aapt resource value: 0x7f0c00b2
public const int home = 2131493042;
// aapt resource value: 0x7f0c0109
public const int later = 2131493129;
// aapt resource value: 0x7f0c00c1
public const int hours = 2131493057;
// aapt resource value: 0x7f0c00cd
public const int list_songs = 2131493069;
// aapt resource value: 0x7f0c011c
public const int later = 2131493148;
// aapt resource value: 0x7f0c00e4
public const int lives = 2131493092;
// aapt resource value: 0x7f0c00d1
public const int list_songs = 2131493073;
// aapt resource value: 0x7f0c00f0
public const int local_playlist_empty = 2131493104;
// aapt resource value: 0x7f0c00e8
public const int lives = 2131493096;
// aapt resource value: 0x7f0c00ec
public const int local_playlists = 2131493100;
// aapt resource value: 0x7f0c00fb
public const int local_playlist_empty = 2131493115;
// aapt resource value: 0x7f0c011e
public const int log_in = 2131493150;
// aapt resource value: 0x7f0c00f7
public const int local_playlists = 2131493111;
// aapt resource value: 0x7f0c011f
public const int log_out = 2131493151;
// aapt resource value: 0x7f0c0133
public const int log_in = 2131493171;
// aapt resource value: 0x7f0c011d
public const int logged_in = 2131493149;
// aapt resource value: 0x7f0c0134
public const int log_out = 2131493172;
// aapt resource value: 0x7f0c0111
public const int max_download = 2131493137;
// aapt resource value: 0x7f0c0132
public const int logged_in = 2131493170;
// aapt resource value: 0x7f0c0112
public const int max_download_dialog = 2131493138;
// aapt resource value: 0x7f0c0126
public const int max_download = 2131493158;
// aapt resource value: 0x7f0c0103
public const int metdata_error_noid = 2131493123;
// aapt resource value: 0x7f0c0127
public const int max_download_dialog = 2131493159;
// aapt resource value: 0x7f0c00da
public const int more = 2131493082;
// aapt resource value: 0x7f0c0115
public const int metdata_error_noid = 2131493141;
// aapt resource value: 0x7f0c00c0
public const int minutes = 2131493056;
// aapt resource value: 0x7f0c00de
public const int more = 2131493086;
// aapt resource value: 0x7f0c0040
public const int mr_button_content_description = 2131492928;
@@ -7729,38 +7747,59 @@ namespace MusicApp
// aapt resource value: 0x7f0c0087
public const int mtrl_chip_close_icon_content_description = 2131492999;
// aapt resource value: 0x7f0c010b
public const int music_genre = 2131493131;
// aapt resource value: 0x7f0c0120
public const int music_genre = 2131493152;
// aapt resource value: 0x7f0c00dd
public const int music_genres = 2131493085;
// aapt resource value: 0x7f0c00e1
public const int music_genres = 2131493089;
// aapt resource value: 0x7f0c00bd
public const int next_loading = 2131493053;
// aapt resource value: 0x7f0c0121
public const int no_permission = 2131493153;
// aapt resource value: 0x7f0c011e
public const int no = 2131493150;
// aapt resource value: 0x7f0c00e1
public const int no_song = 2131493089;
// aapt resource value: 0x7f0c00f4
public const int no_channel = 2131493108;
// aapt resource value: 0x7f0c0122
public const int no_song_mix = 2131493154;
// aapt resource value: 0x7f0c00f3
public const int no_lives = 2131493107;
// aapt resource value: 0x7f0c011c
public const int not_log = 2131493148;
// aapt resource value: 0x7f0c0136
public const int no_permission = 2131493174;
// aapt resource value: 0x7f0c0126
public const int not_streamable = 2131493158;
// aapt resource value: 0x7f0c00f2
public const int no_playlist = 2131493106;
// aapt resource value: 0x7f0c00f0
public const int no_result = 2131493104;
// aapt resource value: 0x7f0c00e5
public const int no_song = 2131493093;
// aapt resource value: 0x7f0c0137
public const int no_song_mix = 2131493175;
// aapt resource value: 0x7f0c00f1
public const int no_track = 2131493105;
// aapt resource value: 0x7f0c0131
public const int not_log = 2131493169;
// aapt resource value: 0x7f0c013b
public const int not_streamable = 2131493179;
// aapt resource value: 0x7f0c00bc
public const int nothing = 2131493052;
// aapt resource value: 0x7f0c0108
public const int ok = 2131493128;
// aapt resource value: 0x7f0c00bf
public const int off = 2131493055;
// aapt resource value: 0x7f0c0119
public const int others = 2131493145;
// aapt resource value: 0x7f0c011a
public const int ok = 2131493146;
// aapt resource value: 0x7f0c012e
public const int others = 2131493166;
// aapt resource value: 0x7f0c0088
public const int password_toggle_content_description = 2131493000;
@@ -7777,74 +7816,86 @@ namespace MusicApp
// aapt resource value: 0x7f0c008c
public const int path_password_strike_through = 2131493004;
// aapt resource value: 0x7f0c00bf
public const int paused = 2131493055;
// aapt resource value: 0x7f0c00c3
public const int paused = 2131493059;
// aapt resource value: 0x7f0c00fe
public const int pick_album_local = 2131493118;
// aapt resource value: 0x7f0c0110
public const int pick_album_local = 2131493136;
// aapt resource value: 0x7f0c00c4
public const int play = 2131493060;
// aapt resource value: 0x7f0c00c8
public const int play = 2131493064;
// aapt resource value: 0x7f0c00ce
public const int play_in_order = 2131493070;
// aapt resource value: 0x7f0c00d2
public const int play_in_order = 2131493074;
// aapt resource value: 0x7f0c00c6
public const int play_last = 2131493062;
// aapt resource value: 0x7f0c00ca
public const int play_last = 2131493066;
// aapt resource value: 0x7f0c00c5
public const int play_next = 2131493061;
// aapt resource value: 0x7f0c00c9
public const int play_next = 2131493065;
// aapt resource value: 0x7f0c00be
public const int playing = 2131493054;
// aapt resource value: 0x7f0c00c2
public const int playing = 2131493058;
// aapt resource value: 0x7f0c00f8
public const int playlist_add_song_not_found = 2131493112;
// aapt resource value: 0x7f0c0103
public const int playlist_add_song_not_found = 2131493123;
// aapt resource value: 0x7f0c00f6
public const int playlist_already_saved = 2131493110;
// aapt resource value: 0x7f0c0101
public const int playlist_already_saved = 2131493121;
// aapt resource value: 0x7f0c00f4
public const int playlist_empty = 2131493108;
// aapt resource value: 0x7f0c00ff
public const int playlist_empty = 2131493119;
// aapt resource value: 0x7f0c00f7
public const int playlist_not_found = 2131493111;
// aapt resource value: 0x7f0c0102
public const int playlist_not_found = 2131493122;
// aapt resource value: 0x7f0c00b4
public const int playlists = 2131493044;
// aapt resource value: 0x7f0c00db
public const int queue = 2131493083;
// aapt resource value: 0x7f0c00df
public const int queue = 2131493087;
// aapt resource value: 0x7f0c00d3
public const int random_play = 2131493075;
// aapt resource value: 0x7f0c00e2
public const int recommendation_explanation = 2131493090;
// aapt resource value: 0x7f0c00f6
public const int remove = 2131493110;
// aapt resource value: 0x7f0c00d0
public const int remove_from_playlist = 2131493072;
// aapt resource value: 0x7f0c00cf
public const int random_play = 2131493071;
// aapt resource value: 0x7f0c00de
public const int recommendation_explanation = 2131493086;
// aapt resource value: 0x7f0c00cc
public const int remove_from_playlist = 2131493068;
// aapt resource value: 0x7f0c00cb
public const int remove_from_queue = 2131493067;
public const int remove_from_queue = 2131493071;
// aapt resource value: 0x7f0c00f5
public const int removed_from_playlist = 2131493109;
public const int remove_search = 2131493109;
// aapt resource value: 0x7f0c00c0
public const int removed_from_queue = 2131493056;
// aapt resource value: 0x7f0c0100
public const int removed_from_playlist = 2131493120;
// aapt resource value: 0x7f0c00d1
public const int rename = 2131493073;
// aapt resource value: 0x7f0c00c4
public const int removed_from_queue = 2131493060;
// aapt resource value: 0x7f0c00d5
public const int rename = 2131493077;
// aapt resource value: 0x7f0c0105
public const int rename_playlist = 2131493125;
// aapt resource value: 0x7f0c00b5
public const int repeat = 2131493045;
// aapt resource value: 0x7f0c010a
public const int save_playlist = 2131493130;
// aapt resource value: 0x7f0c0073
public const int search_menu_title = 2131492979;
// aapt resource value: 0x7f0c00e8
public const int set_path = 2131493096;
// aapt resource value: 0x7f0c00ec
public const int set_path = 2131493100;
// aapt resource value: 0x7f0c00b9
public const int settings = 2131493049;
@@ -7852,80 +7903,89 @@ namespace MusicApp
// aapt resource value: 0x7f0c00ba
public const int show_queue = 2131493050;
// aapt resource value: 0x7f0c00d9
public const int shuffle = 2131493081;
// aapt resource value: 0x7f0c00dd
public const int shuffle = 2131493085;
// aapt resource value: 0x7f0c00d8
public const int shuffle_all = 2131493080;
// aapt resource value: 0x7f0c00dc
public const int shuffle_all = 2131493084;
// aapt resource value: 0x7f0c00df
public const int songs = 2131493087;
// aapt resource value: 0x7f0c00be
public const int sleep_timer = 2131493054;
// aapt resource value: 0x7f0c00e3
public const int songs = 2131493091;
// aapt resource value: 0x7f0c008d
public const int status_bar_notification_info_overflow = 2131493005;
// aapt resource value: 0x7f0c00d5
public const int stop_sync = 2131493077;
// aapt resource value: 0x7f0c00d9
public const int stop_sync = 2131493081;
// aapt resource value: 0x7f0c0106
public const int stop_syncing = 2131493126;
// aapt resource value: 0x7f0c003d
public const int summary_collapsed_preference_list = 2131492925;
// aapt resource value: 0x7f0c00d3
public const int sync = 2131493075;
// aapt resource value: 0x7f0c00d7
public const int sync = 2131493079;
// aapt resource value: 0x7f0c00d4
public const int sync_now = 2131493076;
// aapt resource value: 0x7f0c00d8
public const int sync_now = 2131493080;
// aapt resource value: 0x7f0c0128
public const int sync_remove = 2131493160;
// aapt resource value: 0x7f0c00ee
public const int syncing = 2131493102;
// aapt resource value: 0x7f0c012a
public const int theme = 2131493162;
// aapt resource value: 0x7f0c012b
public const int theme_dialog = 2131493163;
// aapt resource value: 0x7f0c0139
public const int timout = 2131493177;
// aapt resource value: 0x7f0c010b
public const int title = 2131493131;
// aapt resource value: 0x7f0c00e7
public const int tracks = 2131493095;
// aapt resource value: 0x7f0c0135
public const int undo = 2131493173;
// aapt resource value: 0x7f0c0113
public const int sync_remove = 2131493139;
public const int undo_change = 2131493139;
// aapt resource value: 0x7f0c00ea
public const int syncing = 2131493098;
// aapt resource value: 0x7f0c00db
public const int unfork = 2131493083;
// aapt resource value: 0x7f0c0115
public const int theme = 2131493141;
// aapt resource value: 0x7f0c0107
public const int unfork_playlist = 2131493127;
// aapt resource value: 0x7f0c0116
public const int theme_dialog = 2131493142;
// aapt resource value: 0x7f0c0124
public const int timout = 2131493156;
// aapt resource value: 0x7f0c00f9
public const int title = 2131493113;
// aapt resource value: 0x7f0c00e3
public const int tracks = 2131493091;
// aapt resource value: 0x7f0c0120
public const int undo = 2131493152;
// aapt resource value: 0x7f0c0101
public const int undo_change = 2131493121;
// aapt resource value: 0x7f0c00d7
public const int unfork = 2131493079;
// aapt resource value: 0x7f0c0125
public const int unknow = 2131493157;
// aapt resource value: 0x7f0c013a
public const int unknow = 2131493178;
// aapt resource value: 0x7f0c00bb
public const int up_next = 2131493051;
// aapt resource value: 0x7f0c012a
public const int up_to_date = 2131493162;
// aapt resource value: 0x7f0c013f
public const int up_to_date = 2131493183;
// aapt resource value: 0x7f0c0128
public const int update = 2131493160;
// aapt resource value: 0x7f0c013d
public const int update = 2131493181;
// aapt resource value: 0x7f0c0129
public const int update_message = 2131493161;
// aapt resource value: 0x7f0c013e
public const int update_message = 2131493182;
// aapt resource value: 0x7f0c0127
public const int update_no_internet = 2131493159;
// aapt resource value: 0x7f0c013c
public const int update_no_internet = 2131493180;
// aapt resource value: 0x7f0c012d
public const int updating = 2131493165;
// aapt resource value: 0x7f0c0142
public const int updating = 2131493186;
// aapt resource value: 0x7f0c003e
public const int v7_preference_off = 2131492926;
@@ -7933,32 +7993,35 @@ namespace MusicApp
// aapt resource value: 0x7f0c003f
public const int v7_preference_on = 2131492927;
// aapt resource value: 0x7f0c011b
public const int version = 2131493147;
// aapt resource value: 0x7f0c0130
public const int version = 2131493168;
// aapt resource value: 0x7f0c010f
public const int volume = 2131493135;
// aapt resource value: 0x7f0c0124
public const int volume = 2131493156;
// aapt resource value: 0x7f0c0117
public const int white_theme = 2131493143;
// aapt resource value: 0x7f0c012c
public const int white_theme = 2131493164;
// aapt resource value: 0x7f0c0123
public const int youtube_endpoint = 2131493155;
// aapt resource value: 0x7f0c011d
public const int yes = 2131493149;
// aapt resource value: 0x7f0c00ef
public const int youtube_loading_error = 2131493103;
// aapt resource value: 0x7f0c0138
public const int youtube_endpoint = 2131493176;
// aapt resource value: 0x7f0c00f1
public const int youtube_playlist_empty = 2131493105;
// aapt resource value: 0x7f0c00fa
public const int youtube_loading_error = 2131493114;
// aapt resource value: 0x7f0c00ed
public const int youtube_playlists = 2131493101;
// aapt resource value: 0x7f0c00fc
public const int youtube_playlist_empty = 2131493116;
// aapt resource value: 0x7f0c00f8
public const int youtube_playlists = 2131493112;
// aapt resource value: 0x7f0c00b6
public const int youtube_search = 2131493046;
// aapt resource value: 0x7f0c00fc
public const int youtubeid = 2131493116;
// aapt resource value: 0x7f0c010e
public const int youtubeid = 2131493134;
static String()
{

View File

@@ -36,7 +36,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/title"
android:text="Create new playlist"
android:text="@string/create_playlist"
android:textSize="18dip"
android:layout_gravity="center_vertical"
android:layout_toRightOf="@id/leftIcon" />

View File

@@ -17,6 +17,10 @@
<string name="up_next">Up next:</string>
<string name="nothing">Nothing.</string>
<string name="next_loading">Loading, please wait.</string>
<string name="sleep_timer">Stop music in</string>
<string name="off">Off</string>
<string name="minutes">minutes</string>
<string name="hours">hours</string>
<!--Queue-->
<string name="playing">Playing</string>
@@ -77,6 +81,13 @@
<string name="downloading">Downloading...</string>
<string name="syncing">Syncing...</string>
<string name="cant_delete">Can\'t delete this file for now, try again later.</string>
<string name="no_result">No result for </string>
<string name="no_track">No track for </string>
<string name="no_playlist">No playlist for </string>
<string name="no_lives">No lives for </string>
<string name="no_channel">No channel for </string>
<string name="remove_search">Remove from search history?</string>
<string name="remove">Remove</string>
<!--Playlists Screen-->
<string name="local_playlists">Local playlists</string>
@@ -88,10 +99,20 @@
<string name="element">element</string>
<string name="elements">elements</string>
<string name="playlist_empty">This playlist is empty.</string>
<string name="remove_from_playlist">Remove %1$s from playlist?</string> <!--%1$s will be replaced by the song name-->
<string name="removed_from_playlist"> has been removed from the playlist.</string>
<string name="playlist_already_saved">Playlist already added to your library.</string>
<string name="playlist_not_found">No playlist exist with this id or link.</string>
<string name="playlist_add_song_not_found">Song can\'t be found on youtube, can\'t add it to a youtube playlist.</string>
<string name="delete_playlist">Do you want to delete the playlist \"%1$s\"?</string> <!--%1$s will be replaced by the playlist name-->
<string name="rename_playlist">Enter a new name for this playlist</string>
<string name="stop_syncing">Do you want to stop syncing the playlist \"%1$s\"?</string> <!--%1$s will be replaced by the playlist name-->
<string name="unfork_playlist">Do you want to remove \"%1$s"\" from your library?</string> <!--%1$s will be replaced by the playlist name-->
<string name="add_playlist_msg">Enter the url or the id of the playlist you want to add</string> <!--%1$s will be replaced by the playlist name-->
<!--Add song to playlist-->
<string name="create_playlist">Create new playlist</string>
<string name="save_playlist">Save song to...</string>
<!--Edit metadata-->
<string name="title">Title</string>
@@ -114,7 +135,10 @@
<string name="apply">Apply</string>
<string name="cancel">Cancel</string>
<string name="ok">Ok</string>
<string name="add">Add</string>
<string name="later">Later</string>
<string name="yes">Yes</string>
<string name="no">No</string>
<string name="behavior">Behavior</string>
<string name="music_genre">Music genres your interesed in</string>