private async void PlaybackStillImage(Thumbnail content) { ChangeProgressText(SystemUtil.GetStringResource("Progress_OpeningDetailImage")); try { var res = await Operator.PlaybackStillImage(content); PhotoScreen.SourceBitmap = res.Item1; PhotoScreen.InitImageTransform(); PhotoScreen.SetBitmap(); PhotoData.MetaData = res.Item2; if (res.Item2 == null) { PhotoScreen.DetailInfoDisplayed = false; } SetStillDetailVisibility(true); } catch { ShowToast(() => "Viewer_FailedToOpenDetail"); } finally { HideProgress(); } }
private void CommandBarRotateRightSelected() { if (InnerState == ViewerState.StillPlayback && PhotoScreen.Visibility.IsVisible()) { PhotoScreen.RotateImage(Rotation.Right); } }
private void ReleaseDetail() { PhotoScreen.ReleaseImage(); SetStillDetailVisibility(false); }
public ContentsGridPage() { this.InitializeComponent(); InitVisualStates(); CommandBarManager.SetEvent(AppBarItem.Ok, async(s, args) => { DebugUtil.Log(() => "Ok clicked"); switch (InnerState) { case ViewerState.Multi: switch (Operator.ContentsCollection.SelectivityFactor) { case SelectivityFactor.Delete: await DeleteSelectedFiles(); break; case SelectivityFactor.Download: FetchSelectedImages(); break; default: DebugUtil.Log(() => "Nothing to do for current SelectivityFactor: " + Operator.ContentsCollection.SelectivityFactor); break; } UpdateSelectionMode(SelectivityFactor.None); UpdateInnerState(ViewerState.Single); break; default: DebugUtil.Log(() => "Nothing to do for current InnerState: " + InnerState); break; } }) .SetEvent(AppBarItem.DeleteMultiple, (s, args) => { UpdateSelectionMode(SelectivityFactor.Delete); UpdateInnerState(ViewerState.Multi); }) .SetEvent(AppBarItem.DownloadMultiple, (s, args) => { UpdateSelectionMode(SelectivityFactor.Download); UpdateInnerState(ViewerState.Multi); }) .SetEvent(AppBarItem.RotateRight, (s, args) => { PhotoScreen.RotateImage(Rotation.Right); }) .SetEvent(AppBarItem.RotateLeft, (s, args) => { PhotoScreen.RotateImage(Rotation.Left); }) .SetEvent(AppBarItem.ShowDetailInfo, async(s, args) => { PhotoScreen.DetailInfoDisplayed = true; await Task.Delay(500); UpdateAppBar(); }) .SetEvent(AppBarItem.HideDetailInfo, async(s, args) => { PhotoScreen.DetailInfoDisplayed = false; await Task.Delay(500); UpdateAppBar(); }) .SetEvent(AppBarItem.Resume, (s, args) => { MoviePlayer.Resume(); }) .SetEvent(AppBarItem.Pause, (s, args) => { MoviePlayer.Pause(); }) .SetEvent(AppBarItem.Close, (s, args) => { switch (InnerState) { case ViewerState.StillPlayback: ReleaseDetail(); break; case ViewerState.MoviePlayback: FinishMoviePlayback(); break; } UpdateInnerState(ViewerState.Single); }) .SetEvent(AppBarItem.LocalStorage, (s, args) => { var tuple = Tuple.Create <string, string>(nameof(StorageType.Local), null); Frame.Navigate(typeof(ContentsGridPage), tuple); }) .SetEvent(AppBarItem.RemoteStorage, (s, args) => { var menuFlyout = CreateRemoteDrivesMenuFlyout(); switch (menuFlyout.Items.Count) { case 0: UpdateTopBar(); break; // case 1: // TODO Transit directly // break; default: FlyoutBase.SetAttachedFlyout(s as FrameworkElement, menuFlyout); FlyoutBase.ShowAttachedFlyout(s as FrameworkElement); break; } }) .SetAccentColor(AppBarItem.RemoteStorage) .SetHeartBeat(AppBarItem.RemoteStorage) .SetEvent(AppBarItem.CancelSelection, (s, args) => { UpdateInnerState(ViewerState.Single); }); PhotoScreen.DetailInfoDisplayStatusUpdated += () => { UpdateAppBar(); }; }