using System.Threading.Tasks;
using Xamarin.Essentials;
namespace System.Security
{
///
/// https://docs.microsoft.com/zh-cn/xamarin/essentials/secure-storage
///
internal sealed class ClientStorage : IStorage
{
bool IStorage.IsNativeSupportedBytes => false;
Task IStorage.GetAsync(string key)
{
return SecureStorage.GetAsync(key);
}
Task IStorage.SetAsync(string key, string? value)
{
if (string.IsNullOrEmpty(value))
{
SecureStorage.Remove(key);
return Task.CompletedTask;
}
return SecureStorage.SetAsync(key, value);
}
Task IStorage.RemoveAsync(string key)
{
var result = SecureStorage.Remove(key);
return Task.FromResult(result);
}
}
}