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(); } }
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(); } } } }
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()); } } }
protected virtual string ResolvePageName() { return(PageManager.CurrentDefaultPageTitle()); }