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,1034 @@
1
+ import { useCallback, useEffect, useState } from 'react';
2
+ import { Dimensions, NativeEventEmitter, NativeModules, Platform } from 'react-native';
3
+ import { useOnEvent, useOnMount } from './internal/asyncHookWrappers';
4
+ import devicesWithDynamicIsland from "./internal/devicesWithDynamicIsland";
5
+ import devicesWithNotch from './internal/devicesWithNotch';
6
+ import RNDeviceInfo from './internal/nativeInterface';
7
+ import {
8
+ getSupportedPlatformInfoAsync,
9
+ getSupportedPlatformInfoFunctions,
10
+ getSupportedPlatformInfoSync,
11
+ } from './internal/supported-platform-info';
12
+ import { DeviceInfoModule } from './internal/privateTypes';
13
+ import type {
14
+ AsyncHookResult,
15
+ DeviceType,
16
+ LocationProviderInfo,
17
+ PowerState,
18
+ } from './internal/types';
19
+
20
+ export const [getUniqueId, getUniqueIdSync] = getSupportedPlatformInfoFunctions({
21
+ memoKey: 'uniqueId',
22
+ supportedPlatforms: ['android', 'ios', 'windows'],
23
+ getter: () => RNDeviceInfo.getUniqueId(),
24
+ syncGetter: () => RNDeviceInfo.getUniqueIdSync(),
25
+ defaultValue: 'unknown',
26
+ });
27
+
28
+ let uniqueId: string;
29
+ export async function syncUniqueId() {
30
+ if (Platform.OS === 'ios') {
31
+ uniqueId = await RNDeviceInfo.syncUniqueId();
32
+ } else {
33
+ uniqueId = await getUniqueId();
34
+ }
35
+ return uniqueId;
36
+ }
37
+
38
+ export const [getInstanceId, getInstanceIdSync] = getSupportedPlatformInfoFunctions({
39
+ memoKey: 'instanceId',
40
+ supportedPlatforms: ['android'],
41
+ getter: () => RNDeviceInfo.getInstanceId(),
42
+ syncGetter: () => RNDeviceInfo.getInstanceIdSync(),
43
+ defaultValue: 'unknown',
44
+ });
45
+
46
+ export const [getSerialNumber, getSerialNumberSync] = getSupportedPlatformInfoFunctions({
47
+ memoKey: 'serialNumber',
48
+ supportedPlatforms: ['android', 'windows'],
49
+ getter: () => RNDeviceInfo.getSerialNumber(),
50
+ syncGetter: () => RNDeviceInfo.getSerialNumberSync(),
51
+ defaultValue: 'unknown',
52
+ });
53
+
54
+ export const [getAndroidId, getAndroidIdSync] = getSupportedPlatformInfoFunctions({
55
+ memoKey: 'androidId',
56
+ supportedPlatforms: ['android'],
57
+ getter: () => RNDeviceInfo.getAndroidId(),
58
+ syncGetter: () => RNDeviceInfo.getAndroidIdSync(),
59
+ defaultValue: 'unknown',
60
+ });
61
+
62
+ export const [getIpAddress, getIpAddressSync] = getSupportedPlatformInfoFunctions({
63
+ supportedPlatforms: ['android', 'ios', 'windows'],
64
+ getter: () => RNDeviceInfo.getIpAddress(),
65
+ syncGetter: () => RNDeviceInfo.getIpAddressSync(),
66
+ defaultValue: 'unknown',
67
+ });
68
+
69
+ export const [isCameraPresent, isCameraPresentSync] = getSupportedPlatformInfoFunctions({
70
+ supportedPlatforms: ['android', 'windows', 'web'],
71
+ getter: () => RNDeviceInfo.isCameraPresent(),
72
+ syncGetter: () => RNDeviceInfo.isCameraPresentSync(),
73
+ defaultValue: false,
74
+ });
75
+
76
+ export async function getMacAddress() {
77
+ if (Platform.OS === 'android') {
78
+ return RNDeviceInfo.getMacAddress();
79
+ } else if (Platform.OS === 'ios') {
80
+ return '02:00:00:00:00:00';
81
+ }
82
+ return 'unknown';
83
+ }
84
+
85
+ export function getMacAddressSync() {
86
+ if (Platform.OS === 'android') {
87
+ return RNDeviceInfo.getMacAddressSync();
88
+ } else if (Platform.OS === 'ios') {
89
+ return '02:00:00:00:00:00';
90
+ }
91
+ return 'unknown';
92
+ }
93
+
94
+ export const getDeviceId = () =>
95
+ getSupportedPlatformInfoSync({
96
+ defaultValue: 'unknown',
97
+ memoKey: 'deviceId',
98
+ getter: () => RNDeviceInfo.deviceId,
99
+ supportedPlatforms: ['android', 'ios', 'windows'],
100
+ });
101
+
102
+ export const [getManufacturer, getManufacturerSync] = getSupportedPlatformInfoFunctions({
103
+ memoKey: 'manufacturer',
104
+ supportedPlatforms: ['android', 'ios', 'windows'],
105
+ getter: () =>
106
+ Platform.OS == 'ios' ? Promise.resolve('Apple') : RNDeviceInfo.getSystemManufacturer(),
107
+ syncGetter: () => (Platform.OS == 'ios' ? 'Apple' : RNDeviceInfo.getSystemManufacturerSync()),
108
+ defaultValue: 'unknown',
109
+ });
110
+
111
+ export const getModel = () =>
112
+ getSupportedPlatformInfoSync({
113
+ memoKey: 'model',
114
+ defaultValue: 'unknown',
115
+ supportedPlatforms: ['ios', 'android', 'windows'],
116
+ getter: () => RNDeviceInfo.model,
117
+ });
118
+
119
+ export const getBrand = () =>
120
+ getSupportedPlatformInfoSync({
121
+ memoKey: 'brand',
122
+ supportedPlatforms: ['android', 'ios', 'windows'],
123
+ defaultValue: 'unknown',
124
+ getter: () => RNDeviceInfo.brand,
125
+ });
126
+
127
+ export const getSystemName = () =>
128
+ getSupportedPlatformInfoSync({
129
+ defaultValue: 'unknown',
130
+ supportedPlatforms: ['ios', 'android', 'windows'],
131
+ memoKey: 'systemName',
132
+ getter: () =>
133
+ Platform.select({
134
+ ios: RNDeviceInfo.systemName,
135
+ android: 'Android',
136
+ windows: 'Windows',
137
+ default: 'unknown',
138
+ }),
139
+ });
140
+
141
+ export const getSystemVersion = () =>
142
+ getSupportedPlatformInfoSync({
143
+ defaultValue: 'unknown',
144
+ getter: () => RNDeviceInfo.systemVersion,
145
+ supportedPlatforms: ['android', 'ios', 'windows'],
146
+ memoKey: 'systemVersion',
147
+ });
148
+
149
+ export const [getBuildId, getBuildIdSync] = getSupportedPlatformInfoFunctions({
150
+ memoKey: 'buildId',
151
+ supportedPlatforms: ['android', 'ios', 'windows'],
152
+ getter: () => RNDeviceInfo.getBuildId(),
153
+ syncGetter: () => RNDeviceInfo.getBuildIdSync(),
154
+ defaultValue: 'unknown',
155
+ });
156
+
157
+ export const [getApiLevel, getApiLevelSync] = getSupportedPlatformInfoFunctions({
158
+ memoKey: 'apiLevel',
159
+ supportedPlatforms: ['android'],
160
+ getter: () => RNDeviceInfo.getApiLevel(),
161
+ syncGetter: () => RNDeviceInfo.getApiLevelSync(),
162
+ defaultValue: -1,
163
+ });
164
+
165
+ export const getBundleId = () =>
166
+ getSupportedPlatformInfoSync({
167
+ memoKey: 'bundleId',
168
+ supportedPlatforms: ['android', 'ios', 'windows'],
169
+ defaultValue: 'unknown',
170
+ getter: () => RNDeviceInfo.bundleId,
171
+ });
172
+
173
+ export const [
174
+ getInstallerPackageName,
175
+ getInstallerPackageNameSync,
176
+ ] = getSupportedPlatformInfoFunctions({
177
+ memoKey: 'installerPackageName',
178
+ supportedPlatforms: ['android', 'windows', 'ios'],
179
+ getter: () => RNDeviceInfo.getInstallerPackageName(),
180
+ syncGetter: () => RNDeviceInfo.getInstallerPackageNameSync(),
181
+ defaultValue: 'unknown',
182
+ });
183
+
184
+ export const getApplicationName = () =>
185
+ getSupportedPlatformInfoSync({
186
+ memoKey: 'appName',
187
+ defaultValue: 'unknown',
188
+ getter: () => RNDeviceInfo.appName,
189
+ supportedPlatforms: ['android', 'ios', 'windows'],
190
+ });
191
+
192
+ export const getBuildNumber = () =>
193
+ getSupportedPlatformInfoSync({
194
+ memoKey: 'buildNumber',
195
+ supportedPlatforms: ['android', 'ios', 'windows'],
196
+ getter: () => RNDeviceInfo.buildNumber,
197
+ defaultValue: 'unknown',
198
+ });
199
+
200
+ export const getVersion = () =>
201
+ getSupportedPlatformInfoSync({
202
+ memoKey: 'version',
203
+ defaultValue: 'unknown',
204
+ supportedPlatforms: ['android', 'ios', 'windows'],
205
+ getter: () => RNDeviceInfo.appVersion,
206
+ });
207
+
208
+ export function getReadableVersion() {
209
+ return getVersion() + '.' + getBuildNumber();
210
+ }
211
+
212
+ export const [getDeviceName, getDeviceNameSync] = getSupportedPlatformInfoFunctions({
213
+ supportedPlatforms: ['android', 'ios', 'windows'],
214
+ getter: () => RNDeviceInfo.getDeviceName(),
215
+ syncGetter: () => RNDeviceInfo.getDeviceNameSync(),
216
+ defaultValue: 'unknown',
217
+ });
218
+
219
+ export const [getUsedMemory, getUsedMemorySync] = getSupportedPlatformInfoFunctions({
220
+ supportedPlatforms: ['android', 'ios', 'windows', 'web'],
221
+ getter: () => RNDeviceInfo.getUsedMemory(),
222
+ syncGetter: () => RNDeviceInfo.getUsedMemorySync(),
223
+ defaultValue: -1,
224
+ });
225
+
226
+ export const getUserAgent = () =>
227
+ getSupportedPlatformInfoAsync({
228
+ memoKey: 'userAgent',
229
+ defaultValue: 'unknown',
230
+ supportedPlatforms: ['android', 'ios', 'web'],
231
+ getter: () => RNDeviceInfo.getUserAgent(),
232
+ });
233
+
234
+ export const getUserAgentSync = () =>
235
+ getSupportedPlatformInfoSync({
236
+ memoKey: 'userAgentSync',
237
+ defaultValue: 'unknown',
238
+ supportedPlatforms: ['android', 'web'],
239
+ getter: () => RNDeviceInfo.getUserAgentSync(),
240
+ });
241
+
242
+ export const [getFontScale, getFontScaleSync] = getSupportedPlatformInfoFunctions({
243
+ supportedPlatforms: ['android', 'ios', 'windows'],
244
+ getter: () => RNDeviceInfo.getFontScale(),
245
+ syncGetter: () => RNDeviceInfo.getFontScaleSync(),
246
+ defaultValue: -1,
247
+ });
248
+
249
+ export const [getBootloader, getBootloaderSync] = getSupportedPlatformInfoFunctions({
250
+ memoKey: 'bootloader',
251
+ supportedPlatforms: ['android'],
252
+ getter: () => RNDeviceInfo.getBootloader(),
253
+ syncGetter: () => RNDeviceInfo.getBootloaderSync(),
254
+ defaultValue: 'unknown',
255
+ });
256
+
257
+ export const [getDevice, getDeviceSync] = getSupportedPlatformInfoFunctions({
258
+ getter: () => RNDeviceInfo.getDevice(),
259
+ syncGetter: () => RNDeviceInfo.getDeviceSync(),
260
+ defaultValue: 'unknown',
261
+ memoKey: 'device',
262
+ supportedPlatforms: ['android'],
263
+ });
264
+
265
+ export const [getDisplay, getDisplaySync] = getSupportedPlatformInfoFunctions({
266
+ memoKey: 'display',
267
+ supportedPlatforms: ['android'],
268
+ getter: () => RNDeviceInfo.getDisplay(),
269
+ syncGetter: () => RNDeviceInfo.getDisplaySync(),
270
+ defaultValue: 'unknown',
271
+ });
272
+
273
+ export const [getFingerprint, getFingerprintSync] = getSupportedPlatformInfoFunctions({
274
+ memoKey: 'fingerprint',
275
+ supportedPlatforms: ['android'],
276
+ getter: () => RNDeviceInfo.getFingerprint(),
277
+ syncGetter: () => RNDeviceInfo.getFingerprintSync(),
278
+ defaultValue: 'unknown',
279
+ });
280
+
281
+ export const [getHardware, getHardwareSync] = getSupportedPlatformInfoFunctions({
282
+ memoKey: 'hardware',
283
+ supportedPlatforms: ['android'],
284
+ getter: () => RNDeviceInfo.getHardware(),
285
+ syncGetter: () => RNDeviceInfo.getHardwareSync(),
286
+ defaultValue: 'unknown',
287
+ });
288
+
289
+ export const [getHost, getHostSync] = getSupportedPlatformInfoFunctions({
290
+ memoKey: 'host',
291
+ supportedPlatforms: ['android', 'windows'],
292
+ getter: () => RNDeviceInfo.getHost(),
293
+ syncGetter: () => RNDeviceInfo.getHostSync(),
294
+ defaultValue: 'unknown',
295
+ });
296
+
297
+ export const [getHostNames, getHostNamesSync] = getSupportedPlatformInfoFunctions({
298
+ memoKey: 'hostNames',
299
+ supportedPlatforms: ['windows'],
300
+ getter: () => RNDeviceInfo.getHostNames(),
301
+ syncGetter: () => RNDeviceInfo.getHostNamesSync(),
302
+ defaultValue: [] as string[],
303
+ });
304
+
305
+ export const [getProduct, getProductSync] = getSupportedPlatformInfoFunctions({
306
+ memoKey: 'product',
307
+ supportedPlatforms: ['android'],
308
+ getter: () => RNDeviceInfo.getProduct(),
309
+ syncGetter: () => RNDeviceInfo.getProductSync(),
310
+ defaultValue: 'unknown',
311
+ });
312
+
313
+ export const [getTags, getTagsSync] = getSupportedPlatformInfoFunctions({
314
+ memoKey: 'tags',
315
+ supportedPlatforms: ['android'],
316
+ getter: () => RNDeviceInfo.getTags(),
317
+ syncGetter: () => RNDeviceInfo.getTagsSync(),
318
+ defaultValue: 'unknown',
319
+ });
320
+
321
+ export const [getType, getTypeSync] = getSupportedPlatformInfoFunctions({
322
+ memoKey: 'type',
323
+ supportedPlatforms: ['android'],
324
+ getter: () => RNDeviceInfo.getType(),
325
+ syncGetter: () => RNDeviceInfo.getTypeSync(),
326
+ defaultValue: 'unknown',
327
+ });
328
+
329
+ export const [getBaseOs, getBaseOsSync] = getSupportedPlatformInfoFunctions({
330
+ memoKey: 'baseOs',
331
+ supportedPlatforms: ['android', 'web', 'windows'],
332
+ getter: () => RNDeviceInfo.getBaseOs(),
333
+ syncGetter: () => RNDeviceInfo.getBaseOsSync(),
334
+ defaultValue: 'unknown',
335
+ });
336
+
337
+ export const [getPreviewSdkInt, getPreviewSdkIntSync] = getSupportedPlatformInfoFunctions({
338
+ memoKey: 'previewSdkInt',
339
+ supportedPlatforms: ['android'],
340
+ getter: () => RNDeviceInfo.getPreviewSdkInt(),
341
+ syncGetter: () => RNDeviceInfo.getPreviewSdkIntSync(),
342
+ defaultValue: -1,
343
+ });
344
+
345
+ export const [getSecurityPatch, getSecurityPatchSync] = getSupportedPlatformInfoFunctions({
346
+ memoKey: 'securityPatch',
347
+ supportedPlatforms: ['android'],
348
+ getter: () => RNDeviceInfo.getSecurityPatch(),
349
+ syncGetter: () => RNDeviceInfo.getSecurityPatchSync(),
350
+ defaultValue: 'unknown',
351
+ });
352
+
353
+ export const [getCodename, getCodenameSync] = getSupportedPlatformInfoFunctions({
354
+ memoKey: 'codeName',
355
+ supportedPlatforms: ['android'],
356
+ getter: () => RNDeviceInfo.getCodename(),
357
+ syncGetter: () => RNDeviceInfo.getCodenameSync(),
358
+ defaultValue: 'unknown',
359
+ });
360
+
361
+ export const [getIncremental, getIncrementalSync] = getSupportedPlatformInfoFunctions({
362
+ memoKey: 'incremental',
363
+ supportedPlatforms: ['android'],
364
+ getter: () => RNDeviceInfo.getIncremental(),
365
+ syncGetter: () => RNDeviceInfo.getIncrementalSync(),
366
+ defaultValue: 'unknown',
367
+ });
368
+
369
+ export const [isEmulator, isEmulatorSync] = getSupportedPlatformInfoFunctions({
370
+ memoKey: 'emulator',
371
+ supportedPlatforms: ['android', 'ios', 'windows'],
372
+ getter: () => RNDeviceInfo.isEmulator(),
373
+ syncGetter: () => RNDeviceInfo.isEmulatorSync(),
374
+ defaultValue: false,
375
+ });
376
+
377
+ export const isTablet = () =>
378
+ getSupportedPlatformInfoSync({
379
+ defaultValue: false,
380
+ supportedPlatforms: ['android', 'ios', 'windows'],
381
+ memoKey: 'tablet',
382
+ getter: () => RNDeviceInfo.isTablet,
383
+ });
384
+
385
+ export const isLowRamDevice = () =>
386
+ getSupportedPlatformInfoSync({
387
+ defaultValue: false,
388
+ supportedPlatforms: ['android'],
389
+ memoKey: 'lowRam',
390
+ getter: () => RNDeviceInfo.isLowRamDevice,
391
+ });
392
+
393
+ export const isDisplayZoomed = () =>
394
+ getSupportedPlatformInfoSync({
395
+ defaultValue: false,
396
+ supportedPlatforms: ['ios'],
397
+ memoKey: 'zoomed',
398
+ getter: () => RNDeviceInfo.isDisplayZoomed,
399
+ });
400
+
401
+ export const [isPinOrFingerprintSet, isPinOrFingerprintSetSync] = getSupportedPlatformInfoFunctions(
402
+ {
403
+ supportedPlatforms: ['android', 'ios', 'windows'],
404
+ getter: () => RNDeviceInfo.isPinOrFingerprintSet(),
405
+ syncGetter: () => RNDeviceInfo.isPinOrFingerprintSetSync(),
406
+ defaultValue: false,
407
+ }
408
+ );
409
+
410
+ let notch: boolean;
411
+ export function hasNotch() {
412
+ if (notch === undefined) {
413
+ let _brand = getBrand();
414
+ let _model = getModel();
415
+ notch =
416
+ devicesWithNotch.findIndex(
417
+ (item) =>
418
+ item.brand.toLowerCase() === _brand.toLowerCase() &&
419
+ item.model.toLowerCase() === _model.toLowerCase()
420
+ ) !== -1;
421
+ }
422
+ return notch;
423
+ }
424
+
425
+ let dynamicIsland: boolean;
426
+ export function hasDynamicIsland() {
427
+ if (dynamicIsland === undefined) {
428
+ let _brand = getBrand();
429
+ let _model = getModel();
430
+ dynamicIsland =
431
+ devicesWithDynamicIsland.findIndex(
432
+ (item) =>
433
+ item.brand.toLowerCase() === _brand.toLowerCase() &&
434
+ item.model.toLowerCase() === _model.toLowerCase()
435
+ ) !== -1;
436
+ }
437
+ return dynamicIsland;
438
+ }
439
+
440
+ export const [hasGms, hasGmsSync] = getSupportedPlatformInfoFunctions({
441
+ supportedPlatforms: ['android'],
442
+ getter: () => RNDeviceInfo.hasGms(),
443
+ syncGetter: () => RNDeviceInfo.hasGmsSync(),
444
+ defaultValue: false,
445
+ });
446
+
447
+ export const [hasHms, hasHmsSync] = getSupportedPlatformInfoFunctions({
448
+ supportedPlatforms: ['android'],
449
+ getter: () => RNDeviceInfo.hasHms(),
450
+ syncGetter: () => RNDeviceInfo.hasHmsSync(),
451
+ defaultValue: false,
452
+ });
453
+
454
+ export const [getFirstInstallTime, getFirstInstallTimeSync] = getSupportedPlatformInfoFunctions({
455
+ memoKey: 'firstInstallTime',
456
+ supportedPlatforms: ['android', 'ios', 'windows'],
457
+ getter: () => RNDeviceInfo.getFirstInstallTime(),
458
+ syncGetter: () => RNDeviceInfo.getFirstInstallTimeSync(),
459
+ defaultValue: -1,
460
+ });
461
+
462
+ export const [getInstallReferrer, getInstallReferrerSync] = getSupportedPlatformInfoFunctions({
463
+ memoKey: 'installReferrer',
464
+ supportedPlatforms: ['android', 'windows', 'web'],
465
+ getter: () => RNDeviceInfo.getInstallReferrer(),
466
+ syncGetter: () => RNDeviceInfo.getInstallReferrerSync(),
467
+ defaultValue: 'unknown',
468
+ });
469
+
470
+ export const [getLastUpdateTime, getLastUpdateTimeSync] = getSupportedPlatformInfoFunctions({
471
+ memoKey: 'lastUpdateTime',
472
+ supportedPlatforms: ['android'],
473
+ getter: () => RNDeviceInfo.getLastUpdateTime(),
474
+ syncGetter: () => RNDeviceInfo.getLastUpdateTimeSync(),
475
+ defaultValue: -1,
476
+ });
477
+
478
+ export const [getPhoneNumber, getPhoneNumberSync] = getSupportedPlatformInfoFunctions({
479
+ supportedPlatforms: ['android'],
480
+ getter: () => RNDeviceInfo.getPhoneNumber(),
481
+ syncGetter: () => RNDeviceInfo.getPhoneNumberSync(),
482
+ defaultValue: 'unknown',
483
+ });
484
+
485
+ export const [getCarrier, getCarrierSync] = getSupportedPlatformInfoFunctions({
486
+ supportedPlatforms: ['android', 'ios'],
487
+ getter: () => RNDeviceInfo.getCarrier(),
488
+ syncGetter: () => RNDeviceInfo.getCarrierSync(),
489
+ defaultValue: 'unknown',
490
+ });
491
+
492
+ export const [getTotalMemory, getTotalMemorySync] = getSupportedPlatformInfoFunctions({
493
+ memoKey: 'totalMemory',
494
+ supportedPlatforms: ['android', 'ios', 'windows', 'web'],
495
+ getter: () => RNDeviceInfo.getTotalMemory(),
496
+ syncGetter: () => RNDeviceInfo.getTotalMemorySync(),
497
+ defaultValue: -1,
498
+ });
499
+
500
+ export const [getMaxMemory, getMaxMemorySync] = getSupportedPlatformInfoFunctions({
501
+ memoKey: 'maxMemory',
502
+ supportedPlatforms: ['android', 'windows', 'web'],
503
+ getter: () => RNDeviceInfo.getMaxMemory(),
504
+ syncGetter: () => RNDeviceInfo.getMaxMemorySync(),
505
+ defaultValue: -1,
506
+ });
507
+
508
+ export const [getTotalDiskCapacity, getTotalDiskCapacitySync] = getSupportedPlatformInfoFunctions({
509
+ supportedPlatforms: ['android', 'ios', 'windows', 'web'],
510
+ getter: () => RNDeviceInfo.getTotalDiskCapacity(),
511
+ syncGetter: () => RNDeviceInfo.getTotalDiskCapacitySync(),
512
+ defaultValue: -1,
513
+ });
514
+
515
+ export async function getTotalDiskCapacityOld() {
516
+ if (Platform.OS === 'android') {
517
+ return RNDeviceInfo.getTotalDiskCapacityOld();
518
+ }
519
+ if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {
520
+ return getTotalDiskCapacity();
521
+ }
522
+
523
+ return -1;
524
+ }
525
+
526
+ export function getTotalDiskCapacityOldSync() {
527
+ if (Platform.OS === 'android') {
528
+ return RNDeviceInfo.getTotalDiskCapacityOldSync();
529
+ }
530
+ if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {
531
+ return getTotalDiskCapacitySync();
532
+ }
533
+
534
+ return -1;
535
+ }
536
+
537
+ export const [getFreeDiskStorage, getFreeDiskStorageSync] = getSupportedPlatformInfoFunctions({
538
+ supportedPlatforms: ['android', 'ios', 'windows', 'web'],
539
+ getter: () => RNDeviceInfo.getFreeDiskStorage(),
540
+ syncGetter: () => RNDeviceInfo.getFreeDiskStorageSync(),
541
+ defaultValue: -1,
542
+ });
543
+
544
+ export async function getFreeDiskStorageOld() {
545
+ if (Platform.OS === 'android') {
546
+ return RNDeviceInfo.getFreeDiskStorageOld();
547
+ }
548
+ if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {
549
+ return getFreeDiskStorage();
550
+ }
551
+
552
+ return -1;
553
+ }
554
+
555
+ export function getFreeDiskStorageOldSync() {
556
+ if (Platform.OS === 'android') {
557
+ return RNDeviceInfo.getFreeDiskStorageOldSync();
558
+ }
559
+ if (Platform.OS === 'ios' || Platform.OS === 'windows' || Platform.OS === 'web') {
560
+ return getFreeDiskStorageSync();
561
+ }
562
+
563
+ return -1;
564
+ }
565
+
566
+ export const [getBatteryLevel, getBatteryLevelSync] = getSupportedPlatformInfoFunctions({
567
+ supportedPlatforms: ['android', 'ios', 'windows', 'web'],
568
+ getter: () => RNDeviceInfo.getBatteryLevel(),
569
+ syncGetter: () => RNDeviceInfo.getBatteryLevelSync(),
570
+ defaultValue: -1,
571
+ });
572
+
573
+ export const [getPowerState, getPowerStateSync] = getSupportedPlatformInfoFunctions<
574
+ Partial<PowerState>
575
+ >({
576
+ supportedPlatforms: ['ios', 'android', 'windows', 'web'],
577
+ getter: () => RNDeviceInfo.getPowerState(),
578
+ syncGetter: () => RNDeviceInfo.getPowerStateSync(),
579
+ defaultValue: {},
580
+ });
581
+
582
+ export const [isBatteryCharging, isBatteryChargingSync] = getSupportedPlatformInfoFunctions({
583
+ supportedPlatforms: ['android', 'ios', 'windows', 'web'],
584
+ getter: () => RNDeviceInfo.isBatteryCharging(),
585
+ syncGetter: () => RNDeviceInfo.isBatteryChargingSync(),
586
+ defaultValue: false,
587
+ });
588
+
589
+ export async function isLandscape() {
590
+ return Promise.resolve(isLandscapeSync());
591
+ }
592
+
593
+ export function isLandscapeSync() {
594
+ const { height, width } = Dimensions.get('window');
595
+ return width >= height;
596
+ }
597
+
598
+ export const [isAirplaneMode, isAirplaneModeSync] = getSupportedPlatformInfoFunctions({
599
+ supportedPlatforms: ['android', 'web'],
600
+ getter: () => RNDeviceInfo.isAirplaneMode(),
601
+ syncGetter: () => RNDeviceInfo.isAirplaneModeSync(),
602
+ defaultValue: false,
603
+ });
604
+
605
+ export const getDeviceType = () => {
606
+ return getSupportedPlatformInfoSync({
607
+ memoKey: 'deviceType',
608
+ supportedPlatforms: ['android', 'ios', 'windows'],
609
+ defaultValue: 'unknown',
610
+ getter: () => RNDeviceInfo.deviceType,
611
+ });
612
+ };
613
+
614
+ export const getDeviceTypeSync = () => {
615
+ return getSupportedPlatformInfoSync({
616
+ memoKey: 'deviceType',
617
+ supportedPlatforms: ['android', 'ios', 'windows'],
618
+ defaultValue: 'unknown',
619
+ getter: () => RNDeviceInfo.deviceType,
620
+ });
621
+ };
622
+
623
+ export const [supportedAbis, supportedAbisSync] = getSupportedPlatformInfoFunctions({
624
+ memoKey: '_supportedAbis',
625
+ supportedPlatforms: ['android', 'ios', 'windows'],
626
+ getter: () => RNDeviceInfo.getSupportedAbis(),
627
+ syncGetter: () => RNDeviceInfo.getSupportedAbisSync(),
628
+ defaultValue: [] as string[],
629
+ });
630
+
631
+ export const [supported32BitAbis, supported32BitAbisSync] = getSupportedPlatformInfoFunctions({
632
+ memoKey: '_supported32BitAbis',
633
+ supportedPlatforms: ['android'],
634
+ getter: () => RNDeviceInfo.getSupported32BitAbis(),
635
+ syncGetter: () => RNDeviceInfo.getSupported32BitAbisSync(),
636
+ defaultValue: [] as string[],
637
+ });
638
+
639
+ export const [supported64BitAbis, supported64BitAbisSync] = getSupportedPlatformInfoFunctions({
640
+ memoKey: '_supported64BitAbis',
641
+ supportedPlatforms: ['android'],
642
+ getter: () => RNDeviceInfo.getSupported64BitAbis(),
643
+ syncGetter: () => RNDeviceInfo.getSupported64BitAbisSync(),
644
+ defaultValue: [],
645
+ });
646
+
647
+ export async function hasSystemFeature(feature: string) {
648
+ if (Platform.OS === 'android') {
649
+ return RNDeviceInfo.hasSystemFeature(feature);
650
+ }
651
+ return false;
652
+ }
653
+
654
+ export function hasSystemFeatureSync(feature: string) {
655
+ if (Platform.OS === 'android') {
656
+ return RNDeviceInfo.hasSystemFeatureSync(feature);
657
+ }
658
+ return false;
659
+ }
660
+
661
+ export function isLowBatteryLevel(level: number): boolean {
662
+ if (Platform.OS === 'android') {
663
+ return level < 0.15;
664
+ }
665
+ return level < 0.2;
666
+ }
667
+
668
+ export const [
669
+ getSystemAvailableFeatures,
670
+ getSystemAvailableFeaturesSync,
671
+ ] = getSupportedPlatformInfoFunctions({
672
+ supportedPlatforms: ['android'],
673
+ getter: () => RNDeviceInfo.getSystemAvailableFeatures(),
674
+ syncGetter: () => RNDeviceInfo.getSystemAvailableFeaturesSync(),
675
+ defaultValue: [] as string[],
676
+ });
677
+
678
+ export const [isLocationEnabled, isLocationEnabledSync] = getSupportedPlatformInfoFunctions({
679
+ supportedPlatforms: ['android', 'ios', 'web'],
680
+ getter: () => RNDeviceInfo.isLocationEnabled(),
681
+ syncGetter: () => RNDeviceInfo.isLocationEnabledSync(),
682
+ defaultValue: false,
683
+ });
684
+
685
+ export const [isHeadphonesConnected, isHeadphonesConnectedSync] = getSupportedPlatformInfoFunctions(
686
+ {
687
+ supportedPlatforms: ['android', 'ios'],
688
+ getter: () => RNDeviceInfo.isHeadphonesConnected(),
689
+ syncGetter: () => RNDeviceInfo.isHeadphonesConnectedSync(),
690
+ defaultValue: false,
691
+ }
692
+ );
693
+
694
+ export const [isMouseConnected, isMouseConnectedSync] = getSupportedPlatformInfoFunctions({
695
+ supportedPlatforms: ['windows'],
696
+ getter: () => RNDeviceInfo.isMouseConnected(),
697
+ syncGetter: () => RNDeviceInfo.isMouseConnectedSync(),
698
+ defaultValue: false,
699
+ });
700
+
701
+ export const [isKeyboardConnected, isKeyboardConnectedSync] = getSupportedPlatformInfoFunctions({
702
+ supportedPlatforms: ['windows'],
703
+ getter: () => RNDeviceInfo.isKeyboardConnected(),
704
+ syncGetter: () => RNDeviceInfo.isKeyboardConnectedSync(),
705
+ defaultValue: false,
706
+ });
707
+
708
+ export const [getSupportedMediaTypeList, getSupportedMediaTypeListSync] = getSupportedPlatformInfoFunctions(
709
+ {
710
+ supportedPlatforms: ['android'],
711
+ getter: () => RNDeviceInfo.getSupportedMediaTypeList(),
712
+ syncGetter: () => RNDeviceInfo.getSupportedMediaTypeListSync(),
713
+ defaultValue: []
714
+ }
715
+ )
716
+
717
+
718
+ export const isTabletMode = () =>
719
+ getSupportedPlatformInfoAsync({
720
+ supportedPlatforms: ['windows'],
721
+ getter: () => RNDeviceInfo.isTabletMode(),
722
+ defaultValue: false,
723
+ });
724
+
725
+ export const [
726
+ getAvailableLocationProviders,
727
+ getAvailableLocationProvidersSync,
728
+ ] = getSupportedPlatformInfoFunctions({
729
+ supportedPlatforms: ['android', 'ios'],
730
+ getter: () => RNDeviceInfo.getAvailableLocationProviders(),
731
+ syncGetter: () => RNDeviceInfo.getAvailableLocationProvidersSync(),
732
+ defaultValue: {},
733
+ });
734
+
735
+ export const [getBrightness, getBrightnessSync] = getSupportedPlatformInfoFunctions({
736
+ supportedPlatforms: ['ios'],
737
+ getter: () => RNDeviceInfo.getBrightness(),
738
+ syncGetter: () => RNDeviceInfo.getBrightnessSync(),
739
+ defaultValue: -1,
740
+ });
741
+
742
+ export async function getDeviceToken() {
743
+ if (Platform.OS === 'ios') {
744
+ return RNDeviceInfo.getDeviceToken();
745
+ }
746
+ return 'unknown';
747
+ }
748
+
749
+ const deviceInfoEmitter = new NativeEventEmitter(NativeModules.ShakebugSDKRNDeviceInfo);
750
+ export function useBatteryLevel(): number | null {
751
+ const [batteryLevel, setBatteryLevel] = useState<number | null>(null);
752
+
753
+ useEffect(() => {
754
+ const setInitialValue = async () => {
755
+ const initialValue: number = await getBatteryLevel();
756
+ setBatteryLevel(initialValue);
757
+ };
758
+
759
+ const onChange = (level: number) => {
760
+ setBatteryLevel(level);
761
+ };
762
+
763
+ setInitialValue();
764
+
765
+ const subscription = deviceInfoEmitter.addListener(
766
+ 'RNDeviceInfo_batteryLevelDidChange',
767
+ onChange
768
+ );
769
+
770
+ return () => subscription.remove();
771
+ }, []);
772
+
773
+ return batteryLevel;
774
+ }
775
+
776
+ export function useBatteryLevelIsLow(): number | null {
777
+ const [batteryLevelIsLow, setBatteryLevelIsLow] = useState<number | null>(null);
778
+
779
+ useEffect(() => {
780
+ const setInitialValue = async () => {
781
+ const initialValue: number = await getBatteryLevel();
782
+ isLowBatteryLevel(initialValue) && setBatteryLevelIsLow(initialValue);
783
+ };
784
+
785
+ setInitialValue();
786
+
787
+ const onChange = (level: number) => {
788
+ setBatteryLevelIsLow(level);
789
+ };
790
+
791
+ const subscription = deviceInfoEmitter.addListener('RNDeviceInfo_batteryLevelIsLow', onChange);
792
+
793
+ return () => subscription.remove();
794
+ }, []);
795
+
796
+ return batteryLevelIsLow;
797
+ }
798
+
799
+ export function usePowerState(): Partial<PowerState> {
800
+ const [powerState, setPowerState] = useState<Partial<PowerState>>({});
801
+
802
+ useEffect(() => {
803
+ const setInitialValue = async () => {
804
+ const initialValue: Partial<PowerState> = await getPowerState();
805
+ setPowerState(initialValue);
806
+ };
807
+
808
+ const onChange = (state: PowerState) => {
809
+ setPowerState(state);
810
+ };
811
+
812
+ setInitialValue();
813
+
814
+ const subscription = deviceInfoEmitter.addListener(
815
+ 'RNDeviceInfo_powerStateDidChange',
816
+ onChange
817
+ );
818
+
819
+ return () => subscription.remove();
820
+ }, []);
821
+
822
+ return powerState;
823
+ }
824
+
825
+ export function useIsHeadphonesConnected(): AsyncHookResult<boolean> {
826
+ return useOnEvent('RNDeviceInfo_headphoneConnectionDidChange', isHeadphonesConnected, false);
827
+ }
828
+
829
+ export function useFirstInstallTime(): AsyncHookResult<number> {
830
+ return useOnMount(getFirstInstallTime, -1);
831
+ }
832
+
833
+ export function useDeviceName(): AsyncHookResult<string> {
834
+ return useOnMount(getDeviceName, 'unknown');
835
+ }
836
+
837
+ export function useHasSystemFeature(feature: string): AsyncHookResult<boolean> {
838
+ const asyncGetter = useCallback(() => hasSystemFeature(feature), [feature]);
839
+ return useOnMount(asyncGetter, false);
840
+ }
841
+
842
+ export function useIsEmulator(): AsyncHookResult<boolean> {
843
+ return useOnMount(isEmulator, false);
844
+ }
845
+
846
+ export function useManufacturer(): AsyncHookResult<string> {
847
+ return useOnMount(getManufacturer, 'unknown');
848
+ }
849
+
850
+ export function useBrightness(): number | null {
851
+ const [brightness, setBrightness] = useState<number | null>(null);
852
+
853
+ useEffect(() => {
854
+ const setInitialValue = async () => {
855
+ const initialValue: number = await getBrightness();
856
+ setBrightness(initialValue);
857
+ };
858
+
859
+ const onChange = (value: number) => {
860
+ setBrightness(value);
861
+ };
862
+
863
+ setInitialValue();
864
+
865
+ const subscription = deviceInfoEmitter.addListener(
866
+ 'RNDeviceInfo_brightnessDidChange',
867
+ onChange
868
+ );
869
+
870
+ return () => subscription.remove();
871
+ }, []);
872
+
873
+ return brightness;
874
+ }
875
+
876
+ export type { AsyncHookResult, DeviceType, LocationProviderInfo, PowerState };
877
+
878
+ const DeviceInfo: DeviceInfoModule = {
879
+ getAndroidId,
880
+ getAndroidIdSync,
881
+ getApiLevel,
882
+ getApiLevelSync,
883
+ getApplicationName,
884
+ getAvailableLocationProviders,
885
+ getAvailableLocationProvidersSync,
886
+ getBaseOs,
887
+ getBaseOsSync,
888
+ getBatteryLevel,
889
+ getBatteryLevelSync,
890
+ getBootloader,
891
+ getBootloaderSync,
892
+ getBrand,
893
+ getBuildId,
894
+ getBuildIdSync,
895
+ getBuildNumber,
896
+ getBundleId,
897
+ getCarrier,
898
+ getCarrierSync,
899
+ getCodename,
900
+ getCodenameSync,
901
+ getDevice,
902
+ getDeviceId,
903
+ getDeviceName,
904
+ getDeviceNameSync,
905
+ getDeviceSync,
906
+ getDeviceToken,
907
+ getDeviceType,
908
+ getDisplay,
909
+ getDisplaySync,
910
+ getFingerprint,
911
+ getFingerprintSync,
912
+ getFirstInstallTime,
913
+ getFirstInstallTimeSync,
914
+ getFontScale,
915
+ getFontScaleSync,
916
+ getFreeDiskStorage,
917
+ getFreeDiskStorageOld,
918
+ getFreeDiskStorageSync,
919
+ getFreeDiskStorageOldSync,
920
+ getHardware,
921
+ getHardwareSync,
922
+ getHost,
923
+ getHostSync,
924
+ getHostNames,
925
+ getHostNamesSync,
926
+ getIncremental,
927
+ getIncrementalSync,
928
+ getInstallerPackageName,
929
+ getInstallerPackageNameSync,
930
+ getInstallReferrer,
931
+ getInstallReferrerSync,
932
+ getInstanceId,
933
+ getInstanceIdSync,
934
+ getIpAddress,
935
+ getIpAddressSync,
936
+ getLastUpdateTime,
937
+ getLastUpdateTimeSync,
938
+ getMacAddress,
939
+ getMacAddressSync,
940
+ getManufacturer,
941
+ getManufacturerSync,
942
+ getMaxMemory,
943
+ getMaxMemorySync,
944
+ getModel,
945
+ getPhoneNumber,
946
+ getPhoneNumberSync,
947
+ getPowerState,
948
+ getPowerStateSync,
949
+ getPreviewSdkInt,
950
+ getPreviewSdkIntSync,
951
+ getProduct,
952
+ getProductSync,
953
+ getReadableVersion,
954
+ getSecurityPatch,
955
+ getSecurityPatchSync,
956
+ getSerialNumber,
957
+ getSerialNumberSync,
958
+ getSystemAvailableFeatures,
959
+ getSystemAvailableFeaturesSync,
960
+ getSystemName,
961
+ getSystemVersion,
962
+ getTags,
963
+ getTagsSync,
964
+ getTotalDiskCapacity,
965
+ getTotalDiskCapacityOld,
966
+ getTotalDiskCapacitySync,
967
+ getTotalDiskCapacityOldSync,
968
+ getTotalMemory,
969
+ getTotalMemorySync,
970
+ getType,
971
+ getTypeSync,
972
+ getUniqueId,
973
+ getUniqueIdSync,
974
+ getUsedMemory,
975
+ getUsedMemorySync,
976
+ getUserAgent,
977
+ getUserAgentSync,
978
+ getVersion,
979
+ getBrightness,
980
+ getBrightnessSync,
981
+ hasGms,
982
+ hasGmsSync,
983
+ hasHms,
984
+ hasHmsSync,
985
+ hasNotch,
986
+ hasDynamicIsland,
987
+ hasSystemFeature,
988
+ hasSystemFeatureSync,
989
+ isAirplaneMode,
990
+ isAirplaneModeSync,
991
+ isBatteryCharging,
992
+ isBatteryChargingSync,
993
+ isCameraPresent,
994
+ isCameraPresentSync,
995
+ isEmulator,
996
+ isEmulatorSync,
997
+ isHeadphonesConnected,
998
+ isHeadphonesConnectedSync,
999
+ isLandscape,
1000
+ isLandscapeSync,
1001
+ isLocationEnabled,
1002
+ isLocationEnabledSync,
1003
+ isPinOrFingerprintSet,
1004
+ isPinOrFingerprintSetSync,
1005
+ isMouseConnected,
1006
+ isMouseConnectedSync,
1007
+ isKeyboardConnected,
1008
+ isKeyboardConnectedSync,
1009
+ isTabletMode,
1010
+ isTablet,
1011
+ isLowRamDevice,
1012
+ isDisplayZoomed,
1013
+ supported32BitAbis,
1014
+ supported32BitAbisSync,
1015
+ supported64BitAbis,
1016
+ supported64BitAbisSync,
1017
+ supportedAbis,
1018
+ supportedAbisSync,
1019
+ syncUniqueId,
1020
+ useBatteryLevel,
1021
+ useBatteryLevelIsLow,
1022
+ useDeviceName,
1023
+ useFirstInstallTime,
1024
+ useHasSystemFeature,
1025
+ useIsEmulator,
1026
+ usePowerState,
1027
+ useManufacturer,
1028
+ useIsHeadphonesConnected,
1029
+ useBrightness,
1030
+ getSupportedMediaTypeList,
1031
+ getSupportedMediaTypeListSync
1032
+ };
1033
+
1034
+ export default DeviceInfo;