mirror of
https://github.com/zoriya/Opus.git
synced 2026-06-08 00:10:28 +00:00
Download preference recreated
This commit is contained in:
@@ -856,7 +856,7 @@ namespace MusicApp
|
||||
{
|
||||
Browse.instance?.PopulateList();
|
||||
Playlist.instance?.PopulateView();
|
||||
if (Browse.instance == null && Playlist.instance == null && PreferencesFragment.instance == null)
|
||||
if (Browse.instance == null && Playlist.instance == null && PreferencesFragment.instance == null && Preferences.instance == null)
|
||||
LocalPlay(sender, new EventArgs());
|
||||
}
|
||||
|
||||
|
||||
@@ -100,22 +100,22 @@
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.11.0.1-beta3\lib\netstandard2.0\Newtonsoft.Json.dll</HintPath>
|
||||
<HintPath>..\packages\Newtonsoft.Json.11.0.1\lib\netstandard2.0\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PCLCrypto, Version=2.0.0.0, Culture=neutral, PublicKeyToken=d4421c8a4786956c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\PCLCrypto.2.0.147\lib\MonoAndroid23\PCLCrypto.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PInvoke.BCrypt, Version=0.5.0.0, Culture=neutral, PublicKeyToken=9e300f9f87f04a7a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\PInvoke.BCrypt.0.5.111\lib\portable-net45+win8+wpa81\PInvoke.BCrypt.dll</HintPath>
|
||||
<HintPath>..\packages\PInvoke.BCrypt.0.5.126\lib\portable-net45+win8+wpa81\PInvoke.BCrypt.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PInvoke.Kernel32, Version=0.5.0.0, Culture=neutral, PublicKeyToken=9e300f9f87f04a7a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\PInvoke.Kernel32.0.5.111\lib\portable-net45+win8+wpa81\PInvoke.Kernel32.dll</HintPath>
|
||||
<HintPath>..\packages\PInvoke.Kernel32.0.5.126\lib\portable-net45+win8+wpa81\PInvoke.Kernel32.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PInvoke.NCrypt, Version=0.5.0.0, Culture=neutral, PublicKeyToken=9e300f9f87f04a7a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\PInvoke.NCrypt.0.5.111\lib\portable-net45+win8+wpa81\PInvoke.NCrypt.dll</HintPath>
|
||||
<HintPath>..\packages\PInvoke.NCrypt.0.5.126\lib\portable-net45+win8+wpa81\PInvoke.NCrypt.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PInvoke.Windows.Core, Version=0.5.0.0, Culture=neutral, PublicKeyToken=9e300f9f87f04a7a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\PInvoke.Windows.Core.0.5.111\lib\portable-net45+win8+wpa81\PInvoke.Windows.Core.dll</HintPath>
|
||||
<HintPath>..\packages\PInvoke.Windows.Core.0.5.126\lib\portable-net45+win8+wpa81\PInvoke.Windows.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Square.OkHttp, Version=2.7.5.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Square.OkHttp.2.7.5.0\lib\MonoAndroid\Square.OkHttp.dll</HintPath>
|
||||
@@ -214,6 +214,7 @@
|
||||
<Compile Include="Resources\Portable Class\Adapter.cs" />
|
||||
<Compile Include="Resources\Portable Class\Browse.cs" />
|
||||
<Compile Include="Resources\Portable Class\Downloader.cs" />
|
||||
<Compile Include="Resources\Portable Class\DownloadFragment.cs" />
|
||||
<Compile Include="Resources\Portable Class\EditMetaData.cs" />
|
||||
<Compile Include="Resources\Portable Class\FolderAdapter.cs" />
|
||||
<Compile Include="Resources\Portable Class\FolderBrowse.cs" />
|
||||
@@ -496,6 +497,11 @@
|
||||
<ItemGroup>
|
||||
<AndroidResource Include="Resources\values\attars.xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AndroidResource Include="Resources\layout\PreferenceContent.xml">
|
||||
<SubType>Designer</SubType>
|
||||
</AndroidResource>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
|
||||
@@ -0,0 +1,214 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Android.App;
|
||||
using Android.Content;
|
||||
using Android.OS;
|
||||
using Android.Preferences;
|
||||
using Android.Runtime;
|
||||
using Android.Support.V7.Widget;
|
||||
using Android.Support.V7.Widget.Helper;
|
||||
using Android.Views;
|
||||
using Android.Widget;
|
||||
using Java.IO;
|
||||
using MusicApp.Resources.values;
|
||||
|
||||
namespace MusicApp.Resources.Portable_Class
|
||||
{
|
||||
public class DownloadFragment : ListFragment
|
||||
{
|
||||
public static DownloadFragment instance;
|
||||
public string path;
|
||||
|
||||
private List<Folder> folders;
|
||||
private FolderAdapter adapter;
|
||||
|
||||
|
||||
public override void OnActivityCreated(Bundle savedInstanceState)
|
||||
{
|
||||
base.OnActivityCreated(savedInstanceState);
|
||||
folders = ListFolders();
|
||||
adapter = new FolderAdapter(Application.Context, Resource.Layout.folderList, folders);
|
||||
ListView.FastScrollEnabled = true;
|
||||
ListView.SmoothScrollbarEnabled = true;
|
||||
ListView.Divider = null;
|
||||
ListView.ItemClick += ListView_ItemClick;
|
||||
ListView.DividerHeight = 0;
|
||||
ListAdapter = adapter;
|
||||
}
|
||||
|
||||
public static Fragment NewInstance()
|
||||
{
|
||||
instance = new DownloadFragment { Arguments = new Bundle() };
|
||||
return instance;
|
||||
}
|
||||
|
||||
public override void OnDestroy()
|
||||
{
|
||||
base.OnDestroy();
|
||||
instance = null;
|
||||
}
|
||||
|
||||
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
|
||||
{
|
||||
View view = base.OnCreateView(inflater, container, savedInstanceState);
|
||||
return view;
|
||||
}
|
||||
|
||||
private void BackNavigation(object sender, Android.Support.V7.Widget.Toolbar.NavigationClickEventArgs e)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
List<Folder> ListFolders()
|
||||
{
|
||||
File folderPath = Android.OS.Environment.ExternalStorageDirectory;
|
||||
File[] file = folderPath.ListFiles();
|
||||
|
||||
if (file == null)
|
||||
{
|
||||
System.Console.WriteLine("&file is null");
|
||||
return new List<Folder>();
|
||||
}
|
||||
|
||||
List<Folder> folders = new List<Folder>();
|
||||
|
||||
for (int i = 0; i < file.Length; i++)
|
||||
{
|
||||
if (file[i].IsDirectory)
|
||||
{
|
||||
bool asChild = false;
|
||||
File[] childs = file[i].ListFiles();
|
||||
for (int j = 0; j < childs.Length; j++)
|
||||
{
|
||||
if (!childs[j].IsDirectory)
|
||||
continue;
|
||||
|
||||
asChild = true;
|
||||
break;
|
||||
}
|
||||
|
||||
Folder folder = new Folder(file[i].Name, file[i].Path, asChild);
|
||||
folders.Add(folder);
|
||||
}
|
||||
}
|
||||
|
||||
List<Folder> folderList = folders.OrderBy(x => x.name).ToList();
|
||||
folders = folderList;
|
||||
return folders;
|
||||
}
|
||||
|
||||
private void ListView_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
|
||||
{
|
||||
Folder folder = folders[e.Position];
|
||||
if (folder.asChild)
|
||||
{
|
||||
if (!folder.isExtended)
|
||||
ExpandFolder(folder);
|
||||
else
|
||||
UnexpandFolder(folder);
|
||||
}
|
||||
else
|
||||
Select(folder, e.View);
|
||||
}
|
||||
|
||||
public void Used_Click(object sender, EventArgs e)
|
||||
{
|
||||
RadioButton radio = (RadioButton)sender;
|
||||
adapter.selectedPosition = (int)radio.GetTag(Resource.Id.folderName);
|
||||
adapter.NotifyDataSetChanged();
|
||||
|
||||
path = (string)radio.GetTag(Resource.Id.folderUsed);
|
||||
}
|
||||
|
||||
private void Select(Folder folder, View view)
|
||||
{
|
||||
path = folder.uri;
|
||||
view.FindViewById<RadioButton>(Resource.Id.folderUsed).CallOnClick();
|
||||
}
|
||||
|
||||
private void ExpandFolder(Folder folder)
|
||||
{
|
||||
int index = folders.IndexOf(folder);
|
||||
List<Folder> childs = ListChilds(folder.uri);
|
||||
|
||||
for (int i = 0; i < childs.Count; i++)
|
||||
{
|
||||
childs[i].Padding = folder.Padding + 30;
|
||||
adapter.Insert(childs[i], index + i + 1);
|
||||
}
|
||||
|
||||
folders.InsertRange(index + 1, childs);
|
||||
folders[index].isExtended = true;
|
||||
folders[index].childCount = childs.Count;
|
||||
adapter.NotifyDataSetChanged();
|
||||
|
||||
if (index < adapter.selectedPosition)
|
||||
adapter.selectedPosition += childs.Count;
|
||||
}
|
||||
|
||||
private void UnexpandFolder(Folder folder)
|
||||
{
|
||||
int index = folders.IndexOf(folder);
|
||||
int count = folder.childCount;
|
||||
|
||||
folders[index].isExtended = false;
|
||||
|
||||
for (int i = 0; i < count + 1; i++)
|
||||
{
|
||||
System.Console.WriteLine("&File name : " + folders[index + i].name);
|
||||
|
||||
if(folders[index + i].isExtended)
|
||||
count += folders[index + i].childCount;
|
||||
|
||||
System.Console.WriteLine("&Count : " + count);
|
||||
|
||||
adapter.Remove(folders[index + i]);
|
||||
}
|
||||
|
||||
if(index < adapter.selectedPosition && adapter.selectedPosition < index + count)
|
||||
{
|
||||
adapter.selectedPosition = -1;
|
||||
path = null;
|
||||
}
|
||||
if (index < adapter.selectedPosition)
|
||||
adapter.selectedPosition -= count;
|
||||
|
||||
folders.RemoveRange(index + 1, count);
|
||||
}
|
||||
|
||||
List<Folder> ListChilds(string path)
|
||||
{
|
||||
File folderPath = new File(path);
|
||||
File[] files = folderPath.ListFiles();
|
||||
List<Folder> folders = new List<Folder>();
|
||||
|
||||
for (int i = 0; i < files.Length; i++)
|
||||
{
|
||||
if (files[i].IsDirectory)
|
||||
{
|
||||
bool asChild = false;
|
||||
File[] childs = files[i].ListFiles();
|
||||
|
||||
for (int j = 0; j < childs.Length; j++)
|
||||
{
|
||||
if (!childs[j].IsDirectory)
|
||||
continue;
|
||||
|
||||
asChild = true;
|
||||
break;
|
||||
}
|
||||
|
||||
Folder folder = new Folder(files[i].Name, files[i].Path, asChild);
|
||||
folders.Add(folder);
|
||||
}
|
||||
}
|
||||
|
||||
List<Folder> folderList = folders.OrderBy(x => x.name).ToList();
|
||||
folders = folderList;
|
||||
return folders;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -60,12 +60,17 @@ namespace MusicApp.Resources.Portable_Class
|
||||
convertView.FindViewById<RelativeLayout>(Resource.Id.folderList).SetPadding(folders[position].Padding, 0, 0, 0);
|
||||
|
||||
holder.used.SetTag(Resource.Id.folderUsed, folders[position].uri);
|
||||
holder.used.Click += PreferencesFragment.instance.Used_Click;
|
||||
|
||||
holder.used.Click += DownloadFragment.instance.Used_Click;
|
||||
holder.used.Checked = position == selectedPosition;
|
||||
holder.used.SetTag(Resource.Id.folderName, position);
|
||||
|
||||
convertView.SetBackgroundColor(Color.White);
|
||||
if(MainActivity.Theme == 1)
|
||||
{
|
||||
holder.Name.SetTextColor(Color.White);
|
||||
holder.expandChild.SetColorFilter(Color.White);
|
||||
//holder.used.ButtonTInt
|
||||
}
|
||||
|
||||
return convertView;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,9 +5,6 @@ using Android.OS;
|
||||
using Android.Preferences;
|
||||
using Android.Views;
|
||||
using Android.Widget;
|
||||
using Java.IO;
|
||||
using MusicApp.Resources.values;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using static Android.Provider.MediaStore.Audio;
|
||||
@@ -19,6 +16,9 @@ namespace MusicApp.Resources.Portable_Class
|
||||
[Activity(Label = "Settings", Theme = "@style/Theme")]
|
||||
public class Preferences : PreferenceActivity
|
||||
{
|
||||
public static Preferences instance;
|
||||
public Toolbar toolbar;
|
||||
|
||||
protected override void OnCreate(Bundle savedInstanceState)
|
||||
{
|
||||
base.OnCreate(savedInstanceState);
|
||||
@@ -26,30 +26,45 @@ namespace MusicApp.Resources.Portable_Class
|
||||
if(MainActivity.Theme == 1)
|
||||
SetTheme(Resource.Style.DarkPreferences);
|
||||
|
||||
instance = this;
|
||||
|
||||
FragmentManager.BeginTransaction().Replace(Android.Resource.Id.Content, new PreferencesFragment()).Commit();
|
||||
}
|
||||
|
||||
protected override void OnDestroy()
|
||||
{
|
||||
base.OnDestroy();
|
||||
instance = null;
|
||||
}
|
||||
|
||||
protected override void OnPostCreate(Bundle savedInstanceState)
|
||||
{
|
||||
base.OnPostCreate(savedInstanceState);
|
||||
LinearLayout root = (LinearLayout) FindViewById(Android.Resource.Id.List).Parent.Parent.Parent;
|
||||
Toolbar toolbar = (Toolbar) LayoutInflater.From(this).Inflate(Resource.Layout.PreferenceToolbar, root, false);
|
||||
LinearLayout root = (LinearLayout)FindViewById(Android.Resource.Id.List).Parent.Parent.Parent;
|
||||
toolbar = (Toolbar)LayoutInflater.From(this).Inflate(Resource.Layout.PreferenceToolbar, root, false);
|
||||
root.AddView(toolbar, 0);
|
||||
toolbar.Title = "Settings";
|
||||
toolbar.NavigationClick += (sender, e) => { Finish(); };
|
||||
toolbar.NavigationClick += (sender, e) =>
|
||||
{
|
||||
if(DownloadFragment.instance == null)
|
||||
Finish();
|
||||
else
|
||||
{
|
||||
ISharedPreferences prefManager = PreferenceManager.GetDefaultSharedPreferences(this);
|
||||
ISharedPreferencesEditor editor = prefManager.Edit();
|
||||
editor.PutString("downloadPath", DownloadFragment.instance.path);
|
||||
editor.Apply();
|
||||
FragmentManager.BeginTransaction().Replace(Android.Resource.Id.ListContainer, new PreferencesFragment()).AddToBackStack(null).Commit();
|
||||
DownloadFragment.instance = null;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public class PreferencesFragment : PreferenceFragment
|
||||
{
|
||||
public static PreferencesFragment instance;
|
||||
|
||||
//DownloadPath
|
||||
private List<Folder> folders;
|
||||
private FolderAdapter adapter;
|
||||
private ListView folderList;
|
||||
private string path;
|
||||
private AlertDialog dialog;
|
||||
private View view;
|
||||
|
||||
//Local Shortcut
|
||||
private int LSposition;
|
||||
@@ -98,7 +113,7 @@ namespace MusicApp.Resources.Portable_Class
|
||||
|
||||
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
|
||||
{
|
||||
View view = base.OnCreateView(inflater, container, savedInstanceState);
|
||||
view = base.OnCreateView(inflater, container, savedInstanceState);
|
||||
view.SetPadding(0, MainActivity.instance.SupportActionBar.Height, 0, 0);
|
||||
return view;
|
||||
}
|
||||
@@ -106,173 +121,8 @@ namespace MusicApp.Resources.Portable_Class
|
||||
#region Download location
|
||||
private void DownloadClick(object sender, Preference.PreferenceClickEventArgs e)
|
||||
{
|
||||
folders = ListFolders();
|
||||
adapter = new FolderAdapter(Application.Context, Resource.Layout.folderList, folders);
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(Activity, MainActivity.dialogTheme);
|
||||
builder.SetTitle("Choose download location:");
|
||||
builder.SetAdapter(adapter, (senderAlert, args) => { });
|
||||
builder.SetPositiveButton("Ok", (senders, args) => { SetDownloadFolder(); });
|
||||
builder.SetNegativeButton("Cancel", (s, args) => { return; });
|
||||
dialog = builder.Create();
|
||||
|
||||
folderList = dialog.ListView;
|
||||
|
||||
dialog.ListView.FastScrollEnabled = true;
|
||||
dialog.ListView.SmoothScrollbarEnabled = true;
|
||||
dialog.ListView.ItemClick += ListView_ItemClick;
|
||||
dialog.Show();
|
||||
}
|
||||
|
||||
private void ListView_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
|
||||
{
|
||||
Folder folder = folders[e.Position];
|
||||
if (folder.asChild)
|
||||
{
|
||||
if (!folder.isExtended)
|
||||
ExpandFolder(folder);
|
||||
else
|
||||
UnexpandFolder(folder);
|
||||
}
|
||||
else
|
||||
Select(folder);
|
||||
}
|
||||
|
||||
void ExpandFolder(Folder folder)
|
||||
{
|
||||
int index = folders.IndexOf(folder) + 1;
|
||||
List<Folder> childs = ListChilds(folder.uri);
|
||||
for (int i = 0; i < childs.Count; i++)
|
||||
{
|
||||
childs[i].Padding = folders[index - 1].Padding;
|
||||
childs[i].Padding += 30;
|
||||
folders.Insert(index + i, childs[i]);
|
||||
adapter.Insert(childs[i], index + i);
|
||||
}
|
||||
|
||||
if (index - 1 < adapter.selectedPosition)
|
||||
adapter.selectedPosition += childs.Count;
|
||||
folders[index - 1].isExtended = true;
|
||||
folders[index - 1].childCount = childs.Count;
|
||||
|
||||
adapter.NotifyDataSetChanged();
|
||||
}
|
||||
|
||||
void UnexpandFolder(Folder folder)
|
||||
{
|
||||
int index = folders.IndexOf(folder);
|
||||
int count = folders[index].childCount;
|
||||
folders[index].isExtended = false;
|
||||
for (int i = index + 1; i < index + count; i++)
|
||||
{
|
||||
adapter.Remove(folders[i]);
|
||||
}
|
||||
|
||||
if (adapter.selectedPosition != index && adapter.selectedPosition > index - count && adapter.selectedPosition < index + count)
|
||||
adapter.selectedPosition = -1;
|
||||
else if (adapter.selectedPosition != index)
|
||||
adapter.selectedPosition -= count;
|
||||
|
||||
folders.RemoveRange(index + 1, count);
|
||||
adapter.NotifyDataSetChanged();
|
||||
|
||||
dialog.ListView.ScrollBarSize = 10;
|
||||
}
|
||||
|
||||
void Select(Folder folder)
|
||||
{
|
||||
path = folder.uri;
|
||||
}
|
||||
|
||||
public void Used_Click(object sender, EventArgs e)
|
||||
{
|
||||
RadioButton radio = (RadioButton) sender;
|
||||
adapter.selectedPosition = (int)radio.GetTag(Resource.Id.folderName);
|
||||
adapter.NotifyDataSetChanged();
|
||||
|
||||
path = (string)radio.GetTag(Resource.Id.folderUsed);
|
||||
}
|
||||
|
||||
void SetDownloadFolder()
|
||||
{
|
||||
ISharedPreferences pref = PreferenceManager.GetDefaultSharedPreferences(Android.App.Application.Context);
|
||||
ISharedPreferencesEditor editor = pref.Edit();
|
||||
editor.PutString("downloadPath", path);
|
||||
editor.Apply();
|
||||
|
||||
Preference prefButton = FindPreference("downloadPath");
|
||||
prefButton.Summary = path;
|
||||
}
|
||||
|
||||
List<Folder> ListFolders()
|
||||
{
|
||||
File folderPath = Android.OS.Environment.ExternalStorageDirectory;
|
||||
|
||||
File[] file = folderPath.ListFiles();
|
||||
|
||||
if (file == null)
|
||||
{
|
||||
System.Console.WriteLine("&file is null");
|
||||
return new List<Folder>();
|
||||
}
|
||||
|
||||
List<Folder> folders = new List<Folder>();
|
||||
for (int i = 0; i < file.Length; i++)
|
||||
{
|
||||
if (file[i].IsDirectory)
|
||||
{
|
||||
bool asChild = false;
|
||||
|
||||
File[] childs = file[i].ListFiles();
|
||||
|
||||
for (int j = 0; i < childs.Length; i++)
|
||||
{
|
||||
if (childs[j].IsDirectory)
|
||||
{
|
||||
asChild = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Folder folder = new Folder(file[i].Name, file[i].Path, asChild);
|
||||
|
||||
folders.Add(folder);
|
||||
}
|
||||
}
|
||||
return folders;
|
||||
}
|
||||
|
||||
List<Folder> ListChilds(string path)
|
||||
{
|
||||
File folderPath = new File(path);
|
||||
|
||||
File[] files = folderPath.ListFiles();
|
||||
|
||||
List<Folder> folders = new List<Folder>();
|
||||
|
||||
for (int i = 0; i < files.Length; i++)
|
||||
{
|
||||
if (files[i].IsDirectory)
|
||||
{
|
||||
bool asChild = false;
|
||||
|
||||
File[] childs = files[i].ListFiles();
|
||||
|
||||
for (int j = 0; j < childs.Length; j++)
|
||||
{
|
||||
if (childs[j].IsDirectory)
|
||||
{
|
||||
asChild = true;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
Folder folder = new Folder(files[i].Name, files[i].Path, asChild);
|
||||
|
||||
folders.Add(folder);
|
||||
}
|
||||
}
|
||||
return folders;
|
||||
FragmentManager.BeginTransaction().Replace(Android.Resource.Id.ListContainer, DownloadFragment.NewInstance()).AddToBackStack(null).Commit();
|
||||
instance = null;
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
Generated
+85
-76
@@ -2814,6 +2814,9 @@ namespace MusicApp
|
||||
// aapt resource value: 0x7f080046
|
||||
public const int META = 2131230790;
|
||||
|
||||
// aapt resource value: 0x7f0800f6
|
||||
public const int PreferenceScreen = 2131230966;
|
||||
|
||||
// aapt resource value: 0x7f080047
|
||||
public const int SHIFT = 2131230791;
|
||||
|
||||
@@ -2883,8 +2886,8 @@ namespace MusicApp
|
||||
// aapt resource value: 0x7f08003d
|
||||
public const int add = 2131230781;
|
||||
|
||||
// aapt resource value: 0x7f080104
|
||||
public const int albumArt = 2131230980;
|
||||
// aapt resource value: 0x7f080106
|
||||
public const int albumArt = 2131230982;
|
||||
|
||||
// aapt resource value: 0x7f080087
|
||||
public const int alertTitle = 2131230855;
|
||||
@@ -2895,8 +2898,8 @@ namespace MusicApp
|
||||
// aapt resource value: 0x7f080049
|
||||
public const int always = 2131230793;
|
||||
|
||||
// aapt resource value: 0x7f080106
|
||||
public const int artist = 2131230982;
|
||||
// aapt resource value: 0x7f080108
|
||||
public const int artist = 2131230984;
|
||||
|
||||
// aapt resource value: 0x7f080067
|
||||
public const int async = 2131230823;
|
||||
@@ -2919,8 +2922,8 @@ namespace MusicApp
|
||||
// aapt resource value: 0x7f0800ca
|
||||
public const int bottomView = 2131230922;
|
||||
|
||||
// aapt resource value: 0x7f08010e
|
||||
public const int browseLayout = 2131230990;
|
||||
// aapt resource value: 0x7f080110
|
||||
public const int browseLayout = 2131230992;
|
||||
|
||||
// aapt resource value: 0x7f0800a3
|
||||
public const int browseList = 2131230883;
|
||||
@@ -3006,8 +3009,8 @@ namespace MusicApp
|
||||
// aapt resource value: 0x7f0800ee
|
||||
public const int downFAB = 2131230958;
|
||||
|
||||
// aapt resource value: 0x7f08010f
|
||||
public const int downloadLayout = 2131230991;
|
||||
// aapt resource value: 0x7f080111
|
||||
public const int downloadLayout = 2131230993;
|
||||
|
||||
// aapt resource value: 0x7f080095
|
||||
public const int edit_query = 2131230869;
|
||||
@@ -3174,8 +3177,8 @@ namespace MusicApp
|
||||
// aapt resource value: 0x7f080017
|
||||
public const int line1 = 2131230743;
|
||||
|
||||
// aapt resource value: 0x7f08010a
|
||||
public const int line2 = 2131230986;
|
||||
// aapt resource value: 0x7f08010c
|
||||
public const int line2 = 2131230988;
|
||||
|
||||
// aapt resource value: 0x7f080018
|
||||
public const int line3 = 2131230744;
|
||||
@@ -3189,17 +3192,17 @@ namespace MusicApp
|
||||
// aapt resource value: 0x7f080078
|
||||
public const int list_item = 2131230840;
|
||||
|
||||
// aapt resource value: 0x7f0800f6
|
||||
public const int localPlay = 2131230966;
|
||||
// aapt resource value: 0x7f0800f8
|
||||
public const int localPlay = 2131230968;
|
||||
|
||||
// aapt resource value: 0x7f08010c
|
||||
public const int masked = 2131230988;
|
||||
// aapt resource value: 0x7f08010e
|
||||
public const int masked = 2131230990;
|
||||
|
||||
// aapt resource value: 0x7f0800d3
|
||||
public const int media_actions = 2131230931;
|
||||
|
||||
// aapt resource value: 0x7f080109
|
||||
public const int message = 2131230985;
|
||||
// aapt resource value: 0x7f08010b
|
||||
public const int message = 2131230987;
|
||||
|
||||
// aapt resource value: 0x7f0800ba
|
||||
public const int metadataAlbum = 2131230906;
|
||||
@@ -3228,14 +3231,14 @@ namespace MusicApp
|
||||
// aapt resource value: 0x7f080064
|
||||
public const int mini = 2131230820;
|
||||
|
||||
// aapt resource value: 0x7f080108
|
||||
public const int moreButton = 2131230984;
|
||||
// aapt resource value: 0x7f08010a
|
||||
public const int moreButton = 2131230986;
|
||||
|
||||
// aapt resource value: 0x7f080038
|
||||
public const int multiply = 2131230776;
|
||||
|
||||
// aapt resource value: 0x7f08010d
|
||||
public const int musicLayout = 2131230989;
|
||||
// aapt resource value: 0x7f08010f
|
||||
public const int musicLayout = 2131230991;
|
||||
|
||||
// aapt resource value: 0x7f0800ad
|
||||
public const int navigation_header_container = 2131230893;
|
||||
@@ -3315,32 +3318,35 @@ namespace MusicApp
|
||||
// aapt resource value: 0x7f0800e7
|
||||
public const int playerTitle = 2131230951;
|
||||
|
||||
// aapt resource value: 0x7f080110
|
||||
public const int playlistLayout = 2131230992;
|
||||
// aapt resource value: 0x7f080112
|
||||
public const int playlistLayout = 2131230994;
|
||||
|
||||
// aapt resource value: 0x7f0800a4
|
||||
public const int playlistName = 2131230884;
|
||||
|
||||
// aapt resource value: 0x7f0800f5
|
||||
public const int preferenceContent = 2131230965;
|
||||
|
||||
// aapt resource value: 0x7f080006
|
||||
public const int progress_circular = 2131230726;
|
||||
|
||||
// aapt resource value: 0x7f080007
|
||||
public const int progress_horizontal = 2131230727;
|
||||
|
||||
// aapt resource value: 0x7f0800f8
|
||||
public const int quickPlay = 2131230968;
|
||||
// aapt resource value: 0x7f0800fa
|
||||
public const int quickPlay = 2131230970;
|
||||
|
||||
// aapt resource value: 0x7f0800f5
|
||||
public const int quickPlayLinear = 2131230965;
|
||||
// aapt resource value: 0x7f0800f7
|
||||
public const int quickPlayLinear = 2131230967;
|
||||
|
||||
// aapt resource value: 0x7f08008c
|
||||
public const int radio = 2131230860;
|
||||
|
||||
// aapt resource value: 0x7f0800f9
|
||||
public const int recycler = 2131230969;
|
||||
// aapt resource value: 0x7f0800fb
|
||||
public const int recycler = 2131230971;
|
||||
|
||||
// aapt resource value: 0x7f080103
|
||||
public const int reorder = 2131230979;
|
||||
// aapt resource value: 0x7f080105
|
||||
public const int reorder = 2131230981;
|
||||
|
||||
// aapt resource value: 0x7f08005b
|
||||
public const int right = 2131230811;
|
||||
@@ -3378,8 +3384,8 @@ namespace MusicApp
|
||||
// aapt resource value: 0x7f080066
|
||||
public const int scrollable = 2131230822;
|
||||
|
||||
// aapt resource value: 0x7f0800fa
|
||||
public const int search = 2131230970;
|
||||
// aapt resource value: 0x7f0800fc
|
||||
public const int search = 2131230972;
|
||||
|
||||
// aapt resource value: 0x7f080097
|
||||
public const int search_badge = 2131230871;
|
||||
@@ -3420,8 +3426,8 @@ namespace MusicApp
|
||||
// aapt resource value: 0x7f0800a1
|
||||
public const int select_dialog_listview = 2131230881;
|
||||
|
||||
// aapt resource value: 0x7f080111
|
||||
public const int settings = 2131230993;
|
||||
// aapt resource value: 0x7f080113
|
||||
public const int settings = 2131230995;
|
||||
|
||||
// aapt resource value: 0x7f08008b
|
||||
public const int shortcut = 2131230859;
|
||||
@@ -3456,29 +3462,29 @@ namespace MusicApp
|
||||
// aapt resource value: 0x7f0800ed
|
||||
public const int songTimer = 2131230957;
|
||||
|
||||
// aapt resource value: 0x7f0800fc
|
||||
public const int spArt = 2131230972;
|
||||
|
||||
// aapt resource value: 0x7f0800fe
|
||||
public const int spArtist = 2131230974;
|
||||
|
||||
// aapt resource value: 0x7f0800fb
|
||||
public const int spContainer = 2131230971;
|
||||
|
||||
// aapt resource value: 0x7f080101
|
||||
public const int spLast = 2131230977;
|
||||
|
||||
// aapt resource value: 0x7f0800ff
|
||||
public const int spNext = 2131230975;
|
||||
public const int spArt = 2131230974;
|
||||
|
||||
// aapt resource value: 0x7f080100
|
||||
public const int spPlay = 2131230976;
|
||||
|
||||
// aapt resource value: 0x7f080102
|
||||
public const int spProgress = 2131230978;
|
||||
public const int spArtist = 2131230976;
|
||||
|
||||
// aapt resource value: 0x7f0800fd
|
||||
public const int spTitle = 2131230973;
|
||||
public const int spContainer = 2131230973;
|
||||
|
||||
// aapt resource value: 0x7f080103
|
||||
public const int spLast = 2131230979;
|
||||
|
||||
// aapt resource value: 0x7f080101
|
||||
public const int spNext = 2131230977;
|
||||
|
||||
// aapt resource value: 0x7f080102
|
||||
public const int spPlay = 2131230978;
|
||||
|
||||
// aapt resource value: 0x7f080104
|
||||
public const int spProgress = 2131230980;
|
||||
|
||||
// aapt resource value: 0x7f0800ff
|
||||
public const int spTitle = 2131230975;
|
||||
|
||||
// aapt resource value: 0x7f08007b
|
||||
public const int spacer = 2131230843;
|
||||
@@ -3531,8 +3537,8 @@ namespace MusicApp
|
||||
// aapt resource value: 0x7f08001a
|
||||
public const int text2 = 2131230746;
|
||||
|
||||
// aapt resource value: 0x7f080105
|
||||
public const int textLayout = 2131230981;
|
||||
// aapt resource value: 0x7f080107
|
||||
public const int textLayout = 2131230983;
|
||||
|
||||
// aapt resource value: 0x7f080081
|
||||
public const int textSpacerNoButtons = 2131230849;
|
||||
@@ -3603,8 +3609,8 @@ namespace MusicApp
|
||||
// aapt resource value: 0x7f080016
|
||||
public const int view_offset_helper = 2131230742;
|
||||
|
||||
// aapt resource value: 0x7f08010b
|
||||
public const int visible = 2131230987;
|
||||
// aapt resource value: 0x7f08010d
|
||||
public const int visible = 2131230989;
|
||||
|
||||
// aapt resource value: 0x7f0800a2
|
||||
public const int webview = 2131230882;
|
||||
@@ -3615,11 +3621,11 @@ namespace MusicApp
|
||||
// aapt resource value: 0x7f08003f
|
||||
public const int wrap_content = 2131230783;
|
||||
|
||||
// aapt resource value: 0x7f080107
|
||||
public const int youtubeIcon = 2131230983;
|
||||
// aapt resource value: 0x7f080109
|
||||
public const int youtubeIcon = 2131230985;
|
||||
|
||||
// aapt resource value: 0x7f0800f7
|
||||
public const int ytPlay = 2131230967;
|
||||
// aapt resource value: 0x7f0800f9
|
||||
public const int ytPlay = 2131230969;
|
||||
|
||||
// aapt resource value: 0x7f0800c4
|
||||
public const int ytProgress = 2131230916;
|
||||
@@ -3933,52 +3939,55 @@ namespace MusicApp
|
||||
public const int preference_widget_switch_compat = 2130903123;
|
||||
|
||||
// aapt resource value: 0x7f030054
|
||||
public const int Preferences = 2130903124;
|
||||
public const int PreferenceContent = 2130903124;
|
||||
|
||||
// aapt resource value: 0x7f030055
|
||||
public const int PreferenceToolbar = 2130903125;
|
||||
public const int Preferences = 2130903125;
|
||||
|
||||
// aapt resource value: 0x7f030056
|
||||
public const int QuickPlayLayout = 2130903126;
|
||||
public const int PreferenceToolbar = 2130903126;
|
||||
|
||||
// aapt resource value: 0x7f030057
|
||||
public const int RecyclerFragment = 2130903127;
|
||||
public const int QuickPlayLayout = 2130903127;
|
||||
|
||||
// aapt resource value: 0x7f030058
|
||||
public const int search_layout = 2130903128;
|
||||
public const int RecyclerFragment = 2130903128;
|
||||
|
||||
// aapt resource value: 0x7f030059
|
||||
public const int select_dialog_item_material = 2130903129;
|
||||
public const int search_layout = 2130903129;
|
||||
|
||||
// aapt resource value: 0x7f03005a
|
||||
public const int select_dialog_multichoice_material = 2130903130;
|
||||
public const int select_dialog_item_material = 2130903130;
|
||||
|
||||
// aapt resource value: 0x7f03005b
|
||||
public const int select_dialog_singlechoice_material = 2130903131;
|
||||
public const int select_dialog_multichoice_material = 2130903131;
|
||||
|
||||
// aapt resource value: 0x7f03005c
|
||||
public const int SmallPlayer = 2130903132;
|
||||
public const int select_dialog_singlechoice_material = 2130903132;
|
||||
|
||||
// aapt resource value: 0x7f03005d
|
||||
public const int SongList = 2130903133;
|
||||
public const int SmallPlayer = 2130903133;
|
||||
|
||||
// aapt resource value: 0x7f03005e
|
||||
public const int support_simple_spinner_dropdown_item = 2130903134;
|
||||
public const int SongList = 2130903134;
|
||||
|
||||
// aapt resource value: 0x7f03005f
|
||||
public const int tabs = 2130903135;
|
||||
public const int support_simple_spinner_dropdown_item = 2130903135;
|
||||
|
||||
// aapt resource value: 0x7f030060
|
||||
public const int TimerLayout = 2130903136;
|
||||
public const int tabs = 2130903136;
|
||||
|
||||
// aapt resource value: 0x7f030061
|
||||
public const int tooltip = 2130903137;
|
||||
public const int TimerLayout = 2130903137;
|
||||
|
||||
// aapt resource value: 0x7f030062
|
||||
public const int TwoLineLayout = 2130903138;
|
||||
public const int tooltip = 2130903138;
|
||||
|
||||
// aapt resource value: 0x7f030063
|
||||
public const int YtList = 2130903139;
|
||||
public const int TwoLineLayout = 2130903139;
|
||||
|
||||
// aapt resource value: 0x7f030064
|
||||
public const int YtList = 2130903140;
|
||||
|
||||
static Layout()
|
||||
{
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
<android.support.v7.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:background="?attr/colorPrimary"
|
||||
app:navigationIcon="?attr/homeAsUpIndicator"
|
||||
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
|
||||
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:id="@+id/preferenceContent" />
|
||||
</LinearLayout>
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/PreferenceScreen">
|
||||
<PreferenceCategory android:title="Behavior">
|
||||
<Preference
|
||||
android:key="downloadPath"
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
<package id="Microsoft.CSharp" version="4.4.1" targetFramework="monoandroid80" />
|
||||
<package id="Microsoft.NETCore.Platforms" version="2.0.1" targetFramework="monoandroid80" />
|
||||
<package id="NETStandard.Library" version="2.0.1" targetFramework="monoandroid80" />
|
||||
<package id="Newtonsoft.Json" version="11.0.1-beta3" targetFramework="monoandroid80" />
|
||||
<package id="Newtonsoft.Json" version="11.0.1" targetFramework="monoandroid80" />
|
||||
<package id="PCLCrypto" version="2.0.147" targetFramework="monoandroid80" />
|
||||
<package id="PInvoke.BCrypt" version="0.5.111" targetFramework="monoandroid80" />
|
||||
<package id="PInvoke.Kernel32" version="0.5.111" targetFramework="monoandroid80" />
|
||||
<package id="PInvoke.NCrypt" version="0.5.111" targetFramework="monoandroid80" />
|
||||
<package id="PInvoke.Windows.Core" version="0.5.111" targetFramework="monoandroid80" />
|
||||
<package id="PInvoke.BCrypt" version="0.5.126" targetFramework="monoandroid80" />
|
||||
<package id="PInvoke.Kernel32" version="0.5.126" targetFramework="monoandroid80" />
|
||||
<package id="PInvoke.NCrypt" version="0.5.126" targetFramework="monoandroid80" />
|
||||
<package id="PInvoke.Windows.Core" version="0.5.126" targetFramework="monoandroid80" />
|
||||
<package id="Square.OkHttp" version="2.7.5.0" targetFramework="monoandroid80" />
|
||||
<package id="Square.OkIO" version="1.13.0" targetFramework="monoandroid80" />
|
||||
<package id="Square.Picasso" version="2.5.2.1" targetFramework="monoandroid80" />
|
||||
|
||||
Reference in New Issue
Block a user