From 56e8a985acf0433a131b67d4e8aae11a94bda03b Mon Sep 17 00:00:00 2001 From: jackjintai Date: Fri, 29 May 2020 17:39:30 +0800 Subject: [PATCH] android: fixed network error --- .../kit/core/NormalDokitViewManager.java | 6 ++++-- .../interceptor/DoraemonInterceptor.java | 19 +++++++++++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/NormalDokitViewManager.java b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/NormalDokitViewManager.java index 91746496..48083131 100644 --- a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/NormalDokitViewManager.java +++ b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/NormalDokitViewManager.java @@ -155,8 +155,9 @@ class NormalDokitViewManager implements DokitViewManagerInterface { //将所有的dokitView添加到新建的Activity中去 for (GlobalSingleDokitViewInfo dokitViewInfo : mGlobalSingleDokitViews.values()) { + //如果不是性能kitView 则不显示 if (activity instanceof UniversalActivity && dokitViewInfo.getAbsDokitViewClass() != PerformanceDokitView.class) { - return; + continue; } //是否过滤掉 入口icon if (!DokitConstant.AWAYS_SHOW_MAIN_ICON && dokitViewInfo.getAbsDokitViewClass() == MainIconDokitView.class) { @@ -217,8 +218,9 @@ class NormalDokitViewManager implements DokitViewManagerInterface { //更新所有全局DokitView的位置 if (mGlobalSingleDokitViews != null && mGlobalSingleDokitViews.size() > 0) { for (GlobalSingleDokitViewInfo globalSingleDokitViewInfo : mGlobalSingleDokitViews.values()) { + //如果不是性能kitView 则需要重新更新位置 if (activity instanceof UniversalActivity && globalSingleDokitViewInfo.getAbsDokitViewClass() != PerformanceDokitView.class) { - return; + continue; } //是否过滤掉 入口icon if (!DokitConstant.AWAYS_SHOW_MAIN_ICON && globalSingleDokitViewInfo.getAbsDokitViewClass() == MainIconDokitView.class) { diff --git a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/okhttp/interceptor/DoraemonInterceptor.java b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/okhttp/interceptor/DoraemonInterceptor.java index 58a160c9..61ed2c54 100644 --- a/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/okhttp/interceptor/DoraemonInterceptor.java +++ b/Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/okhttp/interceptor/DoraemonInterceptor.java @@ -26,6 +26,7 @@ import java.util.List; import okhttp3.Interceptor; import okhttp3.MediaType; +import okhttp3.Protocol; import okhttp3.Request; import okhttp3.Response; import okhttp3.ResponseBody; @@ -43,7 +44,18 @@ public class DoraemonInterceptor implements Interceptor { public Response intercept(Chain chain) throws IOException { if (!NetworkManager.isActive()) { Request request = chain.request(); - return chain.proceed(request); + try { + return chain.proceed(request); + } catch (Exception e) { + ResponseBody responseBody = ResponseBody.create(MediaType.parse("application/json;charset=utf-8"), "" + e.getMessage()); + return new Response.Builder() + .code(400) + .message(String.format("%s==>Exception:%s", chain.request().url().host(), e.getMessage())) + .request(request) + .body(responseBody) + .protocol(Protocol.HTTP_1_1) + .build(); + } } Request request = chain.request(); @@ -52,12 +64,15 @@ public class DoraemonInterceptor implements Interceptor { try { response = chain.proceed(request); } catch (Exception e) { + LogHelper.e(TAG, "e===>" + e.getMessage()); mNetworkInterpreter.httpExchangeFailed(requestId, e.toString()); - ResponseBody responseBody = ResponseBody.create(MediaType.parse("application/json;charset=utf-8"), ""); + ResponseBody responseBody = ResponseBody.create(MediaType.parse("application/json;charset=utf-8"), "" + e.getMessage()); return new Response.Builder() .code(400) .message(String.format("%s==>Exception:%s", chain.request().url().host(), e.getMessage())) + .request(request) .body(responseBody) + .protocol(Protocol.HTTP_1_1) .build(); } -- GitLab