X Tutup
Skip to content

Commit b5097a9

Browse files
committed
add trend filter
1 parent be3be1b commit b5097a9

File tree

6 files changed

+48
-26
lines changed

6 files changed

+48
-26
lines changed

lib/common/dao/ReposDao.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ class ReposDao {
2424
* @param languageType 语言
2525
*/
2626
static getTrendDao({since = 'daily', languageType, page = 0}) async {
27-
String localLanguage = (languageType != null) ? languageType : "*";
28-
String url = Address.trending(since, localLanguage);
27+
String url = Address.trending(since, languageType);
2928
var res = await new GitHubTrending().fetchTrending(url);
3029
if (res != null && res.result && res.data.length > 0) {
3130
List<ReposViewModel> list = new List();

lib/common/net/Address.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ class Address {
290290

291291
///趋势 get
292292
static trending(since, languageType) {
293-
if (languageType == null) {
293+
if (languageType != null) {
294294
return "https://github.com/trending/$languageType?since=$since";
295295
}
296296
return "https://github.com/trending?since=$since";

lib/common/net/trending/GithubTrending.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,12 @@ class TrendingUtil {
9797
startFlag = tag["start"];
9898
}
9999
var content = parseContentWithNote(noteContent, startFlag, tag["end"]);
100-
var metaContent = content.substring(content.indexOf('</svg>') + '</svg>'.length, content.length);
101-
return trim(metaContent);
100+
if(content.indexOf('</svg>') != -1 && (content.indexOf('</svg>') + '</svg>'.length <= content.length)) {
101+
var metaContent = content.substring(content.indexOf('</svg>') + '</svg>'.length, content.length);
102+
return trim(metaContent);
103+
} else {
104+
return trim(content);
105+
}
102106
}
103107

104108
static parseRepoLang(repo, metaNoteContent) {

lib/common/style/GSYStyle.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,11 @@ class GSYStrings {
209209
static const String home_trend = "趋势";
210210
static const String home_my = "我的";
211211

212+
static const String trend_day = '今日';
213+
static const String trend_week = '本周';
214+
static const String trend_month = '本月';
215+
static const String trend_all = '全部';
216+
212217
static const String user_tab_repos = "仓库";
213218
static const String user_tab_fans = "粉丝";
214219
static const String user_tab_focus = "关注";

lib/common/utils/EventUtils.dart

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -155,22 +155,6 @@ class EventUtils {
155155
break;
156156
case 'IssueCommentEvent':
157157
case 'IssuesEvent':
158-
// 去issue
159-
/*Actions.IssueDetail({
160-
issue: event.payload.issue,
161-
title: fullName,
162-
repositoryName: repositoryName,
163-
userName: owner,
164-
needRightBtn: true,
165-
iconType:1,
166-
rightBtn: 'home',
167-
rightBtnPress: () => {
168-
Actions.RepositoryDetail({
169-
repositoryName: repositoryName, ownerName: owner
170-
, title: repositoryName
171-
});
172-
}
173-
});*/
174158
NavigatorUtils.goIssueDetail(context, owner, repositoryName, event["payload"]["issue"]["number"].toString());
175159
break;
176160
default:

lib/page/TrendPage.dart

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ class TrendPage extends StatefulWidget {
1818
}
1919

2020
class _TrendPageState extends GSYListState<TrendPage> {
21+
TrendTypeModel selectTime = TrendTime[0];
22+
TrendTypeModel selectType = TrendType[0];
23+
2124
_renderItem(ReposViewModel e) {
2225
return new ReposItem(e, onPressed: () {
2326
NavigatorUtils.goReposDetail(context, e.ownerName, e.repositoryName);
@@ -35,12 +38,18 @@ class _TrendPageState extends GSYListState<TrendPage> {
3538
padding: new EdgeInsets.only(left: 0.0, top: 5.0, right: 0.0, bottom: 5.0),
3639
child: new Row(
3740
children: <Widget>[
38-
_renderHeaderPopItem("aaa", [new TrendTypeModel("fff", "fff"), new TrendTypeModel("fff", "fff")], (TrendTypeModel result) {
39-
setState(() {});
41+
_renderHeaderPopItem(selectTime.name, TrendTime, (TrendTypeModel result) {
42+
setState(() {
43+
selectTime = result;
44+
});
45+
showRefreshLoading();
4046
}),
4147
new Container(height: 10.0, width: 0.5, color: Colors.white),
42-
_renderHeaderPopItem("bbb", [new TrendTypeModel("fff", "fff"), new TrendTypeModel("fff", "fff")], (TrendTypeModel result) {
43-
setState(() {});
48+
_renderHeaderPopItem(selectType.name, TrendType, (TrendTypeModel result) {
49+
setState(() {
50+
selectType = result;
51+
});
52+
showRefreshLoading();
4453
}),
4554
],
4655
),
@@ -73,7 +82,7 @@ class _TrendPageState extends GSYListState<TrendPage> {
7382

7483
@override
7584
requestRefresh() async {
76-
return await ReposDao.getTrendDao(since: 'daily');
85+
return await ReposDao.getTrendDao(since: selectTime.value, languageType: selectType.value);
7786
}
7887

7988
@override
@@ -117,3 +126,24 @@ class TrendTypeModel {
117126

118127
TrendTypeModel(this.name, this.value);
119128
}
129+
130+
var TrendTime = [
131+
TrendTypeModel(GSYStrings.trend_day, "daily"),
132+
TrendTypeModel(GSYStrings.trend_week, "weekly"),
133+
TrendTypeModel(GSYStrings.trend_month, "monthly"),
134+
];
135+
136+
var TrendType = [
137+
TrendTypeModel(GSYStrings.trend_all, null),
138+
TrendTypeModel("Java", "Java"),
139+
TrendTypeModel("Kotlin", "Kotlin"),
140+
TrendTypeModel("Objective-C", "Objective-C"),
141+
TrendTypeModel("Swift", "Swift"),
142+
TrendTypeModel("JavaScript", "JavaScript"),
143+
TrendTypeModel("PHP", "PHP"),
144+
TrendTypeModel("Go", "Go"),
145+
TrendTypeModel("C++", "C++"),
146+
TrendTypeModel("C", "C"),
147+
TrendTypeModel("HTML", "HTML"),
148+
TrendTypeModel("CSS", "CSS"),
149+
];

0 commit comments

Comments
 (0)
X Tutup