From 9117166224515174b946b441ebf78d74efe7bef6 Mon Sep 17 00:00:00 2001
From: Anonymus Raccoon <32224410+AnonymusRaccoon@users.noreply.github.com>
Date: Mon, 1 Jul 2019 16:39:13 +0200
Subject: [PATCH] Solving bugs with the fav feature.
---
Opus/Code/Api/SongManager.cs | 18 +++++++++++++-----
Opus/Code/DataStructure/Song.cs | 2 +-
Opus/Code/UI/Fragments/Home.cs | 5 +++++
3 files changed, 19 insertions(+), 6 deletions(-)
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)