소스 검색

解决地区问题

詹子聪 5 년 전
부모
커밋
f78dab7fe6

+ 1 - 2
app/src/main/java/com/miekir/eden/base/CommonApi.java

@@ -2,7 +2,6 @@ package com.miekir.eden.base;
 
 
 import com.miekir.eden.bean.IPInfoBean;
-import com.miekir.network.core.base.BaseResponse;
 
 import io.reactivex.Observable;
 import retrofit2.http.GET;
@@ -19,5 +18,5 @@ public interface CommonApi {
      * 提交考试
      */
     @GET("https://iplist.cc/api")
-    Observable<BaseResponse<IPInfoBean>> getIPInfo();
+    Observable<IPInfoBean> getIPInfo();
 }

+ 3 - 2
app/src/main/java/com/miekir/eden/ui/mine/login/LoginPresenter.java

@@ -11,6 +11,7 @@ import com.miekir.eden.constant.EdenError;
 import com.miekir.eden.net.RetrofitHelper;
 import com.miekir.mvp.presenter.BasePresenter;
 import com.miekir.network.core.base.BaseObserver;
+import com.miekir.network.core.base.CommonObserver;
 
 import io.reactivex.android.schedulers.AndroidSchedulers;
 import io.reactivex.schedulers.Schedulers;
@@ -71,9 +72,9 @@ public class LoginPresenter extends BasePresenter<ILoginView> {
                 .getIPInfo()
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new BaseObserver<IPInfoBean>() {
+                .subscribe(new CommonObserver<IPInfoBean>() {
                     @Override
-                    public void onSuccess(int code, IPInfoBean ipInfo) {
+                    public void onSuccess(IPInfoBean ipInfo) {
                         if (getView() != null) {
                             // 暂不支持中国地区
                             if ((ipInfo == null || TextUtils.equals("CN", ipInfo.getCountrycode()))) {

+ 46 - 0
network/src/main/java/com/miekir/network/core/base/CommonObserver.java

@@ -0,0 +1,46 @@
+package com.miekir.network.core.base;
+
+import com.miekir.network.constant.Code;
+import com.miekir.network.utils.ExceptionUtil;
+
+import io.reactivex.Observer;
+import io.reactivex.annotations.NonNull;
+import io.reactivex.disposables.Disposable;
+
+/**
+ * 返回结果处理
+ * @author Miekir
+ */
+
+public abstract class CommonObserver<T> implements Observer<T> {
+
+    @Override
+    public void onNext(@NonNull T response) {
+        try {
+            onSuccess(response);
+        } catch (Exception e) {
+            e.printStackTrace();
+            onFailure(Code.COMMON, new Exception("null"), null);
+        }
+    }
+
+    @Override
+    public void onError(@NonNull Throwable e) {
+        e.printStackTrace();
+        onFailure(Code.COMMON, e, ExceptionUtil.exceptionHandler(e));
+    }
+
+    @Override
+    public void onComplete() {
+
+    }
+
+    @Override
+    public void onSubscribe(@NonNull Disposable d) {
+
+    }
+
+    public abstract void onSuccess(T result);
+
+    public abstract void onFailure(int code, Throwable e, String errMsg);
+}