react-native-rook-sdk 4.0.0 → 5.0.0-beta.0

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 (332) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +35 -3
  3. package/RNRookSdk.podspec +22 -0
  4. package/android/build.gradle +21 -40
  5. package/android/gradle.properties +5 -5
  6. package/android/src/main/AndroidManifest.xml +1 -2
  7. package/android/src/main/java/com/rooksdk/RookSdkModule.kt +1709 -117
  8. package/android/src/main/java/com/rooksdk/RookSdkPackage.kt +26 -42
  9. package/android/src/main/java/com/rooksdk/broadcasts/AndroidPermissionsReceiverTransmitter.kt +34 -37
  10. package/android/src/main/java/com/rooksdk/broadcasts/HealthConnectPermissionsReceiverTransmitter.kt +8 -14
  11. package/android/src/main/java/com/rooksdk/broadcasts/SamsungHealthPermissionsReceiverTransmitter.kt +8 -16
  12. package/android/src/main/java/com/rooksdk/utils/{DatasourcesUtils.kt → DatasourceUtils.kt} +10 -9
  13. package/android/src/main/java/com/rooksdk/utils/{PermissionConversion.kt → PermissionConvertions.kt} +1 -1
  14. package/android/src/main/java/com/rooksdk/utils/ReadableToWritable.kt +0 -1
  15. package/android/src/main/java/com/rooksdk/utils/RookGsonBuilder.kt +3 -0
  16. package/android/src/main/java/com/rooksdk/utils/SamsungAvailability.kt +1 -0
  17. package/android/src/main/java/com/rooksdk/utils/serializers/InstantSerializer.kt +0 -1
  18. package/android/src/main/java/com/rooksdk/utils/serializers/ZoneDateTimeSerializer.kt +18 -0
  19. package/ios/DateHelper.swift +4 -4
  20. package/ios/Encodable.swift +25 -0
  21. package/ios/EncodableDataSource.swift +2 -3
  22. package/ios/EncodableDataSourceAuthorizer.swift +2 -3
  23. package/ios/EncodableSDKState.swift +3 -2
  24. package/ios/{EncodableHeartRate.swift → HearRateMapper.swift} +3 -3
  25. package/ios/NutritionMapper.swift +3 -3
  26. package/ios/RookBackground.swift +5 -8
  27. package/ios/RookConfiguration.swift +33 -30
  28. package/ios/{RookLocalData.swift → RookData.swift} +76 -69
  29. package/ios/RookEntry.swift +62 -0
  30. package/ios/RookPermissions.swift +36 -40
  31. package/ios/RookSdk-Bridging-Header.h +12 -0
  32. package/ios/RookSdk.h +3 -3
  33. package/ios/RookSdk.mm +390 -134
  34. package/ios/RookSources.swift +60 -54
  35. package/ios/RookSync.swift +48 -78
  36. package/ios/boost-boost_privacy-Bridging-Header.h +4 -0
  37. package/lib/{commonjs/types/AppleHealthPermissions.js → module/NativeRookSdk.js} +50 -6
  38. package/lib/module/NativeRookSdk.js.map +1 -0
  39. package/lib/module/context/RookSyncGateContext.js +2 -0
  40. package/lib/module/context/RookSyncGateContext.js.map +1 -1
  41. package/lib/module/context/RookSyncGateProvider.js +17 -18
  42. package/lib/module/context/RookSyncGateProvider.js.map +1 -1
  43. package/lib/module/context/RookSyncGateReducer.js +2 -0
  44. package/lib/module/context/RookSyncGateReducer.js.map +1 -1
  45. package/lib/module/context/RookSyncGateTypes.js +2 -0
  46. package/lib/module/hooks/useRookAPISources.js +10 -16
  47. package/lib/module/hooks/useRookAPISources.js.map +1 -1
  48. package/lib/module/hooks/useRookAndroidBackgroundSteps.js +11 -12
  49. package/lib/module/hooks/useRookAndroidBackgroundSteps.js.map +1 -1
  50. package/lib/module/hooks/useRookAppleHealth.js +9 -10
  51. package/lib/module/hooks/useRookAppleHealth.js.map +1 -1
  52. package/lib/module/hooks/useRookConfiguration.js +17 -22
  53. package/lib/module/hooks/useRookConfiguration.js.map +1 -1
  54. package/lib/module/hooks/useRookData.js +33 -38
  55. package/lib/module/hooks/useRookData.js.map +1 -1
  56. package/lib/module/hooks/useRookHealthConnect.js +9 -10
  57. package/lib/module/hooks/useRookHealthConnect.js.map +1 -1
  58. package/lib/module/hooks/useRookPermissions.js +34 -45
  59. package/lib/module/hooks/useRookPermissions.js.map +1 -1
  60. package/lib/module/hooks/useRookSamsungHealth.js +8 -20
  61. package/lib/module/hooks/useRookSamsungHealth.js.map +1 -1
  62. package/lib/module/hooks/useRookSync.js +23 -32
  63. package/lib/module/hooks/useRookSync.js.map +1 -1
  64. package/lib/module/hooks/useRookVariables.js +26 -29
  65. package/lib/module/hooks/useRookVariables.js.map +1 -1
  66. package/lib/module/index.js +18 -10
  67. package/lib/module/index.js.map +1 -1
  68. package/lib/module/modules/components/RookStateManager.js +31 -0
  69. package/lib/module/modules/components/RookStateManager.js.map +1 -0
  70. package/lib/module/modules/hook/useRookAutoSync.js +24 -36
  71. package/lib/module/modules/hook/useRookAutoSync.js.map +1 -1
  72. package/lib/module/modules/hook/useRookEmitter.js +61 -0
  73. package/lib/module/modules/hook/useRookEmitter.js.map +1 -0
  74. package/lib/module/modules/types/sendMessageBroadcast.js +1 -1
  75. package/lib/module/modules/utils/errors.js +2 -0
  76. package/lib/module/modules/utils/errors.js.map +1 -1
  77. package/lib/module/package.json +1 -0
  78. package/lib/module/types/ActivityEvent.js +2 -0
  79. package/lib/module/types/AppleHealthNutritionEvent.js +2 -0
  80. package/lib/module/types/AppleHealthNutritionEvent.js.map +1 -1
  81. package/lib/module/types/AppleHealthPermissions.js +2 -0
  82. package/lib/module/types/AppleHealthPermissions.js.map +1 -1
  83. package/lib/module/types/AuthorizedSources.js +2 -0
  84. package/lib/module/types/BodySummary.js +2 -0
  85. package/lib/module/types/DataSource.js +2 -0
  86. package/lib/module/types/DataSource.js.map +1 -1
  87. package/lib/module/types/HCMealData.js +3 -1
  88. package/lib/module/types/HCMealData.js.map +1 -1
  89. package/lib/module/types/HeartRateEvent.js +1 -1
  90. package/lib/module/types/PermissionsType.js +1 -1
  91. package/lib/module/types/PhysicalSummary.js +2 -0
  92. package/lib/module/types/Rook.js +2 -0
  93. package/lib/{commonjs/types/BodySummary.js.map → module/types/Rook.js.map} +1 -1
  94. package/lib/module/types/SDKSources.js +2 -0
  95. package/lib/module/types/SDKSources.js.map +1 -1
  96. package/lib/module/types/SamsungHealthPermissions.js +3 -0
  97. package/lib/module/types/SamsungHealthPermissions.js.map +1 -1
  98. package/lib/module/types/SleepSummary.js +2 -0
  99. package/lib/module/types/SummaryTypes.js +1 -1
  100. package/lib/module/types/SyncTypes.js +2 -0
  101. package/lib/module/types/SyncTypes.js.map +1 -1
  102. package/lib/module/types/WriteNutrition.js +2 -0
  103. package/lib/module/types/WriteNutrition.js.map +1 -1
  104. package/lib/module/utils/isModuleReady.js +2 -0
  105. package/lib/module/utils/isModuleReady.js.map +1 -1
  106. package/lib/module/utils/isRunningOnAndroid.js +2 -0
  107. package/lib/module/utils/isRunningOnAndroid.js.map +1 -1
  108. package/lib/module/utils/isRunningOniOS.js +2 -0
  109. package/lib/module/utils/isRunningOniOS.js.map +1 -1
  110. package/lib/module/utils/isValidDate.js +2 -0
  111. package/lib/module/utils/isValidDate.js.map +1 -1
  112. package/lib/typescript/package.json +1 -0
  113. package/lib/typescript/src/NativeRookSdk.d.ts +705 -0
  114. package/lib/typescript/src/NativeRookSdk.d.ts.map +1 -0
  115. package/lib/typescript/src/context/RookSyncGateContext.d.ts.map +1 -1
  116. package/lib/typescript/src/context/RookSyncGateProvider.d.ts.map +1 -1
  117. package/lib/typescript/src/context/RookSyncGateReducer.d.ts.map +1 -1
  118. package/lib/typescript/src/hooks/useRookAPISources.d.ts.map +1 -1
  119. package/lib/typescript/src/hooks/useRookAndroidBackgroundSteps.d.ts.map +1 -1
  120. package/lib/typescript/src/hooks/useRookAppleHealth.d.ts.map +1 -1
  121. package/lib/typescript/src/hooks/useRookConfiguration.d.ts +1 -1
  122. package/lib/typescript/src/hooks/useRookConfiguration.d.ts.map +1 -1
  123. package/lib/typescript/src/hooks/useRookData.d.ts +1 -1
  124. package/lib/typescript/src/hooks/useRookData.d.ts.map +1 -1
  125. package/lib/typescript/src/hooks/useRookHealthConnect.d.ts.map +1 -1
  126. package/lib/typescript/src/hooks/useRookPermissions.d.ts +1 -1
  127. package/lib/typescript/src/hooks/useRookPermissions.d.ts.map +1 -1
  128. package/lib/typescript/src/hooks/useRookSamsungHealth.d.ts +0 -6
  129. package/lib/typescript/src/hooks/useRookSamsungHealth.d.ts.map +1 -1
  130. package/lib/typescript/src/hooks/useRookSync.d.ts.map +1 -1
  131. package/lib/typescript/src/hooks/useRookVariables.d.ts +1 -1
  132. package/lib/typescript/src/hooks/useRookVariables.d.ts.map +1 -1
  133. package/lib/typescript/src/index.d.ts +17 -8
  134. package/lib/typescript/src/index.d.ts.map +1 -1
  135. package/lib/typescript/src/modules/components/RookStateManager.d.ts +10 -0
  136. package/lib/typescript/src/modules/components/RookStateManager.d.ts.map +1 -0
  137. package/lib/typescript/src/modules/hook/useRookAutoSync.d.ts.map +1 -1
  138. package/lib/typescript/src/modules/hook/useRookEmitter.d.ts +4 -0
  139. package/lib/typescript/src/modules/hook/useRookEmitter.d.ts.map +1 -0
  140. package/lib/typescript/src/types/AppleHealthNutritionEvent.d.ts.map +1 -1
  141. package/lib/typescript/src/types/AuthorizedSources.d.ts +11 -0
  142. package/lib/typescript/src/types/AuthorizedSources.d.ts.map +1 -1
  143. package/lib/typescript/src/types/HCMealData.d.ts.map +1 -1
  144. package/lib/typescript/src/types/HeartRateEvent.d.ts +2 -2
  145. package/lib/typescript/src/types/HeartRateEvent.d.ts.map +1 -1
  146. package/lib/typescript/src/types/Rook.d.ts +9 -0
  147. package/lib/typescript/src/types/Rook.d.ts.map +1 -0
  148. package/lib/typescript/src/types/SamsungHealthPermissions.d.ts +1 -0
  149. package/lib/typescript/src/types/SamsungHealthPermissions.d.ts.map +1 -1
  150. package/lib/typescript/src/types/SyncTypes.d.ts +5 -1
  151. package/lib/typescript/src/types/SyncTypes.d.ts.map +1 -1
  152. package/lib/typescript/src/utils/isModuleReady.d.ts.map +1 -1
  153. package/lib/typescript/src/utils/isValidDate.d.ts.map +1 -1
  154. package/package.json +94 -98
  155. package/src/NativeRookSdk.ts +839 -0
  156. package/{lib/commonjs/context/RookSyncGateContext.js → src/context/RookSyncGateContext.ts} +10 -13
  157. package/src/context/RookSyncGateProvider.tsx +82 -0
  158. package/{lib/commonjs/context/RookSyncGateReducer.js → src/context/RookSyncGateReducer.ts} +14 -41
  159. package/src/context/RookSyncGateTypes.ts +40 -0
  160. package/{lib/commonjs/hooks/useRookAPISources.js → src/hooks/useRookAPISources.ts} +40 -36
  161. package/src/hooks/useRookAndroidBackgroundSteps.ts +81 -0
  162. package/src/hooks/useRookAppleHealth.ts +55 -0
  163. package/src/hooks/useRookConfiguration.ts +106 -0
  164. package/src/hooks/useRookData.ts +133 -0
  165. package/src/hooks/useRookHealthConnect.ts +59 -0
  166. package/src/hooks/useRookPermissions.ts +240 -0
  167. package/src/hooks/useRookSamsungHealth.ts +37 -0
  168. package/src/hooks/useRookSync.ts +157 -0
  169. package/src/hooks/useRookVariables.ts +98 -0
  170. package/src/index.tsx +28 -0
  171. package/src/modules/components/RookStateManager.tsx +41 -0
  172. package/{lib/commonjs/modules/hook/useRookAutoSync.js → src/modules/hook/useRookAutoSync.ts} +141 -95
  173. package/src/modules/hook/useRookEmitter.ts +94 -0
  174. package/src/modules/types/sendMessageBroadcast.ts +5 -0
  175. package/src/modules/utils/errors.ts +9 -0
  176. package/src/types/ActivityEvent.ts +159 -0
  177. package/src/types/AppleHealthNutritionEvent.ts +142 -0
  178. package/src/types/AppleHealthPermissions.ts +49 -0
  179. package/src/types/AuthorizedSources.ts +33 -0
  180. package/src/types/BodySummary.ts +116 -0
  181. package/src/types/DataSource.ts +16 -0
  182. package/{lib/commonjs/types/HCMealData.js → src/types/HCMealData.ts} +60 -11
  183. package/src/types/HeartRateEvent.ts +26 -0
  184. package/src/types/PermissionsType.ts +9 -0
  185. package/src/types/PhysicalSummary.ts +84 -0
  186. package/src/types/Rook.ts +8 -0
  187. package/src/types/SDKSources.ts +5 -0
  188. package/src/types/SamsungHealthPermissions.ts +16 -0
  189. package/src/types/SleepSummary.ts +66 -0
  190. package/src/types/SummaryTypes.ts +70 -0
  191. package/src/types/SyncTypes.ts +63 -0
  192. package/src/types/WriteNutrition.ts +66 -0
  193. package/{lib/commonjs/utils/isModuleReady.js → src/utils/isModuleReady.ts} +4 -10
  194. package/src/utils/isRunningOnAndroid.ts +10 -0
  195. package/src/utils/isRunningOniOS.ts +10 -0
  196. package/{lib/commonjs/utils/isValidDate.js → src/utils/isValidDate.ts} +12 -14
  197. package/android/src/main/AndroidManifestNew.xml +0 -36
  198. package/android/src/main/java/com/rooksdk/modules/RookBackgroundSyncModule.kt +0 -99
  199. package/android/src/main/java/com/rooksdk/modules/RookConfigurationModule.kt +0 -182
  200. package/android/src/main/java/com/rooksdk/modules/RookLocalData.kt +0 -301
  201. package/android/src/main/java/com/rooksdk/modules/RookPermissionsModule.kt +0 -359
  202. package/android/src/main/java/com/rooksdk/modules/RookSourcesModule.kt +0 -102
  203. package/android/src/main/java/com/rooksdk/modules/RookStepsModule.kt +0 -119
  204. package/android/src/main/java/com/rooksdk/modules/RookSyncModule.kt +0 -551
  205. package/android/src/main/res/drawable/ic_health_connect.xml +0 -19
  206. package/android/src/main/res/values/themes.xml +0 -3
  207. package/ios/EncodableRookDataSource.swift +0 -36
  208. package/ios/EncodableStatusDataSources.swift +0 -47
  209. package/ios/RookBackgroundModule.h +0 -5
  210. package/ios/RookBackgroundModule.mm +0 -15
  211. package/ios/RookConfigurationModule.h +0 -5
  212. package/ios/RookConfigurationModule.mm +0 -22
  213. package/ios/RookExternalModule.h +0 -5
  214. package/ios/RookExternalModule.m +0 -31
  215. package/ios/RookPermissionsModule.h +0 -5
  216. package/ios/RookPermissionsModule.mm +0 -20
  217. package/ios/RookSourcesModule.h +0 -5
  218. package/ios/RookSourcesModule.mm +0 -18
  219. package/ios/RookSync.h +0 -5
  220. package/ios/RookSync.m +0 -35
  221. package/ios/SwiftTest.swift +0 -18
  222. package/ios/react-native-rook-sdk-Bridging-Header.h +0 -12
  223. package/lib/commonjs/context/RookSyncGateContext.js.map +0 -1
  224. package/lib/commonjs/context/RookSyncGateProvider.js +0 -108
  225. package/lib/commonjs/context/RookSyncGateProvider.js.map +0 -1
  226. package/lib/commonjs/context/RookSyncGateReducer.js.map +0 -1
  227. package/lib/commonjs/context/RookSyncGateTypes.js +0 -6
  228. package/lib/commonjs/context/RookSyncGateTypes.js.map +0 -1
  229. package/lib/commonjs/context/index.js +0 -14
  230. package/lib/commonjs/context/index.js.map +0 -1
  231. package/lib/commonjs/hooks/index.js +0 -76
  232. package/lib/commonjs/hooks/index.js.map +0 -1
  233. package/lib/commonjs/hooks/useRookAPISources.js.map +0 -1
  234. package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js +0 -88
  235. package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js.map +0 -1
  236. package/lib/commonjs/hooks/useRookAppleHealth.js +0 -63
  237. package/lib/commonjs/hooks/useRookAppleHealth.js.map +0 -1
  238. package/lib/commonjs/hooks/useRookConfiguration.js +0 -113
  239. package/lib/commonjs/hooks/useRookConfiguration.js.map +0 -1
  240. package/lib/commonjs/hooks/useRookData.js +0 -116
  241. package/lib/commonjs/hooks/useRookData.js.map +0 -1
  242. package/lib/commonjs/hooks/useRookHealthConnect.js +0 -70
  243. package/lib/commonjs/hooks/useRookHealthConnect.js.map +0 -1
  244. package/lib/commonjs/hooks/useRookPermissions.js +0 -211
  245. package/lib/commonjs/hooks/useRookPermissions.js.map +0 -1
  246. package/lib/commonjs/hooks/useRookSamsungHealth.js +0 -54
  247. package/lib/commonjs/hooks/useRookSamsungHealth.js.map +0 -1
  248. package/lib/commonjs/hooks/useRookSync.js +0 -148
  249. package/lib/commonjs/hooks/useRookSync.js.map +0 -1
  250. package/lib/commonjs/hooks/useRookVariables.js +0 -93
  251. package/lib/commonjs/hooks/useRookVariables.js.map +0 -1
  252. package/lib/commonjs/index.js +0 -121
  253. package/lib/commonjs/index.js.map +0 -1
  254. package/lib/commonjs/modules/hook/useRookAutoSync.js.map +0 -1
  255. package/lib/commonjs/modules/types/sendMessageBroadcast.js +0 -2
  256. package/lib/commonjs/modules/types/sendMessageBroadcast.js.map +0 -1
  257. package/lib/commonjs/modules/utils/errors.js +0 -12
  258. package/lib/commonjs/modules/utils/errors.js.map +0 -1
  259. package/lib/commonjs/types/ActivityEvent.js +0 -6
  260. package/lib/commonjs/types/ActivityEvent.js.map +0 -1
  261. package/lib/commonjs/types/AppleHealthNutritionEvent.js +0 -77
  262. package/lib/commonjs/types/AppleHealthNutritionEvent.js.map +0 -1
  263. package/lib/commonjs/types/AppleHealthPermissions.js.map +0 -1
  264. package/lib/commonjs/types/AuthorizedSources.js +0 -6
  265. package/lib/commonjs/types/AuthorizedSources.js.map +0 -1
  266. package/lib/commonjs/types/BodySummary.js +0 -6
  267. package/lib/commonjs/types/DataSource.js +0 -16
  268. package/lib/commonjs/types/DataSource.js.map +0 -1
  269. package/lib/commonjs/types/DiagnosticState.js +0 -2
  270. package/lib/commonjs/types/DiagnosticState.js.map +0 -1
  271. package/lib/commonjs/types/HCMealData.js.map +0 -1
  272. package/lib/commonjs/types/HeartRateEvent.js +0 -2
  273. package/lib/commonjs/types/HeartRateEvent.js.map +0 -1
  274. package/lib/commonjs/types/PermissionsType.js +0 -2
  275. package/lib/commonjs/types/PermissionsType.js.map +0 -1
  276. package/lib/commonjs/types/PhysicalSummary.js +0 -6
  277. package/lib/commonjs/types/PhysicalSummary.js.map +0 -1
  278. package/lib/commonjs/types/SDKSources.js +0 -13
  279. package/lib/commonjs/types/SDKSources.js.map +0 -1
  280. package/lib/commonjs/types/SamsungHealthPermissions.js +0 -23
  281. package/lib/commonjs/types/SamsungHealthPermissions.js.map +0 -1
  282. package/lib/commonjs/types/SleepSummary.js +0 -6
  283. package/lib/commonjs/types/SleepSummary.js.map +0 -1
  284. package/lib/commonjs/types/SummaryTypes.js +0 -2
  285. package/lib/commonjs/types/SummaryTypes.js.map +0 -1
  286. package/lib/commonjs/types/SyncTypes.js +0 -33
  287. package/lib/commonjs/types/SyncTypes.js.map +0 -1
  288. package/lib/commonjs/types/WriteNutrition.js +0 -18
  289. package/lib/commonjs/types/WriteNutrition.js.map +0 -1
  290. package/lib/commonjs/utils/getNativeModule.js +0 -29
  291. package/lib/commonjs/utils/getNativeModule.js.map +0 -1
  292. package/lib/commonjs/utils/getRookModule.js +0 -28
  293. package/lib/commonjs/utils/getRookModule.js.map +0 -1
  294. package/lib/commonjs/utils/isModuleReady.js.map +0 -1
  295. package/lib/commonjs/utils/isRunningOnAndroid.js +0 -15
  296. package/lib/commonjs/utils/isRunningOnAndroid.js.map +0 -1
  297. package/lib/commonjs/utils/isRunningOniOS.js +0 -15
  298. package/lib/commonjs/utils/isRunningOniOS.js.map +0 -1
  299. package/lib/commonjs/utils/isValidDate.js.map +0 -1
  300. package/lib/commonjs/utils/nativeModules.js +0 -29
  301. package/lib/commonjs/utils/nativeModules.js.map +0 -1
  302. package/lib/commonjs/utils/packageInfo.js +0 -13
  303. package/lib/commonjs/utils/packageInfo.js.map +0 -1
  304. package/lib/module/context/index.js +0 -2
  305. package/lib/module/context/index.js.map +0 -1
  306. package/lib/module/hooks/index.js +0 -11
  307. package/lib/module/hooks/index.js.map +0 -1
  308. package/lib/module/types/DiagnosticState.js +0 -2
  309. package/lib/module/types/DiagnosticState.js.map +0 -1
  310. package/lib/module/utils/getNativeModule.js +0 -23
  311. package/lib/module/utils/getNativeModule.js.map +0 -1
  312. package/lib/module/utils/getRookModule.js +0 -22
  313. package/lib/module/utils/getRookModule.js.map +0 -1
  314. package/lib/module/utils/nativeModules.js +0 -23
  315. package/lib/module/utils/nativeModules.js.map +0 -1
  316. package/lib/module/utils/packageInfo.js +0 -7
  317. package/lib/module/utils/packageInfo.js.map +0 -1
  318. package/lib/typescript/src/context/index.d.ts +0 -2
  319. package/lib/typescript/src/context/index.d.ts.map +0 -1
  320. package/lib/typescript/src/hooks/index.d.ts +0 -11
  321. package/lib/typescript/src/hooks/index.d.ts.map +0 -1
  322. package/lib/typescript/src/types/DiagnosticState.d.ts +0 -13
  323. package/lib/typescript/src/types/DiagnosticState.d.ts.map +0 -1
  324. package/lib/typescript/src/utils/getNativeModule.d.ts +0 -10
  325. package/lib/typescript/src/utils/getNativeModule.d.ts.map +0 -1
  326. package/lib/typescript/src/utils/getRookModule.d.ts +0 -9
  327. package/lib/typescript/src/utils/getRookModule.d.ts.map +0 -1
  328. package/lib/typescript/src/utils/nativeModules.d.ts +0 -24
  329. package/lib/typescript/src/utils/nativeModules.d.ts.map +0 -1
  330. package/lib/typescript/src/utils/packageInfo.d.ts +0 -6
  331. package/lib/typescript/src/utils/packageInfo.d.ts.map +0 -1
  332. package/react-native-rook-sdk.podspec +0 -45
@@ -0,0 +1,84 @@
1
+ import type {
2
+ ActivityLevelGranularData,
3
+ ElevationGranularData,
4
+ FloorsClimbedGranularData,
5
+ HrGranularData,
6
+ SaturationGranularData,
7
+ HrvRmssdGranularData,
8
+ HrvSdnnGranularData,
9
+ TraveledDistanceGranularData,
10
+ StepsGranularData,
11
+ SwimmingDistanceGranularData,
12
+ Vo2GranularData,
13
+ } from './SummaryTypes';
14
+
15
+ export interface ActiveStepsGranularData {
16
+ dateTime: string;
17
+ intervalDurationSeconds: number;
18
+ activeSteps: number;
19
+ }
20
+
21
+ export interface StressGranularData {
22
+ dateTime: string;
23
+ stressScore: number;
24
+ }
25
+
26
+ export interface PhysicalSummary {
27
+ dateTime: string;
28
+ sourceOfData: string;
29
+ wasTheUserUnderPhysicalActivity: boolean;
30
+ activeSeconds: number | null;
31
+ restSeconds: number | null;
32
+ lowIntensitySeconds: number | null;
33
+ moderateIntensitySeconds: number | null;
34
+ vigorousIntensitySeconds: number | null;
35
+ inactivitySeconds: number | null;
36
+ activityLevelGranularData: ActivityLevelGranularData[] | null;
37
+ continuousInactivePeriods: number | null;
38
+ caloriesNetIntakeKcal: number | null;
39
+ caloriesExpenditureKcal: number | null;
40
+ caloriesNetActiveKcal: number | null;
41
+ caloriesBasalMetabolicRateKcal: number | null;
42
+ steps: number | null;
43
+ stepsGranularData: StepsGranularData[] | null;
44
+ activeSteps: number | null;
45
+ activeStepsGranularData: ActiveStepsGranularData[] | null;
46
+ walkedDistanceMeters: number | null;
47
+ traveledDistanceMeters: number | null;
48
+ traveledDistanceGranularData: TraveledDistanceGranularData[] | null;
49
+ floorsClimbed: number | null;
50
+ floorsClimbedGranularData: FloorsClimbedGranularData[] | null;
51
+ elevationAvgAltitudeMeters: number | null;
52
+ elevationMinimumAltitudeMeters: number | null;
53
+ elevationMaximumAltitudeMeters: number | null;
54
+ elevationLossActualAltitudeMeters: number | null;
55
+ elevationGainActualAltitudeMeters: number | null;
56
+ elevationPlannedGainMeters: number | null;
57
+ elevationGranularData: ElevationGranularData[] | null;
58
+ swimmingNumStrokes: number | null;
59
+ swimmingNumLaps: number | null;
60
+ swimmingPoolLengthMeters: number | null;
61
+ swimmingTotalDistanceMeters: number | null;
62
+ swimmingDistanceGranularData: SwimmingDistanceGranularData[] | null;
63
+ hrMaximumBpm: number | null;
64
+ hrMinimumBpm: number | null;
65
+ hrAvgBpm: number | null;
66
+ hrRestingBpm: number | null;
67
+ hrGranularData: HrGranularData[] | null;
68
+ hrvAvgRmssd: number | null;
69
+ hrvAvgSdnn: number | null;
70
+ hrvSdnnGranularData: HrvSdnnGranularData[] | null;
71
+ hrvRmssdGranularData: HrvRmssdGranularData[] | null;
72
+ saturationAvgPercentage: number | null;
73
+ saturationGranularData: SaturationGranularData[] | null;
74
+ vo2MaxMlPerMinPerKg: number | null;
75
+ vo2GranularData: Vo2GranularData[] | null;
76
+ stressAtRestDurationSeconds: number | null;
77
+ stressDurationSeconds: number | null;
78
+ lowStressDurationSeconds: number | null;
79
+ mediumStressDurationSeconds: number | null;
80
+ highStressDurationSeconds: number | null;
81
+ stressGranularData: StressGranularData[] | null;
82
+ stressAvgLevel: number | null;
83
+ stressMaximumLevel: number | null;
84
+ }
@@ -0,0 +1,8 @@
1
+ export type RookConfig = {
2
+ environment: string;
3
+ clientUUID: string;
4
+ password: string;
5
+ enableLogs: boolean;
6
+ enableEventsBackgroundSync: boolean;
7
+ enableBackground: boolean;
8
+ };
@@ -0,0 +1,5 @@
1
+ export enum SDKDataSource {
2
+ HEALTH_CONNECT = 'HEALTH_CONNECT',
3
+ SAMSUNG_HEALTH = 'SAMSUNG_HEALTH',
4
+ APPLE_HEALTH = 'APPLE_HEALTH',
5
+ }
@@ -0,0 +1,16 @@
1
+ export enum SamsungHealthPermission {
2
+ ACTIVITY_SUMMARY = 'ACTIVITY_SUMMARY',
3
+ BODY_TEMPERATURE = 'BODY_TEMPERATURE',
4
+ BLOOD_GLUCOSE = 'BLOOD_GLUCOSE',
5
+ BLOOD_OXYGEN = 'BLOOD_OXYGEN',
6
+ BLOOD_PRESSURE = 'BLOOD_PRESSURE',
7
+ BODY_COMPOSITION = 'BODY_COMPOSITION',
8
+ EXERCISE = 'EXERCISE',
9
+ EXERCISE_LOCATION = 'EXERCISE_LOCATION',
10
+ FLOORS_CLIMBED = 'FLOORS_CLIMBED',
11
+ HEART_RATE = 'HEART_RATE',
12
+ NUTRITION = 'NUTRITION',
13
+ SLEEP = 'SLEEP',
14
+ STEPS = 'STEPS',
15
+ WATER_INTAKE = 'WATER_INTAKE',
16
+ }
@@ -0,0 +1,66 @@
1
+ import type {
2
+ HrGranularData,
3
+ SaturationGranularData,
4
+ HrvRmssdGranularData,
5
+ HrvSdnnGranularData,
6
+ TemperatureObject,
7
+ TemperatureGranularData,
8
+ } from './SummaryTypes';
9
+
10
+ export interface BreathingGranularData {
11
+ dateTime: string;
12
+ breathsPerMin: number;
13
+ }
14
+
15
+ export interface SnoringGranularData {
16
+ dateTime: string;
17
+ intervalDurationSeconds: number;
18
+ snoringEventsCount: number;
19
+ }
20
+
21
+ export interface SleepSummary {
22
+ dateTime: string;
23
+ sourceOfData: string;
24
+ wasTheUserUnderPhysicalActivity: boolean;
25
+ sleepStartDateTime: string;
26
+ sleepEndDateTime: string;
27
+ sleepDate: string;
28
+ sleepDurationSeconds: number | null;
29
+ timeInBedSeconds: number | null;
30
+ lightSleepDurationSeconds: number | null;
31
+ remSleepDurationSeconds: number | null;
32
+ deepSleepDurationSeconds: number | null;
33
+ timeToFallAsleepSeconds: number | null;
34
+ timeAwakeDuringSleepSeconds: number | null;
35
+ sleepQualityRating1To5Score: number | null;
36
+ sleepEfficiency1To100Score: number | null;
37
+ sleepGoalSeconds: number | null;
38
+ sleepContinuity1To5Score: number | null;
39
+ sleepContinuity1To5Rating: number | null;
40
+ hrMaximumBpm: number | null;
41
+ hrMinimumBpm: number | null;
42
+ hrAvgBpm: number | null;
43
+ hrRestingBpm: number | null;
44
+ hrBasalBpm: number | null;
45
+ hrGranularData: HrGranularData[] | null;
46
+ hrvAvgRmssd: number | null;
47
+ hrvAvgSdnn: number | null;
48
+ hrvSdnnGranularData: HrvSdnnGranularData[] | null;
49
+ hrvRmssdGranularData: HrvRmssdGranularData[] | null;
50
+ temperatureMinimum: TemperatureObject | null;
51
+ temperatureAvg: TemperatureObject | null;
52
+ temperatureMaximum: TemperatureObject | null;
53
+ temperatureGranularData: TemperatureGranularData[] | null;
54
+ temperatureDelta: TemperatureObject | null;
55
+ breathsMinimumPerMin: number | null;
56
+ breathsAvgPerMin: number | null;
57
+ breathsMaximumPerMin: number | null;
58
+ breathingGranularData: BreathingGranularData[] | null;
59
+ snoringEventsCount: number | null;
60
+ snoringDurationTotalSeconds: number | null;
61
+ snoringGranularData: SnoringGranularData[] | null;
62
+ saturationAvgPercentage: number | null;
63
+ saturationMinimumPercentage: number | null;
64
+ saturationMaximumPercentage: number | null;
65
+ saturationGranularData: SaturationGranularData[] | null;
66
+ }
@@ -0,0 +1,70 @@
1
+ export interface ActivityLevelGranularData {
2
+ dateTime: string;
3
+ activityLevel: number;
4
+ }
5
+
6
+ export interface ElevationGranularData {
7
+ dateTime: string;
8
+ intervalDurationSeconds: number;
9
+ elevationChangeMeters: number;
10
+ }
11
+
12
+ export interface FloorsClimbedGranularData {
13
+ dateTime: string;
14
+ intervalDurationSeconds: number;
15
+ floorsClimbed: number;
16
+ }
17
+
18
+ export interface HrGranularData {
19
+ dateTime: string;
20
+ hrBpm: number;
21
+ }
22
+
23
+ export interface HrvSdnnGranularData {
24
+ dateTime: string;
25
+ hrvSdnn: number;
26
+ }
27
+
28
+ export interface HrvRmssdGranularData {
29
+ dateTime: string;
30
+ hrvRmssd: number;
31
+ }
32
+
33
+ export interface SaturationGranularData {
34
+ dateTime: string;
35
+ saturationPercentage: number;
36
+ }
37
+
38
+ export interface Vo2GranularData {
39
+ dateTime: string;
40
+ vo2MlPerMinPerKg: number;
41
+ }
42
+
43
+ export interface TemperatureObject {
44
+ temperatureCelsius: number;
45
+ measurementType: string;
46
+ }
47
+
48
+ export interface TemperatureGranularData {
49
+ dateTime: string;
50
+ temperatureCelsius: number;
51
+ measurementType: string;
52
+ }
53
+
54
+ export interface TraveledDistanceGranularData {
55
+ dateTime: string;
56
+ intervalDurationSeconds: number;
57
+ traveledDistanceMeters: number;
58
+ }
59
+
60
+ export interface StepsGranularData {
61
+ dateTime: string;
62
+ intervalDurationSeconds: number;
63
+ steps: number;
64
+ }
65
+
66
+ export interface SwimmingDistanceGranularData {
67
+ dateTime: string;
68
+ intervalDurationSeconds: number;
69
+ swimmingDistanceMeters: number;
70
+ }
@@ -0,0 +1,63 @@
1
+ import { SDKDataSource } from './SDKSources';
2
+
3
+ export type SyncParams = {
4
+ date: string;
5
+ summary?: SyncSummaryType;
6
+ sources: SDKDataSource[];
7
+ };
8
+
9
+ export type SyncEventParams = {
10
+ date: string;
11
+ sources: SDKDataSource[];
12
+ event:
13
+ | SharedHealthEvents
14
+ | UniqueAppleHealthEvents
15
+ | UniqueSamsungHealthEvents
16
+ | UniqueHealthConnectEvents;
17
+ };
18
+
19
+ export type SyncSummaryType = 'sleep' | 'body' | 'physical';
20
+
21
+ export type SyncResult = {
22
+ healthConnect?: SyncSourceResult;
23
+ appleHealth?: SyncSourceResult;
24
+ samsungHealth?: SyncSourceResult;
25
+ };
26
+
27
+ export type RookError = {
28
+ code: string;
29
+ message: string;
30
+ };
31
+
32
+ export type SyncSourceResult = {
33
+ status: boolean;
34
+ error: Error | { domain: string } | RookError;
35
+ };
36
+
37
+ export type Callback = (result: SyncResult) => void;
38
+
39
+ export enum SharedHealthEvents {
40
+ ACTIVITY = 'ACTIVITY',
41
+ HEART_RATE = 'HEART_RATE',
42
+ OXYGENATION = 'OXYGENATION',
43
+ BLOOD_PRESSURE = 'BLOOD_PRESSURE',
44
+ BLOOD_GLUCOSE = 'BLOOD_GLUCOSE',
45
+ CALORIES = 'CALORIES',
46
+ STEPS = 'STEPS',
47
+ BODY_METRICS = 'BODY_METRICS',
48
+ }
49
+
50
+ export enum UniqueHealthConnectEvents {
51
+ TEMPERATURE = 'TEMPERATURE',
52
+ HYDRATION = 'HYDRATION',
53
+ NUTRITION = 'NUTRITION',
54
+ }
55
+
56
+ export enum UniqueSamsungHealthEvents {
57
+ HYDRATION = 'HYDRATION',
58
+ NUTRITION = 'NUTRITION',
59
+ }
60
+
61
+ export enum UniqueAppleHealthEvents {
62
+ TEMPERATURE = 'TEMPERATURE',
63
+ }
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Represents the type of meal consumed.
3
+ * These strings must match the Kotlin HCMealDataType enum.
4
+ */
5
+ export enum MealDataType {
6
+ BREAKFAST = 'BREAKFAST',
7
+ LUNCH = 'LUNCH',
8
+ DINNER = 'DINNER',
9
+ SNACK = 'SNACK',
10
+ }
11
+
12
+ export interface WriteNutrition {
13
+ // Metadata
14
+ name: string;
15
+ date: string; // Must be ISO-8601
16
+ mealType?: MealDataType;
17
+
18
+ // Apple Health specific root values
19
+ amount?: number;
20
+ unit?: number;
21
+
22
+ // Unified Nutrients (Flat list)
23
+ biotin?: number;
24
+ caffeine?: number;
25
+ calcium?: number;
26
+ calories?: number;
27
+ caloriesFromFat?: number;
28
+ chloride?: number;
29
+ cholesterol?: number;
30
+ chromium?: number;
31
+ copper?: number;
32
+ dietaryFiber?: number;
33
+ folate?: number;
34
+ folicAcid?: number;
35
+ iodine?: number;
36
+ iron?: number;
37
+ magnesium?: number;
38
+ manganese?: number;
39
+ molybdenum?: number;
40
+ monounsaturatedFat?: number;
41
+ niacin?: number;
42
+ pantothenicAcid?: number;
43
+ phosphorus?: number;
44
+ polyunsaturatedFat?: number;
45
+ potassium?: number;
46
+ protein?: number;
47
+ riboflavin?: number;
48
+ saturatedFat?: number;
49
+ selenium?: number;
50
+ sodium?: number;
51
+ sugar?: number;
52
+ thiamin?: number;
53
+ totalCarbohydrates?: number;
54
+ totalFat?: number;
55
+ transFat?: number;
56
+ unsaturatedFat?: number;
57
+ vitaminA?: number;
58
+ vitaminB12?: number;
59
+ vitaminB6?: number;
60
+ vitaminC?: number;
61
+ vitaminD?: number;
62
+ vitaminE?: number;
63
+ vitaminK?: number;
64
+ water?: number; // iOS specific
65
+ zinc?: number;
66
+ }
@@ -1,19 +1,13 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.isModuleReady = void 0;
7
1
  /**
8
2
  * The function `isModuleReady` checks if a module is ready and throws an error if it is not.
9
3
  * @param {boolean} ready - The `ready` parameter in the `isModuleReady` function is a boolean value
10
4
  * that indicates whether a certain module or hook is ready for use. If `ready` is `true`, it means the
11
5
  * module is ready, and if `ready` is `false`, it means the module is not
12
6
  */
13
- const isModuleReady = ready => {
7
+ export const isModuleReady = (ready: boolean): void => {
14
8
  if (!ready) {
15
- throw new Error('The hook is not ready, please check your credentials and link of the package');
9
+ throw new Error(
10
+ 'The hook is not ready, please check your credentials and link of the package'
11
+ );
16
12
  }
17
13
  };
18
- exports.isModuleReady = isModuleReady;
19
- //# sourceMappingURL=isModuleReady.js.map
@@ -0,0 +1,10 @@
1
+ import { Platform } from 'react-native';
2
+
3
+ const ERROR_MESSAGE =
4
+ 'This method is only available on Android because it is not supported on iOS';
5
+
6
+ export default () => {
7
+ if (Platform.OS !== 'android') {
8
+ throw new Error(ERROR_MESSAGE);
9
+ }
10
+ };
@@ -0,0 +1,10 @@
1
+ import { Platform } from 'react-native';
2
+
3
+ const ERROR_MESSAGE =
4
+ 'This method is only available on iOS because it is not supported on Android';
5
+
6
+ export const isRunningOniOS = () => {
7
+ if (Platform.OS !== 'ios') {
8
+ throw new Error(ERROR_MESSAGE);
9
+ }
10
+ };
@@ -1,19 +1,16 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.isValidZonedDateTime = exports.isValidDate = void 0;
7
1
  /**
8
2
  * The isValidDate function in TypeScript validates if a given date string is in the format YYYY-MM-DD.
9
3
  * @param {string} date - The `isValidDate` function you provided checks if a given date string is in
10
4
  * the format `YYYY-MM-DD`. If the date string does not match this format, it throws an error
11
5
  * indicating the correct format.
12
6
  */
13
- const isValidDate = date => {
7
+ export const isValidDate = (date: string) => {
14
8
  const regex = /^\d{4}-\d{2}-\d{2}$/;
9
+
15
10
  if (!regex.test(date)) {
16
- throw new Error(`Invalid format: ${date}, the correct format is YYYY-MM-DD`);
11
+ throw new Error(
12
+ `Invalid format: ${date}, the correct format is YYYY-MM-DD`
13
+ );
17
14
  }
18
15
  };
19
16
 
@@ -24,12 +21,15 @@ const isValidDate = date => {
24
21
  * - 2026-02-23T12:00:00+01:00
25
22
  * - 2026-02-23T12:00:00.000-06:00
26
23
  */
27
- exports.isValidDate = isValidDate;
28
- const isValidZonedDateTime = date => {
24
+ export const isValidZonedDateTime = (date: string) => {
29
25
  // Regex for ISO 8601 with Timezone
30
- const isoRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})$/;
26
+ const isoRegex =
27
+ /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})$/;
28
+
31
29
  if (!isoRegex.test(date)) {
32
- throw new Error(`Invalid format: ${date}. Expected ISO-8601 with Timezone (e.g., YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss+HH:mm)`);
30
+ throw new Error(
31
+ `Invalid format: ${date}. Expected ISO-8601 with Timezone (e.g., YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss+HH:mm)`
32
+ );
33
33
  }
34
34
 
35
35
  // Also verify it's a valid calendar date
@@ -37,5 +37,3 @@ const isValidZonedDateTime = date => {
37
37
  throw new Error(`Invalid date value: ${date}`);
38
38
  }
39
39
  };
40
- exports.isValidZonedDateTime = isValidZonedDateTime;
41
- //# sourceMappingURL=isValidDate.js.map
@@ -1,36 +0,0 @@
1
- <manifest xmlns:android="http://schemas.android.com/apk/res/android">
2
- <queries>
3
- <package android:name="com.google.android.apps.healthdata"/>
4
- </queries>
5
-
6
- <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
7
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
8
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_HEALTH"/>
9
- <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
10
- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
11
-
12
- <uses-permission android:name="android.permission.health.READ_SLEEP"/>
13
- <uses-permission android:name="android.permission.health.READ_STEPS"/>
14
- <uses-permission android:name="android.permission.health.READ_DISTANCE"/>
15
- <uses-permission android:name="android.permission.health.READ_FLOORS_CLIMBED"/>
16
- <uses-permission android:name="android.permission.health.READ_ELEVATION_GAINED"/>
17
- <uses-permission android:name="android.permission.health.READ_OXYGEN_SATURATION"/>
18
- <uses-permission android:name="android.permission.health.READ_VO2_MAX"/>
19
- <uses-permission android:name="android.permission.health.READ_TOTAL_CALORIES_BURNED"/>
20
- <uses-permission android:name="android.permission.health.READ_ACTIVE_CALORIES_BURNED"/>
21
- <uses-permission android:name="android.permission.health.READ_HEART_RATE"/>
22
- <uses-permission android:name="android.permission.health.READ_RESTING_HEART_RATE"/>
23
- <uses-permission android:name="android.permission.health.READ_HEART_RATE_VARIABILITY"/>
24
- <uses-permission android:name="android.permission.health.READ_EXERCISE"/>
25
- <uses-permission android:name="android.permission.health.READ_SPEED"/>
26
- <uses-permission android:name="android.permission.health.READ_WEIGHT"/>
27
- <uses-permission android:name="android.permission.health.READ_HEIGHT"/>
28
- <uses-permission android:name="android.permission.health.READ_BLOOD_GLUCOSE"/>
29
- <uses-permission android:name="android.permission.health.READ_BLOOD_PRESSURE"/>
30
- <uses-permission android:name="android.permission.health.READ_HYDRATION"/>
31
- <uses-permission android:name="android.permission.health.READ_BODY_TEMPERATURE"/>
32
- <uses-permission android:name="android.permission.health.READ_RESPIRATORY_RATE"/>
33
- <uses-permission android:name="android.permission.health.READ_NUTRITION"/>
34
- <uses-permission android:name="android.permission.health.READ_MENSTRUATION"/>
35
- <uses-permission android:name="android.permission.health.READ_POWER"/>
36
- </manifest>
@@ -1,99 +0,0 @@
1
- package com.rooksdk.modules
2
-
3
- import com.facebook.react.bridge.Promise
4
- import com.facebook.react.bridge.ReactApplicationContext
5
- import com.facebook.react.bridge.ReactContextBaseJavaModule
6
- import com.facebook.react.bridge.ReactMethod
7
- import com.rookmotion.rook.sdk.RookBackgroundSyncManager
8
- import com.rookmotion.rook.sdk.domain.exception.HCException
9
- import io.tryrook.api.sources.domain.exception.ApiException
10
- import kotlinx.coroutines.CoroutineScope
11
- import kotlinx.coroutines.Dispatchers
12
- import kotlinx.coroutines.SupervisorJob
13
- import kotlinx.coroutines.launch
14
-
15
- class RookBackgroundSyncModule (reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) {
16
-
17
- private val backgroundSyncManager = RookBackgroundSyncManager(reactContext)
18
-
19
- private val scope: CoroutineScope by lazy {
20
- CoroutineScope(SupervisorJob() + Dispatchers.Main)
21
- }
22
-
23
- override fun getName(): String {
24
- return "RookBackgroundModule"
25
- }
26
-
27
- /**
28
- * Schedules the background synchronization of health data using Rook.
29
- *
30
- * This function enables automatic background data synchronization with Rook.
31
- * It ensures that health data is periodically fetched and sent to Rook’s API
32
- * based on the defined configuration.
33
- *
34
- * If the scheduling is successful, the promise resolves with "SUCCESS".
35
- * If an error occurs, the promise rejects with an error message.
36
- *
37
- * @param promise A React Native promise that resolves when the sync is scheduled successfully or rejects with an error.
38
- */
39
- @ReactMethod
40
- fun scheduleBackgroundSync(enableLogs: Boolean, promise: Promise) {
41
- try {
42
- backgroundSyncManager.schedule(enableLogs)
43
- promise.resolve(true)
44
- }
45
- catch (e: Exception) {
46
- if (e is HCException) {
47
- promise.reject(e.code.toString(), e.message, e)
48
- } else {
49
- promise.reject("1001", e.message, e)
50
- }
51
- }
52
-
53
- }
54
-
55
- /**
56
- * Cancels the scheduled background synchronization of health data.
57
- *
58
- * This function stops the automatic background sync previously scheduled using Rook.
59
- * It ensures that no further health data is fetched and sent until scheduled again.
60
- *
61
- * If the cancellation is successful, the promise resolves with "SUCCESS".
62
- * If an error occurs, the promise rejects with an error message.
63
- *
64
- * @param promise A React Native promise that resolves when the sync is canceled successfully or rejects with an error.
65
- */
66
- @ReactMethod
67
- fun cancelBackgroundSync(promise: Promise) {
68
- scope.launch {
69
- try {
70
- backgroundSyncManager.cancel()
71
- promise.resolve(true)
72
- } catch (e: Exception) {
73
- if (e is HCException) {
74
- promise.reject(e.code.toString(), e.message, e)
75
- } else {
76
- promise.reject("1001", e.message, e)
77
- }
78
- }
79
- }
80
- }
81
-
82
- @ReactMethod
83
- fun isBackgroundSyncEnabled(promise: Promise) {
84
- scope.launch {
85
- backgroundSyncManager.isScheduled().fold(
86
- {
87
- promise.resolve(it)
88
- },
89
- {
90
- if (it is HCException) {
91
- promise.reject(it.code.toString(), it.message, it)
92
- } else {
93
- promise.reject("1001", it.message, it)
94
- }
95
- }
96
- )
97
- }
98
- }
99
- }