68 lines
2.4 KiB
C#
68 lines
2.4 KiB
C#
using Newtonsoft.Json;
|
|
using System.IO;
|
|
|
|
namespace TV_Player.ViewModels
|
|
{
|
|
public static class SettingsModel
|
|
{
|
|
private static readonly string AppDataFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "TVPlayer");
|
|
private static readonly string SettingsFilePath = Path.Combine(AppDataFolder, "settings.json");
|
|
|
|
public static string PlaylistURL { get; set; }
|
|
public static bool StartFullScreen { get; set; }
|
|
public static bool StartFromLastScreen { get; set; }
|
|
public static string LastScreen { get; set; }
|
|
public static GroupInfo Group { get; set; }
|
|
public static M3UInfo Program { get; set; }
|
|
|
|
|
|
public static void SaveSetttings()
|
|
{
|
|
// Create an anonymous object to hold the properties
|
|
var dataToSerialize = new
|
|
{
|
|
PlaylistURL,
|
|
StartFromLastScreen,
|
|
StartFullScreen,
|
|
LastScreen,
|
|
Group,
|
|
Program
|
|
};
|
|
|
|
// Serialize the object to JSON
|
|
string json = JsonConvert.SerializeObject(dataToSerialize, Formatting.Indented);
|
|
|
|
if (!Directory.Exists(AppDataFolder))
|
|
Directory.CreateDirectory(AppDataFolder);
|
|
// Save the JSON to a file
|
|
File.WriteAllText(SettingsFilePath, json);
|
|
}
|
|
|
|
public static void LoadSettings()
|
|
{
|
|
var loadedData = new
|
|
{
|
|
PlaylistURL = default(string),
|
|
LastScreen = default(string),
|
|
Group = default(GroupInfo),
|
|
Program = default(M3UInfo),
|
|
StartFromLastScreen = default(bool),
|
|
StartFullScreen = default(bool)
|
|
};
|
|
if (File.Exists(SettingsFilePath))
|
|
{
|
|
// Read the JSON content from the file
|
|
string json = File.ReadAllText(SettingsFilePath);
|
|
loadedData = JsonConvert.DeserializeAnonymousType(json, loadedData);
|
|
}
|
|
// Assign the values to the properties
|
|
PlaylistURL = loadedData.PlaylistURL;
|
|
LastScreen = loadedData.LastScreen;
|
|
Group = loadedData.Group;
|
|
Program = loadedData.Program;
|
|
StartFromLastScreen = loadedData.StartFromLastScreen;
|
|
StartFullScreen = loadedData.StartFullScreen;
|
|
}
|
|
}
|
|
}
|