From f9059d1101cde64b87ec876be1bffaf83599ef60 Mon Sep 17 00:00:00 2001 From: ivanfanwu Date: Wed, 6 Apr 2022 19:44:19 +0800 Subject: [PATCH] fix(android): elements page screencast at first msg --- .../hippy/bridge/HippyBridgeManagerImpl.java | 8 +++-- .../inspector/domain/PageDomain.java | 6 ++-- .../devsupport/inspector/model/PageModel.java | 31 ++++++++++--------- 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/android/sdk/src/main/java/com/tencent/mtt/hippy/bridge/HippyBridgeManagerImpl.java b/android/sdk/src/main/java/com/tencent/mtt/hippy/bridge/HippyBridgeManagerImpl.java index 66c9765be44..59ecfce1e81 100644 --- a/android/sdk/src/main/java/com/tencent/mtt/hippy/bridge/HippyBridgeManagerImpl.java +++ b/android/sdk/src/main/java/com/tencent/mtt/hippy/bridge/HippyBridgeManagerImpl.java @@ -645,9 +645,11 @@ String getGlobalConfigs() { globalParams.pushMap("Platform", platformParams); - HippyMap debugParams = new HippyMap(); - debugParams.pushString("debugClientId", mContext.getDevSupportManager().getDebugInstanceId()); - globalParams.pushMap("Debug", debugParams); + if (mContext.getDevSupportManager().isSupportDev()) { + HippyMap debugParams = new HippyMap(); + debugParams.pushString("debugClientId", mContext.getDevSupportManager().getDebugInstanceId()); + globalParams.pushMap("Debug", debugParams); + } HippyMap tkd = new HippyMap(); tkd.pushString("url", (pageUrl == null) ? "" : pageUrl); diff --git a/android/sdk/src/main/java/com/tencent/mtt/hippy/devsupport/inspector/domain/PageDomain.java b/android/sdk/src/main/java/com/tencent/mtt/hippy/devsupport/inspector/domain/PageDomain.java index 27d60924f55..07c9c1e97ee 100644 --- a/android/sdk/src/main/java/com/tencent/mtt/hippy/devsupport/inspector/domain/PageDomain.java +++ b/android/sdk/src/main/java/com/tencent/mtt/hippy/devsupport/inspector/domain/PageDomain.java @@ -28,7 +28,7 @@ public class PageDomain extends InspectorDomain implements Handler.Callback, Pag private static final int MSG_SCREEN_CAST_ACK = 0x02; private static final long FRAME_CALLBACK_INTERVAL = 1000L; - private static final long DELAY_FOR_FRAME_UPDATE = 100L; + private static final long DELAY_FOR_FRAME_UPDATE = 200L; public static final String BUNDLE_KEY_PARAM = "params"; @@ -169,10 +169,12 @@ public void onFrameUpdate() { } if (context != null && mHandlerThread != null && mLastSessionId != -1) { Handler hander = mHandlerThread.getHandler(); + if (hander.hasMessages(MSG_SCREEN_CAST_ACK)) { + return; + } Message msg = hander.obtainMessage(MSG_SCREEN_CAST_ACK); msg.obj = context; msg.arg1 = mLastSessionId; - hander.removeMessages(MSG_SCREEN_CAST_ACK); hander.sendMessageDelayed(msg, DELAY_FOR_FRAME_UPDATE); mIsFrameUpdate = false; } diff --git a/android/sdk/src/main/java/com/tencent/mtt/hippy/devsupport/inspector/model/PageModel.java b/android/sdk/src/main/java/com/tencent/mtt/hippy/devsupport/inspector/model/PageModel.java index de9fbca7eca..616c6034ff5 100644 --- a/android/sdk/src/main/java/com/tencent/mtt/hippy/devsupport/inspector/model/PageModel.java +++ b/android/sdk/src/main/java/com/tencent/mtt/hippy/devsupport/inspector/model/PageModel.java @@ -34,6 +34,7 @@ public class PageModel { private int maxHeight; private Bitmap screenBitmap; private WeakReference mFrameUpdateListenerRef; + private ViewTreeObserver.OnDrawListener mOnDrawListener; public JSONObject startScreenCast(HippyEngineContext context, final JSONObject paramsObj) { isFramingScreenCast = true; @@ -61,6 +62,19 @@ private void listenFrameUpdate(final HippyEngineContext context) { LogUtils.e(TAG, "listenFrameUpdate error none hippyRootView"); return; } + if (mOnDrawListener == null) { + mOnDrawListener = new ViewTreeObserver.OnDrawListener() { + @Override + public void onDraw() { + if (mFrameUpdateListenerRef != null) { + FrameUpdateListener listener = mFrameUpdateListenerRef.get(); + if (listener != null) { + listener.onFrameUpdate(); + } + } + } + }; + } try { hippyRootView.getViewTreeObserver().removeOnDrawListener(mOnDrawListener); hippyRootView.getViewTreeObserver().addOnDrawListener(mOnDrawListener); @@ -70,19 +84,6 @@ private void listenFrameUpdate(final HippyEngineContext context) { } } - private final ViewTreeObserver.OnDrawListener mOnDrawListener = new ViewTreeObserver.OnDrawListener() { - @Override - public void onDraw() { - LogUtils.d(TAG, "HippyRootView, onDraw"); - if (mFrameUpdateListenerRef != null) { - FrameUpdateListener listener = mFrameUpdateListenerRef.get(); - if (listener != null) { - listener.onFrameUpdate(); - } - } - } - }; - public void setFrameUpdateListener(FrameUpdateListener listener) { if (listener != null) { mFrameUpdateListenerRef = new WeakReference<>(listener); @@ -100,7 +101,9 @@ public void stopScreenCast(HippyEngineContext context) { LogUtils.e(TAG, "stopScreenCast error none hippyRootView"); return; } - hippyRootView.getViewTreeObserver().removeOnDrawListener(mOnDrawListener); + if (mOnDrawListener != null) { + hippyRootView.getViewTreeObserver().removeOnDrawListener(mOnDrawListener); + } } }