Size TextLayoutManager::measure( AttributedString attributedString, ParagraphAttributes paragraphAttributes, LayoutConstraints layoutConstraints) const { const jni::global_ref<jobject> &fabricUIManager = contextContainer_->getInstance<jni::global_ref<jobject>>( "FabricUIManager"); static auto measure = jni::findClassStatic("com/facebook/react/fabric/FabricUIManager") ->getMethod<jlong( jstring, ReadableMap::javaobject, ReadableMap::javaobject, jint, jint, jint, jint)>("measure"); auto minimumSize = layoutConstraints.minimumSize; auto maximumSize = layoutConstraints.maximumSize; int minWidth = (int)minimumSize.width; int minHeight = (int)minimumSize.height; int maxWidth = (int)maximumSize.width; int maxHeight = (int)maximumSize.height; local_ref<JString> componentName = make_jstring("RCTText"); local_ref<ReadableNativeMap::javaobject> attributedStringRNM = ReadableNativeMap::newObjectCxxArgs(toDynamic(attributedString)); local_ref<ReadableNativeMap::javaobject> paragraphAttributesRNM = ReadableNativeMap::newObjectCxxArgs(toDynamic(paragraphAttributes)); local_ref<ReadableMap::javaobject> attributedStringRM = make_local( reinterpret_cast<ReadableMap::javaobject>(attributedStringRNM.get())); local_ref<ReadableMap::javaobject> paragraphAttributesRM = make_local( reinterpret_cast<ReadableMap::javaobject>(paragraphAttributesRNM.get())); return yogaMeassureToSize(measure( fabricUIManager, componentName.get(), attributedStringRM.get(), paragraphAttributesRM.get(), minWidth, maxWidth, minHeight, maxHeight)); }
Dynamic* lookupDynamic(Element* e) { Dynamic* d = 0; Segment* s = 0; if (e && e->isChord()) s = toChord(e)->segment(); if (s) { for (Element* ee : s->annotations()) { if (ee->isDynamic() && ee->track() == e->track() && ee->placeBelow()) { d = toDynamic(ee); break; } } } if (d) { if (!d->autoplace()) d = 0; } return d; }