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.
- package/CHANGELOG.md +111 -0
- package/ConnectConfig.example.json +1 -1
- package/README.md +426 -3
- package/android/build.gradle +119 -3
- package/android/config.gradle +123 -13
- package/android/src/main/assets/ConnectAdvancedConfig.json +1 -1
- package/android/src/main/assets/EOCoreAdvancedConfig.json +1 -1
- package/android/src/main/assets/TealeafAdvancedConfig.json +1 -1
- package/android/src/main/java/com/acousticconnectrn/HybridAcousticConnectRN.kt +457 -37
- package/app.plugin.js +2 -2
- package/ios/AcousticConnectRNConfig.json +2 -2
- package/ios/ConnectRNParsing.swift +229 -0
- package/ios/HybridAcousticConnectRN.swift +290 -30
- package/lib/commonjs/TLTRN.js +116 -3
- package/lib/commonjs/TLTRN.js.map +1 -1
- package/lib/commonjs/components/Connect.js +145 -27
- package/lib/commonjs/components/Connect.js.map +1 -1
- package/lib/commonjs/index.js +3 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/TLTRN.js +116 -3
- package/lib/module/TLTRN.js.map +1 -1
- package/lib/module/components/Connect.js +146 -28
- package/lib/module/components/Connect.js.map +1 -1
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/TLTRN.d.ts +85 -1
- package/lib/typescript/src/TLTRN.d.ts.map +1 -1
- package/lib/typescript/src/components/Connect.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/react-native-acoustic-connect.nitro.d.ts +190 -10
- package/lib/typescript/src/specs/react-native-acoustic-connect.nitro.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JHybridAcousticConnectRNSpec.cpp +5 -9
- package/nitrogen/generated/android/c++/JHybridAcousticConnectRNSpec.hpp +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/acousticconnectrn/HybridAcousticConnectRNSpec.kt +2 -1
- package/nitrogen/generated/ios/AcousticConnectRN-Swift-Cxx-Umbrella.hpp +1 -0
- package/nitrogen/generated/ios/c++/HybridAcousticConnectRNSpecSwift.hpp +2 -1
- package/nitrogen/generated/ios/swift/HybridAcousticConnectRNSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridAcousticConnectRNSpec_cxx.swift +2 -25
- package/nitrogen/generated/shared/c++/HybridAcousticConnectRNSpec.hpp +2 -1
- package/package.json +6 -8
- package/plugin/build/withConnectAndroidConfig.d.ts +2 -2
- package/plugin/build/withConnectAndroidConfig.js +2 -2
- package/plugin/build/withConnectIosSigning.d.ts +1 -1
- package/plugin/build/withConnectIosSigning.js +1 -1
- package/plugin/src/withConnectAndroidConfig.ts +2 -2
- package/plugin/src/withConnectIosSigning.ts +1 -1
- package/scripts/gradleParser.js +1 -1
- package/src/TLTRN.ts +125 -4
- package/src/components/Connect.tsx +150 -27
- package/src/index.ts +5 -0
- package/src/specs/react-native-acoustic-connect.nitro.ts +192 -10
- package/Examples/SampleUI/.bundle/config +0 -2
- package/Examples/SampleUI/.detoxrc.js +0 -83
- package/Examples/SampleUI/.eslintrc.js +0 -4
- package/Examples/SampleUI/.prettierrc.js +0 -7
- package/Examples/SampleUI/.watchmanconfig +0 -1
- package/Examples/SampleUI/App.js +0 -1
- package/Examples/SampleUI/Gemfile +0 -10
- package/Examples/SampleUI/Gemfile.lock +0 -121
- package/Examples/SampleUI/README.md +0 -79
- package/Examples/SampleUI/__tests__/App.test.tsx +0 -17
- package/Examples/SampleUI/android/app/build.gradle +0 -129
- package/Examples/SampleUI/android/app/debug.keystore +0 -0
- package/Examples/SampleUI/android/app/proguard-rules.pro +0 -10
- package/Examples/SampleUI/android/app/src/debug/AndroidManifest.xml +0 -9
- package/Examples/SampleUI/android/app/src/main/AndroidManifest.xml +0 -31
- package/Examples/SampleUI/android/app/src/main/java/com/sampleui/MainActivity.kt +0 -30
- package/Examples/SampleUI/android/app/src/main/java/com/sampleui/MainApplication.kt +0 -53
- package/Examples/SampleUI/android/app/src/main/res/drawable/rn_edit_text_material.xml +0 -37
- package/Examples/SampleUI/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/values/strings.xml +0 -3
- package/Examples/SampleUI/android/app/src/main/res/values/styles.xml +0 -9
- package/Examples/SampleUI/android/build.gradle +0 -21
- package/Examples/SampleUI/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/Examples/SampleUI/android/gradle/wrapper/gradle-wrapper.properties +0 -7
- package/Examples/SampleUI/android/gradle.properties +0 -39
- package/Examples/SampleUI/android/gradlew +0 -252
- package/Examples/SampleUI/android/gradlew.bat +0 -94
- package/Examples/SampleUI/android/settings.gradle +0 -21
- package/Examples/SampleUI/app.json +0 -51
- package/Examples/SampleUI/assets/fonts/Abel-Regular.ttf +0 -0
- package/Examples/SampleUI/assets/fonts/NotoSans-Regular.ttf +0 -0
- package/Examples/SampleUI/assets/images/android-icon.png +0 -0
- package/Examples/SampleUI/assets/images/artist-1.jpg +0 -0
- package/Examples/SampleUI/assets/images/artist-2.jpg +0 -0
- package/Examples/SampleUI/assets/images/avatar.png +0 -0
- package/Examples/SampleUI/assets/images/beach.jpg +0 -0
- package/Examples/SampleUI/assets/images/bridge.jpg +0 -0
- package/Examples/SampleUI/assets/images/chameleon.jpg +0 -0
- package/Examples/SampleUI/assets/images/city.jpg +0 -0
- package/Examples/SampleUI/assets/images/email-icon.png +0 -0
- package/Examples/SampleUI/assets/images/favorite.png +0 -0
- package/Examples/SampleUI/assets/images/forest.jpg +0 -0
- package/Examples/SampleUI/assets/images/paper-icon.png +0 -0
- package/Examples/SampleUI/assets/images/players-2.jpg +0 -0
- package/Examples/SampleUI/assets/images/players.jpg +0 -0
- package/Examples/SampleUI/assets/images/restaurant-1.jpg +0 -0
- package/Examples/SampleUI/assets/images/restaurant-2.jpg +0 -0
- package/Examples/SampleUI/assets/images/song-1.jpg +0 -0
- package/Examples/SampleUI/assets/images/song-2.jpg +0 -0
- package/Examples/SampleUI/assets/images/splash.png +0 -0
- package/Examples/SampleUI/assets/images/strawberries.jpg +0 -0
- package/Examples/SampleUI/assets/images/wrecked-ship.jpg +0 -0
- package/Examples/SampleUI/assets/styles/fonts.css +0 -47
- package/Examples/SampleUI/babel.config.js +0 -22
- package/Examples/SampleUI/index.js +0 -9
- package/Examples/SampleUI/ios/.xcode.env +0 -11
- package/Examples/SampleUI/ios/Podfile +0 -71
- package/Examples/SampleUI/ios/Podfile.lock +0 -2276
- package/Examples/SampleUI/ios/SampleUI/AppDelegate.h +0 -7
- package/Examples/SampleUI/ios/SampleUI/AppDelegate.mm +0 -31
- package/Examples/SampleUI/ios/SampleUI/Images.xcassets/AppIcon.appiconset/Contents.json +0 -53
- package/Examples/SampleUI/ios/SampleUI/Images.xcassets/Contents.json +0 -6
- package/Examples/SampleUI/ios/SampleUI/Info.plist +0 -52
- package/Examples/SampleUI/ios/SampleUI/LaunchScreen.storyboard +0 -47
- package/Examples/SampleUI/ios/SampleUI/PrivacyInfo.xcprivacy +0 -48
- package/Examples/SampleUI/ios/SampleUI/main.m +0 -10
- package/Examples/SampleUI/ios/SampleUI.xcodeproj/project.pbxproj +0 -785
- package/Examples/SampleUI/ios/SampleUI.xcodeproj/xcshareddata/xcschemes/SampleUI.xcscheme +0 -105
- package/Examples/SampleUI/ios/SampleUI.xcworkspace/contents.xcworkspacedata +0 -10
- package/Examples/SampleUI/ios/SampleUITests/Info.plist +0 -24
- package/Examples/SampleUI/ios/SampleUITests/SampleUITests.m +0 -66
- package/Examples/SampleUI/jest.config.js +0 -3
- package/Examples/SampleUI/metro.config.js +0 -54
- package/Examples/SampleUI/package.json +0 -65
- package/Examples/SampleUI/scripts/integration-test-android.sh +0 -292
- package/Examples/SampleUI/src/DrawerItems.tsx +0 -322
- package/Examples/SampleUI/src/ExampleList.tsx +0 -175
- package/Examples/SampleUI/src/Examples/ActivityIndicatorExample.tsx +0 -73
- package/Examples/SampleUI/src/Examples/AnimatedFABExample/AnimatedFABExample.tsx +0 -220
- package/Examples/SampleUI/src/Examples/AnimatedFABExample/CustomFAB.tsx +0 -70
- package/Examples/SampleUI/src/Examples/AnimatedFABExample/CustomFABControls.tsx +0 -146
- package/Examples/SampleUI/src/Examples/AnimatedFABExample/index.ts +0 -1
- package/Examples/SampleUI/src/Examples/AppbarExample.tsx +0 -263
- package/Examples/SampleUI/src/Examples/AvatarExample.tsx +0 -76
- package/Examples/SampleUI/src/Examples/BadgeExample.tsx +0 -97
- package/Examples/SampleUI/src/Examples/BannerExample.tsx +0 -152
- package/Examples/SampleUI/src/Examples/BottomNavigationBarExample.tsx +0 -94
- package/Examples/SampleUI/src/Examples/BottomNavigationExample.tsx +0 -205
- package/Examples/SampleUI/src/Examples/ButtonExample.tsx +0 -405
- package/Examples/SampleUI/src/Examples/CardExample.tsx +0 -245
- package/Examples/SampleUI/src/Examples/CheckboxExample.tsx +0 -87
- package/Examples/SampleUI/src/Examples/CheckboxItemExample.tsx +0 -72
- package/Examples/SampleUI/src/Examples/ChipExample.tsx +0 -432
- package/Examples/SampleUI/src/Examples/DataTableExample.tsx +0 -128
- package/Examples/SampleUI/src/Examples/DialogExample.tsx +0 -217
- package/Examples/SampleUI/src/Examples/Dialogs/DialogTextComponent.tsx +0 -31
- package/Examples/SampleUI/src/Examples/Dialogs/DialogTrackingTest.tsx +0 -307
- package/Examples/SampleUI/src/Examples/Dialogs/DialogWithCustomColors.tsx +0 -57
- package/Examples/SampleUI/src/Examples/Dialogs/DialogWithDismissableBackButton.tsx +0 -38
- package/Examples/SampleUI/src/Examples/Dialogs/DialogWithIcon.tsx +0 -42
- package/Examples/SampleUI/src/Examples/Dialogs/DialogWithLoadingIndicator.tsx +0 -48
- package/Examples/SampleUI/src/Examples/Dialogs/DialogWithLongText.tsx +0 -81
- package/Examples/SampleUI/src/Examples/Dialogs/DialogWithRadioBtns.tsx +0 -111
- package/Examples/SampleUI/src/Examples/Dialogs/UndismissableDialog.tsx +0 -30
- package/Examples/SampleUI/src/Examples/Dialogs/index.tsx +0 -44
- package/Examples/SampleUI/src/Examples/DividerExample.tsx +0 -30
- package/Examples/SampleUI/src/Examples/FABExample.tsx +0 -226
- package/Examples/SampleUI/src/Examples/IconButtonExample.tsx +0 -230
- package/Examples/SampleUI/src/Examples/IconExample.tsx +0 -50
- package/Examples/SampleUI/src/Examples/ListAccordionExample.tsx +0 -65
- package/Examples/SampleUI/src/Examples/ListAccordionGroupExample.tsx +0 -80
- package/Examples/SampleUI/src/Examples/ListItemExample.tsx +0 -310
- package/Examples/SampleUI/src/Examples/ListSectionExample.tsx +0 -159
- package/Examples/SampleUI/src/Examples/MaterialBottomTabNavigatorExample.tsx +0 -87
- package/Examples/SampleUI/src/Examples/MenuExample.tsx +0 -211
- package/Examples/SampleUI/src/Examples/ProgressBarExample.tsx +0 -142
- package/Examples/SampleUI/src/Examples/RadioButtonExample.tsx +0 -104
- package/Examples/SampleUI/src/Examples/RadioButtonGroupExample.tsx +0 -67
- package/Examples/SampleUI/src/Examples/RadioButtonItemExample.tsx +0 -77
- package/Examples/SampleUI/src/Examples/SearchbarExample.tsx +0 -249
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonCustomColorCheck.tsx +0 -93
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonDefault.tsx +0 -49
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonDisabled.tsx +0 -47
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonMultiselect.tsx +0 -50
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonMultiselectIcons.tsx +0 -49
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonMultiselectRealCase.tsx +0 -114
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonOnlyIcons.tsx +0 -40
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonOnlyIconsWithCheck.tsx +0 -43
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonRealCase.tsx +0 -97
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonWithDensity.tsx +0 -47
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonWithSelectedCheck.tsx +0 -52
- package/Examples/SampleUI/src/Examples/SegmentedButtons/index.ts +0 -9
- package/Examples/SampleUI/src/Examples/SegmentedButtonsExample.tsx +0 -57
- package/Examples/SampleUI/src/Examples/SnackbarExample.tsx +0 -141
- package/Examples/SampleUI/src/Examples/SurfaceExample.tsx +0 -130
- package/Examples/SampleUI/src/Examples/SwitchExample.tsx +0 -105
- package/Examples/SampleUI/src/Examples/TeamDetails.tsx +0 -291
- package/Examples/SampleUI/src/Examples/TeamsList.tsx +0 -57
- package/Examples/SampleUI/src/Examples/TextExample.tsx +0 -132
- package/Examples/SampleUI/src/Examples/TextInputExample.tsx +0 -914
- package/Examples/SampleUI/src/Examples/ThemeExample.tsx +0 -41
- package/Examples/SampleUI/src/Examples/ThemingWithReactNavigation.tsx +0 -75
- package/Examples/SampleUI/src/Examples/ToggleButtonExample.tsx +0 -128
- package/Examples/SampleUI/src/Examples/TooltipExample.tsx +0 -191
- package/Examples/SampleUI/src/Examples/TouchableRippleExample.tsx +0 -37
- package/Examples/SampleUI/src/RootNavigator.tsx +0 -95
- package/Examples/SampleUI/src/ScreenWrapper.tsx +0 -67
- package/Examples/SampleUI/src/components/ActivityIndicator.tsx +0 -254
- package/Examples/SampleUI/src/components/Appbar/Appbar.tsx +0 -364
- package/Examples/SampleUI/src/components/Appbar/AppbarAction.tsx +0 -132
- package/Examples/SampleUI/src/components/Appbar/AppbarBackAction.tsx +0 -77
- package/Examples/SampleUI/src/components/Appbar/AppbarBackIcon.tsx +0 -52
- package/Examples/SampleUI/src/components/Appbar/AppbarContent.tsx +0 -249
- package/Examples/SampleUI/src/components/Appbar/AppbarHeader.tsx +0 -174
- package/Examples/SampleUI/src/components/Appbar/index.ts +0 -22
- package/Examples/SampleUI/src/components/Appbar/utils.ts +0 -188
- package/Examples/SampleUI/src/components/Avatar/Avatar.tsx +0 -8
- package/Examples/SampleUI/src/components/Avatar/AvatarIcon.tsx +0 -87
- package/Examples/SampleUI/src/components/Avatar/AvatarImage.tsx +0 -128
- package/Examples/SampleUI/src/components/Avatar/AvatarText.tsx +0 -127
- package/Examples/SampleUI/src/components/Badge.tsx +0 -138
- package/Examples/SampleUI/src/components/Banner.tsx +0 -302
- package/Examples/SampleUI/src/components/BottomNavigation/BottomNavigation.tsx +0 -643
- package/Examples/SampleUI/src/components/BottomNavigation/BottomNavigationBar.tsx +0 -1039
- package/Examples/SampleUI/src/components/BottomNavigation/BottomNavigationRouteScreen.tsx +0 -31
- package/Examples/SampleUI/src/components/BottomNavigation/utils.ts +0 -70
- package/Examples/SampleUI/src/components/Button/Button.tsx +0 -503
- package/Examples/SampleUI/src/components/Button/utils.tsx +0 -272
- package/Examples/SampleUI/src/components/Card/Card.tsx +0 -373
- package/Examples/SampleUI/src/components/Card/CardActions.tsx +0 -74
- package/Examples/SampleUI/src/components/Card/CardContent.tsx +0 -99
- package/Examples/SampleUI/src/components/Card/CardCover.tsx +0 -96
- package/Examples/SampleUI/src/components/Card/CardTitle.tsx +0 -236
- package/Examples/SampleUI/src/components/Card/utils.tsx +0 -110
- package/Examples/SampleUI/src/components/Checkbox/Checkbox.tsx +0 -78
- package/Examples/SampleUI/src/components/Checkbox/CheckboxAndroid.tsx +0 -180
- package/Examples/SampleUI/src/components/Checkbox/CheckboxIOS.tsx +0 -104
- package/Examples/SampleUI/src/components/Checkbox/CheckboxItem.tsx +0 -236
- package/Examples/SampleUI/src/components/Checkbox/index.ts +0 -19
- package/Examples/SampleUI/src/components/Checkbox/utils.ts +0 -183
- package/Examples/SampleUI/src/components/Chip/Chip.tsx +0 -513
- package/Examples/SampleUI/src/components/Chip/helpers.tsx +0 -322
- package/Examples/SampleUI/src/components/CrossFadeIcon.tsx +0 -140
- package/Examples/SampleUI/src/components/DataTable/DataTable.tsx +0 -138
- package/Examples/SampleUI/src/components/DataTable/DataTableCell.tsx +0 -132
- package/Examples/SampleUI/src/components/DataTable/DataTableHeader.tsx +0 -82
- package/Examples/SampleUI/src/components/DataTable/DataTablePagination.tsx +0 -407
- package/Examples/SampleUI/src/components/DataTable/DataTableRow.tsx +0 -107
- package/Examples/SampleUI/src/components/DataTable/DataTableTitle.tsx +0 -208
- package/Examples/SampleUI/src/components/Dialog/Dialog.tsx +0 -191
- package/Examples/SampleUI/src/components/Dialog/DialogActions.tsx +0 -94
- package/Examples/SampleUI/src/components/Dialog/DialogContent.tsx +0 -54
- package/Examples/SampleUI/src/components/Dialog/DialogIcon.tsx +0 -100
- package/Examples/SampleUI/src/components/Dialog/DialogScrollArea.tsx +0 -88
- package/Examples/SampleUI/src/components/Dialog/DialogTitle.tsx +0 -94
- package/Examples/SampleUI/src/components/Divider.tsx +0 -102
- package/Examples/SampleUI/src/components/Drawer/Drawer.tsx +0 -8
- package/Examples/SampleUI/src/components/Drawer/DrawerCollapsedItem.tsx +0 -282
- package/Examples/SampleUI/src/components/Drawer/DrawerItem.tsx +0 -209
- package/Examples/SampleUI/src/components/Drawer/DrawerSection.tsx +0 -138
- package/Examples/SampleUI/src/components/FAB/AnimatedFAB.tsx +0 -619
- package/Examples/SampleUI/src/components/FAB/FAB.tsx +0 -371
- package/Examples/SampleUI/src/components/FAB/FABGroup.tsx +0 -532
- package/Examples/SampleUI/src/components/FAB/index.ts +0 -13
- package/Examples/SampleUI/src/components/FAB/utils.ts +0 -474
- package/Examples/SampleUI/src/components/HelperText/HelperText.tsx +0 -168
- package/Examples/SampleUI/src/components/HelperText/utils.ts +0 -30
- package/Examples/SampleUI/src/components/Icon.tsx +0 -170
- package/Examples/SampleUI/src/components/IconButton/IconButton.tsx +0 -234
- package/Examples/SampleUI/src/components/IconButton/utils.ts +0 -190
- package/Examples/SampleUI/src/components/List/List.tsx +0 -20
- package/Examples/SampleUI/src/components/List/ListAccordion.tsx +0 -391
- package/Examples/SampleUI/src/components/List/ListAccordionGroup.tsx +0 -88
- package/Examples/SampleUI/src/components/List/ListIcon.tsx +0 -79
- package/Examples/SampleUI/src/components/List/ListImage.tsx +0 -89
- package/Examples/SampleUI/src/components/List/ListItem.tsx +0 -313
- package/Examples/SampleUI/src/components/List/ListSection.tsx +0 -87
- package/Examples/SampleUI/src/components/List/ListSubheader.tsx +0 -79
- package/Examples/SampleUI/src/components/List/utils.ts +0 -113
- package/Examples/SampleUI/src/components/MaterialCommunityIcon.tsx +0 -121
- package/Examples/SampleUI/src/components/Menu/Menu.tsx +0 -711
- package/Examples/SampleUI/src/components/Menu/MenuItem.tsx +0 -257
- package/Examples/SampleUI/src/components/Menu/utils.ts +0 -110
- package/Examples/SampleUI/src/components/Modal.tsx +0 -245
- package/Examples/SampleUI/src/components/Portal/Portal.tsx +0 -69
- package/Examples/SampleUI/src/components/Portal/PortalConsumer.tsx +0 -44
- package/Examples/SampleUI/src/components/Portal/PortalHost.tsx +0 -143
- package/Examples/SampleUI/src/components/Portal/PortalManager.tsx +0 -54
- package/Examples/SampleUI/src/components/ProgressBar.tsx +0 -292
- package/Examples/SampleUI/src/components/RadioButton/RadioButton.tsx +0 -86
- package/Examples/SampleUI/src/components/RadioButton/RadioButtonAndroid.tsx +0 -202
- package/Examples/SampleUI/src/components/RadioButton/RadioButtonGroup.tsx +0 -67
- package/Examples/SampleUI/src/components/RadioButton/RadioButtonIOS.tsx +0 -130
- package/Examples/SampleUI/src/components/RadioButton/RadioButtonItem.tsx +0 -268
- package/Examples/SampleUI/src/components/RadioButton/index.ts +0 -22
- package/Examples/SampleUI/src/components/RadioButton/utils.ts +0 -37
- package/Examples/SampleUI/src/components/Searchbar.tsx +0 -459
- package/Examples/SampleUI/src/components/SegmentedButtons/SegmentedButtonItem.tsx +0 -271
- package/Examples/SampleUI/src/components/SegmentedButtons/SegmentedButtons.tsx +0 -197
- package/Examples/SampleUI/src/components/SegmentedButtons/utils.ts +0 -179
- package/Examples/SampleUI/src/components/Snackbar.tsx +0 -430
- package/Examples/SampleUI/src/components/Surface.tsx +0 -376
- package/Examples/SampleUI/src/components/Switch/Switch.tsx +0 -108
- package/Examples/SampleUI/src/components/Switch/utils.ts +0 -113
- package/Examples/SampleUI/src/components/TextInput/Addons/Outline.tsx +0 -64
- package/Examples/SampleUI/src/components/TextInput/Addons/Underline.tsx +0 -78
- package/Examples/SampleUI/src/components/TextInput/Adornment/TextInputAdornment.tsx +0 -208
- package/Examples/SampleUI/src/components/TextInput/Adornment/TextInputAffix.tsx +0 -212
- package/Examples/SampleUI/src/components/TextInput/Adornment/TextInputIcon.tsx +0 -195
- package/Examples/SampleUI/src/components/TextInput/Adornment/enums.tsx +0 -12
- package/Examples/SampleUI/src/components/TextInput/Adornment/types.tsx +0 -11
- package/Examples/SampleUI/src/components/TextInput/Adornment/utils.ts +0 -48
- package/Examples/SampleUI/src/components/TextInput/Label/InputLabel.tsx +0 -217
- package/Examples/SampleUI/src/components/TextInput/Label/LabelBackground.tsx +0 -100
- package/Examples/SampleUI/src/components/TextInput/TextInput.tsx +0 -572
- package/Examples/SampleUI/src/components/TextInput/TextInputFlat.tsx +0 -475
- package/Examples/SampleUI/src/components/TextInput/TextInputOutlined.tsx +0 -450
- package/Examples/SampleUI/src/components/TextInput/constants.tsx +0 -48
- package/Examples/SampleUI/src/components/TextInput/helpers.tsx +0 -612
- package/Examples/SampleUI/src/components/TextInput/types.tsx +0 -155
- package/Examples/SampleUI/src/components/ToggleButton/ToggleButton.tsx +0 -187
- package/Examples/SampleUI/src/components/ToggleButton/ToggleButtonGroup.tsx +0 -72
- package/Examples/SampleUI/src/components/ToggleButton/ToggleButtonRow.tsx +0 -107
- package/Examples/SampleUI/src/components/ToggleButton/index.ts +0 -16
- package/Examples/SampleUI/src/components/ToggleButton/utils.ts +0 -26
- package/Examples/SampleUI/src/components/Tooltip/Tooltip.tsx +0 -249
- package/Examples/SampleUI/src/components/Tooltip/utils.ts +0 -129
- package/Examples/SampleUI/src/components/TouchableRipple/Pressable.tsx +0 -41
- package/Examples/SampleUI/src/components/TouchableRipple/TouchableRipple.native.tsx +0 -145
- package/Examples/SampleUI/src/components/TouchableRipple/TouchableRipple.tsx +0 -317
- package/Examples/SampleUI/src/components/TouchableRipple/utils.ts +0 -66
- package/Examples/SampleUI/src/components/Typography/AnimatedText.tsx +0 -107
- package/Examples/SampleUI/src/components/Typography/Text.tsx +0 -184
- package/Examples/SampleUI/src/components/Typography/types.tsx +0 -5
- package/Examples/SampleUI/src/components/Typography/v2/Caption.tsx +0 -50
- package/Examples/SampleUI/src/components/Typography/v2/Headline.tsx +0 -52
- package/Examples/SampleUI/src/components/Typography/v2/Paragraph.tsx +0 -49
- package/Examples/SampleUI/src/components/Typography/v2/StyledText.tsx +0 -56
- package/Examples/SampleUI/src/components/Typography/v2/Subheading.tsx +0 -50
- package/Examples/SampleUI/src/components/Typography/v2/Text.tsx +0 -62
- package/Examples/SampleUI/src/components/Typography/v2/Title.tsx +0 -49
- package/Examples/SampleUI/src/components/Typography/v2/index.ts +0 -5
- package/Examples/SampleUI/src/core/PaperProvider.tsx +0 -122
- package/Examples/SampleUI/src/core/SafeAreaProviderCompat.tsx +0 -65
- package/Examples/SampleUI/src/core/settings.tsx +0 -23
- package/Examples/SampleUI/src/core/theming.tsx +0 -170
- package/Examples/SampleUI/src/index.native.tsx +0 -285
- package/Examples/SampleUI/src/index.tsx +0 -226
- package/Examples/SampleUI/src/react-navigation/index.tsx +0 -19
- package/Examples/SampleUI/src/react-navigation/navigators/createMaterialBottomTabNavigator.tsx +0 -72
- package/Examples/SampleUI/src/react-navigation/types.tsx +0 -126
- package/Examples/SampleUI/src/react-navigation/views/MaterialBottomTabView.tsx +0 -140
- package/Examples/SampleUI/src/styles/__tests__/fonts.test.js +0 -290
- package/Examples/SampleUI/src/styles/fonts.tsx +0 -143
- package/Examples/SampleUI/src/styles/overlay.tsx +0 -70
- package/Examples/SampleUI/src/styles/shadow.tsx +0 -109
- package/Examples/SampleUI/src/styles/themes/index.ts +0 -4
- package/Examples/SampleUI/src/styles/themes/v2/DarkTheme.tsx +0 -30
- package/Examples/SampleUI/src/styles/themes/v2/LightTheme.tsx +0 -30
- package/Examples/SampleUI/src/styles/themes/v2/colors.tsx +0 -277
- package/Examples/SampleUI/src/styles/themes/v3/DarkTheme.tsx +0 -66
- package/Examples/SampleUI/src/styles/themes/v3/LightTheme.tsx +0 -69
- package/Examples/SampleUI/src/styles/themes/v3/tokens.tsx +0 -230
- package/Examples/SampleUI/src/utils/BackHandler/BackHandler.native.tsx +0 -3
- package/Examples/SampleUI/src/utils/BackHandler/BackHandler.tsx +0 -11
- package/Examples/SampleUI/src/utils/addEventListener.tsx +0 -56
- package/Examples/SampleUI/src/utils/forwardRef.tsx +0 -23
- package/Examples/SampleUI/src/utils/getContrastingColor.tsx +0 -15
- package/Examples/SampleUI/src/utils/hasTouchHandler.tsx +0 -23
- package/Examples/SampleUI/src/utils/roundLayoutSize.ts +0 -2
- package/Examples/SampleUI/src/utils/splitStyles.ts +0 -60
- package/Examples/SampleUI/src/utils/useAnimatedValue.tsx +0 -9
- package/Examples/SampleUI/src/utils/useAnimatedValueArray.tsx +0 -13
- package/Examples/SampleUI/src/utils/useIsKeyboardShown.tsx +0 -55
- package/Examples/SampleUI/src/utils/useLayout.tsx +0 -29
- package/Examples/SampleUI/src/utils/useLazyRef.tsx +0 -11
- package/Examples/SampleUI/tsconfig.json +0 -3
- package/Examples/SampleUI/utils/index.ts +0 -1426
- package/cli/__tests__/doctor.test.mjs +0 -88
package/android/build.gradle
CHANGED
|
@@ -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.
|
|
134
|
-
targetCompatibility JavaVersion.
|
|
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.
|
|
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'
|
package/android/config.gradle
CHANGED
|
@@ -150,7 +150,33 @@ def updateConnectBasicConfig(mp, json) {
|
|
|
150
150
|
println("Updating:$propertiesFile")
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
-
|
|
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
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
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
|
-
|
|
310
|
+
overrides[config_key] = config_value
|
|
227
311
|
}
|
|
228
312
|
}
|
|
229
313
|
}
|
|
230
314
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
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
|
-
|
|
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
|
-
|
|
505
|
+
updateAdvConfig(module_path, configJSONData)
|
|
396
506
|
println("Step 6:")
|
|
397
507
|
updateEOCoreBasicConfig(module_path, configJSONData)
|
|
398
508
|
println("Step 7:")
|