| 1094 | auto viewNode = getViewNode(viewNodeHandle); |
| 1095 | if (viewNode == nullptr) { |
| 1096 | return static_cast<jboolean>(false); |
| 1097 | } |
| 1098 | |
| 1099 | if (viewNode->getViewNodeTree() == nullptr) { |
| 1100 | return static_cast<jboolean>(false); |
| 1101 | } |
| 1102 | |
| 1103 | bool invalidated = false; |
| 1104 | |
| 1105 | viewNode->getViewNodeTree()->withLock([&]() { invalidated = viewNode->invalidateMeasuredSize(); }); |
| 1106 | |
| 1107 | return static_cast<jboolean>(invalidated); |
| 1108 | } |
| 1109 | |
| 1110 | jlong ValdiAndroid::NativeBridge::measureLayout( // NOLINT |
| 1111 | fbjni::alias_ref<fbjni::JClass> /* clazz */, // NOLINT |
| 1112 | jlong runtimeHandle, |
| 1113 | jlong contextHandle, |
| 1114 | jint maxWidth, |
| 1115 | jint widthMode, |
| 1116 | jint maxHeight, |
| 1117 | jint heightMode, |
| 1118 | jboolean isRTL) { |
| 1119 | auto viewNodeTree = getViewNodeTree(contextHandle); |
| 1120 | auto* runtimeWrapper = getRuntimeWrapper(runtimeHandle); |
| 1121 | |
| 1122 | if (viewNodeTree == nullptr || runtimeWrapper == nullptr) { |
| 1123 | return 0; |
| 1124 | } |
| 1125 | |
| 1126 | auto pointScale = runtimeWrapper->getPointScale(); |
| 1127 | |
| 1128 | auto resolvedWidthMode = static_cast<Valdi::MeasureMode>(widthMode); |
| 1129 | auto resolvedHeightMode = static_cast<Valdi::MeasureMode>(heightMode); |