From 642662fed8b1ea767eb4d6627bb659991d62e41b Mon Sep 17 00:00:00 2001
From: Tristan Roux
Date: Sun, 3 Feb 2019 17:45:19 +0100
Subject: [PATCH] Most of the items are now translatable.
---
MusicApp/MainActivity.cs | 20 +-
MusicApp/Resources/Portable Class/Browse.cs | 4 +-
.../Resources/Portable Class/PagerFragment.cs | 5 +
MusicApp/Resources/Portable Class/Player.cs | 13 +-
MusicApp/Resources/Portable Class/Playlist.cs | 40 +-
.../Portable Class/PlaylistTracks.cs | 24 +-
.../Portable Class/SearchableActivity.cs | 6 +-
.../Resources/Portable Class/YoutubeEngine.cs | 14 +-
MusicApp/Resources/Resource.Designer.cs | 527 ++++++++++--------
.../Resources/layout/AddToPlaylistLayout.xml | 2 +-
MusicApp/Resources/values/strings.xml | 24 +
11 files changed, 381 insertions(+), 298 deletions(-)
diff --git a/MusicApp/MainActivity.cs b/MusicApp/MainActivity.cs
index 46955b6..5f6bc47 100644
--- a/MusicApp/MainActivity.cs
+++ b/MusicApp/MainActivity.cs
@@ -410,7 +410,6 @@ namespace MusicApp
}
else if (YoutubeEngine.instances != null)
{
- YoutubeEngine.error = false;
var searchView = menu.FindItem(Resource.Id.search).ActionView.JavaCast();
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();
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;
}
diff --git a/MusicApp/Resources/Portable Class/Browse.cs b/MusicApp/Resources/Portable Class/Browse.cs
index 701f85b..ce609f0 100644
--- a/MusicApp/Resources/Portable Class/Browse.cs
+++ b/MusicApp/Resources/Portable Class/Browse.cs
@@ -408,7 +408,7 @@ namespace MusicApp.Resources.Portable_Class
Layout.FindViewById(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(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(Resource.Id.CreatePlaylist).Click += (sender, e) => { dialog.Dismiss(); CreatePlalistDialog(item); };
dialog.Show();
diff --git a/MusicApp/Resources/Portable Class/PagerFragment.cs b/MusicApp/Resources/Portable Class/PagerFragment.cs
index 9d147f6..f2f83d7 100644
--- a/MusicApp/Resources/Portable Class/PagerFragment.cs
+++ b/MusicApp/Resources/Portable Class/PagerFragment.cs
@@ -31,6 +31,11 @@ namespace MusicApp.Resources.Portable_Class
return instance;
}
+ public void ScrollToFirst()
+ {
+ View.FindViewById(Resource.Id.pager).CurrentItem = 0;
+ }
+
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
if (savedInstanceState != null)
diff --git a/MusicApp/Resources/Portable Class/Player.cs b/MusicApp/Resources/Portable Class/Player.cs
index b43e569..509c4e7 100644
--- a/MusicApp/Resources/Portable Class/Player.cs
+++ b/MusicApp/Resources/Portable Class/Player.cs
@@ -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();
}
diff --git a/MusicApp/Resources/Portable Class/Playlist.cs b/MusicApp/Resources/Portable Class/Playlist.cs
index d64b5f9..6ab498b 100644
--- a/MusicApp/Resources/Portable Class/Playlist.cs
+++ b/MusicApp/Resources/Portable Class/Playlist.cs
@@ -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(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(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(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();
}
diff --git a/MusicApp/Resources/Portable Class/PlaylistTracks.cs b/MusicApp/Resources/Portable Class/PlaylistTracks.cs
index 4a5d2ea..9ae9c24 100644
--- a/MusicApp/Resources/Portable Class/PlaylistTracks.cs
+++ b/MusicApp/Resources/Portable Class/PlaylistTracks.cs
@@ -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(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();
}
diff --git a/MusicApp/Resources/Portable Class/SearchableActivity.cs b/MusicApp/Resources/Portable Class/SearchableActivity.cs
index ade1db4..3e68300 100644
--- a/MusicApp/Resources/Portable Class/SearchableActivity.cs
+++ b/MusicApp/Resources/Portable Class/SearchableActivity.cs
@@ -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().ToList().Find(x => x.Text == toRemove.Text));
});
})
- .SetNegativeButton("Cancel", (send, eventArg) => { })
+ .SetNegativeButton(Resource.String.cancel, (send, eventArg) => { })
.Create();
dialog.Show();
}
diff --git a/MusicApp/Resources/Portable Class/YoutubeEngine.cs b/MusicApp/Resources/Portable Class/YoutubeEngine.cs
index 8824415..5c87df0 100644
--- a/MusicApp/Resources/Portable Class/YoutubeEngine.cs
+++ b/MusicApp/Resources/Portable Class/YoutubeEngine.cs
@@ -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;
}
}
diff --git a/MusicApp/Resources/Resource.Designer.cs b/MusicApp/Resources/Resource.Designer.cs
index 613d9fe..d1d56ee 100644
--- a/MusicApp/Resources/Resource.Designer.cs
+++ b/MusicApp/Resources/Resource.Designer.cs
@@ -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()
{
diff --git a/MusicApp/Resources/layout/AddToPlaylistLayout.xml b/MusicApp/Resources/layout/AddToPlaylistLayout.xml
index e0c9174..4d0e71e 100644
--- a/MusicApp/Resources/layout/AddToPlaylistLayout.xml
+++ b/MusicApp/Resources/layout/AddToPlaylistLayout.xml
@@ -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" />
diff --git a/MusicApp/Resources/values/strings.xml b/MusicApp/Resources/values/strings.xml
index 17e81b6..4864224 100644
--- a/MusicApp/Resources/values/strings.xml
+++ b/MusicApp/Resources/values/strings.xml
@@ -17,6 +17,10 @@
Up next:
Nothing.
Loading, please wait.
+ Stop music in
+ Off
+ minutes
+ hours
Playing
@@ -77,6 +81,13 @@
Downloading...
Syncing...
Can\'t delete this file for now, try again later.
+ No result for
+ No track for
+ No playlist for
+ No lives for
+ No channel for
+ Remove from search history?
+ Remove
Local playlists
@@ -88,10 +99,20 @@
element
elements
This playlist is empty.
+ Remove %1$s from playlist?
has been removed from the playlist.
Playlist already added to your library.
No playlist exist with this id or link.
Song can\'t be found on youtube, can\'t add it to a youtube playlist.
+ Do you want to delete the playlist \"%1$s\"?
+ Enter a new name for this playlist
+ Do you want to stop syncing the playlist \"%1$s\"?
+ Do you want to remove \"%1$s"\" from your library?
+ Enter the url or the id of the playlist you want to add
+
+
+ Create new playlist
+ Save song to...
Title
@@ -114,7 +135,10 @@
Apply
Cancel
Ok
+ Add
Later
+ Yes
+ No
Behavior
Music genres your interesed in