private async void AddBook(AddBookClickedMessage msg) { var permissionStatus = await PermissionHelper.CheckAndRequestPermission(Plugin.Permissions.Abstractions.Permission.Storage); if (permissionStatus != Plugin.Permissions.Abstractions.PermissionStatus.Granted) { await DisplayAlert("Permission not granted", "Cannot open book without storage permissions.", "OK"); return; } var pickedFile = await CrossFilePicker.Current.PickFile(); if (pickedFile == null) { return; } await OpenPickedBook(pickedFile); }
private async void AddBook(AddBookClickedMessage msg) { var permissionStatus = await PermissionHelper.CheckAndRequestPermission(Plugin.Permissions.Abstractions.Permission.Storage); if (permissionStatus == Plugin.Permissions.Abstractions.PermissionStatus.Granted) { var pickedFile = await CrossFilePicker.Current.PickFile(); if (pickedFile != null) { try { var book = await _bookshelfService.AddBook(pickedFile); if (book.Item2) { Bookshelf.Children.Add(new BookCard(book.Item1)); } this.SendBookToReader(book.Item1); } catch (Exception e) { var ext = string.Empty; if (!string.IsNullOrEmpty(pickedFile.FileName)) { ext = pickedFile.FileName.Split('.').LastOrDefault(); } Analytics.TrackEvent("Failed to open book", new Dictionary <string, string> { { "Extension", ext } }); Crashes.TrackError(e, new Dictionary <string, string> { { "Filename", pickedFile.FileName } }); await DisplayAlert("Error", "File failed to open", "OK"); } } } else { await DisplayAlert("Permission not granted", "Cannot open book without storage permissions.", "OK"); } }