Adding support of the string.xml for most view of the app.

This commit is contained in:
Tristan Roux
2019-01-26 16:43:13 +01:00
parent 84baa50a30
commit 0d150e44ad
22 changed files with 419 additions and 195 deletions

View File

@@ -672,12 +672,12 @@ namespace MusicApp
tabs.RemoveAllTabs();
tabs.Visibility = ViewStates.Visible;
tabs.AddTab(tabs.NewTab().SetText("Songs"));
tabs.AddTab(tabs.NewTab().SetText("Folders"));
tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.songs)));
tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.folders)));
ViewPagerAdapter adapter = new ViewPagerAdapter(SupportFragmentManager);
adapter.AddFragment(Browse.NewInstance(), "Songs");
adapter.AddFragment(FolderBrowse.NewInstance(), "Folders");
adapter.AddFragment(Browse.NewInstance(), Resources.GetString(Resource.String.songs));
adapter.AddFragment(FolderBrowse.NewInstance(), Resources.GetString(Resource.String.folders));
pager.Adapter = adapter;
pager.AddOnPageChangeListener(this);
@@ -719,19 +719,19 @@ namespace MusicApp
tabs.Visibility = ViewStates.Visible;
tabs.RemoveAllTabs();
tabs.AddTab(tabs.NewTab().SetText("All"));
tabs.AddTab(tabs.NewTab().SetText("Tracks"));
tabs.AddTab(tabs.NewTab().SetText("Playlists"));
tabs.AddTab(tabs.NewTab().SetText("Lives"));
tabs.AddTab(tabs.NewTab().SetText("Channels"));
tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.all)));
tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.tracks)));
tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.playlists)));
tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.lives)));
tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.channels)));
ViewPagerAdapter adapter = new ViewPagerAdapter(SupportFragmentManager);
Android.Support.V4.App.Fragment[] fragment = YoutubeEngine.NewInstances(querry);
adapter.AddFragment(fragment[0], "All");
adapter.AddFragment(fragment[1], "Tracks");
adapter.AddFragment(fragment[2], "Playlists");
adapter.AddFragment(fragment[3], "Lives");
adapter.AddFragment(fragment[4], "Channels");
adapter.AddFragment(fragment[0], Resources.GetString(Resource.String.all));
adapter.AddFragment(fragment[1], Resources.GetString(Resource.String.tracks));
adapter.AddFragment(fragment[2], Resources.GetString(Resource.String.playlists));
adapter.AddFragment(fragment[3], Resources.GetString(Resource.String.lives));
adapter.AddFragment(fragment[4], Resources.GetString(Resource.String.channels));
pager.Adapter = adapter;
pager.AddOnPageChangeListener(this);

View File

@@ -43,7 +43,7 @@ public class AccountPreference : Preference, IResultCallback
if (MainActivity.account == null)
{
log.SetTextColor(Color.DarkBlue);
log.Text = "Log In";
log.Text = Preferences.instance.Resources.GetString(Resource.String.log_in);
log.Click += logIn;
if (MainActivity.Theme == 1)
@@ -53,7 +53,7 @@ public class AccountPreference : Preference, IResultCallback
}
else
{
log.Text = "Log Out";
log.Text = Preferences.instance.Resources.GetString(Resource.String.log_out);
Picasso.With(Android.App.Application.Context).Load(MainActivity.account.PhotoUrl).Transform(new CircleTransformation()).Into(view.FindViewById<ImageView>(Android.Resource.Id.Icon));
log.SetTextColor(Color.Red);
log.Click += logOut;
@@ -63,7 +63,7 @@ public class AccountPreference : Preference, IResultCallback
public void OnSignedIn()
{
Button log = (Button)view.FindViewById(Resource.Id.logButton);
log.Text = "Log Out";
log.Text = Preferences.instance.Resources.GetString(Resource.String.log_out);
Picasso.With(Android.App.Application.Context).Load(MainActivity.account.PhotoUrl).Transform(new CircleTransformation()).Into(view.FindViewById<ImageView>(Android.Resource.Id.Icon));
view.FindViewById<ImageView>(Android.Resource.Id.Icon).ClearColorFilter();
log.SetTextColor(Color.Red);
@@ -74,7 +74,7 @@ public class AccountPreference : Preference, IResultCallback
{
Button log = (Button)view.FindViewById(Resource.Id.logButton);
log.SetTextColor(Color.DarkBlue);
log.Text = "Log In";
log.Text = Preferences.instance.Resources.GetString(Resource.String.log_in);
Summary = "";
Picasso.With(Android.App.Application.Context).Load(Resource.Drawable.account).Into(view.FindViewById<ImageView>(Android.Resource.Id.Icon));
if(MainActivity.Theme == 1)

View File

@@ -225,11 +225,11 @@ namespace MusicApp.Resources.Portable_Class
bottomSheet.FindViewById<ListView>(Resource.Id.bsItems).Adapter = new BottomSheetAdapter(MainActivity.instance, Resource.Layout.BottomSheetText, new List<BottomSheetAction>
{
new BottomSheetAction(Resource.Drawable.Play, "Play", (sender, eventArg) => { Play(item); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.PlaylistPlay, "Play Next", (sender, eventArg) => { PlayNext(item); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.Queue, "Play Last", (sender, eventArg) => { PlayLast(item); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.PlaylistAdd, "Add To Playlist", (sender, eventArg) => { GetPlaylist(item); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.Edit, "Edit Metadata", (sender, eventArg) => { EditMetadata(item); bottomSheet.Dismiss(); })
new BottomSheetAction(Resource.Drawable.Play, Resources.GetString(Resource.String.play), (sender, eventArg) => { Play(item); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.PlaylistPlay, Resources.GetString(Resource.String.play_next), (sender, eventArg) => { PlayNext(item); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.Queue, Resources.GetString(Resource.String.play_last), (sender, eventArg) => { PlayLast(item); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.PlaylistAdd, Resources.GetString(Resource.String.add_to_playlist), (sender, eventArg) => { GetPlaylist(item); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.Edit, Resources.GetString(Resource.String.edit_metadata), (sender, eventArg) => { EditMetadata(item); bottomSheet.Dismiss(); })
});
bottomSheet.Show();
}

View File

@@ -199,22 +199,22 @@ namespace MusicApp.Resources.Portable_Class
bottomSheet.FindViewById<ListView>(Resource.Id.bsItems).Adapter = new BottomSheetAdapter(MainActivity.instance, Resource.Layout.BottomSheetText, new List<BottomSheetAction>
{
new BottomSheetAction(Resource.Drawable.Folder, "List songs", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Folder, Resources.GetString(Resource.String.list_songs), (sender, eventArg) =>
{
ListSongs(displayPath, path);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.Play, "Play in order", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Play, Resources.GetString(Resource.String.play_in_order), (sender, eventArg) =>
{
PlayInOrder(path);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.Shuffle, "Random play", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Shuffle, Resources.GetString(Resource.String.random_play), (sender, eventArg) =>
{
RandomPlay(path);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.PlaylistAdd, "Add to playlist", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.PlaylistAdd, Resources.GetString(Resource.String.add_to_playlist), (sender, eventArg) =>
{
GetPlaylist(path);
bottomSheet.Dismiss();

View File

@@ -222,7 +222,7 @@ namespace MusicApp.Resources.Portable_Class
bottomSheet.FindViewById<ListView>(Resource.Id.bsItems).Adapter = new BottomSheetAdapter(MainActivity.instance, Resource.Layout.BottomSheetText, new List<BottomSheetAction>
{
new BottomSheetAction(Resource.Drawable.Play, "Play", async (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Play, Resources.GetString(Resource.String.play), async (sender, eventArg) =>
{
int Position = tracks.IndexOf(item);
@@ -245,10 +245,10 @@ namespace MusicApp.Resources.Portable_Class
Player.instance.UpdateNext();
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.PlaylistPlay, "Play next", (sender, eventArg) => { Browse.PlayNext(item); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.Queue, "Play last", (sender, eventArg) => { Browse.PlayLast(item); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.PlaylistAdd, "Add to playlist", (sender, eventArg) => { Browse.GetPlaylist(item); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.Edit, "Edit metadata", (sender, eventArg) => { Browse.EditMetadata(item); bottomSheet.Dismiss(); })
new BottomSheetAction(Resource.Drawable.PlaylistPlay, Resources.GetString(Resource.String.play_next), (sender, eventArg) => { Browse.PlayNext(item); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.Queue, Resources.GetString(Resource.String.play_last), (sender, eventArg) => { Browse.PlayLast(item); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.PlaylistAdd, Resources.GetString(Resource.String.add_to_playlist), (sender, eventArg) => { Browse.GetPlaylist(item); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.Edit, Resources.GetString(Resource.String.edit_metadata), (sender, eventArg) => { Browse.EditMetadata(item); bottomSheet.Dismiss(); })
});
bottomSheet.Show();
}

View File

@@ -173,14 +173,14 @@ namespace MusicApp.Resources.Portable_Class
List<BottomSheetAction> actions = new List<BottomSheetAction>
{
new BottomSheetAction(Resource.Drawable.Play, "Play", (sender, eventArg) => { OnClick(position); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.Close, "Remove from queue", (sender, eventArg) => { Queue.RemoveFromQueue(position); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.PlaylistAdd, "Add To Playlist", (sender, eventArg) => { Browse.GetPlaylist(item); bottomSheet.Dismiss(); })
new BottomSheetAction(Resource.Drawable.Play, MainActivity.instance.Resources.GetString(Resource.String.play), (sender, eventArg) => { OnClick(position); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.Close, MainActivity.instance.Resources.GetString(Resource.String.remove_from_queue), (sender, eventArg) => { Queue.RemoveFromQueue(position); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.PlaylistAdd, MainActivity.instance.Resources.GetString(Resource.String.add_to_playlist), (sender, eventArg) => { Browse.GetPlaylist(item); bottomSheet.Dismiss(); })
};
if (item.IsYt)
{
actions.Add(new BottomSheetAction(Resource.Drawable.Download, "Download", (sender, eventArg) =>
actions.Add(new BottomSheetAction(Resource.Drawable.Download, MainActivity.instance.Resources.GetString(Resource.String.download), (sender, eventArg) =>
{
YoutubeEngine.Download(item.Title, item.YoutubeID);
bottomSheet.Dismiss();
@@ -188,7 +188,7 @@ namespace MusicApp.Resources.Portable_Class
}
else
{
actions.Add(new BottomSheetAction(Resource.Drawable.Edit, "Edit Metadata", (sender, eventArg) =>
actions.Add(new BottomSheetAction(Resource.Drawable.Edit, MainActivity.instance.Resources.GetString(Resource.String.edit_metadata), (sender, eventArg) =>
{
Browse.EditMetadata(item);
bottomSheet.Dismiss();
@@ -219,7 +219,7 @@ namespace MusicApp.Resources.Portable_Class
List<BottomSheetAction> actions = new List<BottomSheetAction>
{
new BottomSheetAction(Resource.Drawable.Play, "Play", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Play, MainActivity.instance.Resources.GetString(Resource.String.play), (sender, eventArg) =>
{
if (!item.IsYt)
Browse.Play(item);
@@ -227,7 +227,7 @@ namespace MusicApp.Resources.Portable_Class
YoutubeEngine.Play(item.YoutubeID, item.Title, item.Artist, item.Album);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.PlaylistPlay, "Play Next", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.PlaylistPlay, MainActivity.instance.Resources.GetString(Resource.String.play_next), (sender, eventArg) =>
{
if (!item.IsYt)
Browse.PlayNext(item);
@@ -235,7 +235,7 @@ namespace MusicApp.Resources.Portable_Class
YoutubeEngine.PlayNext(item.YoutubeID, item.Title, item.Artist, item.Album);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.Queue, "Play Last", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Queue, MainActivity.instance.Resources.GetString(Resource.String.play_last), (sender, eventArg) =>
{
if (!item.IsYt)
Browse.PlayLast(item);
@@ -243,12 +243,12 @@ namespace MusicApp.Resources.Portable_Class
YoutubeEngine.PlayLast(item.YoutubeID, item.Title, item.Artist, item.Album);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.PlaylistAdd, "Add To Playlist", (sender, eventArg) => { Browse.GetPlaylist(item); bottomSheet.Dismiss(); })
new BottomSheetAction(Resource.Drawable.PlaylistAdd, MainActivity.instance.Resources.GetString(Resource.String.add_to_playlist), (sender, eventArg) => { Browse.GetPlaylist(item); bottomSheet.Dismiss(); })
};
if (!item.IsYt)
{
actions.Add(new BottomSheetAction(Resource.Drawable.Edit, "Edit Metadata", (sender, eventArg) =>
actions.Add(new BottomSheetAction(Resource.Drawable.Edit, MainActivity.instance.Resources.GetString(Resource.String.edit_metadata), (sender, eventArg) =>
{
Browse.EditMetadata(item);
bottomSheet.Dismiss();
@@ -256,7 +256,7 @@ namespace MusicApp.Resources.Portable_Class
}
else
{
actions.Add(new BottomSheetAction(Resource.Drawable.Download, "Download", (sender, eventArg) =>
actions.Add(new BottomSheetAction(Resource.Drawable.Download, MainActivity.instance.Resources.GetString(Resource.String.download), (sender, eventArg) =>
{
YoutubeEngine.Download(item.Title, item.YoutubeID);
bottomSheet.Dismiss();

View File

@@ -250,7 +250,7 @@ namespace MusicApp
if (asNext)
{
Song next = await MusicPlayer.GetItem(MusicPlayer.CurrentID() + 1);
MainActivity.instance.FindViewById<TextView>(Resource.Id.nextTitle).Text = "Up next:";
MainActivity.instance.FindViewById<TextView>(Resource.Id.nextTitle).Text = Resources.GetString(Resource.String.up_next);
MainActivity.instance.FindViewById<TextView>(Resource.Id.nextArtist).Text = next.Title;
ImageView nextArt = MainActivity.instance.FindViewById<ImageView>(Resource.Id.nextArt);
@@ -268,7 +268,7 @@ namespace MusicApp
}
else if (MusicPlayer.useAutoPlay)
{
MainActivity.instance.FindViewById<TextView>(Resource.Id.nextTitle).Text = "Up next:";
MainActivity.instance.FindViewById<TextView>(Resource.Id.nextTitle).Text = Resources.GetString(Resource.String.up_next);
ImageView nextArt = MainActivity.instance.FindViewById<ImageView>(Resource.Id.nextArt);
Song next = await MusicPlayer.GetItem(MusicPlayer.CurrentID() + 1);
@@ -290,7 +290,7 @@ namespace MusicApp
}
else
{
MainActivity.instance.FindViewById<TextView>(Resource.Id.nextArtist).Text = "Loading, please wait";
MainActivity.instance.FindViewById<TextView>(Resource.Id.nextArtist).Text = Resources.GetString(Resource.String.next_loading);
Picasso.With(MainActivity.instance).Load(Resource.Drawable.noAlbum).Into(nextArt);
MusicPlayer.instance?.GenerateAutoPlay(false);
}
@@ -298,7 +298,7 @@ namespace MusicApp
else if (MusicPlayer.repeat)
{
Song next = await MusicPlayer.GetItem(0);
MainActivity.instance.FindViewById<TextView>(Resource.Id.nextTitle).Text = "Up next:";
MainActivity.instance.FindViewById<TextView>(Resource.Id.nextTitle).Text = Resources.GetString(Resource.String.up_next);
MainActivity.instance.FindViewById<TextView>(Resource.Id.nextArtist).Text = next.Title;
ImageView nextArt = MainActivity.instance.FindViewById<ImageView>(Resource.Id.nextArt);
@@ -316,8 +316,8 @@ namespace MusicApp
}
else
{
MainActivity.instance.FindViewById<TextView>(Resource.Id.nextTitle).Text = "Up next:";
MainActivity.instance.FindViewById<TextView>(Resource.Id.nextArtist).Text = "Nothing.";
MainActivity.instance.FindViewById<TextView>(Resource.Id.nextTitle).Text = Resources.GetString(Resource.String.up_next);
MainActivity.instance.FindViewById<TextView>(Resource.Id.nextArtist).Text = Resources.GetString(Resource.String.nothing);
ImageView nextArt = MainActivity.instance.FindViewById<ImageView>(Resource.Id.nextArt);
Picasso.With(MainActivity.instance).Load(Resource.Drawable.noAlbum).Placeholder(Resource.Drawable.noAlbum).Resize(400, 400).CenterCrop().Into(nextArt);

View File

@@ -96,7 +96,7 @@ namespace MusicApp.Resources.Portable_Class
long id = cursor.GetLong(listID);
PlaylistItem ytPlaylist = SyncedPlaylists.Find(x => x.LocalID == id);
if (ytPlaylist == null)
if (ytPlaylist == null)
{
Android.Net.Uri musicUri = Playlists.Members.GetContentUri("external", id);
CursorLoader cursorLoader = new CursorLoader(Android.App.Application.Context, musicUri, null, null, null, null);
@@ -119,7 +119,7 @@ namespace MusicApp.Resources.Portable_Class
}
if (LocalPlaylists.Count == 1)
LocalPlaylists.Add(new PlaylistItem("EMPTY - You don't have any playlist on your device.", -1));
LocalPlaylists.Add(new PlaylistItem("EMPTY", -1) { Owner = Resources.GetString(Resource.String.local_playlist_empty) });
YoutubePlaylists.Add(Loading);
adapter = new PlaylistAdapter(LocalPlaylists, YoutubePlaylists);
@@ -296,7 +296,7 @@ namespace MusicApp.Resources.Portable_Class
if (YoutubePlaylists.Count == 1)
{
YoutubePlaylists.Add(new PlaylistItem("EMPTY", null) { Owner = "You don't have any youtube playlist on your account. \nWarning: Only playlist from your google account are displayed" });
YoutubePlaylists.Add(new PlaylistItem("EMPTY", null) { Owner = Resources.GetString(Resource.String.youtube_playlist_empty) });
}
adapter.NotifyItemRangeInserted(LocalPlaylists.Count + YoutubePlaylists.Count + 1 - YtCount, YoutubePlaylists.Count - YtCount);
adapter.forkSaved = true;
@@ -311,7 +311,7 @@ namespace MusicApp.Resources.Portable_Class
if(BadSync.Count > 0)
{
if (LocalPlaylists[1].Name.StartsWith("EMPTY - "))
if (LocalPlaylists[1].Name == "EMPTY")
{
LocalPlaylists.RemoveAt(1);
adapter.NotifyItemRemoved(1);
@@ -492,7 +492,7 @@ namespace MusicApp.Resources.Portable_Class
List<BottomSheetAction> actions = new List<BottomSheetAction>
{
new BottomSheetAction(Resource.Drawable.Play, "Play In Order", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Play, Resources.GetString(Resource.String.play_in_order), (sender, eventArg) =>
{
if (local || item.SyncState == SyncState.True)
PlayInOrder(item.LocalID);
@@ -500,7 +500,7 @@ namespace MusicApp.Resources.Portable_Class
PlayInOrder(item.YoutubeID);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.Shuffle, "Random Play", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Shuffle, Resources.GetString(Resource.String.random_play), (sender, eventArg) =>
{
if (local || item.SyncState == SyncState.True)
RandomPlay(item.LocalID, Activity);
@@ -508,7 +508,7 @@ namespace MusicApp.Resources.Portable_Class
YoutubeEngine.RandomPlay(item.YoutubeID);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.Queue, "Add To Queue", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Queue, Resources.GetString(Resource.String.add_to_queue), (sender, eventArg) =>
{
if (local || item.SyncState == SyncState.True)
AddToQueue(item.LocalID);
@@ -520,7 +520,7 @@ namespace MusicApp.Resources.Portable_Class
if (local || item.HasWritePermission)
{
actions.AddRange(new BottomSheetAction[]{ new BottomSheetAction(Resource.Drawable.Edit, "Rename", (sender, eventArg) =>
actions.AddRange(new BottomSheetAction[]{ new BottomSheetAction(Resource.Drawable.Edit, Resources.GetString(Resource.String.rename), (sender, eventArg) =>
{
if (local)
Rename(Position, item);
@@ -528,7 +528,7 @@ namespace MusicApp.Resources.Portable_Class
RenameYoutubePlaylist(Position, item.YoutubeID, item.LocalID);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.Delete, "Delete", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Delete, Resources.GetString(Resource.String.delete), (sender, eventArg) =>
{
if (local)
RemovePlaylist(Position, item.LocalID);
@@ -541,12 +541,12 @@ namespace MusicApp.Resources.Portable_Class
if(item.SyncState == SyncState.True)
{
actions.AddRange(new BottomSheetAction[]{ new BottomSheetAction(Resource.Drawable.Sync, "Sync Now", (sender, eventArg) =>
actions.AddRange(new BottomSheetAction[]{ new BottomSheetAction(Resource.Drawable.Sync, Resources.GetString(Resource.String.sync_now), (sender, eventArg) =>
{
YoutubeEngine.DownloadPlaylist(item.Name, item.YoutubeID);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.SyncDisabled, "Stop Syncing", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.SyncDisabled, Resources.GetString(Resource.String.stop_sync), (sender, eventArg) =>
{
StopSyncing(Position, item.LocalID);
bottomSheet.Dismiss();
@@ -554,7 +554,7 @@ namespace MusicApp.Resources.Portable_Class
}
else if (!local && item.HasWritePermission)
{
actions.Add(new BottomSheetAction(Resource.Drawable.Sync, "Sync Playlist", (sender, eventArg) =>
actions.Add(new BottomSheetAction(Resource.Drawable.Sync, Resources.GetString(Resource.String.sync), (sender, eventArg) =>
{
YoutubeEngine.DownloadPlaylist(item.Name, item.YoutubeID);
bottomSheet.Dismiss();
@@ -562,12 +562,12 @@ namespace MusicApp.Resources.Portable_Class
}
else if(!local)
{
actions.AddRange(new BottomSheetAction[]{ new BottomSheetAction(Resource.Drawable.Sync, "Sync Playlist", (sender, eventArg) =>
actions.AddRange(new BottomSheetAction[]{ new BottomSheetAction(Resource.Drawable.Sync, Resources.GetString(Resource.String.sync), (sender, eventArg) =>
{
YoutubeEngine.DownloadPlaylist(item.Name, item.YoutubeID);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.Delete, "Unfork", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Delete, Resources.GetString(Resource.String.unfork), (sender, eventArg) =>
{
Unfork(Position, item.YoutubeID);
bottomSheet.Dismiss();
@@ -844,7 +844,7 @@ namespace MusicApp.Resources.Portable_Class
if (LocalPlaylists.Count == 1)
{
LocalPlaylists.Add(new PlaylistItem("EMPTY - You don't have any playlist on your device.", -1));
LocalPlaylists.Add(new PlaylistItem("EMPTY", -1) { Owner = Resources.GetString(Resource.String.local_playlist_empty) });
adapter.NotifyItemInserted(1);
}
})
@@ -863,7 +863,7 @@ namespace MusicApp.Resources.Portable_Class
adapter.NotifyItemRemoved(LocalIndex);
if (LocalPlaylists.Count == 1)
{
LocalPlaylists.Add(new PlaylistItem("EMPTY - You don't have any playlist on your device.", -1));
LocalPlaylists.Add(new PlaylistItem("EMPTY", -1) { Owner = Resources.GetString(Resource.String.local_playlist_empty) });
adapter.NotifyItemInserted(1);
}
await Task.Delay(500);
@@ -922,7 +922,7 @@ namespace MusicApp.Resources.Portable_Class
holder.SyncLoading.Visibility = ViewStates.Gone;
PlaylistItem LocalPlaylist = new PlaylistItem(YoutubePlaylists[position - LocalPlaylists.Count].Name, LocalID, YoutubePlaylists[position - LocalPlaylists.Count].Count);
if (LocalPlaylists.Count == 2 && LocalPlaylists[1].Name.StartsWith("EMPTY -"))
if (LocalPlaylists.Count == 2 && LocalPlaylists[1].Name == "EMPTY")
{
LocalPlaylists.RemoveAt(1);
adapter.NotifyItemRemoved(1);
@@ -989,9 +989,9 @@ namespace MusicApp.Resources.Portable_Class
foreach (PlaylistItem item in YoutubePlaylists)
System.Console.WriteLine(item.Name);
if (YoutubePlaylists.Count == 1)
{
YoutubePlaylists.Add(new PlaylistItem("EMPTY", null) { Owner = "You don't have any youtube playlist on your account. \nWarning: Only playlist from your google account are displayed" });
if (YoutubePlaylists.Count == 1)
{
YoutubePlaylists.Add(new PlaylistItem("EMPTY", null) { Owner = Resources.GetString(Resource.String.youtube_playlist_empty) });
adapter.NotifyItemInserted(LocalPlaylists.Count + YoutubePlaylists.Count);
}
}
@@ -1038,9 +1038,9 @@ namespace MusicApp.Resources.Portable_Class
YoutubePlaylists.RemoveAt(position - LocalPlaylists.Count - 1);
adapter.NotifyItemRemoved(position);
if (YoutubePlaylists.Count == 1)
{
YoutubePlaylists.Add(new PlaylistItem("EMPTY", null) { Owner = "You don't have any youtube playlist on your account. \nWarning: Only playlist from your google account are displayed" });
if (YoutubePlaylists.Count == 1)
{
YoutubePlaylists.Add(new PlaylistItem("EMPTY", null) { Owner = Resources.GetString(Resource.String.youtube_playlist_empty) });
adapter.NotifyItemInserted(LocalPlaylists.Count + YoutubePlaylists.Count);
}
}

View File

@@ -44,21 +44,20 @@ namespace MusicApp.Resources.Portable_Class
if (position == 0)
{
HeaderHolder holder = (HeaderHolder)viewHolder;
holder.headerText.Text = "Local Playlists";
holder.headerText.Text = MainActivity.instance.Resources.GetString(Resource.String.local_playlists);
}
else if (position - LocalPlaylists.Count == 0)
{
HeaderHolder holder = (HeaderHolder)viewHolder;
holder.headerText.Text = "Youtube Playlists";
holder.headerText.Text = MainActivity.instance.Resources.GetString(Resource.String.youtube_playlists);
}
else if (position == 1 && LocalPlaylists[1].Name.StartsWith("EMPTY - "))
else if (position == 1 && LocalPlaylists[1].Name == "EMPTY")
{
EmptyHolder holder = (EmptyHolder)viewHolder;
holder.text.Text = LocalPlaylists[1].Name.Substring(8);
holder.text.Text = LocalPlaylists[1].Owner;
}
else if (position - LocalPlaylists.Count == 1 && YoutubePlaylists[1].Name == "EMPTY")
{
Console.WriteLine("&Empty holder");
EmptyHolder holder = (EmptyHolder)viewHolder;
holder.text.Text = YoutubePlaylists[1].Owner;
}
@@ -67,12 +66,12 @@ namespace MusicApp.Resources.Portable_Class
ButtonHolder holder = (ButtonHolder)viewHolder;
if (MainActivity.Theme == 1)
{
((GradientDrawable)holder.ItemView.Background).SetStroke(5, Android.Content.Res.ColorStateList.ValueOf(Color.Argb(255, 62, 80, 180)));
((GradientDrawable)holder.ItemView.Background).SetStroke(5, ColorStateList.ValueOf(Color.Argb(255, 62, 80, 180)));
holder.Button.SetTextColor(Color.Argb(255, 62, 80, 180));
}
else
{
((GradientDrawable)holder.ItemView.Background).SetStroke(5, Android.Content.Res.ColorStateList.ValueOf(Color.Argb(255, 21, 183, 237)));
((GradientDrawable)holder.ItemView.Background).SetStroke(5, ColorStateList.ValueOf(Color.Argb(255, 21, 183, 237)));
holder.Button.SetTextColor(Color.Argb(255, 21, 183, 237));
}
@@ -86,7 +85,7 @@ namespace MusicApp.Resources.Portable_Class
else if(position >= LocalPlaylists.Count && YoutubePlaylists[position - LocalPlaylists.Count].Name == "Error" && YoutubePlaylists[position - LocalPlaylists.Count].YoutubeID == null)
{
EmptyHolder holder = (EmptyHolder)viewHolder;
holder.text.Text = "Error while loading.\nCheck your internet connection and check if your logged in.";
holder.text.Text = MainActivity.instance.Resources.GetString(Resource.String.youtube_loading_error);
holder.text.SetTextColor(Color.Red);
}
else if (LocalPlaylists.Count >= position)
@@ -225,7 +224,7 @@ namespace MusicApp.Resources.Portable_Class
{
if (position == 0 || position - LocalPlaylists.Count == 0)
return 0;
else if (LocalPlaylists.Count >= position && (LocalPlaylists.Count > 2 || !LocalPlaylists[1].Name.StartsWith("EMPTY - ")))
else if (LocalPlaylists.Count >= position && (LocalPlaylists.Count > 2 || LocalPlaylists[1].Name != "EMPTY"))
return 1;
else if (position == LocalPlaylists.Count + YoutubePlaylists.Count)
return 4;

View File

@@ -698,8 +698,8 @@ namespace MusicApp.Resources.Portable_Class
List<BottomSheetAction> actions = new List<BottomSheetAction>
{
new BottomSheetAction(Resource.Drawable.Play, "Play", (sender, eventArg) => { PlayInOrder(position, true); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.PlaylistPlay, "Play Next", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Play, Resources.GetString(Resource.String.play), (sender, eventArg) => { PlayInOrder(position, true); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.PlaylistPlay, Resources.GetString(Resource.String.play_next), (sender, eventArg) =>
{
if (!item.IsYt)
Browse.PlayNext(item);
@@ -707,7 +707,7 @@ namespace MusicApp.Resources.Portable_Class
YoutubeEngine.PlayNext(item.YoutubeID, item.Title, item.Artist, item.Album);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.Queue, "Play Last", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Queue, Resources.GetString(Resource.String.play_last), (sender, eventArg) =>
{
if (!item.IsYt)
Browse.PlayLast(item);
@@ -715,12 +715,12 @@ namespace MusicApp.Resources.Portable_Class
YoutubeEngine.PlayLast(item.YoutubeID, item.Title, item.Artist, item.Album);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.PlaylistAdd, "Add To Playlist", (sender, eventArg) => { Browse.GetPlaylist(item); bottomSheet.Dismiss(); })
new BottomSheetAction(Resource.Drawable.PlaylistAdd, Resources.GetString(Resource.String.add_to_playlist), (sender, eventArg) => { Browse.GetPlaylist(item); bottomSheet.Dismiss(); })
};
if (hasWriteAcess && YoutubeID != "")
{
actions.Add(new BottomSheetAction(Resource.Drawable.Close, "Remove Track from playlist", (sender, eventArg) =>
actions.Add(new BottomSheetAction(Resource.Drawable.Close, Resources.GetString(Resource.String.remove_from_playlist), (sender, eventArg) =>
{
DeleteDialog(position);
bottomSheet.Dismiss();
@@ -729,7 +729,7 @@ namespace MusicApp.Resources.Portable_Class
if (!item.IsYt)
{
actions.Add(new BottomSheetAction(Resource.Drawable.Edit, "Edit Metadata", (sender, eventArg) =>
actions.Add(new BottomSheetAction(Resource.Drawable.Edit, Resources.GetString(Resource.String.edit_metadata), (sender, eventArg) =>
{
if (item.IsYt)
YoutubeEngine.Download(item.Title, item.YoutubeID);
@@ -740,7 +740,7 @@ namespace MusicApp.Resources.Portable_Class
}
else
{
actions.Add(new BottomSheetAction(Resource.Drawable.Download, "Download", (sender, eventArg) =>
actions.Add(new BottomSheetAction(Resource.Drawable.Download, Resources.GetString(Resource.String.download), (sender, eventArg) =>
{
if (item.IsYt)
YoutubeEngine.Download(item.Title, item.YoutubeID);

View File

@@ -19,7 +19,6 @@ using static Android.Provider.MediaStore.Audio;
using AlertDialog = Android.Support.V7.App.AlertDialog;
using CursorLoader = Android.Support.V4.Content.CursorLoader;
using Preference = Android.Support.V7.Preferences.Preference;
using PreferenceCategory = Android.Support.V7.Preferences.PreferenceCategory;
using PreferenceManager = Android.Support.V7.Preferences.PreferenceManager;
using Toolbar = Android.Support.V7.Widget.Toolbar;
@@ -43,7 +42,7 @@ namespace MusicApp.Resources.Portable_Class
instance = this;
Window.SetStatusBarColor(Android.Graphics.Color.Argb(255, 33, 33, 33));
toolbar.Title = "Settings";
toolbar.Title = Resources.GetString(Resource.String.settings);
toolbar.NavigationClick += (sender, e) =>
{
if (DownloadFragment.instance == null && TopicSelector.instance == null)
@@ -57,7 +56,7 @@ namespace MusicApp.Resources.Portable_Class
editor.PutString("downloadPath", DownloadFragment.instance.path);
editor.Apply();
Preference downloadPref = PreferencesFragment.instance.PreferenceScreen.FindPreference("downloadPath");
downloadPref.Summary = DownloadFragment.instance.path ?? "not set";
downloadPref.Summary = DownloadFragment.instance.path ?? Environment.GetExternalStoragePublicDirectory(Environment.DirectoryMusic).ToString();
PreferencesFragment.instance.path = DownloadFragment.instance.path;
DownloadFragment.instance = null;
@@ -79,15 +78,15 @@ namespace MusicApp.Resources.Portable_Class
Preference topicPreference = PreferencesFragment.instance.PreferenceScreen.FindPreference("topics");
if (topics.Count == 0)
topicPreference.Summary = "Actually nothing";
topicPreference.Summary = Resources.GetString(Resource.String.genre_nothing);
else if (topics.Count == 1)
topicPreference.Summary = topics[0].Substring(0, topics[0].IndexOf("/#-#/"));
else if (topics.Count == 2)
topicPreference.Summary = topics[0].Substring(0, topics[0].IndexOf("/#-#/")) + " and " + topics[1].Substring(0, topics[1].IndexOf("/#-#/"));
topicPreference.Summary = topics[0].Substring(0, topics[0].IndexOf("/#-#/")) + Resources.GetString(Resource.String.and) + topics[1].Substring(0, topics[1].IndexOf("/#-#/"));
else if (topics.Count == 3)
topicPreference.Summary = topics[0].Substring(0, topics[0].IndexOf("/#-#/")) + ", " + topics[1].Substring(0, topics[1].IndexOf("/#-#/")) + " and " + topics[2].Substring(0, topics[2].IndexOf("/#-#/"));
topicPreference.Summary = topics[0].Substring(0, topics[0].IndexOf("/#-#/")) + ", " + topics[1].Substring(0, topics[1].IndexOf("/#-#/")) + Resources.GetString(Resource.String.and) + topics[2].Substring(0, topics[2].IndexOf("/#-#/"));
else if (topics.Count > 3)
topicPreference.Summary = topics[0].Substring(0, topics[0].IndexOf("/#-#/")) + ", " + topics[1].Substring(0, topics[1].IndexOf("/#-#/")) + ", " + topics[2].Substring(0, topics[2].IndexOf("/#-#/")) + " and more.";
topicPreference.Summary = topics[0].Substring(0, topics[0].IndexOf("/#-#/")) + ", " + topics[1].Substring(0, topics[1].IndexOf("/#-#/")) + ", " + topics[2].Substring(0, topics[2].IndexOf("/#-#/")) + Resources.GetString(Resource.String.and_more);
}
}
};
@@ -151,23 +150,17 @@ namespace MusicApp.Resources.Portable_Class
string[] topics = prefManager.GetStringSet("selectedTopics", new string[] { }).ToArray();
if (topics.Length == 0)
topicPreference.Summary = "Actually nothing";
topicPreference.Summary = Resources.GetString(Resource.String.genre_nothing);
else if (topics.Length == 1)
topicPreference.Summary = topics[0].Substring(0, topics[0].IndexOf("/#-#/"));
else if (topics.Length == 2)
topicPreference.Summary = topics[0].Substring(0, topics[0].IndexOf("/#-#/")) + " and " + topics[1].Substring(0, topics[1].IndexOf("/#-#/"));
topicPreference.Summary = topics[0].Substring(0, topics[0].IndexOf("/#-#/")) + Resources.GetString(Resource.String.and) + topics[1].Substring(0, topics[1].IndexOf("/#-#/"));
else if(topics.Length == 3)
topicPreference.Summary = topics[0].Substring(0, topics[0].IndexOf("/#-#/")) + ", " + topics[1].Substring(0, topics[1].IndexOf("/#-#/")) + " and " + topics[2].Substring(0, topics[2].IndexOf("/#-#/"));
topicPreference.Summary = topics[0].Substring(0, topics[0].IndexOf("/#-#/")) + ", " + topics[1].Substring(0, topics[1].IndexOf("/#-#/")) + Resources.GetString(Resource.String.and) + topics[2].Substring(0, topics[2].IndexOf("/#-#/"));
else if(topics.Length > 3)
topicPreference.Summary = topics[0].Substring(0, topics[0].IndexOf("/#-#/")) + ", " + topics[1].Substring(0, topics[1].IndexOf("/#-#/")) + ", " + topics[2].Substring(0, topics[2].IndexOf("/#-#/")) + " and more.";
topicPreference.Summary = topics[0].Substring(0, topics[0].IndexOf("/#-#/")) + ", " + topics[1].Substring(0, topics[1].IndexOf("/#-#/")) + ", " + topics[2].Substring(0, topics[2].IndexOf("/#-#/")) + Resources.GetString(Resource.String.and_more);
//Skip Exist Verification
Preference skipExistVerification = PreferenceScreen.FindPreference("skipExistVerification");
skipExistVerification.IconSpaceReserved = false;
skipExistVerification.PreferenceClick += SkipClick;
skipExistVerification.Summary = prefManager.GetBoolean("skipExistVerification", false) ? "True" : "False";
//Local play shortcut
Preference localShortcutPreference = PreferenceScreen.FindPreference("localPlay");
localShortcutPreference.IconSpaceReserved = false;
@@ -197,7 +190,7 @@ namespace MusicApp.Resources.Portable_Class
Preference themePreference = PreferenceScreen.FindPreference("theme");
themePreference.IconSpaceReserved = false;
themePreference.PreferenceClick += ChangeTheme;
themePreference.Summary = prefManager.GetInt("theme", 0) == 0 ? "White Theme" : "Dark Theme";
themePreference.Summary = prefManager.GetInt("theme", 0) == 0 ? Resources.GetString(Resource.String.white_theme) : Resources.GetString(Resource.String.dark_theme);
//Check For Update
Preference updatePreference = PreferenceScreen.FindPreference("update");
@@ -231,7 +224,7 @@ namespace MusicApp.Resources.Portable_Class
if (MainActivity.account != null)
{
accountPreference.Title = "Logged in as:";
accountPreference.Title = Resources.GetString(Resource.String.logged_in);
accountPreference.Summary = MainActivity.account.DisplayName;
}
}
@@ -273,25 +266,6 @@ namespace MusicApp.Resources.Portable_Class
}
#endregion
#region Skip Verification
private void SkipClick(object sender, Preference.PreferenceClickEventArgs e)
{
AlertDialog.Builder builder = new AlertDialog.Builder(Activity, MainActivity.dialogTheme);
builder.SetTitle("Always play youtube file even if you have already downloaded the track:");
builder.SetItems(new[] { "True", "False" }, (s, args) =>
{
ISharedPreferences pref = PreferenceManager.GetDefaultSharedPreferences(Application.Context);
ISharedPreferencesEditor editor = pref.Edit();
editor.PutBoolean("skipExistVerification", args.Which == 0);
editor.Apply();
Preference prefButton = FindPreference("skipExistVerification");
prefButton.Summary = args.Which == 0 ? "True" : "False";
});
builder.Show();
}
#endregion
#region LocalShortcut
private void LocalShortcut(object sender, Preference.PreferenceClickEventArgs e)
{
@@ -305,7 +279,7 @@ namespace MusicApp.Resources.Portable_Class
void LCShuffleAll()
{
ISharedPreferences pref = Android.Support.V7.Preferences.PreferenceManager.GetDefaultSharedPreferences(Application.Context);
ISharedPreferences pref = PreferenceManager.GetDefaultSharedPreferences(Application.Context);
ISharedPreferencesEditor editor = pref.Edit();
editor.PutString("localPlay", "Shuffle All Audio Files");
editor.Apply();
@@ -349,7 +323,7 @@ namespace MusicApp.Resources.Portable_Class
void LCSufflePlaylist(string playlist, long playlistID)
{
ISharedPreferences pref = Android.Support.V7.Preferences.PreferenceManager.GetDefaultSharedPreferences(Application.Context);
ISharedPreferences pref = PreferenceManager.GetDefaultSharedPreferences(Application.Context);
ISharedPreferencesEditor editor = pref.Edit();
editor.PutString("localPlay", "Shuffle " + playlist);
editor.PutLong("localPlaylistID", playlistID);
@@ -373,14 +347,14 @@ namespace MusicApp.Resources.Portable_Class
{
View pickerView = LayoutInflater.Inflate(Resource.Layout.NumberPicker, null);
AlertDialog.Builder builder = new AlertDialog.Builder(Activity, MainActivity.dialogTheme);
builder.SetTitle("Choose the maximum number of current download:");
builder.SetTitle(Resources.GetString(Resource.String.max_download_dialog));
builder.SetView(pickerView);
NumberPicker picker = (NumberPicker)pickerView;
picker.MinValue = 1;
picker.MaxValue = 10;
picker.Value = int.Parse(FindPreference("maxDownload").Summary);
builder.SetPositiveButton("Apply", (s, eventArg) =>
builder.SetPositiveButton(Resources.GetString(Resource.String.apply), (s, eventArg) =>
{
ISharedPreferences pref = PreferenceManager.GetDefaultSharedPreferences(Application.Context);
ISharedPreferencesEditor editor = pref.Edit();
@@ -396,7 +370,7 @@ namespace MusicApp.Resources.Portable_Class
Downloader.instance.StartDownload();
}
});
builder.SetNegativeButton("Cancel", (s, eventArg) => { });
builder.SetNegativeButton(Resources.GetString(Resource.String.cancel), (s, eventArg) => { });
builder.Show();
}
#endregion
@@ -424,8 +398,8 @@ namespace MusicApp.Resources.Portable_Class
private void ChangeTheme(object sender, Preference.PreferenceClickEventArgs e)
{
AlertDialog.Builder builder = new AlertDialog.Builder(Activity, MainActivity.dialogTheme);
builder.SetTitle("Choose a theme :");
builder.SetItems(new[] { "White Theme", "Dark Theme" }, (s, args) =>
builder.SetTitle(Resources.GetString(Resource.String.theme_dialog));
builder.SetItems(new[] { Resources.GetString(Resource.String.white_theme), Resources.GetString(Resource.String.dark_theme) }, (s, args) =>
{
ISharedPreferences pref = PreferenceManager.GetDefaultSharedPreferences(Application.Context);
ISharedPreferencesEditor editor = pref.Edit();
@@ -433,7 +407,7 @@ namespace MusicApp.Resources.Portable_Class
editor.Apply();
Preference prefButton = FindPreference("theme");
prefButton.Summary = args.Which == 0 ? "White Theme" : "Dark Theme";
prefButton.Summary = args.Which == 0 ? Resources.GetString(Resource.String.white_theme) : Resources.GetString(Resource.String.dark_theme);
MainActivity.instance.SwitchTheme(args.Which);
MainActivity.instance.Recreate();

View File

@@ -199,14 +199,14 @@ namespace MusicApp.Resources.Portable_Class
List<BottomSheetAction> actions = new List<BottomSheetAction>
{
new BottomSheetAction(Resource.Drawable.Play, "Play", (sender, eventArg) => { ListView_ItemClick(null, position); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.Close, "Remove from queue", (sender, eventArg) => { RemoveFromQueue(position); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.PlaylistAdd, "Add To Playlist", (sender, eventArg) => { Browse.GetPlaylist(item); bottomSheet.Dismiss(); })
new BottomSheetAction(Resource.Drawable.Play, Resources.GetString(Resource.String.play), (sender, eventArg) => { ListView_ItemClick(null, position); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.Close, Resources.GetString(Resource.String.remove_from_queue), (sender, eventArg) => { RemoveFromQueue(position); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.PlaylistAdd, Resources.GetString(Resource.String.add_to_playlist), (sender, eventArg) => { Browse.GetPlaylist(item); bottomSheet.Dismiss(); })
};
if (item.IsYt)
{
actions.Add(new BottomSheetAction(Resource.Drawable.Download, "Download", (sender, eventArg) =>
actions.Add(new BottomSheetAction(Resource.Drawable.Download, Resources.GetString(Resource.String.download), (sender, eventArg) =>
{
YoutubeEngine.Download(item.Title, item.YoutubeID);
bottomSheet.Dismiss();
@@ -214,7 +214,7 @@ namespace MusicApp.Resources.Portable_Class
}
else
{
actions.Add(new BottomSheetAction(Resource.Drawable.Edit, "Edit Metadata", (sender, eventArg) =>
actions.Add(new BottomSheetAction(Resource.Drawable.Edit, Resources.GetString(Resource.String.edit_metadata), (sender, eventArg) =>
{
Browse.EditMetadata(item);
bottomSheet.Dismiss();

View File

@@ -461,23 +461,23 @@ namespace MusicApp.Resources.Portable_Class
bottomSheet.FindViewById<ListView>(Resource.Id.bsItems).Adapter = new BottomSheetAdapter(MainActivity.instance, Resource.Layout.BottomSheetText, new List<BottomSheetAction>
{
new BottomSheetAction(Resource.Drawable.Play, "Play", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Play, Resources.GetString(Resource.String.play), (sender, eventArg) =>
{
Play(item.YoutubeID, item.Title, item.Artist, item.Album);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.PlaylistPlay, "Play next", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.PlaylistPlay, Resources.GetString(Resource.String.play_next), (sender, eventArg) =>
{
PlayNext(item.YoutubeID, item.Title, item.Artist, item.Album);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.Queue, "Play last", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Queue, Resources.GetString(Resource.String.play_last), (sender, eventArg) =>
{
PlayLast(item.YoutubeID, item.Title, item.Artist, item.Album);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.PlaylistAdd, "Add to playlist", (sender, eventArg) => { Browse.GetPlaylist(item); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.Download, "Download", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.PlaylistAdd, Resources.GetString(Resource.String.add_to_playlist), (sender, eventArg) => { Browse.GetPlaylist(item); bottomSheet.Dismiss(); }),
new BottomSheetAction(Resource.Drawable.Download, Resources.GetString(Resource.String.download), (sender, eventArg) =>
{
Download(item.Title, item.YoutubeID);
bottomSheet.Dismiss();
@@ -497,27 +497,27 @@ namespace MusicApp.Resources.Portable_Class
List<BottomSheetAction> actions = new List<BottomSheetAction>
{
new BottomSheetAction(Resource.Drawable.Play, "Play in order", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Play, Resources.GetString(Resource.String.play_in_order), (sender, eventArg) =>
{
Playlist.PlayInOrder(item.YoutubeID);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.Shuffle, "Random play", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Shuffle, Resources.GetString(Resource.String.random_play), (sender, eventArg) =>
{
RandomPlay(item.YoutubeID);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.Queue, "Add to queue", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Queue, Resources.GetString(Resource.String.add_to_queue), (sender, eventArg) =>
{
Playlist.AddToQueue(item.YoutubeID);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.LibraryAdd, "Add playlist to library", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.LibraryAdd, Resources.GetString(Resource.String.add_to_library), (sender, eventArg) =>
{
ForkPlaylist(item.YoutubeID);
bottomSheet.Dismiss();
}),
new BottomSheetAction(Resource.Drawable.Download, "Download", (sender, eventArg) =>
new BottomSheetAction(Resource.Drawable.Download, Resources.GetString(Resource.String.download), (sender, eventArg) =>
{
DownloadPlaylist(item.Title, item.YoutubeID);
bottomSheet.Dismiss();

View File

@@ -7201,15 +7201,45 @@ namespace MusicApp
// aapt resource value: 0x7f0c0072
public const int abc_toolbar_collapse_description = 2131492978;
// aapt resource value: 0x7f0c00e1
public const int add_playlist = 2131493089;
// aapt resource value: 0x7f0c00d0
public const int add_to_library = 2131493072;
// aapt resource value: 0x7f0c00c2
public const int add_to_playlist = 2131493058;
// aapt resource value: 0x7f0c00ca
public const int add_to_queue = 2131493066;
// aapt resource value: 0x7f0c00db
public const int all = 2131493083;
// aapt resource value: 0x7f0c0080
public const int appbar_scrolling_view_behavior = 2131492992;
// aapt resource value: 0x7f0c00ec
public const int appearances = 2131493100;
// aapt resource value: 0x7f0c00bc
public const int autoplay = 2131493052;
// aapt resource value: 0x7f0c00bd
public const int autoplay_desc = 2131493053;
// aapt resource value: 0x7f0c00e5
public const int behavior = 2131493093;
// aapt resource value: 0x7f0c0081
public const int bottom_sheet_behavior = 2131492993;
// aapt resource value: 0x7f0c00b1
public const int browse = 2131493041;
// aapt resource value: 0x7f0c00b6
public const int cast = 2131493046;
// aapt resource value: 0x7f0c0000
public const int cast_ad_label = 2131492864;
@@ -7336,12 +7366,18 @@ namespace MusicApp
// aapt resource value: 0x7f0c0025
public const int cast_unmute = 2131492901;
// aapt resource value: 0x7f0c00de
public const int channels = 2131493086;
// aapt resource value: 0x7f0c0082
public const int character_counter_content_description = 2131492994;
// aapt resource value: 0x7f0c0083
public const int character_counter_pattern = 2131492995;
// aapt resource value: 0x7f0c00ef
public const int check_updates = 2131493103;
// aapt resource value: 0x7f0c002b
public const int common_google_play_services_enable_button = 2131492907;
@@ -7396,6 +7432,21 @@ namespace MusicApp
// aapt resource value: 0x7f0c003b
public const int common_signin_button_text_long = 2131492923;
// aapt resource value: 0x7f0c00be
public const int create_mix = 2131493054;
// aapt resource value: 0x7f0c00cc
public const int delete = 2131493068;
// aapt resource value: 0x7f0c00c4
public const int download = 2131493060;
// aapt resource value: 0x7f0c00e9
public const int download_directory = 2131493097;
// aapt resource value: 0x7f0c00c3
public const int edit_metadata = 2131493059;
// aapt resource value: 0x7f0c0090
public const int exo_controls_fastforward_description = 2131493008;
@@ -7501,8 +7552,14 @@ namespace MusicApp
// aapt resource value: 0x7f0c0085
public const int fab_transformation_sheet_behavior = 2131492997;
// aapt resource value: 0x7f0c00b7
public const int featured = 2131493047;
// aapt resource value: 0x7f0c00d6
public const int featured = 2131493078;
// aapt resource value: 0x7f0c00b5
public const int filter = 2131493045;
// aapt resource value: 0x7f0c00da
public const int folders = 2131493082;
// aapt resource value: 0x7f0c0086
public const int hide_bottom_view_on_scroll_behavior = 2131492998;
@@ -7510,8 +7567,26 @@ namespace MusicApp
// aapt resource value: 0x7f0c00b0
public const int home = 2131493040;
// aapt resource value: 0x7f0c00b5
public const int more = 2131493045;
// aapt resource value: 0x7f0c00c7
public const int list_songs = 2131493063;
// aapt resource value: 0x7f0c00dd
public const int lives = 2131493085;
// aapt resource value: 0x7f0c00e7
public const int local_play = 2131493095;
// aapt resource value: 0x7f0c00e3
public const int local_playlist_empty = 2131493091;
// aapt resource value: 0x7f0c00df
public const int local_playlists = 2131493087;
// aapt resource value: 0x7f0c00ea
public const int max_download = 2131493098;
// aapt resource value: 0x7f0c00d4
public const int more = 2131493076;
// aapt resource value: 0x7f0c0040
public const int mr_button_content_description = 2131492928;
@@ -7588,8 +7663,20 @@ namespace MusicApp
// aapt resource value: 0x7f0c0087
public const int mtrl_chip_close_icon_content_description = 2131492999;
// aapt resource value: 0x7f0c00b8
public const int music_genres = 2131493048;
// aapt resource value: 0x7f0c00e6
public const int music_genre = 2131493094;
// aapt resource value: 0x7f0c00d7
public const int music_genres = 2131493079;
// aapt resource value: 0x7f0c00bb
public const int next_loading = 2131493051;
// aapt resource value: 0x7f0c00ba
public const int nothing = 2131493050;
// aapt resource value: 0x7f0c00ee
public const int others = 2131493102;
// aapt resource value: 0x7f0c0088
public const int password_toggle_content_description = 2131493000;
@@ -7606,36 +7693,114 @@ namespace MusicApp
// aapt resource value: 0x7f0c008c
public const int path_password_strike_through = 2131493004;
// aapt resource value: 0x7f0c00bf
public const int play = 2131493055;
// aapt resource value: 0x7f0c00c8
public const int play_in_order = 2131493064;
// aapt resource value: 0x7f0c00c1
public const int play_last = 2131493057;
// aapt resource value: 0x7f0c00c0
public const int play_next = 2131493056;
// aapt resource value: 0x7f0c00b2
public const int playlists = 2131493042;
// aapt resource value: 0x7f0c00b6
public const int queue = 2131493046;
// aapt resource value: 0x7f0c00d5
public const int queue = 2131493077;
// aapt resource value: 0x7f0c00b9
public const int recommendation_explanation = 2131493049;
// aapt resource value: 0x7f0c00c9
public const int random_play = 2131493065;
// aapt resource value: 0x7f0c00d8
public const int recommendation_explanation = 2131493080;
// aapt resource value: 0x7f0c00c6
public const int remove_from_playlist = 2131493062;
// aapt resource value: 0x7f0c00c5
public const int remove_from_queue = 2131493061;
// aapt resource value: 0x7f0c00cb
public const int rename = 2131493067;
// aapt resource value: 0x7f0c00b3
public const int repeat = 2131493043;
// aapt resource value: 0x7f0c0073
public const int search_menu_title = 2131492979;
// aapt resource value: 0x7f0c00b4
public const int shuffle = 2131493044;
// aapt resource value: 0x7f0c00b7
public const int settings = 2131493047;
// aapt resource value: 0x7f0c00b3
public const int shuffle_all = 2131493043;
// aapt resource value: 0x7f0c00b8
public const int show_queue = 2131493048;
// aapt resource value: 0x7f0c00d3
public const int shuffle = 2131493075;
// aapt resource value: 0x7f0c00d2
public const int shuffle_all = 2131493074;
// aapt resource value: 0x7f0c00d9
public const int songs = 2131493081;
// aapt resource value: 0x7f0c008d
public const int status_bar_notification_info_overflow = 2131493005;
// aapt resource value: 0x7f0c00cf
public const int stop_sync = 2131493071;
// aapt resource value: 0x7f0c003d
public const int summary_collapsed_preference_list = 2131492925;
// aapt resource value: 0x7f0c00cd
public const int sync = 2131493069;
// aapt resource value: 0x7f0c00ce
public const int sync_now = 2131493070;
// aapt resource value: 0x7f0c00eb
public const int sync_remove = 2131493099;
// aapt resource value: 0x7f0c00ed
public const int theme = 2131493101;
// aapt resource value: 0x7f0c00dc
public const int tracks = 2131493084;
// aapt resource value: 0x7f0c00d1
public const int unfork = 2131493073;
// aapt resource value: 0x7f0c00b9
public const int up_next = 2131493049;
// aapt resource value: 0x7f0c003e
public const int v7_preference_off = 2131492926;
// aapt resource value: 0x7f0c003f
public const int v7_preference_on = 2131492927;
// aapt resource value: 0x7f0c00f0
public const int version = 2131493104;
// aapt resource value: 0x7f0c00e8
public const int volume = 2131493096;
// aapt resource value: 0x7f0c00e2
public const int youtube_loading_error = 2131493090;
// aapt resource value: 0x7f0c00e4
public const int youtube_playlist_empty = 2131493092;
// aapt resource value: 0x7f0c00e0
public const int youtube_playlists = 2131493088;
// aapt resource value: 0x7f0c00b4
public const int youtube_search = 2131493044;
static String()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();

View File

@@ -9,4 +9,4 @@
android:layout_marginBottom="10dp"
android:background="@drawable/FlatButtonBorder"
android:id="@+id/button"
android:text="Add a playlist" />
android:text="@string/add_playlist" />

View File

@@ -3,55 +3,50 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android/com/apk/res-auto"
android:id="@+id/PreferenceScreen">
<android.support.v7.preference.PreferenceCategory android:title="Behavior" android:id="@+id/behavior" >
<android.support.v7.preference.PreferenceCategory android:title="@string/behavior" android:id="@+id/behavior" >
<android.support.v7.preference.Preference
android:key="topics"
android:title="Music genres your interesed in"
android:title="@string/music_genres"
android:summary="Actualy nothing"/>
<android.support.v7.preference.Preference
android:key="localPlay"
android:title="Local Play Shortcut"
android:summary="Shuffle All Audio Files" />
<android.support.v7.preference.Preference
android:key="skipExistVerification"
android:title="Never play local file instead of youtube one"
android:title="@string/local_play"
android:summary="Shuffle All Audio Files" />
<SeekbarPreference
android:title="Volume"
android:title="@string/volume"
android:key="volumeMultipler" />
</android.support.v7.preference.PreferenceCategory>
<android.support.v7.preference.PreferenceCategory android:title="Download">
<android.support.v7.preference.PreferenceCategory android:title="@string/download">
<android.support.v7.preference.Preference
android:key="downloadPath"
android:title="Download directory"
android:summary="test" />
android:title="@string/download_directory" />
<android.support.v7.preference.Preference
android:key="maxDownload"
android:title="Maximum current download"
android:title="@string/max_download"
android:summary="4"/>
<android.support.v7.preference.Preference
android:key="keepDeleted"
android:title="Delete song when removing them from a synced playlist"
android:title="@string/sync_remove"
android:summary="true"/>
</android.support.v7.preference.PreferenceCategory>
<android.support.v7.preference.PreferenceCategory android:title="Appearances">
<android.support.v7.preference.PreferenceCategory android:title="@string/appearances">
<android.support.v7.preference.Preference
android:key="theme"
android:title="Theme :"
android:title="@string/theme"
android:summary="White Theme" />
</android.support.v7.preference.PreferenceCategory>
<android.support.v7.preference.PreferenceCategory android:title="Others">
<android.support.v7.preference.PreferenceCategory android:title="@string/Others">
<android.support.v7.preference.Preference
android:title="Check for updates"
android:title="@string/check_updates"
android:key="update"/>
<android.support.v7.preference.Preference
android:title="Version :"
android:title="@string/version"
android:key="version" />
<AccountPreference
android:key="account"
android:icon="@drawable/account"
android:id="@+id/accountPreference"
android:widgetLayout="@layout/LogOutButton"
android:title="Not logged in" />
android:title="@string/not_log" />
</android.support.v7.preference.PreferenceCategory>
</android.support.v7.preference.PreferenceScreen>

View File

@@ -27,7 +27,7 @@
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="20sp"
android:text="Autoplay"/>
android:text="@string/autoplay"/>
<android.widget.Switch
android:layout_width="wrap_content"
android:layout_height="25dp"
@@ -40,7 +40,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
android:text="Automatically add similars songs from youtube"/>
android:text="@string/autoplay_desc"/>
</LinearLayout>
<View
android:layout_width="1dp"
@@ -53,7 +53,7 @@
android:layout_height="wrap_content"
android:background="@drawable/FlatButtonBorder"
android:id="@+id/createMix"
android:text="Create Mix" />
android:text="@string/create_mix" />
</LinearLayout>
<android.support.v7.widget.CardView
android:layout_width="fill_parent"
@@ -83,7 +83,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Up Next:"
android:text="@string/up_next"
android:textSize="16dip"
android:textStyle="bold" />
<TextView

View File

@@ -249,7 +249,7 @@
android:layout_marginRight="20dp"
android:background="@drawable/FlatButtonBorder"
android:id="@+id/showQueue"
android:text="Show Queue" />
android:text="@string/show_queue" />
</LinearLayout>
<SeekBar
android:id="@+id/songTimer"

View File

@@ -5,12 +5,12 @@
<item
android:id="@+id/shuffle"
android:icon="@drawable/Shuffle"
android:title="Shuffle Queue"
android:title="@string/shuffle"
app:showAsAction="always" />
<item
android:id="@+id/repeat"
android:icon="@drawable/Repeat"
android:title="Repeat"
android:title="@string/repeat"
android:checkable="true"
app:showAsAction="always" />
</menu>

View File

@@ -5,7 +5,7 @@
<item
android:id="@+id/search"
android:icon="@drawable/search"
android:title="Search On Youtube"
android:title="@string/youtube_search"
app:showAsAction="always|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView" />
</menu>

View File

@@ -5,23 +5,23 @@
<item
android:id="@+id/search"
android:icon="@drawable/Search"
android:title="Search On Youtube"
android:title="@string/youtube_search"
app:showAsAction="always|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView" />
<item
android:id="@+id/filter"
android:icon="@drawable/Filter"
android:title="Filter"
android:title="@string/filter"
app:showAsAction="always|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView" />
<item
android:id="@+id/media_route_menu_item"
android:title="Cast"
android:title="@string/cast"
app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
app:showAsAction="always" />
<item
android:id="@+id/settings"
android:icon="@drawable/account"
app:showAsAction="always"
android:title="Settings" />
android:title="@string/settings" />
</menu>

View File

@@ -1,8 +1,51 @@
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<!--Navigation bar-->
<string name="home">Home</string>
<string name="browse">Browse</string>
<string name="playlists">Playlists</string>
<!--Toolbars-->
<string name="repeat">Repeat</string>
<string name="youtube_search">Search on youtube</string>
<string name="filter">Filter</string>
<string name="cast">Cast</string>
<string name="settings">Settings</string>
<!--Player-->
<string name="show_queue">SHOW QUEUE</string>
<string name="up_next">Up next:</string>
<string name="nothing">Nothing.</string>
<string name="next_loading">Loading, please wait.</string>
<!--Autoplay-->
<string name="autoplay">Autoplay</string>
<string name="autoplay_desc">Automatically add similars songs from youtube</string>
<string name="create_mix">CREATE MIX</string>
<!--More menu (long clicks)-->
<string name="play">Play</string>
<string name="play_next">Play next</string>
<string name="play_last">Play last</string>
<string name="add_to_playlist">Add to playlist</string>
<string name="edit_metadata">Edit metadata</string>
<string name="download">Download</string>
<string name="remove_from_queue">Remove from queue</string>
<string name="remove_from_playlist">Remove track from playlist</string>
<!--More menu of playlist or folders-->
<string name="list_songs">List songs</string>
<string name="play_in_order">Play in order</string>
<string name="random_play">Shuffle</string>
<string name="add_to_queue">Add to queue</string>
<string name="rename">Rename</string>
<string name="delete">Delete</string>
<string name="sync">Sync playlist</string>
<string name="sync_now">Sync now</string>
<string name="stop_sync">Stop syncing</string>
<string name="add_to_library">Add playlist to library</string>
<string name="unfork">Remove playlist from library</string>
<!--Home screen-->
<string name="shuffle_all">SHUFFLE ALL</string>
<string name="shuffle">Shuffle</string>
<string name="more">MORE</string>
@@ -10,4 +53,52 @@
<string name="featured">Featured</string>
<string name="music_genres">Music Genres</string>
<string name="recommendation_explanation">used for your recommendation</string>
<!--Browse tab-->
<string name="songs">Songs</string>
<string name="folders">Folders</string>
<!--Youtube Search-->
<string name="all">All</string>
<string name="tracks">Tracks</string>
<string name="playlists">Playlists</string>
<string name="lives">Lives</string>
<string name="channels">Channels</string>
<!--Playlists Screen-->
<string name="local_playlists">Local Playlists</string>
<string name="youtube_playlists">Youtube Playlists</string>
<string name="add_playlist">ADD A PLAYLIST</string>
<string name="youtube_loading_error">Error while loading.\nCheck your internet connection and check if your logged in.</string>
<string name="local_playlist_empty">You don\'t have any playlist on your device.</string>
<string name="youtube_playlist_empty">You don\'t have any youtube playlist on your account. \nWarning: Only playlist from your google account are displayed.</string>
<!--Settings-->
<string name="apply">Apply</string>
<string name="cancel">Cancel</string>
<string name="behavior">Behavior</string>
<string name="music_genre">Music genres your interesed in</string>
<string name="genre_nothing">Actually nothing</string>
<string name="and"> and </string>
<string name="and_more"> and more.</string>
<string name="local_play">Local Play Shortcut</string>
<string name="volume">Volume</string>
<string name="download">Download</string>
<string name="download_directory">Download directory</string>
<string name="max_download">Maximum current download</string>
<string name="max_download_dialog">Choose the maximum number of current download</string>
<string name="sync_remove">Delete song when removing them from a synced playlist</string>
<string name="appearances">Appearances</string>
<string name="theme">Theme</string>
<string name="theme_dialog">Choose a theme</string>
<string name="white_theme">White Theme</string>
<string name="dark_theme">Dark Theme</string>
<string name="others">Others</string>
<string name="check_updates">Check for updates</string>
<string name="version">Version</string>
<string name="not_log">Not logged in</string>
<string name="logged_in">Logged in as</string>
<string name="log_in">LOG IN</string>
<string name="log_out">LOG OUT</string>
</resources>