shakebug-react-native 1.0.14

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 (296) hide show
  1. package/DeviceInfo/index.js.flow +177 -0
  2. package/DeviceInfo/index.ts +1034 -0
  3. package/DeviceInfo/internal/asyncHookWrappers.ts +59 -0
  4. package/DeviceInfo/internal/devicesWithDynamicIsland.ts +30 -0
  5. package/DeviceInfo/internal/devicesWithNotch.ts +374 -0
  6. package/DeviceInfo/internal/nativeInterface.ts +28 -0
  7. package/DeviceInfo/internal/privateTypes.ts +231 -0
  8. package/DeviceInfo/internal/supported-platform-info.ts +97 -0
  9. package/DeviceInfo/internal/types.ts +19 -0
  10. package/DeviceInfo/web/index.js +223 -0
  11. package/GetLocals/src/NativeRNLocalize.ts +18 -0
  12. package/GetLocals/src/constants.ts +269 -0
  13. package/GetLocals/src/index.ts +56 -0
  14. package/GetLocals/src/module.ts +51 -0
  15. package/GetLocals/src/module.web.ts +148 -0
  16. package/GetLocals/src/types.ts +31 -0
  17. package/GetLocation/LocationError.ts +20 -0
  18. package/GetLocation/index.ts +46 -0
  19. package/GetLocation/utils.ts +89 -0
  20. package/ImageOrVedioPicker/src/index.ts +28 -0
  21. package/ImageOrVedioPicker/src/platforms/NativeImagePicker.ts +10 -0
  22. package/ImageOrVedioPicker/src/platforms/native.ts +61 -0
  23. package/ImageOrVedioPicker/src/platforms/web.ts +159 -0
  24. package/ImageOrVedioPicker/src/types.ts +74 -0
  25. package/NetInfo/src/__tests__/eventListenerCallbacks.spec.ts +332 -0
  26. package/NetInfo/src/__tests__/fetch.spec.ts +479 -0
  27. package/NetInfo/src/index.ts +186 -0
  28. package/NetInfo/src/internal/__mocks__/nativeModule.ts +13 -0
  29. package/NetInfo/src/internal/defaultConfiguration.ts +17 -0
  30. package/NetInfo/src/internal/defaultConfiguration.web.ts +17 -0
  31. package/NetInfo/src/internal/internetReachability.ts +180 -0
  32. package/NetInfo/src/internal/nativeInterface.ts +43 -0
  33. package/NetInfo/src/internal/nativeInterface.web.ts +27 -0
  34. package/NetInfo/src/internal/nativeModule.ts +15 -0
  35. package/NetInfo/src/internal/nativeModule.web.ts +306 -0
  36. package/NetInfo/src/internal/privateTypes.ts +41 -0
  37. package/NetInfo/src/internal/state.ts +137 -0
  38. package/NetInfo/src/internal/types.ts +128 -0
  39. package/README.md +246 -0
  40. package/RecordScreen/src/index.tsx +75 -0
  41. package/ScreenShot/src/RNViewShot.js +3 -0
  42. package/ScreenShot/src/RNViewShot.web.js +42 -0
  43. package/ScreenShot/src/index.js +308 -0
  44. package/Sensor/src/index.js +14 -0
  45. package/Sensor/src/rnsensors.js +57 -0
  46. package/Sensor/src/sensors.js +97 -0
  47. package/VideoPlayer/PlayVideo.tsx +51 -0
  48. package/VideoPlayer/index.js +69 -0
  49. package/android/README.md +14 -0
  50. package/android/build/generated/source/buildConfig/debug/com/shakebug/BuildConfig.java +10 -0
  51. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +42 -0
  52. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json +18 -0
  53. package/android/build/intermediates/aar_metadata/debug/aar-metadata.properties +6 -0
  54. package/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +1 -0
  55. package/android/build/intermediates/compile_library_classes_jar/debug/classes.jar +0 -0
  56. package/android/build/intermediates/compile_r_class_jar/debug/R.jar +0 -0
  57. package/android/build/intermediates/compile_symbol_list/debug/R.txt +47 -0
  58. package/android/build/intermediates/compiled_local_resources/debug/out/xml_imagepicker_provider_paths.xml.flat +0 -0
  59. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +12 -0
  60. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  61. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  62. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  63. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  64. package/android/build/intermediates/javac/debug/classes/com/shakebug/BuildConfig.class +0 -0
  65. package/android/build/intermediates/javac/debug/classes/com/shakebug/CustomMediaMetadataRetriever.class +0 -0
  66. package/android/build/intermediates/javac/debug/classes/com/shakebug/ImageMetadata.class +0 -0
  67. package/android/build/intermediates/javac/debug/classes/com/shakebug/ImagePickerProvider.class +0 -0
  68. package/android/build/intermediates/javac/debug/classes/com/shakebug/Metadata.class +0 -0
  69. package/android/build/intermediates/javac/debug/classes/com/shakebug/Options.class +0 -0
  70. package/android/build/intermediates/javac/debug/classes/com/shakebug/RecordScreenModule$1.class +0 -0
  71. package/android/build/intermediates/javac/debug/classes/com/shakebug/RecordScreenModule.class +0 -0
  72. package/android/build/intermediates/javac/debug/classes/com/shakebug/Shakebug.class +0 -0
  73. package/android/build/intermediates/javac/debug/classes/com/shakebug/ShakebugPackage.class +0 -0
  74. package/android/build/intermediates/javac/debug/classes/com/shakebug/Utility.class +0 -0
  75. package/android/build/intermediates/javac/debug/classes/com/shakebug/Utils.class +0 -0
  76. package/android/build/intermediates/javac/debug/classes/com/shakebug/VideoMetadata.class +0 -0
  77. package/android/build/intermediates/javac/debug/classes/com/shakebug/ViewShot$1.class +0 -0
  78. package/android/build/intermediates/javac/debug/classes/com/shakebug/ViewShot$2.class +0 -0
  79. package/android/build/intermediates/javac/debug/classes/com/shakebug/ViewShot$Formats.class +0 -0
  80. package/android/build/intermediates/javac/debug/classes/com/shakebug/ViewShot$Results.class +0 -0
  81. package/android/build/intermediates/javac/debug/classes/com/shakebug/ViewShot$ReusableByteArrayOutputStream.class +0 -0
  82. package/android/build/intermediates/javac/debug/classes/com/shakebug/ViewShot.class +0 -0
  83. package/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +49 -0
  84. package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +82 -0
  85. package/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml +42 -0
  86. package/android/build/intermediates/navigation_json/debug/navigation.json +1 -0
  87. package/android/build/intermediates/packaged_res/debug/values/values.xml +25 -0
  88. package/android/build/intermediates/packaged_res/debug/xml/imagepicker_provider_paths.xml +4 -0
  89. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/BuildConfig.class +0 -0
  90. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/CustomMediaMetadataRetriever.class +0 -0
  91. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/ImageMetadata.class +0 -0
  92. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/ImagePickerProvider.class +0 -0
  93. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/Metadata.class +0 -0
  94. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/Options.class +0 -0
  95. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/RecordScreenModule$1.class +0 -0
  96. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/RecordScreenModule.class +0 -0
  97. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/Shakebug.class +0 -0
  98. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/ShakebugPackage.class +0 -0
  99. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/Utility.class +0 -0
  100. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/Utils.class +0 -0
  101. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/VideoMetadata.class +0 -0
  102. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/ViewShot$1.class +0 -0
  103. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/ViewShot$2.class +0 -0
  104. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/ViewShot$Formats.class +0 -0
  105. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/ViewShot$Results.class +0 -0
  106. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/ViewShot$ReusableByteArrayOutputStream.class +0 -0
  107. package/android/build/intermediates/runtime_library_classes_dir/debug/com/shakebug/ViewShot.class +0 -0
  108. package/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +48 -0
  109. package/android/build/outputs/logs/manifest-merger-debug-report.txt +97 -0
  110. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  111. package/android/build.gradle +235 -0
  112. package/android/src/main/AndroidManifest.xml +40 -0
  113. package/android/src/main/java/com/shakebug/AmazonFireDeviceConnectivityPoller.java +170 -0
  114. package/android/src/main/java/com/shakebug/BaseUtils.java +33 -0
  115. package/android/src/main/java/com/shakebug/BroadcastReceiverConnectivityReceiver.java +131 -0
  116. package/android/src/main/java/com/shakebug/ConnectivityReceiver.java +318 -0
  117. package/android/src/main/java/com/shakebug/CrashLoggerModule.java +48 -0
  118. package/android/src/main/java/com/shakebug/DateUtil.java +64 -0
  119. package/android/src/main/java/com/shakebug/DeviceType.java +18 -0
  120. package/android/src/main/java/com/shakebug/DeviceUtil.java +46 -0
  121. package/android/src/main/java/com/shakebug/DrawingView.java +90 -0
  122. package/android/src/main/java/com/shakebug/DrawingViewManager.java +38 -0
  123. package/android/src/main/java/com/shakebug/GetLocation.java +147 -0
  124. package/android/src/main/java/com/shakebug/ImageMetadata.java +42 -0
  125. package/android/src/main/java/com/shakebug/ImagePickerProvider.java +8 -0
  126. package/android/src/main/java/com/shakebug/Metadata.java +46 -0
  127. package/android/src/main/java/com/shakebug/NetInfoModule.java +79 -0
  128. package/android/src/main/java/com/shakebug/NetInfoUtils.java +50 -0
  129. package/android/src/main/java/com/shakebug/NetworkCallbackConnectivityReceiver.java +209 -0
  130. package/android/src/main/java/com/shakebug/Options.java +42 -0
  131. package/android/src/main/java/com/shakebug/RNDeviceModule.java +1036 -0
  132. package/android/src/main/java/com/shakebug/RNInstallReferrerClient.java +124 -0
  133. package/android/src/main/java/com/shakebug/RNLocalizeModule.java +79 -0
  134. package/android/src/main/java/com/shakebug/RNLocalizeModuleImpl.java +258 -0
  135. package/android/src/main/java/com/shakebug/ReactNativeGetLocationModule.java +95 -0
  136. package/android/src/main/java/com/shakebug/RecordScreenModule.java +202 -0
  137. package/android/src/main/java/com/shakebug/ScreenshotDetectorModule.java +63 -0
  138. package/android/src/main/java/com/shakebug/SettingsUtil.java +44 -0
  139. package/android/src/main/java/com/shakebug/Shakebug.java +181 -0
  140. package/android/src/main/java/com/shakebug/ShakebugPackage.java +75 -0
  141. package/android/src/main/java/com/shakebug/ShakebugSDKImagePickerModule.java +56 -0
  142. package/android/src/main/java/com/shakebug/ShakebugSDKImagePickerModuleImpl.java +230 -0
  143. package/android/src/main/java/com/shakebug/ShakebugSDKScreenShotModule.java +196 -0
  144. package/android/src/main/java/com/shakebug/SharedPreferencesModule.java +39 -0
  145. package/android/src/main/java/com/shakebug/UnitConverter.java +48 -0
  146. package/android/src/main/java/com/shakebug/Utility.java +29 -0
  147. package/android/src/main/java/com/shakebug/Utils.java +593 -0
  148. package/android/src/main/java/com/shakebug/VideoMetadata.java +91 -0
  149. package/android/src/main/java/com/shakebug/VideoPlayerModule.java +199 -0
  150. package/android/src/main/java/com/shakebug/VideoThumbnailModule.java +215 -0
  151. package/android/src/main/java/com/shakebug/VideoTrimModule.java +372 -0
  152. package/android/src/main/java/com/shakebug/ViewShot.java +627 -0
  153. package/android/src/main/java/com/shakebug/adapters/VideoTrimmerAdapter.java +54 -0
  154. package/android/src/main/java/com/shakebug/callback/SingleCallback.java +11 -0
  155. package/android/src/main/java/com/shakebug/interfaces/IVideoTrimmerView.java +5 -0
  156. package/android/src/main/java/com/shakebug/interfaces/VideoPlayerListner.java +5 -0
  157. package/android/src/main/java/com/shakebug/interfaces/VideoTrimListener.java +10 -0
  158. package/android/src/main/java/com/shakebug/resolver/DeviceIdResolver.java +87 -0
  159. package/android/src/main/java/com/shakebug/resolver/DeviceTypeResolver.java +94 -0
  160. package/android/src/main/java/com/shakebug/thread/BackgroundExecutor.java +246 -0
  161. package/android/src/main/java/com/shakebug/thread/UiThreadExecutor.java +120 -0
  162. package/android/src/main/java/com/shakebug/types/CellularGeneration.java +60 -0
  163. package/android/src/main/java/com/shakebug/types/ConnectionType.java +26 -0
  164. package/android/src/main/java/com/shakebug/utils/StorageUtil.java +139 -0
  165. package/android/src/main/java/com/shakebug/utils/VideoTrimmerUtil.java +89 -0
  166. package/android/src/main/java/com/shakebug/widgets/RangeSeekBarView.java +534 -0
  167. package/android/src/main/java/com/shakebug/widgets/SpacesItemDecoration2.java +32 -0
  168. package/android/src/main/java/com/shakebug/widgets/VideoPlayerView.java +429 -0
  169. package/android/src/main/java/com/shakebug/widgets/VideoTrimmerView.java +477 -0
  170. package/android/src/main/java/com/shakebug/widgets/ZVideoView.java +48 -0
  171. package/android/src/main/res/drawable/custom_progress.xml +16 -0
  172. package/android/src/main/res/drawable/custom_thumb.xml +4 -0
  173. package/android/src/main/res/drawable/ic_close_button.xml +10 -0
  174. package/android/src/main/res/drawable/ic_video_pause_black.png +0 -0
  175. package/android/src/main/res/drawable/ic_video_play_black.png +0 -0
  176. package/android/src/main/res/drawable/ic_video_thumb_handle.png +0 -0
  177. package/android/src/main/res/drawable/icon_seek_bar.png +0 -0
  178. package/android/src/main/res/layout/video_player_view.xml +121 -0
  179. package/android/src/main/res/layout/video_thumb_item_layout.xml +16 -0
  180. package/android/src/main/res/layout/video_trimmer_view.xml +148 -0
  181. package/android/src/main/res/values/colors.xml +17 -0
  182. package/android/src/main/res/values/strings.xml +14 -0
  183. package/android/src/main/res/xml/imagepicker_provider_paths.xml +4 -0
  184. package/ios/CammeraPermission/RNCameraPermission.h +16 -0
  185. package/ios/CammeraPermission/RNCameraPermission.m +46 -0
  186. package/ios/DeviceInfo/DeviceUID.h +14 -0
  187. package/ios/DeviceInfo/DeviceUID.m +202 -0
  188. package/ios/DeviceInfo/EnvironmentUtil.h +41 -0
  189. package/ios/DeviceInfo/EnvironmentUtil.m +56 -0
  190. package/ios/DeviceInfo/RNDeviceInfo.h +22 -0
  191. package/ios/DeviceInfo/RNDeviceInfo.m +918 -0
  192. package/ios/GetLocals/ShakebugSDKRNLocalize.h +21 -0
  193. package/ios/GetLocals/ShakebugSDKRNLocalize.m +296 -0
  194. package/ios/GetLocation/SettingsUtil.h +16 -0
  195. package/ios/GetLocation/SettingsUtil.m +21 -0
  196. package/ios/GetLocation/ShakebugSDKLocationModule.h +17 -0
  197. package/ios/GetLocation/ShakebugSDKLocationModule.m +218 -0
  198. package/ios/ImageOrVideoPicker/ShakebugSDKImagePickerManager.h +40 -0
  199. package/ios/ImageOrVideoPicker/ShakebugSDKImagePickerManager.m +588 -0
  200. package/ios/ImageOrVideoPicker/ShakebugSDKImagePickerUtils.h +26 -0
  201. package/ios/ImageOrVideoPicker/ShakebugSDKImagePickerUtils.m +194 -0
  202. package/ios/MicrophonePermissionManager.h +14 -0
  203. package/ios/MicrophonePermissionManager.m +35 -0
  204. package/ios/NetInfo/RNCConnectionState.h +42 -0
  205. package/ios/NetInfo/RNCConnectionState.m +119 -0
  206. package/ios/NetInfo/RNCConnectionStateWatcher.h +31 -0
  207. package/ios/NetInfo/RNCConnectionStateWatcher.m +136 -0
  208. package/ios/NetInfo/RNCNetInfo.h +13 -0
  209. package/ios/NetInfo/RNCNetInfo.m +269 -0
  210. package/ios/RecordScreen/ShakebugSDKRecordScreen.h +31 -0
  211. package/ios/RecordScreen/ShakebugSDKRecordScreen.m +309 -0
  212. package/ios/ScreenShot/ShakebugSDKRNViewShot.h +6 -0
  213. package/ios/ScreenShot/ShakebugSDKRNViewShot.m +186 -0
  214. package/ios/ScreenshotDetector/ScreenShotDetector.h +12 -0
  215. package/ios/ScreenshotDetector/ScreenShotDetector.m +37 -0
  216. package/ios/Senors/RNSensorsAccelerometer.h +22 -0
  217. package/ios/Senors/RNSensorsAccelerometer.m +162 -0
  218. package/ios/Senors/RNSensorsBarometer.h +22 -0
  219. package/ios/Senors/RNSensorsBarometer.m +141 -0
  220. package/ios/Senors/RNSensorsGravity.h +22 -0
  221. package/ios/Senors/RNSensorsGravity.m +165 -0
  222. package/ios/Senors/RNSensorsGyroscope.h +22 -0
  223. package/ios/Senors/RNSensorsGyroscope.m +160 -0
  224. package/ios/Senors/RNSensorsMagnetometer.h +22 -0
  225. package/ios/Senors/RNSensorsMagnetometer.m +163 -0
  226. package/ios/Senors/RNSensorsOrientation.h +22 -0
  227. package/ios/Senors/RNSensorsOrientation.m +189 -0
  228. package/ios/Senors/RNSensorsUtils.h +7 -0
  229. package/ios/Senors/RNSensorsUtils.m +9 -0
  230. package/ios/Shakebug.h +7 -0
  231. package/ios/Shakebug.m +16 -0
  232. package/ios/Shakebug.xcodeproj/project.pbxproj +872 -0
  233. package/ios/Shakebug.xcodeproj/xcshareddata/xcschemes/Shakebug.xcscheme +66 -0
  234. package/ios/Shakebug.xcworkspace/contents.xcworkspacedata +10 -0
  235. package/ios/Shakebug.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  236. package/ios/SketchCanvas/DrawingView.h +18 -0
  237. package/ios/SketchCanvas/DrawingView.m +96 -0
  238. package/ios/SketchCanvas/DrawingViewManager.h +12 -0
  239. package/ios/SketchCanvas/DrawingViewManager.m +35 -0
  240. package/ios/Storage/SharedPreferencesModule.h +13 -0
  241. package/ios/Storage/SharedPreferencesModule.m +35 -0
  242. package/ios/Thumbnaill/VideoThumbnailManager.h +12 -0
  243. package/ios/Thumbnaill/VideoThumbnailManager.m +73 -0
  244. package/ios/TrimVideo/ShakebugSDKVideoTrim.swift +372 -0
  245. package/ios/TrimVideo/VideoTrim-Bridging-Header.h +10 -0
  246. package/ios/TrimVideo/VideoTrim.m +23 -0
  247. package/ios/TrimVideo/VideoTrimmer.swift +810 -0
  248. package/ios/TrimVideo/VideoTrimmerThumb.swift +119 -0
  249. package/ios/TrimVideo/VideoTrimmerViewController.swift +301 -0
  250. package/ios/VideoPlayer/VideoPlayerModule.h +14 -0
  251. package/ios/VideoPlayer/VideoPlayerModule.m +29 -0
  252. package/ios/VideoPlayer/VideoPlayerViewController.h +18 -0
  253. package/ios/VideoPlayer/VideoPlayerViewController.m +29 -0
  254. package/package.json +45 -0
  255. package/shakebug-react-native.podspec +50 -0
  256. package/src/APIs/AddIssue.js +70 -0
  257. package/src/APIs/EndSession.js +32 -0
  258. package/src/APIs/Event.js +39 -0
  259. package/src/APIs/MatchKey.js +40 -0
  260. package/src/APIs/StartSession.js +84 -0
  261. package/src/Assets/images/OpenSketch.png +0 -0
  262. package/src/Assets/images/Push.png +0 -0
  263. package/src/Assets/images/RemoveTextView.png +0 -0
  264. package/src/Assets/images/black.png +0 -0
  265. package/src/Assets/images/blue.png +0 -0
  266. package/src/Assets/images/borderdBlack.png +0 -0
  267. package/src/Assets/images/borderdBlue.png +0 -0
  268. package/src/Assets/images/borderdGreen.png +0 -0
  269. package/src/Assets/images/borderdRed.png +0 -0
  270. package/src/Assets/images/borderdYellow.png +0 -0
  271. package/src/Assets/images/clear.png +0 -0
  272. package/src/Assets/images/close.png +0 -0
  273. package/src/Assets/images/green.png +0 -0
  274. package/src/Assets/images/next.png +0 -0
  275. package/src/Assets/images/play.png +0 -0
  276. package/src/Assets/images/red.png +0 -0
  277. package/src/Assets/images/shake.png +0 -0
  278. package/src/Assets/images/shakebugLogo.png +0 -0
  279. package/src/Assets/images/stopButton.png +0 -0
  280. package/src/Assets/images/text_icon.png +0 -0
  281. package/src/Assets/images/yellow.png +0 -0
  282. package/src/Componanats/CustomAlert.js +80 -0
  283. package/src/Componanats/ErrorHandler.js +80 -0
  284. package/src/Componanats/GlobalStateContext.js +22 -0
  285. package/src/Componanats/KeyboardAvoidingWrapper.js +43 -0
  286. package/src/Componanats/NavigationContext.js +42 -0
  287. package/src/Componanats/ShakeFunction.js +562 -0
  288. package/src/Componanats/localization.js +482 -0
  289. package/src/Screens/AddDetailsScreen.js +462 -0
  290. package/src/Screens/FirstScreen.js +629 -0
  291. package/src/Screens/Shakebug.js +487 -0
  292. package/src/Screens/StrockView.js +20 -0
  293. package/src/Screens/TrimVideoScreen.js +81 -0
  294. package/src/Screens/TutorialScreen.js +36 -0
  295. package/src/index.tsx +117 -0
  296. package/trimVideo/src/index.tsx +141 -0
@@ -0,0 +1,562 @@
1
+ import { View, Text, Platform, Image, ImageBackground, NativeModules, DeviceEventEmitter, NativeEventEmitter, StatusBar, PanResponder, Animated, AppState, Dimensions, BackHandler, LogBox, StyleSheet } from 'react-native'
2
+ import React, { useRef, useEffect, useState } from 'react'
3
+ import { SensorTypes, setUpdateIntervalForType, accelerometer } from '../../Sensor/src/index';
4
+ import ViewShot from '../../ScreenShot/src/index';
5
+ import { TouchableOpacity } from 'react-native';
6
+ import RecordScreen from '../../RecordScreen/src/index';
7
+ import { ClearCanvas, RNDrawingView } from '../Screens/StrockView';
8
+ import DeviceInfo, { getBaseOs } from '../../DeviceInfo';
9
+ import { useNavigation } from './NavigationContext';
10
+
11
+ console.ignoredYellowBox = ["Warning: Each", "Warning: Failed", "Possible", "WARN"];
12
+
13
+ import { logger, consoleTransport } from "react-native-logs";
14
+ import { ActivityIndicator } from 'react-native';
15
+ import { useGlobalState } from 'shakebug-react-native/src/Componanats/GlobalStateContext';
16
+
17
+ LogBox.ignoreAllLogs()
18
+
19
+ const ShakeFunction = ({ children, themeColor, showTutorialScreen, SDKScreenTitle, allowToReportBugByShaking, allowToReportBugByScreenCapture, allowCrashReport }) => {
20
+
21
+ const { ShakebugSDKScreenShotDetector, ShakebugSDKSharedPreferencesModule } = NativeModules;
22
+
23
+ const { navigate, focusedScreen, goToScreenAtIndex } = useNavigation();
24
+
25
+ let isFocused = focusedScreen == "ShakebugHome";
26
+ const [isLoading, setIsLoading] = useState(false)
27
+ // const [isScrenShot, setIsScreenShot] = useState(false)
28
+
29
+ const { setIsRecordingStart, setIsScreenShot, isScrenShot, isShakebugOpen } = useGlobalState()
30
+
31
+ if (Platform.OS == 'android') {
32
+ ShakebugSDKScreenShotDetector.startObserving();
33
+
34
+ useEffect(() => {
35
+ const subscription = DeviceEventEmitter.addListener('ScreenshotTaken', async () => {
36
+ if (allowToReportBugByScreenCapture == true) {
37
+ if (!global.isScreenShotDetected && global.application_id != "" && global.application_id != undefined) {
38
+ OpenShakebug()
39
+ }
40
+ }
41
+ })
42
+
43
+ return () => subscription.remove()
44
+ }, []);
45
+ }
46
+ else {
47
+ const screenShotEmitter = new NativeEventEmitter(ShakebugSDKScreenShotDetector);
48
+ useEffect(() => {
49
+ const subscription = screenShotEmitter.addListener(
50
+ 'ScreenshotTaken',
51
+ (event) => {
52
+ if (allowToReportBugByScreenCapture == true) {
53
+ // setIsScreenShot(true)
54
+ if (!global.isScreenShotDetected && global.application_id != "" && global.application_id != undefined) {
55
+ OpenShakebug()
56
+ }
57
+ }
58
+ }
59
+ );
60
+
61
+ return () => subscription.remove();
62
+ }, []);
63
+ }
64
+
65
+ const ref = useRef();
66
+ let canvasRef = useRef()
67
+ const [isShow, setIsShow] = useState()
68
+ const [time, setTime] = useState("00:00")
69
+ const [img, setImg] = useState("")
70
+ const [isDraw, setIsDraw] = useState(false)
71
+ const startTimeRef = useRef(null);
72
+ const appState = useRef(AppState.currentState);
73
+ const [triggered, setTriggred] = useState(global.isTrigger);
74
+ const [restrictedView, setRestrictedView] = useState([])
75
+
76
+ const defaultConfig = {
77
+ levels: {
78
+ debug: 0,
79
+ info: 1,
80
+ warn: 2,
81
+ error: 3,
82
+ },
83
+ severity: "debug",
84
+ transport: consoleTransport,
85
+ transportOptions: {
86
+ colors: {
87
+ info: "blueBright",
88
+ warn: "yellowBright",
89
+ error: "redBright",
90
+ },
91
+ },
92
+ async: true,
93
+ dateFormat: "time",
94
+ printLevel: false,
95
+ printDate: false,
96
+ fixedExtLvlLength: false,
97
+ enabled: global.makeLogEnabled == true ? true : false,
98
+ };
99
+
100
+
101
+ var log = logger.createLogger(defaultConfig);
102
+
103
+ setUpdateIntervalForType(SensorTypes.accelerometer, 200);
104
+
105
+ let iscrashSaveed = ""
106
+ const BASE_URL = global.ShakebugSDKEndPointURL;
107
+ const API_KEY = global.ShakebugSDKEndPointURLheaderKey;
108
+
109
+
110
+ useEffect(() => {
111
+ async function fetchIsFirstTime() {
112
+ let showTutorialScreenFirstTime = showTutorialScreen;
113
+ const isVisited = await ShakebugSDKSharedPreferencesModule.getString('isVisited');
114
+ if (isVisited == "" || isVisited == undefined) {
115
+ ShakebugSDKSharedPreferencesModule.setString("isVisited", "true")
116
+ }
117
+
118
+ if (showTutorialScreenFirstTime == true || showTutorialScreenFirstTime == undefined) {
119
+ setTimeout(() => {
120
+ if ((isVisited != "true" || isVisited == "" || isVisited == undefined)) {
121
+ navigate("TutorialScreen")
122
+ }
123
+ }, 200)
124
+ }
125
+ }
126
+ fetchIsFirstTime();
127
+ }, []);
128
+
129
+
130
+ useEffect(() => {
131
+ async function fetchIsFirstTime() {
132
+ iscrashSaveed = await ShakebugSDKSharedPreferencesModule.getString('iscrashSaveed')
133
+
134
+ if (iscrashSaveed.length > 10 && allowCrashReport) {
135
+
136
+ let data = JSON.parse(iscrashSaveed)
137
+
138
+ const formData = new FormData();
139
+ formData.append("method", "addIssue");
140
+ formData.append("description", data["desc"]);
141
+ formData.append("applicationsid", data["application_id"]);
142
+ formData.append("session_id", data["session_id"]);
143
+ formData.append("batteryLevel", data["batteryLevel"]);
144
+ formData.append("image", "");
145
+ formData.append("memory", data["memory"]);
146
+ formData.append("email", "");
147
+ formData.append("bugtypes", "crashed");
148
+ formData.append("devicemodel", `${data["architecture"]} -- ${data["model"]}`);
149
+ formData.append("osversion", data["osversion"]);
150
+ formData.append("internettype", data["internetType"]);
151
+ formData.append("created", data["created"]);
152
+ formData.append("isVideo", 0);
153
+ formData.append("appversion", data["appversion"]);
154
+
155
+
156
+
157
+ try {
158
+ const response = await fetch(BASE_URL, {
159
+ method: 'POST',
160
+ headers: {
161
+ 'API-KEY': API_KEY
162
+ },
163
+ body: formData,
164
+ });
165
+
166
+ const data = await response.json();
167
+
168
+ if (data.code === 200 && data.success === true) {
169
+ log.info(data.msg)
170
+ ShakebugSDKSharedPreferencesModule.setString("iscrashSaveed", JSON.stringify({}))
171
+ } else {
172
+
173
+ }
174
+ }
175
+ catch (e) {
176
+ log.error("e", e)
177
+ }
178
+ }
179
+
180
+ }
181
+ fetchIsFirstTime();
182
+ }, []);
183
+
184
+
185
+ const Stop = () => {
186
+ RecordScreen.stopRecording().then(res => {
187
+ // setIsScreenShot(true)
188
+ global.isMic = false;
189
+ global.isRecordingStart = false;
190
+ global.IsBackground = "true"
191
+ setIsShow(false)
192
+ setIsDraw(false)
193
+ global.isDraw = false;
194
+ global.isShow = false;
195
+ startTimeRef.current = null
196
+ clearInterval(intervalId);
197
+ setIsLoading(false)
198
+ global.isRecording = false;
199
+ navigate("AddDetailsScreen", { media: res.result.outputURL, mediaType: 'Recordvideo', themeColor: themeColor, SDKScreenTitle: `${SDKScreenTitle}` })
200
+ })
201
+ .catch(e => {
202
+ log.warn("e", e)
203
+ })
204
+ }
205
+
206
+ useEffect(() => {
207
+ const handleAppStateChange = (nextAppState) => {
208
+ if (nextAppState == 'background') {
209
+ if (Platform.OS == 'ios' && global.isRecording) {
210
+ Stop()
211
+ }
212
+ }
213
+
214
+ if (appState.current.match(/inactive|background/) && nextAppState === 'active') {
215
+ // Calculate the elapsed time when the app comes back to the foreground
216
+ if (startTimeRef.current && global.isRecording) {
217
+ const elapsed = Math.floor((Date.now() - startTimeRef.current) / 1000);
218
+ updateTimer(elapsed);
219
+ }
220
+
221
+ }
222
+ appState.current = nextAppState;
223
+ };
224
+
225
+ const AppStateListener = AppState.addEventListener('change', handleAppStateChange);
226
+
227
+ // Start the interval initially
228
+ startTimer();
229
+
230
+ return () => {
231
+ // AppState.removeEventListener('change', handleAppStateChange);
232
+ AppStateListener.remove()
233
+ clearInterval(intervalId);
234
+ };
235
+ }, []);
236
+
237
+ const startTimer = () => {
238
+ startTimeRef.current = Date.now();
239
+ intervalId = setInterval(() => {
240
+ if (global.isRecording) {
241
+ const elapsed = Math.floor((Date.now() - startTimeRef.current) / 1000);
242
+ updateTimer(elapsed);
243
+ }
244
+ }, 1000);
245
+ };
246
+
247
+ const updateTimer = (elapsed) => {
248
+ const min = Math.floor(elapsed / 60);
249
+ const sec = parseInt(elapsed % 60);
250
+
251
+ if (elapsed == global.videoDuration) {
252
+ clearInterval(intervalId);
253
+ setTimeout(() => {
254
+ Stop()
255
+ }, 1000)
256
+ }
257
+
258
+ if (elapsed > global.videoDuration) {
259
+ RecordScreen.stopRecording()
260
+ .then(() => {
261
+ global.isMic = false;
262
+ global.isRecordingStart = false;
263
+ global.IsBackground = "true"
264
+ global.isRecording = false;
265
+ setIsShow(false)
266
+ setIsDraw(false)
267
+ global.isDraw = false;
268
+ global.isShow = false;
269
+ startTimeRef.current = null
270
+ clearInterval(intervalId);
271
+ })
272
+ }
273
+
274
+ const minStr = min < 10 ? `0${min}` : min;
275
+ const secStr = sec < 10 ? `0${sec}` : sec;
276
+ setTime(`${minStr}:${secStr}`);
277
+ };
278
+
279
+ useEffect(() => {
280
+ let xdata = 0;
281
+ let ydata = 0;
282
+ let zdata = 0;
283
+
284
+ DeviceInfo.isEmulator().then(res => {
285
+ if (!res && isRecording == false && allowToReportBugByShaking !== false) {
286
+ const subscription = accelerometer.subscribe(async ({ x, y, z, timestamp }) => {
287
+ xdata = x;
288
+ ydata = y;
289
+ zdata = z;
290
+
291
+ let calculate = Math.abs(xdata + ydata + zdata)
292
+
293
+ if (global.isTrigger == true && global.isShakebugOpen == false) {
294
+ setTriggred(true)
295
+ global.isShakebugOpen = true;
296
+ setTimeout(() => {
297
+ OpenShakebug()
298
+ }, 200)
299
+ }
300
+
301
+ if (Platform.OS == 'android' && global.isRecording == false && global.isTrigger == false) {
302
+ if (calculate.toFixed(2) >= 18.00) {
303
+ if (global.isAndroidValid == true && global.application_id != "" && global.application_id != undefined && global.isTrigger == false) {
304
+ setIsScreenShot(true)
305
+ const ImgUrl = await ref.current.capture()
306
+ if (!isShow) {
307
+ if (ImgUrl != undefined || ImgUrl != null) {
308
+ subscription.unsubscribe();
309
+ global.IsBackground = false
310
+ global.isShakebugSDKOpen = true
311
+ navigate("FirstScreen", { img: `${ImgUrl}`, themeColor: `${themeColor}`, SDKScreenTitle: `${SDKScreenTitle}` })
312
+ }
313
+ else {
314
+ setIsScreenShot(false)
315
+ }
316
+ }
317
+ xdata = 0;
318
+ ydata = 0;
319
+ zdata = 0;
320
+ }
321
+ }
322
+ }
323
+ else if (Platform.OS == 'ios' && global.isRecording == false && global.isTrigger == false) {
324
+ if (calculate.toFixed(2) >= 2.00) {
325
+ if (global.isIOSValid == true && global.application_id != "" && global.application_id != undefined) {
326
+ setIsScreenShot(true)
327
+ const ImgUrl = await ref.current.capture()
328
+ if (ImgUrl != undefined || ImgUrl != null) {
329
+ subscription.unsubscribe();
330
+ global.isShakebugSDKOpen = true
331
+ navigate("FirstScreen", { img: `${ImgUrl}`, themeColor: `${themeColor}`, SDKScreenTitle: `${SDKScreenTitle}` })
332
+ }
333
+ else {
334
+ setIsScreenShot(false)
335
+ }
336
+
337
+ xdata = 0;
338
+ ydata = 0;
339
+ zdata = 0;
340
+ }
341
+ }
342
+ }
343
+ })
344
+
345
+ if (isFocused == false) {
346
+ subscription.unsubscribe()
347
+ xdata = 0;
348
+ ydata = 0;
349
+ zdata = 0;
350
+ setTime("00:00")
351
+ pan.setValue({ x: SCREEN_WIDTH * 0.55, y: SCREEN_HEIGHT * 0.85 });
352
+ }
353
+ }
354
+ else {
355
+ setInterval(() => {
356
+ if (global.isTrigger == true && global.isShakebugOpen == false) {
357
+ global.isShakebugOpen = true;
358
+ global.isTrigger = true;
359
+ OpenShakebug()
360
+ }
361
+ }, 1000)
362
+ }
363
+ })
364
+
365
+ }, [isFocused])
366
+
367
+ const OpenShakebug = async () => {
368
+ setIsScreenShot(true)
369
+ if (global.application_id != "" && global.application_id != undefined && global.session_id != "" && global.session_id != undefined) {
370
+ const ImgUrl = await ref.current.capture()
371
+ if (!isShow) {
372
+ if (ImgUrl != undefined || ImgUrl != null) {
373
+ global.IsBackground = false
374
+ global.isScreenShotDetected = true;
375
+ setTriggred(false)
376
+ global.isShakebugSDKOpen = true
377
+ navigate("FirstScreen", { img: `${ImgUrl}`, themeColor: `${themeColor}`, SDKScreenTitle: `${SDKScreenTitle}` })
378
+ }
379
+ }
380
+ }
381
+ }
382
+
383
+ useEffect(() => {
384
+ if (isScrenShot) {
385
+ setIsScreenShot(false)
386
+ }
387
+ setTimeout(() => {
388
+ if (global.isRecordingStart == true && global.isRecording != true) {
389
+ setIsLoading(true)
390
+ try {
391
+ RecordScreen.startRecording({
392
+ mic: global.isMic,
393
+ fps: 30,
394
+ bitrate: 1024000,
395
+ }).then(res => {
396
+ setIsLoading(false)
397
+ if (res == 'started') {
398
+ setIsRecordingStart(true)
399
+ if (focusedScreen != "ShakebugHome") {
400
+ goToScreenAtIndex(0)
401
+ }
402
+ global.isRecording = true;
403
+ StatusBar.setHidden(false)
404
+ setIsShow(global.isRecording)
405
+ global.minutes = 0;
406
+ global.Seconds = 0;
407
+ startTimeRef.current = null
408
+ startTimer()
409
+ }
410
+ else {
411
+ global.isMic = false;
412
+ global.isRecordingStart = false;
413
+ OpenShakebug()
414
+ }
415
+ })
416
+ .catch(e => {
417
+ log.error("e", e)
418
+ setIsLoading(false)
419
+ })
420
+ }
421
+ catch (e) {
422
+ log.error("error", e)
423
+ setIsLoading(false)
424
+ }
425
+ }
426
+ }, 1000)
427
+
428
+ }, [isFocused])
429
+
430
+
431
+ const { width: SCREEN_WIDTH, height: SCREEN_HEIGHT } = Dimensions.get('window');
432
+
433
+ const pan = useRef(new Animated.ValueXY()).current;
434
+
435
+ const BOUNDARY_X_MIN = 0;
436
+ const BOUNDARY_X_MAX = Dimensions.get('window').width * 0.6; // Set your max boundary for x
437
+ const BOUNDARY_Y_MIN = 0;
438
+ const BOUNDARY_Y_MAX = Dimensions.get('window').height * 0.98; // Set your max boundary for y
439
+
440
+ const panResponder = useRef(
441
+ PanResponder.create({
442
+ onStartShouldSetPanResponder: () => true,
443
+ onPanResponderMove: (event, gestureState) => {
444
+ // Calculate the new x and y values within the boundaries
445
+ let newX = Math.max(BOUNDARY_X_MIN, Math.min(BOUNDARY_X_MAX, gestureState.dx + pan.x._offset));
446
+ let newY = Math.max(BOUNDARY_Y_MIN, Math.min(BOUNDARY_Y_MAX, gestureState.dy + pan.y._offset));
447
+
448
+ pan.setValue({ x: newX - pan.x._offset, y: newY - pan.y._offset });
449
+ },
450
+ onPanResponderRelease: () => {
451
+ pan.flattenOffset();
452
+ },
453
+ onPanResponderGrant: () => {
454
+ pan.setOffset({
455
+ x: pan.x._value,
456
+ y: pan.y._value
457
+ });
458
+ pan.setValue({ x: SCREEN_WIDTH * 0.55, y: SCREEN_HEIGHT * 0.8 });
459
+ }
460
+ })
461
+ ).current;
462
+
463
+ return (
464
+ <>
465
+
466
+ <ViewShot ref={ref} options={{ fileName: "ScreenShort", format: "jpg", quality: 1, }} style={{ width: "100%", height: '100%', backgroundColor: 'white', }}>
467
+ {isDraw ? (
468
+ <ImageBackground
469
+ source={{ uri: img }}
470
+ style={{
471
+ alignItems: 'center',
472
+ width: "100%",
473
+ height: "100%"
474
+ }}
475
+ resizeMode='contain'
476
+ >
477
+ <RNDrawingView
478
+ ref={canvasRef}
479
+ style={{ width: '100%', height: '100%' }}
480
+ color={'red'}
481
+ strokeWidth={Platform.OS == 'android' ? 5 : 3}
482
+ />
483
+
484
+ </ImageBackground>
485
+ ) : (<View style={{ width: '100%', height: '100%' }}>
486
+ {children}
487
+ </View>)}
488
+
489
+
490
+ </ViewShot>
491
+
492
+ {isLoading &&
493
+ <View
494
+ style={{
495
+ ...StyleSheet.absoluteFillObject,
496
+ backgroundColor: 'rgba(0, 0, 0, 0.4)',
497
+ }}
498
+ />
499
+ }
500
+
501
+ {isLoading && <ActivityIndicator size={'large'} color={themeColor} collapsable={true} style={{ position: 'absolute', top: 0, bottom: 0, left: 0, right: 0, elevation: 2 }} />}
502
+ {isShow ? (
503
+ <Animated.View
504
+ {...panResponder.panHandlers}
505
+ style={{
506
+ transform: [{ translateX: pan.x }, { translateY: pan.y }],
507
+ width: '40%',
508
+ height: '8%',
509
+ justifyContent: 'space-evenly',
510
+ alignItems: 'center',
511
+ paddingHorizontal: 6,
512
+ paddingVertical: 6,
513
+ borderRadius: 18,
514
+ marginBottom: 10,
515
+ position: 'absolute',
516
+ backgroundColor: themeColor,
517
+ flexDirection: 'row',
518
+ zIndex: 1
519
+ }}
520
+ >
521
+ <TouchableOpacity
522
+ onPress={() => Stop()}
523
+ hitSlop={{ top: 10, bottom: 10, left: 10, right: 10 }}
524
+ >
525
+ <Image source={require("../Assets/images/stopButton.png")} style={{ height: 30, width: 30 }} />
526
+ </TouchableOpacity>
527
+
528
+ <Text style={{ color: "white", fontSize: 18, marginRight: 5, marginLeft: 5, fontWeight: '700' }}>{time}</Text>
529
+
530
+ {isDraw == false ? (
531
+ <TouchableOpacity
532
+ onPress={async () => {
533
+ StatusBar.setHidden(false, 'slide')
534
+ const ImgUrl = await ref.current.capture()
535
+ if (ImgUrl != undefined || ImgUrl != null) {
536
+ setImg(ImgUrl)
537
+ setIsDraw(true)
538
+ }
539
+ }}
540
+ hitSlop={{ top: 10, bottom: 10, left: 10, right: 10 }}
541
+ >
542
+ <Image source={require("../Assets/images/OpenSketch.png")} style={{ height: 25, width: 25 }} />
543
+ </TouchableOpacity>
544
+ ) : (
545
+ <TouchableOpacity
546
+ onPress={() => {
547
+ setIsDraw(false)
548
+ ClearCanvas(canvasRef)
549
+ }}
550
+ hitSlop={{ top: 10, bottom: 10, left: 10, right: 10 }}
551
+ >
552
+ <Image source={require("../Assets/images/close.png")} style={{ height: 30, width: 30 }} />
553
+ </TouchableOpacity>
554
+ )}
555
+ </Animated.View>
556
+ ) : null}
557
+ </>
558
+ );
559
+
560
+ }
561
+
562
+ export default ShakeFunction;