Exemplo n.º 1
0
 public override Widget build(BuildContext context)
 {
     return(new StoreConnector <AppState, ArticlesScreenViewModel>(
                converter: state => new ArticlesScreenViewModel {
         isLoggedIn = state.loginState.isLoggedIn,
         feedHasNew = state.articleState.feedHasNew,
         currentTabBarIndex = state.tabBarState.currentTabIndex,
         nationalDayEnabled = state.serviceConfigState.nationalDayEnabled
     },
                builder: (context1, viewModel, dispatcher) => {
         var actionModel = new ArticlesScreenActionModel {
             pushToSearch = () => {
                 dispatcher.dispatch(new MainNavigatorPushToAction {
                     routeName = MainNavigatorRoutes.Search
                 });
                 AnalyticsManager.ClickEnterSearch("Home_Article");
             },
             pushToLogin = () => dispatcher.dispatch(new MainNavigatorPushToAction {
                 routeName = MainNavigatorRoutes.Login
             }),
             pushToReality = () => {
                 dispatcher.dispatch(new EnterRealityAction());
                 AnalyticsManager.AnalyticsClickEgg(1);
             }
         };
         return new ArticlesScreen(viewModel: viewModel, actionModel: actionModel);
     }
                ));
 }
Exemplo n.º 2
0
 public override Widget build(BuildContext context)
 {
     return(new StoreConnector <AppState, ArticlesScreenViewModel>(
                converter: state => new ArticlesScreenViewModel {
         isLoggedIn = state.loginState.isLoggedIn,
         showFirstEgg = state.eggState.showFirst
     },
                builder: (context1, viewModel, dispatcher) => {
         var actionModel = new ArticlesScreenActionModel {
             pushToSearch = () => {
                 dispatcher.dispatch(new MainNavigatorPushToAction {
                     routeName = MainNavigatorRoutes.Search
                 });
                 AnalyticsManager.ClickEnterSearch("Home_Article");
             },
             fetchReviewUrl = () => dispatcher.dispatch <IPromise>(Actions.fetchReviewUrl()),
             pushToReality = () => {
                 dispatcher.dispatch(new EnterRealityAction());
                 AnalyticsManager.AnalyticsClickEgg(1);
             }
         };
         return new ArticlesScreen(viewModel, actionModel);
     }
                ));
 }
 public override Widget build(BuildContext context)
 {
     return(new StoreConnector <AppState, ArticlesScreenViewModel>(
                converter: state => new ArticlesScreenViewModel {
         articlesLoading = state.articleState.articlesLoading,
         recommendArticleIds = state.articleState.recommendArticleIds,
         articleDict = state.articleState.articleDict,
         blockArticleList = state.articleState.blockArticleList,
         hottestHasMore = state.articleState.hottestHasMore,
         userDict = state.userState.userDict,
         teamDict = state.teamState.teamDict,
         isLoggedIn = state.loginState.isLoggedIn,
         hosttestOffset = state.articleState.recommendArticleIds.Count,
         showFirstEgg = state.eggState.showFirst
     },
                builder: (context1, viewModel, dispatcher) => {
         var actionModel = new ArticlesScreenActionModel {
             pushToSearch = () => {
                 dispatcher.dispatch(new MainNavigatorPushToAction {
                     routeName = MainNavigatorRoutes.Search
                 });
                 AnalyticsManager.ClickEnterSearch("Home_Article");
             },
             pushToLogin = () => dispatcher.dispatch(new MainNavigatorPushToAction {
                 routeName = MainNavigatorRoutes.Login
             }),
             pushToArticleDetail = id => dispatcher.dispatch(
                 new MainNavigatorPushToArticleDetailAction {
                 articleId = id
             }
                 ),
             pushToReport = (reportId, reportType) => dispatcher.dispatch(
                 new MainNavigatorPushToReportAction {
                 reportId = reportId,
                 reportType = reportType
             }
                 ),
             pushToBlock = articleId => {
                 dispatcher.dispatch(new BlockArticleAction {
                     articleId = articleId
                 });
                 dispatcher.dispatch(new DeleteArticleHistoryAction {
                     articleId = articleId
                 });
             },
             startFetchArticles = () => dispatcher.dispatch(new StartFetchArticlesAction()),
             fetchArticles = offset => dispatcher.dispatch <IPromise>(Actions.fetchArticles(offset: offset)),
             shareToWechat = (type, title, description, linkUrl, imageUrl) => dispatcher.dispatch <IPromise>(
                 Actions.shareToWechat(type, title, description, linkUrl, imageUrl)),
             pushToReality = () => {
                 dispatcher.dispatch(new EnterRealityAction());
                 AnalyticsManager.AnalyticsClickEgg(1);
             }
         };
         return new RecommendArticleScreen(viewModel: viewModel, actionModel: actionModel);
     }
                ));
 }
Exemplo n.º 4
0
 public ArticlesScreen(
     ArticlesScreenViewModel viewModel     = null,
     ArticlesScreenActionModel actionModel = null,
     Key key = null
     ) : base(key)
 {
     this.viewModel   = viewModel;
     this.actionModel = actionModel;
 }
Exemplo n.º 5
0
 public override Widget build(BuildContext context)
 {
     return(new StoreConnector <AppState, ArticlesScreenViewModel>(
                converter: state => new ArticlesScreenViewModel {
         isLoggedIn = state.loginState.isLoggedIn,
         feedHasNew = state.articleState.feedHasNew,
         searchSuggest = state.articleState.searchSuggest,
         currentTabBarIndex = state.tabBarState.currentTabIndex,
         nationalDayEnabled = state.serviceConfigState.nationalDayEnabled
     },
                builder: (context1, viewModel, dispatcher) => {
         var actionModel = new ArticlesScreenActionModel {
             pushToSearch = () => {
                 dispatcher.dispatch(new MainNavigatorPushToAction {
                     routeName = MainNavigatorRoutes.Search
                 });
                 AnalyticsManager.ClickEnterSearch("Home_Article");
             },
             pushToLogin = () => dispatcher.dispatch(new MainNavigatorPushToAction {
                 routeName = MainNavigatorRoutes.Login
             }),
             pushToReality = () => {
                 dispatcher.dispatch(new EnterRealityAction());
                 AnalyticsManager.AnalyticsClickEgg(1);
             },
             pushToGame = () => {
                 if (CCommonUtils.isIPhone)
                 {
                     dispatcher.dispatch(new MainNavigatorPushToAction {
                         routeName = MainNavigatorRoutes.Game
                     });
                 }
                 else
                 {
                     var url = LocalDataManager.getTinyGameUrl();
                     if (url.isEmpty() || url.Equals("no_game"))
                     {
                         CustomToast.show(new CustomToastItem(
                                              context: context,
                                              "暂无游戏",
                                              TimeSpan.FromMilliseconds(2000)
                                              ));
                         return;
                     }
                     dispatcher.dispatch(new MainNavigatorPushToWebViewAction {
                         url = url,
                         landscape = true,
                         fullscreen = true,
                         showOpenInBrowser = false
                     });
                 }
             }
         };
         return new ArticlesScreen(viewModel: viewModel, actionModel: actionModel);
     }
                ));
 }
Exemplo n.º 6
0
 public override Widget build(BuildContext context)
 {
     return(new StoreConnector <AppState, ArticlesScreenViewModel>(
                converter: state => new ArticlesScreenViewModel {
         articlesLoading = state.articleState.articlesLoading,
         articleList = state.articleState.articleList,
         articleDict = state.articleState.articleDict,
         blockArticleList = state.articleState.blockArticleList,
         hottestHasMore = state.articleState.hottestHasMore,
         userDict = state.userState.userDict,
         teamDict = state.teamState.teamDict,
         isLoggedIn = state.loginState.isLoggedIn,
         hosttestOffset = state.articleState.articleList.Count
     },
                builder: (context1, viewModel, dispatcher) => {
         var actionModel = new ArticlesScreenActionModel {
             pushToSearch = () => {
                 dispatcher.dispatch(new MainNavigatorPushToAction {
                     routeName = MainNavigatorRoutes.Search
                 });
                 AnalyticsManager.ClickEnterSearch("Home_Article");
             },
             pushToLogin = () => dispatcher.dispatch(new MainNavigatorPushToAction {
                 routeName = MainNavigatorRoutes.Login
             }),
             pushToArticleDetail = id => dispatcher.dispatch(
                 new MainNavigatorPushToArticleDetailAction {
                 articleId = id
             }
                 ),
             pushToReport = (reportId, reportType) => dispatcher.dispatch(
                 new MainNavigatorPushToReportAction {
                 reportId = reportId,
                 reportType = reportType
             }
                 ),
             pushToBlock = articleId => {
                 dispatcher.dispatch(new BlockArticleAction {
                     articleId = articleId
                 });
                 dispatcher.dispatch(new DeleteArticleHistoryAction {
                     articleId = articleId
                 });
             },
             startFetchArticles = () => dispatcher.dispatch(new StartFetchArticlesAction()),
             fetchArticles = offset => dispatcher.dispatch <IPromise>(Actions.fetchArticles(offset)),
             fetchReviewUrl = () => dispatcher.dispatch <IPromise>(Actions.fetchReviewUrl())
         };
         return new ArticlesScreen(viewModel, actionModel);
     }
                ));
 }
Exemplo n.º 7
0
 public override Widget build(BuildContext context)
 {
     return(new StoreConnector <AppState, ArticlesScreenViewModel>(
                converter: state => {
         var currentUserId = state.loginState.loginInfo.userId ?? "";
         var followArticleIds = state.articleState.followArticleIdDict.ContainsKey(key: currentUserId)
                 ? state.articleState.followArticleIdDict[key: currentUserId]
                 : new List <string>();
         var hotArticleIds = state.articleState.hotArticleIdDict.ContainsKey(key: currentUserId)
                 ? state.articleState.hotArticleIdDict[key: currentUserId]
                 : new List <string>();
         var user = state.userState.userDict.ContainsKey(key: currentUserId)
                 ? state.userState.userDict[key: currentUserId]
                 : new User();
         var followings = user.followings ?? new List <Following>();
         var likeMap = state.likeState.likeDict.ContainsKey(key: currentUserId)
                 ? state.likeState.likeDict[key: currentUserId]
                 : new Dictionary <string, bool>();
         var followMap = state.followState.followDict.ContainsKey(key: currentUserId)
                 ? state.followState.followDict[key: currentUserId]
                 : new Dictionary <string, bool>();
         return new ArticlesScreenViewModel {
             followArticlesLoading = state.articleState.followArticlesLoading,
             followingLoading = state.userState.followingLoading,
             followArticleIds = followArticleIds,
             hotArticleIds = hotArticleIds,
             followings = followings,
             blockArticleList = state.articleState.blockArticleList,
             followArticleHasMore = state.articleState.followArticleHasMore,
             hotArticleHasMore = state.articleState.hotArticleHasMore,
             hotArticlePage = state.articleState.hotArticlePage,
             articleDict = state.articleState.articleDict,
             userDict = state.userState.userDict,
             userLicenseDict = state.userState.userLicenseDict,
             teamDict = state.teamState.teamDict,
             likeMap = likeMap,
             followMap = followMap,
             isLoggedIn = state.loginState.isLoggedIn,
             currentUserId = state.loginState.loginInfo.userId ?? "",
             beforeTime = state.articleState.beforeTime,
             afterTime = state.articleState.afterTime
         };
     },
                builder: (context1, viewModel, dispatcher) => {
         var actionModel = new ArticlesScreenActionModel {
             pushToLogin = () => dispatcher.dispatch(new MainNavigatorPushToAction {
                 routeName = MainNavigatorRoutes.Login
             }),
             pushToArticleDetail = id => dispatcher.dispatch(
                 new MainNavigatorPushToArticleDetailAction {
                 articleId = id
             }
                 ),
             pushToReport = (reportId, reportType) => dispatcher.dispatch(
                 new MainNavigatorPushToReportAction {
                 reportId = reportId,
                 reportType = reportType
             }
                 ),
             pushToBlock = articleId => {
                 dispatcher.dispatch(new BlockArticleAction {
                     articleId = articleId
                 });
                 dispatcher.dispatch(new DeleteArticleHistoryAction {
                     articleId = articleId
                 });
             },
             pushToUserFollowing = userId => dispatcher.dispatch(
                 new MainNavigatorPushToUserFollowingAction {
                 userId = userId
             }
                 ),
             pushToUserDetail = userId => dispatcher.dispatch(
                 new MainNavigatorPushToUserDetailAction {
                 userId = userId
             }
                 ),
             pushToTeamDetail = teamId => dispatcher.dispatch(
                 new MainNavigatorPushToTeamDetailAction {
                 teamId = teamId
             }
                 ),
             startFollowUser = userId =>
                               dispatcher.dispatch(new StartFollowUserAction {
                 followUserId = userId
             }),
             followUser = userId => dispatcher.dispatch <IPromise>(Actions.fetchFollowUser(userId)),
             startUnFollowUser = userId =>
                                 dispatcher.dispatch(new StartUnFollowUserAction {
                 unFollowUserId = userId
             }),
             unFollowUser = userId => dispatcher.dispatch <IPromise>(Actions.fetchUnFollowUser(userId)),
             startFollowTeam = teamId =>
                               dispatcher.dispatch(new StartFetchFollowTeamAction {
                 followTeamId = teamId
             }),
             followTeam = teamId => dispatcher.dispatch <IPromise>(Actions.fetchFollowTeam(teamId)),
             startUnFollowTeam = teamId =>
                                 dispatcher.dispatch(new StartFetchUnFollowTeamAction {
                 unFollowTeamId = teamId
             }),
             unFollowTeam = teamId => dispatcher.dispatch <IPromise>(Actions.fetchUnFollowTeam(teamId)),
             sendComment = (articleId, channelId, content, nonce, parentMessageId, upperMessageId) => {
                 CustomDialogUtils.showCustomDialog(child: new CustomLoadingDialog());
                 return dispatcher.dispatch <IPromise>(
                     Actions.sendComment(articleId, channelId, content, nonce, parentMessageId,
                                         upperMessageId));
             },
             likeArticle = articleId => dispatcher.dispatch <IPromise>(Actions.likeArticle(articleId: articleId)),
             startFetchFollowing = () => dispatcher.dispatch(new StartFetchFollowingAction()),
             fetchFollowing = (userId, offset) =>
                              dispatcher.dispatch <IPromise>(Actions.fetchFollowing(userId: userId, offset: offset)),
             startFetchFollowArticles = () => dispatcher.dispatch(new StartFetchFollowArticlesAction()),
             fetchFollowArticles = (pageNumber, isFirst, isHot) =>
                                   dispatcher.dispatch <IPromise>(Actions.fetchFollowArticles(pageNumber, viewModel.beforeTime, viewModel.afterTime, isFirst, isHot)),
             shareToWechat = (type, title, description, linkUrl, imageUrl) => dispatcher.dispatch <IPromise>(
                 Actions.shareToWechat(type, title, description, linkUrl, imageUrl))
         };
         return new FollowArticleScreen(viewModel: viewModel, actionModel: actionModel);
     }
                ));
 }
 public override Widget build(BuildContext context)
 {
     return(new StoreConnector <AppState, ArticlesScreenViewModel>(
                converter: state => new ArticlesScreenViewModel {
         articlesLoading = state.articleState.articlesLoading,
         recommendArticleIds = state.articleState.recommendArticleIds,
         articleDict = state.articleState.articleDict,
         blockArticleList = state.articleState.blockArticleList,
         hottestHasMore = state.articleState.hottestHasMore,
         userDict = state.userState.userDict,
         teamDict = state.teamState.teamDict,
         followMap = state.followState.followDict.ContainsKey(state.loginState.loginInfo.userId ?? "")
                 ? state.followState.followDict[state.loginState.loginInfo.userId ?? ""]
                 : new Dictionary <string, bool>(),
         favoriteTagDict = state.favoriteState.favoriteTagDict,
         favoriteTagArticleDict = state.favoriteState.favoriteTagArticleDict,
         rankDict = state.leaderBoardState.rankDict,
         homeSliderIds = state.articleState.homeSliderIds,
         homeTopCollectionIds = state.articleState.homeTopCollectionIds,
         homeCollectionIds = state.articleState.homeCollectionIds,
         homeBloggerIds = state.articleState.homeBloggerIds,
         dailySelectionId = state.articleState.dailySelectionId,
         isLoggedIn = state.loginState.isLoggedIn,
         hosttestOffset = state.articleState.recommendArticleIds.Count,
         currentUserId = state.loginState.loginInfo.userId ?? "",
         leaderBoardUpdatedTime = state.articleState.leaderBoardUpdatedTime,
         selectedIndex = this.selectedIndex,
         hasNewArticle = state.articleState.recommendHasNewArticle
     },
                builder: (context1, viewModel, dispatcher) => {
         var actionModel = new ArticlesScreenActionModel {
             pushToLogin = () => dispatcher.dispatch(new MainNavigatorPushToAction {
                 routeName = MainNavigatorRoutes.Login
             }),
             pushToArticleDetail = id => dispatcher.dispatch(
                 new MainNavigatorPushToArticleDetailAction {
                 articleId = id
             }
                 ),
             openUrl = JPushPlugin.openUrlScheme,
             pushToLeaderBoard = () => dispatcher.dispatch(new MainNavigatorPushToLeaderBoardAction()),
             pushToLeaderBoardDetail = id =>
                                       dispatcher.dispatch(new MainNavigatorPushToLeaderBoardDetailAction {
                 id = id
             }
                                                           ),
             pushToHomeEvent = () => dispatcher.dispatch(new MainNavigatorPushToAction {
                 routeName = MainNavigatorRoutes.HomeEvent
             }),
             pushToBlogger = () => dispatcher.dispatch(new MainNavigatorPushToAction {
                 routeName = MainNavigatorRoutes.Blogger
             }),
             pushToUserDetail = userId => dispatcher.dispatch(new MainNavigatorPushToUserDetailAction {
                 userId = userId
             }),
             pushToReport = (reportId, reportType) => dispatcher.dispatch(
                 new MainNavigatorPushToReportAction {
                 reportId = reportId,
                 reportType = reportType
             }
                 ),
             pushToBlock = articleId => {
                 dispatcher.dispatch(new BlockArticleAction {
                     articleId = articleId
                 });
                 dispatcher.dispatch(new DeleteArticleHistoryAction {
                     articleId = articleId
                 });
             },
             startFetchArticles = () => dispatcher.dispatch(new StartFetchArticlesAction()),
             fetchArticles = (userId, offset) =>
                             dispatcher.dispatch <IPromise>(Actions.fetchArticles(userId: userId, offset: offset)),
             startFollowUser = userId =>
                               dispatcher.dispatch(new StartFollowUserAction {
                 followUserId = userId
             }),
             followUser = userId =>
                          dispatcher.dispatch <IPromise>(Actions.fetchFollowUser(followUserId: userId)),
             startUnFollowUser = userId =>
                                 dispatcher.dispatch(new StartUnFollowUserAction {
                 unFollowUserId = userId
             }),
             unFollowUser = userId => dispatcher.dispatch <IPromise>(Actions.fetchUnFollowUser(userId)),
             shareToWechat = (type, title, description, linkUrl, imageUrl) => dispatcher.dispatch <IPromise>(
                 Actions.shareToWechat(type, title, description, linkUrl, imageUrl))
         };
         return new RecommendArticleScreen(viewModel: viewModel, actionModel: actionModel);
     }
                ));
 }