react-native-rook-sdk 2.1.2 → 4.0.0-beta.1

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 (335) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +35 -3
  3. package/RNRookSdk.podspec +22 -0
  4. package/android/build.gradle +20 -41
  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 +11 -222
  8. package/android/src/main/java/com/rooksdk/RookSdkPackage.kt +24 -33
  9. package/ios/DateHelper.swift +55 -0
  10. package/ios/Encodable.swift +25 -0
  11. package/ios/EncodableDataSource.swift +5 -6
  12. package/ios/EncodableDataSourceAuthorizer.swift +3 -4
  13. package/ios/HearRateMapper.swift +42 -0
  14. package/ios/RookBackground.swift +35 -0
  15. package/ios/RookConfiguration.swift +116 -0
  16. package/ios/RookData.swift +170 -0
  17. package/ios/RookEntry.swift +61 -0
  18. package/ios/RookPermissions.swift +78 -0
  19. package/ios/RookSdk-Bridging-Header.h +12 -0
  20. package/ios/RookSdk.h +14 -2
  21. package/ios/RookSdk.mm +549 -81
  22. package/ios/RookSources.swift +74 -116
  23. package/ios/RookSync.swift +126 -34
  24. package/ios/boost-boost_privacy-Bridging-Header.h +4 -0
  25. package/lib/module/NativeRookSdk.js +95 -0
  26. package/lib/module/NativeRookSdk.js.map +1 -0
  27. package/lib/module/context/RookSyncGateContext.js +2 -0
  28. package/lib/module/context/RookSyncGateContext.js.map +1 -1
  29. package/lib/module/context/RookSyncGateProvider.js +16 -15
  30. package/lib/module/context/RookSyncGateProvider.js.map +1 -1
  31. package/lib/module/context/RookSyncGateReducer.js +2 -0
  32. package/lib/module/context/RookSyncGateReducer.js.map +1 -1
  33. package/lib/module/context/RookSyncGateTypes.js +2 -0
  34. package/lib/module/hooks/useRookAPISources.js +66 -0
  35. package/lib/module/hooks/useRookAPISources.js.map +1 -0
  36. package/lib/module/hooks/useRookAndroidBackgroundSteps.js +12 -25
  37. package/lib/module/hooks/useRookAndroidBackgroundSteps.js.map +1 -1
  38. package/lib/module/hooks/useRookAppleHealth.js +11 -23
  39. package/lib/module/hooks/useRookAppleHealth.js.map +1 -1
  40. package/lib/module/hooks/useRookConfiguration.js +10 -109
  41. package/lib/module/hooks/useRookConfiguration.js.map +1 -1
  42. package/lib/module/hooks/useRookData.js +35 -33
  43. package/lib/module/hooks/useRookData.js.map +1 -1
  44. package/lib/module/hooks/useRookHealthConnect.js +9 -10
  45. package/lib/module/hooks/useRookHealthConnect.js.map +1 -1
  46. package/lib/module/hooks/useRookPermissions.js +39 -77
  47. package/lib/module/hooks/useRookPermissions.js.map +1 -1
  48. package/lib/module/hooks/useRookSamsungHealth.js +35 -0
  49. package/lib/module/hooks/useRookSamsungHealth.js.map +1 -0
  50. package/lib/module/hooks/useRookSync.js +23 -31
  51. package/lib/module/hooks/useRookSync.js.map +1 -1
  52. package/lib/module/hooks/useRookVariables.js +24 -18
  53. package/lib/module/hooks/useRookVariables.js.map +1 -1
  54. package/lib/module/index.js +18 -5
  55. package/lib/module/index.js.map +1 -1
  56. package/lib/module/modules/hook/useRookAutoSync.js +22 -36
  57. package/lib/module/modules/hook/useRookAutoSync.js.map +1 -1
  58. package/lib/module/modules/types/sendMessageBroadcast.js +1 -1
  59. package/lib/module/modules/utils/errors.js +2 -0
  60. package/lib/module/modules/utils/errors.js.map +1 -1
  61. package/lib/module/package.json +1 -0
  62. package/lib/module/types/ActivityEvent.js +2 -0
  63. package/lib/module/types/AppleHealthPermissions.js +53 -0
  64. package/lib/module/types/AppleHealthPermissions.js.map +1 -0
  65. package/lib/module/types/AuthorizedSources.js +2 -0
  66. package/lib/module/types/BodySummary.js +2 -0
  67. package/lib/module/types/DataSource.js +10 -0
  68. package/lib/module/types/DataSource.js.map +1 -1
  69. package/lib/module/types/HeartRateEvent.js +2 -0
  70. package/lib/{commonjs/types/DataSource.js.map → module/types/HeartRateEvent.js.map} +1 -1
  71. package/lib/module/types/PermissionsType.js +1 -1
  72. package/lib/module/types/PhysicalSummary.js +2 -0
  73. package/lib/module/types/Rook.js +2 -0
  74. package/lib/{commonjs/types/SyncTypes.js.map → module/types/Rook.js.map} +1 -1
  75. package/lib/module/types/SDKSources.js +2 -0
  76. package/lib/module/types/SDKSources.js.map +1 -1
  77. package/lib/module/types/SamsungHealthPermissions.js +3 -0
  78. package/lib/module/types/SamsungHealthPermissions.js.map +1 -1
  79. package/lib/module/types/SleepSummary.js +2 -0
  80. package/lib/module/types/SummaryTypes.js +1 -1
  81. package/lib/module/types/SyncTypes.js +28 -1
  82. package/lib/module/types/SyncTypes.js.map +1 -1
  83. package/lib/module/utils/isModuleReady.js +2 -0
  84. package/lib/module/utils/isModuleReady.js.map +1 -1
  85. package/lib/module/utils/isRunningOnAndroid.js +2 -0
  86. package/lib/module/utils/isRunningOnAndroid.js.map +1 -1
  87. package/lib/module/utils/isRunningOniOS.js +2 -0
  88. package/lib/module/utils/isRunningOniOS.js.map +1 -1
  89. package/lib/module/utils/isValidDate.js +2 -0
  90. package/lib/module/utils/isValidDate.js.map +1 -1
  91. package/lib/typescript/package.json +1 -0
  92. package/lib/typescript/src/NativeRookSdk.d.ts +190 -0
  93. package/lib/typescript/src/NativeRookSdk.d.ts.map +1 -0
  94. package/lib/typescript/src/context/RookSyncGateContext.d.ts.map +1 -1
  95. package/lib/typescript/src/context/RookSyncGateProvider.d.ts.map +1 -1
  96. package/lib/typescript/src/context/RookSyncGateReducer.d.ts.map +1 -1
  97. package/lib/typescript/src/hooks/useRookAPISources.d.ts +15 -0
  98. package/lib/typescript/src/hooks/useRookAPISources.d.ts.map +1 -0
  99. package/lib/typescript/src/hooks/useRookAndroidBackgroundSteps.d.ts +0 -1
  100. package/lib/typescript/src/hooks/useRookAndroidBackgroundSteps.d.ts.map +1 -1
  101. package/lib/typescript/src/hooks/useRookAppleHealth.d.ts +1 -2
  102. package/lib/typescript/src/hooks/useRookAppleHealth.d.ts.map +1 -1
  103. package/lib/typescript/src/hooks/useRookConfiguration.d.ts +0 -8
  104. package/lib/typescript/src/hooks/useRookConfiguration.d.ts.map +1 -1
  105. package/lib/typescript/src/hooks/useRookData.d.ts +2 -0
  106. package/lib/typescript/src/hooks/useRookData.d.ts.map +1 -1
  107. package/lib/typescript/src/hooks/useRookHealthConnect.d.ts.map +1 -1
  108. package/lib/typescript/src/hooks/useRookPermissions.d.ts +11 -12
  109. package/lib/typescript/src/hooks/useRookPermissions.d.ts.map +1 -1
  110. package/lib/typescript/src/hooks/useRookSamsungHealth.d.ts +7 -0
  111. package/lib/typescript/src/hooks/useRookSamsungHealth.d.ts.map +1 -0
  112. package/lib/typescript/src/hooks/useRookSync.d.ts.map +1 -1
  113. package/lib/typescript/src/hooks/useRookVariables.d.ts.map +1 -1
  114. package/lib/typescript/src/index.d.ts +19 -4
  115. package/lib/typescript/src/index.d.ts.map +1 -1
  116. package/lib/typescript/src/modules/hook/useRookAutoSync.d.ts.map +1 -1
  117. package/lib/typescript/src/types/AppleHealthPermissions.d.ts +50 -0
  118. package/lib/typescript/src/types/AppleHealthPermissions.d.ts.map +1 -0
  119. package/lib/typescript/src/types/AuthorizedSources.d.ts +3 -3
  120. package/lib/typescript/src/types/AuthorizedSources.d.ts.map +1 -1
  121. package/lib/typescript/src/types/DataSource.d.ts +8 -1
  122. package/lib/typescript/src/types/DataSource.d.ts.map +1 -1
  123. package/lib/typescript/src/types/HeartRateEvent.d.ts +24 -0
  124. package/lib/typescript/src/types/HeartRateEvent.d.ts.map +1 -0
  125. package/lib/typescript/src/types/PermissionsType.d.ts +0 -4
  126. package/lib/typescript/src/types/PermissionsType.d.ts.map +1 -1
  127. package/lib/typescript/src/types/Rook.d.ts +9 -0
  128. package/lib/typescript/src/types/Rook.d.ts.map +1 -0
  129. package/lib/typescript/src/types/SamsungHealthPermissions.d.ts +1 -0
  130. package/lib/typescript/src/types/SamsungHealthPermissions.d.ts.map +1 -1
  131. package/lib/typescript/src/types/SyncTypes.d.ts +28 -5
  132. package/lib/typescript/src/types/SyncTypes.d.ts.map +1 -1
  133. package/lib/typescript/src/utils/isModuleReady.d.ts.map +1 -1
  134. package/lib/typescript/src/utils/isValidDate.d.ts.map +1 -1
  135. package/package.json +94 -98
  136. package/src/NativeRookSdk.ts +281 -0
  137. package/{lib/commonjs/context/RookSyncGateContext.js → src/context/RookSyncGateContext.ts} +10 -13
  138. package/src/context/RookSyncGateProvider.tsx +78 -0
  139. package/{lib/commonjs/context/RookSyncGateReducer.js → src/context/RookSyncGateReducer.ts} +12 -33
  140. package/src/context/RookSyncGateTypes.ts +34 -0
  141. package/src/hooks/useRookAPISources.ts +83 -0
  142. package/src/hooks/useRookAndroidBackgroundSteps.ts +81 -0
  143. package/src/hooks/useRookAppleHealth.ts +55 -0
  144. package/src/hooks/useRookConfiguration.ts +82 -0
  145. package/src/hooks/useRookData.ts +122 -0
  146. package/src/hooks/useRookHealthConnect.ts +59 -0
  147. package/src/hooks/useRookPermissions.ts +224 -0
  148. package/src/hooks/useRookSamsungHealth.ts +37 -0
  149. package/src/hooks/useRookSync.ts +157 -0
  150. package/src/hooks/useRookVariables.ts +77 -0
  151. package/src/index.tsx +28 -0
  152. package/src/modules/hook/useRookAutoSync.ts +305 -0
  153. package/src/modules/types/sendMessageBroadcast.ts +5 -0
  154. package/src/modules/utils/errors.ts +9 -0
  155. package/src/types/ActivityEvent.ts +159 -0
  156. package/src/types/AppleHealthPermissions.ts +49 -0
  157. package/src/types/AuthorizedSources.ts +33 -0
  158. package/src/types/BodySummary.ts +116 -0
  159. package/src/types/DataSource.ts +16 -0
  160. package/src/types/HeartRateEvent.ts +26 -0
  161. package/src/types/PermissionsType.ts +9 -0
  162. package/src/types/PhysicalSummary.ts +84 -0
  163. package/src/types/Rook.ts +8 -0
  164. package/src/types/SDKSources.ts +5 -0
  165. package/src/types/SamsungHealthPermissions.ts +16 -0
  166. package/src/types/SleepSummary.ts +66 -0
  167. package/src/types/SummaryTypes.ts +70 -0
  168. package/src/types/SyncTypes.ts +63 -0
  169. package/{lib/commonjs/utils/isModuleReady.js → src/utils/isModuleReady.ts} +4 -10
  170. package/src/utils/isRunningOnAndroid.ts +10 -0
  171. package/src/utils/isRunningOniOS.ts +10 -0
  172. package/{lib/commonjs/utils/isValidDate.js → src/utils/isValidDate.ts} +5 -10
  173. package/android/src/main/AndroidManifestNew.xml +0 -36
  174. package/android/src/main/java/com/rooksdk/broadcasts/AndroidPermissionsReceiverTransmitter.kt +0 -65
  175. package/android/src/main/java/com/rooksdk/broadcasts/HealthConnectPermissionsReceiverTransmitter.kt +0 -70
  176. package/android/src/main/java/com/rooksdk/broadcasts/SamsungHealthPermissionsReceiverTransmitter.kt +0 -52
  177. package/android/src/main/java/com/rooksdk/modules/RookBackgroundSyncModule.kt +0 -85
  178. package/android/src/main/java/com/rooksdk/modules/RookConfigurationModule.kt +0 -148
  179. package/android/src/main/java/com/rooksdk/modules/RookLocalData.kt +0 -247
  180. package/android/src/main/java/com/rooksdk/modules/RookPermissionsModule.kt +0 -309
  181. package/android/src/main/java/com/rooksdk/modules/RookStepsModule.kt +0 -105
  182. package/android/src/main/java/com/rooksdk/modules/RookSyncModule.kt +0 -496
  183. package/android/src/main/java/com/rooksdk/utils/DatasourcesUtils.kt +0 -63
  184. package/android/src/main/java/com/rooksdk/utils/PermissionConversion.kt +0 -21
  185. package/android/src/main/java/com/rooksdk/utils/ReadableToWritable.kt +0 -64
  186. package/android/src/main/java/com/rooksdk/utils/RookDateTime.kt +0 -20
  187. package/android/src/main/java/com/rooksdk/utils/SamsungAvailability.kt +0 -21
  188. package/android/src/main/java/com/rooksdk/utils/Source.kt +0 -6
  189. package/android/src/main/java/com/rooksdk/utils/StringToSyncType.kt +0 -58
  190. package/android/src/main/java/com/rooksdk/utils/serializers/InstantSerializer.kt +0 -19
  191. package/android/src/main/java/com/rooksdk/utils/serializers/LocalDateSerializer.kt +0 -21
  192. package/android/src/main/res/drawable/ic_health_connect.xml +0 -19
  193. package/android/src/main/res/values/themes.xml +0 -3
  194. package/ios/EncodableRookDataSource.swift +0 -36
  195. package/ios/EncodableStatusDataSources.swift +0 -47
  196. package/ios/RookBackgroundModule.h +0 -5
  197. package/ios/RookBackgroundModule.mm +0 -89
  198. package/ios/RookConfigurationModule.h +0 -5
  199. package/ios/RookConfigurationModule.mm +0 -163
  200. package/ios/RookExternalModule.h +0 -5
  201. package/ios/RookExternalModule.m +0 -27
  202. package/ios/RookLocalData.swift +0 -152
  203. package/ios/RookPermissionsModule.h +0 -5
  204. package/ios/RookPermissionsModule.mm +0 -180
  205. package/ios/RookSourcesModule.h +0 -5
  206. package/ios/RookSourcesModule.mm +0 -67
  207. package/ios/RookSync.h +0 -5
  208. package/ios/RookSync.m +0 -27
  209. package/ios/RookSyncModule.h +0 -5
  210. package/ios/RookSyncModule.mm +0 -476
  211. package/ios/SwiftTest.swift +0 -18
  212. package/ios/react-native-rook-sdk-Bridging-Header.h +0 -12
  213. package/lib/commonjs/context/RookSyncGateContext.js.map +0 -1
  214. package/lib/commonjs/context/RookSyncGateProvider.js +0 -98
  215. package/lib/commonjs/context/RookSyncGateProvider.js.map +0 -1
  216. package/lib/commonjs/context/RookSyncGateReducer.js.map +0 -1
  217. package/lib/commonjs/context/RookSyncGateTypes.js +0 -6
  218. package/lib/commonjs/context/RookSyncGateTypes.js.map +0 -1
  219. package/lib/commonjs/context/index.js +0 -14
  220. package/lib/commonjs/context/index.js.map +0 -1
  221. package/lib/commonjs/hooks/index.js +0 -90
  222. package/lib/commonjs/hooks/index.js.map +0 -1
  223. package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js +0 -100
  224. package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js.map +0 -1
  225. package/lib/commonjs/hooks/useRookAppleHealth.js +0 -74
  226. package/lib/commonjs/hooks/useRookAppleHealth.js.map +0 -1
  227. package/lib/commonjs/hooks/useRookAppleHealthVariables.js +0 -48
  228. package/lib/commonjs/hooks/useRookAppleHealthVariables.js.map +0 -1
  229. package/lib/commonjs/hooks/useRookConfiguration.js +0 -188
  230. package/lib/commonjs/hooks/useRookConfiguration.js.map +0 -1
  231. package/lib/commonjs/hooks/useRookData.js +0 -100
  232. package/lib/commonjs/hooks/useRookData.js.map +0 -1
  233. package/lib/commonjs/hooks/useRookDataSources.js +0 -118
  234. package/lib/commonjs/hooks/useRookDataSources.js.map +0 -1
  235. package/lib/commonjs/hooks/useRookEvents.js +0 -225
  236. package/lib/commonjs/hooks/useRookEvents.js.map +0 -1
  237. package/lib/commonjs/hooks/useRookHealthConnect.js +0 -70
  238. package/lib/commonjs/hooks/useRookHealthConnect.js.map +0 -1
  239. package/lib/commonjs/hooks/useRookPermissions.js +0 -226
  240. package/lib/commonjs/hooks/useRookPermissions.js.map +0 -1
  241. package/lib/commonjs/hooks/useRookSummaries.js +0 -85
  242. package/lib/commonjs/hooks/useRookSummaries.js.map +0 -1
  243. package/lib/commonjs/hooks/useRookSync.js +0 -147
  244. package/lib/commonjs/hooks/useRookSync.js.map +0 -1
  245. package/lib/commonjs/hooks/useRookVariables.js +0 -69
  246. package/lib/commonjs/hooks/useRookVariables.js.map +0 -1
  247. package/lib/commonjs/index.js +0 -56
  248. package/lib/commonjs/index.js.map +0 -1
  249. package/lib/commonjs/modules/hook/useRookAutoSync.js +0 -262
  250. package/lib/commonjs/modules/hook/useRookAutoSync.js.map +0 -1
  251. package/lib/commonjs/modules/types/sendMessageBroadcast.js +0 -2
  252. package/lib/commonjs/modules/types/sendMessageBroadcast.js.map +0 -1
  253. package/lib/commonjs/modules/utils/errors.js +0 -12
  254. package/lib/commonjs/modules/utils/errors.js.map +0 -1
  255. package/lib/commonjs/types/ActivityEvent.js +0 -6
  256. package/lib/commonjs/types/ActivityEvent.js.map +0 -1
  257. package/lib/commonjs/types/AuthorizedSources.js +0 -2
  258. package/lib/commonjs/types/AuthorizedSources.js.map +0 -1
  259. package/lib/commonjs/types/BodySummary.js +0 -6
  260. package/lib/commonjs/types/BodySummary.js.map +0 -1
  261. package/lib/commonjs/types/DataSource.js +0 -2
  262. package/lib/commonjs/types/PermissionsType.js +0 -2
  263. package/lib/commonjs/types/PermissionsType.js.map +0 -1
  264. package/lib/commonjs/types/PhysicalSummary.js +0 -6
  265. package/lib/commonjs/types/PhysicalSummary.js.map +0 -1
  266. package/lib/commonjs/types/SDKSources.js +0 -13
  267. package/lib/commonjs/types/SDKSources.js.map +0 -1
  268. package/lib/commonjs/types/SamsungHealthPermissions.js +0 -23
  269. package/lib/commonjs/types/SamsungHealthPermissions.js.map +0 -1
  270. package/lib/commonjs/types/SleepSummary.js +0 -6
  271. package/lib/commonjs/types/SleepSummary.js.map +0 -1
  272. package/lib/commonjs/types/SummaryTypes.js +0 -2
  273. package/lib/commonjs/types/SummaryTypes.js.map +0 -1
  274. package/lib/commonjs/types/SyncTypes.js +0 -6
  275. package/lib/commonjs/utils/credentials.js +0 -12
  276. package/lib/commonjs/utils/credentials.js.map +0 -1
  277. package/lib/commonjs/utils/getNativeModule.js +0 -29
  278. package/lib/commonjs/utils/getNativeModule.js.map +0 -1
  279. package/lib/commonjs/utils/getRookModule.js +0 -28
  280. package/lib/commonjs/utils/getRookModule.js.map +0 -1
  281. package/lib/commonjs/utils/isModuleReady.js.map +0 -1
  282. package/lib/commonjs/utils/isRunningOnAndroid.js +0 -15
  283. package/lib/commonjs/utils/isRunningOnAndroid.js.map +0 -1
  284. package/lib/commonjs/utils/isRunningOniOS.js +0 -15
  285. package/lib/commonjs/utils/isRunningOniOS.js.map +0 -1
  286. package/lib/commonjs/utils/isValidDate.js.map +0 -1
  287. package/lib/commonjs/utils/nativeModules.js +0 -28
  288. package/lib/commonjs/utils/nativeModules.js.map +0 -1
  289. package/lib/commonjs/utils/packageInfo.js +0 -13
  290. package/lib/commonjs/utils/packageInfo.js.map +0 -1
  291. package/lib/module/context/index.js +0 -2
  292. package/lib/module/context/index.js.map +0 -1
  293. package/lib/module/hooks/index.js +0 -13
  294. package/lib/module/hooks/index.js.map +0 -1
  295. package/lib/module/hooks/useRookAppleHealthVariables.js +0 -41
  296. package/lib/module/hooks/useRookAppleHealthVariables.js.map +0 -1
  297. package/lib/module/hooks/useRookDataSources.js +0 -110
  298. package/lib/module/hooks/useRookDataSources.js.map +0 -1
  299. package/lib/module/hooks/useRookEvents.js +0 -218
  300. package/lib/module/hooks/useRookEvents.js.map +0 -1
  301. package/lib/module/hooks/useRookSummaries.js +0 -78
  302. package/lib/module/hooks/useRookSummaries.js.map +0 -1
  303. package/lib/module/utils/credentials.js +0 -6
  304. package/lib/module/utils/credentials.js.map +0 -1
  305. package/lib/module/utils/getNativeModule.js +0 -23
  306. package/lib/module/utils/getNativeModule.js.map +0 -1
  307. package/lib/module/utils/getRookModule.js +0 -22
  308. package/lib/module/utils/getRookModule.js.map +0 -1
  309. package/lib/module/utils/nativeModules.js +0 -22
  310. package/lib/module/utils/nativeModules.js.map +0 -1
  311. package/lib/module/utils/packageInfo.js +0 -7
  312. package/lib/module/utils/packageInfo.js.map +0 -1
  313. package/lib/typescript/src/context/index.d.ts +0 -2
  314. package/lib/typescript/src/context/index.d.ts.map +0 -1
  315. package/lib/typescript/src/hooks/index.d.ts +0 -13
  316. package/lib/typescript/src/hooks/index.d.ts.map +0 -1
  317. package/lib/typescript/src/hooks/useRookAppleHealthVariables.d.ts +0 -15
  318. package/lib/typescript/src/hooks/useRookAppleHealthVariables.d.ts.map +0 -1
  319. package/lib/typescript/src/hooks/useRookDataSources.d.ts +0 -22
  320. package/lib/typescript/src/hooks/useRookDataSources.d.ts.map +0 -1
  321. package/lib/typescript/src/hooks/useRookEvents.d.ts +0 -26
  322. package/lib/typescript/src/hooks/useRookEvents.d.ts.map +0 -1
  323. package/lib/typescript/src/hooks/useRookSummaries.d.ts +0 -14
  324. package/lib/typescript/src/hooks/useRookSummaries.d.ts.map +0 -1
  325. package/lib/typescript/src/utils/credentials.d.ts +0 -5
  326. package/lib/typescript/src/utils/credentials.d.ts.map +0 -1
  327. package/lib/typescript/src/utils/getNativeModule.d.ts +0 -10
  328. package/lib/typescript/src/utils/getNativeModule.d.ts.map +0 -1
  329. package/lib/typescript/src/utils/getRookModule.d.ts +0 -9
  330. package/lib/typescript/src/utils/getRookModule.d.ts.map +0 -1
  331. package/lib/typescript/src/utils/nativeModules.d.ts +0 -23
  332. package/lib/typescript/src/utils/nativeModules.d.ts.map +0 -1
  333. package/lib/typescript/src/utils/packageInfo.d.ts +0 -6
  334. package/lib/typescript/src/utils/packageInfo.d.ts.map +0 -1
  335. package/react-native-rook-sdk.podspec +0 -45
@@ -0,0 +1,26 @@
1
+ export interface HrGranularDataItem {
2
+ dateTime: string;
3
+ hrBPM: number;
4
+ }
5
+
6
+ export interface HrvSDNNGranularData {
7
+ dateTime: string;
8
+ hrvSDNN: number;
9
+ }
10
+
11
+ export interface HrvSDNNGranularData {
12
+ dateTime: string;
13
+ hrvRmssd: number;
14
+ }
15
+
16
+ export interface HeartRateData {
17
+ hrAverageBPM: number;
18
+ hrvSDNNGranularData: HrvSDNNGranularData[] | null;
19
+ hrGranularData: HrGranularDataItem[];
20
+ hrMinimumBPM: number;
21
+ hrRestingBPM: number | null;
22
+ hrMaximumBPM: number;
23
+ hrvAverageSDNN: number | null;
24
+ hrvRMSSDGranularData: HrvSDNNGranularData[] | null;
25
+ hrvAverageRMSSD: number | null;
26
+ }
@@ -0,0 +1,9 @@
1
+ export type PermissionStatus =
2
+ | 'PERMISSION_NOT_REQUESTED'
3
+ | 'PERMISSION_INDETERMINATE'
4
+ | 'PERMISSION_GRANTED';
5
+
6
+ export type BackgroundStatus =
7
+ | 'UNAVAILABLE'
8
+ | 'PERMISSION_NOT_GRANTED'
9
+ | 'PERMISSION_GRANTED';
@@ -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
+ }
@@ -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,20 +1,15 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- 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
- exports.isValidDate = isValidDate;
20
- //# 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,65 +0,0 @@
1
- package com.rooksdk.broadcasts
2
-
3
- import android.content.BroadcastReceiver
4
- import android.content.Context
5
- import android.content.Intent
6
- import com.facebook.react.bridge.Arguments
7
- import com.facebook.react.bridge.ReactApplicationContext
8
- import com.facebook.react.modules.core.DeviceEventManagerModule
9
- import com.rookmotion.rook.sdk.RookPermissionsManager
10
-
11
- /**
12
- * AndroidPermissionsReceiverTransmitter is a custom BroadcastReceiver used to listen for updates
13
- * on Android permission changes and transmit them back to the React Native layer.
14
- * It listens for a broadcast containing permission status, then emits a corresponding event to JavaScript.
15
- */
16
- class AndroidPermissionsReceiverTransmitter: BroadcastReceiver() {
17
- private var reactApplicationContext: ReactApplicationContext? = null
18
-
19
- /**
20
- * This method is called when a broadcast is received.
21
- * It checks whether the broadcast includes the permission status and emits an event to the React Native
22
- * JavaScript layer with the results.
23
- *
24
- * @param context The context in which the receiver is running.
25
- * @param intent The intent containing permission-related data.
26
- */
27
- override fun onReceive(context: Context?, intent: Intent?) {
28
- val permissionsGranted = intent?.getBooleanExtra(
29
- /* name = */ RookPermissionsManager.EXTRA_ANDROID_PERMISSIONS_GRANTED,
30
- /* defaultValue = */ false
31
- ) ?: false
32
-
33
- val dialogDisplayed = intent?.getBooleanExtra(
34
- RookPermissionsManager.EXTRA_ANDROID_PERMISSIONS_DIALOG_DISPLAYED,
35
- false
36
- ) ?: false
37
-
38
- reactApplicationContext?.also { reactContext ->
39
- val events = listOf(
40
- "ROOK_BACKGROUND_ANDROID_PERMISSIONS" to permissionsGranted,
41
- "ROOK_BACKGROUND_ANDROID_PERMISSIONS_DIALOG_DISPLAYED" to dialogDisplayed
42
- )
43
-
44
- val emitter = reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
45
-
46
- events.forEach { (type, value) ->
47
- Arguments.createMap().apply {
48
- putString("type", type)
49
- putBoolean("value", value)
50
- emitter.emit("ROOK_NOTIFICATION", this)
51
- }
52
- }
53
- }
54
- }
55
-
56
- /**
57
- * Sets the ReactApplicationContext to be used for emitting events to the React Native side.
58
- *
59
- * @param context The ReactApplicationContext provided by React Native.
60
- */
61
- fun setReactApplicationContext(context: ReactApplicationContext) {
62
- this.reactApplicationContext = context
63
- }
64
-
65
- }
@@ -1,70 +0,0 @@
1
- package com.rooksdk.broadcasts
2
-
3
- import android.content.BroadcastReceiver
4
- import android.content.Context
5
- import android.content.Intent
6
- import com.facebook.react.bridge.Arguments
7
- import com.facebook.react.bridge.ReactApplicationContext
8
- import com.facebook.react.modules.core.DeviceEventManagerModule
9
- import com.rookmotion.rook.sdk.RookPermissionsManager
10
-
11
- /**
12
- * HealthConnectPermissionsReceiverTransmitter is a custom BroadcastReceiver used to listen for updates
13
- * on Android permission changes and transmit them back to the React Native layer.
14
- * It listens for a broadcast containing permission status, then emits a corresponding event to JavaScript.
15
- */
16
- class HealthConnectPermissionsReceiverTransmitter: BroadcastReceiver() {
17
- private var reactApplicationContext: ReactApplicationContext? = null
18
-
19
- /**
20
- * This method is called when a broadcast is received.
21
- * It checks whether the broadcast includes the permission status and emits an event to the React Native
22
- * JavaScript layer with the results.
23
- *
24
- * @param context The context in which the receiver is running.
25
- * @param intent The intent containing permission-related data.
26
- */
27
- override fun onReceive(context: Context?, intent: Intent?) {
28
- val permissionsGranted = intent?.getBooleanExtra(
29
- /* name = */ RookPermissionsManager.EXTRA_HEALTH_CONNECT_PERMISSIONS_GRANTED,
30
- /* defaultValue = */ false
31
- ) ?: false
32
-
33
- val partiallyGranted = intent?.getBooleanExtra(
34
- RookPermissionsManager.EXTRA_HEALTH_CONNECT_PERMISSIONS_PARTIALLY_GRANTED,
35
- false
36
- ) ?: false
37
-
38
- val backgroundReadStatus = intent?.getBooleanExtra(
39
- RookPermissionsManager.EXTRA_HEALTH_CONNECT_BACKGROUND_PERMISSION_GRANTED,
40
- false
41
- ) ?: false
42
-
43
- reactApplicationContext?.also { reactContext ->
44
- val events = listOf(
45
- "ROOK_HEALTH_CONNECT_PERMISSIONS" to permissionsGranted,
46
- "ROOK_HEALTH_CONNECT_PERMISSIONS_PARTIALLY_GRANTED" to partiallyGranted,
47
- "ROOK_HEALTH_CONNECT_BACKGROUND_PERMISSIONS" to backgroundReadStatus,
48
- )
49
-
50
- val emitter = reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
51
-
52
- events.forEach { (type, value) ->
53
- Arguments.createMap().apply {
54
- putString("type", type)
55
- putBoolean("value", value)
56
- emitter.emit("ROOK_NOTIFICATION", this)
57
- }
58
- }
59
- }
60
- }
61
-
62
- /**
63
- * Sets the ReactApplicationContext to be used for emitting events to the React Native side.
64
- *
65
- * @param context The ReactApplicationContext provided by React Native.
66
- */
67
- fun setReactApplicationContext(context: ReactApplicationContext) {
68
- this.reactApplicationContext = context
69
- }
70
- }
@@ -1,52 +0,0 @@
1
- package com.rooksdk.broadcasts
2
-
3
- import android.content.BroadcastReceiver
4
- import android.content.Context
5
- import android.content.Intent
6
- import com.facebook.react.bridge.Arguments
7
- import com.facebook.react.bridge.ReactApplicationContext
8
- import com.facebook.react.modules.core.DeviceEventManagerModule
9
- import io.tryrook.sdk.samsung.domain.enums.SamsungHealthPermission
10
-
11
- class SamsungHealthPermissionsReceiverTransmitter: BroadcastReceiver() {
12
- private var reactApplicationContext: ReactApplicationContext? = null
13
-
14
- /**
15
- * Sets the ReactApplicationContext to be used for emitting events to the React Native side.
16
- *
17
- * @param context The ReactApplicationContext provided by React Native.
18
- */
19
- fun setReactApplicationContext(context: ReactApplicationContext) {
20
- this.reactApplicationContext = context
21
- }
22
-
23
- override fun onReceive(conext: Context?, intent: Intent?) {
24
- val allPermissionsGranted = intent?.getBooleanExtra(
25
- /* name = */ SamsungHealthPermission.EXTRA_SAMSUNG_HEALTH_PERMISSIONS_GRANTED,
26
- /* defaultValue = */ false
27
- ) ?: false
28
-
29
- val permissionsPartiallyGranted = intent?.getBooleanExtra(
30
- /* name = */ SamsungHealthPermission.EXTRA_SAMSUNG_HEALTH_PERMISSIONS_PARTIALLY_GRANTED,
31
- /* defaultValue = */ false
32
- ) ?: false
33
-
34
- reactApplicationContext?.also { reactContext ->
35
- val events = listOf(
36
- "ROOK_SAMSUNG_HEALTH_PERMISSIONS" to allPermissionsGranted,
37
- "ROOK_SAMSUNG_HEALTH_PERMISSIONS_PARTIALLY_GRANTED" to permissionsPartiallyGranted,
38
- )
39
-
40
- val emitter = reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
41
-
42
- events.forEach { (type, value) ->
43
- Arguments.createMap().apply {
44
- putString("type", type)
45
- putBoolean("value", value)
46
- emitter.emit("ROOK_NOTIFICATION", this)
47
- }
48
- }
49
- }
50
-
51
- }
52
- }