teads-react-native 6.0.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.
Files changed (175) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +93 -0
  3. package/android/bin/build/generated/source/buildConfig/debug/com/outbrainreactnative/BuildConfig.class +0 -0
  4. package/android/bin/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +7 -0
  5. package/android/bin/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json +18 -0
  6. package/android/bin/build/intermediates/aar_metadata/debug/aar-metadata.properties +6 -0
  7. package/android/bin/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +1 -0
  8. package/android/bin/build/intermediates/compile_library_classes_jar/debug/classes.jar +0 -0
  9. package/android/bin/build/intermediates/compile_r_class_jar/debug/R.jar +0 -0
  10. package/android/bin/build/intermediates/compile_symbol_list/debug/R.txt +0 -0
  11. package/android/bin/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
  12. package/android/bin/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  13. package/android/bin/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  14. package/android/bin/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  15. package/android/bin/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  16. package/android/bin/build/intermediates/local_only_symbol_list/debug/R-def.txt +2 -0
  17. package/android/bin/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +7 -0
  18. package/android/bin/build/intermediates/merged_manifest/debug/AndroidManifest.xml +7 -0
  19. package/android/bin/build/intermediates/navigation_json/debug/navigation.json +1 -0
  20. package/android/bin/build/intermediates/runtime_library_classes_jar/debug/classes.jar +0 -0
  21. package/android/bin/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +1 -0
  22. package/android/bin/build/outputs/logs/manifest-merger-debug-report.txt +16 -0
  23. package/android/bin/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  24. package/android/bin/build.gradle +101 -0
  25. package/android/bin/gradle/wrapper/gradle-wrapper.jar +0 -0
  26. package/android/bin/gradle/wrapper/gradle-wrapper.properties +7 -0
  27. package/android/bin/gradle.properties +5 -0
  28. package/android/bin/gradlew +249 -0
  29. package/android/bin/gradlew.bat +92 -0
  30. package/android/bin/src/main/AndroidManifest.xml +3 -0
  31. package/android/bin/src/main/AndroidManifestNew.xml +2 -0
  32. package/android/bin/src/main/java/com/outbrainreactnative/OutbrainNativePackage.class +0 -0
  33. package/android/bin/src/main/java/com/outbrainreactnative/SFWebViewWidgetManager.class +0 -0
  34. package/android/bin/src/main/java/com/outbrainreactnative/SFWebViewWidgetWrapper.class +0 -0
  35. package/android/bin/src/main/java/com/outbrainreactnative/Utils.class +0 -0
  36. package/android/build.gradle +129 -0
  37. package/android/generated/java/com/facebook/react/viewmanagers/TeadsAdPlacementFeedManagerDelegate.java +62 -0
  38. package/android/generated/java/com/facebook/react/viewmanagers/TeadsAdPlacementFeedManagerInterface.java +28 -0
  39. package/android/generated/java/com/facebook/react/viewmanagers/TeadsAdPlacementMediaManagerDelegate.java +44 -0
  40. package/android/generated/java/com/facebook/react/viewmanagers/TeadsAdPlacementMediaManagerInterface.java +22 -0
  41. package/android/generated/jni/CMakeLists.txt +36 -0
  42. package/android/generated/jni/RNTeadsReactNativeViewSpec-generated.cpp +22 -0
  43. package/android/generated/jni/RNTeadsReactNativeViewSpec.h +24 -0
  44. package/android/generated/jni/react/renderer/components/RNTeadsReactNativeViewSpec/ComponentDescriptors.cpp +23 -0
  45. package/android/generated/jni/react/renderer/components/RNTeadsReactNativeViewSpec/ComponentDescriptors.h +25 -0
  46. package/android/generated/jni/react/renderer/components/RNTeadsReactNativeViewSpec/EventEmitters.cpp +17 -0
  47. package/android/generated/jni/react/renderer/components/RNTeadsReactNativeViewSpec/EventEmitters.h +30 -0
  48. package/android/generated/jni/react/renderer/components/RNTeadsReactNativeViewSpec/Props.cpp +46 -0
  49. package/android/generated/jni/react/renderer/components/RNTeadsReactNativeViewSpec/Props.h +51 -0
  50. package/android/generated/jni/react/renderer/components/RNTeadsReactNativeViewSpec/RNTeadsReactNativeViewSpecJSI-generated.cpp +17 -0
  51. package/android/generated/jni/react/renderer/components/RNTeadsReactNativeViewSpec/RNTeadsReactNativeViewSpecJSI.h +19 -0
  52. package/android/generated/jni/react/renderer/components/RNTeadsReactNativeViewSpec/ShadowNodes.cpp +18 -0
  53. package/android/generated/jni/react/renderer/components/RNTeadsReactNativeViewSpec/ShadowNodes.h +43 -0
  54. package/android/generated/jni/react/renderer/components/RNTeadsReactNativeViewSpec/States.cpp +16 -0
  55. package/android/generated/jni/react/renderer/components/RNTeadsReactNativeViewSpec/States.h +41 -0
  56. package/android/gradle.properties +5 -0
  57. package/android/src/main/AndroidManifest.xml +3 -0
  58. package/android/src/main/AndroidManifestNew.xml +2 -0
  59. package/android/src/main/java/tv/teads/reactnative/SFWidgetContainer.java +19 -0
  60. package/android/src/main/java/tv/teads/reactnative/TeadsAdPlacementFeedManager.java +109 -0
  61. package/android/src/main/java/tv/teads/reactnative/TeadsFeedPackage.java +53 -0
  62. package/android/src/main/java/tv/teads/reactnative/TeadsMediaPlacementManager.java +76 -0
  63. package/android/src/main/java/tv/teads/reactnative/TeadsPlacementContainer.java +327 -0
  64. package/android/src/main/java/tv/teads/reactnative/Utils.java +65 -0
  65. package/ios/RCTTeadsAdPlacementFeed.h +22 -0
  66. package/ios/RCTTeadsAdPlacementFeed.mm +114 -0
  67. package/ios/RCTTeadsAdPlacementMedia.h +23 -0
  68. package/ios/RCTTeadsAdPlacementMedia.mm +91 -0
  69. package/ios/TeadsAdContainer.swift +212 -0
  70. package/ios/TeadsEventModule.h +16 -0
  71. package/ios/TeadsEventModule.mm +52 -0
  72. package/ios/TeadsReactNative.h +8 -0
  73. package/ios/generated/RNTeadsReactNativeViewSpec/ComponentDescriptors.cpp +23 -0
  74. package/ios/generated/RNTeadsReactNativeViewSpec/ComponentDescriptors.h +25 -0
  75. package/ios/generated/RNTeadsReactNativeViewSpec/EventEmitters.cpp +17 -0
  76. package/ios/generated/RNTeadsReactNativeViewSpec/EventEmitters.h +30 -0
  77. package/ios/generated/RNTeadsReactNativeViewSpec/Props.cpp +46 -0
  78. package/ios/generated/RNTeadsReactNativeViewSpec/Props.h +51 -0
  79. package/ios/generated/RNTeadsReactNativeViewSpec/RCTComponentViewHelpers.h +24 -0
  80. package/ios/generated/RNTeadsReactNativeViewSpec/RNTeadsReactNativeViewSpec-generated.mm +16 -0
  81. package/ios/generated/RNTeadsReactNativeViewSpec/RNTeadsReactNativeViewSpec.h +38 -0
  82. package/ios/generated/RNTeadsReactNativeViewSpec/ShadowNodes.cpp +18 -0
  83. package/ios/generated/RNTeadsReactNativeViewSpec/ShadowNodes.h +43 -0
  84. package/ios/generated/RNTeadsReactNativeViewSpec/States.cpp +16 -0
  85. package/ios/generated/RNTeadsReactNativeViewSpec/States.h +41 -0
  86. package/ios/generated/RNTeadsReactNativeViewSpecJSI-generated.cpp +17 -0
  87. package/ios/generated/RNTeadsReactNativeViewSpecJSI.h +19 -0
  88. package/lib/commonjs/DefaultTeadsWidgetHandler.js +21 -0
  89. package/lib/commonjs/DefaultTeadsWidgetHandler.js.map +1 -0
  90. package/lib/commonjs/TeadsAdPlacementFeed.js +131 -0
  91. package/lib/commonjs/TeadsAdPlacementFeed.js.map +1 -0
  92. package/lib/commonjs/TeadsAdPlacementMedia.js +115 -0
  93. package/lib/commonjs/TeadsAdPlacementMedia.js.map +1 -0
  94. package/lib/commonjs/TeadsInAppBrowser.js +48 -0
  95. package/lib/commonjs/TeadsInAppBrowser.js.map +1 -0
  96. package/lib/commonjs/TeadsMediaNativeComponent.ts +15 -0
  97. package/lib/commonjs/WebViewNativeComponent.ts +21 -0
  98. package/lib/commonjs/constants.js +9 -0
  99. package/lib/commonjs/constants.js.map +1 -0
  100. package/lib/commonjs/index.js +20 -0
  101. package/lib/commonjs/index.js.map +1 -0
  102. package/lib/commonjs/package.json +1 -0
  103. package/lib/commonjs/types.d.js +2 -0
  104. package/lib/commonjs/types.d.js.map +1 -0
  105. package/lib/commonjs/version.js +8 -0
  106. package/lib/commonjs/version.js.map +1 -0
  107. package/lib/module/DefaultTeadsWidgetHandler.js +17 -0
  108. package/lib/module/DefaultTeadsWidgetHandler.js.map +1 -0
  109. package/lib/module/TeadsAdPlacementFeed.js +126 -0
  110. package/lib/module/TeadsAdPlacementFeed.js.map +1 -0
  111. package/lib/module/TeadsAdPlacementMedia.js +110 -0
  112. package/lib/module/TeadsAdPlacementMedia.js.map +1 -0
  113. package/lib/module/TeadsInAppBrowser.js +44 -0
  114. package/lib/module/TeadsInAppBrowser.js.map +1 -0
  115. package/lib/module/TeadsMediaNativeComponent.ts +15 -0
  116. package/lib/module/WebViewNativeComponent.ts +21 -0
  117. package/lib/module/constants.js +5 -0
  118. package/lib/module/constants.js.map +1 -0
  119. package/lib/module/index.js +5 -0
  120. package/lib/module/index.js.map +1 -0
  121. package/lib/module/package.json +1 -0
  122. package/lib/module/types.d.js +2 -0
  123. package/lib/module/types.d.js.map +1 -0
  124. package/lib/module/version.js +4 -0
  125. package/lib/module/version.js.map +1 -0
  126. package/lib/typescript/commonjs/package.json +1 -0
  127. package/lib/typescript/commonjs/src/DefaultTeadsWidgetHandler.d.ts +4 -0
  128. package/lib/typescript/commonjs/src/DefaultTeadsWidgetHandler.d.ts.map +1 -0
  129. package/lib/typescript/commonjs/src/TeadsAdPlacementFeed.d.ts +3 -0
  130. package/lib/typescript/commonjs/src/TeadsAdPlacementFeed.d.ts.map +1 -0
  131. package/lib/typescript/commonjs/src/TeadsAdPlacementMedia.d.ts +3 -0
  132. package/lib/typescript/commonjs/src/TeadsAdPlacementMedia.d.ts.map +1 -0
  133. package/lib/typescript/commonjs/src/TeadsInAppBrowser.d.ts +4 -0
  134. package/lib/typescript/commonjs/src/TeadsInAppBrowser.d.ts.map +1 -0
  135. package/lib/typescript/commonjs/src/TeadsMediaNativeComponent.d.ts +12 -0
  136. package/lib/typescript/commonjs/src/TeadsMediaNativeComponent.d.ts.map +1 -0
  137. package/lib/typescript/commonjs/src/WebViewNativeComponent.d.ts +18 -0
  138. package/lib/typescript/commonjs/src/WebViewNativeComponent.d.ts.map +1 -0
  139. package/lib/typescript/commonjs/src/constants.d.ts +3 -0
  140. package/lib/typescript/commonjs/src/constants.d.ts.map +1 -0
  141. package/lib/typescript/commonjs/src/index.d.ts +4 -0
  142. package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
  143. package/lib/typescript/commonjs/src/version.d.ts +2 -0
  144. package/lib/typescript/commonjs/src/version.d.ts.map +1 -0
  145. package/lib/typescript/module/package.json +1 -0
  146. package/lib/typescript/module/src/DefaultTeadsWidgetHandler.d.ts +4 -0
  147. package/lib/typescript/module/src/DefaultTeadsWidgetHandler.d.ts.map +1 -0
  148. package/lib/typescript/module/src/TeadsAdPlacementFeed.d.ts +3 -0
  149. package/lib/typescript/module/src/TeadsAdPlacementFeed.d.ts.map +1 -0
  150. package/lib/typescript/module/src/TeadsAdPlacementMedia.d.ts +3 -0
  151. package/lib/typescript/module/src/TeadsAdPlacementMedia.d.ts.map +1 -0
  152. package/lib/typescript/module/src/TeadsInAppBrowser.d.ts +4 -0
  153. package/lib/typescript/module/src/TeadsInAppBrowser.d.ts.map +1 -0
  154. package/lib/typescript/module/src/TeadsMediaNativeComponent.d.ts +12 -0
  155. package/lib/typescript/module/src/TeadsMediaNativeComponent.d.ts.map +1 -0
  156. package/lib/typescript/module/src/WebViewNativeComponent.d.ts +18 -0
  157. package/lib/typescript/module/src/WebViewNativeComponent.d.ts.map +1 -0
  158. package/lib/typescript/module/src/constants.d.ts +3 -0
  159. package/lib/typescript/module/src/constants.d.ts.map +1 -0
  160. package/lib/typescript/module/src/index.d.ts +4 -0
  161. package/lib/typescript/module/src/index.d.ts.map +1 -0
  162. package/lib/typescript/module/src/version.d.ts +2 -0
  163. package/lib/typescript/module/src/version.d.ts.map +1 -0
  164. package/package.json +227 -0
  165. package/src/DefaultTeadsWidgetHandler.ts +17 -0
  166. package/src/TeadsAdPlacementFeed.tsx +142 -0
  167. package/src/TeadsAdPlacementMedia.tsx +127 -0
  168. package/src/TeadsInAppBrowser.ts +42 -0
  169. package/src/TeadsMediaNativeComponent.ts +15 -0
  170. package/src/WebViewNativeComponent.ts +21 -0
  171. package/src/constants.ts +11 -0
  172. package/src/index.tsx +9 -0
  173. package/src/types.d.ts +32 -0
  174. package/src/version.ts +1 -0
  175. package/teads-react-native.podspec +42 -0
@@ -0,0 +1,17 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GenerateModuleCpp.js
8
+ */
9
+
10
+ #include "RNTeadsReactNativeViewSpecJSI.h"
11
+
12
+ namespace facebook::react {
13
+
14
+
15
+
16
+
17
+ } // namespace facebook::react
@@ -0,0 +1,19 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GenerateModuleH.js
8
+ */
9
+
10
+ #pragma once
11
+
12
+ #include <ReactCommon/TurboModule.h>
13
+ #include <react/bridging/Bridging.h>
14
+
15
+ namespace facebook::react {
16
+
17
+
18
+
19
+ } // namespace facebook::react
@@ -0,0 +1,18 @@
1
+
2
+ /**
3
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
+ *
5
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
6
+ * once the code is regenerated.
7
+ *
8
+ * @generated by codegen project: GenerateShadowNodeCpp.js
9
+ */
10
+
11
+ #include "ShadowNodes.h"
12
+
13
+ namespace facebook::react {
14
+
15
+ extern const char TeadsAdPlacementMediaComponentName[] = "TeadsAdPlacementMedia";
16
+ extern const char TeadsAdPlacementFeedComponentName[] = "TeadsAdPlacementFeed";
17
+
18
+ } // namespace facebook::react
@@ -0,0 +1,43 @@
1
+
2
+ /**
3
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
+ *
5
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
6
+ * once the code is regenerated.
7
+ *
8
+ * @generated by codegen project: GenerateShadowNodeH.js
9
+ */
10
+
11
+ #pragma once
12
+
13
+ #include "EventEmitters.h"
14
+ #include "Props.h"
15
+ #include "States.h"
16
+ #include <react/renderer/components/view/ConcreteViewShadowNode.h>
17
+ #include <jsi/jsi.h>
18
+
19
+ namespace facebook::react {
20
+
21
+ JSI_EXPORT extern const char TeadsAdPlacementMediaComponentName[];
22
+
23
+ /*
24
+ * `ShadowNode` for <TeadsAdPlacementMedia> component.
25
+ */
26
+ using TeadsAdPlacementMediaShadowNode = ConcreteViewShadowNode<
27
+ TeadsAdPlacementMediaComponentName,
28
+ TeadsAdPlacementMediaProps,
29
+ TeadsAdPlacementMediaEventEmitter,
30
+ TeadsAdPlacementMediaState>;
31
+
32
+ JSI_EXPORT extern const char TeadsAdPlacementFeedComponentName[];
33
+
34
+ /*
35
+ * `ShadowNode` for <TeadsAdPlacementFeed> component.
36
+ */
37
+ using TeadsAdPlacementFeedShadowNode = ConcreteViewShadowNode<
38
+ TeadsAdPlacementFeedComponentName,
39
+ TeadsAdPlacementFeedProps,
40
+ TeadsAdPlacementFeedEventEmitter,
41
+ TeadsAdPlacementFeedState>;
42
+
43
+ } // namespace facebook::react
@@ -0,0 +1,16 @@
1
+
2
+ /**
3
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
+ *
5
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
6
+ * once the code is regenerated.
7
+ *
8
+ * @generated by codegen project: GenerateStateCpp.js
9
+ */
10
+ #include "States.h"
11
+
12
+ namespace facebook::react {
13
+
14
+
15
+
16
+ } // namespace facebook::react
@@ -0,0 +1,41 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GenerateStateH.js
8
+ */
9
+ #pragma once
10
+
11
+ #ifdef ANDROID
12
+ #include <folly/dynamic.h>
13
+ #endif
14
+
15
+ namespace facebook::react {
16
+
17
+ class TeadsAdPlacementMediaState {
18
+ public:
19
+ TeadsAdPlacementMediaState() = default;
20
+
21
+ #ifdef ANDROID
22
+ TeadsAdPlacementMediaState(TeadsAdPlacementMediaState const &previousState, folly::dynamic data){};
23
+ folly::dynamic getDynamic() const {
24
+ return {};
25
+ };
26
+ #endif
27
+ };
28
+
29
+ class TeadsAdPlacementFeedState {
30
+ public:
31
+ TeadsAdPlacementFeedState() = default;
32
+
33
+ #ifdef ANDROID
34
+ TeadsAdPlacementFeedState(TeadsAdPlacementFeedState const &previousState, folly::dynamic data){};
35
+ folly::dynamic getDynamic() const {
36
+ return {};
37
+ };
38
+ #endif
39
+ };
40
+
41
+ } // namespace facebook::react
@@ -0,0 +1,5 @@
1
+ TeadsReactNative_kotlinVersion=2.0.21
2
+ TeadsReactNative_minSdkVersion=24
3
+ TeadsReactNative_targetSdkVersion=35
4
+ TeadsReactNative_compileSdkVersion=35
5
+ TeadsReactNative_ndkversion=27.1.12297006
@@ -0,0 +1,3 @@
1
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
2
+ package="tv.teads.reactnative">
3
+ </manifest>
@@ -0,0 +1,2 @@
1
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android">
2
+ </manifest>
@@ -0,0 +1,19 @@
1
+ package tv.teads.reactnative;
2
+
3
+ import android.annotation.SuppressLint;
4
+ import com.facebook.react.bridge.ReactContext;
5
+
6
+ /**
7
+ * Internal alias for TeadsPlacementContainer to maintain backward compatibility with the SDK.
8
+ * The SDK's visibility handler looks for a class named "SFWidgetContainer" to properly
9
+ * calculate visibility in React Native's view hierarchy.
10
+ *
11
+ * This class is package-private (not part of public API) and will be removed
12
+ * once the SDK is updated to recognize TeadsPlacementContainer directly.
13
+ */
14
+ @SuppressLint("ViewConstructor")
15
+ class SFWidgetContainer extends TeadsPlacementContainer {
16
+ SFWidgetContainer(ReactContext context) {
17
+ super(context);
18
+ }
19
+ }
@@ -0,0 +1,109 @@
1
+ package tv.teads.reactnative;
2
+
3
+ import android.util.Log;
4
+
5
+ import com.facebook.react.module.annotations.ReactModule;
6
+ import com.facebook.react.uimanager.SimpleViewManager;
7
+ import com.facebook.react.uimanager.ThemedReactContext;
8
+ import com.facebook.react.uimanager.ViewManagerDelegate;
9
+
10
+ // Codegen generated files matching the spec given component
11
+ import com.facebook.react.viewmanagers.TeadsAdPlacementFeedManagerInterface;
12
+ import com.facebook.react.viewmanagers.TeadsAdPlacementFeedManagerDelegate;
13
+
14
+ @ReactModule(name = TeadsAdPlacementFeedManager.REACT_CLASS)
15
+ public class TeadsAdPlacementFeedManager extends SimpleViewManager<TeadsPlacementContainer> implements TeadsAdPlacementFeedManagerInterface<TeadsPlacementContainer> {
16
+ // Codegen component name
17
+ public static final String REACT_CLASS = "TeadsAdPlacementFeed";
18
+ // uses the Codegen generated delegate
19
+ private final TeadsAdPlacementFeedManagerDelegate<TeadsPlacementContainer, TeadsAdPlacementFeedManager> delegate =
20
+ new TeadsAdPlacementFeedManagerDelegate<>(this);
21
+
22
+ @Override
23
+ public ViewManagerDelegate<TeadsPlacementContainer> getDelegate() {
24
+ return delegate;
25
+ }
26
+
27
+ @Override
28
+ public String getName() {
29
+ return REACT_CLASS;
30
+ }
31
+
32
+ @Override
33
+ public TeadsPlacementContainer createViewInstance(ThemedReactContext context) {
34
+ // Use SFWidgetContainer (extends TeadsPlacementContainer) so SDK's visibility handler can find it by class name
35
+ return new SFWidgetContainer(context);
36
+ }
37
+
38
+ // ViewManager needs to define how all the React's components props will update the native view
39
+ @Override
40
+ public void setWidgetId(TeadsPlacementContainer view, String value) {
41
+ view.getInitParams().putString("widgetId", value);
42
+ }
43
+
44
+ @Override
45
+ public void setWidgetRandomId(TeadsPlacementContainer view, int value) {
46
+ view.getInitParams().putInt("widgetRandomId", value);
47
+ }
48
+
49
+ @Override
50
+ public void setWidgetIndex(TeadsPlacementContainer view, int value) {
51
+ view.getInitParams().putInt("widgetIndex", value);
52
+ }
53
+
54
+ @Override
55
+ public void setUrl(TeadsPlacementContainer view, String value) {
56
+ view.getInitParams().putString("articleUrl", value);
57
+ }
58
+
59
+ @Override
60
+ public void setInstallationKey(TeadsPlacementContainer view, String value) {
61
+ view.getInitParams().putString("partnerKey", value);
62
+ }
63
+
64
+ @Override
65
+ public void setPackageVersion(TeadsPlacementContainer view, String value) {
66
+ view.getInitParams().putString("packageVersion", value);
67
+ }
68
+
69
+ @Override
70
+ public void setDarkMode(TeadsPlacementContainer view, boolean value) {
71
+ view.getInitParams().putBoolean("darkMode", value);
72
+ view.toggleDarkMode(value);
73
+ }
74
+
75
+ @Override
76
+ public void setExtId(TeadsPlacementContainer view, String value) {
77
+ view.getInitParams().putString("extId", value);
78
+ }
79
+
80
+ @Override
81
+ public void setExtSecondaryId(TeadsPlacementContainer view, String value) {
82
+ view.getInitParams().putString("extSecondaryId", value);
83
+ }
84
+
85
+ @Override
86
+ public void setPubImpId(TeadsPlacementContainer view, String value) {
87
+ view.getInitParams().putString("pubImpId", value);
88
+ }
89
+
90
+ // If userId is required in native:
91
+ @Override
92
+ public void setUserId(TeadsPlacementContainer view, String value) {
93
+ view.getInitParams().putString("userId", value);
94
+ }
95
+
96
+ @Override
97
+ public void onAfterUpdateTransaction(TeadsPlacementContainer view) {
98
+ super.onAfterUpdateTransaction(view);
99
+ view.initialize(view.getInitParams());
100
+ }
101
+
102
+ @Override
103
+ public void onDropViewInstance(TeadsPlacementContainer view) {
104
+ Log.d("TeadsAdPlacementFeedManager", "onDropViewInstance called");
105
+ view.cleanup();
106
+ super.onDropViewInstance(view);
107
+ }
108
+ }
109
+
@@ -0,0 +1,53 @@
1
+ package tv.teads.reactnative;
2
+
3
+ import com.facebook.react.BaseReactPackage;
4
+ import com.facebook.react.bridge.NativeModule;
5
+ import com.facebook.react.bridge.ReactApplicationContext;
6
+ import com.facebook.react.module.model.ReactModuleInfo;
7
+ import com.facebook.react.module.model.ReactModuleInfoProvider;
8
+ import com.facebook.react.uimanager.ViewManager;
9
+
10
+ import java.util.Arrays;
11
+ import java.util.Collections;
12
+ import java.util.HashMap;
13
+ import java.util.List;
14
+ import java.util.Map;
15
+
16
+ public class TeadsFeedPackage extends BaseReactPackage {
17
+
18
+ @Override
19
+ public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
20
+ return Arrays.asList(
21
+ new TeadsAdPlacementFeedManager(),
22
+ new TeadsMediaPlacementManager()
23
+ );
24
+ }
25
+
26
+ @Override
27
+ public NativeModule getModule(String s, ReactApplicationContext reactApplicationContext) {
28
+ if (TeadsAdPlacementFeedManager.REACT_CLASS.equals(s)) {
29
+ return new TeadsAdPlacementFeedManager();
30
+ }
31
+ return null;
32
+ }
33
+
34
+ @Override
35
+ public ReactModuleInfoProvider getReactModuleInfoProvider() {
36
+ return new ReactModuleInfoProvider() {
37
+ @Override
38
+ public Map<String, ReactModuleInfo> getReactModuleInfos() {
39
+ Map<String, ReactModuleInfo> map = new HashMap<>();
40
+ map.put(TeadsAdPlacementFeedManager.REACT_CLASS, new ReactModuleInfo(
41
+ TeadsAdPlacementFeedManager.REACT_CLASS, // name
42
+ TeadsAdPlacementFeedManager.REACT_CLASS, // className
43
+ false, // canOverrideExistingModule
44
+ false, // needsEagerInit
45
+ false, // isCxxModule
46
+ true // isTurboModule
47
+ ));
48
+ return map;
49
+ }
50
+ };
51
+ }
52
+ }
53
+
@@ -0,0 +1,76 @@
1
+ package tv.teads.reactnative;
2
+
3
+ import android.util.Log;
4
+
5
+ import com.facebook.react.module.annotations.ReactModule;
6
+ import com.facebook.react.uimanager.SimpleViewManager;
7
+ import com.facebook.react.uimanager.ThemedReactContext;
8
+ import com.facebook.react.uimanager.ViewManagerDelegate;
9
+
10
+ // Codegen generated files matching the spec given component
11
+ import com.facebook.react.viewmanagers.TeadsAdPlacementMediaManagerDelegate;
12
+ import com.facebook.react.viewmanagers.TeadsAdPlacementMediaManagerInterface;
13
+
14
+ @ReactModule(name = TeadsMediaPlacementManager.REACT_CLASS)
15
+ public class TeadsMediaPlacementManager extends SimpleViewManager<TeadsPlacementContainer> implements TeadsAdPlacementMediaManagerInterface<TeadsPlacementContainer> {
16
+ // Codegen component name
17
+ public static final String REACT_CLASS = "TeadsAdPlacementMedia";
18
+ // uses the Codegen generated delegate
19
+ private final TeadsAdPlacementMediaManagerDelegate<TeadsPlacementContainer, TeadsMediaPlacementManager> delegate =
20
+ new TeadsAdPlacementMediaManagerDelegate<>(this);
21
+
22
+ @Override
23
+ public ViewManagerDelegate<TeadsPlacementContainer> getDelegate() {
24
+ return delegate;
25
+ }
26
+
27
+ @Override
28
+ public String getName() {
29
+ return REACT_CLASS;
30
+ }
31
+
32
+ @Override
33
+ public TeadsPlacementContainer createViewInstance(ThemedReactContext context) {
34
+ // Use SFWidgetContainer (extends TeadsPlacementContainer) so SDK's visibility handler can find it by class name
35
+ return new SFWidgetContainer(context);
36
+ }
37
+
38
+ // ViewManager needs to define how all the React's components props will update the native view
39
+ @Override
40
+ public void setPid(TeadsPlacementContainer view, String value) {
41
+ view.getInitParams().putString("pid", value);
42
+ }
43
+
44
+ @Override
45
+ public void setWidgetRandomId(TeadsPlacementContainer view, int value) {
46
+ view.getInitParams().putInt("widgetRandomId", value);
47
+ }
48
+
49
+ @Override
50
+ public void setUrl(TeadsPlacementContainer view, String value) {
51
+ view.getInitParams().putString("articleUrl", value);
52
+ }
53
+
54
+ @Override
55
+ public void setInstallationKey(TeadsPlacementContainer view, String value) {
56
+ view.getInitParams().putString("partnerKey", value);
57
+ }
58
+
59
+ @Override
60
+ public void setPackageVersion(TeadsPlacementContainer view, String value) {
61
+ view.getInitParams().putString("packageVersion", value);
62
+ }
63
+
64
+ @Override
65
+ public void onAfterUpdateTransaction(TeadsPlacementContainer view) {
66
+ super.onAfterUpdateTransaction(view);
67
+ view.initialize(view.getInitParams());
68
+ }
69
+
70
+ @Override
71
+ public void onDropViewInstance(TeadsPlacementContainer view) {
72
+ Log.d("TeadsMediaPlacementManager", "onDropViewInstance called");
73
+ view.cleanup();
74
+ super.onDropViewInstance(view);
75
+ }
76
+ }