@@ -28,8 +28,6 @@ import 'package:gsy_github_app_flutter/common/model/User.dart';
2828import 'package:gsy_github_app_flutter/common/net/address.dart' ;
2929import 'package:gsy_github_app_flutter/common/net/api.dart' ;
3030import 'package:gsy_github_app_flutter/common/net/trending/github_trending.dart' ;
31- import 'package:gsy_github_app_flutter/common/redux/trend_redux.dart' ;
32- import 'package:gsy_github_app_flutter/common/style/gsy_style.dart' ;
3331import 'package:gsy_github_app_flutter/common/utils/common_utils.dart' ;
3432import 'package:package_info/package_info.dart' ;
3533import 'package:pub_semver/pub_semver.dart' ;
@@ -47,32 +45,39 @@ class ReposDao {
4745 * @param since 数据时长, 本日,本周,本月
4846 * @param languageType 语言
4947 */
50- static getTrendDao (Store store, {since = 'daily' , languageType, page = 0 , needDb = true }) async {
48+ static getTrendDao ({since = 'daily' , languageType, page = 0 , needDb = true }) async {
5149 TrendRepositoryDbProvider provider = new TrendRepositoryDbProvider ();
5250 String languageTypeDb = languageType ?? "*" ;
53- List <TrendingRepoModel > list = await provider.getData (languageTypeDb, since);
54- if (list != null && list.length > 0 ) {
55- store.dispatch (new RefreshTrendAction (list));
56- }
57- String url = Address .trending (since, languageType);
58- var res = await new GitHubTrending ().fetchTrending (url);
59- if (res != null && res.result && res.data.length > 0 ) {
60- List <TrendingRepoModel > list = new List ();
61- var data = res.data;
62- if (data == null || data.length == 0 ) {
51+
52+ next () async {
53+ String url = Address .trending (since, languageType);
54+ var res = await new GitHubTrending ().fetchTrending (url);
55+ if (res != null && res.result && res.data.length > 0 ) {
56+ List <TrendingRepoModel > list = new List ();
57+ var data = res.data;
58+ if (data == null || data.length == 0 ) {
59+ return new DataResult (null , false );
60+ }
61+ if (needDb) {
62+ provider.insert (languageTypeDb, since, json.encode (data));
63+ }
64+ for (int i = 0 ; i < data.length; i++ ) {
65+ TrendingRepoModel model = data[i];
66+ list.add (model);
67+ }
68+ return new DataResult (list, true );
69+ } else {
6370 return new DataResult (null , false );
6471 }
65- if (needDb) {
66- provider. insert (languageTypeDb, since, json. encode (data));
67- }
68- for ( int i = 0 ; i < data.length; i ++ ) {
69- TrendingRepoModel model = data[i];
70- list. add (model );
72+ }
73+
74+ if (needDb) {
75+ List < TrendingRepoModel > list = await provider. getData (languageTypeDb, since);
76+ if (list != null && list.length > 0 ) {
77+ return await next ( );
7178 }
72- store.dispatch (new RefreshTrendAction (list));
73- return new DataResult (list, true );
74- } else {
75- return new DataResult (null , false );
79+ DataResult dataResult = new DataResult (list, true , next: next ());
80+ return dataResult;
7681 }
7782 }
7883
@@ -607,12 +612,7 @@ class ReposDao {
607612 ? Address .getReposRelease (userName, reposName) + Address .getPageParams ("?" , page)
608613 : Address .getReposTag (userName, reposName) + Address .getPageParams ("?" , page);
609614
610- var res = await httpManager.netFetch (
611- url,
612- null ,
613- {"Accept" : (needHtml ? 'application/vnd.github.html,application/vnd.github.VERSION.raw' : "" )},
614- null
615- );
615+ var res = await httpManager.netFetch (url, null , {"Accept" : (needHtml ? 'application/vnd.github.html,application/vnd.github.VERSION.raw' : "" )}, null );
616616 if (res != null && res.result && res.data.length > 0 ) {
617617 List <Release > list = new List ();
618618 var dataList = res.data;
@@ -717,8 +717,6 @@ class ReposDao {
717717 }
718718 }
719719
720-
721-
722720 /**
723721 * 获取阅读历史
724722 */
0 commit comments