Download preference recreated

This commit is contained in:
Anonymous Raccoon
2018-02-19 20:52:28 +01:00
parent 166fc89acf
commit 6f197c176a
9 changed files with 377 additions and 272 deletions
+1 -1
View File
@@ -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());
}
+11 -5
View File
@@ -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;
}
}
+31 -181
View File
@@ -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
+85 -76
View File
@@ -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>
+2 -1
View File
@@ -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"
+5 -5
View File
@@ -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" />