@infilectorg/infiviz-shots-react-sdk 1.2.12 → 1.2.13

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 (134) hide show
  1. package/README.md +7 -1
  2. package/android/build.gradle +1 -1
  3. package/android/src/main/java/com/infilect/infivizshotsreactsdk/InfivizShotsReactSdkModule.kt +218 -5
  4. package/android/src/main/java/com/infilect/infivizshotsreactsdk/SDKEvent.kt +8 -1
  5. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/AccuracyCheckViewController.nib +0 -0
  6. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/ActionProgressSliderView.nib +0 -0
  7. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/ActionableInsightsViewController.nib +0 -0
  8. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/ActionsTableView.nib +0 -0
  9. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/ActionsTableViewCell.nib +0 -0
  10. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/Assets.car +0 -0
  11. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/CategoryTableViewCell.nib +0 -0
  12. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/CollapsibleTableViewCell.nib +0 -0
  13. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/EvidenceCategoryViewController.nib +0 -0
  14. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/Headers/InfivizShotSDK-Swift.h +44 -169
  15. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/ImageSelectionTableViewCell.nib +0 -0
  16. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/ImageSelectionViewController.nib +0 -0
  17. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/ImageViewFullScreenView.nib +0 -0
  18. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/InfivizShotSDK +0 -0
  19. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/Info.plist +0 -0
  20. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/arm64-apple-ios.abi.json +32057 -25542
  21. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  22. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/arm64-apple-ios.swiftmodule +0 -0
  23. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/NotificationPermissionOverlayView.nib +0 -0
  24. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/OSAActionTableViewCell.nib +0 -0
  25. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/PhotoSliderView.nib +0 -0
  26. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/RealmTimeChartAndGraphViewController.nib +0 -0
  27. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/ReasonsActionCellViewTableViewCell.nib +0 -0
  28. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/ReasonsListView.nib +0 -0
  29. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/ReasonsTableView.nib +0 -0
  30. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/SKUTableViewCell.nib +0 -0
  31. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/SaveRetakeView.nib +0 -0
  32. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/SelectReasonsTableViewCell.nib +0 -0
  33. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/SessionStatusView.nib +0 -0
  34. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/ShelvingActionPopup.nib +0 -0
  35. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/ShelvingActionsTableViewCell.nib +0 -0
  36. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/ShelvingActionsView.nib +0 -0
  37. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/ShelvingViewController.nib +0 -0
  38. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/StoreKPITableViewCell.nib +0 -0
  39. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/StoreLevelKPIViewController.nib +0 -0
  40. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/V1ListTableViewCell.nib +0 -0
  41. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/V1ListViewController.nib +0 -0
  42. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/V1OptionTableViewCell.nib +0 -0
  43. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/V1ReasonTableViewCell.nib +0 -0
  44. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/V1TableViewCell.nib +0 -0
  45. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/V1ViewController.nib +0 -0
  46. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/V3CollectionViewCell.nib +0 -0
  47. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/ViewOverlay.nib +0 -0
  48. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/en.lproj/FullImageCell.strings +0 -0
  49. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/id.lproj/FullImageCell.strings +0 -0
  50. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 2.mom +0 -0
  51. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 3.mom +0 -0
  52. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 4.mom +0 -0
  53. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 5.mom +0 -0
  54. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 6.mom +0 -0
  55. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 6.omo +0 -0
  56. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase.mom +0 -0
  57. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/infivizshots.momd/VersionInfo.plist +0 -0
  58. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/shotsSDK.storyboardc/SW9-KF-vYy-view-a8B-9e-hfC.nib +0 -0
  59. package/ios/InfivizShotSDK.xcframework/ios-arm64/InfivizShotSDK.framework/shotsSDK.storyboardc/xUL-ol-gRQ-view-6A8-mO-Rhi.nib +0 -0
  60. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/AccuracyCheckViewController.nib +0 -0
  61. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/ActionProgressSliderView.nib +0 -0
  62. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/ActionableInsightsViewController.nib +0 -0
  63. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/ActionsTableView.nib +0 -0
  64. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/ActionsTableViewCell.nib +0 -0
  65. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Assets.car +0 -0
  66. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/CategoryTableViewCell.nib +0 -0
  67. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/CollapsibleTableViewCell.nib +0 -0
  68. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/EvidenceCategoryViewController.nib +0 -0
  69. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Headers/InfivizShotSDK-Swift.h +88 -338
  70. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/ImageSelectionTableViewCell.nib +0 -0
  71. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/ImageSelectionViewController.nib +0 -0
  72. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/ImageViewFullScreenView.nib +0 -0
  73. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/InfivizShotSDK +0 -0
  74. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Info.plist +0 -0
  75. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/arm64-apple-ios-simulator.abi.json +32057 -25542
  76. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  77. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/arm64-apple-ios-simulator.swiftmodule +0 -0
  78. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json +32057 -25542
  79. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  80. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/Modules/InfivizShotSDK.swiftmodule/x86_64-apple-ios-simulator.swiftmodule +0 -0
  81. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/NotificationPermissionOverlayView.nib +0 -0
  82. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/OSAActionTableViewCell.nib +0 -0
  83. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/PhotoSliderView.nib +0 -0
  84. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/RealmTimeChartAndGraphViewController.nib +0 -0
  85. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/ReasonsActionCellViewTableViewCell.nib +0 -0
  86. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/ReasonsListView.nib +0 -0
  87. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/ReasonsTableView.nib +0 -0
  88. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/SKUTableViewCell.nib +0 -0
  89. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/SaveRetakeView.nib +0 -0
  90. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/SelectReasonsTableViewCell.nib +0 -0
  91. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/SessionStatusView.nib +0 -0
  92. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/ShelvingActionPopup.nib +0 -0
  93. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/ShelvingActionsTableViewCell.nib +0 -0
  94. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/ShelvingActionsView.nib +0 -0
  95. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/ShelvingViewController.nib +0 -0
  96. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/StoreKPITableViewCell.nib +0 -0
  97. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/StoreLevelKPIViewController.nib +0 -0
  98. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/V1ListTableViewCell.nib +0 -0
  99. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/V1ListViewController.nib +0 -0
  100. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/V1OptionTableViewCell.nib +0 -0
  101. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/V1ReasonTableViewCell.nib +0 -0
  102. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/V1TableViewCell.nib +0 -0
  103. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/V1ViewController.nib +0 -0
  104. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/V3CollectionViewCell.nib +0 -0
  105. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/ViewOverlay.nib +0 -0
  106. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/en.lproj/FullImageCell.strings +0 -0
  107. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/id.lproj/FullImageCell.strings +0 -0
  108. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 2.mom +0 -0
  109. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 3.mom +0 -0
  110. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 4.mom +0 -0
  111. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 5.mom +0 -0
  112. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 6.mom +0 -0
  113. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase 6.omo +0 -0
  114. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/InfivizShotSDKDatabase.mom +0 -0
  115. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/infivizshots.momd/VersionInfo.plist +0 -0
  116. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/shotsSDK.storyboardc/SW9-KF-vYy-view-a8B-9e-hfC.nib +0 -0
  117. package/ios/InfivizShotSDK.xcframework/ios-arm64_x86_64-simulator/InfivizShotSDK.framework/shotsSDK.storyboardc/xUL-ol-gRQ-view-6A8-mO-Rhi.nib +0 -0
  118. package/ios/InfivizShotsReactSdk.m +7 -0
  119. package/ios/InfivizShotsReactSdk.swift +61 -1
  120. package/lib/module/NativeInfivizShotsReactSdk.js.map +1 -1
  121. package/lib/module/index.js +7 -0
  122. package/lib/module/index.js.map +1 -1
  123. package/lib/module/types/SDKStatus.js +2 -0
  124. package/lib/module/types/SDKStatus.js.map +1 -0
  125. package/lib/typescript/src/NativeInfivizShotsReactSdk.d.ts +3 -0
  126. package/lib/typescript/src/NativeInfivizShotsReactSdk.d.ts.map +1 -1
  127. package/lib/typescript/src/index.d.ts +4 -0
  128. package/lib/typescript/src/index.d.ts.map +1 -1
  129. package/lib/typescript/src/types/SDKStatus.d.ts +27 -0
  130. package/lib/typescript/src/types/SDKStatus.d.ts.map +1 -0
  131. package/package.json +1 -1
  132. package/src/NativeInfivizShotsReactSdk.tsx +5 -0
  133. package/src/index.tsx +11 -1
  134. package/src/types/SDKStatus.ts +35 -0
package/README.md CHANGED
@@ -3,7 +3,13 @@
3
3
  - Always update this file when ever a new pr is raised. Log the features/bugs/improvements tickets in this file with newest on top.
4
4
 
5
5
  Following are the versions for **React Native SDK**
6
- - **V 1.2.11** <br/>
6
+ - **V 1.2.13** <br />
7
+ 1. Image Processing SLA Breach Notification (Tiered SLA)
8
+ 2. Slow Photo Upload Detection (Per Image)
9
+ 3. Fetch Latest status of SDK
10
+ 4. Session Upload Timeout (Very Poor Network) IOS
11
+
12
+ - **V 1.2.12** <br/>
7
13
  1. Updated the default timeout config
8
14
 
9
15
  - **V 1.2.11** <br/>
@@ -108,7 +108,7 @@ dependencies {
108
108
  implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
109
109
 
110
110
 
111
- implementation 'com.infilect:infivizshots-sdk:RN-1.2.12'
111
+ implementation 'com.infilect:infivizshots-sdk:RN-1.2.13'
112
112
 
113
113
  testImplementation 'junit:junit:4.13.2'
114
114
  implementation 'com.github.bumptech.glide:glide:4.14.2'
@@ -56,10 +56,150 @@ class InfivizShotsReactSdkModule(private val reactContext: ReactApplicationConte
56
56
  val sessionId = intent.getStringExtra(IntentConstants.SESSION_ID)
57
57
  val universalSessionId = intent.getStringExtra(IntentConstants.EXTERNAL_SESSION_ID)
58
58
 
59
+ Log.d(TAG, "Broadcast received: ${SDKEvent.SYNC_EVENT.name} | sessionId: $sessionId, status: $status")
59
60
  sendEventToReact(SDKEvent.SYNC_EVENT, sessionId!!, status!!, message!!,universalSessionId)
60
61
  }
61
62
  }
62
63
 
64
+ private val imageUploadFailedBroadcast = object : BroadcastReceiver() {
65
+ override fun onReceive(context: Context?, intent: Intent?) {
66
+ intent ?: return
67
+ val params = Arguments.createMap().apply {
68
+ putString("event", intent.getStringExtra(IntentConstants.EVENT))
69
+ putString("sessionId", intent.getStringExtra(IntentConstants.SESSION_ID))
70
+ putString("imageUri", intent.getStringExtra(IntentConstants.IMAGE_URI))
71
+ putInt("statusCode", intent.getIntExtra(IntentConstants.STATUS_CODE, 0))
72
+ putString("errorType", intent.getStringExtra(IntentConstants.ERROR_TYPE))
73
+ putString("message", intent.getStringExtra(IntentConstants.MESSAGE))
74
+ putDouble("timestamp", intent.getLongExtra(IntentConstants.TIMESTAMP, 0L).toDouble())
75
+ }
76
+ emitBroadcastEvent(SDKEvent.IMAGE_UPLOAD_FAILED_EVENT, params)
77
+ }
78
+ }
79
+
80
+ private val sessionUploadFailedBroadcast = object : BroadcastReceiver() {
81
+ override fun onReceive(context: Context?, intent: Intent?) {
82
+ intent ?: return
83
+ val params = Arguments.createMap().apply {
84
+ putString("event", intent.getStringExtra(IntentConstants.EVENT))
85
+ putString("sessionId", intent.getStringExtra(IntentConstants.SESSION_ID))
86
+ putInt("statusCode", intent.getIntExtra(IntentConstants.STATUS_CODE, 0))
87
+ putString("errorType", intent.getStringExtra(IntentConstants.ERROR_TYPE))
88
+ putString("message", intent.getStringExtra(IntentConstants.MESSAGE))
89
+ putDouble("timestamp", intent.getLongExtra(IntentConstants.TIMESTAMP, 0L).toDouble())
90
+ }
91
+ emitBroadcastEvent(SDKEvent.SESSION_UPLOAD_FAILED_EVENT, params)
92
+ }
93
+ }
94
+
95
+ private val sessionProcessingSlaBreachedBroadcast = object : BroadcastReceiver() {
96
+ override fun onReceive(context: Context?, intent: Intent?) {
97
+ intent ?: return
98
+ val params = Arguments.createMap().apply {
99
+ putString("event", intent.getStringExtra(IntentConstants.EVENT))
100
+ putString("sessionId", intent.getStringExtra(IntentConstants.SESSION_ID))
101
+ putInt("imageCount", intent.getIntExtra("image_count", 0))
102
+ putInt("baseSlaSec", intent.getIntExtra("base_sla_sec", 0))
103
+ putInt("bufferSec", intent.getIntExtra("buffer_sec", 0))
104
+ putInt("effectiveSla", intent.getIntExtra("effective_sla", 0))
105
+ putDouble("elapsedTimeSec", intent.getLongExtra("elapsed_time_sec", 0L).toDouble())
106
+ putString("statusCode", intent.getStringExtra(IntentConstants.STATUS_CODE))
107
+ putString("message", intent.getStringExtra(IntentConstants.MESSAGE))
108
+ putDouble("timestamp", intent.getLongExtra(IntentConstants.TIMESTAMP, 0L).toDouble())
109
+ }
110
+ emitBroadcastEvent(SDKEvent.SESSION_PROCESSING_SLA_BREACHED_EVENT, params)
111
+ }
112
+ }
113
+
114
+ private val imageSlowUploadBroadcast = object : BroadcastReceiver() {
115
+ override fun onReceive(context: Context?, intent: Intent?) {
116
+ intent ?: return
117
+ val params = Arguments.createMap().apply {
118
+ putString("event", intent.getStringExtra(IntentConstants.EVENT))
119
+ putString("sessionId", intent.getStringExtra(IntentConstants.SESSION_ID))
120
+ putString("imageUri", intent.getStringExtra(IntentConstants.IMAGE_URI))
121
+ putDouble("uploadDurationSec", intent.getDoubleExtra(IntentConstants.UPLOAD_DURATION_SEC, 0.0))
122
+ putDouble("derivedUploadSpeedKbps", intent.getDoubleExtra(IntentConstants.DERIVED_UPLOAD_SPEED_KBPS, 0.0))
123
+ putInt("reasonCode", intent.getIntExtra(IntentConstants.REASON_CODE, 0))
124
+ putString("statusCode", intent.getStringExtra(IntentConstants.STATUS_CODE))
125
+ putString("message", intent.getStringExtra(IntentConstants.MESSAGE))
126
+ putDouble("timestamp", intent.getLongExtra(IntentConstants.TIMESTAMP, 0L).toDouble())
127
+ }
128
+ emitBroadcastEvent(SDKEvent.IMAGE_SLOW_UPLOAD_EVENT, params)
129
+ }
130
+ }
131
+
132
+ private val highCpuUsageBroadcast = object : BroadcastReceiver() {
133
+ override fun onReceive(context: Context?, intent: Intent?) {
134
+ intent ?: return
135
+ val params = Arguments.createMap().apply {
136
+ putString("event", intent.getStringExtra(IntentConstants.EVENT))
137
+ putInt("cpuUsageThresholdPercent", intent.getIntExtra("cpu_usage_threshold_percent", 0))
138
+ putInt("currentCpuUsagePercent", intent.getIntExtra("current_cpu_usage_percent", 0))
139
+ putString("statusCode", intent.getStringExtra(IntentConstants.STATUS_CODE))
140
+ putString("message", intent.getStringExtra(IntentConstants.MESSAGE))
141
+ putDouble("timestamp", intent.getLongExtra(IntentConstants.TIMESTAMP, 0L).toDouble())
142
+ }
143
+ emitBroadcastEvent(SDKEvent.HIGH_CPU_USAGE_EVENT, params)
144
+ }
145
+ }
146
+
147
+ private val highDeviceTemperatureBroadcast = object : BroadcastReceiver() {
148
+ override fun onReceive(context: Context?, intent: Intent?) {
149
+ intent ?: return
150
+ val params = Arguments.createMap().apply {
151
+ putString("event", intent.getStringExtra(IntentConstants.EVENT))
152
+ putDouble("deviceTemperatureThresholdCelsius", intent.getIntExtra("device_temperature_threshold_celsius", 0).toDouble())
153
+ putDouble("currentDeviceTemperatureCelsius", intent.getIntExtra("current_device_temperature_celsius", 0).toDouble())
154
+ putString("statusCode", intent.getStringExtra(IntentConstants.STATUS_CODE))
155
+ putString("message", intent.getStringExtra(IntentConstants.MESSAGE))
156
+ putDouble("timestamp", intent.getLongExtra(IntentConstants.TIMESTAMP, 0L).toDouble())
157
+ }
158
+ emitBroadcastEvent(SDKEvent.HIGH_DEVICE_TEMPERATURE_EVENT, params)
159
+ }
160
+ }
161
+
162
+ private val lowDeviceStorageBroadcast = object : BroadcastReceiver() {
163
+ override fun onReceive(context: Context?, intent: Intent?) {
164
+ intent ?: return
165
+ val params = Arguments.createMap().apply {
166
+ putString("event", intent.getStringExtra(IntentConstants.EVENT))
167
+ putDouble("availableMb", intent.getLongExtra("available_mb", 0L).toDouble())
168
+ putDouble("usedMb", intent.getLongExtra("used_mb", 0L).toDouble())
169
+ putDouble("remainingMb", intent.getLongExtra("remaining_mb", 0L).toDouble())
170
+ putString("statusCode", intent.getStringExtra(IntentConstants.STATUS_CODE))
171
+ putString("message", intent.getStringExtra(IntentConstants.MESSAGE))
172
+ putDouble("timestamp", intent.getLongExtra(IntentConstants.TIMESTAMP, 0L).toDouble())
173
+ }
174
+ emitBroadcastEvent(SDKEvent.LOW_DEVICE_STORAGE_EVENT, params)
175
+ }
176
+ }
177
+
178
+ private val lowBatteryBroadcast = object : BroadcastReceiver() {
179
+ override fun onReceive(context: Context?, intent: Intent?) {
180
+ intent ?: return
181
+ val params = Arguments.createMap().apply {
182
+ putString("event", intent.getStringExtra(IntentConstants.EVENT))
183
+ putInt("currentBatteryPercent", intent.getIntExtra("current_battery_percent", 0))
184
+ putString("statusCode", intent.getStringExtra(IntentConstants.STATUS_CODE))
185
+ putString("message", intent.getStringExtra(IntentConstants.MESSAGE))
186
+ putDouble("timestamp", intent.getLongExtra(IntentConstants.TIMESTAMP, 0L).toDouble())
187
+ }
188
+ emitBroadcastEvent(SDKEvent.LOW_BATTERY_EVENT, params)
189
+ }
190
+ }
191
+
192
+ private fun emitBroadcastEvent(event: SDKEvent, params: WritableMap) {
193
+ Log.d(TAG, "Broadcast received: ${event.name} | params: $params")
194
+ if (reactContext.hasActiveReactInstance()) {
195
+ reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
196
+ .emit(event.name, params)
197
+ Log.d(TAG, "Broadcast emitted to JS: ${event.name}")
198
+ } else {
199
+ Log.w(TAG, "Broadcast received but no active React instance: ${event.name}")
200
+ }
201
+ }
202
+
63
203
  fun convertReadableMapToStringHashMap(readableMap: ReadableMap?): HashMap<String, String> {
64
204
  val result = HashMap<String, String>()
65
205
  if(readableMap!=null){
@@ -548,11 +688,74 @@ class InfivizShotsReactSdkModule(private val reactContext: ReactApplicationConte
548
688
  )
549
689
  }
550
690
 
691
+ @ReactMethod
692
+ fun fetchLatestSdkStatus(promise: Promise) {
693
+ val context = currentActivity ?: reactApplicationContext
694
+ InfiVizShotsSDK.fetchLatestSdkStatus(context, object : SDKCallback<infilect.infiviz.models.SDKStatus> {
695
+ override fun onSuccess(status: infilect.infiviz.models.SDKStatus) {
696
+ val jsonString = Gson().toJson(status)
697
+ val jsonObject = JSONObject(jsonString)
698
+ val writableMap = convertJsonToWritableMap(jsonObject)
699
+ promise.resolve(writableMap)
700
+ }
701
+
702
+ override fun onError(e: SDKExceptions) {
703
+ promise.reject("SDK_ERROR", e.message, e)
704
+ }
705
+ })
706
+ }
707
+
708
+ @ReactMethod
709
+ fun fetchSdkStatusLogs(days: Double, promise: Promise) {
710
+ val context = currentActivity ?: reactApplicationContext
711
+ InfiVizShotsSDK.fetchSdkStatusLogs(context, days.toInt(), object : SDKCallback<List<infilect.infiviz.models.SDKStatus>> {
712
+ override fun onSuccess(statusList: List<infilect.infiviz.models.SDKStatus>) {
713
+ val writableArray = Arguments.createArray()
714
+ for (status in statusList) {
715
+ val jsonString = Gson().toJson(status)
716
+ val jsonObject = JSONObject(jsonString)
717
+ val writableMap = convertJsonToWritableMap(jsonObject)
718
+ writableArray.pushMap(writableMap)
719
+ }
720
+ promise.resolve(writableArray)
721
+ }
722
+
723
+ override fun onError(e: SDKExceptions) {
724
+ promise.reject("SDK_ERROR", e.message, e)
725
+ }
726
+ })
727
+ }
728
+
551
729
  override fun initialize() {
552
- val filter = IntentFilter("sync_callback_broadcast")
553
- LocalBroadcastManager.getInstance(reactContext).registerReceiver(
554
- syncCallbackBroadcast, filter
555
- )
730
+ val lbm = LocalBroadcastManager.getInstance(reactContext)
731
+
732
+ // Sync callback broadcast
733
+ lbm.registerReceiver(syncCallbackBroadcast, IntentFilter("sync_callback_broadcast"))
734
+
735
+ // Image Upload failed broadcast
736
+ lbm.registerReceiver(imageUploadFailedBroadcast, IntentFilter(IntentConstants.IMAGE_UPLOAD_FAILED_BROADCAST))
737
+
738
+ // Session Upload failed broadcast
739
+ lbm.registerReceiver(sessionUploadFailedBroadcast, IntentFilter(IntentConstants.SESSION_UPLOAD_FAILED_BROADCAST))
740
+
741
+ // Session Processing SLA Breached broadcast
742
+ lbm.registerReceiver(sessionProcessingSlaBreachedBroadcast, IntentFilter(IntentConstants.SESSION_PROCESSING_SLA_BREACHED_BROADCAST))
743
+
744
+ // Image Slow Upload broadcast
745
+ lbm.registerReceiver(imageSlowUploadBroadcast, IntentFilter(IntentConstants.IMAGE_SLOW_UPLOAD_BROADCAST))
746
+
747
+ // High CPU Usage broadcast
748
+ lbm.registerReceiver(highCpuUsageBroadcast, IntentFilter(IntentConstants.HIGH_CPU_USAGE_BROADCAST))
749
+
750
+ // High Device Temperature broadcast
751
+ lbm.registerReceiver(highDeviceTemperatureBroadcast, IntentFilter(IntentConstants.HIGH_DEVICE_TEMPERATURE_BROADCAST))
752
+
753
+ // Low Device Storage broadcast
754
+ lbm.registerReceiver(lowDeviceStorageBroadcast, IntentFilter(IntentConstants.LOW_DEVICE_STORAGE_BROADCAST))
755
+
756
+ // Low Battery broadcast
757
+ lbm.registerReceiver(lowBatteryBroadcast, IntentFilter(IntentConstants.LOW_BATTERY_BROADCAST))
758
+
556
759
  irResultCallback = object : IRResultAndActionsCallback {
557
760
  override fun onCallback(
558
761
  globalSessionId: String,
@@ -577,7 +780,16 @@ class InfivizShotsReactSdkModule(private val reactContext: ReactApplicationConte
577
780
  override fun canOverrideExistingModule(): Boolean = true
578
781
 
579
782
  override fun invalidate() {
580
- LocalBroadcastManager.getInstance(reactContext).unregisterReceiver(syncCallbackBroadcast)
783
+ val lbm = LocalBroadcastManager.getInstance(reactContext)
784
+ lbm.unregisterReceiver(syncCallbackBroadcast)
785
+ lbm.unregisterReceiver(imageUploadFailedBroadcast)
786
+ lbm.unregisterReceiver(sessionUploadFailedBroadcast)
787
+ lbm.unregisterReceiver(sessionProcessingSlaBreachedBroadcast)
788
+ lbm.unregisterReceiver(imageSlowUploadBroadcast)
789
+ lbm.unregisterReceiver(highCpuUsageBroadcast)
790
+ lbm.unregisterReceiver(highDeviceTemperatureBroadcast)
791
+ lbm.unregisterReceiver(lowDeviceStorageBroadcast)
792
+ lbm.unregisterReceiver(lowBatteryBroadcast)
581
793
  InfiVizShotsSDK.removeIRResultAndActionsCallback(irResultCallback)
582
794
  }
583
795
 
@@ -596,5 +808,6 @@ class InfivizShotsReactSdkModule(private val reactContext: ReactApplicationConte
596
808
 
597
809
  companion object {
598
810
  const val NAME = "InfivizShotsReactSdk"
811
+ private const val TAG = "InfivizShotsRNBridge"
599
812
  }
600
813
  }
@@ -1,8 +1,15 @@
1
1
  package com.infilect.infivizshotsreactsdk
2
2
 
3
-
4
3
  sealed class SDKEvent(val name: String) {
5
4
  object SYNC_EVENT : SDKEvent("SyncEvent")
6
5
  object SESSION_RESULT_EVENT: SDKEvent("SessionRealTimeResultEvent")
7
6
  object ACTION_GENERATED_EVENT: SDKEvent("ActionsGeneratedEvent")
7
+ object IMAGE_UPLOAD_FAILED_EVENT: SDKEvent("ImageUploadFailedEvent")
8
+ object SESSION_UPLOAD_FAILED_EVENT: SDKEvent("SessionUploadFailedEvent")
9
+ object SESSION_PROCESSING_SLA_BREACHED_EVENT: SDKEvent("SESSION_PROCESSING_SLA_BREACHED")
10
+ object IMAGE_SLOW_UPLOAD_EVENT: SDKEvent("IMAGE_SLOW_UPLOAD")
11
+ object HIGH_CPU_USAGE_EVENT: SDKEvent("HighCpuUsageEvent")
12
+ object HIGH_DEVICE_TEMPERATURE_EVENT: SDKEvent("HighDeviceTemperatureEvent")
13
+ object LOW_DEVICE_STORAGE_EVENT: SDKEvent("LowDeviceStorageEvent")
14
+ object LOW_BATTERY_EVENT: SDKEvent("LowBatteryEvent")
8
15
  }