mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Migrate ReactTextInputManager to be bridgeless
Summary: Migrate ReactTextinputManager to support bridgeless mode by accessing the EventDispatcher through the UIManagerHelper instead of from ReactContext. Changelog: [Internal] Reviewed By: mdvacca Differential Revision: D19456326 fbshipit-source-id: 5e9643793cd764e29964f565db24cdea683ac032
This commit is contained in:
committed by
Facebook Github Bot
parent
32d095906e
commit
88aa2b9316
+12
-9
@@ -50,7 +50,7 @@ import com.facebook.react.uimanager.ReactStylesDiffMap;
|
||||
import com.facebook.react.uimanager.Spacing;
|
||||
import com.facebook.react.uimanager.StateWrapper;
|
||||
import com.facebook.react.uimanager.ThemedReactContext;
|
||||
import com.facebook.react.uimanager.UIManagerModule;
|
||||
import com.facebook.react.uimanager.UIManagerHelper;
|
||||
import com.facebook.react.uimanager.ViewDefaults;
|
||||
import com.facebook.react.uimanager.ViewProps;
|
||||
import com.facebook.react.uimanager.annotations.ReactProp;
|
||||
@@ -848,6 +848,11 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
view.setStagedInputType((view.getStagedInputType() & ~flagsToUnset) | flagsToSet);
|
||||
}
|
||||
|
||||
private static EventDispatcher getEventDispatcher(
|
||||
ReactContext reactContext, ReactEditText editText) {
|
||||
return UIManagerHelper.getEventDispatcherForReactTag(reactContext, editText.getId());
|
||||
}
|
||||
|
||||
private class ReactTextInputTextWatcher implements TextWatcher {
|
||||
|
||||
private EventDispatcher mEventDispatcher;
|
||||
@@ -856,7 +861,7 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
|
||||
public ReactTextInputTextWatcher(
|
||||
final ReactContext reactContext, final ReactEditText editText) {
|
||||
mEventDispatcher = reactContext.getNativeModule(UIManagerModule.class).getEventDispatcher();
|
||||
mEventDispatcher = getEventDispatcher(reactContext, editText);
|
||||
mEditText = editText;
|
||||
mPreviousText = null;
|
||||
}
|
||||
@@ -994,8 +999,7 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
editText.setOnFocusChangeListener(
|
||||
new View.OnFocusChangeListener() {
|
||||
public void onFocusChange(View v, boolean hasFocus) {
|
||||
EventDispatcher eventDispatcher =
|
||||
reactContext.getNativeModule(UIManagerModule.class).getEventDispatcher();
|
||||
EventDispatcher eventDispatcher = getEventDispatcher(reactContext, editText);
|
||||
if (hasFocus) {
|
||||
eventDispatcher.dispatchEvent(new ReactTextInputFocusEvent(editText.getId()));
|
||||
} else {
|
||||
@@ -1025,8 +1029,7 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
// * !blurOnSubmit && !isMultiline => Prevent default behaviour (return true).
|
||||
// Additionally we always generate a `submit` event.
|
||||
|
||||
EventDispatcher eventDispatcher =
|
||||
reactContext.getNativeModule(UIManagerModule.class).getEventDispatcher();
|
||||
EventDispatcher eventDispatcher = getEventDispatcher(reactContext, editText);
|
||||
|
||||
eventDispatcher.dispatchEvent(
|
||||
new ReactTextInputSubmitEditingEvent(
|
||||
@@ -1067,7 +1070,7 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
public ReactContentSizeWatcher(ReactEditText editText) {
|
||||
mEditText = editText;
|
||||
ReactContext reactContext = getReactContext(editText);
|
||||
mEventDispatcher = reactContext.getNativeModule(UIManagerModule.class).getEventDispatcher();
|
||||
mEventDispatcher = getEventDispatcher(reactContext, editText);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1111,7 +1114,7 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
mReactEditText = editText;
|
||||
|
||||
ReactContext reactContext = getReactContext(editText);
|
||||
mEventDispatcher = reactContext.getNativeModule(UIManagerModule.class).getEventDispatcher();
|
||||
mEventDispatcher = getEventDispatcher(reactContext, editText);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1145,7 +1148,7 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
public ReactScrollWatcher(ReactEditText editText) {
|
||||
mReactEditText = editText;
|
||||
ReactContext reactContext = getReactContext(editText);
|
||||
mEventDispatcher = reactContext.getNativeModule(UIManagerModule.class).getEventDispatcher();
|
||||
mEventDispatcher = getEventDispatcher(reactContext, editText);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user