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,462 @@
1
+ import { View, Text, TouchableOpacity, Image, TextInput, SafeAreaView, PanResponder, Alert, StyleSheet, Keyboard, LogBox, Platform, StatusBar, NativeModules, BackHandler, DeviceEventEmitter, Dimensions } from 'react-native'
2
+ import React, { useState, useRef, useEffect } from 'react'
3
+ import { launchImageLibrary } from '../../ImageOrVedioPicker/src/index';
4
+ import { AddIssueApi } from '../APIs/AddIssue';
5
+ import { logger, consoleTransport } from "react-native-logs";
6
+ import VideoPlayer from '../../VideoPlayer/index'
7
+ import { useNavigation } from '../Componanats/NavigationContext';
8
+ import { Localization } from '../Componanats/localization';
9
+ import { ActivityIndicator } from 'react-native';
10
+ import { UIManager } from 'react-native';
11
+ import { ScrollView } from 'react-native';
12
+ import KeyboardAvoidingWrapper from '../Componanats/KeyboardAvoidingWrapper';
13
+ import { useGlobalState } from 'shakebug-react-native/src/Componanats/GlobalStateContext';
14
+ import CustomeAlert from 'shakebug-react-native/src/Componanats/CustomAlert';
15
+ import NetInfo from 'shakebug-react-native/NetInfo/src';
16
+
17
+
18
+ console.ignoredYellowBox = ["Warning: Each", "Warning: Failed", "Non-serializable"];
19
+
20
+ LogBox.ignoreLogs([
21
+ 'Non-serializable values were found in the navigation state',
22
+ ]);
23
+
24
+ const { ShakebugSDKCreateThumbnail } = NativeModules;
25
+
26
+
27
+ const AddDetailsScreen = ({ media, updateParent, mediaType, themeColor, SDKScreenTitle }) => {
28
+
29
+ const { setIsScreenShot, setIsRecordingStart } = useGlobalState()
30
+
31
+ const { goBack, navigate, goToScreenAtIndex } = useNavigation();
32
+
33
+ const ThemeColor = themeColor ? themeColor : "#1dd3e3";
34
+
35
+ const [desc, setDesc] = useState("")
36
+ const [email, setEmail] = useState("")
37
+ const [descBorder, setDescBorder] = useState("black")
38
+ const [EmailBorder, setEmailBorder] = useState('black')
39
+ const [path, setPath] = useState(media)
40
+ const [type, setType] = useState(mediaType)
41
+ const [isLoading, setIsLoading] = useState(false)
42
+ const [poster, setPoster] = useState("")
43
+ const title = SDKScreenTitle ? SDKScreenTitle.split(",")[1] : null
44
+ const [isErrorInAPI, setErrorInAPI] = useState(false)
45
+ const [isBugReported, setIsBugReported] = useState(false)
46
+ const [apiMessage, setAPIMessage] = useState("")
47
+ const [isInternet, setIsInternet] = useState(null)
48
+
49
+ // For handel system back navigation
50
+ useEffect(() => {
51
+
52
+ NetInfo.addEventListener(stat => {
53
+ setIsInternet(stat.isConnected)
54
+ })
55
+
56
+ StatusBar.setHidden(false)
57
+ const backAction = () => {
58
+ global.isScreenShotDetected = false
59
+ setIsScreenShot(false)
60
+ setIsRecordingStart(false)
61
+ if (mediaType == "Recordvideo") {
62
+ global.isShakebugSDKOpen = false
63
+ global.IsBackground = 'true'
64
+ goToScreenAtIndex(0)
65
+ }
66
+ else {
67
+ global.IsBackground = 'false'
68
+ goToScreenAtIndex(1)
69
+ }
70
+
71
+ return true; // Return true to prevent default behavior (exit app)
72
+ };
73
+
74
+ const backHandler = BackHandler.addEventListener('hardwareBackPress', backAction);
75
+
76
+ return () => backHandler.remove(); // Clean up the event listener on unmount
77
+ }, []);
78
+
79
+
80
+ useEffect(() => {
81
+ if (mediaType != "img") {
82
+ setIsLoading(true)
83
+ generateThumbnail()
84
+ }
85
+ if (type == "img") {
86
+ setIsLoading(false)
87
+ }
88
+ }, [type])
89
+
90
+ // For ganrate thumbanill image of video
91
+ const generateThumbnail = async () => {
92
+ if (type != "img") {
93
+ try {
94
+ const response = await ShakebugSDKCreateThumbnail.create({
95
+ url: `file://${path}`,
96
+ timeStamp: 10000,
97
+ });
98
+ if (response.path != "") {
99
+ setPoster(response.path)
100
+ setIsLoading(false)
101
+ }
102
+ } catch (error) {
103
+ throw new Error(error.message);
104
+ setIsLoading(false)
105
+ }
106
+ }
107
+ };
108
+
109
+ const ref = useRef();
110
+ const descRef = useRef()
111
+
112
+
113
+ const defaultConfig = {
114
+ levels: {
115
+ debug: 0,
116
+ info: 1,
117
+ warn: 2,
118
+ error: 3,
119
+ },
120
+ severity: "debug",
121
+ transport: consoleTransport,
122
+ transportOptions: {
123
+ colors: {
124
+ info: "blueBright",
125
+ warn: "yellowBright",
126
+ error: "redBright",
127
+ },
128
+ },
129
+ async: true,
130
+ dateFormat: "time",
131
+ printLevel: false,
132
+ printDate: false,
133
+ fixedExtLvlLength: false,
134
+ enabled: global.makeLogEnabled == true ? true : false,
135
+ };
136
+
137
+
138
+ var log = logger.createLogger(defaultConfig);
139
+
140
+ // For open Video picker
141
+ const openVideoPicker = () => {
142
+ global.IsBackground = "false"
143
+
144
+ const options = {
145
+ mediaType: 'video',
146
+ includeBase64: false,
147
+ selectionLimit: 1
148
+ };
149
+
150
+ launchImageLibrary(options, async (response) => {
151
+ setIsLoading(true)
152
+ if (response.didCancel) {
153
+ setIsLoading(false)
154
+ global.IsBackground = "fa"
155
+ // console.log('User cancelled image picker');
156
+ } else if (response.error) {
157
+ setIsLoading(false)
158
+ global.IsBackground = "true"
159
+ // console.log('Image picker error: ', response.error);
160
+ } else {
161
+ setIsLoading(false)
162
+ global.IsBackground = "true"
163
+ let videoUri = await response.uri || response.assets?.[0]?.uri;
164
+ if (response.assets?.[0]?.type.slice(0, 5).trim() == "video") {
165
+ if (mediaType == "img")
166
+ navigate("TrimVideoScreen", { video: `${videoUri}`, Type: "imgReplacedWithVideo", themeColor: ThemeColor, SDKScreenTitle: SDKScreenTitle, UpdateStatusBar: UpdateStatusBar, updateParent: updateParent })
167
+ else
168
+ navigate("TrimVideoScreen", { video: `${videoUri}`, Type: "videoReplacedWithVideo", themeColor: ThemeColor, SDKScreenTitle: SDKScreenTitle, UpdateStatusBar: UpdateStatusBar, updateParent: updateParent })
169
+ }
170
+ else {
171
+ setAPIMessage("Invalid selection, Please choose a valid video file")
172
+ setErrorInAPI(true)
173
+ }
174
+
175
+ }
176
+ });
177
+ };
178
+
179
+ // For open image picker
180
+ const openImagePicker = () => {
181
+ global.IsBackground = "false"
182
+ const options = {
183
+ mediaType: 'photo',
184
+ includeBase64: false,
185
+ selectionLimit: 1
186
+ };
187
+ launchImageLibrary(options, async (response) => {
188
+ setIsLoading(true)
189
+ if (response.didCancel) {
190
+ setIsLoading(false)
191
+ global.IsBackground = "true"
192
+ // console.log('User cancelled image picker');
193
+ } else if (response.error) {
194
+ setIsLoading(false)
195
+ global.IsBackground = "true"
196
+ // console.log('Image picker error: ', response.error);
197
+ } else {
198
+
199
+ global.IsBackground = "true"
200
+ if (response.assets?.[0]?.type.slice(0, 5).trim() == "image") {
201
+ let imageuri = await response.uri || response.assets?.[0]?.uri;
202
+ setIsLoading(false)
203
+ if (imageuri != "" || imageuri != undefined) {
204
+ setPath(imageuri)
205
+ setType("img")
206
+
207
+ if (mediaType != "Recordvideo")
208
+ // For update image in FirstScreen
209
+ updateParent(
210
+ imageuri
211
+ )
212
+ }
213
+ }
214
+ else {
215
+ setAPIMessage("Invalid selection, Please choose a valid image file")
216
+ setErrorInAPI(true)
217
+ }
218
+
219
+ }
220
+ });
221
+ }
222
+
223
+ // For report bug
224
+ const ReportBugFunc = async () => {
225
+ setIsLoading(true)
226
+ let EmailReg = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
227
+ if (desc.trim() == "" || desc.trim() == undefined) {
228
+ setDescBorder("red")
229
+ setIsLoading(false)
230
+ }
231
+ else if (email != "" && !EmailReg.test(email)) {
232
+ setEmailBorder("red")
233
+ setIsLoading(false)
234
+ }
235
+ else {
236
+
237
+ let isVideo = type == 'img' ? 0 : 1;
238
+
239
+
240
+ if (isInternet != false) {
241
+ try {
242
+ const { success, message } = await AddIssueApi(global.session_id, global.application_id, path, isVideo, desc, email);
243
+ if (success) {
244
+ setIsLoading(false)
245
+ setIsBugReported(true)
246
+ setAPIMessage(Localization[global.ShakebugLanguage].BugSubmited)
247
+ log.debug("------------------------------------------------------------------------------------------")
248
+ log.info('API response:', message);
249
+ log.debug("------------------------------------------------------------------------------------------")
250
+ } else {
251
+ setIsLoading(false)
252
+ setAPIMessage("Something went wrong! Please try again later! If problem still presist, please drop mail at support@shakebug.com")
253
+ setErrorInAPI(true)
254
+ log.debug("------------------------------------------------------------------------------------------")
255
+ log.warn('API response:', message);
256
+ log.debug("------------------------------------------------------------------------------------------")
257
+ }
258
+ }
259
+ catch (err) {
260
+ setAPIMessage("Something went wrong! Please try again later! If problem still presist, please drop mail at support@shakebug.com")
261
+ setErrorInAPI(true)
262
+ setIsLoading(false)
263
+ log.error("err", err)
264
+ }
265
+ }
266
+ else {
267
+ setErrorInAPI(true)
268
+ setAPIMessage(Localization[global.ShakebugLanguage].InterNetConnetionError)
269
+ }
270
+
271
+
272
+ // Manage submit bug api
273
+
274
+
275
+ }
276
+ }
277
+
278
+ UpdateStatusBar = () => {
279
+ console.log("here");
280
+ StatusBar.setHidden(false)
281
+ }
282
+
283
+ return (
284
+ <SafeAreaView style={{ width: "100%", height: "100%" }}>
285
+ <StatusBar backgroundColor={ThemeColor} hidden={false} />
286
+ <KeyboardAvoidingWrapper>
287
+ <>
288
+ <View style={{ width: "100%", height: "100%", backgroundColor: "#ffffff" }}>
289
+ <View style={{ height: '6%', padding: 5, paddingHorizontal: 15, backgroundColor: ThemeColor, flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between' }}>
290
+ <TouchableOpacity
291
+ style={{
292
+ width: '10%',
293
+ alignItems: 'center'
294
+ }}
295
+ onPress={() => {
296
+ StatusBar.setHidden(false)
297
+ global.isScreenShotDetected = false
298
+ setIsScreenShot(false)
299
+ setIsRecordingStart(false)
300
+ if (mediaType == "Recordvideo") {
301
+ global.isShakebugSDKOpen = false
302
+ global.IsBackground = 'true'
303
+ goToScreenAtIndex(0)
304
+ }
305
+ else {
306
+ global.IsBackground = 'false'
307
+ goToScreenAtIndex(1)
308
+ }
309
+ }}
310
+ >
311
+ <Image source={require('../Assets/images/close.png')} resizeMode='contain' style={{ width: 30, height: 30 }} />
312
+ </TouchableOpacity>
313
+ <Text style={{ width: '80%', textAlign: 'center', fontSize: 18, fontWeight: '300', color: 'white' }}>
314
+ {title}
315
+ </Text>
316
+ <TouchableOpacity
317
+ style={{
318
+ width: '10%',
319
+ alignItems: 'center'
320
+ }}
321
+ onPress={() => {
322
+ Keyboard.dismiss()
323
+ ReportBugFunc()
324
+
325
+ }}
326
+ >
327
+ <Image source={require('../Assets/images/next.png')} resizeMode='contain' style={{ width: 25, height: 25 }} />
328
+ </TouchableOpacity>
329
+ </View>
330
+
331
+ <TouchableOpacity
332
+ style={{ marginHorizontal: 20, marginTop: '3%', borderWidth: descBorder == 'red' ? 2 : 1, height: "20%", paddingHorizontal: 10, borderRadius: 6, borderColor: descBorder, alignItems: 'center' }}
333
+ activeOpacity={1}
334
+ onPress={() => descRef.current.focus()}
335
+ >
336
+ <TextInput
337
+ ref={descRef}
338
+ placeholder={Localization[global.ShakebugLanguage].Description}
339
+ placeholderTextColor={"#b2b2b2"}
340
+ multiline
341
+ style={{
342
+ fontSize: 16,
343
+ color: '#000',
344
+ width: '100%',
345
+ paddingVertical: 8,
346
+
347
+ }}
348
+ value={desc}
349
+ onChangeText={(e) => {
350
+ setDesc(e)
351
+ setDescBorder("black")
352
+ }}
353
+ />
354
+
355
+ {descBorder == "red" ? (<View
356
+ style={{
357
+ position: 'absolute',
358
+ bottom: 10,
359
+ right: 10,
360
+ alignItems: 'center',
361
+ flexDirection: 'row'
362
+ }}
363
+ >
364
+ <View style={{ width: 20, height: 20, backgroundColor: 'red', alignItems: 'center', justifyContent: 'center', borderRadius: 50 }}>
365
+ <Text style={{ fontSize: 16, fontWeight: '900', textAlign: 'center', textAlignVertical: 'center', color: 'white' }}>!</Text>
366
+ </View>
367
+ <Text style={{ color: 'red', fontWeight: '500', marginLeft: 5 }}>{Localization[global.ShakebugLanguage].DescriptionError}</Text>
368
+ </View>) : null}
369
+ </TouchableOpacity>
370
+
371
+ <View style={{ marginHorizontal: 20, marginTop: '2%', borderWidth: EmailBorder == "red" ? 2 : 1, borderColor: EmailBorder, height: '7%', paddingHorizontal: 10, borderRadius: 6 }}>
372
+ <TextInput
373
+ placeholder={Localization[global.ShakebugLanguage].Email}
374
+ placeholderTextColor={"#b2b2b2"}
375
+ style={{
376
+ fontSize: 16,
377
+ color: '#000',
378
+ height: '100%',
379
+ width: '100%',
380
+ textAlignVertical: 'center',
381
+ }}
382
+ value={email}
383
+ onChangeText={(val) => {
384
+ setEmail(val)
385
+ setEmailBorder("black")
386
+ }}
387
+ />
388
+
389
+ </View>
390
+ <Text style={{ fontSize: 12, color: 'red', fontWeight: '500', marginRight: '6%', textAlign: 'right' }}>{EmailBorder == "red" ? Localization[global.ShakebugLanguage].EmailError : ""}</Text>
391
+
392
+ <TouchableOpacity activeOpacity={1} onPress={Keyboard.dismiss} style={{ height: Platform.OS == 'ios' ? Dimensions.get('window').height * 0.50 : '52%', width: '100%', marginTop: '0%', justifyContent: 'center', alignItems: 'center' }}>
393
+ {type == "img" ?
394
+ path != "" && <Image source={{ uri: path }} resizeMode='contain' style={{ width: '100%', height: '100%' }} />
395
+ :
396
+ <View style={{ width: '100%', height: '100%' }}>
397
+ {poster != "" && <VideoPlayer videoUri={path} img={poster} themeColor={ThemeColor} goToScreenAtIndex={goToScreenAtIndex} goBack={goBack} SDKScreenTitle={SDKScreenTitle} UpdateStatusBar={UpdateStatusBar} />}
398
+ </View>}
399
+ </TouchableOpacity>
400
+ <View style={{ marginTop: '2%', width: '100%', position: 'absolute', bottom: 10 }}>
401
+ <View style={{ flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', marginHorizontal: 20 }}>
402
+ <TouchableOpacity onPress={() => openImagePicker()}>
403
+ <Text style={{ fontSize: 16, color: ThemeColor, fontWeight: '300' }}>{Localization[global.ShakebugLanguage].ReplaceImage}</Text>
404
+ </TouchableOpacity>
405
+ <TouchableOpacity
406
+ onPress={() => {
407
+ if (global.AllowVideo == false) {
408
+ setAPIMessage(`You have reached your max video limitation. \n\n Used Videos: ${global.used_video} \nAllowed Videos: ${global.total_video}\n\nPlease visit https://www.shakebug.com website and upgrade your plan.`)
409
+ setErrorInAPI(true)
410
+ }
411
+ else {
412
+ openVideoPicker()
413
+ }
414
+ }}
415
+ >
416
+ <Text style={{ fontSize: 16, color: ThemeColor, fontWeight: '300' }}>{Localization[global.ShakebugLanguage].ReplaceVideo}</Text>
417
+ </TouchableOpacity>
418
+ </View>
419
+
420
+ <View style={{ alignItems: 'flex-end', marginHorizontal: 15, marginTop: '1%' }}>
421
+ <Text style={{ fontSize: 16, color: "black" }}>© <Text>ShakeBug v1.0</Text></Text>
422
+ </View>
423
+
424
+ </View>
425
+ </View>
426
+
427
+ <CustomeAlert
428
+ isVisible={isErrorInAPI || isBugReported}
429
+ text={apiMessage}
430
+ color={themeColor}
431
+ OnPrees={() => {
432
+ if (isBugReported) {
433
+ global.isScreenShotDetected = false;
434
+ setIsScreenShot(false)
435
+ setIsRecordingStart(false)
436
+ goToScreenAtIndex(0)
437
+ }
438
+ setIsBugReported(false)
439
+ setErrorInAPI(false)
440
+ setIsLoading(false)
441
+ }}
442
+ />
443
+
444
+
445
+ {isLoading &&
446
+ <View
447
+ style={{
448
+ ...StyleSheet.absoluteFillObject,
449
+ backgroundColor: 'rgba(0, 0, 0, 0.4)',
450
+ }}
451
+ />
452
+ }
453
+
454
+ {isLoading &&
455
+ <ActivityIndicator size={'large'} color={themeColor} collapsable={true} style={{ position: 'absolute', top: 0, bottom: 0, left: 0, right: 0, elevation: 2 }} />}
456
+ </>
457
+ </KeyboardAvoidingWrapper>
458
+ </SafeAreaView >
459
+ )
460
+ }
461
+
462
+ export default AddDetailsScreen