using InABox.Core; using Microsoft.Maui.ApplicationModel; namespace InABox.Avalonia.Platform.iOS; public class iOS_Permissions : IPermissions { public Logger? Logger { get; set; } public async Task IsPermitted(Permission permission) { if (permission == Permission.Camera) return await DoEnabled(); if (permission == Permission.PhotoLibrary || permission == Permission.VideoLibrary) return await DoEnabled(); if (permission == Permission.Geolocation) return await DoEnabled(); return false; } private async Task DoEnabled() where TPermission : Permissions.BasePlatformPermission, new() { var status = await Permissions.CheckStatusAsync(); if (status != PermissionStatus.Granted && status != PermissionStatus.Restricted) status = await Permissions.RequestAsync(); return status == PermissionStatus.Granted; } }