liujiangyao пре 8 година
родитељ
комит
673d20f487

+ 17 - 1
app/src/main/java/com/sheep/gamegroup/model/util/SheepSubscriber.java

@@ -6,7 +6,12 @@ import android.widget.Toast;
 
 import com.alibaba.fastjson.JSONObject;
 import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.util.ActivityManager;
+import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.NetUtil;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.G;
+import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 
 import rx.Subscriber;
 
@@ -46,8 +51,19 @@ public abstract class SheepSubscriber<T> extends Subscriber<T> {
         if(e instanceof Exception){
             //访问获得对应的Exception
             ExceptionHandle.ResponeThrowable throwable = ExceptionHandle.handleException(e);
+            /**
+             * token 过期
+             */
+            if(throwable.code == 401){
+                SpUtils.login(SheepApp.mContext,"");
+                G.showToast("请重新登录");
+                ActivityManager.getInstance().finishAllActivity();
+                Jump2View.getInstance().goLoginView(SheepApp.mContext, null);
+                return;
+            }
             BaseMessage baseMessage = JSONObject.parseObject(throwable.message, BaseMessage.class);
-            baseMessage.setCode(throwable.code);
+            if(baseMessage.getCode() == 0)
+                baseMessage.setCode(throwable.code);
             onError(baseMessage);
         }else {
             //将Throwable 和 未知错误的status code返回

+ 6 - 10
app/src/main/java/com/sheep/gamegroup/presenter/HomePagePresenter.java

@@ -4,6 +4,7 @@ import android.util.Log;
 
 import com.sheep.gamegroup.model.api.ApiService;
 import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 
@@ -35,22 +36,17 @@ public class HomePagePresenter implements HomePageContract.Persenter {
         apiService.getInfo()
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new Observer<BaseMessage>() {
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
                     @Override
-                    public void onCompleted() {
+                    public void onError(BaseMessage baseMessage) {
+                        view.failData2View(baseMessage);
 
                     }
 
                     @Override
-                    public void onError(Throwable throwable) {
-                        view.failData2View(throwable);
-                        Log.e("throwable",throwable+"");
-                    }
+                    public void onNext(BaseMessage baseMessage) {
+                        view.updateData2View(baseMessage);
 
-                    @Override
-                    public void onNext(BaseMessage o) {
-                        Log.e("token---user",o.toString()+"");
-                        view.updateData2View(o);
                     }
                 });
     }

+ 8 - 10
app/src/main/java/com/sheep/gamegroup/presenter/PersonalCenterPresenter.java

@@ -4,12 +4,14 @@ import android.util.Log;
 
 import com.sheep.gamegroup.model.api.ApiService;
 import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 
 import javax.inject.Inject;
 
 import rx.Observer;
+import rx.android.schedulers.AndroidSchedulers;
 import rx.schedulers.Schedulers;
 
 /**
@@ -33,22 +35,18 @@ public class PersonalCenterPresenter implements PersonalCenterContract.Persenter
         Log.e("token---user",token+"");
         apiService.getInfo()
                 .subscribeOn(Schedulers.io())
-                .subscribe(new Observer<BaseMessage>() {
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
                     @Override
-                    public void onCompleted() {
+                    public void onError(BaseMessage baseMessage) {
+                        view.failData2View(baseMessage);
 
                     }
 
                     @Override
-                    public void onError(Throwable throwable) {
-                        view.failData2View(throwable);
-                        Log.e("throwable",throwable+"");
-                    }
+                    public void onNext(BaseMessage baseMessage) {
+                        view.updateData2View(baseMessage);
 
-                    @Override
-                    public void onNext(BaseMessage o) {
-                        Log.e("token---user",o.toString()+"");
-                        view.updateData2View(o);
                     }
                 });
     }

+ 6 - 10
app/src/main/java/com/sheep/gamegroup/presenter/SmallSheepPresenter.java

@@ -4,6 +4,7 @@ import android.util.Log;
 
 import com.sheep.gamegroup.model.api.ApiService;
 import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 
@@ -35,22 +36,17 @@ public class SmallSheepPresenter implements SmallSheepContract.Persenter {
         apiService.getInfo()
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new Observer<BaseMessage>() {
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
                     @Override
-                    public void onCompleted() {
+                    public void onError(BaseMessage baseMessage) {
+                        view.failData2View(baseMessage);
 
                     }
 
                     @Override
-                    public void onError(Throwable throwable) {
-                        view.failData2View(throwable);
-                        Log.e("throwable",throwable+"");
-                    }
+                    public void onNext(BaseMessage baseMessage) {
+                        view.updateData2View(baseMessage);
 
-                    @Override
-                    public void onNext(BaseMessage o) {
-                        Log.e("token---user",o.toString()+"");
-                        view.updateData2View(o);
                     }
                 });
     }

+ 1 - 0
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -62,6 +62,7 @@ public class Jump2View {
      */
     public void goLoginView(Context context, Object o){
         Intent intent = new Intent(context, LoginAct.class);
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         context.startActivity(intent);
     }