コード例 #1
0
        public override void OnNavigatedTo(NavigatedToEventArgs e, Dictionary <string, object> viewModelState)
        {
            // PageManagerにナビゲーション動作を伝える
            PageManager.OnNavigated(e);

            if (UseDefaultPageTitle)
            {
                Title = PageManager.CurrentDefaultPageTitle();
            }

            base.OnNavigatedTo(e, viewModelState);

            HohoemaApp.OnResumed += _OnResumed;

            // TODO: プレイヤーを別ウィンドウにしている場合に、プレイヤーの表示状態変更を抑制する
            // プレイヤーがフィル表示している時にバックキーのアクションを再定義する
            Observable.CombineLatest(
                HohoemaApp.Playlist.ObserveProperty(x => x.IsPlayerFloatingModeEnable).Select(x => !x),
                HohoemaApp.Playlist.ObserveProperty(x => x.IsDisplayPlayer)
                )
            .Select(x => x.All(y => y))
            .Subscribe(isBackNavigationClosePlayer =>
            {
                const string PlayerFillModeBackNavigationCancel = "fill_mode_cancel";
                if (isBackNavigationClosePlayer)
                {
                    AddSubsitutionBackNavigateAction(PlayerFillModeBackNavigationCancel, () =>
                    {
                        // Bボタンによる動画プレイヤーを閉じる動作を一切受け付けない
                        HohoemaApp.Playlist.IsDisplayPlayerControlUI = !HohoemaApp.Playlist.IsDisplayPlayerControlUI;
                        return(false);
                    });
                }
                else
                {
                    RemoveSubsitutionBackNavigateAction(PlayerFillModeBackNavigationCancel);
                }
            })
            .AddTo(_NavigatingCompositeDisposable);

            // サインインステータスチェック
            _NavigatedToTaskCancelToken = new CancellationTokenSource();

            _NavigatedToTask = __NavigatedToAsync(_NavigatedToTaskCancelToken.Token, e, viewModelState);

            if (!String.IsNullOrEmpty(Title))
            {
                PageManager.PageTitle = Title;
            }
            else
            {
                PageManager.PageTitle = PageManager.CurrentDefaultPageTitle();
            }
        }
コード例 #2
0
        public override void OnNavigatedTo(NavigatedToEventArgs e, Dictionary <string, object> viewModelState)
        {
            // PageManagerにナビゲーション動作を伝える
            PageManager.OnNavigated(e);

            if (!IsPageNameResolveOnPostNavigatedToAsync)
            {
                if (false == (this is VideoPlayerPageViewModel || this is LivePlayerPageViewModel))
                {
                    try
                    {
                        Title = ResolvePageName();
                    }
                    catch
                    {
                        Title = PageManager.CurrentDefaultPageTitle();
                    }
                }
            }

            base.OnNavigatedTo(e, viewModelState);

            //            HohoemaApp.OnResumed += _OnResumed;


            try
            {
                // サインインステータスチェック
                _NavigatedToTaskCancelToken = new CancellationTokenSource();

                _NavigatedToTask = __NavigatedToAsync(_NavigatedToTaskCancelToken.Token, e, viewModelState);
            }
            catch
            {
            }

            if (CoreApplication.GetCurrentView().IsMain)
            {
                if (false == (this is VideoPlayerPageViewModel || this is LivePlayerPageViewModel))
                {
                    if (!String.IsNullOrEmpty(Title))
                    {
                        PageManager.PageTitle = Title;
                    }
                    else
                    {
                        PageManager.PageTitle = PageManager.CurrentDefaultPageTitle();
                    }
                }
            }
        }
コード例 #3
0
        private async Task __NavigatedToAsync(CancellationToken cancelToken, NavigatedToEventArgs e, Dictionary <string, object> viewModelState)
        {
            using (var releaser = await _NavigationLock.LockAsync())
            {
                // Note: BGUpdateの再有効化はナビゲーション処理より前で行う
                // ナビゲーション処理内でBGUpdate待ちをした場合に、デッドロックする可能性がでる

                // BG更新処理を再開
                if (CanActivateBackgroundUpdate)
                {
                    HohoemaApp.BackgroundUpdater.Activate();
                }
                else
                {
                    HohoemaApp.BackgroundUpdater.Deactivate();
                }

                await NavigatedToAsync(cancelToken, e, viewModelState);


                await CallAppServiceLevelOffline(_NavigatedToTaskCancelToken.Token);

                await CallAppServiceLevelOnlineWithoutLoggedIn(_NavigatedToTaskCancelToken.Token);

                if (await CheckSignIn())
                {
                    __OnSignin();
                }

                if (IsRequireSignIn)
                {
                    HohoemaApp.OnSignout += __OnSignout;
                    HohoemaApp.OnSignin  += __OnSignin;
                }

                if (string.IsNullOrEmpty(Title))
                {
                    UpdateTitle(PageManager.CurrentDefaultPageTitle());
                }
            }
        }
コード例 #4
0
 protected virtual string ResolvePageName()
 {
     return(PageManager.CurrentDefaultPageTitle());
 }