Commit 977b33471c6bef542a90e38605d51f805d432db7
1 parent
08615c24
repair resource file for errors
Showing
15 changed files
with
239 additions
and
84 deletions
.idea/modules.xml
| ... | ... | @@ -3,11 +3,8 @@ |
| 3 | 3 | <component name="ProjectModuleManager"> |
| 4 | 4 | <modules> |
| 5 | 5 | <module fileurl="file://$PROJECT_DIR$/CNLiveLibs.iml" filepath="$PROJECT_DIR$/CNLiveLibs.iml" /> |
| 6 | - <module fileurl="file://$PROJECT_DIR$/CNLiveLibs.iml" filepath="$PROJECT_DIR$/CNLiveLibs.iml" /> | |
| 7 | 6 | <module fileurl="file://$PROJECT_DIR$/OPenCNLive_BaseLib.iml" filepath="$PROJECT_DIR$/OPenCNLive_BaseLib.iml" /> |
| 8 | 7 | <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> |
| 9 | - <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> | |
| 10 | - <module fileurl="file://$PROJECT_DIR$/cnlive/cnlive.iml" filepath="$PROJECT_DIR$/cnlive/cnlive.iml" /> | |
| 11 | 8 | <module fileurl="file://$PROJECT_DIR$/cnlive/cnlive.iml" filepath="$PROJECT_DIR$/cnlive/cnlive.iml" /> |
| 12 | 9 | </modules> |
| 13 | 10 | </component> | ... | ... |
app/src/main/AndroidManifest.xml
app/src/main/java/com/cnlive/libs/demo/App.java
0 → 100644
app/src/main/java/com/cnlive/libs/demo/Java8Test.java
app/src/main/java/com/cnlive/libs/demo/RequestTest.java
| 1 | 1 | package com.cnlive.libs.demo; |
| 2 | 2 | |
| 3 | 3 | import android.content.Context; |
| 4 | -import android.content.res.Resources; | |
| 5 | 4 | |
| 6 | -import com.cnlive.libs.base.model.IBaseInfo; | |
| 7 | 5 | import com.cnlive.libs.base.network.RetrofitUtil; |
| 8 | 6 | import com.cnlive.libs.base.network.Subscriber; |
| 9 | 7 | import com.cnlive.libs.demo.data.model.AppInfo; |
| ... | ... | @@ -11,44 +9,38 @@ import com.cnlive.libs.demo.data.network.testapi.ApiRequest; |
| 11 | 9 | import com.cnlive.libs.demo.data.network.testapi.ApiService; |
| 12 | 10 | |
| 13 | 11 | import io.reactivex.disposables.Disposable; |
| 14 | -import okhttp3.RequestBody; | |
| 15 | 12 | |
| 16 | 13 | |
| 17 | 14 | public class RequestTest { |
| 18 | 15 | |
| 19 | 16 | //---- Api Config Start --- |
| 20 | 17 | public static final String success_code = "200"; |
| 21 | - private static final String success_message = Resources.getSystem().getString(com.cnlive.libs.base.R.string.load_success_message); | |
| 18 | + private static final String success_message = "数据加载成功"; | |
| 22 | 19 | |
| 23 | 20 | private static final String custom_error = "401"; |
| 24 | - private static final String custom_response_message = Resources.getSystem().getString(com.cnlive.libs.base.R.string.custom_response_message); | |
| 21 | + private static final String custom_response_message = "自定义事件"; | |
| 25 | 22 | |
| 26 | 23 | static { |
| 27 | 24 | RetrofitUtil.setDebug(com.cnlive.libs.demo.Config.debug); |
| 28 | 25 | } |
| 29 | 26 | |
| 30 | - private static final Subscriber.CustomLoadResponse customLoadResponse = new Subscriber.CustomLoadResponse() { | |
| 31 | - @Override | |
| 32 | - public void onCustomEvent(String code, IBaseInfo pageData) { | |
| 33 | - switch (code) { | |
| 34 | - case custom_error: | |
| 35 | - //Custom Error Event | |
| 36 | - break; | |
| 37 | - } | |
| 27 | + private static final Subscriber.CustomLoadResponse customLoadResponse = (code, message, pageData) -> { | |
| 28 | + switch (code) { | |
| 29 | + case custom_error: | |
| 30 | + //Custom Error Event | |
| 31 | + break; | |
| 38 | 32 | } |
| 39 | 33 | }; |
| 40 | 34 | |
| 41 | - private static final Subscriber.Config subscriberBuild = Subscriber.newConfig() | |
| 35 | + public static final Subscriber.Config subscriberBuild = Subscriber.newConfig() | |
| 42 | 36 | .putCustomResponse(custom_error, custom_response_message) |
| 43 | 37 | .putInfo(Subscriber.Config.response_success, success_code, success_message) |
| 44 | 38 | .setCustomLoadResponse(customLoadResponse); |
| 45 | 39 | |
| 46 | 40 | //---- Api Config End --- |
| 47 | 41 | public void test(Context context) { |
| 48 | - RequestBody requestBody = ApiRequest.getRequestJsonBody(""); | |
| 49 | - | |
| 50 | - Disposable subscription = ApiRequest.subscribe( | |
| 51 | - ApiRequest.getService(ApiService.class).appInfo(com.cnlive.libs.demo.Config.APP_ID), | |
| 42 | + Disposable disposable = ApiRequest.subscribe( | |
| 43 | + ApiRequest.service(ApiService.class).appInfo(Config.APP_ID), | |
| 52 | 44 | new Subscriber<AppInfo>(context, subscriberBuild) { |
| 53 | 45 | @Override |
| 54 | 46 | public void onStart() { |
| ... | ... | @@ -60,13 +52,13 @@ public class RequestTest { |
| 60 | 52 | switch (code) { |
| 61 | 53 | case success_code: |
| 62 | 54 | break; |
| 63 | - case Config.default_error_code: | |
| 55 | + case Subscriber.Config.default_error_code: | |
| 64 | 56 | break; |
| 65 | - case Config.default_failure_code: | |
| 57 | + case Subscriber.Config.default_failure_code: | |
| 66 | 58 | break; |
| 67 | - case Config.default_unknown_error_code: | |
| 59 | + case Subscriber.Config.default_unknown_error_code: | |
| 68 | 60 | break; |
| 69 | - case Config.default_no_network_code: | |
| 61 | + case Subscriber.Config.default_no_network_code: | |
| 70 | 62 | break; |
| 71 | 63 | } |
| 72 | 64 | } |
| ... | ... | @@ -75,9 +67,10 @@ public class RequestTest { |
| 75 | 67 | public void onCompleted(String code, String message, AppInfo data) { |
| 76 | 68 | |
| 77 | 69 | } |
| 78 | - } | |
| 79 | - ); | |
| 70 | + }); | |
| 80 | 71 | |
| 81 | - subscription.dispose(); | |
| 72 | + disposable.dispose(); | |
| 82 | 73 | } |
| 74 | + | |
| 75 | + | |
| 83 | 76 | } | ... | ... |
app/src/main/java/com/cnlive/libs/demo/data/network/testapi/ApiRequest.java
| ... | ... | @@ -14,19 +14,23 @@ import okhttp3.MediaType; |
| 14 | 14 | import okhttp3.RequestBody; |
| 15 | 15 | import retrofit2.adapter.rxjava2.Result; |
| 16 | 16 | |
| 17 | +import static com.cnlive.libs.demo.data.network.testapi.ApiService.URL_DEBUG; | |
| 18 | +import static com.cnlive.libs.demo.data.network.testapi.ApiService.URL_RELEASE; | |
| 19 | + | |
| 17 | 20 | |
| 18 | 21 | public class ApiRequest { |
| 19 | 22 | |
| 20 | - private static final String BASE_URL_DEBUG = "https://ymzx.asia-cloud.com/api/"; | |
| 21 | - private static final String BASE_URL_RELEASE = "https://ymzx.asia-cloud.com/api/"; | |
| 23 | + private static <T> String getUrl(Class<T> clazz) { | |
| 24 | + String url = ""; | |
| 25 | + | |
| 26 | + if (clazz == ApiService.class) url = Config.debug ? URL_DEBUG : URL_RELEASE; | |
| 22 | 27 | |
| 23 | - private static String getBaseUrl() { | |
| 24 | - return Config.debug ? BASE_URL_DEBUG : BASE_URL_RELEASE; | |
| 28 | + return url; | |
| 25 | 29 | } |
| 26 | 30 | |
| 27 | 31 | |
| 28 | - public static <T> T getService(Class<T> clazz) { | |
| 29 | - return RetrofitUtil.getRestAPI(getBaseUrl(), clazz); | |
| 32 | + public static <T> T service(Class<T> clazz) { | |
| 33 | + return RetrofitUtil.getRestAPI(getUrl(clazz), clazz); | |
| 30 | 34 | } |
| 31 | 35 | |
| 32 | 36 | public static <T extends IBaseInfo> Disposable subscribe(Observable<Result<T>> observable, Subscriber<T> subscriber) { |
| ... | ... | @@ -39,4 +43,5 @@ public class ApiRequest { |
| 39 | 43 | public static RequestBody getRequestJsonBody(String content) { |
| 40 | 44 | return RequestBody.create(MediaType.parse("application/json; charset=utf-8"), content); |
| 41 | 45 | } |
| 46 | + | |
| 42 | 47 | } | ... | ... |
app/src/main/java/com/cnlive/libs/demo/data/network/testapi/ApiService.java
| ... | ... | @@ -9,8 +9,8 @@ import retrofit2.http.GET; |
| 9 | 9 | import retrofit2.http.Query; |
| 10 | 10 | |
| 11 | 11 | public interface ApiService { |
| 12 | - | |
| 13 | - //--应用程序-- | |
| 12 | + String URL_DEBUG = "https://ymzx.asia-cloud.com/api/"; | |
| 13 | + String URL_RELEASE = "https://ymzx.asia-cloud.com/api/"; | |
| 14 | 14 | |
| 15 | 15 | /** |
| 16 | 16 | * 获取应用程序信息 | ... | ... |
app/src/main/java/com/cnlive/libs/demo/mvptest/frame/presenter/LaunchPresenter.java
| ... | ... | @@ -2,14 +2,21 @@ package com.cnlive.libs.demo.mvptest.frame.presenter; |
| 2 | 2 | |
| 3 | 3 | import android.content.Context; |
| 4 | 4 | |
| 5 | +import com.cnlive.libs.base.network.Subscriber; | |
| 5 | 6 | import com.cnlive.libs.base.util.LogUtil; |
| 6 | 7 | import com.cnlive.libs.base.util.TimerUtil; |
| 8 | +import com.cnlive.libs.demo.Config; | |
| 9 | +import com.cnlive.libs.demo.data.model.AppInfo; | |
| 10 | +import com.cnlive.libs.demo.data.network.testapi.ApiRequest; | |
| 11 | +import com.cnlive.libs.demo.data.network.testapi.ApiService; | |
| 7 | 12 | import com.cnlive.libs.demo.mvptest.frame.ILaunchView; |
| 8 | 13 | import com.cnlive.libs.demo.mvptest.frame.view.LaunchView; |
| 9 | 14 | import com.hannesdorfmann.mosby.mvp.MvpBasePresenter; |
| 10 | 15 | |
| 11 | 16 | import io.reactivex.disposables.Disposable; |
| 12 | 17 | |
| 18 | +import static com.cnlive.libs.demo.RequestTest.subscriberBuild; | |
| 19 | + | |
| 13 | 20 | public class LaunchPresenter extends MvpBasePresenter<LaunchView> { |
| 14 | 21 | |
| 15 | 22 | private TimerUtil timerUtil; //计时工具类 |
| ... | ... | @@ -21,8 +28,27 @@ public class LaunchPresenter extends MvpBasePresenter<LaunchView> { |
| 21 | 28 | public void initData(Context context) { |
| 22 | 29 | if (subscription != null) subscription.dispose(); |
| 23 | 30 | |
| 24 | - ILaunchView view = getView(); | |
| 25 | - if (view != null) view.onLoadDataComplete(null); | |
| 31 | + subscription = ApiRequest.subscribe( | |
| 32 | + ApiRequest.service(ApiService.class).appInfo(Config.APP_ID), | |
| 33 | + new Subscriber<AppInfo>(context, subscriberBuild) { | |
| 34 | + @Override | |
| 35 | + public void onCompleted(String code, String message, AppInfo data) { | |
| 36 | + ILaunchView view = getView(); | |
| 37 | + if (view != null) view.onLoadDataComplete(null); | |
| 38 | + } | |
| 39 | + | |
| 40 | + @Override | |
| 41 | + public void onError(String code, String message) { | |
| 42 | + ILaunchView view = getView(); | |
| 43 | + if (view != null) view.onLoadDataError(code, message); | |
| 44 | + } | |
| 45 | + | |
| 46 | + @Override | |
| 47 | + public void onStart() { | |
| 48 | + ILaunchView view = getView(); | |
| 49 | + if (view != null) view.onLoadDataStart(); | |
| 50 | + } | |
| 51 | + }); | |
| 26 | 52 | } |
| 27 | 53 | |
| 28 | 54 | /** | ... | ... |
cnlive/src/main/AndroidManifest.xml
| ... | ... | @@ -2,6 +2,9 @@ |
| 2 | 2 | |
| 3 | 3 | package="com.cnlive.libs.base"> |
| 4 | 4 | |
| 5 | + <uses-permission android:name="android.permission.INTERNET" /> | |
| 6 | + <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> | |
| 7 | + | |
| 5 | 8 | <application android:allowBackup="true" android:label="@string/app_name" |
| 6 | 9 | android:supportsRtl="true"> |
| 7 | 10 | ... | ... |
cnlive/src/main/java/com/cnlive/libs/base/activity/MvpActivity.java
0 → 100644
| 1 | +package com.cnlive.libs.base.activity; | |
| 2 | + | |
| 3 | +import android.os.Bundle; | |
| 4 | +import android.support.annotation.NonNull; | |
| 5 | + | |
| 6 | +import com.cnlive.libs.base.util.ReflectUtil; | |
| 7 | +import com.hannesdorfmann.mosby.mvp.MvpPresenter; | |
| 8 | +import com.hannesdorfmann.mosby.mvp.MvpView; | |
| 9 | + | |
| 10 | +/** | |
| 11 | + * MVP Databinding Base Activity | |
| 12 | + * @param <V> MVP View {@link MvpView} | |
| 13 | + * @param <P> MVP Presenter {@link MvpPresenter} | |
| 14 | + */ | |
| 15 | +public abstract class MvpActivity<V extends MvpView, P extends MvpPresenter<V>> extends com.hannesdorfmann.mosby.mvp.MvpActivity<V, P> { | |
| 16 | + | |
| 17 | + public V view; | |
| 18 | + | |
| 19 | + @Override | |
| 20 | + protected void onCreate(Bundle savedInstanceState) { | |
| 21 | + super.onCreate(savedInstanceState); | |
| 22 | + setContentView(getLayoutId()); | |
| 23 | + } | |
| 24 | + | |
| 25 | + protected abstract int getLayoutId(); | |
| 26 | + | |
| 27 | + @NonNull | |
| 28 | + public V createView() { | |
| 29 | + return ReflectUtil.instance(0, this.getClass(), this); | |
| 30 | + } | |
| 31 | + | |
| 32 | + @NonNull | |
| 33 | + @Override | |
| 34 | + public P createPresenter() { | |
| 35 | + return ReflectUtil.instance(1, this); | |
| 36 | + } | |
| 37 | + | |
| 38 | + @NonNull | |
| 39 | + @Override | |
| 40 | + public V getMvpView() { | |
| 41 | + if (view == null) view = createView(); | |
| 42 | + return view; | |
| 43 | + } | |
| 44 | + | |
| 45 | +} | ... | ... |
cnlive/src/main/java/com/cnlive/libs/base/activity/MvpBindingActivity.java
| ... | ... | @@ -27,13 +27,13 @@ public abstract class MvpBindingActivity<V extends MvpView, P extends MvpPresent |
| 27 | 27 | protected void onCreate(Bundle savedInstanceState) { |
| 28 | 28 | super.onCreate(savedInstanceState); |
| 29 | 29 | binding = DataBindingUtil.setContentView(this, getLayoutId()); |
| 30 | - ReflectUtil.invoke(binding, "setData", getLayoutData()); | |
| 30 | + ReflectUtil.invoke(binding, "setData", getViewData()); | |
| 31 | 31 | } |
| 32 | 32 | |
| 33 | 33 | protected abstract int getLayoutId(); |
| 34 | 34 | |
| 35 | - protected D getLayoutData() { | |
| 36 | - return data = ReflectUtil.instance(2, this); | |
| 35 | + protected D initLayoutData() { | |
| 36 | + return ReflectUtil.instance(2, this); | |
| 37 | 37 | } |
| 38 | 38 | |
| 39 | 39 | @NonNull |
| ... | ... | @@ -54,4 +54,9 @@ public abstract class MvpBindingActivity<V extends MvpView, P extends MvpPresent |
| 54 | 54 | return view; |
| 55 | 55 | } |
| 56 | 56 | |
| 57 | + @NonNull | |
| 58 | + public D getViewData() { | |
| 59 | + if(data == null) data = initLayoutData(); | |
| 60 | + return data; | |
| 61 | + } | |
| 57 | 62 | } | ... | ... |
cnlive/src/main/java/com/cnlive/libs/base/fragment/MvpBindingFragment.java
| ... | ... | @@ -31,14 +31,14 @@ public abstract class MvpBindingFragment<V extends MvpView, P extends MvpPresent |
| 31 | 31 | @Override |
| 32 | 32 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { |
| 33 | 33 | binding = DataBindingUtil.inflate(inflater, getLayoutId(), container, false); |
| 34 | - ReflectUtil.invoke(binding, "setData", getLayoutData()); | |
| 34 | + ReflectUtil.invoke(binding, "setData", getViewData()); | |
| 35 | 35 | return binding.getRoot(); |
| 36 | 36 | } |
| 37 | 37 | |
| 38 | 38 | protected abstract int getLayoutId(); |
| 39 | 39 | |
| 40 | - protected D getLayoutData() { | |
| 41 | - return data = ReflectUtil.instance(2, this); | |
| 40 | + protected D initLayoutData() { | |
| 41 | + return ReflectUtil.instance(2, this); | |
| 42 | 42 | } |
| 43 | 43 | |
| 44 | 44 | @NonNull |
| ... | ... | @@ -60,4 +60,9 @@ public abstract class MvpBindingFragment<V extends MvpView, P extends MvpPresent |
| 60 | 60 | } |
| 61 | 61 | |
| 62 | 62 | |
| 63 | + @NonNull | |
| 64 | + public D getViewData() { | |
| 65 | + if(data == null) data = initLayoutData(); | |
| 66 | + return data; | |
| 67 | + } | |
| 63 | 68 | } |
| 64 | 69 | \ No newline at end of file | ... | ... |
cnlive/src/main/java/com/cnlive/libs/base/fragment/MvpFragment.java
0 → 100644
| 1 | +package com.cnlive.libs.base.fragment; | |
| 2 | + | |
| 3 | +import android.os.Bundle; | |
| 4 | +import android.support.annotation.NonNull; | |
| 5 | +import android.support.annotation.Nullable; | |
| 6 | +import android.view.LayoutInflater; | |
| 7 | +import android.view.View; | |
| 8 | +import android.view.ViewGroup; | |
| 9 | + | |
| 10 | +import com.cnlive.libs.base.util.ReflectUtil; | |
| 11 | +import com.hannesdorfmann.mosby.mvp.MvpPresenter; | |
| 12 | +import com.hannesdorfmann.mosby.mvp.MvpView; | |
| 13 | + | |
| 14 | +/** | |
| 15 | + * MVP Databinding Base Fragment | |
| 16 | + * | |
| 17 | + * @param <V> MVP View {@link MvpView} | |
| 18 | + * @param <P> MVP Presenter {@link MvpPresenter} | |
| 19 | + */ | |
| 20 | +public abstract class MvpFragment<V extends MvpView, P extends MvpPresenter<V>> extends com.hannesdorfmann.mosby.mvp.MvpFragment<V, P> { | |
| 21 | + | |
| 22 | + public V view; | |
| 23 | + | |
| 24 | + @Nullable | |
| 25 | + @Override | |
| 26 | + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { | |
| 27 | + return inflater.inflate(getLayoutId(), container, false); | |
| 28 | + } | |
| 29 | + | |
| 30 | + protected abstract int getLayoutId(); | |
| 31 | + | |
| 32 | + | |
| 33 | + @NonNull | |
| 34 | + public V createView() { | |
| 35 | + return ReflectUtil.instance(0, this.getClass(), this); | |
| 36 | + } | |
| 37 | + | |
| 38 | + @NonNull | |
| 39 | + @Override | |
| 40 | + public P createPresenter() { | |
| 41 | + return ReflectUtil.instance(1, this); | |
| 42 | + } | |
| 43 | + | |
| 44 | + @NonNull | |
| 45 | + @Override | |
| 46 | + public V getMvpView() { | |
| 47 | + if (view == null) view = createView(); | |
| 48 | + return view; | |
| 49 | + } | |
| 50 | + | |
| 51 | +} | |
| 0 | 52 | \ No newline at end of file | ... | ... |
cnlive/src/main/java/com/cnlive/libs/base/network/Subscriber.java
| 1 | 1 | package com.cnlive.libs.base.network; |
| 2 | 2 | |
| 3 | 3 | import android.content.Context; |
| 4 | -import android.content.res.Resources; | |
| 5 | 4 | import android.support.annotation.IntDef; |
| 5 | +import android.text.TextUtils; | |
| 6 | 6 | |
| 7 | 7 | import com.cnlive.libs.base.R; |
| 8 | 8 | import com.cnlive.libs.base.model.IBaseInfo; |
| ... | ... | @@ -22,18 +22,32 @@ import retrofit2.adapter.rxjava2.Result; |
| 22 | 22 | |
| 23 | 23 | public abstract class Subscriber<T extends IBaseInfo> { |
| 24 | 24 | |
| 25 | - private T pageData; | |
| 25 | + private Response<T> response; | |
| 26 | 26 | private Context context; |
| 27 | 27 | private Config config; |
| 28 | 28 | |
| 29 | - public Subscriber(Context context) { | |
| 29 | + public Subscriber(@NonNull Context context) { | |
| 30 | 30 | this.context = context; |
| 31 | 31 | this.config = new Config(); |
| 32 | + init(); | |
| 32 | 33 | } |
| 33 | 34 | |
| 34 | - public Subscriber(Context context, Config config) { | |
| 35 | + public Subscriber(@NonNull Context context, @NonNull Config config) { | |
| 35 | 36 | this.context = context; |
| 36 | 37 | this.config = config; |
| 38 | + init(); | |
| 39 | + } | |
| 40 | + | |
| 41 | + private String reloadString(String str, int defRes) { | |
| 42 | + return TextUtils.isEmpty(str) ? context.getString(defRes) : str; | |
| 43 | + } | |
| 44 | + | |
| 45 | + private void init() { | |
| 46 | + config.load_success_message = reloadString(config.load_success_message, R.string.load_success_message); | |
| 47 | + config.load_failure_message = reloadString(config.load_failure_message, R.string.load_failure_message); | |
| 48 | + config.load_error_message = reloadString(config.load_error_message, R.string.load_error_message); | |
| 49 | + config.no_network_message = reloadString(config.no_network_message, R.string.no_network_message); | |
| 50 | + config.unknown_error_message = reloadString(config.no_network_message, R.string.no_network_message); | |
| 37 | 51 | } |
| 38 | 52 | |
| 39 | 53 | public static Config newConfig() { |
| ... | ... | @@ -43,10 +57,7 @@ public abstract class Subscriber<T extends IBaseInfo> { |
| 43 | 57 | public Consumer<Result<T>> next = new Consumer<Result<T>>() { |
| 44 | 58 | @Override |
| 45 | 59 | public void accept(Result<T> data) throws Exception { |
| 46 | - Response<T> response = data.response(); | |
| 47 | - if (response != null) pageData = response.body(); | |
| 48 | - else if (!NetworkUtil.isConnectInternet(context)) onNetworkNoConnected(); | |
| 49 | - else onError(config.load_failure_code, config.load_failure_message); | |
| 60 | + response = data == null ? null : data.response(); | |
| 50 | 61 | } |
| 51 | 62 | }; |
| 52 | 63 | |
| ... | ... | @@ -64,21 +75,20 @@ public abstract class Subscriber<T extends IBaseInfo> { |
| 64 | 75 | public Action complete = new Action() { |
| 65 | 76 | @Override |
| 66 | 77 | public void run() throws Exception { |
| 67 | - if (pageData != null && config.load_success_code.equals(pageData.getCode())) { | |
| 68 | - onCompleted(config.load_success_code, config.load_success_message, pageData); | |
| 69 | - } else if (pageData != null) { | |
| 70 | - if (config.custom_map.containsKey(pageData.getCode())) { | |
| 71 | - onError(pageData.getCode(), config.custom_map.get(pageData.getCode())); | |
| 72 | - | |
| 73 | - if (config.customLoadResponse != null) | |
| 74 | - config.customLoadResponse.onCustomEvent(pageData.getCode(), pageData); | |
| 75 | - } else { | |
| 76 | - onError(pageData.getCode(), pageData.getMessage()); | |
| 77 | - } | |
| 78 | - } else { | |
| 79 | - if (context != null && !NetworkUtil.isConnectInternet(context)) | |
| 80 | - onNetworkNoConnected(); | |
| 78 | + if (response == null) { | |
| 79 | + if (!NetworkUtil.isConnectInternet(context)) onNetworkNoConnected(); | |
| 81 | 80 | else onError(config.unknown_error_code, config.unknown_error_message); |
| 81 | + } else { | |
| 82 | + T pageData = response.body(); | |
| 83 | + | |
| 84 | + if (pageData != null && config.load_success_code.equals(pageData.getCode())) | |
| 85 | + onCompleted(config.load_success_code, config.load_success_message, pageData); | |
| 86 | + else if (pageData != null) | |
| 87 | + if (config.customLoadResponse != null && config.custom_map.containsKey(pageData.getCode())) | |
| 88 | + config.customLoadResponse.onCustomEvent(pageData.getCode(), pageData.getMessage(), pageData); | |
| 89 | + else onError(pageData.getCode(), pageData.getMessage()); | |
| 90 | + else if (context != null && !NetworkUtil.isConnectInternet(context)) onNetworkNoConnected(); | |
| 91 | + else onError(config.load_failure_code, config.load_failure_message); | |
| 82 | 92 | } |
| 83 | 93 | } |
| 84 | 94 | }; |
| ... | ... | @@ -102,7 +112,7 @@ public abstract class Subscriber<T extends IBaseInfo> { |
| 102 | 112 | } |
| 103 | 113 | |
| 104 | 114 | public interface CustomLoadResponse { |
| 105 | - void onCustomEvent(String code, IBaseInfo pageData); | |
| 115 | + void onCustomEvent(String code, String message, IBaseInfo pageData); | |
| 106 | 116 | } |
| 107 | 117 | |
| 108 | 118 | public static class Config { |
| ... | ... | @@ -125,19 +135,19 @@ public abstract class Subscriber<T extends IBaseInfo> { |
| 125 | 135 | public static final String default_unknown_error_code = "-4"; |
| 126 | 136 | |
| 127 | 137 | private String load_success_code = default_success_code; |
| 128 | - private String load_success_message = Resources.getSystem().getString(R.string.load_success_message); | |
| 138 | + private String load_success_message; | |
| 129 | 139 | |
| 130 | 140 | private String load_failure_code = default_failure_code; |
| 131 | - private String load_failure_message = Resources.getSystem().getString(R.string.load_failure_message); | |
| 141 | + private String load_failure_message; | |
| 132 | 142 | |
| 133 | 143 | private String load_error_code = default_error_code; |
| 134 | - private String load_error_message = Resources.getSystem().getString(R.string.load_error_message); | |
| 144 | + private String load_error_message; | |
| 135 | 145 | |
| 136 | 146 | private String no_network_code = default_no_network_code; |
| 137 | - private String no_network_message = Resources.getSystem().getString(R.string.no_network_message); | |
| 147 | + private String no_network_message; | |
| 138 | 148 | |
| 139 | 149 | private String unknown_error_code = default_unknown_error_code; |
| 140 | - private String unknown_error_message = Resources.getSystem().getString(R.string.no_network_message); | |
| 150 | + private String unknown_error_message; | |
| 141 | 151 | |
| 142 | 152 | /** |
| 143 | 153 | * Custom event map , value{code : message} |
| ... | ... | @@ -183,24 +193,24 @@ public abstract class Subscriber<T extends IBaseInfo> { |
| 183 | 193 | public Config removeInfo(@RESPONSE_TYPE int type) { |
| 184 | 194 | switch (type) { |
| 185 | 195 | case response_success: |
| 186 | - this.load_success_code = "0"; | |
| 187 | - this.load_success_message = Resources.getSystem().getString(R.string.load_success_message); | |
| 196 | + this.load_success_code = default_success_code; | |
| 197 | + this.load_success_message = null; | |
| 188 | 198 | break; |
| 189 | 199 | case response_failure: |
| 190 | - this.load_failure_code = "-1"; | |
| 191 | - this.load_failure_message = Resources.getSystem().getString(R.string.load_failure_message); | |
| 200 | + this.load_failure_code = default_failure_code; | |
| 201 | + this.load_failure_message = null; | |
| 192 | 202 | break; |
| 193 | 203 | case response_error: |
| 194 | - this.load_error_code = "-2"; | |
| 195 | - this.load_error_message = Resources.getSystem().getString(R.string.load_error_message); | |
| 204 | + this.load_error_code = default_error_code; | |
| 205 | + this.load_error_message = null; | |
| 196 | 206 | break; |
| 197 | 207 | case response_no_network: |
| 198 | - this.no_network_code = "-3"; | |
| 199 | - this.no_network_message = Resources.getSystem().getString(R.string.no_network_message); | |
| 208 | + this.no_network_code = default_no_network_code; | |
| 209 | + this.no_network_message = null; | |
| 200 | 210 | break; |
| 201 | 211 | case response_unknown: |
| 202 | - this.unknown_error_code = "-4"; | |
| 203 | - this.unknown_error_message = Resources.getSystem().getString(R.string.no_network_message); | |
| 212 | + this.unknown_error_code = default_unknown_error_code; | |
| 213 | + this.unknown_error_message = null; | |
| 204 | 214 | break; |
| 205 | 215 | } |
| 206 | 216 | return this; | ... | ... |
cnlive/src/main/res/values/strings.xml