MCPcopy Create free account
hub / github.com/Snapchat/Valdi / getRetainedViewNodeChildren

Method getRetainedViewNodeChildren

valdi/src/valdi/android/NativeBridge.cpp:657–686  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

655}
656
657jobject ValdiAndroid::NativeBridge::getRetainedViewNodeChildren( // NOLINT
658 fbjni::alias_ref<fbjni::JClass> /* clazz */, // NOLINT
659 jlong viewNodeHandle,
660 jint mode) {
661 static constexpr jint kModeChildrenShallowAll = 1;
662 static constexpr jint kModeChildrenShallowVisible = 2;
663
664 auto viewNode = getViewNode(viewNodeHandle);
665 if (viewNode == nullptr) {
666 return nullptr;
667 }
668
669 std::vector<jlong> childrenHandles;
670
671 bool modeShallowAll = mode == kModeChildrenShallowAll;
672 bool modeShallowVisible = mode == kModeChildrenShallowVisible;
673 if (modeShallowAll || modeShallowVisible) {
674 auto size = viewNode->getChildCount();
675 childrenHandles.reserve(size);
676 for (size_t i = 0; i < size; i++) {
677 auto childShallow = viewNode->getChildAt(i);
678 if (modeShallowAll || childShallow->isVisibleInViewport()) {
679 childrenHandles.emplace_back(ValdiAndroid::bridgeRetain(childShallow));
680 }
681 }
682 }
683
684 return ValdiAndroid::toJavaLongArray(ValdiAndroid::JavaEnv(), childrenHandles.data(), childrenHandles.size())
685 .releaseObject();
686}
687
688jlong ValdiAndroid::NativeBridge::getRetainedViewNodeHitTestAccessibility( // NOLINT
689 fbjni::alias_ref<fbjni::JClass> /* clazz */, // NOLINT

Callers

nothing calls this directly

Calls 11

getViewNodeFunction · 0.85
bridgeRetainFunction · 0.85
toJavaLongArrayFunction · 0.85
isVisibleInViewportMethod · 0.80
releaseObjectMethod · 0.65
JavaEnvClass · 0.50
getChildCountMethod · 0.45
reserveMethod · 0.45
getChildAtMethod · 0.45
dataMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected