react-native-rook-sdk 2.1.1 → 4.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.
- package/LICENSE +1 -1
- package/README.md +35 -3
- package/RNRookSdk.podspec +22 -0
- package/android/build.gradle +20 -41
- package/android/gradle.properties +5 -5
- package/android/src/main/AndroidManifest.xml +1 -2
- package/android/src/main/java/com/rooksdk/RookSdkModule.kt +11 -222
- package/android/src/main/java/com/rooksdk/RookSdkPackage.kt +24 -33
- package/ios/DateHelper.swift +55 -0
- package/ios/Encodable.swift +25 -0
- package/ios/EncodableDataSource.swift +5 -6
- package/ios/EncodableDataSourceAuthorizer.swift +4 -5
- package/ios/HearRateMapper.swift +42 -0
- package/ios/RookBackground.swift +35 -0
- package/ios/RookConfiguration.swift +116 -0
- package/ios/RookData.swift +170 -0
- package/ios/RookEntry.swift +61 -0
- package/ios/RookPermissions.swift +78 -0
- package/ios/RookSdk-Bridging-Header.h +12 -0
- package/ios/RookSdk.h +14 -2
- package/ios/RookSdk.mm +549 -81
- package/ios/RookSources.swift +74 -116
- package/ios/RookSync.swift +126 -34
- package/ios/boost-boost_privacy-Bridging-Header.h +4 -0
- package/lib/module/NativeRookSdk.js +96 -0
- package/lib/module/NativeRookSdk.js.map +1 -0
- package/lib/module/context/RookSyncGateContext.js +2 -0
- package/lib/module/context/RookSyncGateContext.js.map +1 -1
- package/lib/module/context/RookSyncGateProvider.js +16 -15
- package/lib/module/context/RookSyncGateProvider.js.map +1 -1
- package/lib/module/context/RookSyncGateReducer.js +2 -0
- package/lib/module/context/RookSyncGateReducer.js.map +1 -1
- package/lib/module/context/RookSyncGateTypes.js +2 -0
- package/lib/module/hooks/useRookAPISources.js +66 -0
- package/lib/module/hooks/useRookAPISources.js.map +1 -0
- package/lib/module/hooks/useRookAndroidBackgroundSteps.js +12 -25
- package/lib/module/hooks/useRookAndroidBackgroundSteps.js.map +1 -1
- package/lib/module/hooks/useRookAppleHealth.js +11 -23
- package/lib/module/hooks/useRookAppleHealth.js.map +1 -1
- package/lib/module/hooks/useRookConfiguration.js +10 -109
- package/lib/module/hooks/useRookConfiguration.js.map +1 -1
- package/lib/module/hooks/useRookData.js +35 -33
- package/lib/module/hooks/useRookData.js.map +1 -1
- package/lib/module/hooks/useRookHealthConnect.js +9 -10
- package/lib/module/hooks/useRookHealthConnect.js.map +1 -1
- package/lib/module/hooks/useRookPermissions.js +39 -77
- package/lib/module/hooks/useRookPermissions.js.map +1 -1
- package/lib/module/hooks/useRookSamsungHealth.js +35 -0
- package/lib/module/hooks/useRookSamsungHealth.js.map +1 -0
- package/lib/module/hooks/useRookSync.js +23 -31
- package/lib/module/hooks/useRookSync.js.map +1 -1
- package/lib/module/hooks/useRookVariables.js +24 -18
- package/lib/module/hooks/useRookVariables.js.map +1 -1
- package/lib/module/index.js +18 -5
- package/lib/module/index.js.map +1 -1
- package/lib/module/modules/hook/useRookAutoSync.js +22 -36
- 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 +2 -0
- package/lib/module/modules/utils/errors.js.map +1 -1
- package/lib/module/package.json +1 -0
- package/lib/module/types/ActivityEvent.js +2 -0
- package/lib/module/types/AppleHealthPermissions.js +53 -0
- package/lib/module/types/AppleHealthPermissions.js.map +1 -0
- package/lib/module/types/AuthorizedSources.js +2 -0
- package/lib/module/types/BodySummary.js +2 -0
- package/lib/module/types/DataSource.js +10 -0
- package/lib/module/types/DataSource.js.map +1 -1
- package/lib/module/types/HeartRateEvent.js +2 -0
- package/lib/{commonjs/types/DataSource.js.map → module/types/HeartRateEvent.js.map} +1 -1
- package/lib/module/types/PermissionsType.js +1 -1
- package/lib/module/types/PhysicalSummary.js +2 -0
- package/lib/module/types/Rook.js +2 -0
- package/lib/{commonjs/types/SyncTypes.js.map → module/types/Rook.js.map} +1 -1
- package/lib/module/types/SDKSources.js +2 -0
- package/lib/module/types/SDKSources.js.map +1 -1
- package/lib/module/types/SamsungHealthPermissions.js +3 -0
- package/lib/module/types/SamsungHealthPermissions.js.map +1 -1
- package/lib/module/types/SleepSummary.js +2 -0
- package/lib/module/types/SummaryTypes.js +1 -1
- package/lib/module/types/SyncTypes.js +28 -1
- package/lib/module/types/SyncTypes.js.map +1 -1
- package/lib/module/utils/isModuleReady.js +2 -0
- package/lib/module/utils/isModuleReady.js.map +1 -1
- package/lib/module/utils/isRunningOnAndroid.js +2 -0
- package/lib/module/utils/isRunningOnAndroid.js.map +1 -1
- package/lib/module/utils/isRunningOniOS.js +2 -0
- package/lib/module/utils/isRunningOniOS.js.map +1 -1
- package/lib/module/utils/isValidDate.js +2 -0
- package/lib/module/utils/isValidDate.js.map +1 -1
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/NativeRookSdk.d.ts +190 -0
- package/lib/typescript/src/NativeRookSdk.d.ts.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/hooks/useRookAPISources.d.ts +15 -0
- package/lib/typescript/src/hooks/useRookAPISources.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRookAndroidBackgroundSteps.d.ts +0 -1
- package/lib/typescript/src/hooks/useRookAndroidBackgroundSteps.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookAppleHealth.d.ts +1 -2
- package/lib/typescript/src/hooks/useRookAppleHealth.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookConfiguration.d.ts +0 -8
- package/lib/typescript/src/hooks/useRookConfiguration.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookData.d.ts +2 -0
- 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 +11 -12
- package/lib/typescript/src/hooks/useRookPermissions.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookSamsungHealth.d.ts +7 -0
- package/lib/typescript/src/hooks/useRookSamsungHealth.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRookSync.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookVariables.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +19 -4
- 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/AppleHealthPermissions.d.ts +50 -0
- package/lib/typescript/src/types/AppleHealthPermissions.d.ts.map +1 -0
- package/lib/typescript/src/types/AuthorizedSources.d.ts +3 -3
- package/lib/typescript/src/types/AuthorizedSources.d.ts.map +1 -1
- package/lib/typescript/src/types/DataSource.d.ts +8 -1
- package/lib/typescript/src/types/DataSource.d.ts.map +1 -1
- package/lib/typescript/src/types/HeartRateEvent.d.ts +24 -0
- package/lib/typescript/src/types/HeartRateEvent.d.ts.map +1 -0
- package/lib/typescript/src/types/PermissionsType.d.ts +0 -4
- package/lib/typescript/src/types/PermissionsType.d.ts.map +1 -1
- package/lib/typescript/src/types/Rook.d.ts +9 -0
- package/lib/typescript/src/types/Rook.d.ts.map +1 -0
- package/lib/typescript/src/types/SamsungHealthPermissions.d.ts +1 -0
- package/lib/typescript/src/types/SamsungHealthPermissions.d.ts.map +1 -1
- package/lib/typescript/src/types/SyncTypes.d.ts +28 -5
- package/lib/typescript/src/types/SyncTypes.d.ts.map +1 -1
- package/lib/typescript/src/utils/isModuleReady.d.ts.map +1 -1
- package/lib/typescript/src/utils/isValidDate.d.ts.map +1 -1
- package/package.json +94 -98
- package/src/NativeRookSdk.ts +282 -0
- package/{lib/commonjs/context/RookSyncGateContext.js → src/context/RookSyncGateContext.ts} +10 -13
- package/src/context/RookSyncGateProvider.tsx +78 -0
- package/{lib/commonjs/context/RookSyncGateReducer.js → src/context/RookSyncGateReducer.ts} +12 -33
- package/src/context/RookSyncGateTypes.ts +34 -0
- package/src/hooks/useRookAPISources.ts +83 -0
- package/src/hooks/useRookAndroidBackgroundSteps.ts +81 -0
- package/src/hooks/useRookAppleHealth.ts +55 -0
- package/src/hooks/useRookConfiguration.ts +82 -0
- package/src/hooks/useRookData.ts +122 -0
- package/src/hooks/useRookHealthConnect.ts +59 -0
- package/src/hooks/useRookPermissions.ts +224 -0
- package/src/hooks/useRookSamsungHealth.ts +37 -0
- package/src/hooks/useRookSync.ts +157 -0
- package/src/hooks/useRookVariables.ts +77 -0
- package/src/index.tsx +28 -0
- package/src/modules/hook/useRookAutoSync.ts +305 -0
- package/src/modules/types/sendMessageBroadcast.ts +5 -0
- package/src/modules/utils/errors.ts +9 -0
- package/src/types/ActivityEvent.ts +159 -0
- package/src/types/AppleHealthPermissions.ts +49 -0
- package/src/types/AuthorizedSources.ts +33 -0
- package/src/types/BodySummary.ts +116 -0
- package/src/types/DataSource.ts +16 -0
- package/src/types/HeartRateEvent.ts +26 -0
- package/src/types/PermissionsType.ts +9 -0
- package/src/types/PhysicalSummary.ts +84 -0
- package/src/types/Rook.ts +8 -0
- package/src/types/SDKSources.ts +5 -0
- package/src/types/SamsungHealthPermissions.ts +16 -0
- package/src/types/SleepSummary.ts +66 -0
- package/src/types/SummaryTypes.ts +70 -0
- package/src/types/SyncTypes.ts +63 -0
- package/{lib/commonjs/utils/isModuleReady.js → src/utils/isModuleReady.ts} +4 -10
- package/src/utils/isRunningOnAndroid.ts +10 -0
- package/src/utils/isRunningOniOS.ts +10 -0
- package/{lib/commonjs/utils/isValidDate.js → src/utils/isValidDate.ts} +5 -10
- package/android/src/main/AndroidManifestNew.xml +0 -36
- package/android/src/main/java/com/rooksdk/broadcasts/AndroidPermissionsReceiverTransmitter.kt +0 -65
- package/android/src/main/java/com/rooksdk/broadcasts/HealthConnectPermissionsReceiverTransmitter.kt +0 -70
- package/android/src/main/java/com/rooksdk/broadcasts/SamsungHealthPermissionsReceiverTransmitter.kt +0 -52
- package/android/src/main/java/com/rooksdk/modules/RookBackgroundSyncModule.kt +0 -85
- package/android/src/main/java/com/rooksdk/modules/RookConfigurationModule.kt +0 -148
- package/android/src/main/java/com/rooksdk/modules/RookLocalData.kt +0 -247
- package/android/src/main/java/com/rooksdk/modules/RookPermissionsModule.kt +0 -309
- package/android/src/main/java/com/rooksdk/modules/RookStepsModule.kt +0 -105
- package/android/src/main/java/com/rooksdk/modules/RookSyncModule.kt +0 -496
- package/android/src/main/java/com/rooksdk/utils/DatasourcesUtils.kt +0 -63
- package/android/src/main/java/com/rooksdk/utils/PermissionConversion.kt +0 -21
- package/android/src/main/java/com/rooksdk/utils/ReadableToWritable.kt +0 -64
- package/android/src/main/java/com/rooksdk/utils/RookDateTime.kt +0 -20
- package/android/src/main/java/com/rooksdk/utils/SamsungAvailability.kt +0 -21
- package/android/src/main/java/com/rooksdk/utils/Source.kt +0 -6
- package/android/src/main/java/com/rooksdk/utils/StringToSyncType.kt +0 -58
- package/android/src/main/java/com/rooksdk/utils/serializers/InstantSerializer.kt +0 -19
- package/android/src/main/java/com/rooksdk/utils/serializers/LocalDateSerializer.kt +0 -21
- package/android/src/main/res/drawable/ic_health_connect.xml +0 -19
- package/android/src/main/res/values/themes.xml +0 -3
- package/ios/EncodableRookDataSource.swift +0 -36
- package/ios/EncodableStatusDataSources.swift +0 -47
- package/ios/RookBackgroundModule.h +0 -5
- package/ios/RookBackgroundModule.mm +0 -89
- package/ios/RookConfigurationModule.h +0 -5
- package/ios/RookConfigurationModule.mm +0 -163
- package/ios/RookExternalModule.h +0 -5
- package/ios/RookExternalModule.m +0 -27
- package/ios/RookLocalData.swift +0 -152
- package/ios/RookPermissionsModule.h +0 -5
- package/ios/RookPermissionsModule.mm +0 -180
- package/ios/RookSourcesModule.h +0 -5
- package/ios/RookSourcesModule.mm +0 -67
- package/ios/RookSync.h +0 -5
- package/ios/RookSync.m +0 -27
- package/ios/RookSyncModule.h +0 -5
- package/ios/RookSyncModule.mm +0 -476
- package/ios/SwiftTest.swift +0 -18
- package/ios/react-native-rook-sdk-Bridging-Header.h +0 -12
- package/lib/commonjs/context/RookSyncGateContext.js.map +0 -1
- package/lib/commonjs/context/RookSyncGateProvider.js +0 -98
- package/lib/commonjs/context/RookSyncGateProvider.js.map +0 -1
- package/lib/commonjs/context/RookSyncGateReducer.js.map +0 -1
- package/lib/commonjs/context/RookSyncGateTypes.js +0 -6
- package/lib/commonjs/context/RookSyncGateTypes.js.map +0 -1
- package/lib/commonjs/context/index.js +0 -14
- package/lib/commonjs/context/index.js.map +0 -1
- package/lib/commonjs/hooks/index.js +0 -90
- package/lib/commonjs/hooks/index.js.map +0 -1
- package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js +0 -100
- package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js.map +0 -1
- package/lib/commonjs/hooks/useRookAppleHealth.js +0 -74
- package/lib/commonjs/hooks/useRookAppleHealth.js.map +0 -1
- package/lib/commonjs/hooks/useRookAppleHealthVariables.js +0 -48
- package/lib/commonjs/hooks/useRookAppleHealthVariables.js.map +0 -1
- package/lib/commonjs/hooks/useRookConfiguration.js +0 -188
- package/lib/commonjs/hooks/useRookConfiguration.js.map +0 -1
- package/lib/commonjs/hooks/useRookData.js +0 -100
- package/lib/commonjs/hooks/useRookData.js.map +0 -1
- package/lib/commonjs/hooks/useRookDataSources.js +0 -118
- package/lib/commonjs/hooks/useRookDataSources.js.map +0 -1
- package/lib/commonjs/hooks/useRookEvents.js +0 -225
- package/lib/commonjs/hooks/useRookEvents.js.map +0 -1
- package/lib/commonjs/hooks/useRookHealthConnect.js +0 -70
- package/lib/commonjs/hooks/useRookHealthConnect.js.map +0 -1
- package/lib/commonjs/hooks/useRookPermissions.js +0 -226
- package/lib/commonjs/hooks/useRookPermissions.js.map +0 -1
- package/lib/commonjs/hooks/useRookSummaries.js +0 -85
- package/lib/commonjs/hooks/useRookSummaries.js.map +0 -1
- package/lib/commonjs/hooks/useRookSync.js +0 -147
- package/lib/commonjs/hooks/useRookSync.js.map +0 -1
- package/lib/commonjs/hooks/useRookVariables.js +0 -69
- package/lib/commonjs/hooks/useRookVariables.js.map +0 -1
- package/lib/commonjs/index.js +0 -56
- package/lib/commonjs/index.js.map +0 -1
- package/lib/commonjs/modules/hook/useRookAutoSync.js +0 -262
- package/lib/commonjs/modules/hook/useRookAutoSync.js.map +0 -1
- package/lib/commonjs/modules/types/sendMessageBroadcast.js +0 -2
- package/lib/commonjs/modules/types/sendMessageBroadcast.js.map +0 -1
- package/lib/commonjs/modules/utils/errors.js +0 -12
- package/lib/commonjs/modules/utils/errors.js.map +0 -1
- package/lib/commonjs/types/ActivityEvent.js +0 -6
- package/lib/commonjs/types/ActivityEvent.js.map +0 -1
- package/lib/commonjs/types/AuthorizedSources.js +0 -2
- package/lib/commonjs/types/AuthorizedSources.js.map +0 -1
- package/lib/commonjs/types/BodySummary.js +0 -6
- package/lib/commonjs/types/BodySummary.js.map +0 -1
- package/lib/commonjs/types/DataSource.js +0 -2
- package/lib/commonjs/types/PermissionsType.js +0 -2
- package/lib/commonjs/types/PermissionsType.js.map +0 -1
- package/lib/commonjs/types/PhysicalSummary.js +0 -6
- package/lib/commonjs/types/PhysicalSummary.js.map +0 -1
- package/lib/commonjs/types/SDKSources.js +0 -13
- package/lib/commonjs/types/SDKSources.js.map +0 -1
- package/lib/commonjs/types/SamsungHealthPermissions.js +0 -23
- package/lib/commonjs/types/SamsungHealthPermissions.js.map +0 -1
- package/lib/commonjs/types/SleepSummary.js +0 -6
- package/lib/commonjs/types/SleepSummary.js.map +0 -1
- package/lib/commonjs/types/SummaryTypes.js +0 -2
- package/lib/commonjs/types/SummaryTypes.js.map +0 -1
- package/lib/commonjs/types/SyncTypes.js +0 -6
- package/lib/commonjs/utils/credentials.js +0 -12
- package/lib/commonjs/utils/credentials.js.map +0 -1
- package/lib/commonjs/utils/getNativeModule.js +0 -29
- package/lib/commonjs/utils/getNativeModule.js.map +0 -1
- package/lib/commonjs/utils/getRookModule.js +0 -28
- package/lib/commonjs/utils/getRookModule.js.map +0 -1
- package/lib/commonjs/utils/isModuleReady.js.map +0 -1
- package/lib/commonjs/utils/isRunningOnAndroid.js +0 -15
- package/lib/commonjs/utils/isRunningOnAndroid.js.map +0 -1
- package/lib/commonjs/utils/isRunningOniOS.js +0 -15
- package/lib/commonjs/utils/isRunningOniOS.js.map +0 -1
- package/lib/commonjs/utils/isValidDate.js.map +0 -1
- package/lib/commonjs/utils/nativeModules.js +0 -28
- package/lib/commonjs/utils/nativeModules.js.map +0 -1
- package/lib/commonjs/utils/packageInfo.js +0 -13
- package/lib/commonjs/utils/packageInfo.js.map +0 -1
- package/lib/module/context/index.js +0 -2
- package/lib/module/context/index.js.map +0 -1
- package/lib/module/hooks/index.js +0 -13
- package/lib/module/hooks/index.js.map +0 -1
- package/lib/module/hooks/useRookAppleHealthVariables.js +0 -41
- package/lib/module/hooks/useRookAppleHealthVariables.js.map +0 -1
- package/lib/module/hooks/useRookDataSources.js +0 -110
- package/lib/module/hooks/useRookDataSources.js.map +0 -1
- package/lib/module/hooks/useRookEvents.js +0 -218
- package/lib/module/hooks/useRookEvents.js.map +0 -1
- package/lib/module/hooks/useRookSummaries.js +0 -78
- package/lib/module/hooks/useRookSummaries.js.map +0 -1
- package/lib/module/utils/credentials.js +0 -6
- package/lib/module/utils/credentials.js.map +0 -1
- package/lib/module/utils/getNativeModule.js +0 -23
- package/lib/module/utils/getNativeModule.js.map +0 -1
- package/lib/module/utils/getRookModule.js +0 -22
- package/lib/module/utils/getRookModule.js.map +0 -1
- package/lib/module/utils/nativeModules.js +0 -22
- package/lib/module/utils/nativeModules.js.map +0 -1
- package/lib/module/utils/packageInfo.js +0 -7
- package/lib/module/utils/packageInfo.js.map +0 -1
- package/lib/typescript/src/context/index.d.ts +0 -2
- package/lib/typescript/src/context/index.d.ts.map +0 -1
- package/lib/typescript/src/hooks/index.d.ts +0 -13
- package/lib/typescript/src/hooks/index.d.ts.map +0 -1
- package/lib/typescript/src/hooks/useRookAppleHealthVariables.d.ts +0 -15
- package/lib/typescript/src/hooks/useRookAppleHealthVariables.d.ts.map +0 -1
- package/lib/typescript/src/hooks/useRookDataSources.d.ts +0 -22
- package/lib/typescript/src/hooks/useRookDataSources.d.ts.map +0 -1
- package/lib/typescript/src/hooks/useRookEvents.d.ts +0 -26
- package/lib/typescript/src/hooks/useRookEvents.d.ts.map +0 -1
- package/lib/typescript/src/hooks/useRookSummaries.d.ts +0 -14
- package/lib/typescript/src/hooks/useRookSummaries.d.ts.map +0 -1
- package/lib/typescript/src/utils/credentials.d.ts +0 -5
- package/lib/typescript/src/utils/credentials.d.ts.map +0 -1
- package/lib/typescript/src/utils/getNativeModule.d.ts +0 -10
- package/lib/typescript/src/utils/getNativeModule.d.ts.map +0 -1
- package/lib/typescript/src/utils/getRookModule.d.ts +0 -9
- package/lib/typescript/src/utils/getRookModule.d.ts.map +0 -1
- package/lib/typescript/src/utils/nativeModules.d.ts +0 -23
- package/lib/typescript/src/utils/nativeModules.d.ts.map +0 -1
- package/lib/typescript/src/utils/packageInfo.d.ts +0 -6
- package/lib/typescript/src/utils/packageInfo.d.ts.map +0 -1
- package/react-native-rook-sdk.podspec +0 -45
|
@@ -1,85 +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 kotlinx.coroutines.CoroutineScope
|
|
9
|
-
import kotlinx.coroutines.Dispatchers
|
|
10
|
-
import kotlinx.coroutines.SupervisorJob
|
|
11
|
-
import kotlinx.coroutines.launch
|
|
12
|
-
|
|
13
|
-
class RookBackgroundSyncModule (reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) {
|
|
14
|
-
|
|
15
|
-
private val backgroundSyncManager = RookBackgroundSyncManager(reactContext)
|
|
16
|
-
|
|
17
|
-
private val scope: CoroutineScope by lazy {
|
|
18
|
-
CoroutineScope(SupervisorJob() + Dispatchers.Main)
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
override fun getName(): String {
|
|
22
|
-
return "RookBackgroundModule"
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Schedules the background synchronization of health data using Rook.
|
|
27
|
-
*
|
|
28
|
-
* This function enables automatic background data synchronization with Rook.
|
|
29
|
-
* It ensures that health data is periodically fetched and sent to Rook’s API
|
|
30
|
-
* based on the defined configuration.
|
|
31
|
-
*
|
|
32
|
-
* If the scheduling is successful, the promise resolves with "SUCCESS".
|
|
33
|
-
* If an error occurs, the promise rejects with an error message.
|
|
34
|
-
*
|
|
35
|
-
* @param promise A React Native promise that resolves when the sync is scheduled successfully or rejects with an error.
|
|
36
|
-
*/
|
|
37
|
-
@ReactMethod
|
|
38
|
-
fun scheduleBackgroundSync(enableLogs: Boolean, promise: Promise) {
|
|
39
|
-
try {
|
|
40
|
-
backgroundSyncManager.schedule(enableLogs)
|
|
41
|
-
promise.resolve(true)
|
|
42
|
-
}
|
|
43
|
-
catch (e: Exception) {
|
|
44
|
-
promise.reject(e)
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Cancels the scheduled background synchronization of health data.
|
|
51
|
-
*
|
|
52
|
-
* This function stops the automatic background sync previously scheduled using Rook.
|
|
53
|
-
* It ensures that no further health data is fetched and sent until scheduled again.
|
|
54
|
-
*
|
|
55
|
-
* If the cancellation is successful, the promise resolves with "SUCCESS".
|
|
56
|
-
* If an error occurs, the promise rejects with an error message.
|
|
57
|
-
*
|
|
58
|
-
* @param promise A React Native promise that resolves when the sync is canceled successfully or rejects with an error.
|
|
59
|
-
*/
|
|
60
|
-
@ReactMethod
|
|
61
|
-
fun cancelBackgroundSync(promise: Promise) {
|
|
62
|
-
scope.launch {
|
|
63
|
-
try {
|
|
64
|
-
backgroundSyncManager.cancel()
|
|
65
|
-
promise.resolve(true)
|
|
66
|
-
} catch (e: Exception) {
|
|
67
|
-
promise.reject(e)
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
@ReactMethod
|
|
73
|
-
fun isBackgroundSyncEnabled(promise: Promise) {
|
|
74
|
-
scope.launch {
|
|
75
|
-
backgroundSyncManager.isScheduled().fold(
|
|
76
|
-
{
|
|
77
|
-
promise.resolve(it)
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
promise.reject(it)
|
|
81
|
-
}
|
|
82
|
-
)
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
@@ -1,148 +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.facebook.react.bridge.ReadableArray
|
|
8
|
-
import com.rookmotion.rook.sdk.RookConfigurationManager
|
|
9
|
-
import com.rooksdk.utils.DatasourcesUtils
|
|
10
|
-
import com.rooksdk.utils.SamsungAvailability
|
|
11
|
-
import com.rooksdk.utils.Source
|
|
12
|
-
import io.tryrook.sdk.samsung.RookSamsung
|
|
13
|
-
import io.tryrook.sdk.samsung.domain.enums.SamsungHealthAvailability
|
|
14
|
-
import kotlinx.coroutines.CoroutineScope
|
|
15
|
-
import kotlinx.coroutines.Dispatchers
|
|
16
|
-
import kotlinx.coroutines.SupervisorJob
|
|
17
|
-
import kotlinx.coroutines.launch
|
|
18
|
-
|
|
19
|
-
class RookConfigurationModule(
|
|
20
|
-
reactContext: ReactApplicationContext,
|
|
21
|
-
private val rookConfigurationManager: RookConfigurationManager,
|
|
22
|
-
private val rookSamsung: RookSamsung,
|
|
23
|
-
): ReactContextBaseJavaModule(reactContext) {
|
|
24
|
-
|
|
25
|
-
private val scope: CoroutineScope by lazy {
|
|
26
|
-
CoroutineScope(SupervisorJob() + Dispatchers.Main)
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Retrieves the currently stored user ID in the Rook SDK configuration.
|
|
31
|
-
* @param promise A promise object to handle the result (resolved with the user ID or rejected with an error).
|
|
32
|
-
*/
|
|
33
|
-
@ReactMethod
|
|
34
|
-
fun getUserID(promise: Promise) {
|
|
35
|
-
scope.launch {
|
|
36
|
-
try {
|
|
37
|
-
val user = rookConfigurationManager.getUserID()
|
|
38
|
-
promise.resolve(user)
|
|
39
|
-
}
|
|
40
|
-
catch (e: Exception) {
|
|
41
|
-
promise.reject(e)
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Updates the user ID in the Rook SDK configuration.
|
|
48
|
-
* @param userID The new user ID to be set.
|
|
49
|
-
* @param promise A promise object to handle the result (resolved on success, rejected on failure).
|
|
50
|
-
*/
|
|
51
|
-
@ReactMethod
|
|
52
|
-
fun updateUserID(userID: String, promise: Promise) {
|
|
53
|
-
scope.launch {
|
|
54
|
-
try {
|
|
55
|
-
if (SamsungAvailability.isSamsungAvailable(rookSamsung)) {
|
|
56
|
-
val r = rookSamsung.updateUserID(userID).getOrNull()
|
|
57
|
-
if (r == null) println("We couldn't initiate the user id in Samsung Health")
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
val result = rookConfigurationManager.updateUserID(userID)
|
|
61
|
-
result.getOrThrow()
|
|
62
|
-
|
|
63
|
-
promise.resolve(true)
|
|
64
|
-
} catch (e: Exception) {
|
|
65
|
-
promise.reject(e)
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Clears the user ID stored in the Rook SDK configuration.
|
|
72
|
-
* @param promise A promise object to handle the result (resolved on success, rejected on failure).
|
|
73
|
-
*/
|
|
74
|
-
@ReactMethod
|
|
75
|
-
fun clearUserID(rawSources: ReadableArray, promise: Promise) {
|
|
76
|
-
scope.launch {
|
|
77
|
-
try {
|
|
78
|
-
val sources = DatasourcesUtils.readableArrayToSourceList(rawSources)
|
|
79
|
-
|
|
80
|
-
if(Source.HEALTH_CONNECT in sources) {
|
|
81
|
-
val hcResult = rookConfigurationManager.clearUserID()
|
|
82
|
-
hcResult.getOrThrow()
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
if(Source.SAMSUNG_HEALTH in sources && SamsungAvailability.isSamsungAvailable(rookSamsung)) {
|
|
86
|
-
val hcResult = rookSamsung.clearUserID()
|
|
87
|
-
hcResult.getOrThrow()
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
promise.resolve(true)
|
|
91
|
-
}
|
|
92
|
-
catch (e: Exception) {
|
|
93
|
-
promise.reject(e)
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Deletes the user data from the Rook platform by removing the user from the system.
|
|
100
|
-
* @param promise A promise object to handle the result (resolved on success, rejected on failure).
|
|
101
|
-
*/
|
|
102
|
-
@ReactMethod
|
|
103
|
-
fun removeUserFromRook(rawSources: ReadableArray, promise: Promise) {
|
|
104
|
-
scope.launch {
|
|
105
|
-
try {
|
|
106
|
-
val sources = DatasourcesUtils.readableArrayToSourceList(rawSources)
|
|
107
|
-
|
|
108
|
-
if(Source.HEALTH_CONNECT in sources) {
|
|
109
|
-
val hcResult = rookConfigurationManager.deleteUserFromRook()
|
|
110
|
-
hcResult.getOrThrow()
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
if(Source.SAMSUNG_HEALTH in sources && SamsungAvailability.isSamsungAvailable(rookSamsung)) {
|
|
114
|
-
val hcResult = rookSamsung.deleteUserFromRook()
|
|
115
|
-
hcResult.getOrThrow()
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
promise.resolve(true)
|
|
119
|
-
}
|
|
120
|
-
catch (e: Exception) {
|
|
121
|
-
promise.reject(e)
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Synchronizes the user's time zone with the Rook platform to ensure data is processed correctly.
|
|
128
|
-
* @param promise A promise object to handle the result (resolved on success, rejected on failure).
|
|
129
|
-
*/
|
|
130
|
-
@ReactMethod
|
|
131
|
-
fun syncUserTimeZone(promise: Promise) {
|
|
132
|
-
scope.launch {
|
|
133
|
-
val result = rookConfigurationManager.syncUserTimeZone()
|
|
134
|
-
|
|
135
|
-
result.fold({
|
|
136
|
-
promise.resolve(true)
|
|
137
|
-
}, {
|
|
138
|
-
promise.reject(it)
|
|
139
|
-
})
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
override fun getName(): String {
|
|
144
|
-
return "RookConfigurationModule"
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}
|
|
@@ -1,247 +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.google.gson.Gson
|
|
8
|
-
import com.google.gson.GsonBuilder
|
|
9
|
-
import com.rookmotion.rook.sdk.RookSyncManager
|
|
10
|
-
import com.rookmotion.rook.sdk.domain.model.HCActivityEvent
|
|
11
|
-
import com.rookmotion.rook.sdk.domain.model.HCBodySummary
|
|
12
|
-
import com.rookmotion.rook.sdk.domain.model.HCPhysicalSummary
|
|
13
|
-
import com.rookmotion.rook.sdk.domain.model.HCSleepSummary
|
|
14
|
-
import com.rookmotion.rook.sdk.domain.model.SyncStatusWithData
|
|
15
|
-
import com.rooksdk.utils.serializers.InstantSerializer
|
|
16
|
-
import com.rooksdk.utils.RookDateTime
|
|
17
|
-
import com.rooksdk.utils.serializers.LocalDateSerializer
|
|
18
|
-
import io.tryrook.sdk.samsung.RookSamsung
|
|
19
|
-
import io.tryrook.sdk.samsung.domain.model.SHActivityEvent
|
|
20
|
-
import io.tryrook.sdk.samsung.domain.model.SHBodySummary
|
|
21
|
-
import io.tryrook.sdk.samsung.domain.model.SHPhysicalSummary
|
|
22
|
-
import io.tryrook.sdk.samsung.domain.model.SHSleepSummary
|
|
23
|
-
import io.tryrook.sdk.samsung.domain.model.SHSyncStatusWithData
|
|
24
|
-
import kotlinx.coroutines.CoroutineScope
|
|
25
|
-
import kotlinx.coroutines.Dispatchers
|
|
26
|
-
import kotlinx.coroutines.SupervisorJob
|
|
27
|
-
import kotlinx.coroutines.launch
|
|
28
|
-
import java.time.Instant
|
|
29
|
-
import java.time.LocalDate
|
|
30
|
-
|
|
31
|
-
class RookLocalData (
|
|
32
|
-
reactContext: ReactApplicationContext,
|
|
33
|
-
private val rookSamsung: RookSamsung,
|
|
34
|
-
): ReactContextBaseJavaModule(reactContext){
|
|
35
|
-
|
|
36
|
-
private val scope: CoroutineScope by lazy {
|
|
37
|
-
CoroutineScope(SupervisorJob() + Dispatchers.Main)
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
private val rookHealthConnect by lazy {
|
|
41
|
-
RookSyncManager(reactContext)
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
private val gsonBuilder: Gson by lazy {
|
|
45
|
-
GsonBuilder()
|
|
46
|
-
.registerTypeAdapter(Instant::class.java, InstantSerializer())
|
|
47
|
-
.registerTypeAdapter(LocalDate::class.java, LocalDateSerializer())
|
|
48
|
-
.create()
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
@ReactMethod
|
|
52
|
-
fun getSamsungSleepSummary(date: String, promise: Promise) {
|
|
53
|
-
val localDate = RookDateTime.stringToLocalDate(date)
|
|
54
|
-
|
|
55
|
-
scope.launch {
|
|
56
|
-
rookSamsung.getSleepSummary(localDate).fold(
|
|
57
|
-
{
|
|
58
|
-
when (it) {
|
|
59
|
-
SHSyncStatusWithData.RecordsNotFound -> {
|
|
60
|
-
promise.reject("SamsungSleepSummary", "Records Not Found For Date: $date")
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
is SHSyncStatusWithData.Synced<List<SHSleepSummary>> -> {
|
|
64
|
-
promise.resolve(gsonBuilder.toJson(it.data))
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
promise.reject(it)
|
|
70
|
-
},
|
|
71
|
-
)
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
@ReactMethod
|
|
76
|
-
fun getSamsungPhysicalSummary(date: String, promise: Promise) {
|
|
77
|
-
val localDate = RookDateTime.stringToLocalDate(date)
|
|
78
|
-
|
|
79
|
-
scope.launch {
|
|
80
|
-
rookSamsung.getPhysicalSummary(localDate).fold(
|
|
81
|
-
{
|
|
82
|
-
when (it) {
|
|
83
|
-
SHSyncStatusWithData.RecordsNotFound -> {
|
|
84
|
-
promise.reject("SamsungPhysicalSummary", "Records Not Found For Date: $date")
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
is SHSyncStatusWithData.Synced<SHPhysicalSummary> -> {
|
|
88
|
-
promise.resolve(gsonBuilder.toJson(it.data))
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
promise.reject(it)
|
|
94
|
-
},
|
|
95
|
-
)
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
@ReactMethod
|
|
100
|
-
fun getSamsungBodySummary(date: String, promise: Promise) {
|
|
101
|
-
val localDate = RookDateTime.stringToLocalDate(date)
|
|
102
|
-
|
|
103
|
-
scope.launch {
|
|
104
|
-
rookSamsung.getBodySummary(localDate).fold(
|
|
105
|
-
{
|
|
106
|
-
when (it) {
|
|
107
|
-
SHSyncStatusWithData.RecordsNotFound -> {
|
|
108
|
-
promise.reject("SamsungBodySummary", "Records Not Found For Date: $date")
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
is SHSyncStatusWithData.Synced<SHBodySummary> -> {
|
|
112
|
-
promise.resolve(gsonBuilder.toJson(it.data))
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
},
|
|
116
|
-
{
|
|
117
|
-
promise.reject(it)
|
|
118
|
-
},
|
|
119
|
-
)
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
@ReactMethod
|
|
124
|
-
fun getSamsungActivityEvents(date: String, promise: Promise) {
|
|
125
|
-
val localDate = RookDateTime.stringToLocalDate(date)
|
|
126
|
-
|
|
127
|
-
scope.launch {
|
|
128
|
-
rookSamsung.getActivityEvents(localDate).fold(
|
|
129
|
-
{
|
|
130
|
-
when (it) {
|
|
131
|
-
SHSyncStatusWithData.RecordsNotFound -> {
|
|
132
|
-
promise.reject("SamsungActivityEvents", "Records Not Found For Date: $date")
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
is SHSyncStatusWithData.Synced<List<SHActivityEvent>> -> {
|
|
136
|
-
promise.resolve(gsonBuilder.toJson(it.data))
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
promise.reject(it)
|
|
142
|
-
},
|
|
143
|
-
)
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
// Health Connect
|
|
148
|
-
@ReactMethod
|
|
149
|
-
fun getHealthConnectSleepSummary(date: String, promise: Promise) {
|
|
150
|
-
val localDate = RookDateTime.stringToLocalDate(date)
|
|
151
|
-
|
|
152
|
-
scope.launch {
|
|
153
|
-
rookHealthConnect.getSleepSummary(localDate).fold(
|
|
154
|
-
{
|
|
155
|
-
when (it) {
|
|
156
|
-
SyncStatusWithData.RecordsNotFound -> {
|
|
157
|
-
promise.reject("HealthConnectSleepSummary", "Records Not Found For Date: $date")
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
is SyncStatusWithData.Synced<List<HCSleepSummary>> -> {
|
|
161
|
-
promise.resolve(gsonBuilder.toJson(it.data))
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
},
|
|
165
|
-
{
|
|
166
|
-
promise.reject(it)
|
|
167
|
-
},
|
|
168
|
-
)
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
@ReactMethod
|
|
173
|
-
fun getHealthConnectPhysicalSummary(date: String, promise: Promise) {
|
|
174
|
-
val localDate = RookDateTime.stringToLocalDate(date)
|
|
175
|
-
|
|
176
|
-
scope.launch {
|
|
177
|
-
rookHealthConnect.getPhysicalSummary(localDate).fold(
|
|
178
|
-
{
|
|
179
|
-
when (it) {
|
|
180
|
-
SyncStatusWithData.RecordsNotFound -> {
|
|
181
|
-
promise.reject("HealthConnectPhysicalSummary", "Records Not Found For Date: $date")
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
is SyncStatusWithData.Synced<HCPhysicalSummary> -> {
|
|
185
|
-
promise.resolve(gsonBuilder.toJson(it.data))
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
promise.reject(it)
|
|
191
|
-
},
|
|
192
|
-
)
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
@ReactMethod
|
|
197
|
-
fun getHealthConnectBodySummary(date: String, promise: Promise) {
|
|
198
|
-
val localDate = RookDateTime.stringToLocalDate(date)
|
|
199
|
-
|
|
200
|
-
scope.launch {
|
|
201
|
-
rookHealthConnect.getBodySummary(localDate).fold(
|
|
202
|
-
{
|
|
203
|
-
when (it) {
|
|
204
|
-
SyncStatusWithData.RecordsNotFound -> {
|
|
205
|
-
promise.reject("HealthConnectBodySummary", "Records Not Found For Date: $date")
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
is SyncStatusWithData.Synced<HCBodySummary> -> {
|
|
209
|
-
promise.resolve(gsonBuilder.toJson(it.data))
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
},
|
|
213
|
-
{
|
|
214
|
-
promise.reject(it)
|
|
215
|
-
},
|
|
216
|
-
)
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
@ReactMethod
|
|
221
|
-
fun getHealthConnectActivityEvents(date: String, promise: Promise) {
|
|
222
|
-
val localDate = RookDateTime.stringToLocalDate(date)
|
|
223
|
-
|
|
224
|
-
scope.launch {
|
|
225
|
-
rookHealthConnect.getActivityEvents(localDate).fold(
|
|
226
|
-
{
|
|
227
|
-
when (it) {
|
|
228
|
-
SyncStatusWithData.RecordsNotFound -> {
|
|
229
|
-
promise.reject("HealthConnectActivityEvents", "Records Not Found For Date: $date")
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
is SyncStatusWithData.Synced<List<HCActivityEvent>> -> {
|
|
233
|
-
promise.resolve(gsonBuilder.toJson(it.data))
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
},
|
|
237
|
-
{
|
|
238
|
-
promise.reject(it)
|
|
239
|
-
},
|
|
240
|
-
)
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
override fun getName(): String {
|
|
245
|
-
return "RookLocalData"
|
|
246
|
-
}
|
|
247
|
-
}
|