Skip to content

Commit 4af7d60

Browse files
authored
Add back jseConfigParams changes (#178)
* Add back jseConfigParams changes * Expose method to add custom font directly using Typeface arg
1 parent b50dcb1 commit 4af7d60

File tree

6 files changed

+23
-11
lines changed

6 files changed

+23
-11
lines changed

ReactAndroid/src/main/java/com/facebook/react/views/text/ReactFontManager.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,14 @@ public static ReactFontManager getInstance() {
102102
public void addCustomFont(@NonNull Context context, @NonNull String fontFamily, int fontId) {
103103
Typeface font = ResourcesCompat.getFont(context, fontId);
104104
if (font != null) {
105-
mCustomTypefaceCache.put(fontFamily, font);
105+
addCustomFont(fontFamily, font);
106106
}
107107
}
108108

109+
public void addCustomFont(@NonNull String fontFamily, @NonNull Typeface font) {
110+
mCustomTypefaceCache.put(fontFamily, font);
111+
}
112+
109113
/**
110114
* Add additional font family, or replace the exist one in the font memory cache.
111115
* @param style

ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -718,6 +718,11 @@ public void setBorderStyle(ReactEditText view, @Nullable String borderStyle) {
718718
view.setBorderStyle(borderStyle);
719719
}
720720

721+
@ReactProp(name = "showSoftInputOnFocus", defaultBoolean = true)
722+
public void showKeyboardOnFocus(ReactEditText view, boolean showKeyboardOnFocus) {
723+
view.setShowSoftInputOnFocus(showKeyboardOnFocus);
724+
}
725+
721726
@ReactPropGroup(names = {
722727
ViewProps.BORDER_WIDTH,
723728
ViewProps.BORDER_LEFT_WIDTH,
@@ -852,11 +857,7 @@ public void onFocusChange(View v, boolean hasFocus) {
852857
eventDispatcher.dispatchEvent(
853858
new ReactTextInputFocusEvent(
854859
editText.getId()));
855-
// Show keyboard when a EditText view gains focus
856-
editText.showSoftKeyboard();
857860
} else {
858-
// Hide keyboard when a EditText view looses focus
859-
editText.hideSoftKeyboard();
860861
eventDispatcher.dispatchEvent(
861862
new ReactTextInputBlurEvent(
862863
editText.getId()));
@@ -909,8 +910,7 @@ public boolean onEditorAction(TextView v, int actionId, KeyEvent keyEvent) {
909910
return false;
910911
}
911912

912-
// If its not an action we handle, perform default behavior
913-
return false;
913+
return true;
914914
}
915915
});
916916
}

ReactCommon/cxxreact/Instance.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ void Instance::initializeBridge(
5757

5858
jsQueue->runOnQueueSync([this, delegate, &jsef, jsQueue]() mutable {
5959
nativeToJsBridge_ = folly::make_unique<NativeToJsBridge>(
60-
jsef.get(), delegate, moduleRegistry_, jsQueue, callback_);
60+
jsef.get(), delegate, moduleRegistry_, jsQueue, callback_, jseConfigParams_);
6161

6262
std::lock_guard<std::mutex> lock(m_syncMutex);
6363
m_syncReady = true;
@@ -201,6 +201,10 @@ void Instance::callJSCallback(uint64_t callbackId, folly::dynamic &&params) {
201201
nativeToJsBridge_->invokeCallback((double)callbackId, std::move(params));
202202
}
203203

204+
void Instance::setJSEConfigParams(std::shared_ptr<JSEConfigParams>&& jseConfigParams) {
205+
jseConfigParams_ = std::move(jseConfigParams);
206+
}
207+
204208
void Instance::registerBundle(uint32_t bundleId, const std::string& bundlePath) {
205209
nativeToJsBridge_->registerBundle(bundleId, bundlePath);
206210
}

ReactCommon/cxxreact/Instance.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ class RN_EXPORT Instance {
8383
void callJSFunction(std::string &&module, std::string &&method,
8484
folly::dynamic &&params);
8585
void callJSCallback(uint64_t callbackId, folly::dynamic &&params);
86+
virtual void setJSEConfigParams(std::shared_ptr<JSEConfigParams>&& jseConfigParams);
8687

8788
// This method is experimental, and may be modified or removed.
8889
void registerBundle(uint32_t bundleId, const std::string& bundlePath);
@@ -117,6 +118,7 @@ class RN_EXPORT Instance {
117118
std::shared_ptr<InstanceCallback> callback_;
118119
std::unique_ptr<NativeToJsBridge> nativeToJsBridge_;
119120
std::shared_ptr<ModuleRegistry> moduleRegistry_;
121+
std::shared_ptr<JSEConfigParams> jseConfigParams_;
120122

121123
std::mutex m_syncMutex;
122124
std::condition_variable m_syncCV;

ReactCommon/cxxreact/NativeToJsBridge.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,11 @@ NativeToJsBridge::NativeToJsBridge(
8888
std::shared_ptr<ExecutorDelegate> delegate, // TODO(OSS Candidate ISS#2710739)
8989
std::shared_ptr<ModuleRegistry> registry,
9090
std::shared_ptr<MessageQueueThread> jsQueue,
91-
std::shared_ptr<InstanceCallback> callback)
91+
std::shared_ptr<InstanceCallback> callback,
92+
std::shared_ptr<JSEConfigParams> jseConfigParams)
9293
: m_destroyed(std::make_shared<bool>(false)),
9394
m_delegate(delegate ? delegate : (std::make_shared<JsToNativeBridge>(registry, callback))),
94-
m_executor(jsExecutorFactory->createJSExecutor(m_delegate, jsQueue)),
95+
m_executor(jsExecutorFactory->createJSExecutor(m_delegate, jsQueue, std::move(jseConfigParams))),
9596
m_executorMessageQueueThread(std::move(jsQueue)),
9697
m_inspectable(m_executor->isInspectable()) {}
9798

ReactCommon/cxxreact/NativeToJsBridge.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ class NativeToJsBridge {
4444
std::shared_ptr<ExecutorDelegate> delegate, // TODO(OSS Candidate ISS#2710739)
4545
std::shared_ptr<ModuleRegistry> registry,
4646
std::shared_ptr<MessageQueueThread> jsQueue,
47-
std::shared_ptr<InstanceCallback> callback);
47+
std::shared_ptr<InstanceCallback> callback,
48+
std::shared_ptr<JSEConfigParams> jseConfigParams);
4849
virtual ~NativeToJsBridge();
4950

5051
/**

0 commit comments

Comments
 (0)