Skip to content

Commit 4c1aa52

Browse files
committed
修改拦截器
1 parent 0c2e256 commit 4c1aa52

File tree

9 files changed

+38
-20
lines changed

9 files changed

+38
-20
lines changed

GoRouter/src/main/java/com/wyjson/router/callback/GoCallback.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,5 @@ public interface GoCallback {
3030
*
3131
* @param card
3232
*/
33-
void onInterrupt(Card card);
33+
void onInterrupt(Card card, Throwable exception);
3434
}

GoRouter/src/main/java/com/wyjson/router/callback/GoCallbackImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public void onLost(Card card) {
1717
public abstract void onArrival(Card card);
1818

1919
@Override
20-
public void onInterrupt(Card card) {
20+
public void onInterrupt(Card card, Throwable exception) {
2121

2222
}
2323
}

GoRouter/src/main/java/com/wyjson/router/core/GoRouter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,9 +229,9 @@ public void onContinue(Card card) {
229229
}
230230

231231
@Override
232-
public void onInterrupt(Throwable exception) {
232+
public void onInterrupt(Card card, Throwable exception) {
233233
if (callback != null) {
234-
callback.onInterrupt(card);
234+
callback.onInterrupt(card, exception);
235235
}
236236
}
237237
});

GoRouter/src/main/java/com/wyjson/router/interceptor/InterceptorCallback.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ public interface InterceptorCallback {
66

77
void onContinue(Card card);
88

9-
void onInterrupt(Throwable exception);
9+
void onInterrupt(Card card, Throwable exception);
1010
}

GoRouter/src/main/java/com/wyjson/router/interceptor/service/impl/InterceptorServiceImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ public void onContinue(Card card) {
3232
}
3333

3434
@Override
35-
public void onInterrupt(Throwable exception) {
36-
callback.onInterrupt(exception);
35+
public void onInterrupt(Card card, Throwable exception) {
36+
callback.onInterrupt(card, exception);
3737
}
3838
});
3939
} else {

GoRouter/src/main/java/com/wyjson/router/interfaces/IInterceptor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public interface IInterceptor {
1212

1313
/**
1414
* {@link InterceptorCallback#onContinue(Card)} 继续执行
15-
* {@link InterceptorCallback#onInterrupt(Throwable)}} 拦截
15+
* {@link InterceptorCallback#onInterrupt(Card, Throwable)}} 拦截
1616
*
1717
* @param card
1818
* @param callback

README.md

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,6 @@
140140
.putString("name")
141141
.putInt("age")
142142
.commit(TestActivity.class);
143-
144-
145143
```
146144

147145
3. 声明拦截器(拦截跳转过程,面向切面编程)
@@ -153,8 +151,8 @@
153151
@Override
154152
public void process(Card card, InterceptorCallback callback) {
155153
...
156-
callback.onContinue(card); // 处理完成,交还控制权
157-
// callback.onInterrupt(new RouterException("我觉得有点异常")); // 觉得有问题,中断路由流程
154+
callback.onContinue(card); // 处理完成,交还控制权
155+
// callback.onInterrupt(card, new RouterException("我觉得有点异常")); // 觉得有问题,中断路由流程
158156

159157
// 以上两种至少需要调用其中一种,否则不会继续路由
160158
}
@@ -167,7 +165,6 @@
167165

168166
// 注册
169167
GoRouter.getInstance().addInterceptor(1, TestInterceptor.class);
170-
171168
```
172169

173170
4. 处理跳转结果
@@ -191,7 +188,7 @@
191188
}
192189

193190
@Override
194-
public void onInterrupt(Card card) {
191+
public void onInterrupt(Card card, Throwable exception) {
195192

196193
}
197194
});
@@ -215,8 +212,6 @@
215212

216213
// 注册
217214
GoRouter.getInstance().addService(DegradeServiceImpl.class);
218-
219-
220215
```
221216

222217
6. 为目标页面声明更多信息
@@ -228,7 +223,6 @@
228223
GoRouter.getInstance().build("/user/info/activity")
229224
.putTag(RouteTag.LOGIN.getValue() | RouteTag.AUTHENTICATION.getValue())
230225
.commit(UserInfoActivity.class);
231-
232226
```
233227
Demo里[RouteTag.java](https://github.com/wyjsonGo/GoRouter/blob/master/module_common/src/main/java/com/wyjson/module_common/route/enums/RouteTag.java)已经实现了一个例子
234228

@@ -256,7 +250,6 @@
256250

257251
// 注册
258252
GoRouter.getInstance().addService(UserServiceImpl.class);
259-
260253
```
261254

262255
8. 通过依赖注入解耦:服务管理(二) 发现服务

module_main/src/main/java/com/wyjson/module_main/activity/MainActivity.java

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.wyjson.module_main.activity;
22

33
import android.os.Bundle;
4+
import android.text.TextUtils;
45
import android.view.View;
56
import android.widget.Toast;
67

@@ -13,6 +14,8 @@
1314
import com.wyjson.module_common.route.service.user.UserService;
1415
import com.wyjson.module_main.R;
1516
import com.wyjson.module_main.databinding.MainActivityMainBinding;
17+
import com.wyjson.router.callback.GoCallback;
18+
import com.wyjson.router.core.Card;
1619
import com.wyjson.router.core.GoRouter;
1720

1821
public class MainActivity extends FragmentActivity {
@@ -59,7 +62,29 @@ public void onClickParamFragment(View view) {
5962
}
6063

6164
public void onClickUserInfoActivity(View view) {
62-
GoRouter.getInstance().build(UserRoute.UserInfoActivity).go(this);
65+
GoRouter.getInstance().build(UserRoute.UserInfoActivity).go(this, new GoCallback() {
66+
@Override
67+
public void onFound(Card card) {
68+
69+
}
70+
71+
@Override
72+
public void onLost(Card card) {
73+
74+
}
75+
76+
@Override
77+
public void onArrival(Card card) {
78+
79+
}
80+
81+
@Override
82+
public void onInterrupt(Card card, Throwable exception) {
83+
if (exception != null && !TextUtils.isEmpty(exception.getMessage())) {
84+
Toast.makeText(MainActivity.this, "onInterrupt:" + exception.getMessage(), Toast.LENGTH_SHORT).show();
85+
}
86+
}
87+
});
6388
}
6489

6590
public void onClickUserService(View view) {

module_user/src/main/java/com/wyjson/module_user/route/interceptor/SignInInterceptor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public void process(Card card, InterceptorCallback callback) {
2222
if (RouteTag.isExist(card.getTag(), RouteTag.LOGIN) || card.getExtras().getBoolean(IS_LOGIN)) {
2323
if (true) {// 判断用户是否登录
2424
GoRouter.getInstance().build(UserRoute.SignInActivity).go(card.getContext());
25-
callback.onInterrupt(new RouterException("未登录"));
25+
callback.onInterrupt(card, new RouterException("未登录,拦截自动跳转登录页!"));
2626
return;
2727
}
2828
}

0 commit comments

Comments
 (0)