react-native-rook-sdk 2.1.2 → 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 +3 -4
- 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,58 +0,0 @@
|
|
|
1
|
-
package com.rooksdk.utils
|
|
2
|
-
|
|
3
|
-
import com.rookmotion.rook.sdk.domain.model.SyncType
|
|
4
|
-
import io.tryrook.sdk.samsung.domain.model.SHSyncType
|
|
5
|
-
|
|
6
|
-
object StringToSyncType {
|
|
7
|
-
|
|
8
|
-
fun stringToSummary(type: String): SyncType.Summary {
|
|
9
|
-
return when(type.lowercase()) {
|
|
10
|
-
"sleep" -> SyncType.Summary.SLEEP
|
|
11
|
-
"body" -> SyncType.Summary.BODY
|
|
12
|
-
"physical" -> SyncType.Summary.PHYSICAL
|
|
13
|
-
else -> SyncType.Summary.BODY
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
fun stringToEvent(value: String): SyncType.Event {
|
|
18
|
-
return when (value.lowercase()) {
|
|
19
|
-
"activity" -> SyncType.Event.ACTIVITY
|
|
20
|
-
"blood_glucose" -> SyncType.Event.BLOOD_GLUCOSE
|
|
21
|
-
"blood_pressure" -> SyncType.Event.BLOOD_PRESSURE
|
|
22
|
-
"body_metrics" -> SyncType.Event.BODY_METRICS
|
|
23
|
-
"heart_rate" -> SyncType.Event.HEART_RATE
|
|
24
|
-
"hydration" -> SyncType.Event.HYDRATION
|
|
25
|
-
"nutrition" -> SyncType.Event.NUTRITION
|
|
26
|
-
"oxygenation" -> SyncType.Event.OXYGENATION
|
|
27
|
-
"temperature" -> SyncType.Event.TEMPERATURE
|
|
28
|
-
"steps" -> SyncType.Event.STEPS
|
|
29
|
-
"calories" -> SyncType.Event.CALORIES
|
|
30
|
-
else -> SyncType.Event.STEPS
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
fun stringToSamsungPillar(value: String): SHSyncType.Summary {
|
|
35
|
-
return when(value.lowercase()) {
|
|
36
|
-
"sleep" -> SHSyncType.Summary.SLEEP
|
|
37
|
-
"body" -> SHSyncType.Summary.BODY
|
|
38
|
-
"physical" -> SHSyncType.Summary.PHYSICAL
|
|
39
|
-
else -> SHSyncType.Summary.BODY
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
fun stringToSamsungEvent(value: String): SHSyncType.Event {
|
|
44
|
-
return when (value.lowercase()) {
|
|
45
|
-
"activity" -> SHSyncType.Event.ACTIVITY
|
|
46
|
-
"blood_glucose" -> SHSyncType.Event.BLOOD_GLUCOSE
|
|
47
|
-
"blood_pressure" -> SHSyncType.Event.BLOOD_PRESSURE
|
|
48
|
-
"body_metrics" -> SHSyncType.Event.BODY_METRICS
|
|
49
|
-
"heart_rate" -> SHSyncType.Event.HEART_RATE
|
|
50
|
-
"hydration" -> SHSyncType.Event.HYDRATION
|
|
51
|
-
"nutrition" -> SHSyncType.Event.NUTRITION
|
|
52
|
-
"oxygenation" -> SHSyncType.Event.OXYGENATION
|
|
53
|
-
"steps" -> SHSyncType.Event.STEPS
|
|
54
|
-
"calories" -> SHSyncType.Event.CALORIES
|
|
55
|
-
else -> SHSyncType.Event.STEPS
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
package com.rooksdk.utils.serializers
|
|
2
|
-
|
|
3
|
-
import com.google.gson.JsonElement
|
|
4
|
-
import com.google.gson.JsonPrimitive
|
|
5
|
-
import com.google.gson.JsonSerializationContext
|
|
6
|
-
import com.google.gson.JsonSerializer
|
|
7
|
-
import java.time.Instant
|
|
8
|
-
import java.lang.reflect.Type
|
|
9
|
-
|
|
10
|
-
class InstantSerializer : JsonSerializer<Instant> {
|
|
11
|
-
override fun serialize(
|
|
12
|
-
src: Instant?,
|
|
13
|
-
typeOfSrc: Type?,
|
|
14
|
-
context: JsonSerializationContext?
|
|
15
|
-
): JsonElement {
|
|
16
|
-
return JsonPrimitive(src?.toString())
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
package com.rooksdk.utils.serializers
|
|
2
|
-
|
|
3
|
-
import com.google.gson.JsonElement
|
|
4
|
-
import com.google.gson.JsonPrimitive
|
|
5
|
-
import com.google.gson.JsonSerializationContext
|
|
6
|
-
import com.google.gson.JsonSerializer
|
|
7
|
-
import java.lang.reflect.Type
|
|
8
|
-
import java.time.LocalDate
|
|
9
|
-
import java.time.format.DateTimeFormatter
|
|
10
|
-
|
|
11
|
-
class LocalDateSerializer : JsonSerializer<LocalDate> {
|
|
12
|
-
private val formatter: DateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
|
|
13
|
-
|
|
14
|
-
override fun serialize(
|
|
15
|
-
src: LocalDate?,
|
|
16
|
-
typeOfSrc: Type?,
|
|
17
|
-
context: JsonSerializationContext?
|
|
18
|
-
): JsonElement {
|
|
19
|
-
return JsonPrimitive(src?.format(formatter))
|
|
20
|
-
}
|
|
21
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
3
|
-
android:width="200dp"
|
|
4
|
-
android:height="200dp"
|
|
5
|
-
android:viewportWidth="512"
|
|
6
|
-
android:viewportHeight="512">
|
|
7
|
-
<path
|
|
8
|
-
android:fillColor="#4285F4"
|
|
9
|
-
android:pathData="M258.3,431.3c-35.1,0 -68.1,-13.3 -92.9,-37.6l44.2,-45.4c26.9,26.2 70.6,26.2 97.6,0l94.4,-92c12.7,-12.4 19.8,-28.9 19.8,-46.3s-7,-33.9 -19.8,-46.3c-26.9,-26.2 -70.6,-26.2 -97.6,0l-17.1,16.7L242.6,135l17.1,-16.7c25,-24.3 58,-37.6 93,-37.6c35.1,0 68.1,13.3 92.9,37.6c25.1,24.4 38.9,57 38.9,91.7s-13.8,67.2 -38.9,91.7l-94.4,92.1C326.4,417.9 293.4,431.3 258.3,431.3z" />
|
|
10
|
-
<path
|
|
11
|
-
android:fillColor="#3DDB85"
|
|
12
|
-
android:pathData="M165.6,393.7L66.5,302l-0.3,-0.3c-25.1,-24.4 -38.9,-57 -38.9,-91.7s13.8,-67.2 38.9,-91.7c24.9,-24.2 57.9,-37.6 92.9,-37.6c35.1,0 68.1,13.3 93,37.5l25.2,24.6l-44.2,45.4L208,163.7c-26.9,-26.2 -70.7,-26.2 -97.6,0c-12.7,12.4 -19.8,28.9 -19.8,46.3c0,17.3 6.9,33.7 19.5,46.1l98.5,91.2L165.6,393.7z" />
|
|
13
|
-
<path
|
|
14
|
-
android:fillColor="#4285F4"
|
|
15
|
-
android:pathData="M165.3,393.7c-24.9,-24.2 -38.6,-56.5 -38.8,-90.9c-0.1,-35.1 13.9,-68.4 39.5,-93.7l0.2,-0.2l91.4,-88.5l44.1,45.5l-91.2,88.4c-13.4,13.3 -20.7,30.4 -20.6,48.3c0.1,17.3 7,33.5 19.6,45.8L165.3,393.7z" />
|
|
16
|
-
<path
|
|
17
|
-
android:fillColor="#3DDB85"
|
|
18
|
-
android:pathData="M302.5,211.3a50.7,50.7 0,1 0,101.4 0a50.7,50.7 0,1 0,-101.4 0z" />
|
|
19
|
-
</vector>
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// EncodableRookDataSource.swift
|
|
3
|
-
// Pods
|
|
4
|
-
//
|
|
5
|
-
// Created by Javier Villanueva on 08/10/25.
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
import Foundation
|
|
9
|
-
import RookSDK
|
|
10
|
-
|
|
11
|
-
struct EncodableRookDataSource: Encodable {
|
|
12
|
-
|
|
13
|
-
private let dataSource: RookSDK.RookDataSource
|
|
14
|
-
|
|
15
|
-
init(_ dataSource: RookSDK.RookDataSource) {
|
|
16
|
-
self.dataSource = dataSource
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
private enum CodingKeys: String, CodingKey {
|
|
20
|
-
case name
|
|
21
|
-
case description
|
|
22
|
-
case imageUrl
|
|
23
|
-
case connected
|
|
24
|
-
case authorizationURL
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
func encode(to encoder: Encoder) throws {
|
|
28
|
-
var container = encoder.container(keyedBy: CodingKeys.self)
|
|
29
|
-
|
|
30
|
-
try container.encode(dataSource.name, forKey: .name)
|
|
31
|
-
try container.encode(dataSource.description, forKey: .description)
|
|
32
|
-
try container.encode(dataSource.imageUrl, forKey: .imageUrl)
|
|
33
|
-
try container.encode(dataSource.connected, forKey: .connected)
|
|
34
|
-
try container.encode(dataSource.authorizationURL, forKey: .authorizationURL)
|
|
35
|
-
}
|
|
36
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// EncodableStatusDataSources.swift
|
|
3
|
-
// react-native-rook-sdk
|
|
4
|
-
//
|
|
5
|
-
// Created by Javier Villanueva on 08/10/25.
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
import Foundation
|
|
9
|
-
import RookSDK
|
|
10
|
-
|
|
11
|
-
struct EncodableStatusDataSources: Encodable {
|
|
12
|
-
private let status: RookSDK.StatusDataSources
|
|
13
|
-
|
|
14
|
-
init(_ status: RookSDK.StatusDataSources) {
|
|
15
|
-
self.status = status
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
private enum CodingKeys: String, CodingKey {
|
|
19
|
-
case oura
|
|
20
|
-
case polar
|
|
21
|
-
case whoop
|
|
22
|
-
case fitbit
|
|
23
|
-
case garmin
|
|
24
|
-
case withings
|
|
25
|
-
case googleFit
|
|
26
|
-
case appleHealth
|
|
27
|
-
case healthConnect
|
|
28
|
-
case android
|
|
29
|
-
case dexcom
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
func encode(to encoder: Encoder) throws {
|
|
33
|
-
var container = encoder.container(keyedBy: CodingKeys.self)
|
|
34
|
-
|
|
35
|
-
try container.encode(status.oura, forKey: .oura)
|
|
36
|
-
try container.encode(status.polar, forKey: .polar)
|
|
37
|
-
try container.encode(status.whoop, forKey: .whoop)
|
|
38
|
-
try container.encode(status.fitbit, forKey: .fitbit)
|
|
39
|
-
try container.encode(status.garmin, forKey: .garmin)
|
|
40
|
-
try container.encode(status.withings, forKey: .withings)
|
|
41
|
-
try container.encode(status.googleFit, forKey: .googleFit)
|
|
42
|
-
try container.encode(status.appleHealth, forKey: .appleHealth)
|
|
43
|
-
try container.encode(status.healthConnect, forKey: .healthConnect)
|
|
44
|
-
try container.encode(status.android, forKey: .android)
|
|
45
|
-
try container.encode(status.dexcom, forKey: .dexcom)
|
|
46
|
-
}
|
|
47
|
-
}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
#import "RookBackgroundModule.h"
|
|
2
|
-
#import "RookSDK/RookSDK-Swift.h"
|
|
3
|
-
|
|
4
|
-
@implementation RookBackgroundModule
|
|
5
|
-
|
|
6
|
-
RCT_EXPORT_MODULE()
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Enable the background sync, this will automatically upload events and summaries
|
|
10
|
-
* at the moment the user enables this feature.
|
|
11
|
-
*
|
|
12
|
-
* @param resolve A block called with a boolean value indicating whether the events were successfully sync.
|
|
13
|
-
* @param reject A block called if an error occurs, such as Apple Health not being installed.
|
|
14
|
-
*/
|
|
15
|
-
RCT_EXPORT_METHOD(enableBackGroundUpdates: (RCTPromiseResolveBlock) resolve
|
|
16
|
-
reject:(RCTPromiseRejectBlock)reject) {
|
|
17
|
-
|
|
18
|
-
[[RookBackGroundSync shared] enableBackGroundForSummaries];
|
|
19
|
-
[[RookBackGroundSync shared] enableBackGroundForEvents];
|
|
20
|
-
resolve(@(YES));
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Disable the background sync
|
|
25
|
-
*
|
|
26
|
-
* @param resolve A block called with a boolean value indicating whether the events were successfully sync.
|
|
27
|
-
* @param reject A block called if an error occurs, such as Apple Health not being installed.
|
|
28
|
-
*/
|
|
29
|
-
RCT_EXPORT_METHOD(disableBackGroundUpdates: (RCTPromiseResolveBlock) resolve
|
|
30
|
-
reject:(RCTPromiseRejectBlock)reject) {
|
|
31
|
-
|
|
32
|
-
[[RookBackGroundSync shared] disableBackGroundForSummaries];
|
|
33
|
-
|
|
34
|
-
[[RookBackGroundSync shared] disableBackGroundForEvents];
|
|
35
|
-
|
|
36
|
-
resolve(@(YES));
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Enable background sync for summaries only
|
|
41
|
-
*
|
|
42
|
-
* @param resolve A block called with a boolean value indicating whether the events were successfully sync.
|
|
43
|
-
* @param reject A block called if an error occurs, such as Apple Health not being installed.
|
|
44
|
-
*/
|
|
45
|
-
RCT_EXPORT_METHOD(enableBackGroundEventUpdates: (RCTPromiseResolveBlock) resolve
|
|
46
|
-
reject:(RCTPromiseRejectBlock)reject) {
|
|
47
|
-
[[RookBackGroundSync shared] enableBackGroundForEvents];
|
|
48
|
-
resolve(@(YES));
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Disable the backGround sync just for events
|
|
53
|
-
*
|
|
54
|
-
* @param resolve A block called with a boolean value indicating whether the events were successfully sync.
|
|
55
|
-
* @param reject A block called if an error occurs, such as Apple Health not being installed.
|
|
56
|
-
*/
|
|
57
|
-
RCT_EXPORT_METHOD(disableBackGroundEventUpdates: (RCTPromiseResolveBlock) resolve
|
|
58
|
-
reject:(RCTPromiseRejectBlock)reject) {
|
|
59
|
-
|
|
60
|
-
[[RookBackGroundSync shared] disableBackGroundForEvents];
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Check if the background sync for summaries are enabled
|
|
65
|
-
*
|
|
66
|
-
* @param resolve A block called with a boolean value indicating whether the events were successfully sync.
|
|
67
|
-
* @param reject A block called if an error occurs, such as Apple Health not being installed.
|
|
68
|
-
*/
|
|
69
|
-
RCT_EXPORT_METHOD(isBackGroundForSummariesEnable: (RCTPromiseResolveBlock) resolve
|
|
70
|
-
reject:(RCTPromiseRejectBlock)reject) {
|
|
71
|
-
|
|
72
|
-
bool result = [[RookBackGroundSync shared] isBackGroundForSummariesEnable];
|
|
73
|
-
resolve(@(result));
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Check if the background sync for events are enabled
|
|
78
|
-
*
|
|
79
|
-
* @param resolve A block called with a boolean value indicating whether the events were successfully sync.
|
|
80
|
-
* @param reject A block called if an error occurs, such as Apple Health not being installed.
|
|
81
|
-
*/
|
|
82
|
-
RCT_EXPORT_METHOD(isBackGroundForEventsEnable: (RCTPromiseResolveBlock) resolve
|
|
83
|
-
reject:(RCTPromiseRejectBlock)reject) {
|
|
84
|
-
|
|
85
|
-
bool result = [[RookBackGroundSync shared] isBackGroundForEventsEnable];
|
|
86
|
-
resolve(@(result));
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
@end
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
#import "RookConfigurationModule.h"
|
|
2
|
-
#import "RookSDK/RookSDK-Swift.h"
|
|
3
|
-
|
|
4
|
-
@implementation RookConfigurationModule
|
|
5
|
-
|
|
6
|
-
RCT_EXPORT_MODULE()
|
|
7
|
-
|
|
8
|
-
UserManager* userManager;
|
|
9
|
-
RookConnectConfigurationManagerObjc *configShared;
|
|
10
|
-
|
|
11
|
-
- (void) checkInstance {
|
|
12
|
-
if (userManager == nil) userManager = [UserManager new];
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Enables background sync.
|
|
17
|
-
*
|
|
18
|
-
* @param resolve A block called upon successfully enabling sync.
|
|
19
|
-
* @param reject A block called if an error occurs (not applicable here).
|
|
20
|
-
*/
|
|
21
|
-
RCT_EXPORT_METHOD(enableSync: (RCTPromiseResolveBlock)resolve
|
|
22
|
-
reject:(RCTPromiseRejectBlock)reject) {
|
|
23
|
-
|
|
24
|
-
[configShared enableSync];
|
|
25
|
-
resolve(@(YES));
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Disable background sync.
|
|
31
|
-
*
|
|
32
|
-
* @param resolve A block called upon successfully enabling sync.
|
|
33
|
-
* @param reject A block called if an error occurs (not applicable here).
|
|
34
|
-
*/
|
|
35
|
-
RCT_EXPORT_METHOD(disableSync: (RCTPromiseResolveBlock)resolve
|
|
36
|
-
reject:(RCTPromiseRejectBlock)reject) {
|
|
37
|
-
|
|
38
|
-
[configShared disableSync];
|
|
39
|
-
resolve(@(YES));
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Checks if background sync is enabled.
|
|
44
|
-
*
|
|
45
|
-
* @param resolve A block called with a boolean value indicating whether sync is enabled.
|
|
46
|
-
* @param reject A block called if an error occurs (not applicable here).
|
|
47
|
-
*/
|
|
48
|
-
RCT_EXPORT_METHOD(isSyncEnable: (RCTPromiseResolveBlock)resolve
|
|
49
|
-
reject:(RCTPromiseRejectBlock)reject) {
|
|
50
|
-
|
|
51
|
-
bool result = [configShared isSyncEnable];
|
|
52
|
-
resolve(@(result));
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Retrieves the user ID from the user manager.
|
|
57
|
-
*
|
|
58
|
-
* @param resolve A block called with the user ID if the operation is successful.
|
|
59
|
-
* @param reject A block called if an error occurs while retrieving the user ID.
|
|
60
|
-
*/
|
|
61
|
-
RCT_EXPORT_METHOD(getUserID: (RCTPromiseResolveBlock)resolve
|
|
62
|
-
reject:(RCTPromiseRejectBlock)reject) {
|
|
63
|
-
[self checkInstance];
|
|
64
|
-
|
|
65
|
-
[userManager readUserIdWithCompletion:^(NSString * _Nullable userID, NSError * _Nullable error) {
|
|
66
|
-
|
|
67
|
-
if(error != nil) {
|
|
68
|
-
reject(error.description, error.localizedDescription, error);
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
resolve(userID);
|
|
73
|
-
|
|
74
|
-
}];
|
|
75
|
-
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Update the user ID from the user manager.
|
|
80
|
-
*
|
|
81
|
-
* @param resolve A block called with the user ID if the operation is successful.
|
|
82
|
-
* @param reject A block called if an error occurs while retrieving the user ID.
|
|
83
|
-
*/
|
|
84
|
-
RCT_EXPORT_METHOD(updateUserID: (NSString *) userID
|
|
85
|
-
resolve:(RCTPromiseResolveBlock)resolve
|
|
86
|
-
reject:(RCTPromiseRejectBlock)reject) {
|
|
87
|
-
[self checkInstance];
|
|
88
|
-
|
|
89
|
-
[userManager updateUserId:userID completion:^(BOOL success, NSError * _Nullable error) {
|
|
90
|
-
|
|
91
|
-
if(error != nil) {
|
|
92
|
-
reject(error.description, error.localizedDescription, error);
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
resolve(@(success));
|
|
97
|
-
}];
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Clear the user ID from the user manager.
|
|
103
|
-
*
|
|
104
|
-
* @param resolve A block called with the user ID if the operation is successful.
|
|
105
|
-
* @param reject A block called if an error occurs while retrieving the user ID.
|
|
106
|
-
*/
|
|
107
|
-
RCT_EXPORT_METHOD(clearUserID: (RCTPromiseResolveBlock)resolve
|
|
108
|
-
reject:(RCTPromiseRejectBlock)reject) {
|
|
109
|
-
[self checkInstance];
|
|
110
|
-
|
|
111
|
-
[userManager clearUserWithCompletion:^(BOOL success, NSError * _Nullable error) {
|
|
112
|
-
if(error != nil) {
|
|
113
|
-
reject(error.description, error.localizedDescription, error);
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
resolve(@(success));
|
|
118
|
-
}];
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* Removes the user ID from the ROOK services.
|
|
124
|
-
*
|
|
125
|
-
* @param resolve A block called with the user ID if the operation is successful.
|
|
126
|
-
* @param reject A block called if an error occurs while retrieving the user ID.
|
|
127
|
-
*/
|
|
128
|
-
RCT_EXPORT_METHOD(removeUserFromRook: (RCTPromiseResolveBlock)resolve
|
|
129
|
-
reject:(RCTPromiseRejectBlock)reject) {
|
|
130
|
-
[self checkInstance];
|
|
131
|
-
|
|
132
|
-
[userManager removeUserFromRookWithCompletion:^(BOOL success, NSError * _Nullable error) {
|
|
133
|
-
if(error != nil) {
|
|
134
|
-
reject(error.description, error.localizedDescription, error);
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
resolve(@(success));
|
|
139
|
-
}];
|
|
140
|
-
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Synchronizes the user's time zone with the user manager.
|
|
145
|
-
*
|
|
146
|
-
* @param resolve A block called with a boolean value indicating whether the time zone sync was successful.
|
|
147
|
-
* @param reject A block called if an error occurs during the sync process.
|
|
148
|
-
*/
|
|
149
|
-
RCT_EXPORT_METHOD(syncUserTimeZone: (RCTPromiseResolveBlock)resolve
|
|
150
|
-
reject:(RCTPromiseRejectBlock)reject) {
|
|
151
|
-
[self checkInstance];
|
|
152
|
-
|
|
153
|
-
[userManager syncUserTimeZoneWithCompletion:^(BOOL success, NSError * _Nullable error) {
|
|
154
|
-
if(error != nil) {
|
|
155
|
-
reject(error.description, error.localizedDescription, error);
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
resolve(@(success));
|
|
160
|
-
}];
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
@end
|
package/ios/RookExternalModule.h
DELETED
package/ios/RookExternalModule.m
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// RookExternalModule.m
|
|
3
|
-
// react-native-rook-sdk
|
|
4
|
-
//
|
|
5
|
-
// Created by Javier Villanueva on 10/09/25.
|
|
6
|
-
//
|
|
7
|
-
#import <Foundation/Foundation.h>
|
|
8
|
-
#import <React/RCTBridgeModule.h>
|
|
9
|
-
|
|
10
|
-
@interface RCT_EXTERN_MODULE(RookLocalData, NSObject)
|
|
11
|
-
|
|
12
|
-
RCT_EXTERN_METHOD(getAppleHealthSleepSummary: (NSString *) date
|
|
13
|
-
resolve:(RCTPromiseResolveBlock)resolve
|
|
14
|
-
reject:(RCTPromiseRejectBlock)reject)
|
|
15
|
-
|
|
16
|
-
RCT_EXTERN_METHOD(getAppleHealthPhysicalSummary: (NSString *) date
|
|
17
|
-
resolve:(RCTPromiseResolveBlock)resolve
|
|
18
|
-
reject:(RCTPromiseRejectBlock)reject)
|
|
19
|
-
|
|
20
|
-
RCT_EXTERN_METHOD(getAppleHealthBodySummary: (NSString *) date
|
|
21
|
-
resolve:(RCTPromiseResolveBlock)resolve
|
|
22
|
-
reject:(RCTPromiseRejectBlock)reject)
|
|
23
|
-
|
|
24
|
-
RCT_EXTERN_METHOD(getAppleHealthActivityEvents: (NSString *) date
|
|
25
|
-
resolve:(RCTPromiseResolveBlock)resolve
|
|
26
|
-
reject:(RCTPromiseRejectBlock)reject)
|
|
27
|
-
@end
|
package/ios/RookLocalData.swift
DELETED
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// RookLocalData.swift
|
|
3
|
-
// react-native-rook-sdk
|
|
4
|
-
//
|
|
5
|
-
// Created by Javier Villanueva on 10/09/25.
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
import RookSDK
|
|
9
|
-
|
|
10
|
-
@objc(RookLocalData)
|
|
11
|
-
public class RookLocalData: NSObject {
|
|
12
|
-
|
|
13
|
-
lazy var summaryManager: RookSummaryManager = {
|
|
14
|
-
return RookSummaryManager()
|
|
15
|
-
}()
|
|
16
|
-
|
|
17
|
-
lazy var eventManager: RookEventsManager = {
|
|
18
|
-
return RookEventsManager()
|
|
19
|
-
}()
|
|
20
|
-
|
|
21
|
-
func parseStringToDate(_ input: String) -> Date? {
|
|
22
|
-
let dateFormatter = DateFormatter()
|
|
23
|
-
dateFormatter.dateFormat = "yyyy-MM-dd"
|
|
24
|
-
return dateFormatter.date(from: input)
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
@objc(getAppleHealthSleepSummary:resolve:reject:)
|
|
28
|
-
public func getAppleHealthSleepSummary(
|
|
29
|
-
_ date: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
|
|
30
|
-
) {
|
|
31
|
-
Task {
|
|
32
|
-
do {
|
|
33
|
-
guard let parsed = parseStringToDate(date) else {
|
|
34
|
-
reject("AppleHealthGetSleepSummaryError", "Invalid date format", nil)
|
|
35
|
-
return
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
let sleepSummaries = try await summaryManager.getSleepSummary(date: parsed)
|
|
39
|
-
let dic = sleepSummaries.map { $0.toDictionary() }
|
|
40
|
-
|
|
41
|
-
DispatchQueue.main.async {
|
|
42
|
-
resolve(dic)
|
|
43
|
-
}
|
|
44
|
-
} catch {
|
|
45
|
-
|
|
46
|
-
DispatchQueue.main.async {
|
|
47
|
-
reject("AppleHealthGetSleepSummaryError", error.localizedDescription, error as NSError)
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
@objc(getAppleHealthPhysicalSummary:resolve:reject:)
|
|
54
|
-
public func getAppleHealthPhysicalSummary(
|
|
55
|
-
_ date: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
|
|
56
|
-
) {
|
|
57
|
-
Task {
|
|
58
|
-
do {
|
|
59
|
-
guard let parsed = parseStringToDate(date) else {
|
|
60
|
-
reject("AppleHealthGetPhysicalSummaryError", "Invalid date format", nil)
|
|
61
|
-
return
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
let physicalSummaries = try await summaryManager.getPhysicalSummary(date: parsed)
|
|
65
|
-
let dic = physicalSummaries.toDictionary()
|
|
66
|
-
|
|
67
|
-
DispatchQueue.main.async {
|
|
68
|
-
resolve(dic)
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
} catch {
|
|
72
|
-
|
|
73
|
-
DispatchQueue.main.async {
|
|
74
|
-
reject("AppleHealthGetBodySummaryError", error.localizedDescription, error as NSError)
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
@objc(getAppleHealthBodySummary:resolve:reject:)
|
|
81
|
-
public func getAppleHealthBodySummary(
|
|
82
|
-
_ date: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
|
|
83
|
-
) {
|
|
84
|
-
Task {
|
|
85
|
-
do {
|
|
86
|
-
guard let parsed = parseStringToDate(date) else {
|
|
87
|
-
reject("AppleHealthGetBodySummaryError", "Invalid date format", nil)
|
|
88
|
-
return
|
|
89
|
-
}
|
|
90
|
-
let bodySummaries = try await summaryManager.getBodySummary(date: parsed)
|
|
91
|
-
let dic = bodySummaries.toDictionary()
|
|
92
|
-
|
|
93
|
-
DispatchQueue.main.async {
|
|
94
|
-
resolve(dic)
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
} catch {
|
|
98
|
-
|
|
99
|
-
DispatchQueue.main.async {
|
|
100
|
-
reject("AppleHealthGetBodySummaryError", error.localizedDescription, error as NSError)
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
@objc(getAppleHealthActivityEvents:resolve:reject:)
|
|
107
|
-
public func getAppleHealthActivityEvents(
|
|
108
|
-
_ date: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
|
|
109
|
-
) {
|
|
110
|
-
Task {
|
|
111
|
-
do {
|
|
112
|
-
guard let parsed = parseStringToDate(date) else {
|
|
113
|
-
reject("AppleHealthGetActivityEventsError", "Invalid date format", nil)
|
|
114
|
-
return
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
let activityEvents = try await eventManager.getActivityEvents(date: parsed)
|
|
118
|
-
let dic = activityEvents.map { $0.toDictionary() }
|
|
119
|
-
|
|
120
|
-
DispatchQueue.main.async {
|
|
121
|
-
resolve(dic)
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
} catch {
|
|
125
|
-
|
|
126
|
-
DispatchQueue.main.async {
|
|
127
|
-
reject("AppleHealthGetActivityEvents", error.localizedDescription, error as NSError)
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
extension Encodable {
|
|
136
|
-
func toDictionary() -> [String: Any] {
|
|
137
|
-
let encoder = JSONEncoder()
|
|
138
|
-
|
|
139
|
-
let dateFormatter = DateFormatter()
|
|
140
|
-
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
|
|
141
|
-
|
|
142
|
-
encoder.dateEncodingStrategy = .formatted(dateFormatter)
|
|
143
|
-
|
|
144
|
-
guard let data = try? encoder.encode(self),
|
|
145
|
-
let dictionary = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [String: Any]
|
|
146
|
-
else {
|
|
147
|
-
return [:]
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
return dictionary
|
|
151
|
-
}
|
|
152
|
-
}
|