mirror of
https://github.com/zoriya/Opus.git
synced 2026-06-06 07:38:45 +00:00
bottom navigation bar bugs solved
This commit is contained in:
+101
-57
@@ -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)
|
||||||
|
|||||||
@@ -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++)
|
||||||
|
|||||||
@@ -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>
|
||||||
Reference in New Issue
Block a user