Repository: incubator-weex Updated Branches: refs/heads/master 3e002a40a -> 6ba255365
* [core] use interface replacce android_bridge_impl Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/6ba25536 Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/6ba25536 Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/6ba25536 Branch: refs/heads/master Commit: 6ba255365a12b5c41422ce0a48f1f5d2a5f96207 Parents: 3e002a4 Author: zhongcang <[email protected]> Authored: Thu May 31 20:33:34 2018 +0800 Committer: YorkShen <[email protected]> Committed: Fri Jun 1 11:23:58 2018 +0800 ---------------------------------------------------------------------- weex_core/Source/CMakeLists.txt | 31 +++++++--- .../android/jsengine/multiprocess/WeexProxy.cpp | 2 + weex_core/Source/core/bridge/bridge.h | 3 + .../Source/core/manager/weex_core_manager.cpp | 36 ++++++++++++ .../Source/core/manager/weex_core_manager.h | 62 ++++++++++++++++++++ .../Source/core/render/action/render_action.h | 1 - .../render/action/render_action_add_element.cpp | 7 ++- .../render/action/render_action_add_event.cpp | 3 +- .../render/action/render_action_createbody.cpp | 7 ++- .../action/render_action_createfinish.cpp | 3 +- .../core/render/action/render_action_layout.cpp | 7 ++- .../action/render_action_move_element.cpp | 3 +- .../action/render_action_remove_element.cpp | 3 +- .../action/render_action_remove_event.cpp | 4 +- .../render/action/render_action_update_attr.cpp | 3 +- .../action/render_action_update_style.cpp | 5 +- .../Source/core/render/page/render_page.cpp | 5 +- 17 files changed, 158 insertions(+), 27 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ba25536/weex_core/Source/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/weex_core/Source/CMakeLists.txt b/weex_core/Source/CMakeLists.txt index f4f399e..4ae9e10 100644 --- a/weex_core/Source/CMakeLists.txt +++ b/weex_core/Source/CMakeLists.txt @@ -41,7 +41,12 @@ set(COMMON_SRCS ./core/config/core_environment.cpp ./core/moniter/render_performance.cpp + ./core/manager/weex_core_manager.cpp ) + +SET(FINAL_ADD_LIBRARY + ${COMMON_SRCS} ) +SET(FINAL_TARGET_LINK_LIBRARIES ) if (ANDROID) ## add_subdirectory for subdirectory has a CMakeLists.txt @@ -77,13 +82,25 @@ if (ANDROID) ) + SET(FINAL_ADD_LIBRARY + ${FINAL_ADD_LIBRARY} + ${ANDROID_SRCS} + ) + + SET(FINAL_TARGET_LINK_LIBRARIES + ${FINAL_TARGET_LINK_LIBRARIES} + wson + android + weexipc + log + z + ) - add_library(${WEEXCORE_LIBRARY_NAME} SHARED - ${COMMON_SRCS} - ${ANDROID_SRCS} - ) +endif (ANDROID) - target_include_directories(${WEEXCORE_LIBRARY_NAME} PUBLIC .) +add_library(${WEEXCORE_LIBRARY_NAME} SHARED + ${FINAL_ADD_LIBRARY} + ) - target_link_libraries(${WEEXCORE_LIBRARY_NAME} wson android weexipc log z) -endif (ANDROID) +target_include_directories(${WEEXCORE_LIBRARY_NAME} PUBLIC .) +target_link_libraries(${WEEXCORE_LIBRARY_NAME} ${FINAL_TARGET_LINK_LIBRARIES}) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ba25536/weex_core/Source/android/jsengine/multiprocess/WeexProxy.cpp ---------------------------------------------------------------------- diff --git a/weex_core/Source/android/jsengine/multiprocess/WeexProxy.cpp b/weex_core/Source/android/jsengine/multiprocess/WeexProxy.cpp index 8014a41..c9bd3b0 100644 --- a/weex_core/Source/android/jsengine/multiprocess/WeexProxy.cpp +++ b/weex_core/Source/android/jsengine/multiprocess/WeexProxy.cpp @@ -28,6 +28,7 @@ #include <dlfcn.h> #include <errno.h> #include <core/layout/measure_func_adapter_impl_android.h> +#include <core/manager/weex_core_manager.h> const char *s_cacheDir; bool s_start_pie = true; @@ -265,6 +266,7 @@ namespace WeexCore { jobject params) { Bridge_Impl_Android::getInstance()->setGlobalRef(jThis); + WeexCoreManager::getInstance()->setPlatformBridge(Bridge_Impl_Android::getInstance()); RenderManager::GetInstance()->SetMeasureFunctionAdapter(new MeasureFunctionAdapterImplAndroid()); std::unique_ptr<IPCSerializer> serializer(createIPCSerializer()); const std::vector<INIT_FRAMEWORK_PARAMS *> &initFrameworkParams = initFromParam(env, http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ba25536/weex_core/Source/core/bridge/bridge.h ---------------------------------------------------------------------- diff --git a/weex_core/Source/core/bridge/bridge.h b/weex_core/Source/core/bridge/bridge.h index ab67fff..823e06c 100644 --- a/weex_core/Source/core/bridge/bridge.h +++ b/weex_core/Source/core/bridge/bridge.h @@ -97,6 +97,9 @@ namespace WeexCore { virtual int callMoveElement(const char* pageId, const char* ref, const char* parentRef, int index) = 0; virtual int callAppendTreeCreateFinish(const char* pageId, const char* ref) = 0; + + virtual int callHasTransitionPros(const char* pageId, const char* ref, + std::vector<std::pair<std::string, std::string>> *style)=0; }; } //end WeexCore #endif //Bridge_h http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ba25536/weex_core/Source/core/manager/weex_core_manager.cpp ---------------------------------------------------------------------- diff --git a/weex_core/Source/core/manager/weex_core_manager.cpp b/weex_core/Source/core/manager/weex_core_manager.cpp new file mode 100644 index 0000000..067c399 --- /dev/null +++ b/weex_core/Source/core/manager/weex_core_manager.cpp @@ -0,0 +1,36 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +// +// Created by é佩翰 on 2018/5/31. +// + +#include "weex_core_manager.h" + +namespace WeexCore { + + WeexCoreManager *WeexCoreManager::m_pInstance = nullptr; + + WeexCoreManager *WeexCoreManager::setPlatformBridge(Bridge *pBridge) { + this->platformBridge = pBridge; + } + + Bridge *WeexCoreManager::getPlatformBridge() { + return this->platformBridge; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ba25536/weex_core/Source/core/manager/weex_core_manager.h ---------------------------------------------------------------------- diff --git a/weex_core/Source/core/manager/weex_core_manager.h b/weex_core/Source/core/manager/weex_core_manager.h new file mode 100644 index 0000000..0757ba8 --- /dev/null +++ b/weex_core/Source/core/manager/weex_core_manager.h @@ -0,0 +1,62 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +#ifndef WEEXCORE_WEEX_CORE_MANAGER_H +#define WEEXCORE_WEEX_CORE_MANAGER_H + +#include <core/bridge/bridge.h> + +namespace WeexCore { + class WeexCoreManager { + private: + Bridge *platformBridge = nullptr; + static WeexCoreManager *m_pInstance; + + private: + WeexCoreManager() {}; + + ~WeexCoreManager() {}; + + //just to release singleton object + class Garbo { + public: + ~Garbo() { + if (WeexCoreManager::m_pInstance) { + delete WeexCoreManager::m_pInstance; + } + } + }; + + static Garbo garbo; + + public: + static WeexCoreManager *getInstance() { + if (nullptr == m_pInstance) { + m_pInstance = new WeexCoreManager(); + } + return m_pInstance; + }; + + Bridge *getPlatformBridge(); + + WeexCoreManager *setPlatformBridge(Bridge *pBridge); + }; +} + +#endif //WEEXCORE_WEEX_CORE_MANAGER_H \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ba25536/weex_core/Source/core/render/action/render_action.h ---------------------------------------------------------------------- diff --git a/weex_core/Source/core/render/action/render_action.h b/weex_core/Source/core/render/action/render_action.h index 27a255d..4cee828 100644 --- a/weex_core/Source/core/render/action/render_action.h +++ b/weex_core/Source/core/render/action/render_action.h @@ -23,7 +23,6 @@ #include <core/render/node/render_object.h> #include <core/render/manager/render_manager.h> #include <core/render/page/render_page.h> -#include <android/bridge/impl/bridge_impl_android.h> #include <string> #include <base/TimeUtils.h> http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ba25536/weex_core/Source/core/render/action/render_action_add_element.cpp ---------------------------------------------------------------------- diff --git a/weex_core/Source/core/render/action/render_action_add_element.cpp b/weex_core/Source/core/render/action/render_action_add_element.cpp index 8be0efb..8a69fe5 100644 --- a/weex_core/Source/core/render/action/render_action_add_element.cpp +++ b/weex_core/Source/core/render/action/render_action_add_element.cpp @@ -16,6 +16,7 @@ * specific language governing permissions and limitations * under the License. */ +#include <core/manager/weex_core_manager.h> #include "render_action_add_element.h" namespace WeexCore { @@ -37,8 +38,8 @@ namespace WeexCore { } void RenderActionAddElement::ExecuteAction() { - Bridge_Impl_Android::getInstance()->callAddElement(mPageId.c_str(), mComponentType.c_str(), mRef.c_str(), - mIndex, mParentRef.c_str(), mStyles, mAttributes, - mEvents, mMargins, mPaddings, mBorders, mWillLayout); + WeexCoreManager::getInstance()->getPlatformBridge()->callAddElement(mPageId.c_str(), mComponentType.c_str(), mRef.c_str(), + mIndex, mParentRef.c_str(), mStyles, mAttributes, + mEvents, mMargins, mPaddings, mBorders, mWillLayout); } } http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ba25536/weex_core/Source/core/render/action/render_action_add_event.cpp ---------------------------------------------------------------------- diff --git a/weex_core/Source/core/render/action/render_action_add_event.cpp b/weex_core/Source/core/render/action/render_action_add_event.cpp index 460852a..0d210d0 100644 --- a/weex_core/Source/core/render/action/render_action_add_event.cpp +++ b/weex_core/Source/core/render/action/render_action_add_event.cpp @@ -16,6 +16,7 @@ * specific language governing permissions and limitations * under the License. */ +#include <core/manager/weex_core_manager.h> #include "render_action_add_event.h" namespace WeexCore { @@ -27,7 +28,7 @@ namespace WeexCore { } void RenderActionAddEvent::ExecuteAction() { - Bridge_Impl_Android::getInstance()->callAddEvent(mPageId.c_str(), mRef.c_str(), mEvent.c_str()); + WeexCoreManager::getInstance()->getPlatformBridge()->callAddEvent(mPageId.c_str(), mRef.c_str(), mEvent.c_str()); } } http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ba25536/weex_core/Source/core/render/action/render_action_createbody.cpp ---------------------------------------------------------------------- diff --git a/weex_core/Source/core/render/action/render_action_createbody.cpp b/weex_core/Source/core/render/action/render_action_createbody.cpp index 6fe79ea..289cb31 100644 --- a/weex_core/Source/core/render/action/render_action_createbody.cpp +++ b/weex_core/Source/core/render/action/render_action_createbody.cpp @@ -16,6 +16,7 @@ * specific language governing permissions and limitations * under the License. */ +#include <core/manager/weex_core_manager.h> #include "render_action_createbody.h" namespace WeexCore { @@ -33,8 +34,8 @@ namespace WeexCore { } void RenderActionCreateBody::ExecuteAction() { - Bridge_Impl_Android::getInstance()->callCreateBody(mPageId.c_str(), mComponentType.c_str(), mRef.c_str(), - mStyles, mAttributes, mEvents, - mMargins, mPaddings, mBorders); + WeexCoreManager::getInstance()->getPlatformBridge()->callCreateBody(mPageId.c_str(), mComponentType.c_str(), mRef.c_str(), + mStyles, mAttributes, mEvents, + mMargins, mPaddings, mBorders); } } http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ba25536/weex_core/Source/core/render/action/render_action_createfinish.cpp ---------------------------------------------------------------------- diff --git a/weex_core/Source/core/render/action/render_action_createfinish.cpp b/weex_core/Source/core/render/action/render_action_createfinish.cpp index b447603..9c2b9fe 100644 --- a/weex_core/Source/core/render/action/render_action_createfinish.cpp +++ b/weex_core/Source/core/render/action/render_action_createfinish.cpp @@ -16,6 +16,7 @@ * specific language governing permissions and limitations * under the License. */ +#include <core/manager/weex_core_manager.h> #include "render_action_createfinish.h" namespace WeexCore { @@ -25,6 +26,6 @@ namespace WeexCore { } void RenderActionCreateFinish::ExecuteAction() { - Bridge_Impl_Android::getInstance()->callCreateFinish(mPageId.c_str()); + WeexCoreManager::getInstance()->getPlatformBridge()->callCreateFinish(mPageId.c_str()); } } http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ba25536/weex_core/Source/core/render/action/render_action_layout.cpp ---------------------------------------------------------------------- diff --git a/weex_core/Source/core/render/action/render_action_layout.cpp b/weex_core/Source/core/render/action/render_action_layout.cpp index 70d244d..67b34b9 100644 --- a/weex_core/Source/core/render/action/render_action_layout.cpp +++ b/weex_core/Source/core/render/action/render_action_layout.cpp @@ -16,6 +16,7 @@ * specific language governing permissions and limitations * under the License. */ +#include <core/manager/weex_core_manager.h> #include "render_action_layout.h" namespace WeexCore { @@ -28,9 +29,9 @@ namespace WeexCore { } void RenderActionLayout::ExecuteAction() { - Bridge_Impl_Android::getInstance()->callLayout(mPageId.c_str(), mRef.c_str(), - mTop, mBottom, mLeft, mRight, - mHeight, mWidth, index); + WeexCoreManager::getInstance()->getPlatformBridge()->callLayout(mPageId.c_str(), mRef.c_str(), + mTop, mBottom, mLeft, mRight, + mHeight, mWidth, index); } void RenderActionLayout::GetLayoutInfo(const WXCoreLayoutNode *node) { http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ba25536/weex_core/Source/core/render/action/render_action_move_element.cpp ---------------------------------------------------------------------- diff --git a/weex_core/Source/core/render/action/render_action_move_element.cpp b/weex_core/Source/core/render/action/render_action_move_element.cpp index f7081c8..5c80218 100644 --- a/weex_core/Source/core/render/action/render_action_move_element.cpp +++ b/weex_core/Source/core/render/action/render_action_move_element.cpp @@ -16,6 +16,7 @@ * specific language governing permissions and limitations * under the License. */ +#include <core/manager/weex_core_manager.h> #include "render_action_move_element.h" namespace WeexCore { @@ -29,6 +30,6 @@ namespace WeexCore { } void RenderActionMoveElement::ExecuteAction() { - Bridge_Impl_Android::getInstance()->callMoveElement(mPageId.c_str(), mRef.c_str(), mParentRef.c_str(), mIndex); + WeexCoreManager::getInstance()->getPlatformBridge()->callMoveElement(mPageId.c_str(), mRef.c_str(), mParentRef.c_str(), mIndex); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ba25536/weex_core/Source/core/render/action/render_action_remove_element.cpp ---------------------------------------------------------------------- diff --git a/weex_core/Source/core/render/action/render_action_remove_element.cpp b/weex_core/Source/core/render/action/render_action_remove_element.cpp index ef33a36..3557438 100644 --- a/weex_core/Source/core/render/action/render_action_remove_element.cpp +++ b/weex_core/Source/core/render/action/render_action_remove_element.cpp @@ -16,6 +16,7 @@ * specific language governing permissions and limitations * under the License. */ +#include <core/manager/weex_core_manager.h> #include "render_action_remove_element.h" namespace WeexCore { @@ -26,6 +27,6 @@ namespace WeexCore { } void RenderActionRemoveElement::ExecuteAction() { - Bridge_Impl_Android::getInstance()->callRemoveElement(mPageId.c_str(), mRef.c_str()); + WeexCoreManager::getInstance()->getPlatformBridge()->callRemoveElement(mPageId.c_str(), mRef.c_str()); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ba25536/weex_core/Source/core/render/action/render_action_remove_event.cpp ---------------------------------------------------------------------- diff --git a/weex_core/Source/core/render/action/render_action_remove_event.cpp b/weex_core/Source/core/render/action/render_action_remove_event.cpp index 94bd61e..5588112 100644 --- a/weex_core/Source/core/render/action/render_action_remove_event.cpp +++ b/weex_core/Source/core/render/action/render_action_remove_event.cpp @@ -17,6 +17,7 @@ * under the License. */ #include "render_action_remove_event.h" +#include <core/manager/weex_core_manager.h> namespace WeexCore { @@ -27,7 +28,8 @@ namespace WeexCore { } void RenderActionRemoveEvent::ExecuteAction() { - Bridge_Impl_Android::getInstance()->callRemoveEvent(mPageId.c_str(), mRef.c_str(), mEvent.c_str()); + WeexCoreManager::getInstance()->getPlatformBridge()->callRemoveEvent(mPageId.c_str(), mRef.c_str(), mEvent.c_str()); + //Bridge_Impl_Android::getInstance()->callRemoveEvent(mPageId.c_str(), mRef.c_str(), mEvent.c_str()); } } http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ba25536/weex_core/Source/core/render/action/render_action_update_attr.cpp ---------------------------------------------------------------------- diff --git a/weex_core/Source/core/render/action/render_action_update_attr.cpp b/weex_core/Source/core/render/action/render_action_update_attr.cpp index 082fc69..c662c1d 100644 --- a/weex_core/Source/core/render/action/render_action_update_attr.cpp +++ b/weex_core/Source/core/render/action/render_action_update_attr.cpp @@ -16,6 +16,7 @@ * specific language governing permissions and limitations * under the License. */ +#include <core/manager/weex_core_manager.h> #include "render_action_update_attr.h" namespace WeexCore { @@ -28,6 +29,6 @@ namespace WeexCore { } void RenderActionUpdateAttr::ExecuteAction() { - Bridge_Impl_Android::getInstance()->callUpdateAttr(mPageId.c_str(), mRef.c_str(), mAttrs); + WeexCoreManager::getInstance()->getPlatformBridge()->callUpdateAttr(mPageId.c_str(), mRef.c_str(), mAttrs); } } http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ba25536/weex_core/Source/core/render/action/render_action_update_style.cpp ---------------------------------------------------------------------- diff --git a/weex_core/Source/core/render/action/render_action_update_style.cpp b/weex_core/Source/core/render/action/render_action_update_style.cpp index 9f3509d..e694db5 100644 --- a/weex_core/Source/core/render/action/render_action_update_style.cpp +++ b/weex_core/Source/core/render/action/render_action_update_style.cpp @@ -16,6 +16,7 @@ * specific language governing permissions and limitations * under the License. */ +#include <core/manager/weex_core_manager.h> #include "render_action_update_style.h" namespace WeexCore { @@ -34,7 +35,7 @@ namespace WeexCore { } void RenderActionUpdateStyle::ExecuteAction() { - Bridge_Impl_Android::getInstance()->callUpdateStyle(mPageId.c_str(), mRef.c_str(), mStyle, mMargin, - mPadding, mBorder); + WeexCoreManager::getInstance()->getPlatformBridge()->callUpdateStyle(mPageId.c_str(), mRef.c_str(), mStyle, mMargin, + mPadding, mBorder); } } http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ba25536/weex_core/Source/core/render/page/render_page.cpp ---------------------------------------------------------------------- diff --git a/weex_core/Source/core/render/page/render_page.cpp b/weex_core/Source/core/render/page/render_page.cpp index 592b35f..85016e9 100644 --- a/weex_core/Source/core/render/page/render_page.cpp +++ b/weex_core/Source/core/render/page/render_page.cpp @@ -35,6 +35,7 @@ #include <core/css/constants_value.h> #include <core/render/node/factory/render_type.h> #include <core/render/node/render_list.h> +#include <core/manager/weex_core_manager.h> #include "render_page.h" #include "core/render/manager/render_manager.h" #include "core/render/node/render_object.h" @@ -240,8 +241,8 @@ namespace WeexCore { std::vector<std::pair<std::string, std::string>> *border = nullptr; bool flag = false; - - int result = Bridge_Impl_Android::getInstance()->callHasTransitionPros(mPageId.c_str(), ref.c_str(), src); + int result = WeexCoreManager::getInstance()->getPlatformBridge()->callHasTransitionPros(mPageId.c_str(), ref.c_str(), src); + //int result = Bridge_Impl_Android::getInstance()->callHasTransitionPros(mPageId.c_str(), ref.c_str(), src); if (result == 1) { SendUpdateStyleAction(render, src, margin, padding, border);
