react-native-rook-sdk 4.0.0 → 5.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +35 -3
- package/RNRookSdk.podspec +22 -0
- package/android/build.gradle +21 -40
- package/android/gradle.properties +5 -5
- package/android/src/main/AndroidManifest.xml +1 -2
- package/android/src/main/java/com/rooksdk/RookSdkModule.kt +1709 -117
- package/android/src/main/java/com/rooksdk/RookSdkPackage.kt +26 -42
- package/android/src/main/java/com/rooksdk/broadcasts/AndroidPermissionsReceiverTransmitter.kt +34 -37
- package/android/src/main/java/com/rooksdk/broadcasts/HealthConnectPermissionsReceiverTransmitter.kt +8 -14
- package/android/src/main/java/com/rooksdk/broadcasts/SamsungHealthPermissionsReceiverTransmitter.kt +8 -16
- package/android/src/main/java/com/rooksdk/utils/{DatasourcesUtils.kt → DatasourceUtils.kt} +10 -9
- package/android/src/main/java/com/rooksdk/utils/{PermissionConversion.kt → PermissionConvertions.kt} +1 -1
- package/android/src/main/java/com/rooksdk/utils/ReadableToWritable.kt +0 -1
- package/android/src/main/java/com/rooksdk/utils/RookGsonBuilder.kt +3 -0
- package/android/src/main/java/com/rooksdk/utils/SamsungAvailability.kt +1 -0
- package/android/src/main/java/com/rooksdk/utils/serializers/InstantSerializer.kt +0 -1
- package/android/src/main/java/com/rooksdk/utils/serializers/ZoneDateTimeSerializer.kt +18 -0
- package/ios/DateHelper.swift +4 -4
- package/ios/Encodable.swift +25 -0
- package/ios/EncodableDataSource.swift +2 -3
- package/ios/EncodableDataSourceAuthorizer.swift +2 -3
- package/ios/EncodableSDKState.swift +3 -2
- package/ios/{EncodableHeartRate.swift → HearRateMapper.swift} +3 -3
- package/ios/NutritionMapper.swift +3 -3
- package/ios/RookBackground.swift +5 -8
- package/ios/RookConfiguration.swift +33 -30
- package/ios/{RookLocalData.swift → RookData.swift} +76 -69
- package/ios/RookEntry.swift +62 -0
- package/ios/RookPermissions.swift +36 -40
- package/ios/RookSdk-Bridging-Header.h +12 -0
- package/ios/RookSdk.h +3 -3
- package/ios/RookSdk.mm +390 -134
- package/ios/RookSources.swift +60 -54
- package/ios/RookSync.swift +48 -78
- package/ios/boost-boost_privacy-Bridging-Header.h +4 -0
- package/lib/{commonjs/types/AppleHealthPermissions.js → module/NativeRookSdk.js} +50 -6
- 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 +17 -18
- 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 +10 -16
- package/lib/module/hooks/useRookAPISources.js.map +1 -1
- package/lib/module/hooks/useRookAndroidBackgroundSteps.js +11 -12
- package/lib/module/hooks/useRookAndroidBackgroundSteps.js.map +1 -1
- package/lib/module/hooks/useRookAppleHealth.js +9 -10
- package/lib/module/hooks/useRookAppleHealth.js.map +1 -1
- package/lib/module/hooks/useRookConfiguration.js +17 -22
- package/lib/module/hooks/useRookConfiguration.js.map +1 -1
- package/lib/module/hooks/useRookData.js +33 -38
- 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 +34 -45
- package/lib/module/hooks/useRookPermissions.js.map +1 -1
- package/lib/module/hooks/useRookSamsungHealth.js +8 -20
- package/lib/module/hooks/useRookSamsungHealth.js.map +1 -1
- package/lib/module/hooks/useRookSync.js +23 -32
- package/lib/module/hooks/useRookSync.js.map +1 -1
- package/lib/module/hooks/useRookVariables.js +26 -29
- package/lib/module/hooks/useRookVariables.js.map +1 -1
- package/lib/module/index.js +18 -10
- package/lib/module/index.js.map +1 -1
- package/lib/module/modules/components/RookStateManager.js +31 -0
- package/lib/module/modules/components/RookStateManager.js.map +1 -0
- package/lib/module/modules/hook/useRookAutoSync.js +24 -36
- package/lib/module/modules/hook/useRookAutoSync.js.map +1 -1
- package/lib/module/modules/hook/useRookEmitter.js +61 -0
- package/lib/module/modules/hook/useRookEmitter.js.map +1 -0
- 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/AppleHealthNutritionEvent.js +2 -0
- package/lib/module/types/AppleHealthNutritionEvent.js.map +1 -1
- package/lib/module/types/AppleHealthPermissions.js +2 -0
- package/lib/module/types/AppleHealthPermissions.js.map +1 -1
- package/lib/module/types/AuthorizedSources.js +2 -0
- package/lib/module/types/BodySummary.js +2 -0
- package/lib/module/types/DataSource.js +2 -0
- package/lib/module/types/DataSource.js.map +1 -1
- package/lib/module/types/HCMealData.js +3 -1
- package/lib/module/types/HCMealData.js.map +1 -1
- package/lib/module/types/HeartRateEvent.js +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/BodySummary.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 +2 -0
- package/lib/module/types/SyncTypes.js.map +1 -1
- package/lib/module/types/WriteNutrition.js +2 -0
- package/lib/module/types/WriteNutrition.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 +705 -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.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 +1 -1
- package/lib/typescript/src/hooks/useRookConfiguration.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookData.d.ts +1 -1
- 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 +1 -1
- package/lib/typescript/src/hooks/useRookPermissions.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookSamsungHealth.d.ts +0 -6
- 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 +1 -1
- package/lib/typescript/src/hooks/useRookVariables.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +17 -8
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/modules/components/RookStateManager.d.ts +10 -0
- package/lib/typescript/src/modules/components/RookStateManager.d.ts.map +1 -0
- package/lib/typescript/src/modules/hook/useRookAutoSync.d.ts.map +1 -1
- package/lib/typescript/src/modules/hook/useRookEmitter.d.ts +4 -0
- package/lib/typescript/src/modules/hook/useRookEmitter.d.ts.map +1 -0
- package/lib/typescript/src/types/AppleHealthNutritionEvent.d.ts.map +1 -1
- package/lib/typescript/src/types/AuthorizedSources.d.ts +11 -0
- package/lib/typescript/src/types/AuthorizedSources.d.ts.map +1 -1
- package/lib/typescript/src/types/HCMealData.d.ts.map +1 -1
- 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/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 +5 -1
- 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 +839 -0
- package/{lib/commonjs/context/RookSyncGateContext.js → src/context/RookSyncGateContext.ts} +10 -13
- package/src/context/RookSyncGateProvider.tsx +82 -0
- package/{lib/commonjs/context/RookSyncGateReducer.js → src/context/RookSyncGateReducer.ts} +14 -41
- package/src/context/RookSyncGateTypes.ts +40 -0
- package/{lib/commonjs/hooks/useRookAPISources.js → src/hooks/useRookAPISources.ts} +40 -36
- package/src/hooks/useRookAndroidBackgroundSteps.ts +81 -0
- package/src/hooks/useRookAppleHealth.ts +55 -0
- package/src/hooks/useRookConfiguration.ts +106 -0
- package/src/hooks/useRookData.ts +133 -0
- package/src/hooks/useRookHealthConnect.ts +59 -0
- package/src/hooks/useRookPermissions.ts +240 -0
- package/src/hooks/useRookSamsungHealth.ts +37 -0
- package/src/hooks/useRookSync.ts +157 -0
- package/src/hooks/useRookVariables.ts +98 -0
- package/src/index.tsx +28 -0
- package/src/modules/components/RookStateManager.tsx +41 -0
- package/{lib/commonjs/modules/hook/useRookAutoSync.js → src/modules/hook/useRookAutoSync.ts} +141 -95
- package/src/modules/hook/useRookEmitter.ts +94 -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/AppleHealthNutritionEvent.ts +142 -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/{lib/commonjs/types/HCMealData.js → src/types/HCMealData.ts} +60 -11
- 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/src/types/WriteNutrition.ts +66 -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} +12 -14
- package/android/src/main/AndroidManifestNew.xml +0 -36
- package/android/src/main/java/com/rooksdk/modules/RookBackgroundSyncModule.kt +0 -99
- package/android/src/main/java/com/rooksdk/modules/RookConfigurationModule.kt +0 -182
- package/android/src/main/java/com/rooksdk/modules/RookLocalData.kt +0 -301
- package/android/src/main/java/com/rooksdk/modules/RookPermissionsModule.kt +0 -359
- package/android/src/main/java/com/rooksdk/modules/RookSourcesModule.kt +0 -102
- package/android/src/main/java/com/rooksdk/modules/RookStepsModule.kt +0 -119
- package/android/src/main/java/com/rooksdk/modules/RookSyncModule.kt +0 -551
- 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 -15
- package/ios/RookConfigurationModule.h +0 -5
- package/ios/RookConfigurationModule.mm +0 -22
- package/ios/RookExternalModule.h +0 -5
- package/ios/RookExternalModule.m +0 -31
- package/ios/RookPermissionsModule.h +0 -5
- package/ios/RookPermissionsModule.mm +0 -20
- package/ios/RookSourcesModule.h +0 -5
- package/ios/RookSourcesModule.mm +0 -18
- package/ios/RookSync.h +0 -5
- package/ios/RookSync.m +0 -35
- 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 -108
- 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 -76
- package/lib/commonjs/hooks/index.js.map +0 -1
- package/lib/commonjs/hooks/useRookAPISources.js.map +0 -1
- package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js +0 -88
- package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js.map +0 -1
- package/lib/commonjs/hooks/useRookAppleHealth.js +0 -63
- package/lib/commonjs/hooks/useRookAppleHealth.js.map +0 -1
- package/lib/commonjs/hooks/useRookConfiguration.js +0 -113
- package/lib/commonjs/hooks/useRookConfiguration.js.map +0 -1
- package/lib/commonjs/hooks/useRookData.js +0 -116
- package/lib/commonjs/hooks/useRookData.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 -211
- package/lib/commonjs/hooks/useRookPermissions.js.map +0 -1
- package/lib/commonjs/hooks/useRookSamsungHealth.js +0 -54
- package/lib/commonjs/hooks/useRookSamsungHealth.js.map +0 -1
- package/lib/commonjs/hooks/useRookSync.js +0 -148
- package/lib/commonjs/hooks/useRookSync.js.map +0 -1
- package/lib/commonjs/hooks/useRookVariables.js +0 -93
- package/lib/commonjs/hooks/useRookVariables.js.map +0 -1
- package/lib/commonjs/index.js +0 -121
- package/lib/commonjs/index.js.map +0 -1
- 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/AppleHealthNutritionEvent.js +0 -77
- package/lib/commonjs/types/AppleHealthNutritionEvent.js.map +0 -1
- package/lib/commonjs/types/AppleHealthPermissions.js.map +0 -1
- package/lib/commonjs/types/AuthorizedSources.js +0 -6
- package/lib/commonjs/types/AuthorizedSources.js.map +0 -1
- package/lib/commonjs/types/BodySummary.js +0 -6
- package/lib/commonjs/types/DataSource.js +0 -16
- package/lib/commonjs/types/DataSource.js.map +0 -1
- package/lib/commonjs/types/DiagnosticState.js +0 -2
- package/lib/commonjs/types/DiagnosticState.js.map +0 -1
- package/lib/commonjs/types/HCMealData.js.map +0 -1
- package/lib/commonjs/types/HeartRateEvent.js +0 -2
- package/lib/commonjs/types/HeartRateEvent.js.map +0 -1
- 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 -33
- package/lib/commonjs/types/SyncTypes.js.map +0 -1
- package/lib/commonjs/types/WriteNutrition.js +0 -18
- package/lib/commonjs/types/WriteNutrition.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 -29
- 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 -11
- package/lib/module/hooks/index.js.map +0 -1
- package/lib/module/types/DiagnosticState.js +0 -2
- package/lib/module/types/DiagnosticState.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 -23
- 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 -11
- package/lib/typescript/src/hooks/index.d.ts.map +0 -1
- package/lib/typescript/src/types/DiagnosticState.d.ts +0 -13
- package/lib/typescript/src/types/DiagnosticState.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 -24
- 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,14 +1,14 @@
|
|
|
1
1
|
//
|
|
2
|
-
//
|
|
3
|
-
//
|
|
2
|
+
// RookData.swift
|
|
3
|
+
// RNRookSdk
|
|
4
4
|
//
|
|
5
|
-
// Created by Javier Villanueva on
|
|
5
|
+
// Created by Javier Villanueva on 18/12/25.
|
|
6
6
|
//
|
|
7
7
|
|
|
8
8
|
import RookSDK
|
|
9
|
+
import React
|
|
9
10
|
|
|
10
|
-
@
|
|
11
|
-
public class RookLocalData: NSObject {
|
|
11
|
+
@objcMembers public class RookData: NSObject {
|
|
12
12
|
|
|
13
13
|
lazy var summaryManager: RookSummaryManager = {
|
|
14
14
|
return RookSummaryManager()
|
|
@@ -18,23 +18,20 @@ public class RookLocalData: NSObject {
|
|
|
18
18
|
return RookEventsManager()
|
|
19
19
|
}()
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return dateFormatter.date(from: input)
|
|
25
|
-
}
|
|
21
|
+
lazy var dateHelper: DateHelper = {
|
|
22
|
+
return DateHelper()
|
|
23
|
+
}()
|
|
26
24
|
|
|
27
|
-
@objc(getAppleHealthSleepSummary:resolve:reject:)
|
|
28
25
|
public func getAppleHealthSleepSummary(
|
|
29
26
|
_ date: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
|
|
30
27
|
) {
|
|
31
28
|
Task {
|
|
32
29
|
do {
|
|
33
|
-
guard let parsed =
|
|
34
|
-
reject("
|
|
30
|
+
guard let parsed: Date = dateHelper.getDateFromString(stringDate: date) else {
|
|
31
|
+
reject("AppleHealthGetPhysicalSummaryError", "Invalid date format", nil)
|
|
35
32
|
return
|
|
36
33
|
}
|
|
37
|
-
|
|
34
|
+
|
|
38
35
|
let sleepSummaries = try await summaryManager.getSleepSummary(date: parsed)
|
|
39
36
|
let dic = sleepSummaries.map { $0.toDictionary() }
|
|
40
37
|
|
|
@@ -47,19 +44,20 @@ public class RookLocalData: NSObject {
|
|
|
47
44
|
reject(String(rookError.code), rookError.errorDescription, error as NSError)
|
|
48
45
|
}
|
|
49
46
|
} else {
|
|
50
|
-
|
|
47
|
+
DispatchQueue.main.async {
|
|
48
|
+
reject("1001", "An error ocurred with SDK try again", error as NSError)
|
|
49
|
+
}
|
|
51
50
|
}
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
53
|
}
|
|
55
54
|
|
|
56
|
-
@objc(getAppleHealthPhysicalSummary:resolve:reject:)
|
|
57
55
|
public func getAppleHealthPhysicalSummary(
|
|
58
56
|
_ date: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
|
|
59
57
|
) {
|
|
60
58
|
Task {
|
|
61
59
|
do {
|
|
62
|
-
guard let parsed =
|
|
60
|
+
guard let parsed = dateHelper.getDateFromString(stringDate: date) else {
|
|
63
61
|
reject("AppleHealthGetPhysicalSummaryError", "Invalid date format", nil)
|
|
64
62
|
return
|
|
65
63
|
}
|
|
@@ -77,19 +75,20 @@ public class RookLocalData: NSObject {
|
|
|
77
75
|
reject(String(rookError.code), rookError.errorDescription, error as NSError)
|
|
78
76
|
}
|
|
79
77
|
} else {
|
|
80
|
-
|
|
78
|
+
DispatchQueue.main.async {
|
|
79
|
+
reject("1001", "An error ocurred with SDK try again", error as NSError)
|
|
80
|
+
}
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
@objc(getAppleHealthBodySummary:resolve:reject:)
|
|
87
86
|
public func getAppleHealthBodySummary(
|
|
88
87
|
_ date: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
|
|
89
88
|
) {
|
|
90
89
|
Task {
|
|
91
90
|
do {
|
|
92
|
-
guard let parsed =
|
|
91
|
+
guard let parsed = dateHelper.getDateFromString(stringDate: date) else {
|
|
93
92
|
reject("AppleHealthGetBodySummaryError", "Invalid date format", nil)
|
|
94
93
|
return
|
|
95
94
|
}
|
|
@@ -106,19 +105,20 @@ public class RookLocalData: NSObject {
|
|
|
106
105
|
reject(String(rookError.code), rookError.errorDescription, error as NSError)
|
|
107
106
|
}
|
|
108
107
|
} else {
|
|
109
|
-
|
|
108
|
+
DispatchQueue.main.async {
|
|
109
|
+
reject("1001", "An error ocurred with SDK try again", error as NSError)
|
|
110
|
+
}
|
|
110
111
|
}
|
|
111
112
|
}
|
|
112
113
|
}
|
|
113
114
|
}
|
|
114
115
|
|
|
115
|
-
@objc(getAppleHealthActivityEvents:resolve:reject:)
|
|
116
116
|
public func getAppleHealthActivityEvents(
|
|
117
117
|
_ date: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
|
|
118
118
|
) {
|
|
119
119
|
Task {
|
|
120
120
|
do {
|
|
121
|
-
guard let parsed =
|
|
121
|
+
guard let parsed = dateHelper.getDateFromString(stringDate: date) else {
|
|
122
122
|
reject("AppleHealthGetActivityEventsError", "Invalid date format", nil)
|
|
123
123
|
return
|
|
124
124
|
}
|
|
@@ -136,57 +136,64 @@ public class RookLocalData: NSObject {
|
|
|
136
136
|
reject(String(rookError.code), rookError.errorDescription, error as NSError)
|
|
137
137
|
}
|
|
138
138
|
} else {
|
|
139
|
-
reject("1001", "An error ocurred with SDK try again", error as NSError)
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
@objc(writeAppleHealthMealData:resolve:reject:)
|
|
146
|
-
public func writeAppleHealthMealData(
|
|
147
|
-
_ data: NSDictionary, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
|
|
148
|
-
){
|
|
149
|
-
guard let event = NutritionMapper.mapToNutritionInsertionEvent(data: data as! [String : Any]) else {
|
|
150
|
-
reject("1001", "Could not parse nutrition data", nil)
|
|
151
|
-
return
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
Task {
|
|
155
|
-
do {
|
|
156
|
-
|
|
157
|
-
let result = try await eventManager.writeNutritionEvent(event: event)
|
|
158
|
-
DispatchQueue.main.async {
|
|
159
|
-
resolve(result)
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
} catch {
|
|
163
|
-
if let rookError: RookError = error as? RookError {
|
|
164
139
|
DispatchQueue.main.async {
|
|
165
|
-
reject(
|
|
140
|
+
reject("1001", "An error ocurred with SDK try again", error as NSError)
|
|
166
141
|
}
|
|
167
|
-
} else {
|
|
168
|
-
reject("1001", "An error ocurred with SDK try again", error as NSError)
|
|
169
142
|
}
|
|
170
143
|
}
|
|
171
144
|
}
|
|
172
145
|
}
|
|
173
|
-
|
|
146
|
+
|
|
147
|
+
public func getTodayHeartRate(
|
|
148
|
+
_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
|
|
149
|
+
){
|
|
150
|
+
Task {
|
|
151
|
+
do {
|
|
152
|
+
let result = try await eventManager.getTodayHeartRate()
|
|
153
|
+
let mapper: HeartRateMapper = HeartRateMapper()
|
|
154
|
+
let data: [String: Any?] = mapper.map(result)
|
|
155
|
+
|
|
156
|
+
DispatchQueue.main.async {
|
|
157
|
+
resolve(data)
|
|
158
|
+
}
|
|
159
|
+
} catch {
|
|
160
|
+
if let rookError: RookError = error as? RookError {
|
|
161
|
+
DispatchQueue.main.async {
|
|
162
|
+
reject(String(rookError.code), rookError.errorDescription, error as NSError)
|
|
163
|
+
}
|
|
164
|
+
} else {
|
|
165
|
+
reject("1001", "An error ocurred with SDK try again", error as NSError)
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
public func writeAppleHealthMealData(
|
|
172
|
+
_ data: NSDictionary, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
|
|
173
|
+
){
|
|
174
|
+
guard let event = NutritionMapper.mapToNutritionInsertionEvent(data: data as! [String : Any]) else {
|
|
175
|
+
reject("1001", "Could not parse nutrition data", nil)
|
|
176
|
+
return
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
Task {
|
|
180
|
+
do {
|
|
181
|
+
|
|
182
|
+
let result = try await eventManager.writeNutritionEvent(event: event)
|
|
183
|
+
DispatchQueue.main.async {
|
|
184
|
+
resolve(result)
|
|
185
|
+
}
|
|
174
186
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
return [:]
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
return dictionary
|
|
191
|
-
}
|
|
187
|
+
} catch {
|
|
188
|
+
if let rookError: RookError = error as? RookError {
|
|
189
|
+
DispatchQueue.main.async {
|
|
190
|
+
reject(String(rookError.code), rookError.errorDescription, error as NSError)
|
|
191
|
+
}
|
|
192
|
+
} else {
|
|
193
|
+
reject("1001", "An error ocurred with SDK try again", error as NSError)
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
192
199
|
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RookSdk.swift
|
|
3
|
+
// Pods
|
|
4
|
+
//
|
|
5
|
+
// Created by Javier Villanueva on 15/12/25.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import React
|
|
9
|
+
import RookSDK
|
|
10
|
+
|
|
11
|
+
@objcMembers public class RookEntry: NSObject {
|
|
12
|
+
public let EVENT_NAME = EventNames.errorBackGround
|
|
13
|
+
|
|
14
|
+
public func initRook(
|
|
15
|
+
_ options: NSDictionary, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
|
|
16
|
+
){
|
|
17
|
+
Task {
|
|
18
|
+
do {
|
|
19
|
+
|
|
20
|
+
let environment = options["environment"] as? String ?? ""
|
|
21
|
+
let clientUUID = options["clientUUID"] as? String ?? ""
|
|
22
|
+
let secret = options["secret"] as? String ?? ""
|
|
23
|
+
let bundleId = options["bundleId"] as? String
|
|
24
|
+
let backgroundSync = options["enableBackground"] as? Bool ?? true
|
|
25
|
+
|
|
26
|
+
if (environment == "production") {
|
|
27
|
+
RookConnectConfigurationManager.shared.setEnvironment(.production)
|
|
28
|
+
} else {
|
|
29
|
+
RookConnectConfigurationManager.shared.setEnvironment(.sandbox)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
RookConnectConfigurationManager.shared.setConfiguration(
|
|
33
|
+
clientUUID: clientUUID,
|
|
34
|
+
secret: secret,
|
|
35
|
+
bundleId: bundleId,
|
|
36
|
+
enableBackgroundSync: backgroundSync,
|
|
37
|
+
enableEventsBackgroundSync: backgroundSync)
|
|
38
|
+
|
|
39
|
+
let result = try await RookConnectConfigurationManager.shared.initRook()
|
|
40
|
+
|
|
41
|
+
DispatchQueue.main.async {
|
|
42
|
+
resolve(result)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
} catch {
|
|
46
|
+
if let rookError: RookError = error as? RookError {
|
|
47
|
+
DispatchQueue.main.async {
|
|
48
|
+
reject(String(rookError.code), rookError.errorDescription, error as NSError)
|
|
49
|
+
}
|
|
50
|
+
} else {
|
|
51
|
+
DispatchQueue.main.async {
|
|
52
|
+
reject("1001", "An error ocurred with SDK try again", error as NSError)
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
public func initBroadcast() {
|
|
60
|
+
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
//
|
|
2
2
|
// RookPermissions.swift
|
|
3
|
-
//
|
|
3
|
+
// RNRookSdk
|
|
4
4
|
//
|
|
5
|
-
// Created by Javier Villanueva on
|
|
5
|
+
// Created by Javier Villanueva on 17/12/25.
|
|
6
6
|
//
|
|
7
7
|
|
|
8
|
+
import React
|
|
8
9
|
import RookSDK
|
|
9
10
|
|
|
10
|
-
@
|
|
11
|
-
public class RookPermissions: NSObject {
|
|
12
|
-
|
|
11
|
+
@objcMembers public class RookPermissions: NSObject {
|
|
13
12
|
lazy var permissionsManager: RookConnectPermissionsManager = {
|
|
14
13
|
return RookConnectPermissionsManager()
|
|
15
14
|
}()
|
|
16
|
-
|
|
17
|
-
@objc(checkPermissionsStatus:resolve:reject:)
|
|
15
|
+
|
|
18
16
|
public func checkPermissionsStatus(
|
|
19
17
|
_ type: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
|
|
20
18
|
) {
|
|
21
19
|
Task {
|
|
22
20
|
do {
|
|
23
|
-
|
|
21
|
+
|
|
24
22
|
let result = await permissionsManager.checkPermissionStatus(type: type)
|
|
25
23
|
|
|
26
24
|
DispatchQueue.main.async {
|
|
@@ -38,8 +36,7 @@ public class RookPermissions: NSObject {
|
|
|
38
36
|
}
|
|
39
37
|
}
|
|
40
38
|
}
|
|
41
|
-
|
|
42
|
-
@objc(requestAppleHealthPermissions:resolve:reject:)
|
|
39
|
+
|
|
43
40
|
public func requestAppleHealthPermissions(
|
|
44
41
|
_ permissions: [String]?, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
|
|
45
42
|
) {
|
|
@@ -65,42 +62,41 @@ public class RookPermissions: NSObject {
|
|
|
65
62
|
}
|
|
66
63
|
}
|
|
67
64
|
|
|
68
|
-
@objc(requestWriteNutritionPermission:reject:)
|
|
69
|
-
public func requestWriteNutritionPermission(
|
|
70
|
-
_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
|
|
71
|
-
) {
|
|
72
|
-
Task {
|
|
73
|
-
do {
|
|
74
|
-
|
|
75
|
-
let result = try await permissionsManager.requestDietaryWritePermissions()
|
|
76
|
-
|
|
77
|
-
DispatchQueue.main.async {
|
|
78
|
-
resolve(result)
|
|
79
|
-
}
|
|
80
|
-
} catch {
|
|
81
|
-
if let rookError: RookError = error as? RookError {
|
|
82
|
-
DispatchQueue.main.async {
|
|
83
|
-
reject(String(rookError.code), rookError.errorDescription, error as NSError)
|
|
84
|
-
}
|
|
85
|
-
} else {
|
|
86
|
-
reject("1001", "An error ocurred with SDK try again", error as NSError)
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
@objc(openAppleHealthSettings:reject:)
|
|
93
65
|
public func openAppleHealthSettings(
|
|
94
66
|
_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
|
|
95
67
|
){
|
|
96
68
|
guard let urlSettings = URL(string: "x-apple-health://") else {
|
|
97
|
-
|
|
98
|
-
|
|
69
|
+
reject("1001", "An error ocurred with SDK try again", nil)
|
|
70
|
+
return
|
|
99
71
|
}
|
|
100
72
|
|
|
101
73
|
DispatchQueue.main.async {
|
|
102
|
-
|
|
103
|
-
|
|
74
|
+
UIApplication.shared.open(urlSettings, options: [:]) { success in
|
|
75
|
+
resolve(success)
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
public func requestWriteNutritionPermission(
|
|
81
|
+
_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
|
|
82
|
+
) {
|
|
83
|
+
Task {
|
|
84
|
+
do {
|
|
85
|
+
|
|
86
|
+
let result = try await permissionsManager.requestDietaryWritePermissions()
|
|
87
|
+
|
|
88
|
+
DispatchQueue.main.async {
|
|
89
|
+
resolve(result)
|
|
90
|
+
}
|
|
91
|
+
} catch {
|
|
92
|
+
if let rookError: RookError = error as? RookError {
|
|
93
|
+
DispatchQueue.main.async {
|
|
94
|
+
reject(String(rookError.code), rookError.errorDescription, error as NSError)
|
|
95
|
+
}
|
|
96
|
+
} else {
|
|
97
|
+
reject("1001", "An error ocurred with SDK try again", error as NSError)
|
|
98
|
+
}
|
|
104
99
|
}
|
|
105
|
-
|
|
100
|
+
}
|
|
101
|
+
}
|
|
106
102
|
}
|
package/ios/RookSdk.h
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#import <
|
|
2
|
-
#import <React/
|
|
1
|
+
#import <RookSdkSpec/RookSdkSpec.h>
|
|
2
|
+
#import <React/RCTInitializing.h>
|
|
3
3
|
|
|
4
|
-
@interface
|
|
4
|
+
@interface RNRookSdk : NativeRookSdkSpecBase <NativeRookSdkSpec, RCTInitializing>
|
|
5
5
|
|
|
6
6
|
@end
|