airbridge-react-native-sdk-restricted 2.8.9 → 4.1.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 (270) hide show
  1. package/.github/workflows/build.yml +249 -159
  2. package/.github/workflows/documentation.yml +79 -0
  3. package/.github/workflows/qa.yml +187 -0
  4. package/.github/workflows/release.yml +26 -0
  5. package/airbridge-react-native-sdk-restricted.podspec +10 -7
  6. package/airbridge_sdk.json +4 -0
  7. package/android/build.gradle +22 -5
  8. package/android/{copy-config.gradle → copy-airbridge-json.gradle} +2 -2
  9. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeReactNative.kt +153 -0
  10. package/android/src/main/java/co/ab180/airbridge/reactnative/common/AirbridgeLifecycleIntegration.kt +7 -0
  11. package/android/src/main/java/co/ab180/airbridge/reactnative/extension/AirbridgeOptionBuilderApply.kt +79 -0
  12. package/android/src/main/java/co/ab180/airbridge/reactnative/extension/JSONConvert.kt +33 -0
  13. package/android/src/main/java/co/ab180/airbridge/reactnative/module/AttributionInteractor.kt +54 -0
  14. package/android/src/main/java/co/ab180/airbridge/reactnative/module/DeeplinkInteractor.kt +45 -0
  15. package/android/src/main/java/co/ab180/airbridge/reactnative/module/EventInteractor.kt +22 -0
  16. package/android/src/main/java/co/ab180/airbridge/reactnative/module/FetchInteractor.kt +51 -0
  17. package/android/src/main/java/co/ab180/airbridge/reactnative/module/PlacementInteractor.kt +56 -0
  18. package/android/src/main/java/co/ab180/airbridge/reactnative/module/RegisterInteractor.kt +108 -0
  19. package/android/src/main/java/co/ab180/airbridge/reactnative/module/SwitchInteractor.kt +43 -0
  20. package/android/src/main/java/co/ab180/airbridge/reactnative/module/WebInterfaceInteractor.kt +24 -0
  21. package/build/document/.nojekyll +1 -0
  22. package/build/document/assets/highlight.css +22 -0
  23. package/build/document/assets/icons.js +18 -0
  24. package/build/document/assets/icons.svg +1 -0
  25. package/build/document/assets/main.js +60 -0
  26. package/build/document/assets/navigation.js +1 -0
  27. package/build/document/assets/search.js +1 -0
  28. package/build/document/assets/style.css +1448 -0
  29. package/build/document/classes/Airbridge.html +113 -0
  30. package/build/document/classes/AirbridgeAttribute.html +49 -0
  31. package/build/document/classes/AirbridgeCategory.html +28 -0
  32. package/build/document/index.html +8 -0
  33. package/build/document/modules.html +4 -0
  34. package/build/source/Airbridge.d.ts +230 -0
  35. package/build/source/Airbridge.js +277 -0
  36. package/build/source/Airbridge.js.map +1 -0
  37. package/build/source/architecture/Interactor.d.ts +2 -0
  38. package/build/source/architecture/Interactor.js +7 -0
  39. package/build/source/architecture/Interactor.js.map +1 -0
  40. package/build/source/architecture/module.d.ts +1 -0
  41. package/build/source/architecture/module.js +2 -0
  42. package/build/source/architecture/module.js.map +1 -0
  43. package/build/source/constant/AirbridgeAttribute.d.ts +51 -0
  44. package/build/source/constant/AirbridgeAttribute.js +144 -0
  45. package/build/source/constant/AirbridgeAttribute.js.map +1 -0
  46. package/build/source/constant/AirbridgeCategory.d.ts +30 -0
  47. package/build/source/constant/AirbridgeCategory.js +81 -0
  48. package/build/source/constant/AirbridgeCategory.js.map +1 -0
  49. package/build/source/module/Attribution.d.ts +16 -0
  50. package/build/source/module/Attribution.js +39 -0
  51. package/build/source/module/Attribution.js.map +1 -0
  52. package/build/source/module/Deeplink.d.ts +17 -0
  53. package/build/source/module/Deeplink.js +40 -0
  54. package/build/source/module/Deeplink.js.map +1 -0
  55. package/build/source/module/Event.d.ts +14 -0
  56. package/build/source/module/Event.js +50 -0
  57. package/build/source/module/Event.js.map +1 -0
  58. package/build/source/module/Fetch.d.ts +19 -0
  59. package/build/source/module/Fetch.js +100 -0
  60. package/build/source/module/Fetch.js.map +1 -0
  61. package/build/source/module/Placement.d.ts +18 -0
  62. package/build/source/module/Placement.js +95 -0
  63. package/build/source/module/Placement.js.map +1 -0
  64. package/build/source/module/Register.d.ts +49 -0
  65. package/build/source/module/Register.js +138 -0
  66. package/build/source/module/Register.js.map +1 -0
  67. package/build/source/module/Switch.d.ts +24 -0
  68. package/build/source/module/Switch.js +39 -0
  69. package/build/source/module/Switch.js.map +1 -0
  70. package/build/source/module/WebInterface.d.ts +16 -0
  71. package/build/source/module/WebInterface.js +46 -0
  72. package/build/source/module/WebInterface.js.map +1 -0
  73. package/build/source/module.d.ts +3 -0
  74. package/build/source/module.js +4 -0
  75. package/build/source/module.js.map +1 -0
  76. package/build/source/utility/check.d.ts +13 -0
  77. package/build/source/utility/check.js +15 -0
  78. package/build/source/utility/check.js.map +1 -0
  79. package/build/source/utility/compute.d.ts +3 -0
  80. package/build/source/utility/compute.js +5 -0
  81. package/build/source/utility/compute.js.map +1 -0
  82. package/build/source/utility/create.d.ts +5 -0
  83. package/build/source/utility/create.js +12 -0
  84. package/build/source/utility/create.js.map +1 -0
  85. package/build/source/utility/extract.d.ts +3 -0
  86. package/build/source/utility/extract.js +4 -0
  87. package/build/source/utility/extract.js.map +1 -0
  88. package/build/source/utility/json.d.ts +11 -0
  89. package/build/source/utility/json.js +137 -0
  90. package/build/source/utility/json.js.map +1 -0
  91. package/build/source/utility/log.d.ts +4 -0
  92. package/build/source/utility/log.js +9 -0
  93. package/build/source/utility/log.js.map +1 -0
  94. package/changelog.md +14 -3
  95. package/ios/AirbridgeReactNative/AirbridgeReactNative.h +23 -0
  96. package/ios/AirbridgeReactNative/AirbridgeReactNative.m +36 -0
  97. package/ios/AirbridgeReactNative/AirbridgeReactNative.swift +107 -0
  98. package/ios/AirbridgeReactNative/Extension/AirbridgeOptionBuilderApply.swift +86 -0
  99. package/ios/AirbridgeReactNative/Extension/DataFromHex.swift +21 -0
  100. package/ios/AirbridgeReactNative/Extension/Logger.swift +62 -0
  101. package/ios/AirbridgeReactNative/Module/AirbridgeModuleExtern.m +133 -0
  102. package/ios/AirbridgeReactNative/Module/AttributionInteractor.swift +43 -0
  103. package/ios/AirbridgeReactNative/Module/DeeplinkInteractor.swift +49 -0
  104. package/ios/AirbridgeReactNative/Module/EventInteractor.swift +26 -0
  105. package/ios/AirbridgeReactNative/Module/FetchInteractor.swift +66 -0
  106. package/ios/AirbridgeReactNative/Module/PlacementInteractor.swift +72 -0
  107. package/ios/AirbridgeReactNative/Module/RegisterInteractor.swift +104 -0
  108. package/ios/AirbridgeReactNative/Module/SwitchInteractor.swift +48 -0
  109. package/ios/AirbridgeReactNative/Module/WebInterfaceInteractor.swift +30 -0
  110. package/ios/{copy-config.rb → copy-airbridge-json.rb} +1 -1
  111. package/package.json +18 -27
  112. package/qa/Gemfile +3 -4
  113. package/qa/Gemfile.lock +28 -17
  114. package/qa/airbridge_qa.json +6 -0
  115. package/qa/android/app/build.gradle +30 -26
  116. package/qa/android/app/src/main/AndroidManifest.xml +182 -7
  117. package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/ConfigurationLoader.kt +5 -5
  118. package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/MainActivity.kt +2 -2
  119. package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/module/IdentifiersInteractor.kt +8 -17
  120. package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/module/InstallReferrerInteractor.kt +13 -22
  121. package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/module/ModuleInjector.kt +1 -2
  122. package/qa/android/app/src/main/res/values/airbridge.xml +16 -0
  123. package/qa/android/build.gradle +4 -2
  124. package/qa/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  125. package/qa/android/gradle.properties +0 -2
  126. package/qa/android/gradlew +1 -1
  127. package/qa/android/settings.gradle +3 -1
  128. package/qa/ios/AirbridgeQA/AirbridgeQA.entitlements +12 -0
  129. package/qa/ios/AirbridgeQA/AppDelegate.mm +40 -30
  130. package/qa/ios/AirbridgeQA/DeviceInfoInteractor.swift +0 -1
  131. package/qa/ios/AirbridgeQA/IdentifiersInteractor.swift +4 -8
  132. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-20@2x.png +0 -0
  133. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-20@2x~ipad.png +0 -0
  134. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-20@3x.png +0 -0
  135. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-20~ipad.png +0 -0
  136. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-29.png +0 -0
  137. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-29@2x.png +0 -0
  138. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-29@2x~ipad.png +0 -0
  139. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-29@3x.png +0 -0
  140. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-29~ipad.png +0 -0
  141. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-40@2x.png +0 -0
  142. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-40@2x~ipad.png +0 -0
  143. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-40@3x.png +0 -0
  144. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-40~ipad.png +0 -0
  145. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-60@2x~car.png +0 -0
  146. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-60@3x~car.png +0 -0
  147. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-83.5@2x~ipad.png +0 -0
  148. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon@2x.png +0 -0
  149. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon@2x~ipad.png +0 -0
  150. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon@3x.png +0 -0
  151. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon~ios-marketing.png +0 -0
  152. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon~ipad.png +0 -0
  153. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/Contents.json +113 -32
  154. package/qa/ios/AirbridgeQA/Info.plist +8 -0
  155. package/qa/ios/AirbridgeQA.xcodeproj/project.pbxproj +47 -29
  156. package/qa/ios/InternalLibrary/airbridge-ios-sdk-qa-library.podspec +32 -0
  157. package/qa/ios/InternalLibrary/airbridge-ios-sdk-restricted.podspec +32 -0
  158. package/qa/ios/Library/airbridge-ios-sdk-qa-library.podspec +6 -1
  159. package/qa/ios/Podfile +13 -1
  160. package/qa/ios/Podfile.lock +689 -316
  161. package/qa/ios/Script/prepare-build-parameter.rb +23 -0
  162. package/qa/metro.config.js +5 -2
  163. package/qa/package-lock.json +3369 -1433
  164. package/qa/package.json +30 -30
  165. package/qa/source/App.js +13 -6
  166. package/qa/source/common/FCMService.js +39 -15
  167. package/qa/source/common/QALog.js +12 -0
  168. package/qa/source/navigations/Stack.js +8 -1
  169. package/qa/source/pages/AppInfo.js +40 -0
  170. package/qa/source/pages/Browse.js +16 -19
  171. package/qa/source/pages/DeviceInfo.js +10 -4
  172. package/qa/source/pages/Event.js +70 -60
  173. package/qa/source/pages/Home.js +77 -17
  174. package/qa/source/pages/Identifiers.js +10 -6
  175. package/qa/source/pages/Placement.js +3 -3
  176. package/qa/source/pages/Skad.js +76 -0
  177. package/qa/source/pages/UserInfo.js +47 -28
  178. package/readme.md +6 -6
  179. package/script/BuildDocument.sh +10 -0
  180. package/{scripts/build-qa.sh → script/BuildQA.sh} +5 -4
  181. package/script/BuildSource.sh +14 -0
  182. package/script/ChangeInternalSDK.sh +22 -0
  183. package/script/ChangeProductionSDK.sh +39 -0
  184. package/script/ChangeRestricted.sh +34 -0
  185. package/script/PrepareBuildParameter.sh +28 -0
  186. package/source/Airbridge.ts +340 -0
  187. package/source/architecture/Interactor.ts +10 -0
  188. package/source/architecture/module.ts +1 -0
  189. package/source/constant/AirbridgeAttribute.ts +188 -0
  190. package/source/constant/AirbridgeCategory.ts +104 -0
  191. package/source/module/Attribution.ts +4 -8
  192. package/source/module/Deeplink.ts +59 -0
  193. package/source/module/Event.ts +71 -0
  194. package/source/module/Fetch.ts +137 -0
  195. package/source/module/Placement.ts +134 -0
  196. package/source/module/Register.ts +203 -0
  197. package/source/module/Switch.ts +61 -0
  198. package/source/module/WebInterface.ts +55 -0
  199. package/source/module.ts +3 -0
  200. package/source/tsconfig.json +14 -0
  201. package/source/utility/check.ts +46 -0
  202. package/source/utility/compute.ts +9 -0
  203. package/source/utility/create.ts +12 -0
  204. package/source/utility/extract.ts +5 -0
  205. package/source/utility/json.ts +180 -0
  206. package/source/utility/log.ts +14 -0
  207. package/test/jest.json +13 -0
  208. package/test/mock.ts +112 -0
  209. package/test/module/Deeplink.test.ts +29 -0
  210. package/test/tsconfig.json +8 -0
  211. package/.eslintrc.json +0 -44
  212. package/.gitattributes +0 -1
  213. package/.github/actions/add-github-check/action.yml +0 -78
  214. package/.github/actions/add-github-comment/action.yml +0 -48
  215. package/.github/actions/add-slack-message/action.yml +0 -32
  216. package/.github/actions/edit-github-check/action.yml +0 -59
  217. package/.github/actions/edit-github-comment/action.yml +0 -41
  218. package/.github/workflows/release-restricted.yml +0 -35
  219. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeAttribution.java +0 -78
  220. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeDeeplink.java +0 -97
  221. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeEvent.java +0 -76
  222. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeLifecycle.java +0 -31
  223. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeLifecycleIntegration.java +0 -8
  224. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgePlacement.java +0 -42
  225. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeRN.java +0 -112
  226. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeState.java +0 -174
  227. package/android/src/main/java/co/ab180/airbridge/reactnative/ConfigReader.java +0 -154
  228. package/android/src/main/java/co/ab180/airbridge/reactnative/Get.java +0 -84
  229. package/index.d.ts +0 -338
  230. package/index.js +0 -8
  231. package/ios/AirbridgeRN/ARNConfigReader.h +0 -19
  232. package/ios/AirbridgeRN/ARNConfigReader.m +0 -80
  233. package/ios/AirbridgeRN/ARNGet.h +0 -20
  234. package/ios/AirbridgeRN/ARNGet.m +0 -40
  235. package/ios/AirbridgeRN/ARNHex.h +0 -16
  236. package/ios/AirbridgeRN/ARNHex.m +0 -44
  237. package/ios/AirbridgeRN/AirbridgeAttribution.h +0 -19
  238. package/ios/AirbridgeRN/AirbridgeAttribution.m +0 -47
  239. package/ios/AirbridgeRN/AirbridgeDeeplink.h +0 -20
  240. package/ios/AirbridgeRN/AirbridgeDeeplink.m +0 -59
  241. package/ios/AirbridgeRN/AirbridgeEvent.h +0 -17
  242. package/ios/AirbridgeRN/AirbridgeEvent.m +0 -63
  243. package/ios/AirbridgeRN/AirbridgePlacement.h +0 -17
  244. package/ios/AirbridgeRN/AirbridgePlacement.m +0 -38
  245. package/ios/AirbridgeRN/AirbridgeRN.h +0 -71
  246. package/ios/AirbridgeRN/AirbridgeRN.m +0 -83
  247. package/ios/AirbridgeRN/AirbridgeState.h +0 -17
  248. package/ios/AirbridgeRN/AirbridgeState.m +0 -94
  249. package/ios/AirbridgeRN.xcodeproj/project.pbxproj +0 -417
  250. package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/module/UserInfoInteractor.kt +0 -74
  251. package/qa/ios/AirbridgeQA/UserInfoInteractor.m +0 -57
  252. package/qa/ios/AirbridgeQA/UserInfoInteractor.swift +0 -49
  253. package/qa/source/pages/appInfo.js +0 -22
  254. package/scripts/addiOSFramework.js +0 -48
  255. package/scripts/change_restricted.sh +0 -21
  256. package/scripts/update_native_version.sh +0 -104
  257. package/src/Airbridge.js +0 -82
  258. package/src/Deeplink.js +0 -75
  259. package/src/Event.js +0 -38
  260. package/src/Placement.js +0 -56
  261. package/src/State.js +0 -175
  262. package/src/WebInterface.js +0 -135
  263. package/src/tool/Log.js +0 -40
  264. package/src/tool/_.js +0 -56
  265. package/src/type/AirbridgeAttributes.js +0 -40
  266. package/src/type/AirbridgeCategory.js +0 -35
  267. package/src/type/AirbridgeProduct.js +0 -18
  268. package/src/typedef/EventOption.js +0 -9
  269. package/src/typedef/Product.js +0 -10
  270. package/src/typedef/User.js +0 -9
@@ -1,3 +1,5 @@
1
+ import groovy.json.JsonSlurper
2
+
1
3
  apply plugin: "com.android.application"
2
4
  apply plugin: "com.google.gms.google-services"
3
5
  apply plugin: "org.jetbrains.kotlin.android"
@@ -9,14 +11,14 @@ apply plugin: "com.facebook.react"
9
11
  */
10
12
  react {
11
13
  /* Folders */
12
- // The root of your project, i.e. where "package.json" lives. Default is '..'
13
- // root = file("../")
14
- // The folder where the react-native NPM package is. Default is ../node_modules/react-native
15
- // reactNativeDir = file("../node_modules/react-native")
16
- // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen
17
- // codegenDir = file("../node_modules/@react-native/codegen")
18
- // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js
19
- // cliFile = file("../node_modules/react-native/cli.js")
14
+ // The root of your project, i.e. where "package.json" lives. Default is '../..'
15
+ // root = file("../../")
16
+ // The folder where the react-native NPM package is. Default is ../../node_modules/react-native
17
+ // reactNativeDir = file("../../node_modules/react-native")
18
+ // The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen
19
+ // codegenDir = file("../../node_modules/@react-native/codegen")
20
+ // The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js
21
+ // cliFile = file("../../node_modules/react-native/cli.js")
20
22
 
21
23
  /* Variants */
22
24
  // The list of variants to that are debuggable. For those we're going to
@@ -50,24 +52,13 @@ react {
50
52
  //
51
53
  // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
52
54
  // hermesFlags = ["-O", "-output-source-map"]
55
+
56
+ /* Autolinking */
57
+ autolinkLibrariesWithApp()
53
58
  }
54
59
 
55
- /**
56
- * Set this to true to Run Proguard on Release builds to minify the Java bytecode.
57
- */
58
60
  def enableProguardInReleaseBuilds = false
59
61
 
60
- /**
61
- * The preferred build flavor of JavaScriptCore (JSC)
62
- *
63
- * For example, to use the international variant, you can use:
64
- * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
65
- *
66
- * The international variant includes ICU i18n library and necessary data
67
- * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
68
- * give correct results when using with locales other than en-US. Note that
69
- * this variant is about 6MiB larger per architecture than default.
70
- */
71
62
  def jscFlavor = 'org.webkit:android-jsc:+'
72
63
 
73
64
  android {
@@ -113,9 +104,11 @@ android {
113
104
  }
114
105
  }
115
106
 
116
- dependencies {
107
+ def currentDirectory = buildFile.parentFile.toPath()
108
+ def airbridgeQA = new JsonSlurper().parse(currentDirectory.resolve('../../airbridge_qa.json'))
109
+ def airbridgeSDK = new JsonSlurper().parse(currentDirectory.resolve('../../../airbridge_sdk.json'))
117
110
 
118
- // The version of react-native is set by the React Native Gradle Plugin
111
+ dependencies {
119
112
  implementation("com.facebook.react:react-android")
120
113
 
121
114
  if (hermesEnabled.toBoolean()) {
@@ -124,7 +117,18 @@ dependencies {
124
117
  implementation jscFlavor
125
118
  }
126
119
 
127
- implementation("io.airbridge:configuration-spec:1.0")
120
+ if (airbridgeQA['intenral_library']['android_version'] == null) {
121
+ implementation "io.airbridge:sdk-android-restricted:${airbridgeSDK['android_version']}"
122
+ implementation "io.airbridge:configuration-spec:${airbridgeSDK['android_version']}"
123
+ }
124
+ else {
125
+ implementation "io.airbridge:sdk-android-restricted:${airbridgeQA['intenral_library']['android_version']}"
126
+ implementation "io.airbridge:configuration-spec:${airbridgeQA['intenral_library']['android_version']}"
127
+ }
128
+ }
129
+
130
+ tasks.register('prepareBuildParameter', Exec) {
131
+ commandLine currentDirectory.resolve('../../../script/PrepareBuildParameter.sh').toString()
128
132
  }
129
133
 
130
- apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
134
+ preBuild.dependsOn prepareBuildParameter
@@ -20,7 +20,8 @@
20
20
  android:icon="@mipmap/ic_launcher"
21
21
  android:label="@string/app_name"
22
22
  android:roundIcon="@mipmap/ic_launcher"
23
- android:theme="@style/AppTheme">
23
+ android:theme="@style/AppTheme"
24
+ android:supportsRtl="true">
24
25
  <activity
25
26
  android:name=".MainActivity"
26
27
  android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode"
@@ -33,14 +34,36 @@
33
34
  <category android:name="android.intent.category.LAUNCHER" />
34
35
  </intent-filter>
35
36
 
37
+ <intent-filter>
38
+ <action android:name="android.intent.action.VIEW" />
39
+
40
+ <category android:name="android.intent.category.DEFAULT" />
41
+ <category android:name="android.intent.category.BROWSABLE" />
42
+
43
+ <data android:scheme="qaabr" />
44
+ </intent-filter>
45
+ <intent-filter>
46
+ <!-- it is not airbridge link. for testing scheme -->
47
+ <action android:name="android.intent.action.VIEW" />
48
+
49
+ <category android:name="android.intent.category.DEFAULT" />
50
+ <category android:name="android.intent.category.BROWSABLE" />
51
+
52
+ <data android:scheme="other" />
53
+ </intent-filter>
36
54
  <intent-filter android:autoVerify="true">
55
+ <!-- it is not airbridge link. for testing link -->
37
56
  <action android:name="android.intent.action.VIEW" />
38
57
 
39
58
  <category android:name="android.intent.category.DEFAULT" />
40
59
  <category android:name="android.intent.category.BROWSABLE" />
41
60
 
42
- <data android:scheme="http" android:host="qaabr.abr.ge" />
43
- <data android:scheme="https" android:host="qaabr.abr.ge" />
61
+ <data
62
+ android:host="sdk-test.ab180.co"
63
+ android:scheme="http" />
64
+ <data
65
+ android:host="sdk-test.ab180.co"
66
+ android:scheme="https" />
44
67
  </intent-filter>
45
68
  <intent-filter android:autoVerify="true">
46
69
  <action android:name="android.intent.action.VIEW" />
@@ -48,16 +71,168 @@
48
71
  <category android:name="android.intent.category.DEFAULT" />
49
72
  <category android:name="android.intent.category.BROWSABLE" />
50
73
 
51
- <data android:scheme="http" android:host="qaabr.airbridge.io" />
52
- <data android:scheme="https" android:host="qaabr.airbridge.io" />
74
+ <data
75
+ android:host="qaabr.abr.ge"
76
+ android:scheme="http" />
77
+ <data
78
+ android:host="qaabr.abr.ge"
79
+ android:scheme="https" />
53
80
  </intent-filter>
54
- <intent-filter>
81
+ <intent-filter android:autoVerify="true">
55
82
  <action android:name="android.intent.action.VIEW" />
56
83
 
57
84
  <category android:name="android.intent.category.DEFAULT" />
58
85
  <category android:name="android.intent.category.BROWSABLE" />
59
86
 
60
- <data android:scheme="qaabr" />
87
+ <data
88
+ android:host="qaabr.dev.abr.ge"
89
+ android:scheme="http" />
90
+ <data
91
+ android:host="qaabr.dev.abr.ge"
92
+ android:scheme="https" />
93
+ </intent-filter>
94
+ <intent-filter android:autoVerify="true">
95
+ <action android:name="android.intent.action.VIEW" />
96
+
97
+ <category android:name="android.intent.category.DEFAULT" />
98
+ <category android:name="android.intent.category.BROWSABLE" />
99
+
100
+ <data
101
+ android:host="qaabr.dev1.abr.ge"
102
+ android:scheme="http" />
103
+ <data
104
+ android:host="qaabr.dev1.abr.ge"
105
+ android:scheme="https" />
106
+ </intent-filter>
107
+ <intent-filter android:autoVerify="true">
108
+ <action android:name="android.intent.action.VIEW" />
109
+
110
+ <category android:name="android.intent.category.DEFAULT" />
111
+ <category android:name="android.intent.category.BROWSABLE" />
112
+
113
+ <data
114
+ android:host="qaabr.dev2.abr.ge"
115
+ android:scheme="http" />
116
+ <data
117
+ android:host="qaabr.dev2.abr.ge"
118
+ android:scheme="https" />
119
+ </intent-filter>
120
+ <intent-filter android:autoVerify="true">
121
+ <action android:name="android.intent.action.VIEW" />
122
+
123
+ <category android:name="android.intent.category.DEFAULT" />
124
+ <category android:name="android.intent.category.BROWSABLE" />
125
+
126
+ <data
127
+ android:host="qaabr.airbridge.io"
128
+ android:scheme="http" />
129
+ <data
130
+ android:host="qaabr.airbridge.io"
131
+ android:scheme="https" />
132
+ </intent-filter>
133
+ <intent-filter android:autoVerify="true">
134
+ <action android:name="android.intent.action.VIEW" />
135
+
136
+ <category android:name="android.intent.category.DEFAULT" />
137
+ <category android:name="android.intent.category.BROWSABLE" />
138
+
139
+ <data
140
+ android:host="qaabr.dev.airbridge.io"
141
+ android:scheme="http" />
142
+ <data
143
+ android:host="qaabr.dev.airbridge.io"
144
+ android:scheme="https" />
145
+ </intent-filter>
146
+ <intent-filter android:autoVerify="true">
147
+ <action android:name="android.intent.action.VIEW" />
148
+
149
+ <category android:name="android.intent.category.DEFAULT" />
150
+ <category android:name="android.intent.category.BROWSABLE" />
151
+
152
+ <data
153
+ android:host="qaabr.dev1.airbridge.io"
154
+ android:scheme="http" />
155
+ <data
156
+ android:host="qaabr.dev1.airbridge.io"
157
+ android:scheme="https" />
158
+ </intent-filter>
159
+ <intent-filter android:autoVerify="true">
160
+ <action android:name="android.intent.action.VIEW" />
161
+
162
+ <category android:name="android.intent.category.DEFAULT" />
163
+ <category android:name="android.intent.category.BROWSABLE" />
164
+
165
+ <data
166
+ android:host="qaabr.dev2.airbridge.io"
167
+ android:scheme="http" />
168
+ <data
169
+ android:host="qaabr.dev2.airbridge.io"
170
+ android:scheme="https" />
171
+ </intent-filter>
172
+ <intent-filter android:autoVerify="true">
173
+ <action android:name="android.intent.action.VIEW" />
174
+
175
+ <category android:name="android.intent.category.DEFAULT" />
176
+ <category android:name="android.intent.category.BROWSABLE" />
177
+
178
+ <data
179
+ android:host="qa.ab180.co"
180
+ android:scheme="http" />
181
+ <data
182
+ android:host="qa.ab180.co"
183
+ android:scheme="https" />
184
+ </intent-filter>
185
+ <intent-filter android:autoVerify="true">
186
+ <action android:name="android.intent.action.VIEW" />
187
+
188
+ <category android:name="android.intent.category.DEFAULT" />
189
+ <category android:name="android.intent.category.BROWSABLE" />
190
+
191
+ <data
192
+ android:host="qa.dev.ab180.co"
193
+ android:scheme="http" />
194
+ <data
195
+ android:host="qa.dev.ab180.co"
196
+ android:scheme="https" />
197
+ </intent-filter>
198
+ <intent-filter android:autoVerify="true">
199
+ <action android:name="android.intent.action.VIEW" />
200
+
201
+ <category android:name="android.intent.category.DEFAULT" />
202
+ <category android:name="android.intent.category.BROWSABLE" />
203
+
204
+ <data
205
+ android:host="qa.dev1.ab180.co"
206
+ android:scheme="http" />
207
+ <data
208
+ android:host="qa.dev1.ab180.co"
209
+ android:scheme="https" />
210
+ </intent-filter>
211
+ <intent-filter android:autoVerify="true">
212
+ <action android:name="android.intent.action.VIEW" />
213
+
214
+ <category android:name="android.intent.category.DEFAULT" />
215
+ <category android:name="android.intent.category.BROWSABLE" />
216
+
217
+ <data
218
+ android:host="qa.dev2.ab180.co"
219
+ android:scheme="http" />
220
+ <data
221
+ android:host="qa.dev2.ab180.co"
222
+ android:scheme="https" />
223
+ </intent-filter>
224
+ <intent-filter android:autoVerify="true">
225
+ <action android:name="android.intent.action.VIEW" />
226
+
227
+ <category android:name="android.intent.category.DEFAULT" />
228
+ <category android:name="android.intent.category.BROWSABLE" />
229
+
230
+ <data
231
+ android:host="xn--qa--bw8n.xn--ob0bx63e.com"
232
+ android:scheme="http" />
233
+ <data
234
+ android:host="xn--qa--bw8n.xn--ob0bx63e.com"
235
+ android:scheme="https" />
61
236
  </intent-filter>
62
237
  </activity>
63
238
  </application>
@@ -3,7 +3,7 @@ package co.ab180.airbridge.qa.application
3
3
  import android.app.Application
4
4
  import android.content.Context
5
5
  import android.util.Log
6
- import co.ab180.airbridge.reactnative.AirbridgeRN
6
+ import co.ab180.airbridge.reactnative.AirbridgeReactNative
7
7
  import co.ab180.configuration.Loader
8
8
  import java.lang.reflect.Method
9
9
 
@@ -27,19 +27,19 @@ class ConfigurationLoader {
27
27
 
28
28
  private fun findInitMethod(): Method? =
29
29
  try {
30
- AirbridgeRN::class.java.getDeclaredMethod(
31
- "init",
30
+ AirbridgeReactNative::class.java.getDeclaredMethod(
31
+ "initializeSDK",
32
32
  Application::class.java,
33
33
  String::class.java,
34
34
  String::class.java,
35
35
  Map::class.java
36
36
  )
37
37
  } catch (throwable: Throwable) {
38
- Log.d(TAG, "find init method error : $throwable")
38
+ Log.d(TAG, "find initializeSDK method error : $throwable")
39
39
  null
40
40
  }?.also {
41
41
  it.isAccessible = true
42
- Log.d(TAG, "find init method : $it")
42
+ Log.d(TAG, "find initializeSDK method : $it")
43
43
  }
44
44
 
45
45
  private fun loadOption(context: Context): Map<String, Any> =
@@ -1,7 +1,7 @@
1
1
  package co.ab180.airbridge.qa.application
2
2
 
3
3
  import android.content.Intent
4
- import co.ab180.airbridge.reactnative.AirbridgeRN
4
+ import co.ab180.airbridge.reactnative.AirbridgeReactNative
5
5
  import com.facebook.react.ReactActivity
6
6
  import com.facebook.react.ReactActivityDelegate
7
7
  import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
@@ -25,7 +25,7 @@ class MainActivity : ReactActivity() {
25
25
  override fun onResume() {
26
26
  super.onResume()
27
27
 
28
- AirbridgeRN.processDeeplinkData(intent)
28
+ AirbridgeReactNative.trackDeeplink(intent)
29
29
  }
30
30
 
31
31
  override fun onNewIntent(intent: Intent?) {
@@ -1,8 +1,6 @@
1
1
  package co.ab180.airbridge.qa.application.module
2
2
 
3
- import co.ab180.airbridge.AdvertisingIdInfo
4
3
  import co.ab180.airbridge.Airbridge
5
- import co.ab180.airbridge.AirbridgeCallback
6
4
  import com.facebook.react.bridge.Promise
7
5
  import com.facebook.react.bridge.ReactApplicationContext
8
6
  import com.facebook.react.bridge.ReactContextBaseJavaModule
@@ -57,26 +55,19 @@ class IdentifiersInteractor(
57
55
  }
58
56
 
59
57
  private fun requestGeneratedDeviceUUID() : Flow<String?> = callbackFlow {
60
- Airbridge.fetchAirbridgeGeneratedUUID{
61
- trySend(it)
62
- }
58
+ Airbridge.fetchAirbridgeGeneratedUUID(
59
+ onSuccess = { trySend(it) },
60
+ onFailure = { trySend(null) }
61
+ )
63
62
 
64
63
  awaitClose()
65
64
  }
66
65
 
67
66
  private fun requestGAID() : Flow<String?> = callbackFlow {
68
- Airbridge.getDeviceInfo().getGoogleAdvertisingIdInfo(object : AirbridgeCallback<AdvertisingIdInfo> {
69
- override fun onSuccess(result: AdvertisingIdInfo) {
70
- trySend(result.id)
71
- }
72
-
73
- override fun onComplete() {
74
- }
75
-
76
- override fun onFailure(throwable: Throwable) {
77
- trySend(null)
78
- }
79
- })
67
+ Airbridge.fetchGoogleAdvertisingIdInfo(
68
+ onSuccess = { trySend(it.id) },
69
+ onFailure = { trySend(null)}
70
+ )
80
71
 
81
72
  awaitClose()
82
73
  }
@@ -1,14 +1,11 @@
1
1
  package co.ab180.airbridge.qa.application.module
2
2
 
3
3
  import co.ab180.airbridge.Airbridge
4
- import co.ab180.airbridge.AirbridgeCallback
5
- import co.ab180.airbridge.ReferrerDetails
6
4
  import com.facebook.react.bridge.Promise
7
5
  import com.facebook.react.bridge.ReactApplicationContext
8
6
  import com.facebook.react.bridge.ReactContextBaseJavaModule
9
7
  import com.facebook.react.bridge.ReactMethod
10
8
  import kotlinx.coroutines.GlobalScope
11
- import kotlinx.coroutines.channels.ProducerScope
12
9
  import kotlinx.coroutines.channels.awaitClose
13
10
  import kotlinx.coroutines.flow.Flow
14
11
  import kotlinx.coroutines.flow.callbackFlow
@@ -54,38 +51,32 @@ class InstallReferrerInteractor(
54
51
  }
55
52
  }
56
53
 
57
- private fun createCallback(scope: ProducerScope<String?>) : AirbridgeCallback<ReferrerDetails?> {
58
- return object : AirbridgeCallback<ReferrerDetails?> {
59
- override fun onSuccess(result: ReferrerDetails?) {
60
- scope.trySend(result?.installReferrer)
61
- }
62
-
63
- override fun onComplete() {
64
- }
65
-
66
- override fun onFailure(throwable: Throwable) {
67
- scope.trySend(null)
68
- }
69
- }
70
- }
71
-
72
54
  private fun requestGoogle() : Flow<String?> = callbackFlow {
73
- Airbridge.getDeviceInfo().getOneStoreInstallReferrerDetails(createCallback(this))
55
+ Airbridge.fetchGoogleInstallReferrerDetails(
56
+ onSuccess = { trySend(it?.installReferrer) },
57
+ onFailure = { trySend(null) }
58
+ )
74
59
  awaitClose()
75
60
  }
76
61
 
77
62
  private fun requestOneStore() : Flow<String?> = callbackFlow {
78
- Airbridge.getDeviceInfo().getOneStoreInstallReferrerDetails(createCallback(this))
63
+ trySend(null)
79
64
  awaitClose()
80
65
  }
81
66
 
82
67
  private fun requestHuawei() : Flow<String?> = callbackFlow {
83
- Airbridge.getDeviceInfo().getHuaweiInstallReferrerDetails(createCallback(this))
68
+ Airbridge.fetchHuaweiInstallReferrerDetails(
69
+ onSuccess = { trySend(it?.installReferrer) },
70
+ onFailure = { trySend(null) }
71
+ )
84
72
  awaitClose()
85
73
  }
86
74
 
87
75
  private fun requestGalaxyStore() : Flow<String?> = callbackFlow {
88
- Airbridge.getDeviceInfo().getGalaxyStoreInstallReferrerDetails(createCallback(this))
76
+ Airbridge.fetchGalaxyStoreInstallReferrerDetails(
77
+ onSuccess = { trySend(it?.installReferrer) },
78
+ onFailure = { trySend(null) }
79
+ )
89
80
  awaitClose()
90
81
  }
91
82
  }
@@ -11,8 +11,7 @@ class ModuleInjector : ReactPackage {
11
11
  PermissionInteractor(reactApplicationContext),
12
12
  IdentifiersInteractor(reactApplicationContext),
13
13
  DeviceInfoInteractor(reactApplicationContext),
14
- InstallReferrerInteractor(reactApplicationContext),
15
- UserInfoInteractor(reactApplicationContext)
14
+ InstallReferrerInteractor(reactApplicationContext)
16
15
  )
17
16
  }
18
17
 
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <resources>
3
+ <string-array name="co_ab180_airbridge_custom_domains">
4
+ <item>qaabr.dev.abr.ge</item>
5
+ <item>qaabr.dev1.abr.ge</item>
6
+ <item>qaabr.dev2.abr.ge</item>
7
+ <item>qaabr.dev.airbridge.io</item>
8
+ <item>qaabr.dev1.airbridge.io</item>
9
+ <item>qaabr.dev2.airbridge.io</item>
10
+ <item>qa.ab180.co</item>
11
+ <item>qa.dev.ab180.co</item>
12
+ <item>qa.dev1.ab180.co</item>
13
+ <item>qa.dev2.ab180.co</item>
14
+ <item>xn--qa--bw8n.xn--ob0bx63e.com</item>
15
+ </string-array>
16
+ </resources>
@@ -5,7 +5,7 @@ buildscript {
5
5
  compileSdkVersion = 34
6
6
  targetSdkVersion = 34
7
7
  ndkVersion = "26.1.10909125"
8
- kotlinVersion = "1.9.22"
8
+ kotlinVersion = "1.9.24"
9
9
  }
10
10
  repositories {
11
11
  google()
@@ -19,8 +19,10 @@ buildscript {
19
19
  }
20
20
  }
21
21
 
22
- rootProject.allprojects {
22
+ allprojects {
23
23
  repositories {
24
+ google()
25
+ mavenCentral()
24
26
  maven { url "https://sdk-internal.airbridge.io/maven" }
25
27
  }
26
28
  }
@@ -1,6 +1,6 @@
1
1
  distributionBase=GRADLE_USER_HOME
2
2
  distributionPath=wrapper/dists
3
- distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip
3
+ distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip
4
4
  networkTimeout=10000
5
5
  validateDistributionUrl=true
6
6
  zipStoreBase=GRADLE_USER_HOME
@@ -21,8 +21,6 @@ org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
21
21
  # Android operating system, and which are packaged with your app's APK
22
22
  # https://developer.android.com/topic/libraries/support-library/androidx-rn
23
23
  android.useAndroidX=true
24
- # Automatically convert third-party libraries to use AndroidX
25
- android.enableJetifier=true
26
24
 
27
25
  # Use this property to specify which architecture you want to build.
28
26
  # You can also override it from the CLI using
@@ -55,7 +55,7 @@
55
55
  # Darwin, MinGW, and NonStop.
56
56
  #
57
57
  # (3) This script is generated from the Groovy template
58
- # https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
58
+ # https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
59
59
  # within the Gradle project.
60
60
  #
61
61
  # You can find Gradle at https://github.com/gradle/gradle/.
@@ -1,4 +1,6 @@
1
+ pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") }
2
+ plugins { id("com.facebook.react.settings") }
3
+ extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() }
1
4
  rootProject.name = 'co.ab180.airbridge.qa.application'
2
- apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
3
5
  include ':app'
4
6
  includeBuild('../node_modules/@react-native/gradle-plugin')
@@ -7,7 +7,19 @@
7
7
  <key>com.apple.developer.associated-domains</key>
8
8
  <array>
9
9
  <string>applinks:qaabr.abr.ge</string>
10
+ <string>applinks:qaabr.dev.abr.ge</string>
11
+ <string>applinks:qaabr.dev1.abr.ge</string>
12
+ <string>applinks:qaabr.dev2.abr.ge</string>
10
13
  <string>applinks:qaabr.airbridge.io</string>
14
+ <string>applinks:qaabr.dev.airbridge.io</string>
15
+ <string>applinks:qaabr.dev1.airbridge.io</string>
16
+ <string>applinks:qaabr.dev2.airbridge.io</string>
17
+ <string>applinks:qa.ab180.co</string>
18
+ <string>applinks:qa.dev.ab180.co</string>
19
+ <string>applinks:qa.dev1.ab180.co</string>
20
+ <string>applinks:qa.dev2.ab180.co</string>
21
+ <string>applinks:xn--qa--bw8n.xn--ob0bx63e.com</string>
22
+ <string>applinks:sdk-test.ab180.co</string>
11
23
  </array>
12
24
  <key>com.apple.security.application-groups</key>
13
25
  <array>