react-native-rook-sdk 4.0.0-beta.2 → 4.0.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.
- package/LICENSE +1 -1
- package/README.md +3 -35
- package/android/build.gradle +45 -20
- package/android/gradle.properties +5 -5
- package/android/src/main/AndroidManifest.xml +2 -1
- package/android/src/main/AndroidManifestNew.xml +36 -0
- package/android/src/main/java/com/rooksdk/RookSdkModule.kt +263 -11
- package/android/src/main/java/com/rooksdk/RookSdkPackage.kt +42 -26
- package/android/src/main/java/com/rooksdk/broadcasts/AndroidPermissionsReceiverTransmitter.kt +65 -0
- package/android/src/main/java/com/rooksdk/broadcasts/HealthConnectPermissionsReceiverTransmitter.kt +70 -0
- package/android/src/main/java/com/rooksdk/broadcasts/SamsungHealthPermissionsReceiverTransmitter.kt +52 -0
- package/android/src/main/java/com/rooksdk/modules/RookBackgroundSyncModule.kt +99 -0
- package/android/src/main/java/com/rooksdk/modules/RookConfigurationModule.kt +182 -0
- package/android/src/main/java/com/rooksdk/modules/RookLocalData.kt +301 -0
- package/android/src/main/java/com/rooksdk/modules/RookPermissionsModule.kt +359 -0
- package/android/src/main/java/com/rooksdk/modules/RookSourcesModule.kt +102 -0
- package/android/src/main/java/com/rooksdk/modules/RookStepsModule.kt +119 -0
- package/android/src/main/java/com/rooksdk/modules/RookSyncModule.kt +551 -0
- package/android/src/main/java/com/rooksdk/utils/DatasourcesUtils.kt +34 -0
- package/android/src/main/java/com/rooksdk/utils/PermissionConversion.kt +21 -0
- package/android/src/main/java/com/rooksdk/utils/ReadableToWritable.kt +145 -0
- package/android/src/main/java/com/rooksdk/utils/RookDateTime.kt +26 -0
- package/android/src/main/java/com/rooksdk/utils/RookGsonBuilder.kt +17 -0
- package/android/src/main/java/com/rooksdk/utils/SamsungAvailability.kt +21 -0
- package/android/src/main/java/com/rooksdk/utils/Source.kt +6 -0
- package/android/src/main/java/com/rooksdk/utils/StringToSyncType.kt +41 -0
- package/android/src/main/java/com/rooksdk/utils/serializers/InstantSerializer.kt +19 -0
- package/android/src/main/java/com/rooksdk/utils/serializers/LocalDateSerializer.kt +21 -0
- package/android/src/main/res/drawable/ic_health_connect.xml +19 -0
- package/android/src/main/res/values/themes.xml +3 -0
- package/ios/DateHelper.swift +4 -4
- package/ios/EncodableDataSource.swift +3 -2
- package/ios/EncodableDataSourceAuthorizer.swift +3 -2
- package/ios/{HearRateMapper.swift → EncodableHeartRate.swift} +3 -3
- package/ios/EncodableRookDataSource.swift +36 -0
- package/ios/EncodableSDKState.swift +94 -0
- package/ios/EncodableStatusDataSources.swift +47 -0
- package/ios/NutritionMapper.swift +114 -0
- package/ios/RookBackground.swift +8 -5
- package/ios/RookBackgroundModule.h +5 -0
- package/ios/RookBackgroundModule.mm +15 -0
- package/ios/RookConfiguration.swift +34 -24
- package/ios/RookConfigurationModule.h +5 -0
- package/ios/RookConfigurationModule.mm +22 -0
- package/ios/RookExternalModule.h +5 -0
- package/ios/RookExternalModule.m +31 -0
- package/ios/{RookData.swift → RookLocalData.swift} +70 -48
- package/ios/RookPermissions.swift +33 -5
- package/ios/RookPermissionsModule.h +5 -0
- package/ios/RookPermissionsModule.mm +20 -0
- package/ios/RookSdk.h +2 -14
- package/ios/RookSdk.mm +97 -546
- package/ios/RookSources.swift +54 -60
- package/ios/RookSourcesModule.h +5 -0
- package/ios/RookSourcesModule.mm +18 -0
- package/ios/RookSync.h +5 -0
- package/ios/RookSync.m +35 -0
- package/ios/RookSync.swift +78 -48
- package/ios/SwiftTest.swift +18 -0
- package/ios/react-native-rook-sdk-Bridging-Header.h +12 -0
- package/{src/context/RookSyncGateContext.ts → lib/commonjs/context/RookSyncGateContext.js} +13 -10
- package/lib/commonjs/context/RookSyncGateContext.js.map +1 -0
- package/lib/commonjs/context/RookSyncGateProvider.js +108 -0
- package/lib/commonjs/context/RookSyncGateProvider.js.map +1 -0
- package/{src/context/RookSyncGateReducer.ts → lib/commonjs/context/RookSyncGateReducer.js} +44 -13
- package/lib/commonjs/context/RookSyncGateReducer.js.map +1 -0
- package/lib/commonjs/context/RookSyncGateTypes.js +6 -0
- package/lib/commonjs/context/RookSyncGateTypes.js.map +1 -0
- package/lib/commonjs/context/index.js +14 -0
- package/lib/commonjs/context/index.js.map +1 -0
- package/lib/commonjs/hooks/index.js +76 -0
- package/lib/commonjs/hooks/index.js.map +1 -0
- package/{src/hooks/useRookAPISources.ts → lib/commonjs/hooks/useRookAPISources.js} +36 -40
- package/lib/commonjs/hooks/useRookAPISources.js.map +1 -0
- package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js +88 -0
- package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js.map +1 -0
- package/lib/commonjs/hooks/useRookAppleHealth.js +63 -0
- package/lib/commonjs/hooks/useRookAppleHealth.js.map +1 -0
- package/lib/commonjs/hooks/useRookConfiguration.js +113 -0
- package/lib/commonjs/hooks/useRookConfiguration.js.map +1 -0
- package/lib/commonjs/hooks/useRookData.js +116 -0
- package/lib/commonjs/hooks/useRookData.js.map +1 -0
- package/lib/commonjs/hooks/useRookHealthConnect.js +70 -0
- package/lib/commonjs/hooks/useRookHealthConnect.js.map +1 -0
- package/lib/commonjs/hooks/useRookPermissions.js +211 -0
- package/lib/commonjs/hooks/useRookPermissions.js.map +1 -0
- package/lib/commonjs/hooks/useRookSamsungHealth.js +54 -0
- package/lib/commonjs/hooks/useRookSamsungHealth.js.map +1 -0
- package/lib/commonjs/hooks/useRookSync.js +148 -0
- package/lib/commonjs/hooks/useRookSync.js.map +1 -0
- package/lib/commonjs/hooks/useRookVariables.js +93 -0
- package/lib/commonjs/hooks/useRookVariables.js.map +1 -0
- package/lib/commonjs/index.js +121 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/modules/hook/useRookAutoSync.js +261 -0
- package/lib/commonjs/modules/hook/useRookAutoSync.js.map +1 -0
- package/lib/commonjs/modules/types/sendMessageBroadcast.js +2 -0
- package/lib/commonjs/modules/types/sendMessageBroadcast.js.map +1 -0
- package/lib/commonjs/modules/utils/errors.js +12 -0
- package/lib/commonjs/modules/utils/errors.js.map +1 -0
- package/lib/commonjs/types/ActivityEvent.js +6 -0
- package/lib/commonjs/types/ActivityEvent.js.map +1 -0
- package/lib/commonjs/types/AppleHealthNutritionEvent.js +77 -0
- package/lib/commonjs/types/AppleHealthNutritionEvent.js.map +1 -0
- package/lib/commonjs/types/AppleHealthPermissions.js +57 -0
- package/lib/commonjs/types/AppleHealthPermissions.js.map +1 -0
- package/lib/commonjs/types/AuthorizedSources.js +6 -0
- package/lib/commonjs/types/AuthorizedSources.js.map +1 -0
- package/lib/commonjs/types/BodySummary.js +6 -0
- package/lib/{module/types/Rook.js.map → commonjs/types/BodySummary.js.map} +1 -1
- package/lib/commonjs/types/DataSource.js +16 -0
- package/lib/commonjs/types/DataSource.js.map +1 -0
- package/lib/commonjs/types/DiagnosticState.js +2 -0
- package/lib/commonjs/types/DiagnosticState.js.map +1 -0
- package/lib/commonjs/types/HCMealData.js +65 -0
- package/lib/commonjs/types/HCMealData.js.map +1 -0
- package/lib/commonjs/types/HeartRateEvent.js +2 -0
- package/lib/commonjs/types/HeartRateEvent.js.map +1 -0
- package/lib/commonjs/types/PermissionsType.js +2 -0
- package/lib/commonjs/types/PermissionsType.js.map +1 -0
- package/lib/commonjs/types/PhysicalSummary.js +6 -0
- package/lib/commonjs/types/PhysicalSummary.js.map +1 -0
- package/lib/commonjs/types/SDKSources.js +13 -0
- package/lib/commonjs/types/SDKSources.js.map +1 -0
- package/lib/commonjs/types/SamsungHealthPermissions.js +23 -0
- package/lib/commonjs/types/SamsungHealthPermissions.js.map +1 -0
- package/lib/commonjs/types/SleepSummary.js +6 -0
- package/lib/commonjs/types/SleepSummary.js.map +1 -0
- package/lib/commonjs/types/SummaryTypes.js +2 -0
- package/lib/commonjs/types/SummaryTypes.js.map +1 -0
- package/lib/commonjs/types/SyncTypes.js +33 -0
- package/lib/commonjs/types/SyncTypes.js.map +1 -0
- package/lib/commonjs/types/WriteNutrition.js +18 -0
- package/lib/commonjs/types/WriteNutrition.js.map +1 -0
- package/lib/commonjs/utils/getNativeModule.js +29 -0
- package/lib/commonjs/utils/getNativeModule.js.map +1 -0
- package/lib/commonjs/utils/getRookModule.js +28 -0
- package/lib/commonjs/utils/getRookModule.js.map +1 -0
- package/{src/utils/isModuleReady.ts → lib/commonjs/utils/isModuleReady.js} +10 -4
- package/lib/commonjs/utils/isModuleReady.js.map +1 -0
- package/lib/commonjs/utils/isRunningOnAndroid.js +15 -0
- package/lib/commonjs/utils/isRunningOnAndroid.js.map +1 -0
- package/lib/commonjs/utils/isRunningOniOS.js +15 -0
- package/lib/commonjs/utils/isRunningOniOS.js.map +1 -0
- package/lib/commonjs/utils/isValidDate.js +41 -0
- package/lib/commonjs/utils/isValidDate.js.map +1 -0
- package/lib/commonjs/utils/nativeModules.js +29 -0
- package/lib/commonjs/utils/nativeModules.js.map +1 -0
- package/lib/commonjs/utils/packageInfo.js +13 -0
- package/lib/commonjs/utils/packageInfo.js.map +1 -0
- package/lib/module/context/RookSyncGateContext.js +0 -2
- package/lib/module/context/RookSyncGateContext.js.map +1 -1
- package/lib/module/context/RookSyncGateProvider.js +31 -22
- package/lib/module/context/RookSyncGateProvider.js.map +1 -1
- package/lib/module/context/RookSyncGateReducer.js +12 -4
- package/lib/module/context/RookSyncGateReducer.js.map +1 -1
- package/lib/module/context/RookSyncGateTypes.js +0 -2
- package/lib/module/context/index.js +2 -0
- package/lib/module/context/index.js.map +1 -0
- package/lib/module/hooks/index.js +11 -0
- package/lib/module/hooks/index.js.map +1 -0
- package/lib/module/hooks/useRookAPISources.js +16 -10
- package/lib/module/hooks/useRookAPISources.js.map +1 -1
- package/lib/module/hooks/useRookAndroidBackgroundSteps.js +12 -11
- package/lib/module/hooks/useRookAndroidBackgroundSteps.js.map +1 -1
- package/lib/module/hooks/useRookAppleHealth.js +10 -9
- package/lib/module/hooks/useRookAppleHealth.js.map +1 -1
- package/lib/module/hooks/useRookConfiguration.js +34 -10
- package/lib/module/hooks/useRookConfiguration.js.map +1 -1
- package/lib/module/hooks/useRookData.js +45 -31
- package/lib/module/hooks/useRookData.js.map +1 -1
- package/lib/module/hooks/useRookHealthConnect.js +10 -9
- package/lib/module/hooks/useRookHealthConnect.js.map +1 -1
- package/lib/module/hooks/useRookPermissions.js +49 -26
- package/lib/module/hooks/useRookPermissions.js.map +1 -1
- package/lib/module/hooks/useRookSamsungHealth.js +20 -8
- package/lib/module/hooks/useRookSamsungHealth.js.map +1 -1
- package/lib/module/hooks/useRookSync.js +32 -23
- package/lib/module/hooks/useRookSync.js.map +1 -1
- package/lib/module/hooks/useRookVariables.js +37 -19
- package/lib/module/hooks/useRookVariables.js.map +1 -1
- package/lib/module/index.js +10 -18
- package/lib/module/index.js.map +1 -1
- package/lib/module/modules/hook/useRookAutoSync.js +40 -27
- package/lib/module/modules/hook/useRookAutoSync.js.map +1 -1
- package/lib/module/modules/types/sendMessageBroadcast.js +1 -1
- package/lib/module/modules/utils/errors.js +0 -2
- package/lib/module/modules/utils/errors.js.map +1 -1
- package/lib/module/types/ActivityEvent.js +0 -2
- package/lib/module/types/AppleHealthNutritionEvent.js +70 -0
- package/lib/module/types/AppleHealthNutritionEvent.js.map +1 -0
- package/lib/module/types/AppleHealthPermissions.js +0 -2
- package/lib/module/types/AppleHealthPermissions.js.map +1 -1
- package/lib/module/types/AuthorizedSources.js +0 -2
- package/lib/module/types/BodySummary.js +0 -2
- package/lib/module/types/DataSource.js +0 -2
- package/lib/module/types/DataSource.js.map +1 -1
- package/lib/module/types/DiagnosticState.js +2 -0
- package/lib/module/types/DiagnosticState.js.map +1 -0
- package/lib/module/types/HCMealData.js +59 -0
- package/lib/module/types/HCMealData.js.map +1 -0
- package/lib/module/types/HeartRateEvent.js +1 -1
- package/lib/module/types/PermissionsType.js +1 -1
- package/lib/module/types/PhysicalSummary.js +0 -2
- package/lib/module/types/SDKSources.js +0 -2
- package/lib/module/types/SDKSources.js.map +1 -1
- package/lib/module/types/SamsungHealthPermissions.js +0 -3
- package/lib/module/types/SamsungHealthPermissions.js.map +1 -1
- package/lib/module/types/SleepSummary.js +0 -2
- package/lib/module/types/SummaryTypes.js +1 -1
- package/lib/module/types/SyncTypes.js +0 -2
- package/lib/module/types/SyncTypes.js.map +1 -1
- package/lib/module/types/WriteNutrition.js +12 -0
- package/lib/module/types/WriteNutrition.js.map +1 -0
- package/lib/module/utils/getNativeModule.js +23 -0
- package/lib/module/utils/getNativeModule.js.map +1 -0
- package/lib/module/utils/getRookModule.js +22 -0
- package/lib/module/utils/getRookModule.js.map +1 -0
- package/lib/module/utils/isModuleReady.js +0 -2
- package/lib/module/utils/isModuleReady.js.map +1 -1
- package/lib/module/utils/isRunningOnAndroid.js +0 -2
- package/lib/module/utils/isRunningOnAndroid.js.map +1 -1
- package/lib/module/utils/isRunningOniOS.js +0 -2
- package/lib/module/utils/isRunningOniOS.js.map +1 -1
- package/lib/module/utils/isValidDate.js +20 -2
- package/lib/module/utils/isValidDate.js.map +1 -1
- package/lib/module/utils/nativeModules.js +23 -0
- package/lib/module/utils/nativeModules.js.map +1 -0
- package/lib/module/utils/packageInfo.js +7 -0
- package/lib/module/utils/packageInfo.js.map +1 -0
- package/lib/typescript/src/context/RookSyncGateContext.d.ts.map +1 -1
- package/lib/typescript/src/context/RookSyncGateProvider.d.ts.map +1 -1
- package/lib/typescript/src/context/RookSyncGateReducer.d.ts.map +1 -1
- package/lib/typescript/src/context/RookSyncGateTypes.d.ts +14 -4
- package/lib/typescript/src/context/RookSyncGateTypes.d.ts.map +1 -1
- package/lib/typescript/src/context/index.d.ts +2 -0
- package/lib/typescript/src/context/index.d.ts.map +1 -0
- package/lib/typescript/src/hooks/index.d.ts +11 -0
- package/lib/typescript/src/hooks/index.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRookAPISources.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookAndroidBackgroundSteps.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookAppleHealth.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookConfiguration.d.ts +3 -1
- package/lib/typescript/src/hooks/useRookConfiguration.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookData.d.ts +2 -2
- package/lib/typescript/src/hooks/useRookData.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookHealthConnect.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookPermissions.d.ts +2 -0
- package/lib/typescript/src/hooks/useRookPermissions.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookSamsungHealth.d.ts +6 -0
- package/lib/typescript/src/hooks/useRookSamsungHealth.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookSync.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookVariables.d.ts +2 -0
- package/lib/typescript/src/hooks/useRookVariables.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +8 -17
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/modules/hook/useRookAutoSync.d.ts.map +1 -1
- package/lib/typescript/src/types/AppleHealthNutritionEvent.d.ts +76 -0
- package/lib/typescript/src/types/AppleHealthNutritionEvent.d.ts.map +1 -0
- package/lib/typescript/src/types/AuthorizedSources.d.ts +0 -11
- package/lib/typescript/src/types/AuthorizedSources.d.ts.map +1 -1
- package/lib/typescript/src/types/DiagnosticState.d.ts +13 -0
- package/lib/typescript/src/types/DiagnosticState.d.ts.map +1 -0
- package/lib/typescript/src/types/HCMealData.d.ts +60 -0
- package/lib/typescript/src/types/HCMealData.d.ts.map +1 -0
- package/lib/typescript/src/types/HeartRateEvent.d.ts +2 -2
- package/lib/typescript/src/types/HeartRateEvent.d.ts.map +1 -1
- package/lib/typescript/src/types/SamsungHealthPermissions.d.ts +0 -1
- package/lib/typescript/src/types/SamsungHealthPermissions.d.ts.map +1 -1
- package/lib/typescript/src/types/SyncTypes.d.ts +1 -5
- package/lib/typescript/src/types/SyncTypes.d.ts.map +1 -1
- package/lib/typescript/src/types/WriteNutrition.d.ts +61 -0
- package/lib/typescript/src/types/WriteNutrition.d.ts.map +1 -0
- package/lib/typescript/src/utils/getNativeModule.d.ts +10 -0
- package/lib/typescript/src/utils/getNativeModule.d.ts.map +1 -0
- package/lib/typescript/src/utils/getRookModule.d.ts +9 -0
- package/lib/typescript/src/utils/getRookModule.d.ts.map +1 -0
- package/lib/typescript/src/utils/isModuleReady.d.ts.map +1 -1
- package/lib/typescript/src/utils/isValidDate.d.ts +8 -0
- package/lib/typescript/src/utils/isValidDate.d.ts.map +1 -1
- package/lib/typescript/src/utils/nativeModules.d.ts +24 -0
- package/lib/typescript/src/utils/nativeModules.d.ts.map +1 -0
- package/lib/typescript/src/utils/packageInfo.d.ts +6 -0
- package/lib/typescript/src/utils/packageInfo.d.ts.map +1 -0
- package/package.json +98 -94
- package/react-native-rook-sdk.podspec +45 -0
- package/RNRookSdk.podspec +0 -22
- package/ios/Encodable.swift +0 -25
- package/ios/RookEntry.swift +0 -61
- package/ios/RookSdk-Bridging-Header.h +0 -12
- package/ios/boost-boost_privacy-Bridging-Header.h +0 -4
- package/lib/module/NativeRookSdk.js +0 -13
- package/lib/module/NativeRookSdk.js.map +0 -1
- package/lib/module/package.json +0 -1
- package/lib/module/types/Rook.js +0 -2
- package/lib/typescript/package.json +0 -1
- package/lib/typescript/src/NativeRookSdk.d.ts +0 -116
- package/lib/typescript/src/NativeRookSdk.d.ts.map +0 -1
- package/lib/typescript/src/types/Rook.d.ts +0 -9
- package/lib/typescript/src/types/Rook.d.ts.map +0 -1
- package/src/NativeRookSdk.ts +0 -274
- package/src/context/RookSyncGateProvider.tsx +0 -78
- package/src/context/RookSyncGateTypes.ts +0 -34
- package/src/hooks/useRookAndroidBackgroundSteps.ts +0 -81
- package/src/hooks/useRookAppleHealth.ts +0 -55
- package/src/hooks/useRookConfiguration.ts +0 -82
- package/src/hooks/useRookData.ts +0 -122
- package/src/hooks/useRookHealthConnect.ts +0 -59
- package/src/hooks/useRookPermissions.ts +0 -224
- package/src/hooks/useRookSamsungHealth.ts +0 -37
- package/src/hooks/useRookSync.ts +0 -157
- package/src/hooks/useRookVariables.ts +0 -77
- package/src/index.tsx +0 -28
- package/src/modules/hook/useRookAutoSync.ts +0 -305
- package/src/modules/types/sendMessageBroadcast.ts +0 -5
- package/src/modules/utils/errors.ts +0 -9
- package/src/types/ActivityEvent.ts +0 -159
- package/src/types/AppleHealthPermissions.ts +0 -49
- package/src/types/AuthorizedSources.ts +0 -33
- package/src/types/BodySummary.ts +0 -116
- package/src/types/DataSource.ts +0 -16
- package/src/types/HeartRateEvent.ts +0 -26
- package/src/types/PermissionsType.ts +0 -9
- package/src/types/PhysicalSummary.ts +0 -84
- package/src/types/Rook.ts +0 -8
- package/src/types/SDKSources.ts +0 -5
- package/src/types/SamsungHealthPermissions.ts +0 -16
- package/src/types/SleepSummary.ts +0 -66
- package/src/types/SummaryTypes.ts +0 -70
- package/src/types/SyncTypes.ts +0 -63
- package/src/utils/isRunningOnAndroid.ts +0 -10
- package/src/utils/isRunningOniOS.ts +0 -10
- package/src/utils/isValidDate.ts +0 -15
|
@@ -1,12 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import RookSdk from "../NativeRookSdk.js";
|
|
1
|
+
import { useRef } from 'react';
|
|
4
2
|
import { Platform } from 'react-native';
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
3
|
+
import getNativeModule from '../utils/getNativeModule';
|
|
4
|
+
import { isModuleReady } from '../utils/isModuleReady';
|
|
5
|
+
import { isValidDate, isValidZonedDateTime } from '../utils/isValidDate';
|
|
6
|
+
import nativeModules from '../utils/nativeModules';
|
|
7
|
+
import { useRookSyncGateContext } from '../context/RookSyncGateContext';
|
|
8
|
+
import { SDKDataSource } from '../types/SDKSources';
|
|
9
|
+
import { packageInfo } from '../utils/packageInfo';
|
|
10
|
+
import { parseWriteNutritionToHC } from '../types/HCMealData';
|
|
11
|
+
import { parseWriteNutritionToAH } from '../types/AppleHealthNutritionEvent';
|
|
9
12
|
export const useRookData = () => {
|
|
13
|
+
const rookData = useRef(getNativeModule(Platform.select({
|
|
14
|
+
android: () => nativeModules.android.LOCAL_DATA,
|
|
15
|
+
default: () => nativeModules.ios.LOCAL_DATA
|
|
16
|
+
})()));
|
|
10
17
|
const {
|
|
11
18
|
state: {
|
|
12
19
|
ready
|
|
@@ -18,15 +25,15 @@ export const useRookData = () => {
|
|
|
18
25
|
}) => {
|
|
19
26
|
isModuleReady(ready);
|
|
20
27
|
isValidDate(date);
|
|
21
|
-
if (
|
|
22
|
-
const result = await
|
|
28
|
+
if (packageInfo.isAndroid && source === SDKDataSource.SAMSUNG_HEALTH) {
|
|
29
|
+
const result = await rookData.current.getSamsungSleepSummary(date);
|
|
23
30
|
return JSON.parse(result);
|
|
24
31
|
}
|
|
25
|
-
if (
|
|
26
|
-
const result = await
|
|
32
|
+
if (packageInfo.isAndroid && source === SDKDataSource.HEALTH_CONNECT) {
|
|
33
|
+
const result = await rookData.current.getHealthConnectSleepSummary(date);
|
|
27
34
|
return JSON.parse(result);
|
|
28
35
|
}
|
|
29
|
-
return
|
|
36
|
+
return rookData.current.getAppleHealthSleepSummary(date);
|
|
30
37
|
};
|
|
31
38
|
const getPhysicalSummary = async ({
|
|
32
39
|
date,
|
|
@@ -34,15 +41,15 @@ export const useRookData = () => {
|
|
|
34
41
|
}) => {
|
|
35
42
|
isModuleReady(ready);
|
|
36
43
|
isValidDate(date);
|
|
37
|
-
if (
|
|
38
|
-
const result = await
|
|
44
|
+
if (packageInfo.isAndroid && source === SDKDataSource.SAMSUNG_HEALTH) {
|
|
45
|
+
const result = await rookData.current.getSamsungPhysicalSummary(date);
|
|
39
46
|
return JSON.parse(result);
|
|
40
47
|
}
|
|
41
|
-
if (
|
|
42
|
-
const result = await
|
|
48
|
+
if (packageInfo.isAndroid && source === SDKDataSource.HEALTH_CONNECT) {
|
|
49
|
+
const result = await rookData.current.getHealthConnectPhysicalSummary(date);
|
|
43
50
|
return JSON.parse(result);
|
|
44
51
|
}
|
|
45
|
-
return
|
|
52
|
+
return rookData.current.getAppleHealthPhysicalSummary(date);
|
|
46
53
|
};
|
|
47
54
|
const getBodySummary = async ({
|
|
48
55
|
date,
|
|
@@ -50,15 +57,15 @@ export const useRookData = () => {
|
|
|
50
57
|
}) => {
|
|
51
58
|
isModuleReady(ready);
|
|
52
59
|
isValidDate(date);
|
|
53
|
-
if (
|
|
54
|
-
const result = await
|
|
60
|
+
if (packageInfo.isAndroid && source === SDKDataSource.SAMSUNG_HEALTH) {
|
|
61
|
+
const result = await rookData.current.getSamsungBodySummary(date);
|
|
55
62
|
return JSON.parse(result);
|
|
56
63
|
}
|
|
57
|
-
if (
|
|
58
|
-
const result = await
|
|
64
|
+
if (packageInfo.isAndroid && source === SDKDataSource.HEALTH_CONNECT) {
|
|
65
|
+
const result = await rookData.current.getHealthConnectBodySummary(date);
|
|
59
66
|
return JSON.parse(result);
|
|
60
67
|
}
|
|
61
|
-
return
|
|
68
|
+
return rookData.current.getAppleHealthBodySummary(date);
|
|
62
69
|
};
|
|
63
70
|
const getActivityEvents = async ({
|
|
64
71
|
date,
|
|
@@ -66,19 +73,26 @@ export const useRookData = () => {
|
|
|
66
73
|
}) => {
|
|
67
74
|
isModuleReady(ready);
|
|
68
75
|
isValidDate(date);
|
|
69
|
-
if (
|
|
70
|
-
const result = await
|
|
76
|
+
if (packageInfo.isAndroid && source === SDKDataSource.SAMSUNG_HEALTH) {
|
|
77
|
+
const result = await rookData.current.getSamsungActivityEvents(date);
|
|
71
78
|
return JSON.parse(result);
|
|
72
79
|
}
|
|
73
|
-
if (
|
|
74
|
-
const result = await
|
|
80
|
+
if (packageInfo.isAndroid && source === SDKDataSource.HEALTH_CONNECT) {
|
|
81
|
+
const result = await rookData.current.getHealthConnectActivityEvents(date);
|
|
75
82
|
return JSON.parse(result);
|
|
76
83
|
}
|
|
77
|
-
return
|
|
84
|
+
return rookData.current.getAppleHealthActivityEvents(date);
|
|
78
85
|
};
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
86
|
+
const writeNutritionData = async (data, source) => {
|
|
87
|
+
isModuleReady(ready);
|
|
88
|
+
isValidZonedDateTime(data.date);
|
|
89
|
+
if (packageInfo.isAndroid && source === SDKDataSource.HEALTH_CONNECT) {
|
|
90
|
+
const event = parseWriteNutritionToHC(data);
|
|
91
|
+
return rookData.current.writeHealthConnectMealData(event);
|
|
92
|
+
}
|
|
93
|
+
if (!packageInfo.isAndroid && source === SDKDataSource.APPLE_HEALTH) {
|
|
94
|
+
const event = parseWriteNutritionToAH(data);
|
|
95
|
+
return rookData.current.writeAppleHealthMealData(event);
|
|
82
96
|
}
|
|
83
97
|
throw new Error('Please check the data source');
|
|
84
98
|
};
|
|
@@ -88,7 +102,7 @@ export const useRookData = () => {
|
|
|
88
102
|
getPhysicalSummary,
|
|
89
103
|
getBodySummary,
|
|
90
104
|
getActivityEvents,
|
|
91
|
-
|
|
105
|
+
writeNutritionData
|
|
92
106
|
};
|
|
93
107
|
};
|
|
94
108
|
//# sourceMappingURL=useRookData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useRef","Platform","getNativeModule","isModuleReady","isValidDate","isValidZonedDateTime","nativeModules","useRookSyncGateContext","SDKDataSource","packageInfo","parseWriteNutritionToHC","parseWriteNutritionToAH","useRookData","rookData","select","android","LOCAL_DATA","default","ios","state","ready","getSleepSummary","date","source","isAndroid","SAMSUNG_HEALTH","result","current","getSamsungSleepSummary","JSON","parse","HEALTH_CONNECT","getHealthConnectSleepSummary","getAppleHealthSleepSummary","getPhysicalSummary","getSamsungPhysicalSummary","getHealthConnectPhysicalSummary","getAppleHealthPhysicalSummary","getBodySummary","getSamsungBodySummary","getHealthConnectBodySummary","getAppleHealthBodySummary","getActivityEvents","getSamsungActivityEvents","getHealthConnectActivityEvents","getAppleHealthActivityEvents","writeNutritionData","data","event","writeHealthConnectMealData","APPLE_HEALTH","writeAppleHealthMealData","Error"],"sourceRoot":"../../../src","sources":["hooks/useRookData.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import
|
|
1
|
+
import { useRef } from 'react';
|
|
2
|
+
import { useRookSyncGateContext } from '../context/RookSyncGateContext';
|
|
3
|
+
import getNativeModule from '../utils/getNativeModule';
|
|
4
|
+
import { isModuleReady } from '../utils/isModuleReady';
|
|
5
|
+
import isRunningOnAndroid from '../utils/isRunningOnAndroid';
|
|
6
|
+
import nativeModules from '../utils/nativeModules';
|
|
7
7
|
export const useRookHealthConnect = () => {
|
|
8
|
+
const rookSync = useRef(getNativeModule(nativeModules.android.BACKGROUND));
|
|
8
9
|
const {
|
|
9
10
|
state: {
|
|
10
11
|
ready,
|
|
@@ -27,7 +28,7 @@ export const useRookHealthConnect = () => {
|
|
|
27
28
|
const scheduleBackgroundSync = () => {
|
|
28
29
|
isRunningOnAndroid();
|
|
29
30
|
isModuleReady(ready);
|
|
30
|
-
return
|
|
31
|
+
return rookSync.current.scheduleBackgroundSync(enableLogs);
|
|
31
32
|
};
|
|
32
33
|
|
|
33
34
|
/**
|
|
@@ -44,12 +45,12 @@ export const useRookHealthConnect = () => {
|
|
|
44
45
|
const cancelBackgroundSync = () => {
|
|
45
46
|
isRunningOnAndroid();
|
|
46
47
|
isModuleReady(ready);
|
|
47
|
-
return
|
|
48
|
+
return rookSync.current.cancelBackgroundSync();
|
|
48
49
|
};
|
|
49
50
|
const isBackgroundSyncEnabled = () => {
|
|
50
51
|
isRunningOnAndroid();
|
|
51
52
|
isModuleReady(ready);
|
|
52
|
-
return
|
|
53
|
+
return rookSync.current.isBackgroundSyncEnabled();
|
|
53
54
|
};
|
|
54
55
|
return {
|
|
55
56
|
ready,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useRef","useRookSyncGateContext","getNativeModule","isModuleReady","isRunningOnAndroid","nativeModules","useRookHealthConnect","rookSync","android","BACKGROUND","state","ready","enableLogs","scheduleBackgroundSync","current","cancelBackgroundSync","isBackgroundSyncEnabled"],"sourceRoot":"../../../src","sources":["hooks/useRookHealthConnect.ts"],"mappings":"AAAA,SAASA,MAAM,QAAQ,OAAO;AAC9B,SAASC,sBAAsB,QAAQ,gCAAgC;AACvE,OAAOC,eAAe,MAAM,0BAA0B;AACtD,SAASC,aAAa,QAAQ,wBAAwB;AACtD,OAAOC,kBAAkB,MAAM,6BAA6B;AAC5D,OAAOC,aAAa,MAAM,wBAAwB;AAElD,OAAO,MAAMC,oBAAoB,GAAGA,CAAA,KAAM;EACxC,MAAMC,QAAQ,GAAGP,MAAM,CAACE,eAAe,CAACG,aAAa,CAACG,OAAO,CAACC,UAAU,CAAC,CAAC;EAC1E,MAAM;IACJC,KAAK,EAAE;MAAEC,KAAK;MAAEC;IAAW;EAC7B,CAAC,GAAGX,sBAAsB,CAAC,CAAC;;EAE5B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMY,sBAAsB,GAAGA,CAAA,KAAwB;IACrDT,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACQ,KAAK,CAAC;IACpB,OAAOJ,QAAQ,CAACO,OAAO,CAACD,sBAAsB,CAACD,UAAU,CAAC;EAC5D,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMG,oBAAoB,GAAGA,CAAA,KAAwB;IACnDX,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACQ,KAAK,CAAC;IACpB,OAAOJ,QAAQ,CAACO,OAAO,CAACC,oBAAoB,CAAC,CAAC;EAChD,CAAC;EAED,MAAMC,uBAAuB,GAAGA,CAAA,KAAwB;IACtDZ,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACQ,KAAK,CAAC;IAEpB,OAAOJ,QAAQ,CAACO,OAAO,CAACE,uBAAuB,CAAC,CAAC;EACnD,CAAC;EAED,OAAO;IACLL,KAAK;IACLE,sBAAsB;IACtBE,oBAAoB;IACpBC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { isModuleReady } from
|
|
6
|
-
import isRunningOnAndroid from
|
|
7
|
-
import { isRunningOniOS } from
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
1
|
+
import { useRef } from 'react';
|
|
2
|
+
import { Platform } from 'react-native';
|
|
3
|
+
import { useRookSyncGateContext } from '../context/RookSyncGateContext';
|
|
4
|
+
import getNativeModule from '../utils/getNativeModule';
|
|
5
|
+
import { isModuleReady } from '../utils/isModuleReady';
|
|
6
|
+
import isRunningOnAndroid from '../utils/isRunningOnAndroid';
|
|
7
|
+
import { isRunningOniOS } from '../utils/isRunningOniOS';
|
|
8
|
+
import nativeModules from '../utils/nativeModules';
|
|
9
|
+
import { SamsungHealthPermission } from '../types/SamsungHealthPermissions';
|
|
10
|
+
import { AppleHealthPermission } from '../types/AppleHealthPermissions';
|
|
10
11
|
/**
|
|
11
12
|
* The `useRookPermissions` hook manages permissions for accessing Apple Health and Health Connect data,
|
|
12
13
|
* including requesting various types of permissions and checking their status.
|
|
@@ -15,6 +16,10 @@ import { AppleHealthPermission } from "../types/AppleHealthPermissions.js";
|
|
|
15
16
|
* following properties and functions:
|
|
16
17
|
*/
|
|
17
18
|
export const useRookPermissions = () => {
|
|
19
|
+
const rookSync = useRef(getNativeModule(Platform.select({
|
|
20
|
+
android: () => nativeModules.android.PERMISSIONS,
|
|
21
|
+
default: () => nativeModules.ios.PERMISSIONS
|
|
22
|
+
})()));
|
|
18
23
|
const {
|
|
19
24
|
state: {
|
|
20
25
|
ready
|
|
@@ -30,12 +35,12 @@ export const useRookPermissions = () => {
|
|
|
30
35
|
const checkHealthConnectAvailability = () => {
|
|
31
36
|
isModuleReady(ready);
|
|
32
37
|
isRunningOnAndroid();
|
|
33
|
-
return
|
|
38
|
+
return rookSync.current.checkHealthConnectAvailability();
|
|
34
39
|
};
|
|
35
40
|
const checkSamsungAvailability = () => {
|
|
36
41
|
isModuleReady(ready);
|
|
37
42
|
isRunningOnAndroid();
|
|
38
|
-
return
|
|
43
|
+
return rookSync.current.checkSamsungAvailability();
|
|
39
44
|
};
|
|
40
45
|
|
|
41
46
|
/**
|
|
@@ -46,7 +51,7 @@ export const useRookPermissions = () => {
|
|
|
46
51
|
const healthConnectHasPermissions = () => {
|
|
47
52
|
isRunningOnAndroid();
|
|
48
53
|
isModuleReady(ready);
|
|
49
|
-
return
|
|
54
|
+
return rookSync.current.checkHealthConnectPermissions();
|
|
50
55
|
};
|
|
51
56
|
|
|
52
57
|
/**
|
|
@@ -57,7 +62,7 @@ export const useRookPermissions = () => {
|
|
|
57
62
|
const healthConnectHasPartialPermissions = () => {
|
|
58
63
|
isRunningOnAndroid();
|
|
59
64
|
isModuleReady(ready);
|
|
60
|
-
return
|
|
65
|
+
return rookSync.current.checkHealthConnectPermissionsPartially();
|
|
61
66
|
};
|
|
62
67
|
|
|
63
68
|
/**
|
|
@@ -68,17 +73,17 @@ export const useRookPermissions = () => {
|
|
|
68
73
|
const appleHealthHasPermissions = param => {
|
|
69
74
|
isRunningOniOS();
|
|
70
75
|
isModuleReady(ready);
|
|
71
|
-
return
|
|
76
|
+
return rookSync.current.checkPermissionsStatus(param ? param : null);
|
|
72
77
|
};
|
|
73
78
|
const samsungHealthHasPermissions = () => {
|
|
74
79
|
isRunningOnAndroid();
|
|
75
80
|
isModuleReady(ready);
|
|
76
|
-
return
|
|
81
|
+
return rookSync.current.checkSamsungHealthPermissions();
|
|
77
82
|
};
|
|
78
83
|
const samsungHealthHasPartialPermissions = () => {
|
|
79
84
|
isRunningOnAndroid();
|
|
80
85
|
isModuleReady(ready);
|
|
81
|
-
return
|
|
86
|
+
return rookSync.current.checkSamsungHealthPermissionsPartially();
|
|
82
87
|
};
|
|
83
88
|
|
|
84
89
|
/**
|
|
@@ -87,13 +92,13 @@ export const useRookPermissions = () => {
|
|
|
87
92
|
const requestHealthConnectPermissions = async () => {
|
|
88
93
|
isRunningOnAndroid();
|
|
89
94
|
isModuleReady(ready);
|
|
90
|
-
return
|
|
95
|
+
return rookSync.current.requestHealthConnectPermissions();
|
|
91
96
|
};
|
|
92
97
|
const requestAppleHealthPermissions = async permissions => {
|
|
93
98
|
isModuleReady(ready);
|
|
94
99
|
isRunningOniOS();
|
|
95
100
|
const bridge = permissions || Object.values(AppleHealthPermission);
|
|
96
|
-
const result = await
|
|
101
|
+
const result = await rookSync.current.requestAppleHealthPermissions(bridge);
|
|
97
102
|
dispatch({
|
|
98
103
|
type: 'SET_PERMISSIONS'
|
|
99
104
|
});
|
|
@@ -103,9 +108,14 @@ export const useRookPermissions = () => {
|
|
|
103
108
|
isRunningOnAndroid();
|
|
104
109
|
isModuleReady(ready);
|
|
105
110
|
const bridge = permissions || Object.values(SamsungHealthPermission);
|
|
106
|
-
const result = await
|
|
111
|
+
const result = await rookSync.current.requestSamsungPermissions(bridge);
|
|
107
112
|
return result;
|
|
108
113
|
};
|
|
114
|
+
const requestWriteNutritionPermission = async () => {
|
|
115
|
+
isRunningOniOS();
|
|
116
|
+
isModuleReady(ready);
|
|
117
|
+
return rookSync.current.requestWriteNutritionPermission();
|
|
118
|
+
};
|
|
109
119
|
|
|
110
120
|
/**
|
|
111
121
|
* The function `openAppleHealthSettings` opens the apple health settings
|
|
@@ -113,7 +123,7 @@ export const useRookPermissions = () => {
|
|
|
113
123
|
const openAppleHealthSettings = async () => {
|
|
114
124
|
isRunningOniOS();
|
|
115
125
|
isModuleReady(ready);
|
|
116
|
-
return
|
|
126
|
+
return rookSync.current.openAppleHealthSettings();
|
|
117
127
|
};
|
|
118
128
|
|
|
119
129
|
/**
|
|
@@ -122,7 +132,7 @@ export const useRookPermissions = () => {
|
|
|
122
132
|
const openHealthConnectSettings = async () => {
|
|
123
133
|
isRunningOnAndroid();
|
|
124
134
|
isModuleReady(ready);
|
|
125
|
-
return
|
|
135
|
+
return rookSync.current.openHealthConnectSettings();
|
|
126
136
|
};
|
|
127
137
|
|
|
128
138
|
/**
|
|
@@ -133,7 +143,7 @@ export const useRookPermissions = () => {
|
|
|
133
143
|
const requestAndroidBackgroundPermissions = () => {
|
|
134
144
|
isRunningOnAndroid();
|
|
135
145
|
isModuleReady(ready);
|
|
136
|
-
return
|
|
146
|
+
return rookSync.current.requestAndroidBackgroundPermissions();
|
|
137
147
|
};
|
|
138
148
|
|
|
139
149
|
/**
|
|
@@ -145,17 +155,28 @@ export const useRookPermissions = () => {
|
|
|
145
155
|
const androidHasBackgroundPermissions = () => {
|
|
146
156
|
isRunningOnAndroid();
|
|
147
157
|
isModuleReady(ready);
|
|
148
|
-
return
|
|
158
|
+
return rookSync.current.hasAndroidBackgroundPermissions();
|
|
149
159
|
};
|
|
150
160
|
const checkHealthConnectBackgroundReadStatus = () => {
|
|
151
161
|
isRunningOnAndroid();
|
|
152
162
|
isModuleReady(ready);
|
|
153
|
-
return
|
|
163
|
+
return rookSync.current.checkHealthConnectBackgroundReadStatus();
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* The function `shouldRequestPermissions` checks if permissions should be requested.
|
|
168
|
+
* @returns The function `shouldRequestPermissions` returns a `Promise` that resolves to a `boolean`
|
|
169
|
+
* value.
|
|
170
|
+
*/
|
|
171
|
+
const shouldRequestAndroidBackgroundPermissions = () => {
|
|
172
|
+
isRunningOnAndroid();
|
|
173
|
+
isModuleReady(ready);
|
|
174
|
+
return rookSync.current.shouldRequestAndroidBackgroundPermissions();
|
|
154
175
|
};
|
|
155
176
|
const revokeHealthConnectPermissions = () => {
|
|
156
177
|
isRunningOnAndroid();
|
|
157
178
|
isModuleReady(ready);
|
|
158
|
-
return
|
|
179
|
+
return rookSync.current.revokeHealthConnectPermissions();
|
|
159
180
|
};
|
|
160
181
|
return {
|
|
161
182
|
ready,
|
|
@@ -172,9 +193,11 @@ export const useRookPermissions = () => {
|
|
|
172
193
|
requestAppleHealthPermissions,
|
|
173
194
|
requestHealthConnectPermissions,
|
|
174
195
|
requestSamsungHealthPermissions,
|
|
196
|
+
requestWriteNutritionPermission,
|
|
175
197
|
samsungHealthHasPartialPermissions,
|
|
176
198
|
samsungHealthHasPermissions,
|
|
177
|
-
revokeHealthConnectPermissions
|
|
199
|
+
revokeHealthConnectPermissions,
|
|
200
|
+
shouldRequestAndroidBackgroundPermissions
|
|
178
201
|
};
|
|
179
202
|
};
|
|
180
203
|
//# sourceMappingURL=useRookPermissions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useRef","Platform","useRookSyncGateContext","getNativeModule","isModuleReady","isRunningOnAndroid","isRunningOniOS","nativeModules","SamsungHealthPermission","AppleHealthPermission","useRookPermissions","rookSync","select","android","PERMISSIONS","default","ios","state","ready","dispatch","checkHealthConnectAvailability","current","checkSamsungAvailability","healthConnectHasPermissions","checkHealthConnectPermissions","healthConnectHasPartialPermissions","checkHealthConnectPermissionsPartially","appleHealthHasPermissions","param","checkPermissionsStatus","samsungHealthHasPermissions","checkSamsungHealthPermissions","samsungHealthHasPartialPermissions","checkSamsungHealthPermissionsPartially","requestHealthConnectPermissions","requestAppleHealthPermissions","permissions","bridge","Object","values","result","type","requestSamsungHealthPermissions","requestSamsungPermissions","requestWriteNutritionPermission","openAppleHealthSettings","openHealthConnectSettings","requestAndroidBackgroundPermissions","androidHasBackgroundPermissions","hasAndroidBackgroundPermissions","checkHealthConnectBackgroundReadStatus","shouldRequestAndroidBackgroundPermissions","revokeHealthConnectPermissions"],"sourceRoot":"../../../src","sources":["hooks/useRookPermissions.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
import { useRef } from 'react';
|
|
2
|
+
import { Platform } from 'react-native';
|
|
3
|
+
import { useRookSyncGateContext } from '../context/RookSyncGateContext';
|
|
4
|
+
import getNativeModule from '../utils/getNativeModule';
|
|
5
|
+
import { isModuleReady } from '../utils/isModuleReady';
|
|
6
|
+
import isRunningOnAndroid from '../utils/isRunningOnAndroid';
|
|
7
|
+
import nativeModules from '../utils/nativeModules';
|
|
2
8
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
9
|
+
/**
|
|
10
|
+
* The `useRookSamsungHealth` hook provides various asynchronous methods for managing the configuration
|
|
11
|
+
* of the samsung health integration
|
|
12
|
+
* @returns The `useRookSamsungHealth` function returns an object containing that allow the user to configure
|
|
13
|
+
* the SDK
|
|
14
|
+
*/
|
|
7
15
|
export const useRookSamsungHealth = () => {
|
|
16
|
+
const rookSync = useRef(getNativeModule(Platform.select({
|
|
17
|
+
android: () => nativeModules.android.SYNC,
|
|
18
|
+
default: () => nativeModules.ios.CONFIGURATION
|
|
19
|
+
})()));
|
|
8
20
|
const {
|
|
9
21
|
state: {
|
|
10
22
|
ready
|
|
@@ -13,17 +25,17 @@ export const useRookSamsungHealth = () => {
|
|
|
13
25
|
const enableSamsungSync = async () => {
|
|
14
26
|
isRunningOnAndroid();
|
|
15
27
|
isModuleReady(ready);
|
|
16
|
-
return
|
|
28
|
+
return rookSync.current.enableSamsungSync();
|
|
17
29
|
};
|
|
18
30
|
const isSamsungSyncEnabled = async () => {
|
|
19
31
|
isRunningOnAndroid();
|
|
20
32
|
isModuleReady(ready);
|
|
21
|
-
return
|
|
33
|
+
return rookSync.current.isSamsungSyncEnabled();
|
|
22
34
|
};
|
|
23
35
|
const disableSamsungSync = async () => {
|
|
24
36
|
isRunningOnAndroid();
|
|
25
37
|
isModuleReady(ready);
|
|
26
|
-
return
|
|
38
|
+
return rookSync.current.disableSamsungSync();
|
|
27
39
|
};
|
|
28
40
|
return {
|
|
29
41
|
ready,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useRef","Platform","useRookSyncGateContext","getNativeModule","isModuleReady","isRunningOnAndroid","nativeModules","useRookSamsungHealth","rookSync","select","android","SYNC","default","ios","CONFIGURATION","state","ready","enableSamsungSync","current","isSamsungSyncEnabled","disableSamsungSync"],"sourceRoot":"../../../src","sources":["hooks/useRookSamsungHealth.ts"],"mappings":"AAAA,SAASA,MAAM,QAAQ,OAAO;AAC9B,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,sBAAsB,QAAQ,gCAAgC;AACvE,OAAOC,eAAe,MAAM,0BAA0B;AACtD,SAASC,aAAa,QAAQ,wBAAwB;AACtD,OAAOC,kBAAkB,MAAM,6BAA6B;AAC5D,OAAOC,aAAa,MAAM,wBAAwB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAAGA,CAAA,KAAM;EACxC,MAAMC,QAAQ,GAAGR,MAAM,CACrBG,eAAe,CACbF,QAAQ,CAACQ,MAAM,CAAC;IACdC,OAAO,EAAEA,CAAA,KAAMJ,aAAa,CAACI,OAAO,CAACC,IAAI;IACzCC,OAAO,EAAEA,CAAA,KAAMN,aAAa,CAACO,GAAG,CAACC;EACnC,CAAC,CAAC,CAAC,CACL,CACF,CAAC;EACD,MAAM;IACJC,KAAK,EAAE;MAAEC;IAAM;EACjB,CAAC,GAAGd,sBAAsB,CAAC,CAAC;EAE5B,MAAMe,iBAAiB,GAAG,MAAAA,CAAA,KAA8B;IACtDZ,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACY,KAAK,CAAC;IAEpB,OAAOR,QAAQ,CAACU,OAAO,CAACD,iBAAiB,CAAC,CAAC;EAC7C,CAAC;EAED,MAAME,oBAAoB,GAAG,MAAAA,CAAA,KAA8B;IACzDd,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACY,KAAK,CAAC;IAEpB,OAAOR,QAAQ,CAACU,OAAO,CAACC,oBAAoB,CAAC,CAAC;EAChD,CAAC;EAED,MAAMC,kBAAkB,GAAG,MAAAA,CAAA,KAA8B;IACvDf,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACY,KAAK,CAAC;IAEpB,OAAOR,QAAQ,CAACU,OAAO,CAACE,kBAAkB,CAAC,CAAC;EAC9C,CAAC;EAED,OAAO;IACLJ,KAAK;IACLC,iBAAiB;IACjBG,kBAAkB;IAClBD;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import RookSdk from "../NativeRookSdk.js";
|
|
1
|
+
import { useRef } from 'react';
|
|
4
2
|
import { Platform } from 'react-native';
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
3
|
+
import getNativeModule from '../utils/getNativeModule';
|
|
4
|
+
import { isModuleReady } from '../utils/isModuleReady';
|
|
5
|
+
import { isValidDate } from '../utils/isValidDate';
|
|
6
|
+
import nativeModules from '../utils/nativeModules';
|
|
7
|
+
import { SDKDataSource } from '../types/SDKSources';
|
|
8
|
+
import { useRookSyncGateContext } from '../context/RookSyncGateContext';
|
|
9
|
+
import { packageInfo } from '../utils/packageInfo';
|
|
9
10
|
export const useRookSync = () => {
|
|
11
|
+
const rookSync = useRef(getNativeModule(Platform.select({
|
|
12
|
+
android: () => nativeModules.android.SYNC,
|
|
13
|
+
default: () => nativeModules.ios.MANUAL_SYNC
|
|
14
|
+
})()));
|
|
10
15
|
const {
|
|
11
16
|
state: {
|
|
12
17
|
ready,
|
|
@@ -33,9 +38,9 @@ export const useRookSync = () => {
|
|
|
33
38
|
});
|
|
34
39
|
};
|
|
35
40
|
const syncWithOutParams = async callback => {
|
|
36
|
-
if (
|
|
37
|
-
const hcResult = await convertToPromise([enableLogs],
|
|
38
|
-
|
|
41
|
+
if (packageInfo.isAndroid) {
|
|
42
|
+
const hcResult = await convertToPromise([enableLogs], rookSync.current.sync);
|
|
43
|
+
rookSync.current.shSync(enableLogs, (err, result) => {
|
|
39
44
|
callback({
|
|
40
45
|
healthConnect: {
|
|
41
46
|
status: hcResult.result,
|
|
@@ -49,7 +54,7 @@ export const useRookSync = () => {
|
|
|
49
54
|
});
|
|
50
55
|
return;
|
|
51
56
|
}
|
|
52
|
-
|
|
57
|
+
rookSync.current.sync((error, result) => {
|
|
53
58
|
callback({
|
|
54
59
|
appleHealth: {
|
|
55
60
|
status: result,
|
|
@@ -66,22 +71,24 @@ export const useRookSync = () => {
|
|
|
66
71
|
summary,
|
|
67
72
|
date
|
|
68
73
|
} = params;
|
|
69
|
-
const
|
|
74
|
+
const {
|
|
75
|
+
isAndroid
|
|
76
|
+
} = packageInfo;
|
|
70
77
|
const args = [date];
|
|
71
|
-
let bridgeMethod =
|
|
72
|
-
let shBridgeMethod =
|
|
78
|
+
let bridgeMethod = 'syncByDate';
|
|
79
|
+
let shBridgeMethod = 'shSyncByDate';
|
|
73
80
|
if (summary) {
|
|
74
81
|
args.unshift(summary);
|
|
75
|
-
bridgeMethod =
|
|
76
|
-
shBridgeMethod =
|
|
82
|
+
bridgeMethod = 'syncByDefinition';
|
|
83
|
+
shBridgeMethod = 'shSyncByDefinition';
|
|
77
84
|
}
|
|
78
85
|
const shouldSyncSO = sources.includes(SDKDataSource.APPLE_HEALTH) || sources.includes(SDKDataSource.HEALTH_CONNECT);
|
|
79
86
|
const shouldSyncSH = sources.includes(SDKDataSource.SAMSUNG_HEALTH) && isAndroid;
|
|
80
87
|
if (shouldSyncSO) {
|
|
81
|
-
promisesToRun.push(convertToPromise(args, bridgeMethod));
|
|
88
|
+
promisesToRun.push(convertToPromise(args, rookSync.current[bridgeMethod]));
|
|
82
89
|
}
|
|
83
90
|
if (shouldSyncSH) {
|
|
84
|
-
promisesToRun.push(convertToPromise(args, shBridgeMethod));
|
|
91
|
+
promisesToRun.push(convertToPromise(args, rookSync.current[shBridgeMethod]));
|
|
85
92
|
}
|
|
86
93
|
const results = await Promise.all(promisesToRun);
|
|
87
94
|
const SOResult = shouldSyncSO ? results.shift() : null;
|
|
@@ -110,16 +117,18 @@ export const useRookSync = () => {
|
|
|
110
117
|
event,
|
|
111
118
|
sources
|
|
112
119
|
} = params;
|
|
113
|
-
const
|
|
120
|
+
const {
|
|
121
|
+
isAndroid
|
|
122
|
+
} = packageInfo;
|
|
114
123
|
const promisesToRun = [];
|
|
115
|
-
const parsedEvent = isAndroid ? event : event.toLowerCase();
|
|
124
|
+
const parsedEvent = packageInfo.isAndroid ? event : event.toLowerCase();
|
|
116
125
|
const shouldSyncSO = sources.includes(SDKDataSource.APPLE_HEALTH) || sources.includes(SDKDataSource.HEALTH_CONNECT);
|
|
117
126
|
const shouldSyncSH = sources.includes(SDKDataSource.SAMSUNG_HEALTH) && isAndroid;
|
|
118
127
|
if (shouldSyncSO) {
|
|
119
|
-
if (['hydration', 'nutrition'].includes(params.event) && !isAndroid) throw new Error(`${params.event} is not available on iOS`);
|
|
120
|
-
promisesToRun.push(
|
|
128
|
+
if (['hydration', 'nutrition'].includes(params.event) && !packageInfo.isAndroid) throw new Error(`${params.event} is not available on iOS`);
|
|
129
|
+
promisesToRun.push(rookSync.current.syncEvent(date, parsedEvent));
|
|
121
130
|
}
|
|
122
|
-
if (shouldSyncSH) promisesToRun.push(
|
|
131
|
+
if (shouldSyncSH) promisesToRun.push(rookSync.current.shSyncEvent(date, event));
|
|
123
132
|
await Promise.all(promisesToRun);
|
|
124
133
|
return true;
|
|
125
134
|
};
|