public async Task Hide() { ((App)(App.Current)).BackRequested -= PhotoPreviewView_BackRequested; SizeChanged -= PhotoPreviewView_SizeChanged; ImageRoot.SizeChanged -= ImageRoot_SizeChanged; IsVisible = false; var splitChar = _photo.IsLocal ? '\\' : '/'; var filename = (_photo.Uri.Split(splitChar).LastOrDefault()?.Split('.').FirstOrDefault() ?? ""); var saveInkTask = Inker.SaveInkToFile($"ink_{filename}.gif"); var saveThumbnailTask = InkHelpers.RenderImageWithInkToFileAsync(Inker, await _file.OpenReadAsync(), $"thumb_{filename}.jpg"); var closingAnimationTask = Root.Scale(1.2f, 1.2f, (float)ActualWidth / 2, (float)ActualHeight / 2).Fade(0).StartAsync(); await Task.WhenAll(saveInkTask, closingAnimationTask, saveThumbnailTask); _photo.InkUri = saveInkTask.Result ?? _photo.InkUri; _photo.ThumbnailUri = saveThumbnailTask.Result ?? _photo.ThumbnailUri; Root.Visibility = Visibility.Collapsed; _canvasImage.Dispose(); _canvasImage = null; _photo = null; _file = null; ImageCanvas.Invalidate(); FinishedHiding?.Invoke(this, null); _tags.Clear(); _knownFaces.Clear(); _facePanels.Clear(); FaceCanvas.Children.Clear(); if (Description != null) { Description.Text = ""; } _effectsGenerator = null; FiltersButton.IsChecked = false; DetailsButton.IsChecked = false; InkButton.IsChecked = false; Inker.InkPresenter.StrokeContainer.Clear(); _photoInfoInitialized = false; if (EffectsView != null) { EffectsView.Visibility = Visibility.Collapsed; _effects.Clear(); } }
private async void TwitterShareClicked(object sender, RoutedEventArgs e) { (sender as Button).IsEnabled = false; ShareButtons.Fade(0, 200).Start(); ShareProgress.IsActive = true; ShareProgress.Visibility = Visibility.Visible; var filePath = await InkHelpers.RenderImageWithInkToFileAsync(Inker, await _file.OpenReadAsync(), "temp"); await Identity.Instance.SharePhotoAsync(IdentityProvider.Facebook, await (await StorageFile.GetFileFromPathAsync(filePath)).OpenReadAsync()); ShareFlyout.Hide(); (sender as Button).IsEnabled = true; }