Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 2
0
 private void CommandBarRotateRightSelected()
 {
     if (InnerState == ViewerState.StillPlayback && PhotoScreen.Visibility.IsVisible())
     {
         PhotoScreen.RotateImage(Rotation.Right);
     }
 }
Exemplo n.º 3
0
 private void ReleaseDetail()
 {
     PhotoScreen.ReleaseImage();
     SetStillDetailVisibility(false);
 }
Exemplo n.º 4
0
        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(); };
        }