@@ -6,16 +6,20 @@ import android.text.style.StrikethroughSpan
66import android.text.style.StyleSpan
77import android.text.style.UnderlineSpan
88import android.widget.EditText
9+ import androidx.core.text.toHtml
910import androidx.core.widget.doOnTextChanged
1011import com.facebook.infer.annotation.Assertions
1112import com.facebook.react.bridge.Arguments
13+ import com.facebook.react.bridge.ReactMethod
1214import com.facebook.react.bridge.ReadableArray
1315import com.facebook.react.uimanager.SimpleViewManager
1416import com.facebook.react.uimanager.ThemedReactContext
1517import com.facebook.react.uimanager.annotations.ReactProp
1618import com.facebook.react.uimanager.events.RCTEventEmitter
1719
1820class RichTextInputViewManager : SimpleViewManager <EditText >() {
21+ var editText: EditText ? = null
22+
1923 override fun getName () = " RichTextInputView"
2024
2125 override fun getExportedCustomBubblingEventTypeConstants (): Map <String , Any > {
@@ -29,25 +33,34 @@ class RichTextInputViewManager : SimpleViewManager<EditText>() {
2933 }
3034
3135 override fun createViewInstance (reactContext : ThemedReactContext ): EditText {
32- val editText = EditText (reactContext)
36+ editText = EditText (reactContext)
3337
34- editText.doOnTextChanged { text, start, before, count ->
38+ editText!! .doOnTextChanged { text, start, before, count ->
3539 val event = Arguments .createMap().apply {
3640 putString(" text" , text.toString())
3741 }
3842 reactContext
3943 .getJSModule(RCTEventEmitter ::class .java)
40- .receiveEvent(editText.id, " topChange" , event)
44+ .receiveEvent(editText!! .id, " topChange" , event)
4145 }
4246
43- return editText
47+ return editText as EditText
4448 }
4549
4650 @ReactProp(name = " placeholder" )
4751 fun setPlaceholder (view : EditText , placeholder : String ) {
4852 view.hint = placeholder
4953 }
5054
55+ @ReactMethod(isBlockingSynchronousMethod = true )
56+ fun getHTML (): String {
57+ if (editText != null ) {
58+ return editText!! .text.toHtml()
59+ }
60+
61+ return " ERROR: richTextView IS NOT INITIALIZED"
62+ }
63+
5164 override fun receiveCommand (root : EditText , commandId : String? , args : ReadableArray ? ) {
5265 Assertions .assertNotNull(root)
5366
0 commit comments