Solving some bugs.

This commit is contained in:
Tristan Roux
2019-04-21 00:36:56 +02:00
parent 85dc8dccf2
commit 5ec9d20643
5 changed files with 44 additions and 19 deletions
+6 -1
View File
@@ -79,7 +79,9 @@ namespace Opus.Api
await Task.Run(() =>
{
Looper.Prepare();
if (Looper.MyLooper() == null)
Looper.Prepare();
CursorLoader cursorLoader = new CursorLoader(Application.Context, musicUri, null, null, null, null);
ICursor musicCursor = (ICursor)cursorLoader.LoadInBackground();
if (musicCursor != null && musicCursor.MoveToFirst())
@@ -166,6 +168,9 @@ namespace Opus.Api
Uri uri = MediaStore.Audio.Playlists.Members.GetContentUri("external", playlistID);
return await Task.Run(() =>
{
if (Looper.MyLooper() == null)
Looper.Prepare();
CursorLoader loader = new CursorLoader(Application.Context, uri, null, null, null, null);
ICursor cursor = (ICursor)loader.LoadInBackground();
+27 -11
View File
@@ -2,7 +2,6 @@
using Android.Content;
using Android.Database;
using Android.Graphics;
using Android.Net;
using Android.OS;
using Android.Provider;
using Android.Support.Design.Widget;
@@ -14,7 +13,6 @@ using Google.Apis.YouTube.v3.Data;
using Opus.Adapter;
using Opus.Api.Services;
using Opus.DataStructure;
using Opus.Fragments;
using Opus.Others;
using SQLite;
using System;
@@ -56,15 +54,22 @@ namespace Opus.Api
{
List<Song> tracks = await GetTracksFromLocalPlaylist(LocalID);
MusicPlayer.queue.Clear();
if (tracks.Count == 0)
return;
SongManager.Play(tracks[startingPosition]);
tracks.RemoveAt(startingPosition);
await Task.Delay(1000);
while (MusicPlayer.instance == null)
await Task.Delay(10);
MusicPlayer.instance.AddToQueue(tracks.GetRange(startingPosition, tracks.Count - startingPosition).ToArray());
MusicPlayer.instance.InsertToQueue(0, tracks.GetRange(0, startingPosition).ToArray());
MusicPlayer.currentID = startingPosition;
Queue.instance?.RefreshCurrent();
Player.instance?.RefreshPlayer();
MusicPlayer.instance.AddToQueue(tracks.GetRange(startingPosition, tracks.Count - startingPosition).ToArray());
}
/// <summary>
@@ -76,7 +81,6 @@ namespace Opus.Api
{
List<Song> tracks = await GetTracksFromYoutubePlaylist(YoutubeID, (song) =>
{
MusicPlayer.queue?.Clear();
SongManager.Play(song);
}, startingPosition);
@@ -85,11 +89,15 @@ namespace Opus.Api
tracks.RemoveAt(startingPosition);
await Task.Delay(1000);
while (MusicPlayer.instance == null)
await Task.Delay(10);
MusicPlayer.instance.AddToQueue(tracks.GetRange(startingPosition, tracks.Count - startingPosition).ToArray());
MusicPlayer.instance.InsertToQueue(0, tracks.GetRange(0, startingPosition).ToArray());
MusicPlayer.currentID = startingPosition;
Queue.instance?.RefreshCurrent();
Player.instance?.RefreshPlayer();
MusicPlayer.instance.AddToQueue(tracks.GetRange(startingPosition, tracks.Count - startingPosition).ToArray());
}
#endregion
@@ -119,10 +127,10 @@ namespace Opus.Api
Random r = new Random();
tracks = tracks.OrderBy(x => r.Next()).ToList();
MusicPlayer.queue.Clear();
SongManager.Play(tracks[0]);
tracks.RemoveAt(0);
await Task.Delay(1000);
while (MusicPlayer.instance == null)
await Task.Delay(10);
@@ -139,7 +147,6 @@ namespace Opus.Api
int playPos = r.Next(50);
List<Song> tracks = await GetTracksFromYoutubePlaylist(YoutubeID, (song) =>
{
MusicPlayer.queue.Clear();
MusicPlayer.currentID = -1;
SongManager.Play(song);
}, playPos);
@@ -559,7 +566,9 @@ namespace Opus.Api
Uri uri = Playlists.ExternalContentUri;
await Task.Run(() =>
{
Looper.Prepare();
if (Looper.MyLooper() == null)
Looper.Prepare();
CursorLoader loader = new CursorLoader(Application.Context, uri, null, null, null, null);
ICursor cursor = (ICursor)loader.LoadInBackground();
@@ -778,10 +787,16 @@ namespace Opus.Api
/// <returns></returns>
public async static Task<List<Song>> GetTracksFromLocalPlaylist(long LocalID)
{
if (Looper.MyLooper() == null)
Looper.Prepare();
List<Song> songs = new List<Song>();
Uri musicUri = Playlists.Members.GetContentUri("external", LocalID);
await Task.Run(() =>
{
if (Looper.MyLooper() == null)
Looper.Prepare();
CursorLoader cursorLoader = new CursorLoader(Application.Context, musicUri, null, null, null, null);
ICursor musicCursor = (ICursor)cursorLoader.LoadInBackground();
@@ -815,7 +830,6 @@ namespace Opus.Api
}
});
songs.Reverse();
return songs;
}
@@ -866,6 +880,9 @@ namespace Opus.Api
Uri uri = MediaStore.Audio.Playlists.ExternalContentUri;
return await Task.Run(() =>
{
if (Looper.MyLooper() == null)
Looper.Prepare();
CursorLoader loader = new CursorLoader(Application.Context, uri, null, null, null, null);
ICursor cursor = (ICursor)loader.LoadInBackground();
@@ -950,7 +967,6 @@ namespace Opus.Api
nextPageToken = ytPlaylist.NextPageToken;
}
tracks.Reverse();
return tracks;
}
catch (System.Net.Http.HttpRequestException)
+2 -1
View File
@@ -257,7 +257,7 @@ namespace Opus.Api.Services
queue?.Clear();
currentID = -1;
Queue.instance?.Refresh();
Home.instance?.RefreshQueue();
Home.instance?.RefreshQueue(false);
Song song = null;
if (title == null)
@@ -530,6 +530,7 @@ namespace Opus.Api.Services
song.Title = video.Title;
song.Artist = video.Author;
song.Album = await MainActivity.GetBestThumb(new string[] { video.Thumbnails.MaxResUrl, video.Thumbnails.StandardResUrl, video.Thumbnails.HighResUrl });
Player.instance?.RefreshPlayer();
if (startPlaybackWhenPosible)
{
+3 -5
View File
@@ -3,7 +3,6 @@ using Android.Database;
using Android.Graphics;
using Android.Provider;
using Android.Support.Design.Widget;
using Android.Support.V4.Content;
using Android.Support.V7.Preferences;
using Android.Views;
using Android.Widget;
@@ -12,7 +11,6 @@ using Google.Apis.YouTube.v3.Data;
using Opus.Api.Services;
using Opus.DataStructure;
using Opus.Fragments;
using Opus.Resources.Portable_Class;
using System;
using System.Collections.Generic;
using System.IO;
@@ -48,7 +46,7 @@ namespace Opus.Api
intent.PutExtra("file", item.YoutubeID);
intent.PutExtra("title", item.Title);
intent.PutExtra("artist", item.Artist);
intent.PutExtra("thumbnailURI", item.Path);
intent.PutExtra("thumbnailURI", item.Album);
intent.PutExtra("addToQueue", true);
intent.PutExtra("showPlayer", true);
Android.App.Application.Context.StartService(intent);
@@ -66,7 +64,7 @@ namespace Opus.Api
intent.PutExtra("file", item.YoutubeID);
intent.PutExtra("title", item.Title);
intent.PutExtra("artist", item.Artist);
intent.PutExtra("thumbnailURI", item.Path);
intent.PutExtra("thumbnailURI", item.Album);
Android.App.Application.Context.StartService(intent);
}
@@ -82,7 +80,7 @@ namespace Opus.Api
intent.PutExtra("file", item.YoutubeID);
intent.PutExtra("title", item.Title);
intent.PutExtra("artist", item.Artist);
intent.PutExtra("thumbnailURI", item.Path);
intent.PutExtra("thumbnailURI", item.Album);
Android.App.Application.Context.StartService(intent);
}
#endregion
+6 -1
View File
@@ -187,7 +187,12 @@ namespace Opus.Fragments
public void NotifyQueueInserted(int position)
{
if (adapterItems.Count > 0)
QueueAdapter?.NotifyItemInserted(position);
{
if (MusicPlayer.queue.Count == 1)
QueueAdapter?.NotifyItemChanged(0);
else
QueueAdapter?.NotifyItemInserted(position);
}
}
public void NotifyQueueRangeInserted(int position, int count)