From 5981a8b87a8b7602a86d2fd5ec3e9987e11d266b Mon Sep 17 00:00:00 2001 From: maxli Date: Thu, 28 Mar 2024 14:45:00 +0800 Subject: [PATCH] feat(android): add BaseEngineContext interface --- .../tencent/mtt/hippy/HippyEngineContext.java | 9 +++++--- .../mtt/hippy/HippyEngineManagerImpl.java | 6 +++++ .../mtt/hippy/common/BaseEngineContext.java | 22 +++++++++++++++++++ .../com/tencent/renderer/FrameworkProxy.java | 4 ++++ .../com/tencent/renderer/NativeRender.java | 4 ++++ .../com/tencent/renderer/NativeRenderer.java | 12 ++++++---- 6 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 modules/android/hippy_support/src/main/java/com/tencent/mtt/hippy/common/BaseEngineContext.java diff --git a/framework/android/src/main/java/com/tencent/mtt/hippy/HippyEngineContext.java b/framework/android/src/main/java/com/tencent/mtt/hippy/HippyEngineContext.java index 5065a6eef75..17b7f195c39 100644 --- a/framework/android/src/main/java/com/tencent/mtt/hippy/HippyEngineContext.java +++ b/framework/android/src/main/java/com/tencent/mtt/hippy/HippyEngineContext.java @@ -25,6 +25,8 @@ import com.tencent.devtools.DevtoolsManager; import com.tencent.mtt.hippy.HippyEngine.ModuleLoadStatus; import com.tencent.mtt.hippy.bridge.HippyBridgeManager; +import com.tencent.mtt.hippy.common.BaseEngineContext; +import com.tencent.mtt.hippy.common.HippyMap; import com.tencent.mtt.hippy.common.ThreadExecutor; import com.tencent.mtt.hippy.devsupport.DevSupportManager; import com.tencent.mtt.hippy.modules.HippyModuleManager; @@ -32,13 +34,16 @@ import com.tencent.vfs.VfsManager; import java.util.HashMap; -public interface HippyEngineContext { +public interface HippyEngineContext extends BaseEngineContext { String getComponentName(); @Nullable HashMap getNativeParams(); + @Nullable + HippyMap getJsParams(); + @NonNull VfsManager getVfsManager(); @@ -73,8 +78,6 @@ public interface HippyEngineContext { void handleException(Throwable throwable); - int getEngineId(); - int getDomManagerId(); int getVfsId(); diff --git a/framework/android/src/main/java/com/tencent/mtt/hippy/HippyEngineManagerImpl.java b/framework/android/src/main/java/com/tencent/mtt/hippy/HippyEngineManagerImpl.java index 2d29585359b..5543e0957c1 100644 --- a/framework/android/src/main/java/com/tencent/mtt/hippy/HippyEngineManagerImpl.java +++ b/framework/android/src/main/java/com/tencent/mtt/hippy/HippyEngineManagerImpl.java @@ -854,6 +854,12 @@ public HashMap getNativeParams() { return mNativeParams; } + @Override + @Nullable + public HippyMap getJsParams() { + return moduleLoadParams != null ? moduleLoadParams.jsParams : null; + } + @Override public HippyGlobalConfigs getGlobalConfigs() { return mGlobalConfigs; diff --git a/modules/android/hippy_support/src/main/java/com/tencent/mtt/hippy/common/BaseEngineContext.java b/modules/android/hippy_support/src/main/java/com/tencent/mtt/hippy/common/BaseEngineContext.java new file mode 100644 index 00000000000..2b36f4b8432 --- /dev/null +++ b/modules/android/hippy_support/src/main/java/com/tencent/mtt/hippy/common/BaseEngineContext.java @@ -0,0 +1,22 @@ +/* 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.common; + +public interface BaseEngineContext { + + int getEngineId(); +} diff --git a/renderer/native/android/src/main/java/com/tencent/renderer/FrameworkProxy.java b/renderer/native/android/src/main/java/com/tencent/renderer/FrameworkProxy.java index 3479923a9bd..afb20bd984b 100644 --- a/renderer/native/android/src/main/java/com/tencent/renderer/FrameworkProxy.java +++ b/renderer/native/android/src/main/java/com/tencent/renderer/FrameworkProxy.java @@ -18,6 +18,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import com.tencent.mtt.hippy.common.BaseEngineContext; import com.tencent.mtt.hippy.common.LogAdapter; import com.tencent.renderer.component.image.ImageDecoderAdapter; import com.tencent.renderer.component.text.FontAdapter; @@ -47,6 +48,9 @@ public interface FrameworkProxy { @Nullable String getBundlePath(); + @NonNull + BaseEngineContext getEngineContext(); + int getEngineId(); void onFirstPaint(); diff --git a/renderer/native/android/src/main/java/com/tencent/renderer/NativeRender.java b/renderer/native/android/src/main/java/com/tencent/renderer/NativeRender.java index 91c2e953aca..86c8ecbfc02 100644 --- a/renderer/native/android/src/main/java/com/tencent/renderer/NativeRender.java +++ b/renderer/native/android/src/main/java/com/tencent/renderer/NativeRender.java @@ -23,6 +23,7 @@ import androidx.annotation.Nullable; import com.tencent.mtt.hippy.HippyInstanceLifecycleEventListener; +import com.tencent.mtt.hippy.common.BaseEngineContext; import com.tencent.mtt.hippy.uimanager.RenderManager; import com.tencent.renderer.component.image.ImageDecoderAdapter; @@ -63,6 +64,9 @@ public interface NativeRender extends RenderExceptionHandler, RenderLogHandler { @Nullable Executor getBackgroundExecutor(); + @Nullable + BaseEngineContext getEngineContext(); + int getEngineId(); /** 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 3aefd909f77..f9ad86af0e7 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 @@ -35,6 +35,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import com.tencent.mtt.hippy.common.BaseEngineContext; import com.tencent.mtt.hippy.common.Callback; import com.tencent.mtt.hippy.common.LogAdapter; import com.tencent.mtt.hippy.serialization.nio.reader.BinaryReader; @@ -280,12 +281,15 @@ public void onReceiveRenderLogMessage(int level, @NonNull String tag, @NonNull S } } + @Override + @Nullable + public BaseEngineContext getEngineContext() { + return (mFrameworkProxy != null) ? mFrameworkProxy.getEngineContext() : null; + } + @Override public int getEngineId() { - if (mFrameworkProxy != null) { - return mFrameworkProxy.getEngineId(); - } - return -1; + return (mFrameworkProxy != null) ? mFrameworkProxy.getEngineId() : -1; } @Override