Skip to content

Commit 7edfab5

Browse files
committed
1、新增FastLoadingObserver方法传入Activity的方法并同步增加FastConfig设置全局LoadingDialog的接口方法
2、增加FastConfig相应设置方法最终调用类的link链接,library以UIWidget 2.0.5版本编译
1 parent be34835 commit 7edfab5

File tree

11 files changed

+132
-13
lines changed

11 files changed

+132
-13
lines changed

apk/sample.apk

1.25 KB
Binary file not shown.

app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ android {
1414
applicationId "com.aries.library.fast.demo"
1515
minSdkVersion ext.minSdkVersion
1616
targetSdkVersion ext.targetSdkVersion
17-
versionCode 217
18-
versionName "2.1.7-alpha"
17+
versionCode 218
18+
versionName "2.1.8-alpha"
1919
multiDexEnabled true
2020
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
2121
buildConfigField "String", "BASE_URL", "\"https://api.douban.com/\""
@@ -83,7 +83,7 @@ dependencies {
8383
//webView库 继承FastWebActivity需要,不需要内置WebView可以不compile
8484
compile 'com.just.agentweb:agentweb:2.0.1'
8585
//常用UI控件(TitleBarView、RadiusView、UIAlertView、UIActionSheetView、UIProgressView等),快速标题栏fast_layout_title_bar,继承FastTitleXXX类需要
86-
compile 'com.github.AriesHoo:UIWidget:2.0.4'
86+
compile 'com.github.AriesHoo:UIWidget:2.0.5'
8787
//下拉刷新库注意刷新头SmartRefreshHeader版本要对应
8888
compile 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.3'
8989
//图片加载

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.aries.library.fast.demo;
22

3+
import android.app.Activity;
34
import android.app.Application;
45
import android.content.Context;
56
import android.content.pm.ActivityInfo;
@@ -14,13 +15,16 @@
1415
import com.aries.library.fast.entity.FastTitleConfigEntity;
1516
import com.aries.library.fast.i.IMultiStatusView;
1617
import com.aries.library.fast.i.LoadMoreFoot;
18+
import com.aries.library.fast.i.LoadingDialog;
1719
import com.aries.library.fast.i.MultiStatusView;
1820
import com.aries.library.fast.manager.LoggerManager;
1921
import com.aries.library.fast.retrofit.FastRetrofit;
2022
import com.aries.library.fast.util.SizeUtil;
2123
import com.aries.library.fast.util.ToastUtil;
24+
import com.aries.library.fast.widget.FastLoadDialog;
2225
import com.aries.library.fast.widget.FastLoadMoreView;
2326
import com.aries.library.fast.widget.FastMultiStatusView;
27+
import com.aries.ui.widget.progress.UIProgressView;
2428
import com.chad.library.adapter.base.BaseQuickAdapter;
2529
import com.chad.library.adapter.base.loadmore.LoadMoreView;
2630
import com.scwang.smartrefresh.layout.api.DefaultRefreshHeaderCreater;
@@ -170,6 +174,24 @@ public IMultiStatusView createMultiStatusView() {
170174
.build();
171175
}
172176
})
177+
//设置全局网络请求等待Loading提示框如登录等待loading
178+
.setLoadingDialog(new LoadingDialog() {
179+
@Nullable
180+
@Override
181+
public FastLoadDialog createLoadingDialog(@Nullable Activity activity) {
182+
//第一种
183+
// return new FastLoadDialog(activity);
184+
//第二种 使用UIProgressView里的四种模式Loading效果
185+
return new FastLoadDialog(activity, UIProgressView.STYLE_WEI_BO)
186+
.setMessage("请求数据中,请稍候...");
187+
// ProgressDialog progressDialog = new ProgressDialog(activity);
188+
// progressDialog.setMessage("加载中...");
189+
// //第三种--系统ProgressDialog不过系统已标记为过时类不建议使用
190+
// return new FastLoadDialog(activity, progressDialog);
191+
// 第四种--完全自定义Dialog形式
192+
// return new FastLoadDialog(activity, MyDialog);
193+
}
194+
})
173195
//设置SmartRefreshLayout刷新头-自定加载使用BaseRecyclerViewAdapterHelper
174196
.setDefaultRefreshHeader(new DefaultRefreshHeaderCreater() {
175197
@NonNull

app/src/main/java/com/aries/library/fast/demo/module/mine/ThirdLibraryActivity.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import com.aries.library.fast.retrofit.FastLoadingObserver;
1515
import com.aries.library.fast.retrofit.FastObserver;
1616
import com.aries.library.fast.util.SPUtil;
17-
import com.aries.library.fast.widget.FastLoadDialog;
1817
import com.aries.ui.view.title.TitleBarView;
1918
import com.chad.library.adapter.base.BaseQuickAdapter;
2019
import com.chad.library.adapter.base.BaseViewHolder;
@@ -98,7 +97,7 @@ public void _onNext(List<WidgetEntity> entity) {
9897
public void _onError(int errorRes, int errorCode, Throwable e) {
9998

10099
}
101-
} : new FastLoadingObserver<List<WidgetEntity>>(new FastLoadDialog(mContext)) {
100+
} : new FastLoadingObserver<List<WidgetEntity>>(mContext) {
102101
@Override
103102
public void _onNext(List<WidgetEntity> entity) {
104103
mRefreshLayout.finishRefresh();

library/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ android {
88
defaultConfig {
99
minSdkVersion 15
1010
targetSdkVersion 25
11-
versionCode 217
12-
versionName "2.1.7-alpha"
11+
versionCode 218
12+
versionName "2.1.8-alpha"
1313
}
1414
buildTypes {
1515
release {
@@ -49,7 +49,7 @@ dependencies {
4949
//webView库
5050
provided 'com.just.agentweb:agentweb:2.0.1'
5151
//常用UI控件(TitleBarView、RadiusView等)
52-
provided 'com.github.AriesHoo:UIWidget:2.0.4'
52+
provided 'com.github.AriesHoo:UIWidget:2.0.5'
5353
//下拉刷新库
5454
provided 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.3'
5555
//图片加载

library/src/main/java/com/aries/library/fast/FastConfig.java

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,37 @@
11
package com.aries.library.fast;
22

3+
import android.app.Activity;
34
import android.app.Application;
45
import android.content.Context;
56
import android.content.pm.ActivityInfo;
67
import android.content.res.Resources;
78
import android.graphics.Color;
89
import android.os.Build;
10+
import android.os.Bundle;
911
import android.support.annotation.ColorInt;
1012
import android.support.annotation.DrawableRes;
1113
import android.support.annotation.NonNull;
1214
import android.support.annotation.Nullable;
1315
import android.support.annotation.StringRes;
16+
import android.view.View;
1417

18+
import com.aries.library.fast.basis.BasisActivity;
19+
import com.aries.library.fast.basis.BasisFragment;
20+
import com.aries.library.fast.delegate.FastRefreshLoadDelegate;
21+
import com.aries.library.fast.delegate.FastTitleDelegate;
1522
import com.aries.library.fast.entity.FastQuitConfigEntity;
1623
import com.aries.library.fast.entity.FastTitleConfigEntity;
24+
import com.aries.library.fast.i.IFastTitleView;
1725
import com.aries.library.fast.i.IMultiStatusView;
1826
import com.aries.library.fast.i.LoadMoreFoot;
27+
import com.aries.library.fast.i.LoadingDialog;
1928
import com.aries.library.fast.i.MultiStatusView;
2029
import com.aries.library.fast.manager.GlideManager;
2130
import com.aries.library.fast.manager.LoggerManager;
31+
import com.aries.library.fast.retrofit.FastLoadingObserver;
2232
import com.aries.library.fast.util.FastUtil;
2333
import com.aries.library.fast.util.SizeUtil;
34+
import com.aries.library.fast.widget.FastLoadDialog;
2435
import com.aries.library.fast.widget.FastLoadMoreView;
2536
import com.aries.library.fast.widget.FastMultiStatusView;
2637
import com.aries.ui.view.title.TitleBarView;
@@ -133,6 +144,14 @@ public IMultiStatusView createMultiStatusView() {
133144
.setSnackBarBackgroundColor(Color.argb(210, 0, 0, 0))
134145
.setSnackBarEnable(false)
135146
.setSnackBarMessageColor(Color.WHITE));
147+
setLoadingDialog(new LoadingDialog() {
148+
@Nullable
149+
@Override
150+
public FastLoadDialog createLoadingDialog(@Nullable Activity activity) {
151+
return new FastLoadDialog(activity)
152+
.setMessage(getText(R.string.fast_loading));
153+
}
154+
});
136155
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
137156
setContentViewBackgroundResource(-1);
138157
setSwipeBackEnable(false, null);
@@ -168,10 +187,22 @@ public IMultiStatusView createMultiStatusView() {
168187
*/
169188
private MultiStatusView mMultiStatusView;
170189

190+
/**
191+
* 配置全局通用加载等待Loading提示框
192+
*/
193+
private LoadingDialog mLoadingDialog;
194+
171195
public FastTitleConfigEntity getTitleConfig() {
172196
return mTitleConfig;
173197
}
174198

199+
/**
200+
* 设置全局TitleBarView相关属性
201+
* 最终调用{@link FastTitleDelegate#FastTitleDelegate(View, Activity, IFastTitleView)}
202+
*
203+
* @param mTitleConfig
204+
* @return
205+
*/
175206
public FastConfig setTitleConfig(FastTitleConfigEntity mTitleConfig) {
176207
if (mTitleConfig != null) {
177208
this.mTitleConfig = mTitleConfig;
@@ -185,6 +216,7 @@ public FastQuitConfigEntity getQuitConfig() {
185216

186217
/**
187218
* 设置Activity 点击返回键提示退出程序或返回桌面相关参数
219+
* 最终调用{@link BasisActivity#quitApp()}
188220
*
189221
* @param mQuitConfig
190222
* @return
@@ -202,6 +234,7 @@ public int getContentViewBackgroundResource() {
202234

203235
/**
204236
* 设置 Activity或Fragment根布局背景资源
237+
* 最终调用{@link BasisActivity#beforeInitView()} {@link BasisFragment#beforeInitView()}
205238
*
206239
* @param contentViewBackgroundResource
207240
* @return
@@ -217,6 +250,7 @@ public int getRequestedOrientation() {
217250

218251
/**
219252
* 设置Activity屏幕方向
253+
* 最终调用{@link BasisActivity#onCreate(Bundle)}
220254
*
221255
* @param mRequestedOrientation 默认自动 ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
222256
* 竖屏 ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
@@ -235,6 +269,7 @@ public boolean isSwipeBackEnable() {
235269

236270
/**
237271
* 设置Activity 是否支持滑动返回功能
272+
* 最终调用{@link BasisActivity#initSwipeBack()}
238273
*
239274
* @param swipeBackEnable
240275
* @param application swipeBackEnable为true application必传
@@ -258,6 +293,13 @@ public LoadMoreFoot getLoadMoreFoot() {
258293
return mLoadMoreFoot;
259294
}
260295

296+
/**
297+
* 设置Adapter统一加载更多相关脚布局
298+
* 最终调用{@link FastRefreshLoadDelegate#initRecyclerView()}
299+
*
300+
* @param mLoadMoreFoot
301+
* @return
302+
*/
261303
public FastConfig setLoadMoreFoot(LoadMoreFoot mLoadMoreFoot) {
262304
if (mLoadMoreFoot != null) {
263305
this.mLoadMoreFoot = mLoadMoreFoot;
@@ -271,6 +313,7 @@ public DefaultRefreshHeaderCreater getDefaultRefreshHeader() {
271313

272314
/**
273315
* 设置SmartRefreshLayout 下拉刷新头
316+
* 最终调用{@link FastRefreshLoadDelegate#initRefreshHeader()}
274317
*
275318
* @param mDefaultRefreshHeader
276319
* @return
@@ -286,6 +329,7 @@ public MultiStatusView getMultiStatusView() {
286329

287330
/**
288331
* 设置多状态布局--加载中/空数据/错误/无网络
332+
* 最终调用{@link FastRefreshLoadDelegate#initStatusView()}
289333
*
290334
* @param mMultiStatusView
291335
* @return
@@ -297,6 +341,24 @@ public FastConfig setMultiStatusView(MultiStatusView mMultiStatusView) {
297341
return this;
298342
}
299343

344+
public LoadingDialog getLoadingDialog() {
345+
return mLoadingDialog;
346+
}
347+
348+
/**
349+
* 设置全局网络请求等待Loading提示框如登录等待loading
350+
* 最终调用{@link FastLoadingObserver#FastLoadingObserver(Activity)}
351+
*
352+
* @param mLoadingDialog
353+
* @return
354+
*/
355+
public FastConfig setLoadingDialog(LoadingDialog mLoadingDialog) {
356+
if (mLoadingDialog != null) {
357+
this.mLoadingDialog = mLoadingDialog;
358+
}
359+
return this;
360+
}
361+
300362
/**
301363
* 设置加载图片占位图颜色
302364
*

library/src/main/java/com/aries/library/fast/basis/BasisFragment.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public void beforeSetContentView() {
7171

7272
@Override
7373
public void beforeInitView() {
74-
if (getContentBackground() > -1) {
74+
if (getContentBackground() > 0) {
7575
mContentView.setBackgroundResource(getContentBackground());
7676
}
7777
}
@@ -80,7 +80,7 @@ public void beforeInitView() {
8080
public void loadData() {
8181

8282
}
83-
83+
8484
@Override
8585
public void onDestroyView() {
8686
super.onDestroyView();

library/src/main/java/com/aries/library/fast/delegate/FastTitleDelegate.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public FastTitleDelegate(View rootView, Activity mContext, IFastTitleView iTitle
5858
? FastUtil.getTintDrawable(mContext.getResources().getDrawable(iTitleBarView.getLeftIcon()),
5959
FastConfig.getInstance(mContext).getTitleConfig().getTitleTextColor())
6060
: null)
61-
.setBackgroundResource(titleConfig.getTitleBackgroundResource());
61+
.setBgResource(titleConfig.getTitleBackgroundResource());
6262
//是否状态栏一直设置半透明效果--默认只是在状态栏白色背景黑色文字图标情况下设置
6363
if (titleConfig.isStatusAlwaysEnable()) {
6464
mTitleBar.setStatusAlpha(titleConfig.getStatusAlpha());
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.aries.library.fast.i;
2+
3+
import android.app.Activity;
4+
import android.support.annotation.Nullable;
5+
6+
import com.aries.library.fast.widget.FastLoadDialog;
7+
8+
/**
9+
* Created: AriesHoo on 2017/11/15 12:39
10+
* E-Mail: AriesHoo@126.com
11+
* Function: 用于全局配置网络请求登录Loading提示框
12+
* Description:
13+
*/
14+
public interface LoadingDialog {
15+
16+
/**
17+
* @param activity
18+
* @return
19+
*/
20+
@Nullable
21+
FastLoadDialog createLoadingDialog(@Nullable Activity activity);
22+
}

library/src/main/java/com/aries/library/fast/retrofit/FastLoadingObserver.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package com.aries.library.fast.retrofit;
22

33

4+
import android.app.Activity;
5+
import android.support.annotation.Nullable;
6+
7+
import com.aries.library.fast.FastConfig;
48
import com.aries.library.fast.widget.FastLoadDialog;
59

610
/**
@@ -13,6 +17,15 @@ public abstract class FastLoadingObserver<T> extends FastObserver<T> {
1317

1418
private FastLoadDialog mDialog;
1519

20+
/**
21+
* 用于全局配置
22+
*
23+
* @param activity
24+
*/
25+
public FastLoadingObserver(@Nullable Activity activity) {
26+
this(FastConfig.getInstance(activity).getLoadingDialog().createLoadingDialog(activity));
27+
}
28+
1629
public FastLoadingObserver(FastLoadDialog dialog) {
1730
this.mDialog = dialog;
1831
}

library/src/main/java/com/aries/library/fast/retrofit/FastObserver.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java.net.UnknownHostException;
1818
import java.util.concurrent.TimeoutException;
1919

20+
import io.reactivex.annotations.NonNull;
2021
import io.reactivex.observers.DefaultObserver;
2122
import retrofit2.HttpException;
2223

@@ -80,7 +81,7 @@ public void onNext(T entity) {
8081
_onNext(entity);
8182
}
8283

83-
public abstract void _onNext(T entity);
84+
public abstract void _onNext(@NonNull T entity);
8485

85-
public abstract void _onError(int errorRes, int errorCode, Throwable e);
86+
public abstract void _onError(int errorRes, int errorCode, @NonNull Throwable e);
8687
}

0 commit comments

Comments
 (0)