|
|
|
@ -0,0 +1,72 @@
|
|
|
|
|
using Android;
|
|
|
|
|
using AndroidX.Core.App;
|
|
|
|
|
using AndroidX.Core.Content;
|
|
|
|
|
using Android.OS;
|
|
|
|
|
using Java.Security;
|
|
|
|
|
using MusiLib.Model;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Diagnostics;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Runtime.Serialization;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using Android.Content.PM;
|
|
|
|
|
using Android.App;
|
|
|
|
|
|
|
|
|
|
namespace MusiLib.DataContractPersistance
|
|
|
|
|
{
|
|
|
|
|
public class DataContractPers : IPersistanceManager
|
|
|
|
|
{
|
|
|
|
|
private static readonly int requestCode = 100;
|
|
|
|
|
public string FilePath { get; set; } = Path.Combine(Android.OS.Environment.DataDirectory.AbsolutePath, "fr.vivienmaxime.musilib");
|
|
|
|
|
public string FileNameP { get; set; } = "UserFavoris.xml";
|
|
|
|
|
public string FileNameU { get; set; } = "UserData.xml";
|
|
|
|
|
|
|
|
|
|
public (List<Partition>, List<Utilisateur>) chargeDonnees()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
var serializerU = new DataContractSerializer(typeof(Utilisateur));
|
|
|
|
|
|
|
|
|
|
List<Utilisateur> util = new List<Utilisateur>();
|
|
|
|
|
|
|
|
|
|
using (Stream stream = File.OpenRead(Path.Combine(FilePath, FileNameU)))
|
|
|
|
|
{
|
|
|
|
|
util = serializerU.ReadObject(stream) as List<Utilisateur>;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (new List<Partition>(), util);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void sauvegardeDonnees(List<Partition> p, List<Utilisateur> u)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
// Vérifiez si l'application a l'autorisation de lire/écrire des fichiers
|
|
|
|
|
if (ContextCompat.CheckSelfPermission(Android.App.Application.Context, Manifest.Permission.ReadExternalStorage) == Android.Content.PM.Permission.Denied ||
|
|
|
|
|
ContextCompat.CheckSelfPermission(Android.App.Application.Context, Manifest.Permission.WriteExternalStorage) == Android.Content.PM.Permission.Denied)
|
|
|
|
|
{
|
|
|
|
|
// Demandez à l'utilisateur la permission d'accéder aux fichiers
|
|
|
|
|
ActivityCompat.RequestPermissions((Android.App.Activity)Android.App.Application.Context,
|
|
|
|
|
new string[] { Manifest.Permission.ReadExternalStorage, Manifest.Permission.WriteExternalStorage },
|
|
|
|
|
requestCode);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var serializerU = new DataContractSerializer(typeof(Utilisateur));
|
|
|
|
|
|
|
|
|
|
if (!Directory.Exists(FilePath))
|
|
|
|
|
{
|
|
|
|
|
System.Diagnostics.Debug.WriteLine("Directory créé à l'instant");
|
|
|
|
|
System.Diagnostics.Debug.WriteLine(Directory.GetDirectoryRoot);
|
|
|
|
|
System.Diagnostics.Debug.WriteLine(FilePath);
|
|
|
|
|
Directory.CreateDirectory(FilePath);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
using (Stream stream = File.Create(Path.Combine(FilePath, FileNameU)))
|
|
|
|
|
{
|
|
|
|
|
serializerU.WriteObject(stream, u);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|