react-native-acoustic-connect 19.0.11 → 19.0.34

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 (380) hide show
  1. package/CHANGELOG.md +111 -0
  2. package/ConnectConfig.example.json +1 -1
  3. package/README.md +426 -3
  4. package/android/build.gradle +119 -3
  5. package/android/config.gradle +123 -13
  6. package/android/src/main/assets/ConnectAdvancedConfig.json +1 -1
  7. package/android/src/main/assets/EOCoreAdvancedConfig.json +1 -1
  8. package/android/src/main/assets/TealeafAdvancedConfig.json +1 -1
  9. package/android/src/main/java/com/acousticconnectrn/HybridAcousticConnectRN.kt +457 -37
  10. package/app.plugin.js +2 -2
  11. package/ios/AcousticConnectRNConfig.json +2 -2
  12. package/ios/ConnectRNParsing.swift +229 -0
  13. package/ios/HybridAcousticConnectRN.swift +290 -30
  14. package/lib/commonjs/TLTRN.js +116 -3
  15. package/lib/commonjs/TLTRN.js.map +1 -1
  16. package/lib/commonjs/components/Connect.js +145 -27
  17. package/lib/commonjs/components/Connect.js.map +1 -1
  18. package/lib/commonjs/index.js +3 -0
  19. package/lib/commonjs/index.js.map +1 -1
  20. package/lib/module/TLTRN.js +116 -3
  21. package/lib/module/TLTRN.js.map +1 -1
  22. package/lib/module/components/Connect.js +146 -28
  23. package/lib/module/components/Connect.js.map +1 -1
  24. package/lib/module/index.js +5 -0
  25. package/lib/module/index.js.map +1 -1
  26. package/lib/typescript/src/TLTRN.d.ts +85 -1
  27. package/lib/typescript/src/TLTRN.d.ts.map +1 -1
  28. package/lib/typescript/src/components/Connect.d.ts.map +1 -1
  29. package/lib/typescript/src/index.d.ts +1 -0
  30. package/lib/typescript/src/index.d.ts.map +1 -1
  31. package/lib/typescript/src/specs/react-native-acoustic-connect.nitro.d.ts +190 -10
  32. package/lib/typescript/src/specs/react-native-acoustic-connect.nitro.d.ts.map +1 -1
  33. package/nitrogen/generated/android/c++/JHybridAcousticConnectRNSpec.cpp +5 -9
  34. package/nitrogen/generated/android/c++/JHybridAcousticConnectRNSpec.hpp +1 -1
  35. package/nitrogen/generated/android/kotlin/com/margelo/nitro/acousticconnectrn/HybridAcousticConnectRNSpec.kt +2 -1
  36. package/nitrogen/generated/ios/AcousticConnectRN-Swift-Cxx-Umbrella.hpp +1 -0
  37. package/nitrogen/generated/ios/c++/HybridAcousticConnectRNSpecSwift.hpp +2 -1
  38. package/nitrogen/generated/ios/swift/HybridAcousticConnectRNSpec.swift +1 -1
  39. package/nitrogen/generated/ios/swift/HybridAcousticConnectRNSpec_cxx.swift +2 -25
  40. package/nitrogen/generated/shared/c++/HybridAcousticConnectRNSpec.hpp +2 -1
  41. package/package.json +6 -8
  42. package/plugin/build/withConnectAndroidConfig.d.ts +2 -2
  43. package/plugin/build/withConnectAndroidConfig.js +2 -2
  44. package/plugin/build/withConnectIosSigning.d.ts +1 -1
  45. package/plugin/build/withConnectIosSigning.js +1 -1
  46. package/plugin/src/withConnectAndroidConfig.ts +2 -2
  47. package/plugin/src/withConnectIosSigning.ts +1 -1
  48. package/scripts/gradleParser.js +1 -1
  49. package/src/TLTRN.ts +125 -4
  50. package/src/components/Connect.tsx +150 -27
  51. package/src/index.ts +5 -0
  52. package/src/specs/react-native-acoustic-connect.nitro.ts +192 -10
  53. package/Examples/SampleUI/.bundle/config +0 -2
  54. package/Examples/SampleUI/.detoxrc.js +0 -83
  55. package/Examples/SampleUI/.eslintrc.js +0 -4
  56. package/Examples/SampleUI/.prettierrc.js +0 -7
  57. package/Examples/SampleUI/.watchmanconfig +0 -1
  58. package/Examples/SampleUI/App.js +0 -1
  59. package/Examples/SampleUI/Gemfile +0 -10
  60. package/Examples/SampleUI/Gemfile.lock +0 -121
  61. package/Examples/SampleUI/README.md +0 -79
  62. package/Examples/SampleUI/__tests__/App.test.tsx +0 -17
  63. package/Examples/SampleUI/android/app/build.gradle +0 -129
  64. package/Examples/SampleUI/android/app/debug.keystore +0 -0
  65. package/Examples/SampleUI/android/app/proguard-rules.pro +0 -10
  66. package/Examples/SampleUI/android/app/src/debug/AndroidManifest.xml +0 -9
  67. package/Examples/SampleUI/android/app/src/main/AndroidManifest.xml +0 -31
  68. package/Examples/SampleUI/android/app/src/main/java/com/sampleui/MainActivity.kt +0 -30
  69. package/Examples/SampleUI/android/app/src/main/java/com/sampleui/MainApplication.kt +0 -53
  70. package/Examples/SampleUI/android/app/src/main/res/drawable/rn_edit_text_material.xml +0 -37
  71. package/Examples/SampleUI/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  72. package/Examples/SampleUI/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  73. package/Examples/SampleUI/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  74. package/Examples/SampleUI/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  75. package/Examples/SampleUI/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  76. package/Examples/SampleUI/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  77. package/Examples/SampleUI/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  78. package/Examples/SampleUI/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  79. package/Examples/SampleUI/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  80. package/Examples/SampleUI/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  81. package/Examples/SampleUI/android/app/src/main/res/values/strings.xml +0 -3
  82. package/Examples/SampleUI/android/app/src/main/res/values/styles.xml +0 -9
  83. package/Examples/SampleUI/android/build.gradle +0 -21
  84. package/Examples/SampleUI/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  85. package/Examples/SampleUI/android/gradle/wrapper/gradle-wrapper.properties +0 -7
  86. package/Examples/SampleUI/android/gradle.properties +0 -39
  87. package/Examples/SampleUI/android/gradlew +0 -252
  88. package/Examples/SampleUI/android/gradlew.bat +0 -94
  89. package/Examples/SampleUI/android/settings.gradle +0 -21
  90. package/Examples/SampleUI/app.json +0 -51
  91. package/Examples/SampleUI/assets/fonts/Abel-Regular.ttf +0 -0
  92. package/Examples/SampleUI/assets/fonts/NotoSans-Regular.ttf +0 -0
  93. package/Examples/SampleUI/assets/images/android-icon.png +0 -0
  94. package/Examples/SampleUI/assets/images/artist-1.jpg +0 -0
  95. package/Examples/SampleUI/assets/images/artist-2.jpg +0 -0
  96. package/Examples/SampleUI/assets/images/avatar.png +0 -0
  97. package/Examples/SampleUI/assets/images/beach.jpg +0 -0
  98. package/Examples/SampleUI/assets/images/bridge.jpg +0 -0
  99. package/Examples/SampleUI/assets/images/chameleon.jpg +0 -0
  100. package/Examples/SampleUI/assets/images/city.jpg +0 -0
  101. package/Examples/SampleUI/assets/images/email-icon.png +0 -0
  102. package/Examples/SampleUI/assets/images/favorite.png +0 -0
  103. package/Examples/SampleUI/assets/images/forest.jpg +0 -0
  104. package/Examples/SampleUI/assets/images/paper-icon.png +0 -0
  105. package/Examples/SampleUI/assets/images/players-2.jpg +0 -0
  106. package/Examples/SampleUI/assets/images/players.jpg +0 -0
  107. package/Examples/SampleUI/assets/images/restaurant-1.jpg +0 -0
  108. package/Examples/SampleUI/assets/images/restaurant-2.jpg +0 -0
  109. package/Examples/SampleUI/assets/images/song-1.jpg +0 -0
  110. package/Examples/SampleUI/assets/images/song-2.jpg +0 -0
  111. package/Examples/SampleUI/assets/images/splash.png +0 -0
  112. package/Examples/SampleUI/assets/images/strawberries.jpg +0 -0
  113. package/Examples/SampleUI/assets/images/wrecked-ship.jpg +0 -0
  114. package/Examples/SampleUI/assets/styles/fonts.css +0 -47
  115. package/Examples/SampleUI/babel.config.js +0 -22
  116. package/Examples/SampleUI/index.js +0 -9
  117. package/Examples/SampleUI/ios/.xcode.env +0 -11
  118. package/Examples/SampleUI/ios/Podfile +0 -71
  119. package/Examples/SampleUI/ios/Podfile.lock +0 -2276
  120. package/Examples/SampleUI/ios/SampleUI/AppDelegate.h +0 -7
  121. package/Examples/SampleUI/ios/SampleUI/AppDelegate.mm +0 -31
  122. package/Examples/SampleUI/ios/SampleUI/Images.xcassets/AppIcon.appiconset/Contents.json +0 -53
  123. package/Examples/SampleUI/ios/SampleUI/Images.xcassets/Contents.json +0 -6
  124. package/Examples/SampleUI/ios/SampleUI/Info.plist +0 -52
  125. package/Examples/SampleUI/ios/SampleUI/LaunchScreen.storyboard +0 -47
  126. package/Examples/SampleUI/ios/SampleUI/PrivacyInfo.xcprivacy +0 -48
  127. package/Examples/SampleUI/ios/SampleUI/main.m +0 -10
  128. package/Examples/SampleUI/ios/SampleUI.xcodeproj/project.pbxproj +0 -785
  129. package/Examples/SampleUI/ios/SampleUI.xcodeproj/xcshareddata/xcschemes/SampleUI.xcscheme +0 -105
  130. package/Examples/SampleUI/ios/SampleUI.xcworkspace/contents.xcworkspacedata +0 -10
  131. package/Examples/SampleUI/ios/SampleUITests/Info.plist +0 -24
  132. package/Examples/SampleUI/ios/SampleUITests/SampleUITests.m +0 -66
  133. package/Examples/SampleUI/jest.config.js +0 -3
  134. package/Examples/SampleUI/metro.config.js +0 -54
  135. package/Examples/SampleUI/package.json +0 -65
  136. package/Examples/SampleUI/scripts/integration-test-android.sh +0 -292
  137. package/Examples/SampleUI/src/DrawerItems.tsx +0 -322
  138. package/Examples/SampleUI/src/ExampleList.tsx +0 -175
  139. package/Examples/SampleUI/src/Examples/ActivityIndicatorExample.tsx +0 -73
  140. package/Examples/SampleUI/src/Examples/AnimatedFABExample/AnimatedFABExample.tsx +0 -220
  141. package/Examples/SampleUI/src/Examples/AnimatedFABExample/CustomFAB.tsx +0 -70
  142. package/Examples/SampleUI/src/Examples/AnimatedFABExample/CustomFABControls.tsx +0 -146
  143. package/Examples/SampleUI/src/Examples/AnimatedFABExample/index.ts +0 -1
  144. package/Examples/SampleUI/src/Examples/AppbarExample.tsx +0 -263
  145. package/Examples/SampleUI/src/Examples/AvatarExample.tsx +0 -76
  146. package/Examples/SampleUI/src/Examples/BadgeExample.tsx +0 -97
  147. package/Examples/SampleUI/src/Examples/BannerExample.tsx +0 -152
  148. package/Examples/SampleUI/src/Examples/BottomNavigationBarExample.tsx +0 -94
  149. package/Examples/SampleUI/src/Examples/BottomNavigationExample.tsx +0 -205
  150. package/Examples/SampleUI/src/Examples/ButtonExample.tsx +0 -405
  151. package/Examples/SampleUI/src/Examples/CardExample.tsx +0 -245
  152. package/Examples/SampleUI/src/Examples/CheckboxExample.tsx +0 -87
  153. package/Examples/SampleUI/src/Examples/CheckboxItemExample.tsx +0 -72
  154. package/Examples/SampleUI/src/Examples/ChipExample.tsx +0 -432
  155. package/Examples/SampleUI/src/Examples/DataTableExample.tsx +0 -128
  156. package/Examples/SampleUI/src/Examples/DialogExample.tsx +0 -217
  157. package/Examples/SampleUI/src/Examples/Dialogs/DialogTextComponent.tsx +0 -31
  158. package/Examples/SampleUI/src/Examples/Dialogs/DialogTrackingTest.tsx +0 -307
  159. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithCustomColors.tsx +0 -57
  160. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithDismissableBackButton.tsx +0 -38
  161. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithIcon.tsx +0 -42
  162. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithLoadingIndicator.tsx +0 -48
  163. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithLongText.tsx +0 -81
  164. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithRadioBtns.tsx +0 -111
  165. package/Examples/SampleUI/src/Examples/Dialogs/UndismissableDialog.tsx +0 -30
  166. package/Examples/SampleUI/src/Examples/Dialogs/index.tsx +0 -44
  167. package/Examples/SampleUI/src/Examples/DividerExample.tsx +0 -30
  168. package/Examples/SampleUI/src/Examples/FABExample.tsx +0 -226
  169. package/Examples/SampleUI/src/Examples/IconButtonExample.tsx +0 -230
  170. package/Examples/SampleUI/src/Examples/IconExample.tsx +0 -50
  171. package/Examples/SampleUI/src/Examples/ListAccordionExample.tsx +0 -65
  172. package/Examples/SampleUI/src/Examples/ListAccordionGroupExample.tsx +0 -80
  173. package/Examples/SampleUI/src/Examples/ListItemExample.tsx +0 -310
  174. package/Examples/SampleUI/src/Examples/ListSectionExample.tsx +0 -159
  175. package/Examples/SampleUI/src/Examples/MaterialBottomTabNavigatorExample.tsx +0 -87
  176. package/Examples/SampleUI/src/Examples/MenuExample.tsx +0 -211
  177. package/Examples/SampleUI/src/Examples/ProgressBarExample.tsx +0 -142
  178. package/Examples/SampleUI/src/Examples/RadioButtonExample.tsx +0 -104
  179. package/Examples/SampleUI/src/Examples/RadioButtonGroupExample.tsx +0 -67
  180. package/Examples/SampleUI/src/Examples/RadioButtonItemExample.tsx +0 -77
  181. package/Examples/SampleUI/src/Examples/SearchbarExample.tsx +0 -249
  182. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonCustomColorCheck.tsx +0 -93
  183. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonDefault.tsx +0 -49
  184. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonDisabled.tsx +0 -47
  185. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonMultiselect.tsx +0 -50
  186. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonMultiselectIcons.tsx +0 -49
  187. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonMultiselectRealCase.tsx +0 -114
  188. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonOnlyIcons.tsx +0 -40
  189. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonOnlyIconsWithCheck.tsx +0 -43
  190. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonRealCase.tsx +0 -97
  191. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonWithDensity.tsx +0 -47
  192. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonWithSelectedCheck.tsx +0 -52
  193. package/Examples/SampleUI/src/Examples/SegmentedButtons/index.ts +0 -9
  194. package/Examples/SampleUI/src/Examples/SegmentedButtonsExample.tsx +0 -57
  195. package/Examples/SampleUI/src/Examples/SnackbarExample.tsx +0 -141
  196. package/Examples/SampleUI/src/Examples/SurfaceExample.tsx +0 -130
  197. package/Examples/SampleUI/src/Examples/SwitchExample.tsx +0 -105
  198. package/Examples/SampleUI/src/Examples/TeamDetails.tsx +0 -291
  199. package/Examples/SampleUI/src/Examples/TeamsList.tsx +0 -57
  200. package/Examples/SampleUI/src/Examples/TextExample.tsx +0 -132
  201. package/Examples/SampleUI/src/Examples/TextInputExample.tsx +0 -914
  202. package/Examples/SampleUI/src/Examples/ThemeExample.tsx +0 -41
  203. package/Examples/SampleUI/src/Examples/ThemingWithReactNavigation.tsx +0 -75
  204. package/Examples/SampleUI/src/Examples/ToggleButtonExample.tsx +0 -128
  205. package/Examples/SampleUI/src/Examples/TooltipExample.tsx +0 -191
  206. package/Examples/SampleUI/src/Examples/TouchableRippleExample.tsx +0 -37
  207. package/Examples/SampleUI/src/RootNavigator.tsx +0 -95
  208. package/Examples/SampleUI/src/ScreenWrapper.tsx +0 -67
  209. package/Examples/SampleUI/src/components/ActivityIndicator.tsx +0 -254
  210. package/Examples/SampleUI/src/components/Appbar/Appbar.tsx +0 -364
  211. package/Examples/SampleUI/src/components/Appbar/AppbarAction.tsx +0 -132
  212. package/Examples/SampleUI/src/components/Appbar/AppbarBackAction.tsx +0 -77
  213. package/Examples/SampleUI/src/components/Appbar/AppbarBackIcon.tsx +0 -52
  214. package/Examples/SampleUI/src/components/Appbar/AppbarContent.tsx +0 -249
  215. package/Examples/SampleUI/src/components/Appbar/AppbarHeader.tsx +0 -174
  216. package/Examples/SampleUI/src/components/Appbar/index.ts +0 -22
  217. package/Examples/SampleUI/src/components/Appbar/utils.ts +0 -188
  218. package/Examples/SampleUI/src/components/Avatar/Avatar.tsx +0 -8
  219. package/Examples/SampleUI/src/components/Avatar/AvatarIcon.tsx +0 -87
  220. package/Examples/SampleUI/src/components/Avatar/AvatarImage.tsx +0 -128
  221. package/Examples/SampleUI/src/components/Avatar/AvatarText.tsx +0 -127
  222. package/Examples/SampleUI/src/components/Badge.tsx +0 -138
  223. package/Examples/SampleUI/src/components/Banner.tsx +0 -302
  224. package/Examples/SampleUI/src/components/BottomNavigation/BottomNavigation.tsx +0 -643
  225. package/Examples/SampleUI/src/components/BottomNavigation/BottomNavigationBar.tsx +0 -1039
  226. package/Examples/SampleUI/src/components/BottomNavigation/BottomNavigationRouteScreen.tsx +0 -31
  227. package/Examples/SampleUI/src/components/BottomNavigation/utils.ts +0 -70
  228. package/Examples/SampleUI/src/components/Button/Button.tsx +0 -503
  229. package/Examples/SampleUI/src/components/Button/utils.tsx +0 -272
  230. package/Examples/SampleUI/src/components/Card/Card.tsx +0 -373
  231. package/Examples/SampleUI/src/components/Card/CardActions.tsx +0 -74
  232. package/Examples/SampleUI/src/components/Card/CardContent.tsx +0 -99
  233. package/Examples/SampleUI/src/components/Card/CardCover.tsx +0 -96
  234. package/Examples/SampleUI/src/components/Card/CardTitle.tsx +0 -236
  235. package/Examples/SampleUI/src/components/Card/utils.tsx +0 -110
  236. package/Examples/SampleUI/src/components/Checkbox/Checkbox.tsx +0 -78
  237. package/Examples/SampleUI/src/components/Checkbox/CheckboxAndroid.tsx +0 -180
  238. package/Examples/SampleUI/src/components/Checkbox/CheckboxIOS.tsx +0 -104
  239. package/Examples/SampleUI/src/components/Checkbox/CheckboxItem.tsx +0 -236
  240. package/Examples/SampleUI/src/components/Checkbox/index.ts +0 -19
  241. package/Examples/SampleUI/src/components/Checkbox/utils.ts +0 -183
  242. package/Examples/SampleUI/src/components/Chip/Chip.tsx +0 -513
  243. package/Examples/SampleUI/src/components/Chip/helpers.tsx +0 -322
  244. package/Examples/SampleUI/src/components/CrossFadeIcon.tsx +0 -140
  245. package/Examples/SampleUI/src/components/DataTable/DataTable.tsx +0 -138
  246. package/Examples/SampleUI/src/components/DataTable/DataTableCell.tsx +0 -132
  247. package/Examples/SampleUI/src/components/DataTable/DataTableHeader.tsx +0 -82
  248. package/Examples/SampleUI/src/components/DataTable/DataTablePagination.tsx +0 -407
  249. package/Examples/SampleUI/src/components/DataTable/DataTableRow.tsx +0 -107
  250. package/Examples/SampleUI/src/components/DataTable/DataTableTitle.tsx +0 -208
  251. package/Examples/SampleUI/src/components/Dialog/Dialog.tsx +0 -191
  252. package/Examples/SampleUI/src/components/Dialog/DialogActions.tsx +0 -94
  253. package/Examples/SampleUI/src/components/Dialog/DialogContent.tsx +0 -54
  254. package/Examples/SampleUI/src/components/Dialog/DialogIcon.tsx +0 -100
  255. package/Examples/SampleUI/src/components/Dialog/DialogScrollArea.tsx +0 -88
  256. package/Examples/SampleUI/src/components/Dialog/DialogTitle.tsx +0 -94
  257. package/Examples/SampleUI/src/components/Divider.tsx +0 -102
  258. package/Examples/SampleUI/src/components/Drawer/Drawer.tsx +0 -8
  259. package/Examples/SampleUI/src/components/Drawer/DrawerCollapsedItem.tsx +0 -282
  260. package/Examples/SampleUI/src/components/Drawer/DrawerItem.tsx +0 -209
  261. package/Examples/SampleUI/src/components/Drawer/DrawerSection.tsx +0 -138
  262. package/Examples/SampleUI/src/components/FAB/AnimatedFAB.tsx +0 -619
  263. package/Examples/SampleUI/src/components/FAB/FAB.tsx +0 -371
  264. package/Examples/SampleUI/src/components/FAB/FABGroup.tsx +0 -532
  265. package/Examples/SampleUI/src/components/FAB/index.ts +0 -13
  266. package/Examples/SampleUI/src/components/FAB/utils.ts +0 -474
  267. package/Examples/SampleUI/src/components/HelperText/HelperText.tsx +0 -168
  268. package/Examples/SampleUI/src/components/HelperText/utils.ts +0 -30
  269. package/Examples/SampleUI/src/components/Icon.tsx +0 -170
  270. package/Examples/SampleUI/src/components/IconButton/IconButton.tsx +0 -234
  271. package/Examples/SampleUI/src/components/IconButton/utils.ts +0 -190
  272. package/Examples/SampleUI/src/components/List/List.tsx +0 -20
  273. package/Examples/SampleUI/src/components/List/ListAccordion.tsx +0 -391
  274. package/Examples/SampleUI/src/components/List/ListAccordionGroup.tsx +0 -88
  275. package/Examples/SampleUI/src/components/List/ListIcon.tsx +0 -79
  276. package/Examples/SampleUI/src/components/List/ListImage.tsx +0 -89
  277. package/Examples/SampleUI/src/components/List/ListItem.tsx +0 -313
  278. package/Examples/SampleUI/src/components/List/ListSection.tsx +0 -87
  279. package/Examples/SampleUI/src/components/List/ListSubheader.tsx +0 -79
  280. package/Examples/SampleUI/src/components/List/utils.ts +0 -113
  281. package/Examples/SampleUI/src/components/MaterialCommunityIcon.tsx +0 -121
  282. package/Examples/SampleUI/src/components/Menu/Menu.tsx +0 -711
  283. package/Examples/SampleUI/src/components/Menu/MenuItem.tsx +0 -257
  284. package/Examples/SampleUI/src/components/Menu/utils.ts +0 -110
  285. package/Examples/SampleUI/src/components/Modal.tsx +0 -245
  286. package/Examples/SampleUI/src/components/Portal/Portal.tsx +0 -69
  287. package/Examples/SampleUI/src/components/Portal/PortalConsumer.tsx +0 -44
  288. package/Examples/SampleUI/src/components/Portal/PortalHost.tsx +0 -143
  289. package/Examples/SampleUI/src/components/Portal/PortalManager.tsx +0 -54
  290. package/Examples/SampleUI/src/components/ProgressBar.tsx +0 -292
  291. package/Examples/SampleUI/src/components/RadioButton/RadioButton.tsx +0 -86
  292. package/Examples/SampleUI/src/components/RadioButton/RadioButtonAndroid.tsx +0 -202
  293. package/Examples/SampleUI/src/components/RadioButton/RadioButtonGroup.tsx +0 -67
  294. package/Examples/SampleUI/src/components/RadioButton/RadioButtonIOS.tsx +0 -130
  295. package/Examples/SampleUI/src/components/RadioButton/RadioButtonItem.tsx +0 -268
  296. package/Examples/SampleUI/src/components/RadioButton/index.ts +0 -22
  297. package/Examples/SampleUI/src/components/RadioButton/utils.ts +0 -37
  298. package/Examples/SampleUI/src/components/Searchbar.tsx +0 -459
  299. package/Examples/SampleUI/src/components/SegmentedButtons/SegmentedButtonItem.tsx +0 -271
  300. package/Examples/SampleUI/src/components/SegmentedButtons/SegmentedButtons.tsx +0 -197
  301. package/Examples/SampleUI/src/components/SegmentedButtons/utils.ts +0 -179
  302. package/Examples/SampleUI/src/components/Snackbar.tsx +0 -430
  303. package/Examples/SampleUI/src/components/Surface.tsx +0 -376
  304. package/Examples/SampleUI/src/components/Switch/Switch.tsx +0 -108
  305. package/Examples/SampleUI/src/components/Switch/utils.ts +0 -113
  306. package/Examples/SampleUI/src/components/TextInput/Addons/Outline.tsx +0 -64
  307. package/Examples/SampleUI/src/components/TextInput/Addons/Underline.tsx +0 -78
  308. package/Examples/SampleUI/src/components/TextInput/Adornment/TextInputAdornment.tsx +0 -208
  309. package/Examples/SampleUI/src/components/TextInput/Adornment/TextInputAffix.tsx +0 -212
  310. package/Examples/SampleUI/src/components/TextInput/Adornment/TextInputIcon.tsx +0 -195
  311. package/Examples/SampleUI/src/components/TextInput/Adornment/enums.tsx +0 -12
  312. package/Examples/SampleUI/src/components/TextInput/Adornment/types.tsx +0 -11
  313. package/Examples/SampleUI/src/components/TextInput/Adornment/utils.ts +0 -48
  314. package/Examples/SampleUI/src/components/TextInput/Label/InputLabel.tsx +0 -217
  315. package/Examples/SampleUI/src/components/TextInput/Label/LabelBackground.tsx +0 -100
  316. package/Examples/SampleUI/src/components/TextInput/TextInput.tsx +0 -572
  317. package/Examples/SampleUI/src/components/TextInput/TextInputFlat.tsx +0 -475
  318. package/Examples/SampleUI/src/components/TextInput/TextInputOutlined.tsx +0 -450
  319. package/Examples/SampleUI/src/components/TextInput/constants.tsx +0 -48
  320. package/Examples/SampleUI/src/components/TextInput/helpers.tsx +0 -612
  321. package/Examples/SampleUI/src/components/TextInput/types.tsx +0 -155
  322. package/Examples/SampleUI/src/components/ToggleButton/ToggleButton.tsx +0 -187
  323. package/Examples/SampleUI/src/components/ToggleButton/ToggleButtonGroup.tsx +0 -72
  324. package/Examples/SampleUI/src/components/ToggleButton/ToggleButtonRow.tsx +0 -107
  325. package/Examples/SampleUI/src/components/ToggleButton/index.ts +0 -16
  326. package/Examples/SampleUI/src/components/ToggleButton/utils.ts +0 -26
  327. package/Examples/SampleUI/src/components/Tooltip/Tooltip.tsx +0 -249
  328. package/Examples/SampleUI/src/components/Tooltip/utils.ts +0 -129
  329. package/Examples/SampleUI/src/components/TouchableRipple/Pressable.tsx +0 -41
  330. package/Examples/SampleUI/src/components/TouchableRipple/TouchableRipple.native.tsx +0 -145
  331. package/Examples/SampleUI/src/components/TouchableRipple/TouchableRipple.tsx +0 -317
  332. package/Examples/SampleUI/src/components/TouchableRipple/utils.ts +0 -66
  333. package/Examples/SampleUI/src/components/Typography/AnimatedText.tsx +0 -107
  334. package/Examples/SampleUI/src/components/Typography/Text.tsx +0 -184
  335. package/Examples/SampleUI/src/components/Typography/types.tsx +0 -5
  336. package/Examples/SampleUI/src/components/Typography/v2/Caption.tsx +0 -50
  337. package/Examples/SampleUI/src/components/Typography/v2/Headline.tsx +0 -52
  338. package/Examples/SampleUI/src/components/Typography/v2/Paragraph.tsx +0 -49
  339. package/Examples/SampleUI/src/components/Typography/v2/StyledText.tsx +0 -56
  340. package/Examples/SampleUI/src/components/Typography/v2/Subheading.tsx +0 -50
  341. package/Examples/SampleUI/src/components/Typography/v2/Text.tsx +0 -62
  342. package/Examples/SampleUI/src/components/Typography/v2/Title.tsx +0 -49
  343. package/Examples/SampleUI/src/components/Typography/v2/index.ts +0 -5
  344. package/Examples/SampleUI/src/core/PaperProvider.tsx +0 -122
  345. package/Examples/SampleUI/src/core/SafeAreaProviderCompat.tsx +0 -65
  346. package/Examples/SampleUI/src/core/settings.tsx +0 -23
  347. package/Examples/SampleUI/src/core/theming.tsx +0 -170
  348. package/Examples/SampleUI/src/index.native.tsx +0 -285
  349. package/Examples/SampleUI/src/index.tsx +0 -226
  350. package/Examples/SampleUI/src/react-navigation/index.tsx +0 -19
  351. package/Examples/SampleUI/src/react-navigation/navigators/createMaterialBottomTabNavigator.tsx +0 -72
  352. package/Examples/SampleUI/src/react-navigation/types.tsx +0 -126
  353. package/Examples/SampleUI/src/react-navigation/views/MaterialBottomTabView.tsx +0 -140
  354. package/Examples/SampleUI/src/styles/__tests__/fonts.test.js +0 -290
  355. package/Examples/SampleUI/src/styles/fonts.tsx +0 -143
  356. package/Examples/SampleUI/src/styles/overlay.tsx +0 -70
  357. package/Examples/SampleUI/src/styles/shadow.tsx +0 -109
  358. package/Examples/SampleUI/src/styles/themes/index.ts +0 -4
  359. package/Examples/SampleUI/src/styles/themes/v2/DarkTheme.tsx +0 -30
  360. package/Examples/SampleUI/src/styles/themes/v2/LightTheme.tsx +0 -30
  361. package/Examples/SampleUI/src/styles/themes/v2/colors.tsx +0 -277
  362. package/Examples/SampleUI/src/styles/themes/v3/DarkTheme.tsx +0 -66
  363. package/Examples/SampleUI/src/styles/themes/v3/LightTheme.tsx +0 -69
  364. package/Examples/SampleUI/src/styles/themes/v3/tokens.tsx +0 -230
  365. package/Examples/SampleUI/src/utils/BackHandler/BackHandler.native.tsx +0 -3
  366. package/Examples/SampleUI/src/utils/BackHandler/BackHandler.tsx +0 -11
  367. package/Examples/SampleUI/src/utils/addEventListener.tsx +0 -56
  368. package/Examples/SampleUI/src/utils/forwardRef.tsx +0 -23
  369. package/Examples/SampleUI/src/utils/getContrastingColor.tsx +0 -15
  370. package/Examples/SampleUI/src/utils/hasTouchHandler.tsx +0 -23
  371. package/Examples/SampleUI/src/utils/roundLayoutSize.ts +0 -2
  372. package/Examples/SampleUI/src/utils/splitStyles.ts +0 -60
  373. package/Examples/SampleUI/src/utils/useAnimatedValue.tsx +0 -9
  374. package/Examples/SampleUI/src/utils/useAnimatedValueArray.tsx +0 -13
  375. package/Examples/SampleUI/src/utils/useIsKeyboardShown.tsx +0 -55
  376. package/Examples/SampleUI/src/utils/useLayout.tsx +0 -29
  377. package/Examples/SampleUI/src/utils/useLazyRef.tsx +0 -11
  378. package/Examples/SampleUI/tsconfig.json +0 -3
  379. package/Examples/SampleUI/utils/index.ts +0 -1426
  380. package/cli/__tests__/doctor.test.mjs +0 -88
@@ -129,9 +129,28 @@ android {
129
129
  }
130
130
  }
131
131
 
132
+ // Java 17 — matched to React Native 0.82's own baseline (its Gradle plugin
133
+ // targets JavaVersion.VERSION_17), so this imposes no requirement a consumer
134
+ // does not already meet building an RN app. This file is compiled inside the
135
+ // consumer's Gradle build, so anything raised here becomes their floor: 21
136
+ // would put us above RN's baseline for no benefit, since the bridge uses no
137
+ // Java 21 language features. Bytecode level only — deliberately NOT a
138
+ // toolchain, so a consumer on JDK 21+ is free to build with it.
139
+ //
140
+ // Note this is independent of the Connect Android SDK shipping Java 21
141
+ // bytecode: D8 dexes major-65 classes happily, and a JDK 17 assembleDebug
142
+ // against that AAR succeeds. Only JVM unit tests that load those classes need
143
+ // a 21 runtime, which is configured in the (unpublished) example build.
132
144
  compileOptions {
133
- sourceCompatibility JavaVersion.VERSION_1_8
134
- targetCompatibility JavaVersion.VERSION_1_8
145
+ sourceCompatibility JavaVersion.VERSION_17
146
+ targetCompatibility JavaVersion.VERSION_17
147
+ }
148
+
149
+ // Kept in lockstep with compileOptions above — AGP fails the build with
150
+ // "Inconsistent JVM-target compatibility" if the Java and Kotlin targets
151
+ // diverge.
152
+ kotlinOptions {
153
+ jvmTarget = '17'
135
154
  }
136
155
 
137
156
  sourceSets {
@@ -154,6 +173,39 @@ repositories {
154
173
  allprojects {
155
174
  repositories {
156
175
  google()
176
+
177
+ // Beta Connect artifacts publish HERE, not to Maven Central. Central is
178
+ // still consulted below — it carries every version up to 11.0.31-beta —
179
+ // but newer betas land only in this GitHub-hosted Maven tree, so a build
180
+ // that does not know about it silently freezes `connect:+` at whatever
181
+ // Central happens to hold. That failure is invisible: resolution
182
+ // succeeds, just against a stale SDK, and the gap widens with each beta.
183
+ //
184
+ // Declaring it is what fixes that; the position is close to cosmetic.
185
+ // `connect` is resolved through a dynamic version, and for those Gradle
186
+ // queries every declared repository and takes the newest match across
187
+ // all of them rather than stopping at the first repository that answers.
188
+ // Verified: with this entry declared LAST, after mavenCentral(),
189
+ // `connect:+` still resolves to the newest beta here rather than to
190
+ // Central's older newest. Order only decides which repository serves a
191
+ // PINNED version that both carry, where the artifact is identical
192
+ // anyway — it is kept first so a pin on a beta is served by the tree
193
+ // that is authoritative for betas.
194
+ //
195
+ // The content filter is not cosmetic. Without it every dependency in
196
+ // the build (React Native, Kotlin, AndroidX, …) would hit
197
+ // raw.githubusercontent and 404 before falling through to a repository
198
+ // that has it. Inclusive `content`, not `exclusiveContent`, so Central
199
+ // still answers for versions this tree does not carry.
200
+ //
201
+ // Declared only here, not also in the top-level `repositories` block:
202
+ // `allprojects` covers this project too, so both would feed the same
203
+ // resolution and the pair could drift.
204
+ maven {
205
+ url = "https://raw.githubusercontent.com/go-acoustic/Android_Maven/master"
206
+ content { includeGroup "io.github.go-acoustic" }
207
+ }
208
+
157
209
  mavenCentral()
158
210
  maven { url="https://s01.oss.sonatype.org/content/groups/staging" }
159
211
 
@@ -179,6 +231,34 @@ def acousticPushEnabled = (acousticConfig.Connect?.PushEnabled ?: false).toStrin
179
231
  def acousticVersionPin = (acousticConfig.Connect?.AndroidVersion ?: '').trim()
180
232
  def acousticVersion = acousticVersionPin.isEmpty() ? '+' : acousticVersionPin
181
233
  def acousticArtifact = acousticPushEnabled ? 'connect-push-fcm' : 'connect'
234
+
235
+ // Connect co-versions `eocore` + `tealeaf` with itself only from 11.0.18-beta
236
+ // onward — and from that release their POM scope is `runtime`, which drops them
237
+ // off the compile classpath (see the companion declarations below).
238
+ //
239
+ // Earlier releases in the supported range ship `tealeaf` on its own 10.4.x line
240
+ // (with eocore arriving transitively through it) at COMPILE scope, so there the
241
+ // companions are both unnecessary AND unresolvable: eocore/tealeaf 11.0.16-beta
242
+ // simply do not exist on Maven Central. Guard on the explicit pin so a consumer
243
+ // who pinned an older Connect keeps building. An empty pin means `+`, which
244
+ // always resolves to the newest (co-versioned) release.
245
+ def acousticCompanionsRequired = true
246
+ if (!acousticVersionPin.isEmpty()) {
247
+ // Compare only the numeric core, ignoring any -beta/+build qualifier: a
248
+ // 11.0.18-beta pin must count as >= the 11.0.18 floor. Encoded as one integer
249
+ // because Groovy's <=> does not compare two ArrayLists.
250
+ def core = acousticVersionPin.replaceAll(/[-+].*$/, '').tokenize('.')
251
+ def nums = (0..2).collect { i -> (i < core.size() && core[i].isInteger()) ? core[i].toInteger() : 0 }
252
+ // Upper bound as well as lower, so that a pin outside the supported range
253
+ // fails on the `strictly '[11.0.11, 12.0.0)'` constraint in the
254
+ // `constraints { }` block at the bottom of `dependencies` — which names both
255
+ // the range and the reason — rather than on an unresolvable companion
256
+ // coordinate. Verified: without this bound a 12.0.0 pin reported
257
+ // "Could not find io.github.go-acoustic:eocore:12.0.0", burying the real cause.
258
+ def pinCode = nums[0] * 1000000 + nums[1] * 1000 + nums[2]
259
+ acousticCompanionsRequired = pinCode >= 11_000_018 && pinCode < 12_000_000
260
+ }
261
+ println "AcousticConnectRN: companionCompileDeps=$acousticCompanionsRequired (pin='$acousticVersionPin')"
182
262
  println "AcousticConnectRN: PushEnabled=$acousticPushEnabled, artifact=io.github.go-acoustic:$acousticArtifact:$acousticVersion"
183
263
 
184
264
  dependencies {
@@ -200,6 +280,42 @@ dependencies {
200
280
  //noinspection GradleDynamicVersion
201
281
  implementation "io.github.go-acoustic:$acousticArtifact:$acousticVersion"
202
282
 
283
+ // Restore the compile classpath for Connect's internal modules. This bridge
284
+ // calls into both directly — `com.ibm.eo.EOCore`,
285
+ // `com.ibm.eo.model.EOMonitoringLevel`, `com.tl.uic.Tealeaf`,
286
+ // `com.tl.uic.model.ScreenviewType`,
287
+ // `com.tl.uic.util.{DialogUtil,LayoutUtil,keyboardview.KeyboardView}` — so
288
+ // with them at `runtime` scope `compileDebugKotlin` fails with ~34
289
+ // "Unresolved reference 'ibm' / 'tl' / 'EOCore'" errors.
290
+ //
291
+ // compileOnly, not implementation: the artifacts still reach the runtime graph
292
+ // through Connect's own transitive, so declaring them there too would risk a
293
+ // second, independently-resolved copy.
294
+ //
295
+ // Both scopes are required — compileOnly does NOT propagate to the unit-test
296
+ // compile classpath, and android/src/test imports com.ibm.eo.* as well, so
297
+ // compileDebugUnitTestKotlin fails without the testCompileOnly pair.
298
+ //
299
+ // Correct for BOTH artifact variants. `connect-push-fcm` does not declare
300
+ // eocore/tealeaf itself — its POM depends on `connect` at compile scope, and
301
+ // eocore/tealeaf reach the graph through that at `runtime` scope, so the
302
+ // compile classpath is short of them exactly as in the analytics-only case.
303
+ // The variants are co-versioned (connect-push-fcm 11.0.18-beta -> connect
304
+ // 11.0.18-beta -> eocore/tealeaf 11.0.18-beta), so `$acousticVersion` is the
305
+ // right coordinate either way. Confirmed on debugCompileClasspath with
306
+ // PushEnabled=true; gating these on `!acousticPushEnabled` would break the
307
+ // push variant rather than protect it.
308
+ if (acousticCompanionsRequired) {
309
+ //noinspection GradleDynamicVersion
310
+ compileOnly "io.github.go-acoustic:eocore:$acousticVersion"
311
+ //noinspection GradleDynamicVersion
312
+ compileOnly "io.github.go-acoustic:tealeaf:$acousticVersion"
313
+ //noinspection GradleDynamicVersion
314
+ testCompileOnly "io.github.go-acoustic:eocore:$acousticVersion"
315
+ //noinspection GradleDynamicVersion
316
+ testCompileOnly "io.github.go-acoustic:tealeaf:$acousticVersion"
317
+ }
318
+
203
319
  // Firebase Cloud Messaging — required by the push variant. The
204
320
  // `connect-push-fcm` AAR calls `com.google.firebase.messaging.*`
205
321
  // (its `FCMPushService` extends `FirebaseMessagingService`) but its
@@ -211,7 +327,7 @@ dependencies {
211
327
  // builds pull zero Firebase. The host app still supplies its own
212
328
  // `google-services.json` and applies the `com.google.gms.google-services`
213
329
  // plugin (the bare-workflow demo does this conditionally). The BoM aligns
214
- // messaging + its installations/datatransport transitives. See CA-144314.
330
+ // messaging + its installations/datatransport transitives.
215
331
  if (acousticPushEnabled) {
216
332
  implementation platform('com.google.firebase:firebase-bom:33.7.0')
217
333
  implementation 'com.google.firebase:firebase-messaging'
@@ -150,7 +150,33 @@ def updateConnectBasicConfig(mp, json) {
150
150
  println("Updating:$propertiesFile")
151
151
  }
152
152
 
153
- def updateLayoutConfig(mp, json){
153
+ /**
154
+ * Recursively merges `override` onto `base`. Nested objects merge key by key;
155
+ * every other value, arrays included, is replaced outright. Mirrors
156
+ * ConnectRNParsing.deepMerging on iOS so both platforms layer a shared config
157
+ * block and a platform-specific one the same way.
158
+ */
159
+ def deepMergeConfig(base, override) {
160
+ if (!(base instanceof Map) || !(override instanceof Map)) {
161
+ return override
162
+ }
163
+ def merged = [:]
164
+ merged.putAll(base)
165
+ override.each { key, value ->
166
+ if (merged[key] instanceof Map && value instanceof Map) {
167
+ merged[key] = deepMergeConfig(merged[key], value)
168
+ } else {
169
+ merged[key] = value
170
+ }
171
+ }
172
+ return merged
173
+ }
174
+
175
+ def updateLayoutConfig(mp, json, appAssetsDir){
176
+ // ── Legacy file, behaviour unchanged ────────────────────────────────────
177
+ // TealeafLayoutConfig.json is what this script has always written. The
178
+ // Connect SDK does not read it (see below), but it is left exactly as it
179
+ // was so nothing that does read it regresses.
154
180
  def layoutConfigPath = "$mp/src/main/assets/TealeafLayoutConfig.json"
155
181
  def layoutConfigDefaultPath = "$mp/src/main/assets/TealeafLayoutConfigDefault.json"
156
182
  def override = json.Connect.layoutConfig;
@@ -165,13 +191,71 @@ def updateLayoutConfig(mp, json){
165
191
  layoutConfigFile.text = layoutConfigDefaultFile.text
166
192
  }
167
193
  println("Updating:$layoutConfigPath")
194
+
195
+ // ── The file the Connect SDK actually reads ─────────────────────────────
196
+ // EOCore's ConfigService.getConfig composes "<moduleName>LayoutConfig.json"
197
+ // and sets moduleName to "Connect" whenever the Connect class is on the
198
+ // classpath — which it always is here. So the SDK reads
199
+ // ConnectLayoutConfig.json, never the Tealeaf-branded name above.
200
+ //
201
+ // Compose it the same way iOS does: the shared `layoutConfig` block is the
202
+ // base and `layoutConfigAndroid` is deep-merged over it, so a platform
203
+ // value wins key by key while the shared baseline survives.
204
+ def connectLayoutConfigFile = new File("$mp/src/main/assets/ConnectLayoutConfig.json")
205
+ def shared = json.Connect.layoutConfig
206
+ def androidSpecific = json.Connect.layoutConfigAndroid
207
+ def merged = shared
208
+ if (androidSpecific != null) {
209
+ merged = (merged == null) ? androidSpecific : deepMergeConfig(merged, androidSpecific)
210
+ }
211
+
212
+ if (merged != null) {
213
+ connectLayoutConfigFile.text = JsonOutput.prettyPrint(JsonOutput.toJson(merged))
214
+ println("Updating:${connectLayoutConfigFile.path}")
215
+
216
+ // Android asset merging gives the app's own sourceSet priority over a
217
+ // library's, so an app-level copy silently wins over what we just
218
+ // wrote. That is deliberate — integrations that already ship their own
219
+ // file keep working untouched — but it is worth saying out loud,
220
+ // because otherwise the ConnectConfig.json block looks ignored.
221
+ if (appAssetsDir != null) {
222
+ def appAsset = new File(appAssetsDir, "ConnectLayoutConfig.json")
223
+ if (appAsset.exists()) {
224
+ println("**Acoustic WARNING: ${appAsset.path} exists. Android asset merging gives your app's copy priority over the plugin's, so the layout block in ConnectConfig.json will NOT take effect. Keep one or the other, not both.")
225
+ }
226
+ }
227
+ } else if (connectLayoutConfigFile.exists()) {
228
+ // Nothing configured. Remove a file an earlier build wrote so the
229
+ // default inside the Connect artifact applies again. Writing a default
230
+ // copy here instead would shadow the artifact for every consumer and
231
+ // change behaviour for integrations that never asked for an override.
232
+ connectLayoutConfigFile.delete()
233
+ println("Removed:${connectLayoutConfigFile.path} (no layout config in ConnectConfig.json; using the Connect artifact default)")
234
+ }
168
235
  }
169
236
 
170
- def updateTealeafAdvConfig(mp, json) {
171
- def tealeafAdvConfigPath = "$mp/src/main/assets/TealeafAdvancedConfig.json"
172
- println("Reading file $tealeafAdvConfigPath")
173
- def jsonSlurper = new JsonSlurper()
174
- def tealeafAdvConfigData = jsonSlurper.parse(new File(tealeafAdvConfigPath))
237
+ def updateAdvConfig(mp, json) {
238
+ // The overrides are collected once and then written to both advanced-config files.
239
+ //
240
+ // TealeafAdvancedConfig.json is what this script has always written. The Connect SDK
241
+ // does not read it: EOCore's ConfigService.getConfig composes
242
+ // "<moduleName>AdvancedConfig.json" and sets moduleName to "Connect" whenever the
243
+ // Connect class is on the classpath — which it always is here. So every override
244
+ // written only to the Tealeaf-branded name was silently discarded, including
245
+ // GoogleWebViewEnabled and ExtendsGoogleWebViewClient, which are the documented way to
246
+ // opt a WebView out of auto instrumentation. The legacy file is still written so
247
+ // nothing that does read it regresses.
248
+ //
249
+ // Neither file is required. This script runs inside the consumer's build, so a missing
250
+ // asset must not fail it — advanced config is optional by nature, and if the package has
251
+ // been pruned or repackaged without ConnectAdvancedConfig.json the app still runs on the
252
+ // defaults bundled in the SDK's own AAR. Losing the overrides is worth saying out loud,
253
+ // though, which is the difference between the two branches below.
254
+ def advConfigTargets = [
255
+ [path: "$mp/src/main/assets/TealeafAdvancedConfig.json", readBySdk: false],
256
+ [path: "$mp/src/main/assets/ConnectAdvancedConfig.json", readBySdk: true],
257
+ ]
258
+ def overrides = [:]
175
259
 
176
260
  json.each { key, value ->
177
261
  if(key != "Connect"){ return }
@@ -223,14 +307,39 @@ def updateTealeafAdvConfig(mp, json) {
223
307
  config_key == "WebViewDelay" ||
224
308
  config_key == "WebViewSetTagForId" ) {
225
309
  println(config_key + "=" + config_value)
226
- tealeafAdvConfigData[config_key] = config_value
310
+ overrides[config_key] = config_value
227
311
  }
228
312
  }
229
313
  }
230
314
 
231
- def tealeafAdvConfigFile = new File(tealeafAdvConfigPath)
232
- tealeafAdvConfigFile.text = JsonOutput.toJson(tealeafAdvConfigData)
233
- println("Updating:$tealeafAdvConfigPath")
315
+ // Merge into each file rather than replacing it: both carry values this script never
316
+ // sets, most importantly LibraryVersion, which the SDK reports in its X-Tealeaf header.
317
+ def jsonSlurper = new JsonSlurper()
318
+ advConfigTargets.each { target ->
319
+ def advConfigFile = new File(target.path)
320
+
321
+ if (!advConfigFile.exists()) {
322
+ if (target.readBySdk) {
323
+ println("WARNING: Acoustic Connect: ${advConfigFile.name} is not present in " +
324
+ "the SDK package (looked in ${advConfigFile.parent}). That is the file the " +
325
+ "Connect SDK reads its advanced configuration from, so the advanced " +
326
+ "settings in ConnectConfig.json's Connect block will NOT be applied. The " +
327
+ "SDK still runs, on the defaults bundled in its own AAR.")
328
+ } else {
329
+ println("Skipping missing legacy file:${target.path}")
330
+ }
331
+
332
+ return
333
+ }
334
+
335
+ println("Reading file ${target.path}")
336
+ def advConfigData = jsonSlurper.parse(advConfigFile)
337
+ advConfigData.putAll(overrides)
338
+ // Pretty-printed to match how updateLayoutConfig writes its file, and so an SDK
339
+ // upgrade that ships a reformatted asset does not produce a whole-file diff.
340
+ advConfigFile.text = JsonOutput.prettyPrint(JsonOutput.toJson(advConfigData))
341
+ println("Updating:${target.path}")
342
+ }
234
343
  }
235
344
 
236
345
  def updateEOCoreBasicConfig(mp, json) {
@@ -376,7 +485,6 @@ try {
376
485
  // "Project with path ... could not be found" during sync. Resolving the
377
486
  // package via Node (the same mechanism the injected `apply from:` entry
378
487
  // point uses) works regardless of how/whether the library was autolinked.
379
- // See CA-144314.
380
488
  def sdkPackageJson = ["node", "--print", "require.resolve('react-native-acoustic-connect/package.json')"]
381
489
  .execute(null, project.rootDir).text.trim()
382
490
  def module_path = new File(sdkPackageJson).getParentFile().getAbsolutePath() + "/android"
@@ -390,9 +498,11 @@ try {
390
498
  println("Step 3:")
391
499
  updateConnectBasicConfig(module_path, configJSONData)
392
500
  println("Step 4:")
393
- updateLayoutConfig(module_path, configJSONData)
501
+ // The app's own assets dir, used only to warn when it shadows what we write.
502
+ def appAssetsDir = new File(project.rootDir, "app/src/main/assets")
503
+ updateLayoutConfig(module_path, configJSONData, appAssetsDir.exists() ? appAssetsDir : null)
394
504
  println("Step 5:")
395
- updateTealeafAdvConfig(module_path, configJSONData)
505
+ updateAdvConfig(module_path, configJSONData)
396
506
  println("Step 6:")
397
507
  updateEOCoreBasicConfig(module_path, configJSONData)
398
508
  println("Step 7:")
@@ -24,7 +24,7 @@
24
24
  "IpPlaceholder": "N/A",
25
25
  "KillSwitchAsync": true,
26
26
  "KillSwitchDelay": 300,
27
- "LibraryVersion": "11.0.13",
27
+ "LibraryVersion": "11.0.36",
28
28
  "LogFullRequestResponsePayloads": true,
29
29
  "MessageTypeHeader": "WorklightHit",
30
30
  "MessageTypes": "4,5",
@@ -6,7 +6,7 @@
6
6
  "CompressPostMessage": true,
7
7
  "DefaultOrientation": 0,
8
8
  "DisableCookieManager": false,
9
- "LibraryVersion": "2.1.16",
9
+ "LibraryVersion": "2.1.24-beta",
10
10
  "MNCMCC": {
11
11
  "00": "N/A",
12
12
  "20201": "Cosmote",
@@ -24,7 +24,7 @@
24
24
  "IpPlaceholder": "N/A",
25
25
  "KillSwitchAsync": true,
26
26
  "KillSwitchDelay": 300,
27
- "LibraryVersion": "10.4.28",
27
+ "LibraryVersion": "10.4.33-beta",
28
28
  "LogFullRequestResponsePayloads": true,
29
29
  "MessageTypeHeader": "WorklightHit",
30
30
  "MessageTypes": "4,5",