react-native-rook-sdk 0.2.6 → 0.3.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.
Files changed (56) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/AndroidManifestNew.xml +6 -0
  3. package/android/src/main/java/com/rooksdk/RookSdkModule.kt +149 -18
  4. package/ios/RookSdk.mm +65 -2
  5. package/lib/commonjs/hooks/index.js +21 -0
  6. package/lib/commonjs/hooks/index.js.map +1 -1
  7. package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js +113 -0
  8. package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js.map +1 -0
  9. package/lib/commonjs/hooks/useRookAppleHealthVariables.js +50 -0
  10. package/lib/commonjs/hooks/useRookAppleHealthVariables.js.map +1 -0
  11. package/lib/commonjs/hooks/useRookConfiguration.js +27 -2
  12. package/lib/commonjs/hooks/useRookConfiguration.js.map +1 -1
  13. package/lib/commonjs/hooks/useRookDataSources.js +42 -0
  14. package/lib/commonjs/hooks/useRookDataSources.js.map +1 -0
  15. package/lib/commonjs/hooks/useRookEvents.js +4 -6
  16. package/lib/commonjs/hooks/useRookEvents.js.map +1 -1
  17. package/lib/commonjs/hooks/useRookSummaries.js +2 -8
  18. package/lib/commonjs/hooks/useRookSummaries.js.map +1 -1
  19. package/lib/commonjs/types/DataSource.js +2 -0
  20. package/lib/commonjs/types/DataSource.js.map +1 -0
  21. package/lib/commonjs/utils/packageInfo.js +1 -1
  22. package/lib/module/hooks/index.js +3 -0
  23. package/lib/module/hooks/index.js.map +1 -1
  24. package/lib/module/hooks/useRookAndroidBackgroundSteps.js +106 -0
  25. package/lib/module/hooks/useRookAndroidBackgroundSteps.js.map +1 -0
  26. package/lib/module/hooks/useRookAppleHealthVariables.js +43 -0
  27. package/lib/module/hooks/useRookAppleHealthVariables.js.map +1 -0
  28. package/lib/module/hooks/useRookConfiguration.js +28 -3
  29. package/lib/module/hooks/useRookConfiguration.js.map +1 -1
  30. package/lib/module/hooks/useRookDataSources.js +35 -0
  31. package/lib/module/hooks/useRookDataSources.js.map +1 -0
  32. package/lib/module/hooks/useRookEvents.js +4 -6
  33. package/lib/module/hooks/useRookEvents.js.map +1 -1
  34. package/lib/module/hooks/useRookSummaries.js +2 -8
  35. package/lib/module/hooks/useRookSummaries.js.map +1 -1
  36. package/lib/module/types/DataSource.js +2 -0
  37. package/lib/module/types/DataSource.js.map +1 -0
  38. package/lib/module/utils/packageInfo.js +1 -1
  39. package/lib/typescript/src/hooks/index.d.ts +3 -0
  40. package/lib/typescript/src/hooks/index.d.ts.map +1 -1
  41. package/lib/typescript/src/hooks/useRookAndroidBackgroundSteps.d.ts +12 -0
  42. package/lib/typescript/src/hooks/useRookAndroidBackgroundSteps.d.ts.map +1 -0
  43. package/lib/typescript/src/hooks/useRookAppleHealthVariables.d.ts +8 -0
  44. package/lib/typescript/src/hooks/useRookAppleHealthVariables.d.ts.map +1 -0
  45. package/lib/typescript/src/hooks/useRookConfiguration.d.ts +3 -0
  46. package/lib/typescript/src/hooks/useRookConfiguration.d.ts.map +1 -1
  47. package/lib/typescript/src/hooks/useRookDataSources.d.ts +7 -0
  48. package/lib/typescript/src/hooks/useRookDataSources.d.ts.map +1 -0
  49. package/lib/typescript/src/hooks/useRookEvents.d.ts +1 -1
  50. package/lib/typescript/src/hooks/useRookEvents.d.ts.map +1 -1
  51. package/lib/typescript/src/hooks/useRookSummaries.d.ts +1 -1
  52. package/lib/typescript/src/hooks/useRookSummaries.d.ts.map +1 -1
  53. package/lib/typescript/src/types/DataSource.d.ts +8 -0
  54. package/lib/typescript/src/types/DataSource.d.ts.map +1 -0
  55. package/package.json +1 -1
  56. package/react-native-rook-sdk.podspec +1 -1
@@ -90,6 +90,6 @@ dependencies {
90
90
  //noinspection GradleDynamicVersion
91
91
  implementation "com.facebook.react:react-native:+"
92
92
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
93
- implementation 'com.rookmotion.android:rook-sdk:0.8.0'
93
+ implementation 'com.rookmotion.android:rook-sdk:1.2.2'
94
94
  }
95
95
 
@@ -3,6 +3,12 @@
3
3
  <package android:name="com.google.android.apps.healthdata"/>
4
4
  </queries>
5
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
+
6
12
  <uses-permission android:name="android.permission.health.READ_SLEEP"/>
7
13
  <uses-permission android:name="android.permission.health.READ_STEPS"/>
8
14
  <uses-permission android:name="android.permission.health.READ_DISTANCE"/>
@@ -6,11 +6,15 @@ import com.facebook.react.bridge.ReactApplicationContext
6
6
  import com.facebook.react.bridge.ReactContextBaseJavaModule
7
7
  import com.facebook.react.bridge.ReactMethod
8
8
  import com.facebook.react.bridge.ReadableMap
9
+ import com.facebook.react.bridge.WritableArray
9
10
  import com.facebook.react.modules.core.DeviceEventManagerModule
10
11
  import com.rookmotion.rook.sdk.RookConfigurationManager
12
+ import com.rookmotion.rook.sdk.RookDataSources
11
13
  import com.rookmotion.rook.sdk.RookEventManager
12
14
  import com.rookmotion.rook.sdk.RookHealthPermissionsManager
13
15
  import com.rookmotion.rook.sdk.RookHelpers
16
+ import com.rookmotion.rook.sdk.RookStepsManager
17
+ import com.rookmotion.rook.sdk.RookStepsPermissions
14
18
  import com.rookmotion.rook.sdk.RookSummaryManager
15
19
  import com.rookmotion.rook.sdk.RookYesterdaySyncPermissions
16
20
  import com.rookmotion.rook.sdk.domain.enums.HealthPermission
@@ -18,7 +22,8 @@ import com.rookmotion.rook.sdk.domain.environment.RookAndroidClass
18
22
  import com.rookmotion.rook.sdk.domain.environment.RookEnvironment
19
23
  import com.rookmotion.rook.sdk.domain.model.RookConfiguration
20
24
  import com.rookmotion.rook.sdk.domain.enums.HealthDataType
21
- import com.rookmotion.rook.sdk.domain.model.SyncStatus
25
+ import com.rookmotion.rook.sdk.domain.enums.SyncStatus
26
+ import com.rookmotion.rook.sdk.domain.model.DataSource
22
27
  import kotlinx.coroutines.CoroutineScope
23
28
  import kotlinx.coroutines.Dispatchers
24
29
  import kotlinx.coroutines.SupervisorJob
@@ -33,9 +38,16 @@ class RookSdkModule(reactContext: ReactApplicationContext) :
33
38
  private val rookSummaryManager = RookSummaryManager(rookConfigurationManager)
34
39
  private val rookEventManager = RookEventManager(rookConfigurationManager)
35
40
  private var scope: CoroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.Main)
36
- private var stepsScope: CoroutineScope? = null
37
41
  private var listenerCount = 0
38
42
 
43
+ private val stepsScope: CoroutineScope by lazy {
44
+ CoroutineScope(SupervisorJob() + Dispatchers.Main)
45
+ }
46
+
47
+ private val rookStepsManager: RookStepsManager by lazy {
48
+ RookStepsManager(reactApplicationContext)
49
+ }
50
+
39
51
  override fun getName(): String {
40
52
  return NAME
41
53
  }
@@ -49,7 +61,7 @@ class RookSdkModule(reactContext: ReactApplicationContext) :
49
61
  fun removeListeners(count: Int) {
50
62
  listenerCount -= count
51
63
  if (listenerCount == 0) {
52
- stepsScope?.cancel()
64
+ stepsScope.cancel()
53
65
  }
54
66
  }
55
67
 
@@ -80,6 +92,22 @@ class RookSdkModule(reactContext: ReactApplicationContext) :
80
92
  }
81
93
  }
82
94
 
95
+ private fun dataSourcesToWritableArray(dataSources: List<DataSource>): WritableArray {
96
+ val array = Arguments.createArray()
97
+ for (dataSource in dataSources) {
98
+ val map = Arguments.createMap()
99
+ map.putString("name", dataSource.name)
100
+ map.putString("description", dataSource.description)
101
+ map.putString("image", dataSource.image)
102
+ map.putBoolean("connected", dataSource.connected)
103
+ dataSource.authorizationUrl?.let {
104
+ map.putString("authorizationUrl", it)
105
+ }
106
+ array.pushMap(map)
107
+ }
108
+ return array
109
+ }
110
+
83
111
  @ReactMethod
84
112
  fun getUserID(promise: Promise) {
85
113
  try {
@@ -93,26 +121,22 @@ class RookSdkModule(reactContext: ReactApplicationContext) :
93
121
  @ReactMethod
94
122
  fun updateUserID(userID: String, promise: Promise) {
95
123
  scope.launch {
96
- try {
97
124
  rookConfigurationManager.updateUserID(userID)
98
- promise.resolve(true)
99
- }
100
- catch (e: Exception) {
101
- promise.reject(e)
102
- }
125
+ .fold({
126
+ promise.resolve(true)
127
+ }, {
128
+ promise.reject(it)
129
+ })
103
130
  }
104
131
  }
105
132
 
106
133
  @ReactMethod
107
134
  fun clearUserID(promise: Promise) {
108
- try {
109
- rookConfigurationManager.clearUserID()
110
- promise.resolve(true)
111
- }
112
- catch (e: Exception) {
113
- promise.reject(e)
114
- }
115
-
135
+ rookConfigurationManager.clearUserID().fold({
136
+ promise.resolve(true)
137
+ }, {
138
+ promise.reject(it)
139
+ })
116
140
  }
117
141
 
118
142
  @ReactMethod
@@ -475,7 +499,8 @@ class RookSdkModule(reactContext: ReactApplicationContext) :
475
499
  @ReactMethod
476
500
  fun syncTemperatureEvent(date: String, promise: Promise) {
477
501
  scope.launch {
478
- val result = rookEventManager.syncTemperatureEvents(RookDateTime.stringToLocalDate(date))
502
+ val result = rookEventManager
503
+ .syncTemperatureEvents(RookDateTime.stringToLocalDate(date))
479
504
 
480
505
  result.fold({
481
506
  if (it == SyncStatus.SYNCED) promise.resolve(true)
@@ -522,6 +547,112 @@ class RookSdkModule(reactContext: ReactApplicationContext) :
522
547
  }
523
548
  }
524
549
 
550
+ // MARK: - Steps
551
+ @ReactMethod
552
+ fun isStepsAvailable(promise: Promise) {
553
+ promise.resolve(RookStepsPermissions.isAvailable(reactApplicationContext))
554
+ }
555
+
556
+ @ReactMethod
557
+ fun hasStepsPermissions(promise: Promise) {
558
+ promise.resolve(RookStepsPermissions.hasPermissions(reactApplicationContext))
559
+ }
560
+
561
+ @ReactMethod
562
+ fun requestStepsPermissions(promise: Promise) {
563
+ RookStepsPermissions.requestPermissions(reactApplicationContext)
564
+ promise.resolve(true)
565
+ }
566
+
567
+ @ReactMethod
568
+ fun startSteps(promise: Promise) {
569
+ rookStepsManager.start().fold({
570
+ promise.resolve(true)
571
+ }, {
572
+ promise.reject(it)
573
+ })
574
+ }
575
+
576
+ @ReactMethod
577
+ fun stopSteps(promise: Promise) {
578
+ rookStepsManager
579
+ .stop()
580
+ .fold({
581
+ stepsScope.cancel()
582
+ promise.resolve(true)
583
+ }, {
584
+ promise.reject(it)
585
+ })
586
+ }
587
+
588
+ @ReactMethod
589
+ fun isStepsActive(promise: Promise) {
590
+ scope.launch {
591
+ val response = rookStepsManager.isActive()
592
+ promise.resolve(response)
593
+ }
594
+ }
595
+
596
+ @ReactMethod
597
+ fun getTodaySteps(promise: Promise) {
598
+ scope.launch {
599
+ rookStepsManager
600
+ .getTodaySteps()
601
+ .fold({
602
+ promise.resolve(it.toString())
603
+ }, {
604
+ promise.reject(it)
605
+ })
606
+ }
607
+ }
608
+
609
+ @ReactMethod
610
+ fun observeStepsOf(date: String, promise: Promise) {
611
+ stepsScope.launch {
612
+ rookStepsManager
613
+ .observeStepsOf(RookDateTime.stringToLocalDate(date))
614
+ .collect {
615
+ val params = Arguments.createMap().apply {
616
+ putString("steps", it.toString())
617
+ }
618
+
619
+ reactApplicationContext
620
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
621
+ .emit("RookStepsUpdate", params)
622
+ }
623
+ }
624
+
625
+ promise.resolve(true)
626
+ }
627
+
628
+ // MARK: - Datasources
629
+ @ReactMethod
630
+ fun getAvailableDataSources(promise: Promise) {
631
+ val rookDataSources = RookDataSources(reactApplicationContext)
632
+
633
+ scope.launch {
634
+ rookDataSources.getAvailableDataSources().fold(
635
+ { dataSources ->
636
+ promise.resolve(dataSourcesToWritableArray(dataSources))
637
+ },
638
+ {
639
+ promise.reject(it)
640
+ },
641
+ )
642
+ }
643
+ }
644
+
645
+ @ReactMethod
646
+ fun presentDataSourceView(promise: Promise) {
647
+ val rookDataSources = RookDataSources(reactApplicationContext)
648
+
649
+ rookDataSources.presentDataSourceView().fold({
650
+ promise.resolve(true)
651
+ }, {
652
+ promise.reject(it)
653
+ })
654
+ }
655
+
525
656
  companion object {
526
657
  const val NAME = "RookSdk"
527
658
  }
package/ios/RookSdk.mm CHANGED
@@ -56,9 +56,10 @@ RCT_EXPORT_MODULE()
56
56
 
57
57
  RookConnectConfigurationManagerObjc *shared;
58
58
  RookConnectPermissionsManager *permissionsManager;
59
- RookSummaryManger *summaryManager;
59
+ RookSummaryManager *summaryManager;
60
60
  RookEventsManager *eventsManager;
61
61
  RookVariableExtractionManager *variableManager;
62
+ DataSourceManagerObjc *sourceManager;
62
63
 
63
64
  // MARK: - Configuration
64
65
  RCT_EXPORT_METHOD(initRook:(NSDictionary *) data
@@ -91,9 +92,10 @@ RCT_EXPORT_METHOD(initRook:(NSDictionary *) data
91
92
  [shared initRook];
92
93
 
93
94
  permissionsManager = [RookConnectPermissionsManager new];
94
- summaryManager = [RookSummaryManger new];
95
+ summaryManager = [RookSummaryManager new];
95
96
  eventsManager = [RookEventsManager new];
96
97
  variableManager = [RookVariableExtractionManager new];
98
+ sourceManager = [DataSourceManagerObjc new];
97
99
 
98
100
  resolve(@(YES));
99
101
  }
@@ -500,6 +502,18 @@ RCT_EXPORT_METHOD(disableBackGroundEventUpdates: (RCTPromiseResolveBlock) resolv
500
502
  }
501
503
 
502
504
  // MARK: - Variables
505
+ RCT_EXPORT_METHOD(getTodaySteps: (RCTPromiseResolveBlock) resolve
506
+ reject:(RCTPromiseRejectBlock)reject) {
507
+
508
+ [variableManager getTodayStepsWithCompletion:^(NSInteger steps, NSError * _Nullable error) {
509
+ if(error != nil) {
510
+ reject(@"event_failure", error.description, error);
511
+ return;
512
+ }
513
+ resolve(@(steps));
514
+ }];
515
+
516
+ }
503
517
 
504
518
  RCT_EXPORT_METHOD(getTodayActiveCaloriesBurned: (RCTPromiseResolveBlock) resolve
505
519
  reject:(RCTPromiseRejectBlock)reject) {
@@ -514,6 +528,23 @@ RCT_EXPORT_METHOD(getTodayActiveCaloriesBurned: (RCTPromiseResolveBlock) resolve
514
528
  }];
515
529
  }
516
530
 
531
+ RCT_EXPORT_METHOD(enableBackGroundForSteps: (RCTPromiseResolveBlock) resolve
532
+ reject:(RCTPromiseRejectBlock)reject) {
533
+ @try {
534
+ [[RookBackGroundExtraction shared] enableBackGroundForSteps];
535
+
536
+ [RookBackGroundExtraction shared].handleStepsUpdate = ^(NSInteger steps) {
537
+ [self sendEventWithName:@"RookStepsUpdate" body:@{@"steps": @(steps)}];
538
+ };
539
+
540
+ resolve(@(YES));
541
+ } @catch (NSException *exception) {
542
+ NSError *error = errorFromException(exception);
543
+ reject(@"event_failure", error.description, error);
544
+ }
545
+
546
+ }
547
+
517
548
  RCT_EXPORT_METHOD(enableBackGroundForCalories: (RCTPromiseResolveBlock) resolve
518
549
  reject:(RCTPromiseRejectBlock)reject) {
519
550
  @try {
@@ -532,7 +563,39 @@ RCT_EXPORT_METHOD(enableBackGroundForCalories: (RCTPromiseResolveBlock) resolve
532
563
 
533
564
  }
534
565
 
566
+ // MARK: - Connection Page
567
+ RCT_EXPORT_METHOD(getAvailableDataSources: (RCTPromiseResolveBlock) resolve
568
+ reject:(RCTPromiseRejectBlock)reject) {
569
+
570
+ [sourceManager getAvailableDataSourcesWithCompletion:^(NSArray<NSDictionary<NSString *,id> *> * _Nullable sources,
571
+ NSError * _Nullable error) {
572
+ if (error) {
573
+ reject(@"event_failure", error.description, error);
574
+ return;
575
+ }
535
576
 
577
+ if (sources) {
578
+ resolve(sources);
579
+ return;
580
+ }
581
+
582
+ resolve([NSDictionary dictionary]);
583
+ }];
584
+ }
585
+
586
+ RCT_EXPORT_METHOD(presentDataSourceView: (RCTPromiseResolveBlock) resolve
587
+ reject:(RCTPromiseRejectBlock)reject) {
588
+ dispatch_async(dispatch_get_main_queue(), ^{
589
+ [sourceManager presentDataSourceViewWithCompletion:^(BOOL succeed, NSError * _Nullable error) {
590
+ if (error) {
591
+ reject(@"event_failure", error.description, error);
592
+ return;
593
+ }
594
+
595
+ resolve(@(succeed));
596
+ }];
597
+ });
598
+ }
536
599
  @end
537
600
 
538
601
 
@@ -3,18 +3,36 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "useRookAndroidBackgroundSteps", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _useRookAndroidBackgroundSteps.useRookAndroidBackgroundSteps;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "useRookAppleHealth", {
7
13
  enumerable: true,
8
14
  get: function () {
9
15
  return _useRookAppleHealth.useRookAppleHealth;
10
16
  }
11
17
  });
18
+ Object.defineProperty(exports, "useRookAppleHealthVariables", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _useRookAppleHealthVariables.useRookAppleHealthVariables;
22
+ }
23
+ });
12
24
  Object.defineProperty(exports, "useRookConfiguration", {
13
25
  enumerable: true,
14
26
  get: function () {
15
27
  return _useRookConfiguration.useRookConfiguration;
16
28
  }
17
29
  });
30
+ Object.defineProperty(exports, "useRookDataSources", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _useRookDataSources.useRookDataSources;
34
+ }
35
+ });
18
36
  Object.defineProperty(exports, "useRookEvents", {
19
37
  enumerable: true,
20
38
  get: function () {
@@ -33,8 +51,11 @@ Object.defineProperty(exports, "useRookSummaries", {
33
51
  return _useRookSummaries.useRookSummaries;
34
52
  }
35
53
  });
54
+ var _useRookAndroidBackgroundSteps = require("./useRookAndroidBackgroundSteps");
36
55
  var _useRookAppleHealth = require("./useRookAppleHealth");
56
+ var _useRookAppleHealthVariables = require("./useRookAppleHealthVariables");
37
57
  var _useRookConfiguration = require("./useRookConfiguration");
58
+ var _useRookDataSources = require("./useRookDataSources");
38
59
  var _useRookEvents = require("./useRookEvents");
39
60
  var _useRookPermissions = require("./useRookPermissions");
40
61
  var _useRookSummaries = require("./useRookSummaries");
@@ -1 +1 @@
1
- {"version":3,"names":["_useRookAppleHealth","require","_useRookConfiguration","_useRookEvents","_useRookPermissions","_useRookSummaries"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_useRookAndroidBackgroundSteps","require","_useRookAppleHealth","_useRookAppleHealthVariables","_useRookConfiguration","_useRookDataSources","_useRookEvents","_useRookPermissions","_useRookSummaries"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,8BAAA,GAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,4BAAA,GAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,mBAAA,GAAAN,OAAA;AACA,IAAAO,iBAAA,GAAAP,OAAA","ignoreList":[]}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useRookAndroidBackgroundSteps = void 0;
7
+ var _react = require("react");
8
+ var _RookSyncGateContext = require("../context/RookSyncGateContext");
9
+ var _utils = require("../utils");
10
+ const useRookAndroidBackgroundSteps = () => {
11
+ const rookSync = (0, _react.useRef)((0, _utils.getRookModule)());
12
+ const {
13
+ state: {
14
+ ready
15
+ }
16
+ } = (0, _RookSyncGateContext.useRookSyncGateContext)();
17
+
18
+ /**
19
+ * The function `isStepsAvailable` checks if steps data is available.
20
+ * @returns The function `isStepsAvailable` is returning a promise that resolve in a boolean value.
21
+ */
22
+ const isStepsAvailable = async () => {
23
+ (0, _utils.isRunningOnAndroid)();
24
+ (0, _utils.isModuleReady)(ready);
25
+ return rookSync.current.isStepsAvailable();
26
+ };
27
+
28
+ /**
29
+ * The function `hasStepsPermissions` checks if the current user has permissions to access step data.
30
+ * @returns The function `hasStepsPermissions` is returning a promise that resolve in a boolean value.
31
+ */
32
+ const hasStepsPermissions = async () => {
33
+ (0, _utils.isRunningOnAndroid)();
34
+ (0, _utils.isModuleReady)(ready);
35
+ return rookSync.current.hasStepsPermissions();
36
+ };
37
+
38
+ /**
39
+ * The function `requestStepsPermissions` requests permission to access step count data.
40
+ * @returns The function `requestStepsPermissions` is returning a Promise that resolves to a boolean
41
+ * value.
42
+ */
43
+ const requestStepsPermissions = () => {
44
+ (0, _utils.isRunningOnAndroid)();
45
+ (0, _utils.isModuleReady)(ready);
46
+ return rookSync.current.requestStepsPermissions();
47
+ };
48
+
49
+ /**
50
+ * The function `startSteps` starts collecting of steps during the day
51
+ * @returns The `startSteps` function is returning a Promise that resolves to a boolean
52
+ */
53
+ const startSteps = async () => {
54
+ (0, _utils.isRunningOnAndroid)();
55
+ (0, _utils.isModuleReady)(ready);
56
+ return rookSync.current.startSteps();
57
+ };
58
+
59
+ /**
60
+ * The function `stopSteps` stops a process of collecting steps during the day
61
+ * @returns The function `stopSteps` function is returning a Promise that resolves to a boolean
62
+ */
63
+ const stopSteps = () => {
64
+ (0, _utils.isRunningOnAndroid)();
65
+ (0, _utils.isModuleReady)(ready);
66
+ return rookSync.current.stopSteps();
67
+ };
68
+
69
+ /**
70
+ * The function `isStepsActive` checks if steps are active and returns a Promise with a boolean
71
+ * value.
72
+ * @returns The function is returning a Promise that resolves to a boolean
73
+ */
74
+ const isStepsActive = () => {
75
+ (0, _utils.isRunningOnAndroid)();
76
+ (0, _utils.isModuleReady)(ready);
77
+ return rookSync.current.isStepsActive();
78
+ };
79
+
80
+ /**
81
+ * The function `getTodaySteps` retrieves the number of steps taken today asynchronously as string.
82
+ * @returns The function `getTodaySteps` is returning the result of calling
83
+ */
84
+ const getTodaySteps = () => {
85
+ (0, _utils.isRunningOnAndroid)();
86
+ (0, _utils.isModuleReady)(ready);
87
+ return rookSync.current.getTodaySteps();
88
+ };
89
+
90
+ /**
91
+ * The function `observeTodaySteps` start the process to observe steps in background
92
+ * @returns A Promise that resolves to a boolean value.
93
+ */
94
+ const observeStepsOf = date => {
95
+ (0, _utils.isRunningOnAndroid)();
96
+ (0, _utils.isModuleReady)(ready);
97
+ (0, _utils.isValidDate)(date);
98
+ return rookSync.current.observeStepsOf(date);
99
+ };
100
+ return {
101
+ ready,
102
+ isStepsAvailable,
103
+ hasStepsPermissions,
104
+ requestStepsPermissions,
105
+ startSteps,
106
+ stopSteps,
107
+ isStepsActive,
108
+ getTodaySteps,
109
+ observeStepsOf
110
+ };
111
+ };
112
+ exports.useRookAndroidBackgroundSteps = useRookAndroidBackgroundSteps;
113
+ //# sourceMappingURL=useRookAndroidBackgroundSteps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_RookSyncGateContext","_utils","useRookAndroidBackgroundSteps","rookSync","useRef","getRookModule","state","ready","useRookSyncGateContext","isStepsAvailable","isRunningOnAndroid","isModuleReady","current","hasStepsPermissions","requestStepsPermissions","startSteps","stopSteps","isStepsActive","getTodaySteps","observeStepsOf","date","isValidDate","exports"],"sourceRoot":"../../../src","sources":["hooks/useRookAndroidBackgroundSteps.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAOO,MAAMG,6BAA6B,GAAGA,CAAA,KAAM;EACjD,MAAMC,QAAQ,GAAG,IAAAC,aAAM,EAAC,IAAAC,oBAAa,EAAC,CAAC,CAAC;EACxC,MAAM;IACJC,KAAK,EAAE;MAAEC;IAAM;EACjB,CAAC,GAAG,IAAAC,2CAAsB,EAAC,CAAC;;EAE5B;AACF;AACA;AACA;EACE,MAAMC,gBAAgB,GAAG,MAAAA,CAAA,KAA8B;IACrD,IAAAC,yBAAkB,EAAC,CAAC;IACpB,IAAAC,oBAAa,EAACJ,KAAK,CAAC;IAEpB,OAAOJ,QAAQ,CAACS,OAAO,CAACH,gBAAgB,CAAC,CAAC;EAC5C,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAMI,mBAAmB,GAAG,MAAAA,CAAA,KAA8B;IACxD,IAAAH,yBAAkB,EAAC,CAAC;IACpB,IAAAC,oBAAa,EAACJ,KAAK,CAAC;IAEpB,OAAOJ,QAAQ,CAACS,OAAO,CAACC,mBAAmB,CAAC,CAAC;EAC/C,CAAC;;EAED;AACF;AACA;AACA;AACA;EACE,MAAMC,uBAAuB,GAAGA,CAAA,KAAwB;IACtD,IAAAJ,yBAAkB,EAAC,CAAC;IACpB,IAAAC,oBAAa,EAACJ,KAAK,CAAC;IAEpB,OAAOJ,QAAQ,CAACS,OAAO,CAACE,uBAAuB,CAAC,CAAC;EACnD,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAMC,UAAU,GAAG,MAAAA,CAAA,KAA8B;IAC/C,IAAAL,yBAAkB,EAAC,CAAC;IACpB,IAAAC,oBAAa,EAACJ,KAAK,CAAC;IAEpB,OAAOJ,QAAQ,CAACS,OAAO,CAACG,UAAU,CAAC,CAAC;EACtC,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAMC,SAAS,GAAGA,CAAA,KAAwB;IACxC,IAAAN,yBAAkB,EAAC,CAAC;IACpB,IAAAC,oBAAa,EAACJ,KAAK,CAAC;IAEpB,OAAOJ,QAAQ,CAACS,OAAO,CAACI,SAAS,CAAC,CAAC;EACrC,CAAC;;EAED;AACF;AACA;AACA;AACA;EACE,MAAMC,aAAa,GAAGA,CAAA,KAAwB;IAC5C,IAAAP,yBAAkB,EAAC,CAAC;IACpB,IAAAC,oBAAa,EAACJ,KAAK,CAAC;IAEpB,OAAOJ,QAAQ,CAACS,OAAO,CAACK,aAAa,CAAC,CAAC;EACzC,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAMC,aAAa,GAAGA,CAAA,KAAuB;IAC3C,IAAAR,yBAAkB,EAAC,CAAC;IACpB,IAAAC,oBAAa,EAACJ,KAAK,CAAC;IAEpB,OAAOJ,QAAQ,CAACS,OAAO,CAACM,aAAa,CAAC,CAAC;EACzC,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAMC,cAAc,GAAIC,IAAY,IAAuB;IACzD,IAAAV,yBAAkB,EAAC,CAAC;IACpB,IAAAC,oBAAa,EAACJ,KAAK,CAAC;IACpB,IAAAc,kBAAW,EAACD,IAAI,CAAC;IAEjB,OAAOjB,QAAQ,CAACS,OAAO,CAACO,cAAc,CAACC,IAAI,CAAC;EAC9C,CAAC;EAED,OAAO;IACLb,KAAK;IACLE,gBAAgB;IAChBI,mBAAmB;IACnBC,uBAAuB;IACvBC,UAAU;IACVC,SAAS;IACTC,aAAa;IACbC,aAAa;IACbC;EACF,CAAC;AACH,CAAC;AAACG,OAAA,CAAApB,6BAAA,GAAAA,6BAAA","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useRookAppleHealthVariables = void 0;
7
+ var _react = require("react");
8
+ var _RookSyncGateContext = require("../context/RookSyncGateContext");
9
+ var _utils = require("../utils");
10
+ const useRookAppleHealthVariables = () => {
11
+ const rookSync = (0, _react.useRef)((0, _utils.getRookModule)());
12
+ const {
13
+ state: {
14
+ ready
15
+ }
16
+ } = (0, _RookSyncGateContext.useRookSyncGateContext)();
17
+ const getTodaySteps = async () => {
18
+ (0, _utils.isRunningOniOS)();
19
+ (0, _utils.isModuleReady)(ready);
20
+ const result = await rookSync.current.getTodaySteps();
21
+ return result;
22
+ };
23
+ const getTodayActiveCaloriesBurned = async () => {
24
+ (0, _utils.isRunningOniOS)();
25
+ (0, _utils.isModuleReady)(ready);
26
+ const result = await rookSync.current.getTodayActiveCaloriesBurned();
27
+ return result;
28
+ };
29
+ const enableBackGroundForSteps = async () => {
30
+ (0, _utils.isRunningOniOS)();
31
+ (0, _utils.isModuleReady)(ready);
32
+ const result = await rookSync.current.enableBackGroundForSteps();
33
+ return result;
34
+ };
35
+ const enableBackGroundForCalories = async () => {
36
+ (0, _utils.isRunningOniOS)();
37
+ (0, _utils.isModuleReady)(ready);
38
+ const result = await rookSync.current.enableBackGroundForCalories();
39
+ return result;
40
+ };
41
+ return {
42
+ ready,
43
+ getTodaySteps,
44
+ getTodayActiveCaloriesBurned,
45
+ enableBackGroundForSteps,
46
+ enableBackGroundForCalories
47
+ };
48
+ };
49
+ exports.useRookAppleHealthVariables = useRookAppleHealthVariables;
50
+ //# sourceMappingURL=useRookAppleHealthVariables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_RookSyncGateContext","_utils","useRookAppleHealthVariables","rookSync","useRef","getRookModule","state","ready","useRookSyncGateContext","getTodaySteps","isRunningOniOS","isModuleReady","result","current","getTodayActiveCaloriesBurned","enableBackGroundForSteps","enableBackGroundForCalories","exports"],"sourceRoot":"../../../src","sources":["hooks/useRookAppleHealthVariables.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEO,MAAMG,2BAA2B,GAAGA,CAAA,KAAM;EAC/C,MAAMC,QAAQ,GAAG,IAAAC,aAAM,EAAC,IAAAC,oBAAa,EAAC,CAAC,CAAC;EACxC,MAAM;IACJC,KAAK,EAAE;MAAEC;IAAM;EACjB,CAAC,GAAG,IAAAC,2CAAsB,EAAC,CAAC;EAE5B,MAAMC,aAAa,GAAG,MAAAA,CAAA,KAA2B;IAC/C,IAAAC,qBAAc,EAAC,CAAC;IAChB,IAAAC,oBAAa,EAACJ,KAAK,CAAC;IAEpB,MAAMK,MAAM,GAAG,MAAMT,QAAQ,CAACU,OAAO,CAACJ,aAAa,CAAC,CAAC;IACrD,OAAOG,MAAM;EACf,CAAC;EAED,MAAME,4BAA4B,GAAG,MAAAA,CAAA,KAA2B;IAC9D,IAAAJ,qBAAc,EAAC,CAAC;IAChB,IAAAC,oBAAa,EAACJ,KAAK,CAAC;IAEpB,MAAMK,MAAM,GAAG,MAAMT,QAAQ,CAACU,OAAO,CAACC,4BAA4B,CAAC,CAAC;IACpE,OAAOF,MAAM;EACf,CAAC;EAED,MAAMG,wBAAwB,GAAG,MAAAA,CAAA,KAA8B;IAC7D,IAAAL,qBAAc,EAAC,CAAC;IAChB,IAAAC,oBAAa,EAACJ,KAAK,CAAC;IAEpB,MAAMK,MAAM,GAAG,MAAMT,QAAQ,CAACU,OAAO,CAACE,wBAAwB,CAAC,CAAC;IAChE,OAAOH,MAAM;EACf,CAAC;EAED,MAAMI,2BAA2B,GAAG,MAAAA,CAAA,KAA8B;IAChE,IAAAN,qBAAc,EAAC,CAAC;IAChB,IAAAC,oBAAa,EAACJ,KAAK,CAAC;IAEpB,MAAMK,MAAM,GAAG,MAAMT,QAAQ,CAACU,OAAO,CAACG,2BAA2B,CAAC,CAAC;IACnE,OAAOJ,MAAM;EACf,CAAC;EAED,OAAO;IACLL,KAAK;IACLE,aAAa;IACbK,4BAA4B;IAC5BC,wBAAwB;IACxBC;EACF,CAAC;AACH,CAAC;AAACC,OAAA,CAAAf,2BAAA,GAAAA,2BAAA","ignoreList":[]}
@@ -11,7 +11,10 @@ const useRookConfiguration = () => {
11
11
  const rookSync = (0, _react.useRef)((0, _utils.getRookModule)());
12
12
  const {
13
13
  state: {
14
- ready
14
+ ready,
15
+ clientUUID,
16
+ password,
17
+ environment
15
18
  },
16
19
  dispatch
17
20
  } = (0, _RookSyncGateContext.useRookSyncGateContext)();
@@ -120,6 +123,27 @@ const useRookConfiguration = () => {
120
123
  const result = await rookSync.current.isSyncEnable();
121
124
  return result;
122
125
  };
126
+
127
+ /**
128
+ * The function `scheduleYesterdaySync` is an asynchronous function that syncs data of the different summaries
129
+ * and events that Rook has
130
+ * @param {DoOnEnd} doOnEnd - The `doOnEnd` parameter indicating how days in the past you want to sync
131
+ * oldest: After syncing yesterday data, subsequent syncs should start from the 29th day until the 2nd day (The day before yesterday).
132
+ * latest: After syncing yesterday data, subsequent syncs should start from the 2nd day (The day before yesterday) day until the 29th.
133
+ * nothing: Only sync yesterday data (Default).
134
+ * @returns The `scheduleYesterdaySync` function is returning a Promise that resolves to a boolean
135
+ * value.
136
+ */
137
+ const scheduleAndroidYesterdaySync = async doOnEnd => {
138
+ (0, _utils.isRunningOnAndroid)();
139
+ (0, _utils.isModuleReady)(ready);
140
+ return rookSync.current.scheduleYesterdaySync({
141
+ clientUUID,
142
+ clientPassword: password,
143
+ environment,
144
+ doOnEnd
145
+ });
146
+ };
123
147
  return {
124
148
  ready,
125
149
  clearUserID,
@@ -129,7 +153,8 @@ const useRookConfiguration = () => {
129
153
  isAppleHealthSyncEnabled,
130
154
  removeUserFromRook,
131
155
  syncUserTimeZone,
132
- updateUserID
156
+ updateUserID,
157
+ scheduleAndroidYesterdaySync
133
158
  };
134
159
  };
135
160
  exports.useRookConfiguration = useRookConfiguration;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_RookSyncGateContext","_utils","useRookConfiguration","rookSync","useRef","getRookModule","state","ready","dispatch","useRookSyncGateContext","getUserID","isModuleReady","result","current","type","userID","updateUserID","clearUserID","syncUserTimeZone","removeUserFromRook","enableAppleHealthSync","isRunningOniOS","enableSync","disableAppleHealthSync","disableSync","isAppleHealthSyncEnabled","isSyncEnable","exports"],"sourceRoot":"../../../src","sources":["hooks/useRookConfiguration.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_RookSyncGateContext","_utils","useRookConfiguration","rookSync","useRef","getRookModule","state","ready","clientUUID","password","environment","dispatch","useRookSyncGateContext","getUserID","isModuleReady","result","current","type","userID","updateUserID","clearUserID","syncUserTimeZone","removeUserFromRook","enableAppleHealthSync","isRunningOniOS","enableSync","disableAppleHealthSync","disableSync","isAppleHealthSyncEnabled","isSyncEnable","scheduleAndroidYesterdaySync","doOnEnd","isRunningOnAndroid","scheduleYesterdaySync","clientPassword","exports"],"sourceRoot":"../../../src","sources":["hooks/useRookConfiguration.ts"],"mappings":"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","ignoreList":[]}