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
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface HrGranularDataItem {
|
|
2
|
+
dateTime: string;
|
|
3
|
+
hrBPM: number;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export interface HrvSDNNGranularData {
|
|
7
|
+
dateTime: string;
|
|
8
|
+
hrvSDNN: number;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface HrvSDNNGranularData {
|
|
12
|
+
dateTime: string;
|
|
13
|
+
hrvRmssd: number;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface HeartRateData {
|
|
17
|
+
hrAverageBPM: number;
|
|
18
|
+
hrvSDNNGranularData: HrvSDNNGranularData[] | null;
|
|
19
|
+
hrGranularData: HrGranularDataItem[];
|
|
20
|
+
hrMinimumBPM: number;
|
|
21
|
+
hrRestingBPM: number | null;
|
|
22
|
+
hrMaximumBPM: number;
|
|
23
|
+
hrvAverageSDNN: number | null;
|
|
24
|
+
hrvRMSSDGranularData: HrvSDNNGranularData[] | null;
|
|
25
|
+
hrvAverageRMSSD: number | null;
|
|
26
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
ActivityLevelGranularData,
|
|
3
|
+
ElevationGranularData,
|
|
4
|
+
FloorsClimbedGranularData,
|
|
5
|
+
HrGranularData,
|
|
6
|
+
SaturationGranularData,
|
|
7
|
+
HrvRmssdGranularData,
|
|
8
|
+
HrvSdnnGranularData,
|
|
9
|
+
TraveledDistanceGranularData,
|
|
10
|
+
StepsGranularData,
|
|
11
|
+
SwimmingDistanceGranularData,
|
|
12
|
+
Vo2GranularData,
|
|
13
|
+
} from './SummaryTypes';
|
|
14
|
+
|
|
15
|
+
export interface ActiveStepsGranularData {
|
|
16
|
+
dateTime: string;
|
|
17
|
+
intervalDurationSeconds: number;
|
|
18
|
+
activeSteps: number;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface StressGranularData {
|
|
22
|
+
dateTime: string;
|
|
23
|
+
stressScore: number;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface PhysicalSummary {
|
|
27
|
+
dateTime: string;
|
|
28
|
+
sourceOfData: string;
|
|
29
|
+
wasTheUserUnderPhysicalActivity: boolean;
|
|
30
|
+
activeSeconds: number | null;
|
|
31
|
+
restSeconds: number | null;
|
|
32
|
+
lowIntensitySeconds: number | null;
|
|
33
|
+
moderateIntensitySeconds: number | null;
|
|
34
|
+
vigorousIntensitySeconds: number | null;
|
|
35
|
+
inactivitySeconds: number | null;
|
|
36
|
+
activityLevelGranularData: ActivityLevelGranularData[] | null;
|
|
37
|
+
continuousInactivePeriods: number | null;
|
|
38
|
+
caloriesNetIntakeKcal: number | null;
|
|
39
|
+
caloriesExpenditureKcal: number | null;
|
|
40
|
+
caloriesNetActiveKcal: number | null;
|
|
41
|
+
caloriesBasalMetabolicRateKcal: number | null;
|
|
42
|
+
steps: number | null;
|
|
43
|
+
stepsGranularData: StepsGranularData[] | null;
|
|
44
|
+
activeSteps: number | null;
|
|
45
|
+
activeStepsGranularData: ActiveStepsGranularData[] | null;
|
|
46
|
+
walkedDistanceMeters: number | null;
|
|
47
|
+
traveledDistanceMeters: number | null;
|
|
48
|
+
traveledDistanceGranularData: TraveledDistanceGranularData[] | null;
|
|
49
|
+
floorsClimbed: number | null;
|
|
50
|
+
floorsClimbedGranularData: FloorsClimbedGranularData[] | null;
|
|
51
|
+
elevationAvgAltitudeMeters: number | null;
|
|
52
|
+
elevationMinimumAltitudeMeters: number | null;
|
|
53
|
+
elevationMaximumAltitudeMeters: number | null;
|
|
54
|
+
elevationLossActualAltitudeMeters: number | null;
|
|
55
|
+
elevationGainActualAltitudeMeters: number | null;
|
|
56
|
+
elevationPlannedGainMeters: number | null;
|
|
57
|
+
elevationGranularData: ElevationGranularData[] | null;
|
|
58
|
+
swimmingNumStrokes: number | null;
|
|
59
|
+
swimmingNumLaps: number | null;
|
|
60
|
+
swimmingPoolLengthMeters: number | null;
|
|
61
|
+
swimmingTotalDistanceMeters: number | null;
|
|
62
|
+
swimmingDistanceGranularData: SwimmingDistanceGranularData[] | null;
|
|
63
|
+
hrMaximumBpm: number | null;
|
|
64
|
+
hrMinimumBpm: number | null;
|
|
65
|
+
hrAvgBpm: number | null;
|
|
66
|
+
hrRestingBpm: number | null;
|
|
67
|
+
hrGranularData: HrGranularData[] | null;
|
|
68
|
+
hrvAvgRmssd: number | null;
|
|
69
|
+
hrvAvgSdnn: number | null;
|
|
70
|
+
hrvSdnnGranularData: HrvSdnnGranularData[] | null;
|
|
71
|
+
hrvRmssdGranularData: HrvRmssdGranularData[] | null;
|
|
72
|
+
saturationAvgPercentage: number | null;
|
|
73
|
+
saturationGranularData: SaturationGranularData[] | null;
|
|
74
|
+
vo2MaxMlPerMinPerKg: number | null;
|
|
75
|
+
vo2GranularData: Vo2GranularData[] | null;
|
|
76
|
+
stressAtRestDurationSeconds: number | null;
|
|
77
|
+
stressDurationSeconds: number | null;
|
|
78
|
+
lowStressDurationSeconds: number | null;
|
|
79
|
+
mediumStressDurationSeconds: number | null;
|
|
80
|
+
highStressDurationSeconds: number | null;
|
|
81
|
+
stressGranularData: StressGranularData[] | null;
|
|
82
|
+
stressAvgLevel: number | null;
|
|
83
|
+
stressMaximumLevel: number | null;
|
|
84
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export enum SamsungHealthPermission {
|
|
2
|
+
ACTIVITY_SUMMARY = 'ACTIVITY_SUMMARY',
|
|
3
|
+
BODY_TEMPERATURE = 'BODY_TEMPERATURE',
|
|
4
|
+
BLOOD_GLUCOSE = 'BLOOD_GLUCOSE',
|
|
5
|
+
BLOOD_OXYGEN = 'BLOOD_OXYGEN',
|
|
6
|
+
BLOOD_PRESSURE = 'BLOOD_PRESSURE',
|
|
7
|
+
BODY_COMPOSITION = 'BODY_COMPOSITION',
|
|
8
|
+
EXERCISE = 'EXERCISE',
|
|
9
|
+
EXERCISE_LOCATION = 'EXERCISE_LOCATION',
|
|
10
|
+
FLOORS_CLIMBED = 'FLOORS_CLIMBED',
|
|
11
|
+
HEART_RATE = 'HEART_RATE',
|
|
12
|
+
NUTRITION = 'NUTRITION',
|
|
13
|
+
SLEEP = 'SLEEP',
|
|
14
|
+
STEPS = 'STEPS',
|
|
15
|
+
WATER_INTAKE = 'WATER_INTAKE',
|
|
16
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
HrGranularData,
|
|
3
|
+
SaturationGranularData,
|
|
4
|
+
HrvRmssdGranularData,
|
|
5
|
+
HrvSdnnGranularData,
|
|
6
|
+
TemperatureObject,
|
|
7
|
+
TemperatureGranularData,
|
|
8
|
+
} from './SummaryTypes';
|
|
9
|
+
|
|
10
|
+
export interface BreathingGranularData {
|
|
11
|
+
dateTime: string;
|
|
12
|
+
breathsPerMin: number;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface SnoringGranularData {
|
|
16
|
+
dateTime: string;
|
|
17
|
+
intervalDurationSeconds: number;
|
|
18
|
+
snoringEventsCount: number;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface SleepSummary {
|
|
22
|
+
dateTime: string;
|
|
23
|
+
sourceOfData: string;
|
|
24
|
+
wasTheUserUnderPhysicalActivity: boolean;
|
|
25
|
+
sleepStartDateTime: string;
|
|
26
|
+
sleepEndDateTime: string;
|
|
27
|
+
sleepDate: string;
|
|
28
|
+
sleepDurationSeconds: number | null;
|
|
29
|
+
timeInBedSeconds: number | null;
|
|
30
|
+
lightSleepDurationSeconds: number | null;
|
|
31
|
+
remSleepDurationSeconds: number | null;
|
|
32
|
+
deepSleepDurationSeconds: number | null;
|
|
33
|
+
timeToFallAsleepSeconds: number | null;
|
|
34
|
+
timeAwakeDuringSleepSeconds: number | null;
|
|
35
|
+
sleepQualityRating1To5Score: number | null;
|
|
36
|
+
sleepEfficiency1To100Score: number | null;
|
|
37
|
+
sleepGoalSeconds: number | null;
|
|
38
|
+
sleepContinuity1To5Score: number | null;
|
|
39
|
+
sleepContinuity1To5Rating: number | null;
|
|
40
|
+
hrMaximumBpm: number | null;
|
|
41
|
+
hrMinimumBpm: number | null;
|
|
42
|
+
hrAvgBpm: number | null;
|
|
43
|
+
hrRestingBpm: number | null;
|
|
44
|
+
hrBasalBpm: number | null;
|
|
45
|
+
hrGranularData: HrGranularData[] | null;
|
|
46
|
+
hrvAvgRmssd: number | null;
|
|
47
|
+
hrvAvgSdnn: number | null;
|
|
48
|
+
hrvSdnnGranularData: HrvSdnnGranularData[] | null;
|
|
49
|
+
hrvRmssdGranularData: HrvRmssdGranularData[] | null;
|
|
50
|
+
temperatureMinimum: TemperatureObject | null;
|
|
51
|
+
temperatureAvg: TemperatureObject | null;
|
|
52
|
+
temperatureMaximum: TemperatureObject | null;
|
|
53
|
+
temperatureGranularData: TemperatureGranularData[] | null;
|
|
54
|
+
temperatureDelta: TemperatureObject | null;
|
|
55
|
+
breathsMinimumPerMin: number | null;
|
|
56
|
+
breathsAvgPerMin: number | null;
|
|
57
|
+
breathsMaximumPerMin: number | null;
|
|
58
|
+
breathingGranularData: BreathingGranularData[] | null;
|
|
59
|
+
snoringEventsCount: number | null;
|
|
60
|
+
snoringDurationTotalSeconds: number | null;
|
|
61
|
+
snoringGranularData: SnoringGranularData[] | null;
|
|
62
|
+
saturationAvgPercentage: number | null;
|
|
63
|
+
saturationMinimumPercentage: number | null;
|
|
64
|
+
saturationMaximumPercentage: number | null;
|
|
65
|
+
saturationGranularData: SaturationGranularData[] | null;
|
|
66
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export interface ActivityLevelGranularData {
|
|
2
|
+
dateTime: string;
|
|
3
|
+
activityLevel: number;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export interface ElevationGranularData {
|
|
7
|
+
dateTime: string;
|
|
8
|
+
intervalDurationSeconds: number;
|
|
9
|
+
elevationChangeMeters: number;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface FloorsClimbedGranularData {
|
|
13
|
+
dateTime: string;
|
|
14
|
+
intervalDurationSeconds: number;
|
|
15
|
+
floorsClimbed: number;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface HrGranularData {
|
|
19
|
+
dateTime: string;
|
|
20
|
+
hrBpm: number;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface HrvSdnnGranularData {
|
|
24
|
+
dateTime: string;
|
|
25
|
+
hrvSdnn: number;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface HrvRmssdGranularData {
|
|
29
|
+
dateTime: string;
|
|
30
|
+
hrvRmssd: number;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface SaturationGranularData {
|
|
34
|
+
dateTime: string;
|
|
35
|
+
saturationPercentage: number;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface Vo2GranularData {
|
|
39
|
+
dateTime: string;
|
|
40
|
+
vo2MlPerMinPerKg: number;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface TemperatureObject {
|
|
44
|
+
temperatureCelsius: number;
|
|
45
|
+
measurementType: string;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface TemperatureGranularData {
|
|
49
|
+
dateTime: string;
|
|
50
|
+
temperatureCelsius: number;
|
|
51
|
+
measurementType: string;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export interface TraveledDistanceGranularData {
|
|
55
|
+
dateTime: string;
|
|
56
|
+
intervalDurationSeconds: number;
|
|
57
|
+
traveledDistanceMeters: number;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export interface StepsGranularData {
|
|
61
|
+
dateTime: string;
|
|
62
|
+
intervalDurationSeconds: number;
|
|
63
|
+
steps: number;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export interface SwimmingDistanceGranularData {
|
|
67
|
+
dateTime: string;
|
|
68
|
+
intervalDurationSeconds: number;
|
|
69
|
+
swimmingDistanceMeters: number;
|
|
70
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { SDKDataSource } from './SDKSources';
|
|
2
|
+
|
|
3
|
+
export type SyncParams = {
|
|
4
|
+
date: string;
|
|
5
|
+
summary?: SyncSummaryType;
|
|
6
|
+
sources: SDKDataSource[];
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export type SyncEventParams = {
|
|
10
|
+
date: string;
|
|
11
|
+
sources: SDKDataSource[];
|
|
12
|
+
event:
|
|
13
|
+
| SharedHealthEvents
|
|
14
|
+
| UniqueAppleHealthEvents
|
|
15
|
+
| UniqueSamsungHealthEvents
|
|
16
|
+
| UniqueHealthConnectEvents;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export type SyncSummaryType = 'sleep' | 'body' | 'physical';
|
|
20
|
+
|
|
21
|
+
export type SyncResult = {
|
|
22
|
+
healthConnect?: SyncSourceResult;
|
|
23
|
+
appleHealth?: SyncSourceResult;
|
|
24
|
+
samsungHealth?: SyncSourceResult;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export type RookError = {
|
|
28
|
+
code: string;
|
|
29
|
+
message: string;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export type SyncSourceResult = {
|
|
33
|
+
status: boolean;
|
|
34
|
+
error: Error | { domain: string } | RookError;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export type Callback = (result: SyncResult) => void;
|
|
38
|
+
|
|
39
|
+
export enum SharedHealthEvents {
|
|
40
|
+
ACTIVITY = 'ACTIVITY',
|
|
41
|
+
HEART_RATE = 'HEART_RATE',
|
|
42
|
+
OXYGENATION = 'OXYGENATION',
|
|
43
|
+
BLOOD_PRESSURE = 'BLOOD_PRESSURE',
|
|
44
|
+
BLOOD_GLUCOSE = 'BLOOD_GLUCOSE',
|
|
45
|
+
CALORIES = 'CALORIES',
|
|
46
|
+
STEPS = 'STEPS',
|
|
47
|
+
BODY_METRICS = 'BODY_METRICS',
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export enum UniqueHealthConnectEvents {
|
|
51
|
+
TEMPERATURE = 'TEMPERATURE',
|
|
52
|
+
HYDRATION = 'HYDRATION',
|
|
53
|
+
NUTRITION = 'NUTRITION',
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export enum UniqueSamsungHealthEvents {
|
|
57
|
+
HYDRATION = 'HYDRATION',
|
|
58
|
+
NUTRITION = 'NUTRITION',
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export enum UniqueAppleHealthEvents {
|
|
62
|
+
TEMPERATURE = 'TEMPERATURE',
|
|
63
|
+
}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.isModuleReady = void 0;
|
|
7
1
|
/**
|
|
8
2
|
* The function `isModuleReady` checks if a module is ready and throws an error if it is not.
|
|
9
3
|
* @param {boolean} ready - The `ready` parameter in the `isModuleReady` function is a boolean value
|
|
10
4
|
* that indicates whether a certain module or hook is ready for use. If `ready` is `true`, it means the
|
|
11
5
|
* module is ready, and if `ready` is `false`, it means the module is not
|
|
12
6
|
*/
|
|
13
|
-
const isModuleReady = ready => {
|
|
7
|
+
export const isModuleReady = (ready: boolean): void => {
|
|
14
8
|
if (!ready) {
|
|
15
|
-
throw new Error(
|
|
9
|
+
throw new Error(
|
|
10
|
+
'The hook is not ready, please check your credentials and link of the package'
|
|
11
|
+
);
|
|
16
12
|
}
|
|
17
13
|
};
|
|
18
|
-
exports.isModuleReady = isModuleReady;
|
|
19
|
-
//# sourceMappingURL=isModuleReady.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Platform } from 'react-native';
|
|
2
|
+
|
|
3
|
+
const ERROR_MESSAGE =
|
|
4
|
+
'This method is only available on iOS because it is not supported on Android';
|
|
5
|
+
|
|
6
|
+
export const isRunningOniOS = () => {
|
|
7
|
+
if (Platform.OS !== 'ios') {
|
|
8
|
+
throw new Error(ERROR_MESSAGE);
|
|
9
|
+
}
|
|
10
|
+
};
|
|
@@ -1,20 +1,15 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.isValidDate = void 0;
|
|
7
1
|
/**
|
|
8
2
|
* The isValidDate function in TypeScript validates if a given date string is in the format YYYY-MM-DD.
|
|
9
3
|
* @param {string} date - The `isValidDate` function you provided checks if a given date string is in
|
|
10
4
|
* the format `YYYY-MM-DD`. If the date string does not match this format, it throws an error
|
|
11
5
|
* indicating the correct format.
|
|
12
6
|
*/
|
|
13
|
-
const isValidDate = date => {
|
|
7
|
+
export const isValidDate = (date: string) => {
|
|
14
8
|
const regex = /^\d{4}-\d{2}-\d{2}$/;
|
|
9
|
+
|
|
15
10
|
if (!regex.test(date)) {
|
|
16
|
-
throw new Error(
|
|
11
|
+
throw new Error(
|
|
12
|
+
`Invalid format: ${date}, the correct format is YYYY-MM-DD`
|
|
13
|
+
);
|
|
17
14
|
}
|
|
18
15
|
};
|
|
19
|
-
exports.isValidDate = isValidDate;
|
|
20
|
-
//# sourceMappingURL=isValidDate.js.map
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
|
2
|
-
<queries>
|
|
3
|
-
<package android:name="com.google.android.apps.healthdata"/>
|
|
4
|
-
</queries>
|
|
5
|
-
|
|
6
|
-
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
|
|
7
|
-
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
|
8
|
-
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_HEALTH"/>
|
|
9
|
-
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
|
10
|
-
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
|
|
11
|
-
|
|
12
|
-
<uses-permission android:name="android.permission.health.READ_SLEEP"/>
|
|
13
|
-
<uses-permission android:name="android.permission.health.READ_STEPS"/>
|
|
14
|
-
<uses-permission android:name="android.permission.health.READ_DISTANCE"/>
|
|
15
|
-
<uses-permission android:name="android.permission.health.READ_FLOORS_CLIMBED"/>
|
|
16
|
-
<uses-permission android:name="android.permission.health.READ_ELEVATION_GAINED"/>
|
|
17
|
-
<uses-permission android:name="android.permission.health.READ_OXYGEN_SATURATION"/>
|
|
18
|
-
<uses-permission android:name="android.permission.health.READ_VO2_MAX"/>
|
|
19
|
-
<uses-permission android:name="android.permission.health.READ_TOTAL_CALORIES_BURNED"/>
|
|
20
|
-
<uses-permission android:name="android.permission.health.READ_ACTIVE_CALORIES_BURNED"/>
|
|
21
|
-
<uses-permission android:name="android.permission.health.READ_HEART_RATE"/>
|
|
22
|
-
<uses-permission android:name="android.permission.health.READ_RESTING_HEART_RATE"/>
|
|
23
|
-
<uses-permission android:name="android.permission.health.READ_HEART_RATE_VARIABILITY"/>
|
|
24
|
-
<uses-permission android:name="android.permission.health.READ_EXERCISE"/>
|
|
25
|
-
<uses-permission android:name="android.permission.health.READ_SPEED"/>
|
|
26
|
-
<uses-permission android:name="android.permission.health.READ_WEIGHT"/>
|
|
27
|
-
<uses-permission android:name="android.permission.health.READ_HEIGHT"/>
|
|
28
|
-
<uses-permission android:name="android.permission.health.READ_BLOOD_GLUCOSE"/>
|
|
29
|
-
<uses-permission android:name="android.permission.health.READ_BLOOD_PRESSURE"/>
|
|
30
|
-
<uses-permission android:name="android.permission.health.READ_HYDRATION"/>
|
|
31
|
-
<uses-permission android:name="android.permission.health.READ_BODY_TEMPERATURE"/>
|
|
32
|
-
<uses-permission android:name="android.permission.health.READ_RESPIRATORY_RATE"/>
|
|
33
|
-
<uses-permission android:name="android.permission.health.READ_NUTRITION"/>
|
|
34
|
-
<uses-permission android:name="android.permission.health.READ_MENSTRUATION"/>
|
|
35
|
-
<uses-permission android:name="android.permission.health.READ_POWER"/>
|
|
36
|
-
</manifest>
|
package/android/src/main/java/com/rooksdk/broadcasts/AndroidPermissionsReceiverTransmitter.kt
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
package com.rooksdk.broadcasts
|
|
2
|
-
|
|
3
|
-
import android.content.BroadcastReceiver
|
|
4
|
-
import android.content.Context
|
|
5
|
-
import android.content.Intent
|
|
6
|
-
import com.facebook.react.bridge.Arguments
|
|
7
|
-
import com.facebook.react.bridge.ReactApplicationContext
|
|
8
|
-
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
9
|
-
import com.rookmotion.rook.sdk.RookPermissionsManager
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* AndroidPermissionsReceiverTransmitter is a custom BroadcastReceiver used to listen for updates
|
|
13
|
-
* on Android permission changes and transmit them back to the React Native layer.
|
|
14
|
-
* It listens for a broadcast containing permission status, then emits a corresponding event to JavaScript.
|
|
15
|
-
*/
|
|
16
|
-
class AndroidPermissionsReceiverTransmitter: BroadcastReceiver() {
|
|
17
|
-
private var reactApplicationContext: ReactApplicationContext? = null
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* This method is called when a broadcast is received.
|
|
21
|
-
* It checks whether the broadcast includes the permission status and emits an event to the React Native
|
|
22
|
-
* JavaScript layer with the results.
|
|
23
|
-
*
|
|
24
|
-
* @param context The context in which the receiver is running.
|
|
25
|
-
* @param intent The intent containing permission-related data.
|
|
26
|
-
*/
|
|
27
|
-
override fun onReceive(context: Context?, intent: Intent?) {
|
|
28
|
-
val permissionsGranted = intent?.getBooleanExtra(
|
|
29
|
-
/* name = */ RookPermissionsManager.EXTRA_ANDROID_PERMISSIONS_GRANTED,
|
|
30
|
-
/* defaultValue = */ false
|
|
31
|
-
) ?: false
|
|
32
|
-
|
|
33
|
-
val dialogDisplayed = intent?.getBooleanExtra(
|
|
34
|
-
RookPermissionsManager.EXTRA_ANDROID_PERMISSIONS_DIALOG_DISPLAYED,
|
|
35
|
-
false
|
|
36
|
-
) ?: false
|
|
37
|
-
|
|
38
|
-
reactApplicationContext?.also { reactContext ->
|
|
39
|
-
val events = listOf(
|
|
40
|
-
"ROOK_BACKGROUND_ANDROID_PERMISSIONS" to permissionsGranted,
|
|
41
|
-
"ROOK_BACKGROUND_ANDROID_PERMISSIONS_DIALOG_DISPLAYED" to dialogDisplayed
|
|
42
|
-
)
|
|
43
|
-
|
|
44
|
-
val emitter = reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
|
|
45
|
-
|
|
46
|
-
events.forEach { (type, value) ->
|
|
47
|
-
Arguments.createMap().apply {
|
|
48
|
-
putString("type", type)
|
|
49
|
-
putBoolean("value", value)
|
|
50
|
-
emitter.emit("ROOK_NOTIFICATION", this)
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Sets the ReactApplicationContext to be used for emitting events to the React Native side.
|
|
58
|
-
*
|
|
59
|
-
* @param context The ReactApplicationContext provided by React Native.
|
|
60
|
-
*/
|
|
61
|
-
fun setReactApplicationContext(context: ReactApplicationContext) {
|
|
62
|
-
this.reactApplicationContext = context
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
}
|
package/android/src/main/java/com/rooksdk/broadcasts/HealthConnectPermissionsReceiverTransmitter.kt
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
package com.rooksdk.broadcasts
|
|
2
|
-
|
|
3
|
-
import android.content.BroadcastReceiver
|
|
4
|
-
import android.content.Context
|
|
5
|
-
import android.content.Intent
|
|
6
|
-
import com.facebook.react.bridge.Arguments
|
|
7
|
-
import com.facebook.react.bridge.ReactApplicationContext
|
|
8
|
-
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
9
|
-
import com.rookmotion.rook.sdk.RookPermissionsManager
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* HealthConnectPermissionsReceiverTransmitter is a custom BroadcastReceiver used to listen for updates
|
|
13
|
-
* on Android permission changes and transmit them back to the React Native layer.
|
|
14
|
-
* It listens for a broadcast containing permission status, then emits a corresponding event to JavaScript.
|
|
15
|
-
*/
|
|
16
|
-
class HealthConnectPermissionsReceiverTransmitter: BroadcastReceiver() {
|
|
17
|
-
private var reactApplicationContext: ReactApplicationContext? = null
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* This method is called when a broadcast is received.
|
|
21
|
-
* It checks whether the broadcast includes the permission status and emits an event to the React Native
|
|
22
|
-
* JavaScript layer with the results.
|
|
23
|
-
*
|
|
24
|
-
* @param context The context in which the receiver is running.
|
|
25
|
-
* @param intent The intent containing permission-related data.
|
|
26
|
-
*/
|
|
27
|
-
override fun onReceive(context: Context?, intent: Intent?) {
|
|
28
|
-
val permissionsGranted = intent?.getBooleanExtra(
|
|
29
|
-
/* name = */ RookPermissionsManager.EXTRA_HEALTH_CONNECT_PERMISSIONS_GRANTED,
|
|
30
|
-
/* defaultValue = */ false
|
|
31
|
-
) ?: false
|
|
32
|
-
|
|
33
|
-
val partiallyGranted = intent?.getBooleanExtra(
|
|
34
|
-
RookPermissionsManager.EXTRA_HEALTH_CONNECT_PERMISSIONS_PARTIALLY_GRANTED,
|
|
35
|
-
false
|
|
36
|
-
) ?: false
|
|
37
|
-
|
|
38
|
-
val backgroundReadStatus = intent?.getBooleanExtra(
|
|
39
|
-
RookPermissionsManager.EXTRA_HEALTH_CONNECT_BACKGROUND_PERMISSION_GRANTED,
|
|
40
|
-
false
|
|
41
|
-
) ?: false
|
|
42
|
-
|
|
43
|
-
reactApplicationContext?.also { reactContext ->
|
|
44
|
-
val events = listOf(
|
|
45
|
-
"ROOK_HEALTH_CONNECT_PERMISSIONS" to permissionsGranted,
|
|
46
|
-
"ROOK_HEALTH_CONNECT_PERMISSIONS_PARTIALLY_GRANTED" to partiallyGranted,
|
|
47
|
-
"ROOK_HEALTH_CONNECT_BACKGROUND_PERMISSIONS" to backgroundReadStatus,
|
|
48
|
-
)
|
|
49
|
-
|
|
50
|
-
val emitter = reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
|
|
51
|
-
|
|
52
|
-
events.forEach { (type, value) ->
|
|
53
|
-
Arguments.createMap().apply {
|
|
54
|
-
putString("type", type)
|
|
55
|
-
putBoolean("value", value)
|
|
56
|
-
emitter.emit("ROOK_NOTIFICATION", this)
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Sets the ReactApplicationContext to be used for emitting events to the React Native side.
|
|
64
|
-
*
|
|
65
|
-
* @param context The ReactApplicationContext provided by React Native.
|
|
66
|
-
*/
|
|
67
|
-
fun setReactApplicationContext(context: ReactApplicationContext) {
|
|
68
|
-
this.reactApplicationContext = context
|
|
69
|
-
}
|
|
70
|
-
}
|
package/android/src/main/java/com/rooksdk/broadcasts/SamsungHealthPermissionsReceiverTransmitter.kt
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
package com.rooksdk.broadcasts
|
|
2
|
-
|
|
3
|
-
import android.content.BroadcastReceiver
|
|
4
|
-
import android.content.Context
|
|
5
|
-
import android.content.Intent
|
|
6
|
-
import com.facebook.react.bridge.Arguments
|
|
7
|
-
import com.facebook.react.bridge.ReactApplicationContext
|
|
8
|
-
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
9
|
-
import io.tryrook.sdk.samsung.domain.enums.SamsungHealthPermission
|
|
10
|
-
|
|
11
|
-
class SamsungHealthPermissionsReceiverTransmitter: BroadcastReceiver() {
|
|
12
|
-
private var reactApplicationContext: ReactApplicationContext? = null
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Sets the ReactApplicationContext to be used for emitting events to the React Native side.
|
|
16
|
-
*
|
|
17
|
-
* @param context The ReactApplicationContext provided by React Native.
|
|
18
|
-
*/
|
|
19
|
-
fun setReactApplicationContext(context: ReactApplicationContext) {
|
|
20
|
-
this.reactApplicationContext = context
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
override fun onReceive(conext: Context?, intent: Intent?) {
|
|
24
|
-
val allPermissionsGranted = intent?.getBooleanExtra(
|
|
25
|
-
/* name = */ SamsungHealthPermission.EXTRA_SAMSUNG_HEALTH_PERMISSIONS_GRANTED,
|
|
26
|
-
/* defaultValue = */ false
|
|
27
|
-
) ?: false
|
|
28
|
-
|
|
29
|
-
val permissionsPartiallyGranted = intent?.getBooleanExtra(
|
|
30
|
-
/* name = */ SamsungHealthPermission.EXTRA_SAMSUNG_HEALTH_PERMISSIONS_PARTIALLY_GRANTED,
|
|
31
|
-
/* defaultValue = */ false
|
|
32
|
-
) ?: false
|
|
33
|
-
|
|
34
|
-
reactApplicationContext?.also { reactContext ->
|
|
35
|
-
val events = listOf(
|
|
36
|
-
"ROOK_SAMSUNG_HEALTH_PERMISSIONS" to allPermissionsGranted,
|
|
37
|
-
"ROOK_SAMSUNG_HEALTH_PERMISSIONS_PARTIALLY_GRANTED" to permissionsPartiallyGranted,
|
|
38
|
-
)
|
|
39
|
-
|
|
40
|
-
val emitter = reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
|
|
41
|
-
|
|
42
|
-
events.forEach { (type, value) ->
|
|
43
|
-
Arguments.createMap().apply {
|
|
44
|
-
putString("type", type)
|
|
45
|
-
putBoolean("value", value)
|
|
46
|
-
emitter.emit("ROOK_NOTIFICATION", this)
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
}
|