bottom navigation bar bugs solved

This commit is contained in:
Gboy9155
2017-12-10 18:10:57 +01:00
parent 9a1e4582b9
commit 6ecb3a7e32
6 changed files with 188 additions and 138 deletions
+101 -57
View File
@@ -45,6 +45,8 @@ namespace MusicApp
public static OAuth2Authenticator auth; public static OAuth2Authenticator auth;
public static string refreshToken; public static string refreshToken;
private bool searchDisplayed; private bool searchDisplayed;
private bool canSwitch = true;
private string tab;
public void Login() public void Login()
{ {
@@ -119,8 +121,6 @@ namespace MusicApp
if (refreshToken == null) if (refreshToken == null)
refreshToken = MainActivity.refreshToken; refreshToken = MainActivity.refreshToken;
Console.WriteLine("new refrehs token:" + refreshToken);
ISharedPreferences pref = PreferenceManager.GetDefaultSharedPreferences(this); ISharedPreferences pref = PreferenceManager.GetDefaultSharedPreferences(this);
string expireDate = pref.GetString("expireDate", null); string expireDate = pref.GetString("expireDate", null);
if (expireDate != null) if (expireDate != null)
@@ -370,6 +370,7 @@ namespace MusicApp
return; return;
} }
tab = "Queue";
HideTabs(); HideTabs();
HideSearch(); HideSearch();
fragment = Queue.NewInstance(); fragment = Queue.NewInstance();
@@ -382,6 +383,7 @@ namespace MusicApp
return; return;
} }
tab = "Browse";
SetBrowseTabs(); SetBrowseTabs();
DisplaySearch(); DisplaySearch();
break; break;
@@ -393,6 +395,7 @@ namespace MusicApp
return; return;
} }
tab = "Youtube";
HideTabs(); HideTabs();
DisplaySearch(); DisplaySearch();
fragment = YoutubeEngine.NewInstance(); fragment = YoutubeEngine.NewInstance();
@@ -405,6 +408,7 @@ namespace MusicApp
return; return;
} }
tab = "Playlist";
SetYtTabs(); SetYtTabs();
HideSearch(); HideSearch();
break; break;
@@ -416,99 +420,139 @@ namespace MusicApp
SupportFragmentManager.BeginTransaction().Replace(Resource.Id.contentView, fragment).Commit(); SupportFragmentManager.BeginTransaction().Replace(Resource.Id.contentView, fragment).Commit();
} }
void SetBrowseTabs(int selectedTab = 0) async void SetBrowseTabs(int selectedTab = 0)
{ {
if (Browse.instance != null) if (Browse.instance != null)
return; return;
while (!canSwitch)
await Task.Delay(10);
FrameLayout frame = FindViewById<FrameLayout>(Resource.Id.contentView); if (tab != "Browse" || Browse.instance != null)
frame.Visibility = ViewStates.Gone; return;
Console.WriteLine("Switching: " + canSwitch);
canSwitch = false;
TabLayout tabs = FindViewById<TabLayout>(Resource.Id.tabs); TabLayout tabs = FindViewById<TabLayout>(Resource.Id.tabs);
tabs.Visibility = ViewStates.Visible;
tabs.RemoveAllTabs();
tabs.AddTab(tabs.NewTab().SetText("Songs"));
tabs.AddTab(tabs.NewTab().SetText("Folders"));
Console.WriteLine("tabs created");
ViewPager pager = FindViewById<ViewPager>(Resource.Id.pager); ViewPager pager = FindViewById<ViewPager>(Resource.Id.pager);
pager.SetPadding(0, (int) Math.Round(paddinTop * 1.90f), 0, 0);
pager.ClearOnPageChangeListeners();
pager.AddOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabs));
ViewPagerAdapter oldAdapter = (ViewPagerAdapter)pager.Adapter; if (Playlist.instance != null)
if (oldAdapter != null)
{ {
for (int i = 0; i < oldAdapter.Count; i++) ViewPagerAdapter oldAdapter = (ViewPagerAdapter)pager.Adapter;
{ SupportFragmentManager.BeginTransaction().Remove(oldAdapter.GetItem(0)).Commit();
SupportFragmentManager.BeginTransaction().Remove(oldAdapter.GetItem(i)).Commit(); SupportFragmentManager.BeginTransaction().Remove(oldAdapter.GetItem(1)).Commit();
}
oldAdapter.Dispose(); oldAdapter.Clear();
tabs.AddTab(tabs.NewTab().SetText("Songs"));
tabs.AddTab(tabs.NewTab().SetText("Folders"));
oldAdapter.AddFragment(Browse.NewInstance(), "Songs");
oldAdapter.AddFragment(FolderBrowse.NewInstance(), "Folders");
pager.Adapter = oldAdapter;
pager.ClearOnPageChangeListeners();
} }
Console.WriteLine("old adapter removed"); else
{
FrameLayout frame = FindViewById<FrameLayout>(Resource.Id.contentView);
frame.Visibility = ViewStates.Gone;
tabs.Visibility = ViewStates.Visible;
tabs.AddTab(tabs.NewTab().SetText("Songs"));
tabs.AddTab(tabs.NewTab().SetText("Folders"));
ViewPagerAdapter adapter = new ViewPagerAdapter(SupportFragmentManager); pager.SetPadding(0, (int)Math.Round(paddinTop * 1.90f), 0, 0);
adapter.AddFragment(Browse.NewInstance(), "Songs");
adapter.AddFragment(FolderBrowse.NewInstance(), "Folders");
Console.WriteLine("new adapter created");
pager.Adapter = adapter; ViewPagerAdapter adapter = new ViewPagerAdapter(SupportFragmentManager);
tabs.SetupWithViewPager(pager); adapter.AddFragment(Browse.NewInstance(), "Songs");
adapter.AddFragment(FolderBrowse.NewInstance(), "Folders");
pager.Adapter = adapter;
tabs.SetupWithViewPager(pager);
}
pager.AddOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabs));
pager.CurrentItem = selectedTab; pager.CurrentItem = selectedTab;
tabs.SetScrollPosition(selectedTab, 0f, true); tabs.SetScrollPosition(selectedTab, 0f, true);
CanSwitchDelay();
} }
void SetYtTabs(int selectedTab = 0) async void SetYtTabs(int selectedTab = 0)
{ {
if (Playlist.instance != null) if (Playlist.instance != null)
return; return;
FrameLayout frame = FindViewById<FrameLayout>(Resource.Id.contentView); while (!canSwitch)
frame.Visibility = ViewStates.Gone; await Task.Delay(10);
if (tab != "Playlist" || Playlist.instance != null)
return;
Console.WriteLine("Switching: " + canSwitch);
canSwitch = false;
TabLayout tabs = FindViewById<TabLayout>(Resource.Id.tabs); TabLayout tabs = FindViewById<TabLayout>(Resource.Id.tabs);
tabs.Visibility = ViewStates.Visible;
tabs.RemoveAllTabs();
tabs.AddTab(tabs.NewTab().SetText("Playlists"));
tabs.AddTab(tabs.NewTab().SetText("Youtube playlists"));
ViewPager pager = FindViewById<ViewPager>(Resource.Id.pager); ViewPager pager = FindViewById<ViewPager>(Resource.Id.pager);
pager.SetPadding(0, (int)Math.Round(paddinTop * 1.90f), 0, 0);
pager.ClearOnPageChangeListeners();
pager.AddOnPageChangeListener(this);
ViewPagerAdapter oldAdapter = (ViewPagerAdapter)pager.Adapter; if (Browse.instance != null)
if (oldAdapter != null)
{ {
for (int i = 0; i < oldAdapter.Count; i++) ViewPagerAdapter oldAdapter = (ViewPagerAdapter)pager.Adapter;
{ SupportFragmentManager.BeginTransaction().Remove(oldAdapter.GetItem(0)).Commit();
SupportFragmentManager.BeginTransaction().Remove(oldAdapter.GetItem(i)).Commit(); SupportFragmentManager.BeginTransaction().Remove(oldAdapter.GetItem(1)).Commit();
}
oldAdapter.Dispose(); oldAdapter.Clear();
tabs.AddTab(tabs.NewTab().SetText("Songs"));
tabs.AddTab(tabs.NewTab().SetText("Folders"));
oldAdapter.AddFragment(Playlist.NewInstance(), "Playlists");
oldAdapter.AddFragment(YtPlaylist.NewInstance(), "Youtube playlists");
pager.Adapter = oldAdapter;
pager.ClearOnPageChangeListeners();
}
else
{
FrameLayout frame = FindViewById<FrameLayout>(Resource.Id.contentView);
frame.Visibility = ViewStates.Gone;
tabs.Visibility = ViewStates.Visible;
tabs.AddTab(tabs.NewTab().SetText("Playlists"));
tabs.AddTab(tabs.NewTab().SetText("Youtube playlists"));
pager.SetPadding(0, (int)Math.Round(paddinTop * 1.90f), 0, 0);
ViewPagerAdapter adapter = new ViewPagerAdapter(SupportFragmentManager);
adapter.AddFragment(Playlist.NewInstance(), "Playlists");
adapter.AddFragment(YtPlaylist.NewInstance(), "Youtube playlists");
pager.Adapter = adapter;
tabs.SetupWithViewPager(pager);
} }
ViewPagerAdapter adapter = new ViewPagerAdapter(SupportFragmentManager); pager.AddOnPageChangeListener(this);
adapter.AddFragment(Playlist.NewInstance(), "Playlists"); pager.AddOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabs));
adapter.AddFragment(YtPlaylist.NewInstance(), "Youtube playlists");
pager.Adapter = adapter;
tabs.SetupWithViewPager(pager);
pager.CurrentItem = selectedTab; pager.CurrentItem = selectedTab;
tabs.SetScrollPosition(selectedTab, 0f, true); tabs.SetScrollPosition(selectedTab, 0f, true);
CanSwitchDelay();
} }
public void OnPageScrollStateChanged(int state) async void CanSwitchDelay()
{ {
await Task.Delay(350);
canSwitch = true;
} }
public void OnPageScrolled(int position, float positionOffset, int positionOffsetPixels) public void OnPageScrollStateChanged(int state) { }
{
} public void OnPageScrolled(int position, float positionOffset, int positionOffsetPixels) { }
public void OnPageSelected(int position) public void OnPageSelected(int position)
{ {
if (Playlist.instance == null)
return;
if(position == 0) if(position == 0)
{ {
if (Playlist.instance.isEmpty) if (Playlist.instance.isEmpty)
+2 -2
View File
@@ -418,7 +418,6 @@
<Error Condition="!Exists('..\packages\Xamarin.Android.Support.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Compat.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Android.Support.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Compat.targets'))" /> <Error Condition="!Exists('..\packages\Xamarin.Android.Support.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Compat.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Android.Support.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Compat.targets'))" />
<Error Condition="!Exists('..\packages\Xamarin.Android.Support.Core.UI.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.UI.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Android.Support.Core.UI.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.UI.targets'))" /> <Error Condition="!Exists('..\packages\Xamarin.Android.Support.Core.UI.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.UI.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Android.Support.Core.UI.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.UI.targets'))" />
<Error Condition="!Exists('..\packages\Xamarin.Android.Support.Core.Utils.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.Utils.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Android.Support.Core.Utils.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.Utils.targets'))" /> <Error Condition="!Exists('..\packages\Xamarin.Android.Support.Core.Utils.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.Utils.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Android.Support.Core.Utils.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.Utils.targets'))" />
<Error Condition="!Exists('..\packages\Xamarin.Android.Support.CustomTabs.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.CustomTabs.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Android.Support.CustomTabs.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.CustomTabs.targets'))" />
<Error Condition="!Exists('..\packages\Xamarin.Android.Support.Media.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Media.Compat.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Android.Support.Media.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Media.Compat.targets'))" /> <Error Condition="!Exists('..\packages\Xamarin.Android.Support.Media.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Media.Compat.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Android.Support.Media.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Media.Compat.targets'))" />
<Error Condition="!Exists('..\packages\Xamarin.Android.Support.Fragment.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Fragment.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Android.Support.Fragment.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Fragment.targets'))" /> <Error Condition="!Exists('..\packages\Xamarin.Android.Support.Fragment.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Fragment.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Android.Support.Fragment.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Fragment.targets'))" />
<Error Condition="!Exists('..\packages\Xamarin.Android.Support.Transition.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Transition.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Android.Support.Transition.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Transition.targets'))" /> <Error Condition="!Exists('..\packages\Xamarin.Android.Support.Transition.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Transition.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Android.Support.Transition.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Transition.targets'))" />
@@ -431,11 +430,11 @@
<Error Condition="!Exists('..\packages\Xamarin.Android.Support.v7.Preference.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.v7.Preference.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Android.Support.v7.Preference.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.v7.Preference.targets'))" /> <Error Condition="!Exists('..\packages\Xamarin.Android.Support.v7.Preference.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.v7.Preference.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Android.Support.v7.Preference.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.v7.Preference.targets'))" />
<Error Condition="!Exists('..\packages\Xamarin.Build.Download.0.4.2\build\Xamarin.Build.Download.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Build.Download.0.4.2\build\Xamarin.Build.Download.props'))" /> <Error Condition="!Exists('..\packages\Xamarin.Build.Download.0.4.2\build\Xamarin.Build.Download.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Build.Download.0.4.2\build\Xamarin.Build.Download.props'))" />
<Error Condition="!Exists('..\packages\Xamarin.Build.Download.0.4.2\build\Xamarin.Build.Download.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Build.Download.0.4.2\build\Xamarin.Build.Download.targets'))" /> <Error Condition="!Exists('..\packages\Xamarin.Build.Download.0.4.2\build\Xamarin.Build.Download.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Build.Download.0.4.2\build\Xamarin.Build.Download.targets'))" />
<Error Condition="!Exists('..\packages\Xamarin.Android.Support.CustomTabs.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.CustomTabs.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Android.Support.CustomTabs.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.CustomTabs.targets'))" />
</Target> </Target>
<Import Project="..\packages\Xamarin.Android.Support.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Compat.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Compat.targets')" /> <Import Project="..\packages\Xamarin.Android.Support.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Compat.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Compat.targets')" />
<Import Project="..\packages\Xamarin.Android.Support.Core.UI.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.UI.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Core.UI.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.UI.targets')" /> <Import Project="..\packages\Xamarin.Android.Support.Core.UI.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.UI.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Core.UI.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.UI.targets')" />
<Import Project="..\packages\Xamarin.Android.Support.Core.Utils.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.Utils.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Core.Utils.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.Utils.targets')" /> <Import Project="..\packages\Xamarin.Android.Support.Core.Utils.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.Utils.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Core.Utils.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.Utils.targets')" />
<Import Project="..\packages\Xamarin.Android.Support.CustomTabs.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.CustomTabs.targets" Condition="Exists('..\packages\Xamarin.Android.Support.CustomTabs.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.CustomTabs.targets')" />
<Import Project="..\packages\Xamarin.Android.Support.Media.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Media.Compat.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Media.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Media.Compat.targets')" /> <Import Project="..\packages\Xamarin.Android.Support.Media.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Media.Compat.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Media.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Media.Compat.targets')" />
<Import Project="..\packages\Xamarin.Android.Support.Fragment.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Fragment.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Fragment.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Fragment.targets')" /> <Import Project="..\packages\Xamarin.Android.Support.Fragment.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Fragment.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Fragment.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Fragment.targets')" />
<Import Project="..\packages\Xamarin.Android.Support.Transition.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Transition.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Transition.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Transition.targets')" /> <Import Project="..\packages\Xamarin.Android.Support.Transition.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Transition.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Transition.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Transition.targets')" />
@@ -447,6 +446,7 @@
<Import Project="..\packages\Xamarin.Android.Support.Design.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Design.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Design.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Design.targets')" /> <Import Project="..\packages\Xamarin.Android.Support.Design.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Design.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Design.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Design.targets')" />
<Import Project="..\packages\Xamarin.Android.Support.v7.Preference.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.v7.Preference.targets" Condition="Exists('..\packages\Xamarin.Android.Support.v7.Preference.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.v7.Preference.targets')" /> <Import Project="..\packages\Xamarin.Android.Support.v7.Preference.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.v7.Preference.targets" Condition="Exists('..\packages\Xamarin.Android.Support.v7.Preference.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.v7.Preference.targets')" />
<Import Project="..\packages\Xamarin.Build.Download.0.4.2\build\Xamarin.Build.Download.targets" Condition="Exists('..\packages\Xamarin.Build.Download.0.4.2\build\Xamarin.Build.Download.targets')" /> <Import Project="..\packages\Xamarin.Build.Download.0.4.2\build\Xamarin.Build.Download.targets" Condition="Exists('..\packages\Xamarin.Build.Download.0.4.2\build\Xamarin.Build.Download.targets')" />
<Import Project="..\packages\Xamarin.Android.Support.CustomTabs.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.CustomTabs.targets" Condition="Exists('..\packages\Xamarin.Android.Support.CustomTabs.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.CustomTabs.targets')" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild"> <Target Name="BeforeBuild">
@@ -41,6 +41,9 @@ namespace MusicApp.Resources.Portable_Class
public void AddEmptyView() public void AddEmptyView()
{ {
if (emptyView.Parent != null)
((ViewGroup)emptyView.Parent).RemoveView(emptyView);
Activity.AddContentView(emptyView, View.LayoutParameters); Activity.AddContentView(emptyView, View.LayoutParameters);
} }
@@ -57,6 +60,7 @@ namespace MusicApp.Resources.Portable_Class
ViewGroup rootView = Activity.FindViewById<ViewGroup>(Android.Resource.Id.Content); ViewGroup rootView = Activity.FindViewById<ViewGroup>(Android.Resource.Id.Content);
rootView.RemoveView(emptyView); rootView.RemoveView(emptyView);
} }
System.Console.WriteLine("Playlist destroyed");
base.OnDestroy(); base.OnDestroy();
instance = null; instance = null;
} }
@@ -6,21 +6,13 @@ using Android.Support.V4.App;
namespace MusicApp.Resources.Portable_Class namespace MusicApp.Resources.Portable_Class
{ {
public class ViewPagerAdapter : FragmentPagerAdapter public class ViewPagerAdapter : FragmentStatePagerAdapter
{ {
private List<Fragment> fragmentList = new List<Fragment>(); private List<Fragment> fragmentList = new List<Fragment>();
private List<string> titles = new List<string>(); private List<string> titles = new List<string>();
public ViewPagerAdapter(FragmentManager fm) : base(fm) { }
public ViewPagerAdapter(FragmentManager fm) : base(fm) protected ViewPagerAdapter(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer) { }
{
}
protected ViewPagerAdapter(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer)
{
}
public override int Count => fragmentList.Count; public override int Count => fragmentList.Count;
@@ -35,10 +27,24 @@ namespace MusicApp.Resources.Portable_Class
titles.Add(title); titles.Add(title);
} }
public void Clear()
{
fragmentList.Clear();
titles.Clear();
fragmentList = new List<Fragment>();
titles = new List<string>();
NotifyDataSetChanged();
}
public override ICharSequence GetPageTitleFormatted(int position) public override ICharSequence GetPageTitleFormatted(int position)
{ {
ICharSequence title = CharSequence.ArrayFromStringArray(new string[] { titles[position] })[0]; ICharSequence title = CharSequence.ArrayFromStringArray(new string[] { titles[position] })[0];
return title; return title;
} }
public override int GetItemPosition(Java.Lang.Object @object)
{
return PositionNone;
}
} }
} }
@@ -76,18 +76,6 @@ namespace MusicApp.Resources.Portable_Class
async void GetYoutubePlaylists() async void GetYoutubePlaylists()
{ {
if (MainActivity.instance.TokenHasExpire())
{
YoutubeEngine.youtubeService = null;
MainActivity.instance.Login();
while (YoutubeEngine.youtubeService == null)
await Task.Delay(500);
}
while (YoutubeEngine.youtubeService == null)
await Task.Delay(100);
HashMap parameters = new HashMap(); HashMap parameters = new HashMap();
parameters.Put("part", "snippet,contentDetails"); parameters.Put("part", "snippet,contentDetails");
parameters.Put("mine", "true"); parameters.Put("mine", "true");
@@ -121,6 +109,10 @@ namespace MusicApp.Resources.Portable_Class
} }
PlaylistListResponse response = await ytPlaylists.ExecuteAsync(); PlaylistListResponse response = await ytPlaylists.ExecuteAsync();
if (instance == null)
return;
playlists = new List<Song>(); playlists = new List<Song>();
for (int i = 0; i < response.Items.Count; i++) for (int i = 0; i < response.Items.Count; i++)
+60 -56
View File
@@ -1,62 +1,66 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.journaldev.tablayoutviewpager.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="match_parent"
<android.support.v7.widget.Toolbar android:fitsSystemWindows="true"
android:id="@+id/toolbar" tools:context="com.journaldev.tablayoutviewpager.MainActivity">
android:layout_width="match_parent" <android.support.design.widget.AppBarLayout
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabTextColor="@android:color/white"
app:tabSelectedTextColor="@android:color/white"
app:tabIndicatorColor="@android:color/white"
app:tabGravity="fill"
app:tabMode="fixed" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<FrameLayout
android:id="@+id/contentView"
android:layout_height="wrap_content"
android:layout_width="match_parent" />
<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:background="@android:color/white"
android:elevation="12dp"
android:layout_alignParentBottom="true" >
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottomView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="56dp" android:layout_height="wrap_content">
app:menu="@menu/bottom_items" /> <android.support.v7.widget.Toolbar
<FrameLayout android:id="@+id/toolbar"
android:layout_height="70dp" android:layout_width="match_parent"
android:visibility="gone" android:layout_height="?attr/actionBarSize"
android:layout_below="@id/bottomView" android:background="?attr/colorPrimary"
android:layout_width="match_parent" > android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
<include app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
layout="@layout/SmallPlayer" <android.support.design.widget.TabLayout
android:id="@+id/smallPlayer"/> android:id="@+id/tabs"
</FrameLayout> android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabTextColor="@android:color/white"
app:tabSelectedTextColor="@android:color/white"
app:tabIndicatorColor="@android:color/white"
app:tabGravity="fill"
app:tabMode="fixed" />
<ProgressBar
android:layout_height="2dp"
android:width="match_parent"
android:id="@+id/ytProgress"/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<FrameLayout
android:id="@+id/contentView"
android:layout_height="wrap_content"
android:layout_width="match_parent" />
<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:background="@android:color/white"
android:elevation="12dp"
android:layout_alignParentBottom="true">
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottomView"
android:layout_width="match_parent"
android:layout_height="56dp"
app:menu="@menu/bottom_items" />
<FrameLayout
android:layout_height="70dp"
android:visibility="gone"
android:layout_below="@id/bottomView"
android:layout_width="match_parent">
<include
layout="@layout/SmallPlayer"
android:id="@+id/smallPlayer" />
</FrameLayout>
</RelativeLayout>
</RelativeLayout> </RelativeLayout>
</RelativeLayout>
</android.support.design.widget.CoordinatorLayout> </android.support.design.widget.CoordinatorLayout>