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

Method createContext

valdi/src/valdi/android/NativeBridge.cpp:398–431  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

396}
397
398jobject ValdiAndroid::NativeBridge::createContext( // NOLINT
399 fbjni::alias_ref<fbjni::JClass> /* clazz */, // NOLINT
400 jlong handle,
401 jstring componentPath,
402 jobject viewModel,
403 jobject componentContext,
404 jboolean useSnapDrawing) {
405 auto* wrapper = getRuntimeWrapper(handle);
406 if (wrapper == nullptr) {
407 return nullptr;
408 }
409
410 auto* runtime = &wrapper->getRuntime();
411
412 auto javaEnv = ValdiAndroid::JavaEnv();
413
414 auto cppComponentPath = ValdiAndroid::toInternedString(javaEnv, componentPath);
415 auto viewModelRetainedJava = ValdiAndroid::javaObjectToLazyValueConvertible(javaEnv, viewModel, "ViewModel");
416 auto componentContextRetainedJava =
417 ValdiAndroid::javaObjectToLazyValueConvertible(javaEnv, componentContext, "ComponentContext");
418
419 Valdi::Ref<Valdi::ViewManagerContext> viewManagerContext;
420 if (useSnapDrawing != 0) {
421 viewManagerContext = wrapper->getRuntimeManagerWrapper()->getOrCreateSnapDrawingViewManagerContext();
422 } else {
423 viewManagerContext = wrapper->getRuntimeManagerWrapper()->getAndroidViewManagerContext();
424 }
425
426 auto context = runtime->createContext(
427 viewManagerContext, cppComponentPath, viewModelRetainedJava, componentContextRetainedJava);
428
429 auto javaContext = ValdiAndroid::fromValdiContextUserData(context->getUserData());
430 return javaContext.releaseObject();
431}
432
433void ValdiAndroid::NativeBridge::contextOnCreate( // NOLINT
434 fbjni::alias_ref<fbjni::JClass> /* clazz */, // NOLINT

Callers

nothing calls this directly

Calls 10

getRuntimeWrapperFunction · 0.85
toInternedStringFunction · 0.85
fromValdiContextUserDataFunction · 0.85
getUserDataMethod · 0.80
createContextMethod · 0.65
releaseObjectMethod · 0.65
JavaEnvClass · 0.50
getRuntimeMethod · 0.45

Tested by

no test coverage detected