Skip to content

Commit 68af150

Browse files
AriesHooAriesHoo
authored andcommitted
1、修改网络请求示例
2、修改多状态布局无法设置默认颜色问题
1 parent 6d8b96e commit 68af150

File tree

24 files changed

+700
-30
lines changed

24 files changed

+700
-30
lines changed

app/build.gradle

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ android {
1212
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1313
buildConfigField "Boolean", "LOG_ENABALE", "true"
1414
buildConfigField "String", "BASE_URL", "\"https://api.douban.com/\""
15+
buildConfigField "String", "BASE_ARTICLE_URL", "\"https://api.readhub.me/\""
1516
buildConfigField "String", "BASE_UPDATE_URL", "\"https://raw.githubusercontent.com/AriesHoo/FastLib/master/apk/\""
1617
manifestPlaceholders = [
1718
app_channel: "FastLib",
@@ -66,11 +67,13 @@ android {
6667
options.compilerArgs << "-Xlint:deprecation" << '-Xlint:-unchecked'
6768
}
6869
}
69-
// configurations.all {
70-
// resolutionStrategy {
71-
// force 'com.squareup.okhttp3:logging-interceptor:3.12.2'
72-
// }
73-
// }
70+
//强制版本
71+
configurations.all {
72+
resolutionStrategy {
73+
force 'com.squareup.okhttp3:logging-interceptor:3.12.2'
74+
force 'io.reactivex.rxjava2:rxjava:2.2.19'
75+
}
76+
}
7477
}
7578

7679
dependencies {

app/src/main/AndroidManifest.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,11 @@
8181
android:configChanges="locale|layoutDirection|mcc|mnc|orientation|screenSize"
8282
android:hardwareAccelerated="true"
8383
android:label="@string/fast_loading" />
84+
<activity
85+
android:name=".module.TestRequestWindowActivity"
86+
android:configChanges="locale|layoutDirection|mcc|mnc|orientation|screenSize"
87+
android:hardwareAccelerated="true"
88+
android:label="TestRequestWindowActivity" />
8489
<activity
8590
android:name=".module.WebAppActivity"
8691
android:configChanges="locale|layoutDirection|mcc|mnc|orientation|screenSize"

app/src/main/java/com/aries/library/fast/demo/App.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,11 @@ public void onCreate() {
122122
//以下为配置多BaseUrl--默认方式一优先级高 可通过FastRetrofit.getInstance().setHeaderPriorityEnable(true);设置方式二优先级
123123
//方式一 通过Service 里的method-(如:) 设置 推荐 使用该方式不需设置如方式二的额外Header
124124
FastRetrofit.getInstance()
125-
.putBaseUrl(ApiConstant.API_UPDATE_APP, BuildConfig.BASE_UPDATE_URL);
125+
.putBaseUrl(ApiConstant.API_UPDATE_APP, BuildConfig.BASE_UPDATE_URL)
126+
.putBaseUrl(ApiConstant.API_ARTICLE_TOPIC, BuildConfig.BASE_ARTICLE_URL)
127+
.putBaseUrl(ApiConstant.API_ARTICLE_NEWS, BuildConfig.BASE_ARTICLE_URL)
128+
.putBaseUrl(ApiConstant.API_ARTICLE_TECH_NEWS, BuildConfig.BASE_ARTICLE_URL)
129+
.putBaseUrl(ApiConstant.API_ARTICLE_BLOCK_CHAIN, BuildConfig.BASE_ARTICLE_URL);
126130

127131
//方式二 通过 Service 里添加特定header设置
128132
//step1
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.aries.library.fast.demo.adapter;
2+
3+
import android.view.View;
4+
5+
import com.aries.library.fast.demo.R;
6+
import com.aries.library.fast.demo.base.BaseItemTouchQuickAdapter;
7+
import com.aries.library.fast.demo.base.BaseItemTouchViewHolder;
8+
import com.aries.library.fast.demo.entity.ReadArticleItemEntity;
9+
import com.aries.library.fast.demo.entity.SubjectsEntity;
10+
import com.aries.library.fast.demo.helper.RadiusViewHelper;
11+
import com.aries.library.fast.manager.GlideManager;
12+
import com.aries.library.fast.manager.LoggerManager;
13+
import com.aries.ui.view.radius.RadiusRelativeLayout;
14+
import com.flyco.labelview.LabelView;
15+
16+
/**
17+
* @Author: AriesHoo on 2018/8/10 9:53
18+
* @E-Mail: AriesHoo@126.com
19+
* Function:
20+
* Description:
21+
*/
22+
public class ReadArticleAdapter extends BaseItemTouchQuickAdapter<ReadArticleItemEntity, BaseItemTouchViewHolder> {
23+
24+
boolean isShowTop;
25+
26+
public ReadArticleAdapter(boolean isShowTop) {
27+
super(R.layout.item_read_acticle);
28+
this.isShowTop = isShowTop;
29+
}
30+
31+
@Override
32+
protected void convert(BaseItemTouchViewHolder helper, ReadArticleItemEntity item) {
33+
LoggerManager.i("isShowTop", "isShowTop:" + isShowTop);
34+
helper.setText(R.id.tv_titleArticle, item.title)
35+
.setText(R.id.tv_summaryArticle, item.summary)
36+
.setText(R.id.tv_timeArticle, item.getTime());
37+
RadiusViewHelper.getInstance().setRadiusViewAdapter(((RadiusRelativeLayout) helper.itemView).getDelegate());
38+
}
39+
}

app/src/main/java/com/aries/library/fast/demo/constant/ApiConstant.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,26 @@ public class ApiConstant {
1212
public static final String API_MOVIE_COMING_SOON = "v2/movie/coming_soon";
1313
public static final String API_MOVIE_TOP = "v2/movie/top250";
1414

15+
/**
16+
* 热门话题
17+
*/
18+
public static final String API_ARTICLE_TOPIC = "topic";
19+
20+
/**
21+
* 科技动态
22+
*/
23+
public static final String API_ARTICLE_NEWS = "news";
24+
25+
/**
26+
* 开发者资讯
27+
*/
28+
public static final String API_ARTICLE_TECH_NEWS = "technews";
29+
30+
/**
31+
* 区块链
32+
*/
33+
public static final String API_ARTICLE_BLOCK_CHAIN = "blockchain";
34+
1535
public static final String API_UPDATE_APP = "update";
1636
public static final String API_UPDATE_APP_KEY = "update";
1737
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.aries.library.fast.demo.entity;
2+
3+
public class ArticleEntity {
4+
5+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.aries.library.fast.demo.entity;
2+
3+
import com.aries.library.fast.demo.util.AppUtil;
4+
5+
import java.util.List;
6+
7+
public class BaseReadArticleEntity {
8+
9+
10+
/**
11+
* data : [{"id":"857hMt47bOY","newsArray":[{"id":3318215,"url":"https://www.jiemian.com/article/5902821.html","title":"OPPO关联公司公开\u201c睡眠训练方法\u201d相关专利,可帮助用户进入睡眠状态","siteName":"界面","mobileUrl":"https://www.jiemian.com/article/5902821.html","autherName":null,"duplicateId":1,"publishDate":"2021-04-02T08:33:00.000Z","language":"zh-cn","hasInstantView":true,"statementType":1},{"id":3318214,"url":"https://www.tmtpost.com/nictation/5153241.html","title":"OPPO关联公司公开\u201c睡眠训练方法\u201d相关专利","siteName":"钛媒体","mobileUrl":"https://www.tmtpost.com/nictation/5153241.html","autherName":"","duplicateId":1,"publishDate":"2021-04-02T00:48:14.981Z","language":"zh-cn","hasInstantView":true,"statementType":1}],"createdAt":"2021-04-02T11:05:49.938Z","eventData":[],"publishDate":"2021-04-02T11:09:04.218Z","summary":"据天眼查App显示,4月2日,OPPO广东移动通信有限公司公开一项名称为\u201c睡眠训练方法及相关设备\u201d的专利,公开号为CN108404275B,申请时间为2018年2月 ... 该专利摘要显示,本申请应用于电子装置,包括脑电波传感器、控制器和发射器,其中:脑电波传感器用于当确定用户准备入睡时,采集用户的脑电波 ... 发射器用于当用户的脑部处于活跃状态时,发出睡眠训练信号,睡眠训练信号用于帮助用户进入睡眠状态。","title":"OPPO关联公司公开\u201c睡眠训练方法\u201d相关专利,可帮助用户进入睡眠状态","updatedAt":"2021-04-02T11:09:04.235Z","timeline":"85809EFb2G4","order":341053,"hasInstantView":true,"extra":{"instantView":true}}]
12+
* pageSize : 1
13+
* totalItems : 69566
14+
* totalPages : 69566
15+
*/
16+
17+
public int pageSize;
18+
public int totalItems;
19+
public int totalPages;
20+
/**
21+
* id : 857hMt47bOY
22+
* newsArray : [{"id":3318215,"url":"https://www.jiemian.com/article/5902821.html","title":"OPPO关联公司公开\u201c睡眠训练方法\u201d相关专利,可帮助用户进入睡眠状态","siteName":"界面","mobileUrl":"https://www.jiemian.com/article/5902821.html","autherName":null,"duplicateId":1,"publishDate":"2021-04-02T08:33:00.000Z","language":"zh-cn","hasInstantView":true,"statementType":1},{"id":3318214,"url":"https://www.tmtpost.com/nictation/5153241.html","title":"OPPO关联公司公开\u201c睡眠训练方法\u201d相关专利","siteName":"钛媒体","mobileUrl":"https://www.tmtpost.com/nictation/5153241.html","autherName":"","duplicateId":1,"publishDate":"2021-04-02T00:48:14.981Z","language":"zh-cn","hasInstantView":true,"statementType":1}]
23+
* createdAt : 2021-04-02T11:05:49.938Z
24+
* eventData : []
25+
* publishDate : 2021-04-02T11:09:04.218Z
26+
* summary : 据天眼查App显示,4月2日,OPPO广东移动通信有限公司公开一项名称为“睡眠训练方法及相关设备”的专利,公开号为CN108404275B,申请时间为2018年2月 ... 该专利摘要显示,本申请应用于电子装置,包括脑电波传感器、控制器和发射器,其中:脑电波传感器用于当确定用户准备入睡时,采集用户的脑电波 ... 发射器用于当用户的脑部处于活跃状态时,发出睡眠训练信号,睡眠训练信号用于帮助用户进入睡眠状态。
27+
* title : OPPO关联公司公开“睡眠训练方法”相关专利,可帮助用户进入睡眠状态
28+
* updatedAt : 2021-04-02T11:09:04.235Z
29+
* timeline : 85809EFb2G4
30+
* order : 341053
31+
* hasInstantView : true
32+
* extra : {"instantView":true}
33+
*/
34+
35+
public List<ReadArticleItemEntity> data;
36+
37+
38+
public String getLastCursor() {
39+
return data == null || data.size() == 0 ? "" : data.get(data.size() - 1).getLastCursor();
40+
}
41+
}
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
package com.aries.library.fast.demo.entity;
2+
3+
import com.aries.library.fast.demo.util.AppUtil;
4+
import com.aries.library.fast.util.FastFormatUtil;
5+
import com.aries.library.fast.util.FastUtil;
6+
7+
import java.text.SimpleDateFormat;
8+
import java.util.List;
9+
import java.util.TimeZone;
10+
11+
12+
public class ReadArticleItemEntity {
13+
public String id;
14+
public String createdAt;
15+
public String publishDate;
16+
public String summary;
17+
public String title;
18+
public String updatedAt;
19+
public String timeline;
20+
public int order;
21+
public boolean hasInstantView;
22+
/**
23+
* instantView : true
24+
*/
25+
26+
public ExtraEntity extra;
27+
/**
28+
* id : 3318215
29+
* url : https://www.jiemian.com/article/5902821.html
30+
* title : OPPO关联公司公开“睡眠训练方法”相关专利,可帮助用户进入睡眠状态
31+
* siteName : 界面
32+
* mobileUrl : https://www.jiemian.com/article/5902821.html
33+
* autherName : null
34+
* duplicateId : 1
35+
* publishDate : 2021-04-02T08:33:00.000Z
36+
* language : zh-cn
37+
* hasInstantView : true
38+
* statementType : 1
39+
*/
40+
41+
public List<NewsArrayEntity> newsArray;
42+
public List<?> eventData;
43+
44+
public static class ExtraEntity {
45+
public boolean instantView;
46+
}
47+
48+
public static class NewsArrayEntity {
49+
public int id;
50+
public String url;
51+
public String title;
52+
public String siteName;
53+
public String mobileUrl;
54+
public Object autherName;
55+
public int duplicateId;
56+
public String publishDate;
57+
public String language;
58+
public boolean hasInstantView;
59+
public int statementType;
60+
61+
public String getUrl() {
62+
if (mobileUrl != null) {
63+
return mobileUrl;
64+
}
65+
if (url != null) {
66+
return url;
67+
}
68+
return "";
69+
}
70+
}
71+
72+
73+
public String getUrl() {
74+
return newsArray != null && newsArray.size() > 0
75+
? newsArray.get(0).getUrl()
76+
: "";
77+
}
78+
79+
public String getLastCursor() {
80+
if (0 != order) {
81+
return order + "";
82+
}
83+
return getUtcTime(publishDate, "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
84+
}
85+
86+
public String getTime() {
87+
return publishDate.replaceAll("Z", "").replaceAll("T", " ").substring(0, 19);
88+
}
89+
90+
/**
91+
* 转UTC时间获取时间戳
92+
*
93+
* @param dateStr
94+
* @param format
95+
* @return
96+
*/
97+
private String getUtcTime(String dateStr, String format) {
98+
try {
99+
SimpleDateFormat sdf = new SimpleDateFormat(format);
100+
101+
///设置UTC
102+
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
103+
return String.valueOf(sdf.parse(dateStr).getTime());
104+
} catch (Exception e) {
105+
e.printStackTrace();
106+
}
107+
return "";
108+
}
109+
}

app/src/main/java/com/aries/library/fast/demo/impl/ActivityControlImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ public boolean setNavigationBar(Activity activity, NavigationViewHelper helper,
216216
helper.setLogEnable(BuildConfig.DEBUG)
217217
.setPlusNavigationViewEnable(true)
218218
//此处为配合BGASwipeBackHelper滑动返回效果-如不使用BGASwipeBackHelper推荐使用上面的方法
219-
.setPlusNavigationViewEnable(true, enable, enable)
219+
// .setPlusNavigationViewEnable(true, enable, enable)
220220
.setNavigationBarLightMode(NavigationBarUtil.isSupportNavigationBarFontChange() && isPlusView(activity))
221221
.setOnKeyboardVisibilityChangedListener(getOnKeyboardVisibilityChangedListener(activity))
222222
.setBottomView(PicturePreviewActivity.class.isAssignableFrom(activity.getClass()) ?
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.aries.library.fast.demo.module;
2+
3+
import android.os.Bundle;
4+
import android.view.Window;
5+
6+
import androidx.annotation.Nullable;
7+
import androidx.appcompat.app.AppCompatActivity;
8+
9+
public class TestRequestWindowActivity extends AppCompatActivity {
10+
11+
@Override
12+
protected void onCreate(@Nullable Bundle savedInstanceState) {
13+
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
14+
super.onCreate(savedInstanceState);
15+
}
16+
}

0 commit comments

Comments
 (0)