mirror of
https://github.com/zoriya/Opus.git
synced 2026-06-05 15:24:26 +00:00
Resuming after an audio focus lose was disabled.
This commit is contained in:
@@ -318,6 +318,14 @@ namespace MusicApp
|
||||
{
|
||||
pagerRefresh.SetEnabled(e.FirstVisibleItem == 0);
|
||||
contentRefresh.SetEnabled(e.FirstVisibleItem == 0);
|
||||
|
||||
if(PlaylistTracks.instance != null)
|
||||
{
|
||||
if (e.FirstVisibleItem + e.VisibleItemCount == e.TotalItemCount)
|
||||
PlaylistTracks.instance.lastVisible = true;
|
||||
else
|
||||
PlaylistTracks.instance.lastVisible = false;
|
||||
}
|
||||
}
|
||||
|
||||
public void Scroll(object sender, View.ScrollChangeEventArgs e)
|
||||
@@ -1286,15 +1294,18 @@ namespace MusicApp
|
||||
result.Add(videoInfo);
|
||||
}
|
||||
|
||||
Song current = MusicPlayer.queue[MusicPlayer.CurrentID()];
|
||||
current.queueSlot = 0;
|
||||
MusicPlayer.queue.Clear();
|
||||
MusicPlayer.queue.Add(current);
|
||||
MusicPlayer.currentID = 0;
|
||||
|
||||
Random r = new Random();
|
||||
result = result.OrderBy(x => r.Next()).ToList();
|
||||
Player.instance?.UpdateNext();
|
||||
foreach (Song song in result)
|
||||
{
|
||||
MusicPlayer.instance.AddToQueue(song);
|
||||
await Task.Delay(5);
|
||||
}
|
||||
|
||||
Player.instance?.UpdateNext();
|
||||
parseProgress.Visibility = ViewStates.Gone;
|
||||
}
|
||||
|
||||
|
||||
+24
-24
@@ -77,38 +77,38 @@
|
||||
<Reference Include="DiscreteSeekBar, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Karamunting.Android.AnderWeb.DiscreteSeekBar.1.0.1\lib\monoandroid80\DiscreteSeekBar.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ExoPlayer, Version=2.7.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Xam.Plugins.Android.ExoPlayer.2.7.3\lib\monoandroid81\ExoPlayer.dll</HintPath>
|
||||
<Reference Include="ExoPlayer, Version=2.8.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Xam.Plugins.Android.ExoPlayer.2.8.3\lib\monoandroid81\ExoPlayer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ExoPlayer.Core, Version=2.7.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Xam.Plugins.Android.ExoPlayer.Core.2.7.3\lib\monoandroid81\ExoPlayer.Core.dll</HintPath>
|
||||
<Reference Include="ExoPlayer.Core, Version=2.8.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Xam.Plugins.Android.ExoPlayer.Core.2.8.3\lib\monoandroid81\ExoPlayer.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ExoPlayer.Dash, Version=2.7.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Xam.Plugins.Android.ExoPlayer.Dash.2.7.3\lib\monoandroid81\ExoPlayer.Dash.dll</HintPath>
|
||||
<Reference Include="ExoPlayer.Dash, Version=2.8.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Xam.Plugins.Android.ExoPlayer.Dash.2.8.3\lib\monoandroid81\ExoPlayer.Dash.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ExoPlayer.Hls, Version=2.7.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Xam.Plugins.Android.ExoPlayer.Hls.2.7.3\lib\monoandroid81\ExoPlayer.Hls.dll</HintPath>
|
||||
<Reference Include="ExoPlayer.Hls, Version=2.8.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Xam.Plugins.Android.ExoPlayer.Hls.2.8.3\lib\monoandroid81\ExoPlayer.Hls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ExoPlayer.SmoothStreaming, Version=2.7.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Xam.Plugins.Android.ExoPlayer.SmoothStreaming.2.7.3\lib\monoandroid81\ExoPlayer.SmoothStreaming.dll</HintPath>
|
||||
<Reference Include="ExoPlayer.SmoothStreaming, Version=2.8.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Xam.Plugins.Android.ExoPlayer.SmoothStreaming.2.8.3\lib\monoandroid81\ExoPlayer.SmoothStreaming.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ExoPlayer.UI, Version=2.7.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Xam.Plugins.Android.ExoPlayer.UI.2.7.3\lib\monoandroid81\ExoPlayer.UI.dll</HintPath>
|
||||
<Reference Include="ExoPlayer.UI, Version=2.8.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Xam.Plugins.Android.ExoPlayer.UI.2.8.3\lib\monoandroid81\ExoPlayer.UI.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Google.Apis, Version=1.33.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Google.Apis.1.33.1\lib\netstandard1.3\Google.Apis.dll</HintPath>
|
||||
<Reference Include="Google.Apis, Version=1.34.0.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Google.Apis.1.34.0\lib\netstandard1.3\Google.Apis.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Google.Apis.Auth, Version=1.33.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Google.Apis.Auth.1.33.1\lib\netstandard1.3\Google.Apis.Auth.dll</HintPath>
|
||||
<Reference Include="Google.Apis.Auth, Version=1.34.0.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Google.Apis.Auth.1.34.0\lib\netstandard1.3\Google.Apis.Auth.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Google.Apis.Auth.PlatformServices, Version=1.33.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Google.Apis.Auth.1.33.1\lib\netstandard1.3\Google.Apis.Auth.PlatformServices.dll</HintPath>
|
||||
<Reference Include="Google.Apis.Auth.PlatformServices, Version=1.34.0.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Google.Apis.Auth.1.34.0\lib\netstandard1.3\Google.Apis.Auth.PlatformServices.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Google.Apis.Core, Version=1.33.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Google.Apis.Core.1.33.1\lib\netstandard1.3\Google.Apis.Core.dll</HintPath>
|
||||
<Reference Include="Google.Apis.Core, Version=1.34.0.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Google.Apis.Core.1.34.0\lib\netstandard1.3\Google.Apis.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Google.Apis.YouTube.v3, Version=1.33.1.1226, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Google.Apis.YouTube.v3.1.33.1.1226\lib\netstandard1.3\Google.Apis.YouTube.v3.dll</HintPath>
|
||||
<Reference Include="Google.Apis.YouTube.v3, Version=1.34.0.1226, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Google.Apis.YouTube.v3.1.34.0.1226\lib\netstandard1.3\Google.Apis.YouTube.v3.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Java.Interop" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
@@ -144,8 +144,8 @@
|
||||
<Reference Include="System.Json" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Runtime" />
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.4.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Core" />
|
||||
|
||||
@@ -18,6 +18,8 @@ namespace MusicApp.Resources.Portable_Class
|
||||
private LayoutInflater inflater;
|
||||
private int resource;
|
||||
|
||||
public override int Count => songList.Count;
|
||||
|
||||
public Adapter(Context context, int resource, List<Song> songList) : base(context, resource, songList)
|
||||
{
|
||||
this.context = context;
|
||||
@@ -25,6 +27,12 @@ namespace MusicApp.Resources.Portable_Class
|
||||
this.songList = songList;
|
||||
}
|
||||
|
||||
public void AddData(Song[] items)
|
||||
{
|
||||
songList.AddRange(items);
|
||||
NotifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void Remove(Song item)
|
||||
{
|
||||
songList.Remove(item);
|
||||
|
||||
@@ -802,7 +802,7 @@ namespace MusicApp.Resources.Portable_Class
|
||||
CoordinatorLayout smallPlayer = MainActivity.instance.FindViewById<CoordinatorLayout>(Resource.Id.smallPlayer);
|
||||
smallPlayer.FindViewById<ImageButton>(Resource.Id.spPlay).SetImageResource(Resource.Drawable.ic_play_arrow_black_24dp);
|
||||
|
||||
Player.instance?.playerView.FindViewById<ImageButton>(Resource.Id.playButton).SetImageResource(Resource.Drawable.ic_play_arrow_black_24dp);
|
||||
Player.instance?.playerView?.FindViewById<ImageButton>(Resource.Id.playButton).SetImageResource(Resource.Drawable.ic_play_arrow_black_24dp);
|
||||
Queue.instance?.RefreshCurrent();
|
||||
}
|
||||
}
|
||||
@@ -831,6 +831,42 @@ namespace MusicApp.Resources.Portable_Class
|
||||
}
|
||||
|
||||
Queue.instance?.RefreshCurrent();
|
||||
|
||||
AudioAttributes attributes = new AudioAttributes.Builder()
|
||||
.SetUsage(AudioUsageKind.Media)
|
||||
.SetContentType(AudioContentType.Music)
|
||||
.Build();
|
||||
|
||||
if (Build.VERSION.SdkInt >= BuildVersionCodes.O)
|
||||
{
|
||||
AudioFocusRequestClass focusRequest = new AudioFocusRequestClass.Builder(AudioFocus.Gain)
|
||||
.SetAudioAttributes(attributes)
|
||||
.SetAcceptsDelayedFocusGain(true)
|
||||
.SetOnAudioFocusChangeListener(this)
|
||||
.Build();
|
||||
AudioFocusRequest audioFocus = audioManager.RequestAudioFocus(focusRequest);
|
||||
|
||||
if (audioFocus != AudioFocusRequest.Granted)
|
||||
{
|
||||
Console.WriteLine("Can't Get Audio Focus");
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
#pragma warning disable CS0618 // Type or member is obsolete
|
||||
|
||||
AudioManager am = (AudioManager)MainActivity.instance.GetSystemService(AudioService);
|
||||
|
||||
AudioFocusRequest audioFocus = am.RequestAudioFocus(this, Stream.Music, AudioFocus.Gain);
|
||||
|
||||
if (audioFocus != AudioFocusRequest.Granted)
|
||||
{
|
||||
Console.WriteLine("Can't Get Audio Focus");
|
||||
return;
|
||||
}
|
||||
#pragma warning restore CS0618
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -901,8 +937,7 @@ namespace MusicApp.Resources.Portable_Class
|
||||
break;
|
||||
|
||||
case AudioFocus.LossTransientCanDuck:
|
||||
if (isRunning)
|
||||
player.Volume = prefManager.GetInt("volumeMultiplier", 100) / 100 * 0.2f;
|
||||
Pause();
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -24,7 +24,9 @@ namespace MusicApp.Resources.Portable_Class
|
||||
public long playlistId = 0;
|
||||
public string ytID = "";
|
||||
private bool hasWriteAcess;
|
||||
private string nextPageToken = null;
|
||||
public bool isEmpty = false;
|
||||
public bool lastVisible = false;
|
||||
|
||||
private List<Song> tracks = new List<Song>();
|
||||
private List<string> ytTracksIDs = new List<string>();
|
||||
@@ -38,6 +40,7 @@ namespace MusicApp.Resources.Portable_Class
|
||||
emptyView = LayoutInflater.Inflate(Resource.Layout.NoPlaylist, null);
|
||||
ListView.EmptyView = emptyView;
|
||||
ListView.Scroll += MainActivity.instance.Scroll;
|
||||
ListView.ScrollStateChanged += ListView_ScrollStateChanged;
|
||||
MainActivity.instance.contentRefresh.Refresh += OnRefresh;
|
||||
MainActivity.instance.OnPaddingChanged += OnPaddingChanged;
|
||||
MainActivity.instance.DisplaySearch(1);
|
||||
@@ -45,6 +48,15 @@ namespace MusicApp.Resources.Portable_Class
|
||||
PopulateList();
|
||||
}
|
||||
|
||||
private void ListView_ScrollStateChanged(object sender, AbsListView.ScrollStateChangedEventArgs e)
|
||||
{
|
||||
if (lastVisible && e.ScrollState == ScrollState.Idle)
|
||||
{
|
||||
lastVisible = false;
|
||||
LoadMore();
|
||||
}
|
||||
}
|
||||
|
||||
public void OnPaddingChanged(object sender, PaddingChange e)
|
||||
{
|
||||
if (MainActivity.paddingBot > e.oldPadding)
|
||||
@@ -147,26 +159,20 @@ namespace MusicApp.Resources.Portable_Class
|
||||
else if (ytID != null)
|
||||
{
|
||||
tracks = new List<Song>();
|
||||
string nextPageToken = "";
|
||||
while (nextPageToken != null)
|
||||
var ytPlaylistRequest = YoutubeEngine.youtubeService.PlaylistItems.List("snippet, contentDetails");
|
||||
ytPlaylistRequest.PlaylistId = ytID;
|
||||
ytPlaylistRequest.MaxResults = 50;
|
||||
|
||||
var ytPlaylist = await ytPlaylistRequest.ExecuteAsync();
|
||||
|
||||
foreach (var item in ytPlaylist.Items)
|
||||
{
|
||||
var ytPlaylistRequest = YoutubeEngine.youtubeService.PlaylistItems.List("snippet, contentDetails");
|
||||
ytPlaylistRequest.PlaylistId = ytID;
|
||||
ytPlaylistRequest.MaxResults = 50;
|
||||
ytPlaylistRequest.PageToken = nextPageToken;
|
||||
|
||||
var ytPlaylist = await ytPlaylistRequest.ExecuteAsync();
|
||||
|
||||
foreach (var item in ytPlaylist.Items)
|
||||
{
|
||||
Song song = new Song(item.Snippet.Title, item.Snippet.ChannelTitle, item.Snippet.Thumbnails.Default__.Url, item.ContentDetails.VideoId, -1, -1, item.ContentDetails.VideoId, true, false);
|
||||
tracks.Add(song);
|
||||
ytTracksIDs.Add(item.Id);
|
||||
}
|
||||
|
||||
nextPageToken = ytPlaylist.NextPageToken;
|
||||
Song song = new Song(item.Snippet.Title, item.Snippet.ChannelTitle, item.Snippet.Thumbnails.Default__.Url, item.ContentDetails.VideoId, -1, -1, item.ContentDetails.VideoId, true, false);
|
||||
tracks.Add(song);
|
||||
ytTracksIDs.Add(item.Id);
|
||||
}
|
||||
|
||||
nextPageToken = ytPlaylist.NextPageToken;
|
||||
adapter = new Adapter(Android.App.Application.Context, Resource.Layout.SongList, tracks)
|
||||
{
|
||||
listPadding = MainActivity.paddingBot - MainActivity.defaultPaddingBot
|
||||
@@ -191,6 +197,32 @@ namespace MusicApp.Resources.Portable_Class
|
||||
MainActivity.instance.contentRefresh.Refreshing = false;
|
||||
}
|
||||
|
||||
public async void LoadMore()
|
||||
{
|
||||
if (nextPageToken == null)
|
||||
return;
|
||||
|
||||
var ytPlaylistRequest = YoutubeEngine.youtubeService.PlaylistItems.List("snippet, contentDetails");
|
||||
ytPlaylistRequest.PlaylistId = ytID;
|
||||
ytPlaylistRequest.MaxResults = 50;
|
||||
ytPlaylistRequest.PageToken = nextPageToken;
|
||||
|
||||
var ytPlaylist = await ytPlaylistRequest.ExecuteAsync();
|
||||
|
||||
if (instance == null)
|
||||
return;
|
||||
|
||||
foreach (var item in ytPlaylist.Items)
|
||||
{
|
||||
Song song = new Song(item.Snippet.Title, item.Snippet.ChannelTitle, item.Snippet.Thumbnails.Default__.Url, item.ContentDetails.VideoId, -1, -1, item.ContentDetails.VideoId, true, false);
|
||||
tracks.Add(song);
|
||||
ytTracksIDs.Add(item.Id);
|
||||
}
|
||||
|
||||
nextPageToken = ytPlaylist.NextPageToken;
|
||||
adapter.NotifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void Search(string search)
|
||||
{
|
||||
result = new List<Song>();
|
||||
@@ -214,9 +246,9 @@ namespace MusicApp.Resources.Portable_Class
|
||||
|
||||
private async void ListView_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
|
||||
{
|
||||
List<Song> songs = tracks.GetRange(e.Position + 1, tracks.Count - e.Position - 1);
|
||||
List<Song> songs = tracks.GetRange(e.Position, tracks.Count - e.Position);
|
||||
if (result != null && result.Count - 1 >= e.Position)
|
||||
songs = result.GetRange(e.Position + 1, result.Count - e.Position - 1);
|
||||
songs = result.GetRange(e.Position, result.Count - e.Position);
|
||||
|
||||
if (MusicPlayer.isRunning)
|
||||
MusicPlayer.queue.Clear();
|
||||
|
||||
Generated
+1084
-944
File diff suppressed because it is too large
Load Diff
+15
-15
@@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="AngleSharp" version="0.9.9.2" targetFramework="monoandroid81" />
|
||||
<package id="Google.Apis" version="1.33.1" targetFramework="monoandroid81" />
|
||||
<package id="Google.Apis.Auth" version="1.33.1" targetFramework="monoandroid81" />
|
||||
<package id="Google.Apis.Core" version="1.33.1" targetFramework="monoandroid81" />
|
||||
<package id="Google.Apis.YouTube.v3" version="1.33.1.1226" targetFramework="monoandroid81" />
|
||||
<package id="Google.Apis" version="1.34.0" targetFramework="monoandroid81" />
|
||||
<package id="Google.Apis.Auth" version="1.34.0" targetFramework="monoandroid81" />
|
||||
<package id="Google.Apis.Core" version="1.34.0" targetFramework="monoandroid81" />
|
||||
<package id="Google.Apis.YouTube.v3" version="1.34.0.1226" targetFramework="monoandroid81" />
|
||||
<package id="Karamunting.Android.AnderWeb.DiscreteSeekBar" version="1.0.1" targetFramework="monoandroid81" />
|
||||
<package id="Microsoft.CSharp" version="4.4.1" targetFramework="monoandroid81" />
|
||||
<package id="Microsoft.NETCore.Platforms" version="2.0.2" targetFramework="monoandroid81" />
|
||||
<package id="Microsoft.CSharp" version="4.5.0" targetFramework="monoandroid81" />
|
||||
<package id="Microsoft.NETCore.Platforms" version="2.1.0" targetFramework="monoandroid81" />
|
||||
<package id="NETStandard.Library" version="2.0.3" targetFramework="monoandroid81" />
|
||||
<package id="Newtonsoft.Json" version="11.0.2" targetFramework="monoandroid81" />
|
||||
<package id="PCLCrypto" version="2.0.147" targetFramework="monoandroid81" />
|
||||
@@ -28,7 +28,7 @@
|
||||
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="monoandroid81" />
|
||||
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="monoandroid81" />
|
||||
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="monoandroid81" />
|
||||
<package id="System.Json" version="4.4.0" targetFramework="monoandroid81" />
|
||||
<package id="System.Json" version="4.5.0" targetFramework="monoandroid81" />
|
||||
<package id="System.Linq" version="4.3.0" targetFramework="monoandroid81" />
|
||||
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="monoandroid81" />
|
||||
<package id="System.Net.Http" version="4.3.3" targetFramework="monoandroid81" />
|
||||
@@ -39,10 +39,10 @@
|
||||
<package id="System.Reflection" version="4.3.0" targetFramework="monoandroid81" />
|
||||
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="monoandroid81" />
|
||||
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="monoandroid81" />
|
||||
<package id="System.Reflection.TypeExtensions" version="4.4.0" targetFramework="monoandroid81" />
|
||||
<package id="System.Reflection.TypeExtensions" version="4.5.0" targetFramework="monoandroid81" />
|
||||
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="monoandroid81" />
|
||||
<package id="System.Runtime" version="4.3.0" targetFramework="monoandroid81" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="4.4.0" targetFramework="monoandroid81" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.0" targetFramework="monoandroid81" />
|
||||
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="monoandroid81" />
|
||||
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="monoandroid81" />
|
||||
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="monoandroid81" />
|
||||
@@ -64,12 +64,12 @@
|
||||
<package id="System.Xml.XmlDocument" version="4.3.0" targetFramework="monoandroid81" />
|
||||
<package id="TagLib.Portable" version="1.0.4" targetFramework="monoandroid81" />
|
||||
<package id="Validation" version="2.4.18" targetFramework="monoandroid81" />
|
||||
<package id="Xam.Plugins.Android.ExoPlayer" version="2.7.3" targetFramework="monoandroid81" />
|
||||
<package id="Xam.Plugins.Android.ExoPlayer.Core" version="2.7.3" targetFramework="monoandroid81" />
|
||||
<package id="Xam.Plugins.Android.ExoPlayer.Dash" version="2.7.3" targetFramework="monoandroid81" />
|
||||
<package id="Xam.Plugins.Android.ExoPlayer.Hls" version="2.7.3" targetFramework="monoandroid81" />
|
||||
<package id="Xam.Plugins.Android.ExoPlayer.SmoothStreaming" version="2.7.3" targetFramework="monoandroid81" />
|
||||
<package id="Xam.Plugins.Android.ExoPlayer.UI" version="2.7.3" targetFramework="monoandroid81" />
|
||||
<package id="Xam.Plugins.Android.ExoPlayer" version="2.8.3" targetFramework="monoandroid81" />
|
||||
<package id="Xam.Plugins.Android.ExoPlayer.Core" version="2.8.3" targetFramework="monoandroid81" />
|
||||
<package id="Xam.Plugins.Android.ExoPlayer.Dash" version="2.8.3" targetFramework="monoandroid81" />
|
||||
<package id="Xam.Plugins.Android.ExoPlayer.Hls" version="2.8.3" targetFramework="monoandroid81" />
|
||||
<package id="Xam.Plugins.Android.ExoPlayer.SmoothStreaming" version="2.8.3" targetFramework="monoandroid81" />
|
||||
<package id="Xam.Plugins.Android.ExoPlayer.UI" version="2.8.3" targetFramework="monoandroid81" />
|
||||
<package id="Xamarin.Android.Arch.Core.Common" version="1.0.0" targetFramework="monoandroid81" />
|
||||
<package id="Xamarin.Android.Arch.Lifecycle.Common" version="1.0.3" targetFramework="monoandroid81" />
|
||||
<package id="Xamarin.Android.Arch.Lifecycle.Runtime" version="1.0.3" targetFramework="monoandroid81" />
|
||||
|
||||
Reference in New Issue
Block a user