private async Task <bool> TakePhotoAsync() { if (await cameraService.MustShowRationaleAsync()) { await DisplayAlert( Translations.Dialog_RequiredPermissions_Title, Translations.Dialog_RequiredPermissions_Message); } bool hasPermissions = await cameraService.CheckPermissionsAsync(); if (!hasPermissions) { await DisplayAlert( Translations.Dialog_CheckPermissions_Title, Translations.Dialog_CheckPermissions_Message); return(false); } if (!cameraService.IsCameraAvailable || !cameraService.IsTakePhotoSupported) { await DisplayAlert( Translations.Dialog_CameraNotAvailable_Title, Translations.Dialog_CameraNotAvailable_Message); return(false); } CurrentMediaFile = await cameraService.GetMediaFileAsync(); return(true); }