public async Task DownloadImageAsync(MessageGroupItem item) { IsLoading = true; var saved = true; try { var imageBytes = await _messageManager.GetMessageContent(SelectedMessageGroup.MessageGroupId, item.Message.SentMessageId, Shell.Instance.ViewModel.CurrentTokens, Shell.Instance.ViewModel.CurrentUser.Region, Shell.Instance.ViewModel.CurrentUser.Language); await FileAccessCommands.SaveStreamToCameraRoll(imageBytes, item.Message.SentMessageId + ".png"); } catch (Exception ex) { //Insights.Report(ex); saved = false; } var loader = new ResourceLoader(); if (!saved) { await ResultChecker.SendMessageDialogAsync(loader.GetString("ErrorSaveImage/Text"), false); } else { await ResultChecker.SendMessageDialogAsync(loader.GetString("ImageSaved/Text"), true); } IsLoading = false; }
private async void Save_OnClick(object sender, RoutedEventArgs e) { var error = ""; try { var imageSource = sender as Button; var attachment = imageSource?.CommandParameter as Attachment; if (attachment == null) { return; } var fileName = Path.GetFileName(new Uri(attachment.Url).AbsolutePath); var client = new HttpClient(); var stream = await client.GetStreamAsync(attachment.Url); await FileAccessCommands.SaveStreamToCameraRoll(stream, fileName); // TODO: Setup alert system to say photo saved to camera roll. } catch (Exception ex) { error = ex.Message; } if (string.IsNullOrEmpty(error)) { await MessageDialogMaker.SendMessageDialogAsync("Saved the picture to your camera roll!", true); } else { await MessageDialogMaker.SendMessageDialogAsync(error, false); } }
private static async Task <bool> DownloadImageAsync(string url) { try { var fileName = Path.GetFileName(new Uri(url).AbsolutePath); var client = new HttpClient(); var stream = await client.GetStreamAsync(url); await FileAccessCommands.SaveStreamToCameraRoll(stream, fileName); } catch (Exception ex) { AwfulDebugger.SendMessageDialogAsync("Failed to download image", ex.InnerException); return(false); } return(true); }