From afefc6241de710d4bb2d9eedc367f05700c5979f Mon Sep 17 00:00:00 2001 From: "REDMOND\\acoates" Date: Mon, 21 Oct 2019 12:12:25 -0700 Subject: [PATCH 1/2] Add back jseConfigParams changes --- .../react/views/textinput/ReactTextInputManager.java | 12 ++++++------ ReactCommon/cxxreact/Instance.cpp | 6 +++++- ReactCommon/cxxreact/Instance.h | 2 ++ ReactCommon/cxxreact/NativeToJsBridge.cpp | 5 +++-- ReactCommon/cxxreact/NativeToJsBridge.h | 3 ++- 5 files changed, 18 insertions(+), 10 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java index 85cf5e0875e422..a6652ed9a47692 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java @@ -718,6 +718,11 @@ public void setBorderStyle(ReactEditText view, @Nullable String borderStyle) { view.setBorderStyle(borderStyle); } + @ReactProp(name = "showSoftInputOnFocus", defaultBoolean = true) + public void showKeyboardOnFocus(ReactEditText view, boolean showKeyboardOnFocus) { + view.setShowSoftInputOnFocus(showKeyboardOnFocus); + } + @ReactPropGroup(names = { ViewProps.BORDER_WIDTH, ViewProps.BORDER_LEFT_WIDTH, @@ -852,11 +857,7 @@ public void onFocusChange(View v, boolean hasFocus) { eventDispatcher.dispatchEvent( new ReactTextInputFocusEvent( editText.getId())); - // Show keyboard when a EditText view gains focus - editText.showSoftKeyboard(); } else { - // Hide keyboard when a EditText view looses focus - editText.hideSoftKeyboard(); eventDispatcher.dispatchEvent( new ReactTextInputBlurEvent( editText.getId())); @@ -909,8 +910,7 @@ public boolean onEditorAction(TextView v, int actionId, KeyEvent keyEvent) { return false; } - // If its not an action we handle, perform default behavior - return false; + return true; } }); } diff --git a/ReactCommon/cxxreact/Instance.cpp b/ReactCommon/cxxreact/Instance.cpp index 2cc5250f717d6d..cf53b702c41a53 100644 --- a/ReactCommon/cxxreact/Instance.cpp +++ b/ReactCommon/cxxreact/Instance.cpp @@ -57,7 +57,7 @@ void Instance::initializeBridge( jsQueue->runOnQueueSync([this, delegate, &jsef, jsQueue]() mutable { nativeToJsBridge_ = folly::make_unique( - jsef.get(), delegate, moduleRegistry_, jsQueue, callback_); + jsef.get(), delegate, moduleRegistry_, jsQueue, callback_, jseConfigParams_); std::lock_guard lock(m_syncMutex); m_syncReady = true; @@ -201,6 +201,10 @@ void Instance::callJSCallback(uint64_t callbackId, folly::dynamic &¶ms) { nativeToJsBridge_->invokeCallback((double)callbackId, std::move(params)); } +void Instance::setJSEConfigParams(std::shared_ptr&& jseConfigParams) { + jseConfigParams_ = std::move(jseConfigParams); +} + void Instance::registerBundle(uint32_t bundleId, const std::string& bundlePath) { nativeToJsBridge_->registerBundle(bundleId, bundlePath); } diff --git a/ReactCommon/cxxreact/Instance.h b/ReactCommon/cxxreact/Instance.h index 4ff8d7f9129395..ad8473b125ae71 100644 --- a/ReactCommon/cxxreact/Instance.h +++ b/ReactCommon/cxxreact/Instance.h @@ -83,6 +83,7 @@ class RN_EXPORT Instance { void callJSFunction(std::string &&module, std::string &&method, folly::dynamic &¶ms); void callJSCallback(uint64_t callbackId, folly::dynamic &¶ms); + virtual void setJSEConfigParams(std::shared_ptr&& jseConfigParams); // This method is experimental, and may be modified or removed. void registerBundle(uint32_t bundleId, const std::string& bundlePath); @@ -117,6 +118,7 @@ class RN_EXPORT Instance { std::shared_ptr callback_; std::unique_ptr nativeToJsBridge_; std::shared_ptr moduleRegistry_; + std::shared_ptr jseConfigParams_; std::mutex m_syncMutex; std::condition_variable m_syncCV; diff --git a/ReactCommon/cxxreact/NativeToJsBridge.cpp b/ReactCommon/cxxreact/NativeToJsBridge.cpp index b9f80f9525dee7..7249d4c5550f25 100644 --- a/ReactCommon/cxxreact/NativeToJsBridge.cpp +++ b/ReactCommon/cxxreact/NativeToJsBridge.cpp @@ -88,10 +88,11 @@ NativeToJsBridge::NativeToJsBridge( std::shared_ptr delegate, // TODO(OSS Candidate ISS#2710739) std::shared_ptr registry, std::shared_ptr jsQueue, - std::shared_ptr callback) + std::shared_ptr callback, + std::shared_ptr jseConfigParams) : m_destroyed(std::make_shared(false)), m_delegate(delegate ? delegate : (std::make_shared(registry, callback))), - m_executor(jsExecutorFactory->createJSExecutor(m_delegate, jsQueue)), + m_executor(jsExecutorFactory->createJSExecutor(m_delegate, jsQueue, std::move(jseConfigParams))), m_executorMessageQueueThread(std::move(jsQueue)), m_inspectable(m_executor->isInspectable()) {} diff --git a/ReactCommon/cxxreact/NativeToJsBridge.h b/ReactCommon/cxxreact/NativeToJsBridge.h index 8a7dfb02b9e35a..e02cf192889d4d 100644 --- a/ReactCommon/cxxreact/NativeToJsBridge.h +++ b/ReactCommon/cxxreact/NativeToJsBridge.h @@ -44,7 +44,8 @@ class NativeToJsBridge { std::shared_ptr delegate, // TODO(OSS Candidate ISS#2710739) std::shared_ptr registry, std::shared_ptr jsQueue, - std::shared_ptr callback); + std::shared_ptr callback, + std::shared_ptr jseConfigParams); virtual ~NativeToJsBridge(); /** From 8566ddfc89c8d9fc1468bc2eebec156a43ee273a Mon Sep 17 00:00:00 2001 From: "REDMOND\\acoates" Date: Mon, 21 Oct 2019 12:25:33 -0700 Subject: [PATCH 2/2] Expose method to add custom font directly using Typeface arg --- .../com/facebook/react/views/text/ReactFontManager.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactFontManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactFontManager.java index 21d4c175380cd5..0ad8bff3a6d35b 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactFontManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactFontManager.java @@ -102,10 +102,14 @@ public static ReactFontManager getInstance() { public void addCustomFont(@NonNull Context context, @NonNull String fontFamily, int fontId) { Typeface font = ResourcesCompat.getFont(context, fontId); if (font != null) { - mCustomTypefaceCache.put(fontFamily, font); + addCustomFont(fontFamily, font); } } + public void addCustomFont(@NonNull String fontFamily, @NonNull Typeface font) { + mCustomTypefaceCache.put(fontFamily, font); + } + /** * Add additional font family, or replace the exist one in the font memory cache. * @param style