|
|
@@ -11,10 +11,12 @@ import io.reactivex.disposables.Disposable;
|
|
|
import io.reactivex.functions.Consumer;
|
|
|
import io.reactivex.plugins.RxJavaPlugins;
|
|
|
import io.reactivex.schedulers.Schedulers;
|
|
|
+import kr.co.zumo.app.R;
|
|
|
import kr.co.zumo.app.lifeplus.bean.api.LifeplusAPIBean;
|
|
|
import kr.co.zumo.app.lifeplus.bean.api.RequestBean;
|
|
|
import kr.co.zumo.app.lifeplus.network.api.ParameterMapper;
|
|
|
import kr.co.zumo.app.lifeplus.util.AppUtil;
|
|
|
+import kr.co.zumo.app.lifeplus.util.ResourceUtil;
|
|
|
import kr.co.zumo.app.lifeplus.util.StringUtil;
|
|
|
|
|
|
/**
|
|
|
@@ -27,20 +29,20 @@ import kr.co.zumo.app.lifeplus.util.StringUtil;
|
|
|
* @history 민효동 [2018. 10. 12.] [최초 작성]
|
|
|
* @since 2018. 10. 12.
|
|
|
*/
|
|
|
-public abstract class APIModule<T extends RequestBean, R extends LifeplusAPIBean> implements Disposable {
|
|
|
+public abstract class APIModule<T extends RequestBean, L extends LifeplusAPIBean> implements Disposable {
|
|
|
|
|
|
protected Disposable disposable;
|
|
|
|
|
|
// result
|
|
|
- public class APIConsumer implements Consumer<R> {
|
|
|
- private IAPIModuleListener<R> listener;
|
|
|
+ public class APIConsumer implements Consumer<L> {
|
|
|
+ private IAPIModuleListener<L> listener;
|
|
|
|
|
|
- public APIConsumer(IAPIModuleListener<R> listener) {
|
|
|
+ public APIConsumer(IAPIModuleListener<L> listener) {
|
|
|
this.listener = listener;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void accept(R resultBean) throws Exception {
|
|
|
+ public void accept(L resultBean) throws Exception {
|
|
|
trace(resultBean.toJson());
|
|
|
if (resultBean.isSuccess()) {
|
|
|
listener.onApiSuccess(resultBean);
|
|
|
@@ -97,6 +99,11 @@ public abstract class APIModule<T extends RequestBean, R extends LifeplusAPIBean
|
|
|
if (StringUtil.isEmpty(message)) {
|
|
|
message = e.toString();
|
|
|
}
|
|
|
+
|
|
|
+ if (AppUtil.isRelease()) {
|
|
|
+ message = ResourceUtil.getString(R.string.network_error_message_detail_dialog);
|
|
|
+ }
|
|
|
+
|
|
|
listener.onApiError(message);
|
|
|
}
|
|
|
}
|
|
|
@@ -125,14 +132,14 @@ public abstract class APIModule<T extends RequestBean, R extends LifeplusAPIBean
|
|
|
* abstract
|
|
|
***********************************/
|
|
|
|
|
|
- protected abstract Single<R> getAPI(T requestBean);
|
|
|
+ protected abstract Single<L> getAPI(T requestBean);
|
|
|
|
|
|
|
|
|
/***********************************
|
|
|
* public
|
|
|
***********************************/
|
|
|
|
|
|
- public Disposable call(T requestBean, IAPIModuleListener<R> listener) {
|
|
|
+ public Disposable call(T requestBean, IAPIModuleListener<L> listener) {
|
|
|
RxJavaPlugins.setErrorHandler(e -> {
|
|
|
Log.e("APP# APIModule | call", "| > GLOBAL ERROR ->" + e.getLocalizedMessage());
|
|
|
new APIErrorConsumer(listener).accept(e);
|
|
|
@@ -141,7 +148,7 @@ public abstract class APIModule<T extends RequestBean, R extends LifeplusAPIBean
|
|
|
Log.d("APP# APIModule | call", "| <" + requestBean.getClass().getSimpleName() + ">");
|
|
|
Log.d("APP# APIModule | call", "|" + APIModule.this.getClass().getSimpleName() + " -> " + requestBean.toPrettyJson());
|
|
|
|
|
|
- Single<R> single = getAPI(requestBean);
|
|
|
+ Single<L> single = getAPI(requestBean);
|
|
|
if (null != single) {
|
|
|
disposable = single.subscribeOn(Schedulers.io())
|
|
|
.observeOn(AndroidSchedulers.mainThread())
|