Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Jun 5, 2024. It is now read-only.

Commit 92e87e4

Browse files
committed
添加我的订阅
1 parent 0b90213 commit 92e87e4

25 files changed

+839
-76
lines changed

‎module-discover/src/main/AndroidManifest.xml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,11 @@
2727
<activity android:name=".ui.BlogQuestionActivity" />
2828
<activity
2929
android:name=".ui.BlogQuestionDetailActivity"
30-
android:label="@string/label_question_detail"/>
30+
android:label="@string/label_question_detail"/>
3131
<activity android:name=".ui.AntColumnActivity" />
32-
<activity android:name=".ui.AntColumnDetailActivity" />
32+
<activity
33+
android:name=".ui.AntColumnDetailActivity"
34+
android:launchMode="singleTop" />
35+
<activity android:name=".ui.AntUserColumnDetailActivity" />
3336
</application>
3437
</manifest>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.rae.cnblogs.discover;
2+
3+
public class SubscribeColumnMessage {
4+
private String columnId;
5+
6+
public String getColumnId() {
7+
return columnId;
8+
}
9+
10+
public SubscribeColumnMessage(String columnId) {
11+
this.columnId = columnId;
12+
}
13+
}

‎module-discover/src/main/java/com/rae/cnblogs/discover/column/detail/AntColumnDetailAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ private void bindHeaderView(BaseViewHolder helper, ColumnDetailHeaderEntity item
7676
AntColumnInfo columnInfo = item.getColumnInfo();
7777
helper.setText(R.id.tv_title, columnInfo.getTitle());
7878
helper.setText(R.id.tv_sub_title, columnInfo.getRecommendation());
79-
helper.setText(R.id.tv_article_num, ApiUtils.formatNumber(columnInfo.getArticleNum()));
79+
helper.setText(R.id.tv_article_num, ApiUtils.formatNumber(columnInfo.getArticleCount()));
8080
helper.setText(R.id.tv_sub_num, ApiUtils.formatNumber(columnInfo.getSubnum()));
8181
AppImageLoader.display(columnInfo.getLogo(), (ImageView) helper.getView(R.id.img_logo));
8282
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.rae.cnblogs.discover.column.detail;
2+
3+
import android.content.Context;
4+
import android.support.annotation.Nullable;
5+
6+
import com.antcode.sdk.model.AntArticleInfo;
7+
import com.chad.library.adapter.base.BaseViewHolder;
8+
import com.rae.cnblogs.discover.R;
9+
import com.rae.cnblogs.discover.RaeBaseQuickAdapter;
10+
11+
import java.util.List;
12+
13+
public class AntUserColumnDetailAdapter extends RaeBaseQuickAdapter<AntArticleInfo, BaseViewHolder> {
14+
15+
16+
public AntUserColumnDetailAdapter(Context context, @Nullable List<AntArticleInfo> data) {
17+
super(context, R.layout.item_user_column_detail, data);
18+
}
19+
20+
@Override
21+
protected void convert(BaseViewHolder helper, AntArticleInfo item) {
22+
helper.setText(R.id.tv_title, item.getTitle());
23+
helper.setText(R.id.tv_summary, item.getSummary());
24+
}
25+
}

‎module-discover/src/main/java/com/rae/cnblogs/discover/fragment/AntColumnFragment.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,11 @@ public void onLoadMoreRequested() {
100100
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
101101
AntColumnInfo item = mAdapter.getItem(position);
102102
if (item == null) return;
103-
AppRoute.routeToAntColumnDetail(view.getContext(), item.getId());
103+
if (getType() == IAntColumnContract.TYPE_MY) {
104+
AppRoute.routeToAntUserColumnDetail(view.getContext(), item.getId());
105+
} else {
106+
AppRoute.routeToAntColumnDetail(view.getContext(), item.getId());
107+
}
104108
}
105109
});
106110

‎module-discover/src/main/java/com/rae/cnblogs/discover/fragment/DiscoverFragment.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public class DiscoverFragment extends BasicFragment implements IDiscoverHomeCont
5858
private Banner mBanner;
5959
private ViewGroup mTabLayout;
6060
private int mCurrentBannerPosition;
61+
private List<AntAdInfo> mAdInfoList;
6162

6263
@Override
6364
protected int getLayoutId() {
@@ -117,7 +118,8 @@ private void initTabs() {
117118
}
118119

119120
@Override
120-
public void onLoadAds(final List<AntAdInfo> ads) {
121+
public void onLoadAds(List<AntAdInfo> ads) {
122+
mAdInfoList = ads;
121123
mRefreshLayout.setRefreshing(false);
122124

123125
if (mBanner == null) {
@@ -135,7 +137,7 @@ public void onPageSelected(int position) {
135137
banner.setOnBannerListener(new OnBannerListener() {
136138
@Override
137139
public void OnBannerClick(int position) {
138-
AntAdInfo adInfo = ads.get(position % ads.size());
140+
AntAdInfo adInfo = mAdInfoList.get(position % mAdInfoList.size());
139141
AppRoute.autoRoute(getContext(), adInfo.getType(), adInfo.getUrl(), adInfo.getData());
140142
}
141143
});
@@ -147,6 +149,7 @@ public void OnBannerClick(int position) {
147149
}
148150

149151
UICompat.setVisibility(mBanner, ads.size() > 0);
152+
150153
mBanner.setImages(ads).start();
151154
}
152155

‎module-discover/src/main/java/com/rae/cnblogs/discover/holder/AntColumnHolder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public void bindData(AntColumnInfo data) {
4949
AppImageLoader.display(data.getLogo(), logoView);
5050
}
5151
titleView.setText(data.getTitle());
52-
numberView.setText(numberView.getResources().getString(R.string.article_num_format, data.getArticleNum()));
52+
numberView.setText(numberView.getResources().getString(R.string.article_num_format, data.getArticleCount()));
5353
authorView.setText(String.format("%s %s", data.getAntAuthor().getNickname(), data.getAntAuthor().getTitle()));
5454
recommendationView.setText(data.getRecommendation());
5555
subNumView.setText(numberView.getResources().getString(R.string.sub_num_format, data.getSubnum()));

‎module-discover/src/main/java/com/rae/cnblogs/discover/presenter/AntColumnDetailPresenterImpl.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
import com.antcode.sdk.model.AntEmptyInfo;
99
import com.rae.cnblogs.discover.AntCodeBasicPresenter;
1010
import com.rae.cnblogs.discover.AntSdkDefaultObserver;
11+
import com.rae.cnblogs.discover.SubscribeColumnMessage;
12+
13+
import org.greenrobot.eventbus.EventBus;
1114

1215
public class AntColumnDetailPresenterImpl extends AntCodeBasicPresenter<IAntColumnDetailContract.View> implements IAntColumnDetailContract.Presenter {
1316

@@ -23,35 +26,23 @@ public AntColumnDetailPresenterImpl(IAntColumnDetailContract.View view) {
2326

2427
@Override
2528
protected void onStart() {
26-
String columnId = getView().getColumnId();
29+
finalString columnId = getView().getColumnId();
2730
mColumnApi.getColumnDetail(columnId).with(this).subscribe(new AntSdkDefaultObserver<AntColumnInfo>() {
2831
@Override
2932
protected void onError(String message) {
3033
getView().onLoadDataError(message);
34+
getView().onColumnSubscribe(false);
3135
}
3236

3337
@Override
3438
protected void accept(AntColumnInfo columnInfo) {
3539
mColumnInfo = columnInfo;
40+
getView().onColumnSubscribe(columnInfo.isSubscribe());
3641
getView().onLoadColumnDetail(columnInfo);
3742
}
3843
});
3944

40-
// 查询是否已经订阅
41-
mColumnApi.getUserColumnDetail(columnId)
42-
.with(this)
43-
.subscribe(new AntSdkDefaultObserver<AntColumnInfo>() {
44-
@Override
45-
protected void onError(String message) {
46-
// 不处理
47-
getView().onColumnSubscribe(false);
48-
}
4945

50-
@Override
51-
protected void accept(AntColumnInfo antColumnInfo) {
52-
getView().onColumnSubscribe(true);
53-
}
54-
});
5546
}
5647

5748
@Override
@@ -66,11 +57,20 @@ public void subscribe() {
6657
@Override
6758
protected void onError(String message) {
6859
getView().onSubscribeError(message);
60+
getView().onColumnSubscribe(false);
6961
}
7062

7163
@Override
7264
protected void accept(AntEmptyInfo antEmptyInfo) {
65+
EventBus.getDefault().post(new SubscribeColumnMessage(getView().getColumnId()));
7366
getView().onSubscribeSuccess();
67+
getView().onColumnSubscribe(true);
68+
}
69+
70+
@Override
71+
protected void onLoginExpired() {
72+
super.onLoginExpired();
73+
getView().onLoginExpired();
7474
}
7575
});
7676
}

‎module-discover/src/main/java/com/rae/cnblogs/discover/presenter/AntColumnPresenterImpl.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.rae.cnblogs.PageObservable;
88
import com.rae.cnblogs.discover.AntCodeBasicPresenter;
99
import com.rae.cnblogs.discover.AntPageObservable;
10+
import com.rae.cnblogs.discover.SubscribeColumnMessage;
1011

1112
import org.greenrobot.eventbus.EventBus;
1213
import org.greenrobot.eventbus.Subscribe;
@@ -53,6 +54,14 @@ public void OnLoginChanged(AntUserInfo userInfo) {
5354
onStart();
5455
}
5556

57+
@Subscribe
58+
public void onUnsubscribeColumnEvent(SubscribeColumnMessage msg) {
59+
// 取消订阅
60+
if (getView().getType() == IAntColumnContract.TYPE_MY) {
61+
onStart();
62+
}
63+
}
64+
5665
@Override
5766
protected void onStart() {
5867
mPageObservable.start();
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
package com.rae.cnblogs.discover.presenter;
2+
3+
import android.support.annotation.Nullable;
4+
5+
import com.antcode.sdk.AntCodeSDK;
6+
import com.antcode.sdk.IAntColumnApi;
7+
import com.antcode.sdk.model.AntArticleInfo;
8+
import com.antcode.sdk.model.AntColumnInfo;
9+
import com.antcode.sdk.model.AntEmptyInfo;
10+
import com.rae.cnblogs.discover.AntCodeBasicPresenter;
11+
import com.rae.cnblogs.discover.AntPageObservable;
12+
import com.rae.cnblogs.discover.AntSdkDefaultObserver;
13+
import com.rae.cnblogs.discover.SubscribeColumnMessage;
14+
15+
import org.greenrobot.eventbus.EventBus;
16+
17+
import java.util.List;
18+
19+
import io.reactivex.Observable;
20+
21+
public class AntUserColumnDetailPresenterImpl extends AntCodeBasicPresenter<IAntUserColumnDetailContract.View> implements IAntUserColumnDetailContract.Presenter {
22+
23+
private final IAntColumnApi mColumnApi;
24+
25+
@Nullable
26+
private AntColumnInfo mColumnInfo;
27+
28+
private AntPageObservable<AntArticleInfo> mPageObservable;
29+
30+
public AntUserColumnDetailPresenterImpl(IAntUserColumnDetailContract.View view) {
31+
super(view);
32+
AntCodeSDK antCodeSDK = AntCodeSDK.getInstance();
33+
mColumnApi = antCodeSDK.getColumnApi();
34+
mPageObservable = new AntPageObservable<AntArticleInfo>(view, this) {
35+
@Override
36+
protected Observable<List<AntArticleInfo>> onCreateObserver(int page) {
37+
final String columnId = getView().getColumnId();
38+
return mColumnApi.getColumnArticles(columnId, page);
39+
}
40+
};
41+
}
42+
43+
@Override
44+
protected void onStart() {
45+
final String columnId = getView().getColumnId();
46+
mColumnApi.getUserColumnDetail(columnId).with(this).subscribe(new AntSdkDefaultObserver<AntColumnInfo>() {
47+
@Override
48+
protected void onError(String message) {
49+
getView().onLoadDataError(message);
50+
}
51+
52+
@Override
53+
protected void accept(AntColumnInfo columnInfo) {
54+
mColumnInfo = columnInfo;
55+
getView().onLoadColumnDetail(columnInfo);
56+
}
57+
58+
@Override
59+
protected void onLoginExpired() {
60+
super.onLoginExpired();
61+
getView().onLoginExpired();
62+
}
63+
});
64+
}
65+
66+
67+
@Override
68+
public void loadData() {
69+
mPageObservable.start();
70+
}
71+
72+
@Override
73+
public void loadMore() {
74+
mPageObservable.loadMore();
75+
}
76+
77+
@Override
78+
public void unsubscribe() {
79+
mColumnApi.unsubscribe(getView().getColumnId())
80+
.with(this)
81+
.subscribe(new AntSdkDefaultObserver<AntEmptyInfo>() {
82+
@Override
83+
protected void onError(String message) {
84+
getView().onUnsubscribeError(message);
85+
}
86+
87+
@Override
88+
protected void accept(AntEmptyInfo antEmptyInfo) {
89+
EventBus.getDefault().post(new SubscribeColumnMessage(getView().getColumnId()));
90+
getView().onUnsubscribeSuccess();
91+
}
92+
});
93+
}
94+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /