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 c3f7274

Browse files
committed
commit
1 parent a028d42 commit c3f7274

File tree

8 files changed

+114
-18
lines changed

8 files changed

+114
-18
lines changed

‎.idea/modules.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,19 @@ protected void convert(BaseViewHolder helper, MultiItemEntity item) {
5656
case ColumnDetailCatalogEntity.TYPE_LEVEL_1:
5757
bindRootLevel1View(helper, (ColumnDetailCatalogEntity) item);
5858
break;
59+
case ColumnDetailCatalogEntity.TYPE_LEVEL_END:
60+
bindCatalogView(helper, (ColumnDetailCatalogEntity) item);
61+
break;
5962
}
6063
}
6164

65+
/**
66+
* 绑定目录视图
67+
*/
68+
private void bindCatalogView(BaseViewHolder helper, ColumnDetailCatalogEntity item) {
69+
helper.addOnClickListener(R.id.btn_catalog);
70+
}
71+
6272
/**
6373
* 绑定头部视图
6474
*/
@@ -77,6 +87,8 @@ private void bindHeaderView(BaseViewHolder helper, ColumnDetailHeaderEntity item
7787
private void bindSectionView(BaseViewHolder helper, ColumnDetailSectionEntity item) {
7888
helper.setText(R.id.tv_title, item.getTitle());
7989
helper.setText(R.id.tv_desc, item.getContent());
90+
helper.setVisible(R.id.view_divider_top, item.isEnableTopDivider());
91+
helper.setVisible(R.id.view_divider_bottom, item.isEnableBottomDivider());
8092
}
8193

8294
/**

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,28 @@ public class ColumnDetailSectionEntity implements MultiItemEntity {
1212

1313
private String content;
1414

15+
private boolean enableTopDivider;
16+
private boolean enableBottomDivider;
17+
1518
public String getTitle() {
1619
return title;
1720
}
1821

22+
public boolean isEnableTopDivider() {
23+
return enableTopDivider;
24+
}
25+
26+
public void setEnableTopDivider(boolean enableTopDivider) {
27+
this.enableTopDivider = enableTopDivider;
28+
}
29+
30+
public boolean isEnableBottomDivider() {
31+
return enableBottomDivider;
32+
}
33+
34+
public void setEnableBottomDivider(boolean enableBottomDivider) {
35+
this.enableBottomDivider = enableBottomDivider;
36+
}
1937

2038
public String getContent() {
2139
return content;

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,22 @@ protected void accept(AntColumnInfo columnInfo) {
3636
getView().onLoadColumnDetail(columnInfo);
3737
}
3838
});
39+
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+
}
49+
50+
@Override
51+
protected void accept(AntColumnInfo antColumnInfo) {
52+
getView().onColumnSubscribe(true);
53+
}
54+
});
3955
}
4056

4157
@Override

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,8 @@ interface View extends IPresenterView {
3030

3131
// 订阅成功
3232
void onSubscribeSuccess();
33+
34+
// 专栏是否订阅
35+
void onColumnSubscribe(boolean subscribe);
3336
}
3437
}

‎module-discover/src/main/java/com/rae/cnblogs/discover/ui/AntColumnDetailActivity.java

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.antcode.sdk.AntSessionManager;
2222
import com.antcode.sdk.model.AntColumnInfo;
2323
import com.antcode.sdk.model.AntIntroArticlesInfo;
24+
import com.chad.library.adapter.base.BaseQuickAdapter;
2425
import com.chad.library.adapter.base.entity.MultiItemEntity;
2526
import com.rae.cnblogs.AppRoute;
2627
import com.rae.cnblogs.UICompat;
@@ -114,6 +115,18 @@ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
114115
}
115116
}
116117
});
118+
119+
// 点击事件
120+
mAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
121+
@Override
122+
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
123+
// 查看目录大纲图片
124+
if (view.getId() == R.id.btn_catalog && mAdapter.getColumnInfo() != null) {
125+
AppRoute.routeToImagePreview(getContext(), mAdapter.getColumnInfo().getOutlineImgOriginal());
126+
}
127+
}
128+
});
129+
117130
mPresenter.start();
118131
}
119132

@@ -149,9 +162,20 @@ public void onLoadColumnDetail(AntColumnInfo columnInfo) {
149162
// 头部数据
150163
data.add(new ColumnDetailHeaderEntity(columnInfo));
151164

152-
// 区块数据
165+
// 课程简介
153166
data.add(new ColumnDetailSectionEntity("课程简介", columnInfo.getIntro()));
154167

168+
// 作者介绍
169+
if (columnInfo.getAntAuthor() != null && !TextUtils.isEmpty(columnInfo.getAntAuthor().getIntro())) {
170+
data.add(new ColumnDetailSectionEntity("作者简介", columnInfo.getAntAuthor().getIntro()));
171+
}
172+
173+
// 适合人群
174+
if (!TextUtils.isEmpty(columnInfo.getConsumer())) {
175+
data.add(new ColumnDetailSectionEntity("适合人群", columnInfo.getConsumer()));
176+
}
177+
178+
155179
// ----------------- 目录解析 开始 --------------------- //
156180

157181
// 添加目录头部
@@ -179,17 +203,23 @@ public void onLoadColumnDetail(AntColumnInfo columnInfo) {
179203
if (TextUtils.isEmpty(parentId)) continue;
180204
// 找到一级目录,然后添加到子列表中
181205
ColumnDetailCatalogEntity entity = mRootCatalogMap.get(parentId);
182-
// ColumnDetailCatalogEntity entity = mRootCatalogMap.get("1");
183206
if (entity == null) continue;
184207
ColumnDetailCatalogEntity levelEntity = new ColumnDetailCatalogEntity(1, ColumnDetailCatalogEntity.TYPE_LEVEL_1, article);
185208
entity.addSubItem(levelEntity);
186209
}
187-
data.add(new ColumnDetailCatalogEntity(0, ColumnDetailCatalogEntity.TYPE_LEVEL_END, null));
210+
if (!TextUtils.isEmpty(columnInfo.getOutlineImgOriginal())) {
211+
data.add(new ColumnDetailCatalogEntity(0, ColumnDetailCatalogEntity.TYPE_LEVEL_END, null));
212+
}
188213

189214
// ----------------- 目录解析 结束 --------------------- //
190215

216+
191217
// 订阅须知
192-
data.add(new ColumnDetailSectionEntity("订阅须知", columnInfo.getNotice()));
218+
ColumnDetailSectionEntity subEntity = new ColumnDetailSectionEntity("订阅须知", columnInfo.getNotice());
219+
subEntity.setEnableTopDivider(true);
220+
data.add(subEntity);
221+
222+
193223
mAdapter.setNewData(data);
194224
mBottomLayout.setVisibility(View.VISIBLE);
195225

@@ -237,10 +267,14 @@ public void onClick(DialogInterface dialog, int which) {
237267

238268
}
239269

270+
@Override
271+
public void onColumnSubscribe(boolean subscribe) {
272+
UICompat.setVisibility(mBottomLayout, !subscribe);
273+
}
274+
240275
@OnClick(R2.id.btn_sub)
241276
public void onSubscribeClick() {
242277
if (!AntSessionManager.getDefault().isLogin()) {
243-
UICompat.failed(this, "请登录后再订阅");
244278
AppRoute.routeToAntUserAuth(this);
245279
return;
246280
}

‎module-discover/src/main/res/layout/item_column_category_end.xml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
android:orientation="vertical">
99

1010
<Button
11-
android:id="@+id/btn_send"
11+
android:id="@+id/btn_catalog"
1212
android:layout_width="match_parent"
1313
android:layout_height="36dp"
1414
android:layout_marginStart="62dp"
@@ -23,10 +23,6 @@
2323
app:layout_constraintLeft_toLeftOf="parent"
2424
app:layout_constraintTop_toBottomOf="@+id/et_phone" />
2525

26-
<View
27-
android:layout_width="match_parent"
28-
android:layout_height="12dp"
29-
android:background="@color/ant_divider_color" />
3026

3127

3228
</LinearLayout>
Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,26 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3-
xmlns:app="http://schemas.android.com/apk/res-auto"
43
android:layout_width="match_parent"
54
android:layout_height="wrap_content"
65
android:background="@color/white"
76
android:fitsSystemWindows="true"
8-
android:orientation="vertical"
9-
android:paddingStart="24dp"
10-
android:paddingTop="12dp"
11-
android:paddingEnd="24dp"
12-
android:paddingBottom="12dp">
7+
android:orientation="vertical">
8+
9+
<View
10+
android:id="@+id/view_divider_top"
11+
android:layout_width="match_parent"
12+
android:layout_height="12dp"
13+
android:background="@color/ant_divider_color"
14+
android:visibility="gone" />
1315

1416
<TextView
1517
android:id="@+id/tv_title"
1618
android:layout_width="wrap_content"
1719
android:layout_height="wrap_content"
20+
android:layout_marginStart="24dp"
21+
android:layout_marginTop="12dp"
22+
android:layout_marginEnd="24dp"
23+
android:layout_marginBottom="12dp"
1824
android:text="订阅须知"
1925
android:textColor="@color/black"
2026
android:textSize="18sp"
@@ -24,8 +30,19 @@
2430
android:id="@+id/tv_desc"
2531
android:layout_width="wrap_content"
2632
android:layout_height="wrap_content"
27-
android:lineSpacingMultiplier="1.5"
33+
android:layout_marginStart="24dp"
2834
android:layout_marginTop="12dp"
35+
android:layout_marginEnd="24dp"
36+
android:layout_marginBottom="12dp"
37+
android:lineSpacingMultiplier="1.5"
2938
android:textColor="@color/ant_h1"
3039
android:textSize="16sp" />
40+
41+
42+
<View
43+
android:id="@+id/view_divider_bottom"
44+
android:layout_width="match_parent"
45+
android:layout_height="12dp"
46+
android:background="@color/ant_divider_color"
47+
android:visibility="gone" />
3148
</LinearLayout>

0 commit comments

Comments
(0)

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