react-native-list 1.0.1 → 2.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +186 -32
- package/ReactNativeList.podspec +39 -0
- package/android/CMakeLists.txt +48 -0
- package/android/build.gradle +151 -0
- package/android/fix-prefab.gradle +51 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/JHybridUiListModule.cpp +192 -0
- package/android/src/main/cpp/JHybridUiListModule.h +50 -0
- package/android/src/main/cpp/cpp-adapter.cpp +12 -0
- package/android/src/main/java/com/hannojg/reactnativelist/ReactNativeListPackage.kt +27 -0
- package/android/src/main/java/com/margelo/nitro/reactnativelist/HybridNativeListDataSource.kt +146 -0
- package/android/src/main/java/com/margelo/nitro/reactnativelist/HybridNativeListLayout.kt +86 -0
- package/android/src/main/java/com/margelo/nitro/reactnativelist/HybridUiListModule.kt +116 -0
- package/android/src/main/java/com/margelo/nitro/reactnativelist/HybridUiListView.kt +410 -0
- package/android/src/main/java/com/margelo/nitro/reactnativelist/HybridViewHolder.kt +9 -0
- package/android/src/main/java/com/margelo/nitro/reactnativelist/NativeListAdapter.kt +217 -0
- package/ios/DataSource/HybridNativeListDataSource.swift +213 -0
- package/ios/HybridObjects/HybridUiListModule.swift +49 -0
- package/ios/HybridObjects/HybridViewHolder.swift +16 -0
- package/ios/Layout/HybridNativeListLayout.swift +128 -0
- package/ios/Utils/ErrorUtils.h +26 -0
- package/ios/Utils/HybridIOSWorkletsModuleProxyHolder.swift +10 -0
- package/ios/Utils/SurfaceHelper.h +20 -0
- package/ios/Utils/SurfaceHelper.mm +144 -0
- package/ios/Utils/SurfacePresenterRegistry.h +17 -0
- package/ios/Utils/SurfacePresenterRegistry.m +31 -0
- package/ios/Utils/TurboModuleInstaller.h +18 -0
- package/ios/Utils/TurboModuleInstaller.mm +267 -0
- package/ios/Views/HostCell.swift +216 -0
- package/ios/Views/HybridUiListView.swift +695 -0
- package/lib/ReactFabricMirror.d.ts +4 -0
- package/lib/ReactFabricMirror.js +515 -0
- package/lib/UiListModule.d.ts +2 -0
- package/lib/UiListModule.js +2 -0
- package/lib/index.d.ts +8 -0
- package/lib/index.js +21 -0
- package/lib/privateGlobals.d.ts +14 -0
- package/lib/privateGlobals.js +2 -0
- package/lib/renderer/RenderHelper.d.ts +2 -0
- package/lib/renderer/RenderHelper.js +11 -0
- package/lib/renderer/UiManagerHelper.d.ts +2 -0
- package/lib/renderer/UiManagerHelper.js +2 -0
- package/lib/renderer/fabric/RenderHelper.d.ts +2 -0
- package/lib/renderer/fabric/RenderHelper.js +11 -0
- package/lib/renderer/fabric/UiManagerHelper.d.ts +2 -0
- package/lib/renderer/fabric/UiManagerHelper.js +2 -0
- package/lib/renderer/react/ReactFabricMirror.d.ts +4 -0
- package/lib/renderer/react/ReactFabricMirror.js +515 -0
- package/lib/renderer/react/ReactFabricRenderer.d.ts +3 -0
- package/lib/renderer/react/ReactFabricRenderer.js +9 -0
- package/lib/specs/IOSWorkletsModuleProxyHolder.nitro.d.ts +6 -0
- package/lib/specs/IOSWorkletsModuleProxyHolder.nitro.js +1 -0
- package/lib/specs/UIListModule.nitro.d.ts +9 -0
- package/lib/specs/UIListModule.nitro.js +1 -0
- package/lib/specs/UIManagerHelper.nitro.d.ts +13 -0
- package/lib/specs/UIManagerHelper.nitro.js +1 -0
- package/lib/specs/UiListView.nitro.d.ts +20 -0
- package/lib/specs/UiListView.nitro.js +1 -0
- package/lib/specs/ViewHolder.nitro.d.ts +6 -0
- package/lib/specs/ViewHolder.nitro.js +1 -0
- package/lib/views/List.d.ts +35 -0
- package/lib/views/List.js +225 -0
- package/lib/views/UiListHostComponent.d.ts +2 -0
- package/lib/views/UiListHostComponent.js +3 -0
- package/metro/RendererProxyThreadSwitch.js +66 -0
- package/metro-config.d.ts +1 -0
- package/metro-config.js +124 -0
- package/nitro.json +47 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/ReactNativeList+autolinking.cmake +99 -0
- package/nitrogen/generated/android/ReactNativeList+autolinking.gradle +27 -0
- package/nitrogen/generated/android/ReactNativeListOnLoad.cpp +156 -0
- package/nitrogen/generated/android/ReactNativeListOnLoad.hpp +34 -0
- package/nitrogen/generated/android/c++/JFunc_bool_NativeListItem_NativeListItem.hpp +83 -0
- package/nitrogen/generated/android/c++/JFunc_bool_double_NativeListItem_double.hpp +83 -0
- package/nitrogen/generated/android/c++/JFunc_double_std__string.hpp +78 -0
- package/nitrogen/generated/android/c++/JHybridIOSWorkletsModuleProxyHolderSpec.cpp +49 -0
- package/nitrogen/generated/android/c++/JHybridIOSWorkletsModuleProxyHolderSpec.hpp +63 -0
- package/nitrogen/generated/android/c++/JHybridNativeLinearListLayoutSpec.cpp +63 -0
- package/nitrogen/generated/android/c++/JHybridNativeLinearListLayoutSpec.hpp +65 -0
- package/nitrogen/generated/android/c++/JHybridNativeListDataSourceSpec.cpp +101 -0
- package/nitrogen/generated/android/c++/JHybridNativeListDataSourceSpec.hpp +70 -0
- package/nitrogen/generated/android/c++/JHybridNativeListLayoutSpec.cpp +49 -0
- package/nitrogen/generated/android/c++/JHybridNativeListLayoutSpec.hpp +63 -0
- package/nitrogen/generated/android/c++/JHybridUiListModuleSpec.cpp +65 -0
- package/nitrogen/generated/android/c++/JHybridUiListModuleSpec.hpp +64 -0
- package/nitrogen/generated/android/c++/JHybridUiListViewSpec.cpp +92 -0
- package/nitrogen/generated/android/c++/JHybridUiListViewSpec.hpp +67 -0
- package/nitrogen/generated/android/c++/JHybridViewHolderSpec.cpp +49 -0
- package/nitrogen/generated/android/c++/JHybridViewHolderSpec.hpp +63 -0
- package/nitrogen/generated/android/c++/JNativeItemSizeEstimate.hpp +61 -0
- package/nitrogen/generated/android/c++/JNativeLinearListLayoutConfig.hpp +81 -0
- package/nitrogen/generated/android/c++/JNativeLinearListLayoutIOSConfig.hpp +59 -0
- package/nitrogen/generated/android/c++/JNativeListItem.hpp +76 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec.hpp +72 -0
- package/nitrogen/generated/android/c++/views/JHybridUiListViewStateUpdater.cpp +53 -0
- package/nitrogen/generated/android/c++/views/JHybridUiListViewStateUpdater.hpp +49 -0
- package/nitrogen/generated/android/c++/views/JHybridViewHolderStateUpdater.cpp +53 -0
- package/nitrogen/generated/android/c++/views/JHybridViewHolderStateUpdater.hpp +49 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/Func_bool_NativeListItem_NativeListItem.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/Func_bool_double_NativeListItem_double.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/Func_double_std__string.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridIOSWorkletsModuleProxyHolderSpec.kt +52 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridNativeLinearListLayoutSpec.kt +54 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridNativeListDataSourceSpec.kt +87 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridNativeListLayoutSpec.kt +52 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridUiListModuleSpec.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridUiListViewSpec.kt +76 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/HybridViewHolderSpec.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/NativeItemSizeEstimate.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/NativeLinearListLayoutConfig.kt +76 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/NativeLinearListLayoutIOSConfig.kt +51 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/NativeListItem.kt +71 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/ReactNativeListOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/Variant_NullType_HybridIOSWorkletsModuleProxyHolderSpec.kt +62 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/views/HybridUiListViewManager.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/views/HybridUiListViewStateUpdater.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/views/HybridViewHolderManager.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativelist/views/HybridViewHolderStateUpdater.kt +23 -0
- package/nitrogen/generated/ios/ReactNativeList+autolinking.rb +62 -0
- package/nitrogen/generated/ios/ReactNativeList-Swift-Cxx-Bridge.cpp +162 -0
- package/nitrogen/generated/ios/ReactNativeList-Swift-Cxx-Bridge.hpp +368 -0
- package/nitrogen/generated/ios/ReactNativeList-Swift-Cxx-Umbrella.hpp +92 -0
- package/nitrogen/generated/ios/ReactNativeListAutolinking.mm +83 -0
- package/nitrogen/generated/ios/ReactNativeListAutolinking.swift +86 -0
- package/nitrogen/generated/ios/c++/HybridIOSWorkletsModuleProxyHolderSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridIOSWorkletsModuleProxyHolderSpecSwift.hpp +75 -0
- package/nitrogen/generated/ios/c++/HybridNativeLinearListLayoutSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridNativeLinearListLayoutSpecSwift.hpp +92 -0
- package/nitrogen/generated/ios/c++/HybridNativeListDataSourceSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridNativeListDataSourceSpecSwift.hpp +132 -0
- package/nitrogen/generated/ios/c++/HybridNativeListLayoutSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridNativeListLayoutSpecSwift.hpp +75 -0
- package/nitrogen/generated/ios/c++/HybridUiListModuleSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridUiListModuleSpecSwift.hpp +93 -0
- package/nitrogen/generated/ios/c++/HybridUiListViewSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridUiListViewSpecSwift.hpp +121 -0
- package/nitrogen/generated/ios/c++/HybridViewHolderSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewHolderSpecSwift.hpp +75 -0
- package/nitrogen/generated/ios/c++/views/HybridUiListViewComponent.mm +118 -0
- package/nitrogen/generated/ios/c++/views/HybridViewHolderComponent.mm +118 -0
- package/nitrogen/generated/ios/swift/Func_bool_NativeListItem_NativeListItem.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_bool_double_NativeListItem_double.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_double_std__string.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridIOSWorkletsModuleProxyHolderSpec.swift +55 -0
- package/nitrogen/generated/ios/swift/HybridIOSWorkletsModuleProxyHolderSpec_cxx.swift +128 -0
- package/nitrogen/generated/ios/swift/HybridNativeLinearListLayoutSpec.swift +55 -0
- package/nitrogen/generated/ios/swift/HybridNativeLinearListLayoutSpec_cxx.swift +140 -0
- package/nitrogen/generated/ios/swift/HybridNativeListDataSourceSpec.swift +62 -0
- package/nitrogen/generated/ios/swift/HybridNativeListDataSourceSpec_cxx.swift +222 -0
- package/nitrogen/generated/ios/swift/HybridNativeListLayoutSpec.swift +55 -0
- package/nitrogen/generated/ios/swift/HybridNativeListLayoutSpec_cxx.swift +128 -0
- package/nitrogen/generated/ios/swift/HybridUiListModuleSpec.swift +56 -0
- package/nitrogen/generated/ios/swift/HybridUiListModuleSpec_cxx.swift +175 -0
- package/nitrogen/generated/ios/swift/HybridUiListViewSpec.swift +59 -0
- package/nitrogen/generated/ios/swift/HybridUiListViewSpec_cxx.swift +227 -0
- package/nitrogen/generated/ios/swift/HybridViewHolderSpec.swift +55 -0
- package/nitrogen/generated/ios/swift/HybridViewHolderSpec_cxx.swift +147 -0
- package/nitrogen/generated/ios/swift/NativeItemSizeEstimate.swift +60 -0
- package/nitrogen/generated/ios/swift/NativeLinearListLayoutConfig.swift +60 -0
- package/nitrogen/generated/ios/swift/NativeLinearListLayoutIOSConfig.swift +35 -0
- package/nitrogen/generated/ios/swift/NativeListItem.swift +75 -0
- package/nitrogen/generated/ios/swift/Variant_NullType__any_HybridIOSWorkletsModuleProxyHolderSpec_.swift +30 -0
- package/nitrogen/generated/shared/c++/HybridIOSWorkletsModuleProxyHolderSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridIOSWorkletsModuleProxyHolderSpec.hpp +62 -0
- package/nitrogen/generated/shared/c++/HybridNativeLinearListLayoutSpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridNativeLinearListLayoutSpec.hpp +67 -0
- package/nitrogen/generated/shared/c++/HybridNativeListDataSourceSpec.cpp +28 -0
- package/nitrogen/generated/shared/c++/HybridNativeListDataSourceSpec.hpp +72 -0
- package/nitrogen/generated/shared/c++/HybridNativeListLayoutSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridNativeListLayoutSpec.hpp +62 -0
- package/nitrogen/generated/shared/c++/HybridUiListModuleSpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridUiListModuleSpec.hpp +68 -0
- package/nitrogen/generated/shared/c++/HybridUiListViewSpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridUiListViewSpec.hpp +79 -0
- package/nitrogen/generated/shared/c++/HybridUiManagerHelperSpec.cpp +23 -0
- package/nitrogen/generated/shared/c++/HybridUiManagerHelperSpec.hpp +65 -0
- package/nitrogen/generated/shared/c++/HybridViewHolderSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridViewHolderSpec.hpp +62 -0
- package/nitrogen/generated/shared/c++/NativeItemSizeEstimate.hpp +87 -0
- package/nitrogen/generated/shared/c++/NativeLinearListLayoutConfig.hpp +105 -0
- package/nitrogen/generated/shared/c++/NativeLinearListLayoutIOSConfig.hpp +85 -0
- package/nitrogen/generated/shared/c++/NativeListItem.hpp +101 -0
- package/nitrogen/generated/shared/c++/views/HybridUiListViewComponent.cpp +72 -0
- package/nitrogen/generated/shared/c++/views/HybridUiListViewComponent.hpp +109 -0
- package/nitrogen/generated/shared/c++/views/HybridViewHolderComponent.cpp +72 -0
- package/nitrogen/generated/shared/c++/views/HybridViewHolderComponent.hpp +109 -0
- package/nitrogen/generated/shared/json/UiListViewConfig.json +9 -0
- package/nitrogen/generated/shared/json/ViewHolderConfig.json +9 -0
- package/package.json +152 -5
- package/react-native.config.js +16 -0
- package/src/ListDataSource.ts +232 -0
- package/src/ListLayout.ts +95 -0
- package/src/UiListModule.ts +5 -0
- package/src/hooks/useChangeEffect.ts +50 -0
- package/src/index.tsx +49 -0
- package/src/privateGlobals.ts +20 -0
- package/src/renderer/fabric/RenderHelper.ts +29 -0
- package/src/renderer/fabric/UiManagerHelper.ts +5 -0
- package/src/renderer/react/ReactFabricMirror.bundle.js +1984 -0
- package/src/renderer/react/ReactFabricMirror.ts +766 -0
- package/src/renderer/react/ReactFabricRenderer.ts +11 -0
- package/src/specs/IOSWorkletsModuleProxyHolder.nitro.ts +6 -0
- package/src/specs/NativeLinearListLayout.nitro.ts +23 -0
- package/src/specs/NativeListDataSource.nitro.ts +28 -0
- package/src/specs/NativeListLayout.nitro.ts +6 -0
- package/src/specs/UIListModule.nitro.ts +13 -0
- package/src/specs/UIManagerHelper.nitro.ts +34 -0
- package/src/specs/UiListView.nitro.ts +31 -0
- package/src/specs/ViewHolder.nitro.ts +11 -0
- package/src/views/List.tsx +525 -0
- package/src/views/UiListHostComponent.ts +8 -0
- package/FillRateHelper.js +0 -179
- package/FlatList.js +0 -494
- package/LICENSE.md +0 -31
- package/MetroListView.js +0 -166
- package/SectionList.js +0 -291
- package/ViewabilityHelper.js +0 -260
- package/VirtualizeUtils.js +0 -163
- package/VirtualizedList.js +0 -861
- package/VirtualizedSectionList.js +0 -397
- package/index.js +0 -5
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridNativeLinearListLayoutSpec.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <NitroModules/JHybridObject.hpp>
|
|
11
|
+
#include <fbjni/fbjni.h>
|
|
12
|
+
#include "HybridNativeLinearListLayoutSpec.hpp"
|
|
13
|
+
|
|
14
|
+
// Forward declaration of `JHybridNativeListLayoutSpec` to properly resolve imports.
|
|
15
|
+
namespace margelo::nitro::reactnativelist { class JHybridNativeListLayoutSpec; }
|
|
16
|
+
#include "JHybridNativeListLayoutSpec.hpp"
|
|
17
|
+
|
|
18
|
+
namespace margelo::nitro::reactnativelist {
|
|
19
|
+
|
|
20
|
+
using namespace facebook;
|
|
21
|
+
|
|
22
|
+
class JHybridNativeLinearListLayoutSpec: public virtual HybridNativeLinearListLayoutSpec, public virtual JHybridNativeListLayoutSpec {
|
|
23
|
+
public:
|
|
24
|
+
struct JavaPart: public jni::JavaClass<JavaPart, JHybridNativeListLayoutSpec::JavaPart> {
|
|
25
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/HybridNativeLinearListLayoutSpec;";
|
|
26
|
+
std::shared_ptr<JHybridNativeLinearListLayoutSpec> getJHybridNativeLinearListLayoutSpec();
|
|
27
|
+
};
|
|
28
|
+
struct CxxPart: public jni::HybridClass<CxxPart, JHybridNativeListLayoutSpec::CxxPart> {
|
|
29
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/HybridNativeLinearListLayoutSpec$CxxPart;";
|
|
30
|
+
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
|
|
31
|
+
static void registerNatives();
|
|
32
|
+
using HybridBase::HybridBase;
|
|
33
|
+
protected:
|
|
34
|
+
std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
public:
|
|
38
|
+
explicit JHybridNativeLinearListLayoutSpec(const jni::local_ref<JHybridNativeLinearListLayoutSpec::JavaPart>& javaPart):
|
|
39
|
+
HybridObject(HybridNativeLinearListLayoutSpec::TAG),
|
|
40
|
+
JHybridObject(javaPart),
|
|
41
|
+
JHybridNativeListLayoutSpec(javaPart),
|
|
42
|
+
_javaPart(jni::make_global(javaPart)) {}
|
|
43
|
+
~JHybridNativeLinearListLayoutSpec() override {
|
|
44
|
+
// Hermes GC can destroy JS objects on a non-JNI Thread.
|
|
45
|
+
jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
public:
|
|
49
|
+
inline const jni::global_ref<JHybridNativeLinearListLayoutSpec::JavaPart>& getJavaPart() const noexcept {
|
|
50
|
+
return _javaPart;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
public:
|
|
54
|
+
// Properties
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
public:
|
|
58
|
+
// Methods
|
|
59
|
+
void setConfig(const NativeLinearListLayoutConfig& config) override;
|
|
60
|
+
|
|
61
|
+
private:
|
|
62
|
+
jni::global_ref<JHybridNativeLinearListLayoutSpec::JavaPart> _javaPart;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JHybridNativeListDataSourceSpec.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "JHybridNativeListDataSourceSpec.hpp"
|
|
9
|
+
|
|
10
|
+
// Forward declaration of `NativeListItem` to properly resolve imports.
|
|
11
|
+
namespace margelo::nitro::reactnativelist { struct NativeListItem; }
|
|
12
|
+
|
|
13
|
+
#include "NativeListItem.hpp"
|
|
14
|
+
#include "JNativeListItem.hpp"
|
|
15
|
+
#include <string>
|
|
16
|
+
#include <optional>
|
|
17
|
+
#include <NitroModules/AnyMap.hpp>
|
|
18
|
+
#include <NitroModules/JAnyMap.hpp>
|
|
19
|
+
#include <functional>
|
|
20
|
+
#include "JFunc_bool_NativeListItem_NativeListItem.hpp"
|
|
21
|
+
#include <NitroModules/JNICallable.hpp>
|
|
22
|
+
#include <vector>
|
|
23
|
+
|
|
24
|
+
namespace margelo::nitro::reactnativelist {
|
|
25
|
+
|
|
26
|
+
std::shared_ptr<JHybridNativeListDataSourceSpec> JHybridNativeListDataSourceSpec::JavaPart::getJHybridNativeListDataSourceSpec() {
|
|
27
|
+
auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
|
|
28
|
+
auto castHybridObject = std::dynamic_pointer_cast<JHybridNativeListDataSourceSpec>(hybridObject);
|
|
29
|
+
if (castHybridObject == nullptr) [[unlikely]] {
|
|
30
|
+
throw std::runtime_error("Failed to downcast JHybridObject to JHybridNativeListDataSourceSpec!");
|
|
31
|
+
}
|
|
32
|
+
return castHybridObject;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
jni::local_ref<JHybridNativeListDataSourceSpec::CxxPart::jhybriddata> JHybridNativeListDataSourceSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
36
|
+
return makeCxxInstance(jThis);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
std::shared_ptr<JHybridObject> JHybridNativeListDataSourceSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
|
|
40
|
+
auto castJavaPart = jni::dynamic_ref_cast<JHybridNativeListDataSourceSpec::JavaPart>(javaPart);
|
|
41
|
+
if (castJavaPart == nullptr) [[unlikely]] {
|
|
42
|
+
throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridNativeListDataSourceSpec::JavaPart!");
|
|
43
|
+
}
|
|
44
|
+
return std::make_shared<JHybridNativeListDataSourceSpec>(castJavaPart);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
void JHybridNativeListDataSourceSpec::CxxPart::registerNatives() {
|
|
48
|
+
registerHybrid({
|
|
49
|
+
makeNativeMethod("initHybrid", JHybridNativeListDataSourceSpec::CxxPart::initHybrid),
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Properties
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
// Methods
|
|
57
|
+
void JHybridNativeListDataSourceSpec::setContentEqualCallback(const std::function<bool(const NativeListItem& /* oldItem */, const NativeListItem& /* newItem */)>& isContentEqual) {
|
|
58
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_bool_NativeListItem_NativeListItem::javaobject> /* isContentEqual */)>("setContentEqualCallback_cxx");
|
|
59
|
+
method(_javaPart, JFunc_bool_NativeListItem_NativeListItem_cxx::fromCpp(isContentEqual));
|
|
60
|
+
}
|
|
61
|
+
void JHybridNativeListDataSourceSpec::replaceData(const std::vector<NativeListItem>& items, bool animated) {
|
|
62
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JArrayClass<JNativeListItem>> /* items */, jboolean /* animated */)>("replaceData");
|
|
63
|
+
method(_javaPart, [&](auto&& __input) {
|
|
64
|
+
size_t __size = __input.size();
|
|
65
|
+
jni::local_ref<jni::JArrayClass<JNativeListItem>> __array = jni::JArrayClass<JNativeListItem>::newArray(__size);
|
|
66
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
67
|
+
const auto& __element = __input[__i];
|
|
68
|
+
auto __elementJni = JNativeListItem::fromCpp(__element);
|
|
69
|
+
__array->setElement(__i, *__elementJni);
|
|
70
|
+
}
|
|
71
|
+
return __array;
|
|
72
|
+
}(items), animated);
|
|
73
|
+
}
|
|
74
|
+
void JHybridNativeListDataSourceSpec::insertItem(double index, const NativeListItem& item) {
|
|
75
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(double /* index */, jni::alias_ref<JNativeListItem> /* item */)>("insertItem");
|
|
76
|
+
method(_javaPart, index, JNativeListItem::fromCpp(item));
|
|
77
|
+
}
|
|
78
|
+
void JHybridNativeListDataSourceSpec::updateItem(double index, const NativeListItem& item) {
|
|
79
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(double /* index */, jni::alias_ref<JNativeListItem> /* item */)>("updateItem");
|
|
80
|
+
method(_javaPart, index, JNativeListItem::fromCpp(item));
|
|
81
|
+
}
|
|
82
|
+
void JHybridNativeListDataSourceSpec::removeItem(double index) {
|
|
83
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(double /* index */)>("removeItem");
|
|
84
|
+
method(_javaPart, index);
|
|
85
|
+
}
|
|
86
|
+
void JHybridNativeListDataSourceSpec::moveItem(double fromIndex, double toIndex) {
|
|
87
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(double /* fromIndex */, double /* toIndex */)>("moveItem");
|
|
88
|
+
method(_javaPart, fromIndex, toIndex);
|
|
89
|
+
}
|
|
90
|
+
double JHybridNativeListDataSourceSpec::getCount() {
|
|
91
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<double()>("getCount");
|
|
92
|
+
auto __result = method(_javaPart);
|
|
93
|
+
return __result;
|
|
94
|
+
}
|
|
95
|
+
NativeListItem JHybridNativeListDataSourceSpec::getItem(double index) {
|
|
96
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JNativeListItem>(double /* index */)>("getItem");
|
|
97
|
+
auto __result = method(_javaPart, index);
|
|
98
|
+
return __result->toCpp();
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridNativeListDataSourceSpec.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <NitroModules/JHybridObject.hpp>
|
|
11
|
+
#include <fbjni/fbjni.h>
|
|
12
|
+
#include "HybridNativeListDataSourceSpec.hpp"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
namespace margelo::nitro::reactnativelist {
|
|
18
|
+
|
|
19
|
+
using namespace facebook;
|
|
20
|
+
|
|
21
|
+
class JHybridNativeListDataSourceSpec: public virtual HybridNativeListDataSourceSpec, public virtual JHybridObject {
|
|
22
|
+
public:
|
|
23
|
+
struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/HybridNativeListDataSourceSpec;";
|
|
25
|
+
std::shared_ptr<JHybridNativeListDataSourceSpec> getJHybridNativeListDataSourceSpec();
|
|
26
|
+
};
|
|
27
|
+
struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
|
|
28
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/HybridNativeListDataSourceSpec$CxxPart;";
|
|
29
|
+
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
|
|
30
|
+
static void registerNatives();
|
|
31
|
+
using HybridBase::HybridBase;
|
|
32
|
+
protected:
|
|
33
|
+
std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
public:
|
|
37
|
+
explicit JHybridNativeListDataSourceSpec(const jni::local_ref<JHybridNativeListDataSourceSpec::JavaPart>& javaPart):
|
|
38
|
+
HybridObject(HybridNativeListDataSourceSpec::TAG),
|
|
39
|
+
JHybridObject(javaPart),
|
|
40
|
+
_javaPart(jni::make_global(javaPart)) {}
|
|
41
|
+
~JHybridNativeListDataSourceSpec() override {
|
|
42
|
+
// Hermes GC can destroy JS objects on a non-JNI Thread.
|
|
43
|
+
jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
inline const jni::global_ref<JHybridNativeListDataSourceSpec::JavaPart>& getJavaPart() const noexcept {
|
|
48
|
+
return _javaPart;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public:
|
|
52
|
+
// Properties
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
public:
|
|
56
|
+
// Methods
|
|
57
|
+
void setContentEqualCallback(const std::function<bool(const NativeListItem& /* oldItem */, const NativeListItem& /* newItem */)>& isContentEqual) override;
|
|
58
|
+
void replaceData(const std::vector<NativeListItem>& items, bool animated) override;
|
|
59
|
+
void insertItem(double index, const NativeListItem& item) override;
|
|
60
|
+
void updateItem(double index, const NativeListItem& item) override;
|
|
61
|
+
void removeItem(double index) override;
|
|
62
|
+
void moveItem(double fromIndex, double toIndex) override;
|
|
63
|
+
double getCount() override;
|
|
64
|
+
NativeListItem getItem(double index) override;
|
|
65
|
+
|
|
66
|
+
private:
|
|
67
|
+
jni::global_ref<JHybridNativeListDataSourceSpec::JavaPart> _javaPart;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JHybridNativeListLayoutSpec.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "JHybridNativeListLayoutSpec.hpp"
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
namespace margelo::nitro::reactnativelist {
|
|
15
|
+
|
|
16
|
+
std::shared_ptr<JHybridNativeListLayoutSpec> JHybridNativeListLayoutSpec::JavaPart::getJHybridNativeListLayoutSpec() {
|
|
17
|
+
auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
|
|
18
|
+
auto castHybridObject = std::dynamic_pointer_cast<JHybridNativeListLayoutSpec>(hybridObject);
|
|
19
|
+
if (castHybridObject == nullptr) [[unlikely]] {
|
|
20
|
+
throw std::runtime_error("Failed to downcast JHybridObject to JHybridNativeListLayoutSpec!");
|
|
21
|
+
}
|
|
22
|
+
return castHybridObject;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
jni::local_ref<JHybridNativeListLayoutSpec::CxxPart::jhybriddata> JHybridNativeListLayoutSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
26
|
+
return makeCxxInstance(jThis);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
std::shared_ptr<JHybridObject> JHybridNativeListLayoutSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
|
|
30
|
+
auto castJavaPart = jni::dynamic_ref_cast<JHybridNativeListLayoutSpec::JavaPart>(javaPart);
|
|
31
|
+
if (castJavaPart == nullptr) [[unlikely]] {
|
|
32
|
+
throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridNativeListLayoutSpec::JavaPart!");
|
|
33
|
+
}
|
|
34
|
+
return std::make_shared<JHybridNativeListLayoutSpec>(castJavaPart);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
void JHybridNativeListLayoutSpec::CxxPart::registerNatives() {
|
|
38
|
+
registerHybrid({
|
|
39
|
+
makeNativeMethod("initHybrid", JHybridNativeListLayoutSpec::CxxPart::initHybrid),
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Properties
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
// Methods
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridNativeListLayoutSpec.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <NitroModules/JHybridObject.hpp>
|
|
11
|
+
#include <fbjni/fbjni.h>
|
|
12
|
+
#include "HybridNativeListLayoutSpec.hpp"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
namespace margelo::nitro::reactnativelist {
|
|
18
|
+
|
|
19
|
+
using namespace facebook;
|
|
20
|
+
|
|
21
|
+
class JHybridNativeListLayoutSpec: public virtual HybridNativeListLayoutSpec, public virtual JHybridObject {
|
|
22
|
+
public:
|
|
23
|
+
struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/HybridNativeListLayoutSpec;";
|
|
25
|
+
std::shared_ptr<JHybridNativeListLayoutSpec> getJHybridNativeListLayoutSpec();
|
|
26
|
+
};
|
|
27
|
+
struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
|
|
28
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/HybridNativeListLayoutSpec$CxxPart;";
|
|
29
|
+
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
|
|
30
|
+
static void registerNatives();
|
|
31
|
+
using HybridBase::HybridBase;
|
|
32
|
+
protected:
|
|
33
|
+
std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
public:
|
|
37
|
+
explicit JHybridNativeListLayoutSpec(const jni::local_ref<JHybridNativeListLayoutSpec::JavaPart>& javaPart):
|
|
38
|
+
HybridObject(HybridNativeListLayoutSpec::TAG),
|
|
39
|
+
JHybridObject(javaPart),
|
|
40
|
+
_javaPart(jni::make_global(javaPart)) {}
|
|
41
|
+
~JHybridNativeListLayoutSpec() override {
|
|
42
|
+
// Hermes GC can destroy JS objects on a non-JNI Thread.
|
|
43
|
+
jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
inline const jni::global_ref<JHybridNativeListLayoutSpec::JavaPart>& getJavaPart() const noexcept {
|
|
48
|
+
return _javaPart;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public:
|
|
52
|
+
// Properties
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
public:
|
|
56
|
+
// Methods
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
private:
|
|
60
|
+
jni::global_ref<JHybridNativeListLayoutSpec::JavaPart> _javaPart;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JHybridUiListModuleSpec.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "JHybridUiListModuleSpec.hpp"
|
|
9
|
+
|
|
10
|
+
// Forward declaration of `HybridIOSWorkletsModuleProxyHolderSpec` to properly resolve imports.
|
|
11
|
+
namespace margelo::nitro::reactnativelist { class HybridIOSWorkletsModuleProxyHolderSpec; }
|
|
12
|
+
|
|
13
|
+
#include <memory>
|
|
14
|
+
#include "HybridIOSWorkletsModuleProxyHolderSpec.hpp"
|
|
15
|
+
#include "JHybridIOSWorkletsModuleProxyHolderSpec.hpp"
|
|
16
|
+
#include <NitroModules/Null.hpp>
|
|
17
|
+
#include <variant>
|
|
18
|
+
#include <optional>
|
|
19
|
+
#include "JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec.hpp"
|
|
20
|
+
#include <NitroModules/JNull.hpp>
|
|
21
|
+
|
|
22
|
+
namespace margelo::nitro::reactnativelist {
|
|
23
|
+
|
|
24
|
+
std::shared_ptr<JHybridUiListModuleSpec> JHybridUiListModuleSpec::JavaPart::getJHybridUiListModuleSpec() {
|
|
25
|
+
auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
|
|
26
|
+
auto castHybridObject = std::dynamic_pointer_cast<JHybridUiListModuleSpec>(hybridObject);
|
|
27
|
+
if (castHybridObject == nullptr) [[unlikely]] {
|
|
28
|
+
throw std::runtime_error("Failed to downcast JHybridObject to JHybridUiListModuleSpec!");
|
|
29
|
+
}
|
|
30
|
+
return castHybridObject;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
jni::local_ref<JHybridUiListModuleSpec::CxxPart::jhybriddata> JHybridUiListModuleSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
34
|
+
return makeCxxInstance(jThis);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
std::shared_ptr<JHybridObject> JHybridUiListModuleSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
|
|
38
|
+
auto castJavaPart = jni::dynamic_ref_cast<JHybridUiListModuleSpec::JavaPart>(javaPart);
|
|
39
|
+
if (castJavaPart == nullptr) [[unlikely]] {
|
|
40
|
+
throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridUiListModuleSpec::JavaPart!");
|
|
41
|
+
}
|
|
42
|
+
return std::make_shared<JHybridUiListModuleSpec>(castJavaPart);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
void JHybridUiListModuleSpec::CxxPart::registerNatives() {
|
|
46
|
+
registerHybrid({
|
|
47
|
+
makeNativeMethod("initHybrid", JHybridUiListModuleSpec::CxxPart::initHybrid),
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Properties
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
// Methods
|
|
55
|
+
std::shared_ptr<HybridIOSWorkletsModuleProxyHolderSpec> JHybridUiListModuleSpec::iosGetWorkletsModule() {
|
|
56
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JHybridIOSWorkletsModuleProxyHolderSpec::JavaPart>()>("iosGetWorkletsModule");
|
|
57
|
+
auto __result = method(_javaPart);
|
|
58
|
+
return __result->getJHybridIOSWorkletsModuleProxyHolderSpec();
|
|
59
|
+
}
|
|
60
|
+
void JHybridUiListModuleSpec::setupRuntime(const std::optional<std::variant<nitro::NullType, std::shared_ptr<HybridIOSWorkletsModuleProxyHolderSpec>>>& workletsModuleHolder) {
|
|
61
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec> /* workletsModuleHolder */)>("setupRuntime");
|
|
62
|
+
method(_javaPart, workletsModuleHolder.has_value() ? JVariant_NullType_HybridIOSWorkletsModuleProxyHolderSpec::fromCpp(workletsModuleHolder.value()) : nullptr);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridUiListModuleSpec.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <NitroModules/JHybridObject.hpp>
|
|
11
|
+
#include <fbjni/fbjni.h>
|
|
12
|
+
#include "HybridUiListModuleSpec.hpp"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
namespace margelo::nitro::reactnativelist {
|
|
18
|
+
|
|
19
|
+
using namespace facebook;
|
|
20
|
+
|
|
21
|
+
class JHybridUiListModuleSpec: public virtual HybridUiListModuleSpec, public virtual JHybridObject {
|
|
22
|
+
public:
|
|
23
|
+
struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/HybridUiListModuleSpec;";
|
|
25
|
+
std::shared_ptr<JHybridUiListModuleSpec> getJHybridUiListModuleSpec();
|
|
26
|
+
};
|
|
27
|
+
struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
|
|
28
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/HybridUiListModuleSpec$CxxPart;";
|
|
29
|
+
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
|
|
30
|
+
static void registerNatives();
|
|
31
|
+
using HybridBase::HybridBase;
|
|
32
|
+
protected:
|
|
33
|
+
std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
public:
|
|
37
|
+
explicit JHybridUiListModuleSpec(const jni::local_ref<JHybridUiListModuleSpec::JavaPart>& javaPart):
|
|
38
|
+
HybridObject(HybridUiListModuleSpec::TAG),
|
|
39
|
+
JHybridObject(javaPart),
|
|
40
|
+
_javaPart(jni::make_global(javaPart)) {}
|
|
41
|
+
~JHybridUiListModuleSpec() override {
|
|
42
|
+
// Hermes GC can destroy JS objects on a non-JNI Thread.
|
|
43
|
+
jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
inline const jni::global_ref<JHybridUiListModuleSpec::JavaPart>& getJavaPart() const noexcept {
|
|
48
|
+
return _javaPart;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public:
|
|
52
|
+
// Properties
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
public:
|
|
56
|
+
// Methods
|
|
57
|
+
std::shared_ptr<HybridIOSWorkletsModuleProxyHolderSpec> iosGetWorkletsModule() override;
|
|
58
|
+
void setupRuntime(const std::optional<std::variant<nitro::NullType, std::shared_ptr<HybridIOSWorkletsModuleProxyHolderSpec>>>& workletsModuleHolder) override;
|
|
59
|
+
|
|
60
|
+
private:
|
|
61
|
+
jni::global_ref<JHybridUiListModuleSpec::JavaPart> _javaPart;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JHybridUiListViewSpec.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "JHybridUiListViewSpec.hpp"
|
|
9
|
+
|
|
10
|
+
// Forward declaration of `HybridUiListModuleSpec` to properly resolve imports.
|
|
11
|
+
namespace margelo::nitro::reactnativelist { class HybridUiListModuleSpec; }
|
|
12
|
+
// Forward declaration of `NativeListItem` to properly resolve imports.
|
|
13
|
+
namespace margelo::nitro::reactnativelist { struct NativeListItem; }
|
|
14
|
+
// Forward declaration of `HybridNativeListDataSourceSpec` to properly resolve imports.
|
|
15
|
+
namespace margelo::nitro::reactnativelist { class HybridNativeListDataSourceSpec; }
|
|
16
|
+
// Forward declaration of `HybridNativeListLayoutSpec` to properly resolve imports.
|
|
17
|
+
namespace margelo::nitro::reactnativelist { class HybridNativeListLayoutSpec; }
|
|
18
|
+
|
|
19
|
+
#include <memory>
|
|
20
|
+
#include "HybridUiListModuleSpec.hpp"
|
|
21
|
+
#include "JHybridUiListModuleSpec.hpp"
|
|
22
|
+
#include <string>
|
|
23
|
+
#include <functional>
|
|
24
|
+
#include "JFunc_double_std__string.hpp"
|
|
25
|
+
#include <NitroModules/JNICallable.hpp>
|
|
26
|
+
#include "NativeListItem.hpp"
|
|
27
|
+
#include "JFunc_bool_double_NativeListItem_double.hpp"
|
|
28
|
+
#include "JNativeListItem.hpp"
|
|
29
|
+
#include <optional>
|
|
30
|
+
#include <NitroModules/AnyMap.hpp>
|
|
31
|
+
#include <NitroModules/JAnyMap.hpp>
|
|
32
|
+
#include "HybridNativeListDataSourceSpec.hpp"
|
|
33
|
+
#include "JHybridNativeListDataSourceSpec.hpp"
|
|
34
|
+
#include "HybridNativeListLayoutSpec.hpp"
|
|
35
|
+
#include "JHybridNativeListLayoutSpec.hpp"
|
|
36
|
+
|
|
37
|
+
namespace margelo::nitro::reactnativelist {
|
|
38
|
+
|
|
39
|
+
std::shared_ptr<JHybridUiListViewSpec> JHybridUiListViewSpec::JavaPart::getJHybridUiListViewSpec() {
|
|
40
|
+
auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
|
|
41
|
+
auto castHybridObject = std::dynamic_pointer_cast<JHybridUiListViewSpec>(hybridObject);
|
|
42
|
+
if (castHybridObject == nullptr) [[unlikely]] {
|
|
43
|
+
throw std::runtime_error("Failed to downcast JHybridObject to JHybridUiListViewSpec!");
|
|
44
|
+
}
|
|
45
|
+
return castHybridObject;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
jni::local_ref<JHybridUiListViewSpec::CxxPart::jhybriddata> JHybridUiListViewSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
49
|
+
return makeCxxInstance(jThis);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
std::shared_ptr<JHybridObject> JHybridUiListViewSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
|
|
53
|
+
auto castJavaPart = jni::dynamic_ref_cast<JHybridUiListViewSpec::JavaPart>(javaPart);
|
|
54
|
+
if (castJavaPart == nullptr) [[unlikely]] {
|
|
55
|
+
throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridUiListViewSpec::JavaPart!");
|
|
56
|
+
}
|
|
57
|
+
return std::make_shared<JHybridUiListViewSpec>(castJavaPart);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
void JHybridUiListViewSpec::CxxPart::registerNatives() {
|
|
61
|
+
registerHybrid({
|
|
62
|
+
makeNativeMethod("initHybrid", JHybridUiListViewSpec::CxxPart::initHybrid),
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Properties
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
// Methods
|
|
70
|
+
void JHybridUiListViewSpec::setListCallbacks(const std::shared_ptr<HybridUiListModuleSpec>& uiListModule, const std::function<double(const std::string& /* type */)>& createView, const std::function<bool(double /* reactTag */, const NativeListItem& /* item */, double /* index */)>& updateView) {
|
|
71
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JHybridUiListModuleSpec::JavaPart> /* uiListModule */, jni::alias_ref<JFunc_double_std__string::javaobject> /* createView */, jni::alias_ref<JFunc_bool_double_NativeListItem_double::javaobject> /* updateView */)>("setListCallbacks_cxx");
|
|
72
|
+
method(_javaPart, std::dynamic_pointer_cast<JHybridUiListModuleSpec>(uiListModule)->getJavaPart(), JFunc_double_std__string_cxx::fromCpp(createView), JFunc_bool_double_NativeListItem_double_cxx::fromCpp(updateView));
|
|
73
|
+
}
|
|
74
|
+
void JHybridUiListViewSpec::setDataSource(const std::shared_ptr<HybridNativeListDataSourceSpec>& dataSource) {
|
|
75
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JHybridNativeListDataSourceSpec::JavaPart> /* dataSource */)>("setDataSource");
|
|
76
|
+
method(_javaPart, std::dynamic_pointer_cast<JHybridNativeListDataSourceSpec>(dataSource)->getJavaPart());
|
|
77
|
+
}
|
|
78
|
+
void JHybridUiListViewSpec::setLayout(const std::shared_ptr<HybridNativeListLayoutSpec>& layout) {
|
|
79
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JHybridNativeListLayoutSpec::JavaPart> /* layout */)>("setLayout");
|
|
80
|
+
method(_javaPart, std::dynamic_pointer_cast<JHybridNativeListLayoutSpec>(layout)->getJavaPart());
|
|
81
|
+
}
|
|
82
|
+
double JHybridUiListViewSpec::getSurfaceId() {
|
|
83
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<double()>("getSurfaceId");
|
|
84
|
+
auto __result = method(_javaPart);
|
|
85
|
+
return __result;
|
|
86
|
+
}
|
|
87
|
+
void JHybridUiListViewSpec::disposeRendererSurface() {
|
|
88
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("disposeRendererSurface");
|
|
89
|
+
method(_javaPart);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
} // namespace margelo::nitro::reactnativelist
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridUiListViewSpec.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <NitroModules/JHybridObject.hpp>
|
|
11
|
+
#include <fbjni/fbjni.h>
|
|
12
|
+
#include "HybridUiListViewSpec.hpp"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
namespace margelo::nitro::reactnativelist {
|
|
18
|
+
|
|
19
|
+
using namespace facebook;
|
|
20
|
+
|
|
21
|
+
class JHybridUiListViewSpec: public virtual HybridUiListViewSpec, public virtual JHybridObject {
|
|
22
|
+
public:
|
|
23
|
+
struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/HybridUiListViewSpec;";
|
|
25
|
+
std::shared_ptr<JHybridUiListViewSpec> getJHybridUiListViewSpec();
|
|
26
|
+
};
|
|
27
|
+
struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
|
|
28
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativelist/HybridUiListViewSpec$CxxPart;";
|
|
29
|
+
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
|
|
30
|
+
static void registerNatives();
|
|
31
|
+
using HybridBase::HybridBase;
|
|
32
|
+
protected:
|
|
33
|
+
std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
public:
|
|
37
|
+
explicit JHybridUiListViewSpec(const jni::local_ref<JHybridUiListViewSpec::JavaPart>& javaPart):
|
|
38
|
+
HybridObject(HybridUiListViewSpec::TAG),
|
|
39
|
+
JHybridObject(javaPart),
|
|
40
|
+
_javaPart(jni::make_global(javaPart)) {}
|
|
41
|
+
~JHybridUiListViewSpec() override {
|
|
42
|
+
// Hermes GC can destroy JS objects on a non-JNI Thread.
|
|
43
|
+
jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
inline const jni::global_ref<JHybridUiListViewSpec::JavaPart>& getJavaPart() const noexcept {
|
|
48
|
+
return _javaPart;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public:
|
|
52
|
+
// Properties
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
public:
|
|
56
|
+
// Methods
|
|
57
|
+
void setListCallbacks(const std::shared_ptr<HybridUiListModuleSpec>& uiListModule, const std::function<double(const std::string& /* type */)>& createView, const std::function<bool(double /* reactTag */, const NativeListItem& /* item */, double /* index */)>& updateView) override;
|
|
58
|
+
void setDataSource(const std::shared_ptr<HybridNativeListDataSourceSpec>& dataSource) override;
|
|
59
|
+
void setLayout(const std::shared_ptr<HybridNativeListLayoutSpec>& layout) override;
|
|
60
|
+
double getSurfaceId() override;
|
|
61
|
+
void disposeRendererSurface() override;
|
|
62
|
+
|
|
63
|
+
private:
|
|
64
|
+
jni::global_ref<JHybridUiListViewSpec::JavaPart> _javaPart;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
} // namespace margelo::nitro::reactnativelist
|