diff --git a/Opus/Code/Api/SongManager.cs b/Opus/Code/Api/SongManager.cs
index e9a0aa3..72bde82 100644
--- a/Opus/Code/Api/SongManager.cs
+++ b/Opus/Code/Api/SongManager.cs
@@ -1,5 +1,6 @@
using Opus.Api.Services;
using Opus.DataStructure;
+using Opus.Fragments;
using SQLite;
using System;
using System.Collections.Generic;
@@ -126,30 +127,37 @@ namespace Opus.Api
/// Add a song to the favorite playlist.
///
///
- public static void Fav(Song song)
+ public async static void Fav(Song song)
{
- Task.Run(() =>
+ Console.WriteLine("&Fav " + song.Title);
+ await Task.Run(() =>
{
SQLiteConnection db = new SQLiteConnection(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "Favorites.sqlite"));
db.CreateTable();
db.Insert(song);
});
+ Home.instance?.RefreshFavs();
}
///
/// Remove a song from the favorites.
///
///
- public static void UnFav(Song song)
+ public async static void UnFav(Song song)
{
- Task.Run(() =>
+ Console.WriteLine("&UnFav " + song.Title);
+ await Task.Run(() =>
{
SQLiteConnection db = new SQLiteConnection(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "Favorites.sqlite"));
db.CreateTable();
- db.Table().Delete(x => (x.IsYt && x.YoutubeID == song.YoutubeID) || (!x.IsYt && x.LocalID == song.LocalID));
+ if(song.IsYt)
+ db.Table().Delete(x => x.IsYt && x.YoutubeID == song.YoutubeID);
+ else
+ db.Table().Delete(x => !x.IsYt && x.LocalID == song.LocalID);
});
+ Home.instance?.RefreshFavs();
}
///
diff --git a/Opus/Code/DataStructure/Song.cs b/Opus/Code/DataStructure/Song.cs
index 0228033..1093fb4 100644
--- a/Opus/Code/DataStructure/Song.cs
+++ b/Opus/Code/DataStructure/Song.cs
@@ -14,7 +14,7 @@ namespace Opus.DataStructure
[Serializable]
public class Song
{
- [PrimaryKey, Unique]
+ [PrimaryKey, Unique, AutoIncrement]
public int Index { get; set; }
public string Title { get; set; }
diff --git a/Opus/Code/UI/Fragments/Home.cs b/Opus/Code/UI/Fragments/Home.cs
index 684bf98..1019b95 100644
--- a/Opus/Code/UI/Fragments/Home.cs
+++ b/Opus/Code/UI/Fragments/Home.cs
@@ -206,6 +206,11 @@ namespace Opus.Fragments
}
}
+ public void RefreshFavs()
+ {
+ adapterItems.Find(x => x.SectionTitle == GetString(Resource.String.favorite)).recycler.GetAdapter().NotifyDataSetChanged();
+ }
+
public void NotifyQueueInserted(int position)
{
if (adapterItems.Count > 0)