diff --git a/framework/js/android/src/main/java/com/tencent/mtt/hippy/HippyEngine.java b/framework/js/android/src/main/java/com/tencent/mtt/hippy/HippyEngine.java index eae8ad6b6..7c4469489 100644 --- a/framework/js/android/src/main/java/com/tencent/mtt/hippy/HippyEngine.java +++ b/framework/js/android/src/main/java/com/tencent/mtt/hippy/HippyEngine.java @@ -47,11 +47,11 @@ import com.tencent.mtt.hippy.bridge.bundleloader.HippyBundleLoader; import com.tencent.mtt.hippy.bridge.libraryloader.LibraryLoader; import com.tencent.mtt.hippy.common.HippyJsException; import com.tencent.mtt.hippy.common.HippyMap; +import com.tencent.mtt.hippy.modules.HippyModulePromise.BridgeTransferType; import com.tencent.mtt.hippy.utils.ContextHolder; import com.tencent.mtt.hippy.utils.LogUtils; import com.tencent.mtt.hippy.utils.UIThreadUtils; import com.tencent.mtt.hippy.adapter.thirdparty.HippyThirdPartyAdapter; -import com.tencent.mtt.hippy.modules.Promise.BridgeTransferType; import java.util.ArrayList; import java.util.List; diff --git a/framework/js/android/src/main/java/com/tencent/mtt/hippy/HippyEngineManagerImpl.java b/framework/js/android/src/main/java/com/tencent/mtt/hippy/HippyEngineManagerImpl.java index 5c018c751..3d85a0697 100644 --- a/framework/js/android/src/main/java/com/tencent/mtt/hippy/HippyEngineManagerImpl.java +++ b/framework/js/android/src/main/java/com/tencent/mtt/hippy/HippyEngineManagerImpl.java @@ -33,7 +33,6 @@ import com.tencent.link_supplier.proxy.renderer.ControllerProvider; import com.tencent.link_supplier.proxy.renderer.NativeRenderProxy; import com.tencent.mtt.hippy.adapter.device.HippyDeviceAdapter; import com.tencent.mtt.hippy.dom.DomManager; -import com.tencent.mtt.hippy.modules.Promise.BridgeTransferType; import com.tencent.mtt.hippy.adapter.monitor.HippyEngineMonitorAdapter; import com.tencent.mtt.hippy.adapter.thirdparty.HippyThirdPartyAdapter; import com.tencent.mtt.hippy.bridge.HippyBridgeManager; @@ -50,6 +49,7 @@ import com.tencent.mtt.hippy.devsupport.DevServerCallBack; import com.tencent.mtt.hippy.devsupport.DevSupportManager; import com.tencent.mtt.hippy.modules.HippyModuleManager; import com.tencent.mtt.hippy.modules.HippyModuleManagerImpl; +import com.tencent.mtt.hippy.modules.HippyModulePromise.BridgeTransferType; import com.tencent.mtt.hippy.modules.javascriptmodules.Dimensions; import com.tencent.mtt.hippy.modules.javascriptmodules.EventDispatcher; import com.tencent.mtt.hippy.modules.nativemodules.deviceevent.DeviceEventModule; @@ -891,15 +891,15 @@ public abstract class HippyEngineManagerImpl extends HippyEngineManager implemen } public void destroy() { + if (mLinkHelper != null) { + mLinkHelper.destroy(); + } if (mBridgeManager != null) { mBridgeManager.destroy(); } if (mModuleManager != null) { mModuleManager.destroy(); } - if (mLinkHelper != null) { - mLinkHelper.destroy(); - } if (mEngineLifecycleEventListeners != null) { mEngineLifecycleEventListeners.clear(); } diff --git a/framework/js/android/src/main/java/com/tencent/mtt/hippy/bridge/HippyBridgeManager.java b/framework/js/android/src/main/java/com/tencent/mtt/hippy/bridge/HippyBridgeManager.java index afb8d684f..e6381d2a3 100644 --- a/framework/js/android/src/main/java/com/tencent/mtt/hippy/bridge/HippyBridgeManager.java +++ b/framework/js/android/src/main/java/com/tencent/mtt/hippy/bridge/HippyBridgeManager.java @@ -15,15 +15,13 @@ */ package com.tencent.mtt.hippy.bridge; -import android.view.ViewGroup; import com.tencent.mtt.hippy.HippyEngine; -import com.tencent.mtt.hippy.modules.Promise.BridgeTransferType; -import com.tencent.mtt.hippy.HippyRootView; import com.tencent.mtt.hippy.adapter.thirdparty.HippyThirdPartyAdapter; import com.tencent.mtt.hippy.bridge.bundleloader.HippyBundleLoader; import com.tencent.mtt.hippy.common.Callback; import com.tencent.mtt.hippy.common.HippyJsException; import com.tencent.mtt.hippy.common.HippyMap; +import com.tencent.mtt.hippy.modules.HippyModulePromise.BridgeTransferType; @SuppressWarnings({"deprecation", "unused"}) public interface HippyBridgeManager { diff --git a/framework/js/android/src/main/java/com/tencent/mtt/hippy/bridge/HippyBridgeManagerImpl.java b/framework/js/android/src/main/java/com/tencent/mtt/hippy/bridge/HippyBridgeManagerImpl.java index 0a2ca8d21..136002f99 100644 --- a/framework/js/android/src/main/java/com/tencent/mtt/hippy/bridge/HippyBridgeManagerImpl.java +++ b/framework/js/android/src/main/java/com/tencent/mtt/hippy/bridge/HippyBridgeManagerImpl.java @@ -23,13 +23,10 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; -import android.view.ViewGroup; import com.tencent.mtt.hippy.HippyEngine; -import com.tencent.mtt.hippy.modules.Promise.BridgeTransferType; import com.tencent.mtt.hippy.HippyEngine.ModuleLoadStatus; import com.tencent.mtt.hippy.HippyEngine.V8InitParams; import com.tencent.mtt.hippy.HippyEngineContext; -import com.tencent.mtt.hippy.adapter.monitor.HippyEngineMonitorEvent; import com.tencent.mtt.hippy.adapter.thirdparty.HippyThirdPartyAdapter; import com.tencent.mtt.hippy.bridge.bundleloader.HippyBundleLoader; import com.tencent.mtt.hippy.bridge.jsi.TurboModuleManager; @@ -38,6 +35,7 @@ import com.tencent.mtt.hippy.common.HippyArray; import com.tencent.mtt.hippy.common.HippyJsException; import com.tencent.mtt.hippy.common.HippyMap; import com.tencent.mtt.hippy.modules.HippyModuleManager; +import com.tencent.mtt.hippy.modules.HippyModulePromise.BridgeTransferType; import com.tencent.mtt.hippy.runtime.builtins.JSValue; import com.tencent.mtt.hippy.serialization.PrimitiveValueSerializer; import com.tencent.mtt.hippy.serialization.compatible.Serializer; diff --git a/framework/js/android/src/main/java/com/tencent/mtt/hippy/modules/HippyModulePromise.java b/framework/js/android/src/main/java/com/tencent/mtt/hippy/modules/HippyModulePromise.java new file mode 100644 index 000000000..7a118c22e --- /dev/null +++ b/framework/js/android/src/main/java/com/tencent/mtt/hippy/modules/HippyModulePromise.java @@ -0,0 +1,43 @@ +/* Tencent is pleased to support the open source community by making Hippy available. + * Copyright (C) 2018 THL A29 Limited, a Tencent company. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.tencent.mtt.hippy.modules; + +@SuppressWarnings({"unused"}) +public interface HippyModulePromise extends Promise { + + String CALL_ID_NO_CALLBACK = "-1"; + + enum BridgeTransferType { + BRIDGE_TRANSFER_TYPE_NORMAL(0), + BRIDGE_TRANSFER_TYPE_NIO(1); + + private final int iValue; + + BridgeTransferType(int value) { + iValue = value; + } + + public int value() { + return iValue; + } + } + + boolean isCallback(); + + String getCallId(); + + void setTransferType(BridgeTransferType type); +} diff --git a/framework/js/android/src/main/java/com/tencent/mtt/hippy/modules/PromiseImpl.java b/framework/js/android/src/main/java/com/tencent/mtt/hippy/modules/PromiseImpl.java index 2f8f01b73..ef20950da 100644 --- a/framework/js/android/src/main/java/com/tencent/mtt/hippy/modules/PromiseImpl.java +++ b/framework/js/android/src/main/java/com/tencent/mtt/hippy/modules/PromiseImpl.java @@ -18,16 +18,13 @@ package com.tencent.mtt.hippy.modules; import android.text.TextUtils; -import com.tencent.mtt.hippy.modules.Promise.BridgeTransferType; import com.tencent.mtt.hippy.HippyEngineContext; import com.tencent.mtt.hippy.common.HippyMap; -import com.tencent.mtt.hippy.runtime.builtins.JSMap; import com.tencent.mtt.hippy.runtime.builtins.JSObject; import com.tencent.mtt.hippy.runtime.builtins.JSValue; -import java.util.HashMap; @SuppressWarnings({"deprecation", "unused"}) -public class PromiseImpl implements Promise { +public class PromiseImpl implements HippyModulePromise { public static final int PROMISE_CODE_SUCCESS = 0; public static final int PROMISE_CODE_NORMAN_ERROR = 1; diff --git a/framework/js/android/src/main/java/com/tencent/mtt/hippy/modules/javascriptmodules/EventDispatcher.java b/framework/js/android/src/main/java/com/tencent/mtt/hippy/modules/javascriptmodules/EventDispatcher.java index 173baa40a..3efd3b1f6 100644 --- a/framework/js/android/src/main/java/com/tencent/mtt/hippy/modules/javascriptmodules/EventDispatcher.java +++ b/framework/js/android/src/main/java/com/tencent/mtt/hippy/modules/javascriptmodules/EventDispatcher.java @@ -15,8 +15,8 @@ */ package com.tencent.mtt.hippy.modules.javascriptmodules; -import com.tencent.mtt.hippy.modules.Promise.BridgeTransferType; import com.tencent.mtt.hippy.common.HippyMap; +import com.tencent.mtt.hippy.modules.HippyModulePromise.BridgeTransferType; @SuppressWarnings({"unused", "deprecation"}) public interface EventDispatcher extends HippyJavaScriptModule { diff --git a/framework/js/android/src/main/java/com/tencent/mtt/hippy/modules/javascriptmodules/HippyJavaScriptModuleInvocationHandler.java b/framework/js/android/src/main/java/com/tencent/mtt/hippy/modules/javascriptmodules/HippyJavaScriptModuleInvocationHandler.java index 191f3efcd..e86e0e2a2 100644 --- a/framework/js/android/src/main/java/com/tencent/mtt/hippy/modules/javascriptmodules/HippyJavaScriptModuleInvocationHandler.java +++ b/framework/js/android/src/main/java/com/tencent/mtt/hippy/modules/javascriptmodules/HippyJavaScriptModuleInvocationHandler.java @@ -15,11 +15,11 @@ */ package com.tencent.mtt.hippy.modules.javascriptmodules; -import static com.tencent.mtt.hippy.modules.Promise.BridgeTransferType.BRIDGE_TRANSFER_TYPE_NORMAL; +import static com.tencent.mtt.hippy.modules.HippyModulePromise.BridgeTransferType.BRIDGE_TRANSFER_TYPE_NORMAL; -import com.tencent.mtt.hippy.modules.Promise.BridgeTransferType; import com.tencent.mtt.hippy.HippyEngineContext; import com.tencent.mtt.hippy.common.HippyArray; +import com.tencent.mtt.hippy.modules.HippyModulePromise.BridgeTransferType; import com.tencent.mtt.hippy.utils.ArgumentUtils; import java.lang.reflect.InvocationHandler; diff --git a/framework/js/android/src/main/jni/include/jni/native_render_provider.h b/framework/js/android/src/main/jni/include/jni/native_render_provider.h index 83a06821f..a26d679c6 100644 --- a/framework/js/android/src/main/jni/include/jni/native_render_provider.h +++ b/framework/js/android/src/main/jni/include/jni/native_render_provider.h @@ -35,6 +35,10 @@ jint OnCreateNativeRenderProvider(JNIEnv* j_env, jobject j_obj, jfloat j_density); +void OnDestroyNativeRenderProvider(JNIEnv* j_env, + jobject j_object, + jint j_instance_id); + void UpdateRootSize(JNIEnv* j_env, jobject j_obj, jint j_instance_id, jfloat width, jfloat height); diff --git a/framework/js/android/src/main/jni/src/jni/native_render_provider.cc b/framework/js/android/src/main/jni/src/jni/native_render_provider.cc index 0a35f1164..b82a7b3af 100644 --- a/framework/js/android/src/main/jni/src/jni/native_render_provider.cc +++ b/framework/js/android/src/main/jni/src/jni/native_render_provider.cc @@ -41,6 +41,11 @@ REGISTER_JNI("com/tencent/renderer/NativeRenderProvider", "(F)I", OnCreateNativeRenderProvider) +REGISTER_JNI("com/tencent/renderer/NativeRenderProvider", + "onDestroyNativeRenderProvider", + "(I)V", + OnDestroyNativeRenderProvider) + REGISTER_JNI("com/tencent/renderer/NativeRenderProvider", "onRootSizeChanged", "(IFF)V", @@ -70,6 +75,9 @@ jint OnCreateNativeRenderProvider(JNIEnv* j_env, jobject j_object, jfloat j_dens return hippy_render_manager->GetId(); } +void OnDestroyNativeRenderProvider(JNIEnv* j_env, jobject j_object, jint j_instance_id) { +} + void UpdateRootSize(JNIEnv *j_env, jobject j_object, jint j_instance_id, jfloat j_width, jfloat j_height) { std::shared_ptr runtime = Runtime::Find(j_instance_id); diff --git a/modules/hippy_support/src/main/java/com/tencent/mtt/hippy/modules/Promise.java b/modules/hippy_support/src/main/java/com/tencent/mtt/hippy/modules/Promise.java index 7e600ce4a..77cf51175 100644 --- a/modules/hippy_support/src/main/java/com/tencent/mtt/hippy/modules/Promise.java +++ b/modules/hippy_support/src/main/java/com/tencent/mtt/hippy/modules/Promise.java @@ -15,33 +15,12 @@ */ package com.tencent.mtt.hippy.modules; -@SuppressWarnings({"unused"}) public interface Promise { - String CALL_ID_NO_CALLBACK = "-1"; - - enum BridgeTransferType { - BRIDGE_TRANSFER_TYPE_NORMAL(0), - BRIDGE_TRANSFER_TYPE_NIO(1); - - private final int iValue; - - BridgeTransferType(int value) { - iValue = value; - } - - public int value() { - return iValue; - } - } + int PROMISE_CODE_RESOLVE = 0; + int PROMISE_CODE_REJECT = 2; void resolve(Object value); void reject(Object error); - - boolean isCallback(); - - String getCallId(); - - void setTransferType(BridgeTransferType type); } diff --git a/renderer/native/android/src/main/java/com/tencent/mtt/hippy/uimanager/ControllerManager.java b/renderer/native/android/src/main/java/com/tencent/mtt/hippy/uimanager/ControllerManager.java index 46be85673..675bea00d 100644 --- a/renderer/native/android/src/main/java/com/tencent/mtt/hippy/uimanager/ControllerManager.java +++ b/renderer/native/android/src/main/java/com/tencent/mtt/hippy/uimanager/ControllerManager.java @@ -288,11 +288,7 @@ public class ControllerManager { Promise promise) { HippyViewController hippyViewController = mControllerRegistry.getViewController(className); View view = mControllerRegistry.getView(id); - if (!promise.isCallback()) { - hippyViewController.dispatchFunction(view, functionName, var); - } else { - hippyViewController.dispatchFunction(view, functionName, var, promise); - } + hippyViewController.dispatchFunction(view, functionName, var, promise); } diff --git a/renderer/native/android/src/main/java/com/tencent/mtt/hippy/views/list/HippyListView.java b/renderer/native/android/src/main/java/com/tencent/mtt/hippy/views/list/HippyListView.java index 6f88baf0e..31db2cbb2 100644 --- a/renderer/native/android/src/main/java/com/tencent/mtt/hippy/views/list/HippyListView.java +++ b/renderer/native/android/src/main/java/com/tencent/mtt/hippy/views/list/HippyListView.java @@ -779,7 +779,7 @@ public class HippyListView extends RecyclerView implements HippyViewBase { private OnInitialListReadyEvent getOnInitialListReadyEvent() { if (mOnInitialListReadyEvent == null) { - mOnInitialListReadyEvent = new OnInitialListReadyEvent("initialListReady"); + mOnInitialListReadyEvent = new OnInitialListReadyEvent("initiallistready"); } return mOnInitialListReadyEvent; } diff --git a/renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderContext.java b/renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderContext.java index 9e1289f43..2602e1131 100644 --- a/renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderContext.java +++ b/renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderContext.java @@ -34,7 +34,8 @@ public final class NativeRenderContext extends ContextWrapper { } /** - * Set renderer instance id, use default access permission. + * Set renderer instance id, use default access permission, + * the instance id should not change by user. * * @param instanceId renderer instance id */ diff --git a/renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderDelegate.java b/renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderDelegate.java index 30843c82c..844e6dc56 100644 --- a/renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderDelegate.java +++ b/renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderDelegate.java @@ -37,7 +37,5 @@ public interface NativeRenderDelegate extends NativeRenderExceptionHandler { long measure(int id, float width, int widthMode, float height, int heightMode); - void startBatch(); - void endBatch(); } diff --git a/renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderProvider.java b/renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderProvider.java index e1495aa24..23e4db0b3 100644 --- a/renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderProvider.java +++ b/renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderProvider.java @@ -61,6 +61,7 @@ public class NativeRenderProvider { public void destroy() { mDeserializer.getStringTable().release(); + onDestroyNativeRenderProvider(mInstanceId); } /** @@ -70,8 +71,8 @@ public class NativeRenderProvider { * @param buffer the byte array from native (C++) DOM wrapped by {@link ByteBuffer} * @return the result {@link ArrayList} of deserialize */ - private @NonNull - ArrayList bytesToArgument(ByteBuffer buffer) { + @NonNull + private ArrayList bytesToArgument(ByteBuffer buffer) { final BinaryReader binaryReader; if (mSafeHeapReader == null) { mSafeHeapReader = new SafeHeapReader(); @@ -92,8 +93,8 @@ public class NativeRenderProvider { * @param params the ui event params object * @return the result of serialization wrapped by {@link ByteBuffer} */ - private @NonNull - ByteBuffer argumentToBytes(@NonNull Object params) { + @NonNull + private ByteBuffer argumentToBytes(@NonNull Object params) { if (mSafeHeapWriter == null) { mSafeHeapWriter = new SafeHeapWriter(); } else { @@ -123,7 +124,7 @@ public class NativeRenderProvider { } /** - * Call from native (C++) render manager to updateNode render node + * Call from native (C++) render manager to update render node * * @param buffer the byte array serialize by native (C++) */ @@ -219,15 +220,6 @@ public class NativeRenderProvider { } } - /** - * Call from native (C++) render manager to mark batch start - */ - @CalledByNative - @SuppressWarnings("unused") - private void startBatch() { - mRenderDelegate.startBatch(); - } - /** * Call from native (C++) render manager to mark batch end */ @@ -241,8 +233,8 @@ public class NativeRenderProvider { onRootSizeChanged(mInstanceId, PixelUtil.px2dp(width), PixelUtil.px2dp(height)); } - public void doPromiseCallBack(int result, String functionName, int nodeId, - Object params) { + public void doPromiseCallBack(int result, @NonNull String functionName, int nodeId, + @Nullable Object params) { byte[] bytes = null; int offset = 0; int length = 0; @@ -255,12 +247,13 @@ public class NativeRenderProvider { bytes = buffer.array(); } catch (Exception e) { mRenderDelegate.handleRenderException(e); + return; } } doCallBack(mInstanceId, result, functionName, nodeId, bytes, offset, length); } - public void dispatchEvent(int nodeId, String eventName, @Nullable Object params, + public void dispatchEvent(int nodeId, @NonNull String eventName, @Nullable Object params, boolean useCapture, boolean useBubble) { byte[] bytes = null; int offset = 0; @@ -274,6 +267,7 @@ public class NativeRenderProvider { bytes = buffer.array(); } catch (Exception e) { mRenderDelegate.handleRenderException(e); + return; } } onReceivedEvent(mInstanceId, nodeId, eventName, bytes, offset, length, useCapture, @@ -281,16 +275,23 @@ public class NativeRenderProvider { } /** - * Create provider when renderer init, and should notify native (C++) to build render manager + * Notify native (C++) to build render manager when build provider instance. * * @param density screen displayMetrics density * @return the unique id of native (C++) render manager */ private native int onCreateNativeRenderProvider(float density); + /** + * Notify native (C++) to destroy render manager when release provider instance. + * + * @param instanceId the unique id of native (C++) render manager + */ + private native void onDestroyNativeRenderProvider(int instanceId); + /** * Call back from Android system when size changed, just like horizontal and vertical screen - * switching, call this jni interface to invoke dom tree relayout + * switching, call this jni interface to invoke dom tree relayout. * * @param instanceId the unique id of native (C++) render manager * @param width root view new width use dp unit @@ -299,7 +300,7 @@ public class NativeRenderProvider { private native void onRootSizeChanged(int instanceId, float width, float height); /** - * Dispatch event generated by native renderer to (C++) dom manager, + * Dispatch event generated by native renderer to (C++) dom manager. * * @param instanceId the unique id of native (C++) render manager * @param nodeId target node id @@ -317,8 +318,8 @@ public class NativeRenderProvider { * Do promise call back to js after handle call ui function by native renderer, * * @param instanceId the unique id of native (C++) render manager - * @param result {@code PROMISE_CODE_RESOLVE} {@link NativeRenderPromise} - * {@code PROMISE_CODE_REJECT} {@link NativeRenderPromise} + * @param result {@code PROMISE_CODE_RESOLVE} {@link UIPromise} + * {@code PROMISE_CODE_REJECT} {@link UIPromise} * @param functionName ui function name * @param nodeId the dom node id * @param params params buffer encoded by serializer diff --git a/renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderer.java b/renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderer.java index 4e5b03969..4b05b4a7a 100644 --- a/renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderer.java +++ b/renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderer.java @@ -647,7 +647,7 @@ public class NativeRenderer implements NativeRender, NativeRenderProxy, NativeRe throw new NativeRenderException(INVALID_NODE_DATA_ERR, TAG + ": callUIFunction: invalid negative id=" + id); } - final NativeRenderPromise promise = new NativeRenderPromise(functionName, id, + final UIPromise promise = new UIPromise(functionName, id, mRenderProvider.getInstanceId()); try { // It is generally preferable to use add here, just focus the exception @@ -675,11 +675,6 @@ public class NativeRenderer implements NativeRender, NativeRenderProxy, NativeRe } } - @Override - public void startBatch() { - // TODO: Just keep this method even if it don't do anything. - } - @Override public void endBatch() { try { diff --git a/renderer/native/android/src/main/java/com/tencent/renderer/NativeRendererManager.java b/renderer/native/android/src/main/java/com/tencent/renderer/NativeRendererManager.java index 39e6506fd..2d4000af8 100644 --- a/renderer/native/android/src/main/java/com/tencent/renderer/NativeRendererManager.java +++ b/renderer/native/android/src/main/java/com/tencent/renderer/NativeRendererManager.java @@ -33,12 +33,13 @@ public class NativeRendererManager { sNativeRendererMap.remove(instanceId); } - public @Nullable static NativeRender getNativeRenderer(Integer instanceId) { + @Nullable + public static NativeRender getNativeRenderer(Integer instanceId) { return sNativeRendererMap.get(instanceId); } - public @Nullable - static NativeRender getNativeRenderer(@Nullable Context context) { + @Nullable + public static NativeRender getNativeRenderer(@Nullable Context context) { if (context instanceof NativeRenderContext) { final int instanceId = ((NativeRenderContext) context).getInstanceId(); return getNativeRenderer(instanceId); diff --git a/renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderPromise.java b/renderer/native/android/src/main/java/com/tencent/renderer/UIPromise.java similarity index 71% rename from renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderPromise.java rename to renderer/native/android/src/main/java/com/tencent/renderer/UIPromise.java index 647cd3315..f17d9216e 100644 --- a/renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderPromise.java +++ b/renderer/native/android/src/main/java/com/tencent/renderer/UIPromise.java @@ -17,34 +17,18 @@ package com.tencent.renderer; import com.tencent.mtt.hippy.modules.Promise; -public class NativeRenderPromise implements Promise { +public class UIPromise implements Promise { - private static final int PROMISE_CODE_RESOLVE = 0; - private static final int PROMISE_CODE_REJECT = 2; private final int mNodeId; private final int mInstanceId; private final String mFunctionName; - public NativeRenderPromise(String functionName, int nodeId, int instanceId) { + public UIPromise(String functionName, int nodeId, int instanceId) { mFunctionName = functionName; mNodeId = nodeId; mInstanceId = instanceId; } - public String getCallId() { - return CALL_ID_NO_CALLBACK; - } - - public boolean isCallback() { - return true; - } - - @Override - public void setTransferType(BridgeTransferType type) { - // Native Render only support normal transfer type, NIO is not applicable here, - // so just override this method, no need to do anything. - } - @Override public void resolve(Object params) { doCallback(PROMISE_CODE_RESOLVE, params); diff --git a/renderer/native/android/src/main/java/com/tencent/renderer/component/text/TextGestureSpan.java b/renderer/native/android/src/main/java/com/tencent/renderer/component/text/TextGestureSpan.java index 8085fd4e0..2b6669aec 100644 --- a/renderer/native/android/src/main/java/com/tencent/renderer/component/text/TextGestureSpan.java +++ b/renderer/native/android/src/main/java/com/tencent/renderer/component/text/TextGestureSpan.java @@ -110,16 +110,15 @@ public class TextGestureSpan implements NativeGestureProcessor.Callback { break; } case MotionEvent.ACTION_UP: { - if (mGestureTypes.contains(ON_LONG_CLICK) || mGestureTypes.contains(ON_CLICK)) { - if (Math.abs(x - mLastX) < mTouchSlop && Math.abs(y - mLastY) < mTouchSlop) { + if (Math.abs(x - mLastX) < mTouchSlop && Math.abs(y - mLastY) < mTouchSlop) { + if (mGestureTypes.contains(ON_LONG_CLICK) && mHandleLongPress) { handle = true; - if (mGestureTypes.contains(ON_LONG_CLICK) && mHandleLongPress) { - NativeGestureDispatcher - .handleClickEvent(mNativeRenderer, mId, ON_LONG_CLICK); - } else if (mGestureTypes.contains(ON_CLICK)) { - NativeGestureDispatcher - .handleClickEvent(mNativeRenderer, mId, ON_CLICK); - } + NativeGestureDispatcher + .handleClickEvent(mNativeRenderer, mId, ON_LONG_CLICK); + } else if (mGestureTypes.contains(ON_CLICK)) { + handle = true; + NativeGestureDispatcher + .handleClickEvent(mNativeRenderer, mId, ON_CLICK); } } if (mHandler != null) {