private static void RequestResolveMissingPermission(MissingPermission permission, Action callback) { if (_isRequesting) { return; } _isRequesting = true; Device.BeginInvokeOnMainThread(async() => { var result = await UserDialogs.Instance.ConfirmAsync( permission.ToDescription(), AppText.permission_title, "Tillat", "Ikke Tillat"); _isRequesting = false; if (result) { callback?.Invoke(); } else { RequestResolveMissingPermission(permission, callback); } }); }
public void ResolvedMissingPermission(MissingPermission permission) { if (_missingPermissionCallbacks.ContainsKey(permission)) { _missingPermissionCallbacks.Remove(permission); } MissingPermissionsResolved?.Invoke(permission); }
public void ReportMissingPermission(MissingPermission permission, Action callback) { if (!_missingPermissionCallbacks.ContainsKey(permission)) { _missingPermissionCallbacks.Add(permission, callback); } MissingPermissionsAdded?.Invoke(permission, callback); }
public static string GetDescription(MissingPermission permission) { switch (permission) { case MissingPermission.iOSLocationAlways: return(AppText.permission_ios_location); case MissingPermission.iOSMotionAndActivity: return(AppText.permission_ios_motion); case MissingPermission.AndroidFineLocation: return(AppText.permission_fine_location); case MissingPermission.AndroidActivityRecognition: return(AppText.permission_activity_recognition); case MissingPermission.AndroidFitnessAccountLink: return(AppText.permission_google_fitness); case MissingPermission.AndroidFitnessPermissions: return(AppText.permission_google_fitness); default: #if DEBUG throw new ArgumentException("Trying to get text content for a permission that does not exist: {0}", permission.ToString()); #else return(string.Empty); #endif } }
public static string ToDescription(this MissingPermission permission) => Permissions.GetDescription(permission);
public PermissionModel(MissingPermission type, string description = "") { Type = type; Description = description; }