public void OpenPage(HohoemaPageType pageType, object parameter = null, bool isForgetNavigation = false) { HohoemaApp.UIDispatcher.RunAsync(CoreDispatcherPriority.Normal, async() => { using (var releaser = await _NavigationLock.LockAsync()) { // メインウィンドウでウィンドウ全体で再生している場合は // 強制的に小窓モードに切り替えてページを表示する if (HohoemaApp.Playlist.IsDisplayMainViewPlayer && HohoemaApp.Playlist.PlayerDisplayType == PlayerDisplayType.PrimaryView) { HohoemaApp.Playlist.PlayerDisplayType = PlayerDisplayType.PrimaryWithSmall; } PageNavigating = true; try { if (CurrentPageType == pageType && PageNavigationParameter == parameter) { return; } await Task.Delay(30); var oldPageTitle = PageTitle; PageTitle = ""; var oldPageType = CurrentPageType; CurrentPageType = pageType; var oldPageParameter = PageNavigationParameter; PageNavigationParameter = parameter; await Task.Delay(30); if (!NavigationService.Navigate(pageType.ToString(), parameter)) { CurrentPageType = oldPageType; PageTitle = oldPageTitle; PageNavigationParameter = oldPageParameter; } else { if (isForgetNavigation || IsIgnoreRecordPageType(oldPageType)) { ForgetLastPage(); } } } finally { PageNavigating = false; } HohoemaViewManager.ShowMainView(); } }) .AsTask() .ConfigureAwait(false); }
public static ToastArguments MakeOpenPageWithIdToastArguments(HohoemaPageType pageType, string id) { var args = new ToastArguments(); args.Add(ToastArgumentKey_Action, ToastArgumentValue_Action_OpenPage); args.Add(ToastArgumentKey_PageType, pageType.ToString()); args.Add(ToastArgumentKey_PageParameters, $"id={id}"); return(args); }
public static ToastArguments MakeOpenPageToastArguments(HohoemaPageType pageType, string parameters = null) { var args = new ToastArguments(); args.Add(ToastArgumentKey_Action, ToastArgumentValue_Action_OpenPage); args.Add(ToastArgumentKey_PageType, pageType.ToString()); if (parameters != null) { args.Add(ToastArgumentKey_PageParameters, parameters); } return(args); }
public void OpenPage(HohoemaPageType pageType, object parameter = null) { HohoemaApp.UIDispatcher.RunAsync(CoreDispatcherPriority.Normal, async() => { PageNavigating = true; try { await Task.Delay(30); var oldPageTitle = PageTitle; PageTitle = ""; var oldPageType = CurrentPageType; CurrentPageType = pageType; await Task.Delay(30); if (!NavigationService.Navigate(pageType.ToString(), parameter)) { CurrentPageType = oldPageType; PageTitle = oldPageTitle; } else { if (IsIgnoreRecordPageType(oldPageType)) { ForgetLastPage(); } } } finally { PageNavigating = false; } }) .AsTask() .ConfigureAwait(false); }
public static string PageTypeToTitle(HohoemaPageType pageType) { switch (pageType) { case HohoemaPageType.RankingCategoryList: return("ランキングカテゴリ一覧"); case HohoemaPageType.RankingCategory: return("カテゴリランキング"); case HohoemaPageType.UserMylist: return("マイリスト一覧"); case HohoemaPageType.Mylist: return("マイリスト"); case HohoemaPageType.FollowManage: return("フォロー"); case HohoemaPageType.History: return("視聴履歴"); case HohoemaPageType.Search: return("検索"); case HohoemaPageType.CacheManagement: return("キャッシュ管理"); case HohoemaPageType.Settings: return("設定"); case HohoemaPageType.VideoInfomation: return("動画情報"); case HohoemaPageType.ConfirmWatchHurmfulVideo: return("動画視聴の確認"); case HohoemaPageType.FeedGroupManage: return("全てのフィードグループ"); case HohoemaPageType.FeedGroup: return("フィードグループ"); case HohoemaPageType.FeedVideoList: return("フィードの動画一覧"); case HohoemaPageType.UserInfo: return("ユーザー情報"); case HohoemaPageType.UserVideo: return("ユーザー投稿動画一覧"); case HohoemaPageType.Community: return("コミュニティ情報"); case HohoemaPageType.CommunityVideo: return("コミュニティ動画一覧"); default: Debug.WriteLine("not support " + nameof(HohoemaPageType) + "." + pageType.ToString()); return(pageType.ToString()); // throw new NotSupportedException(); } }