@tryvital/vital-health-react-native 1.6.0 → 1.7.1

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 (65) hide show
  1. package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/AskForPermissionContinuation.dex +0 -0
  2. package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$Companion.dex +0 -0
  3. package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$cleanUp$1.dex +0 -0
  4. package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$configure$1.dex +0 -0
  5. package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$onActivityResult$1.dex +0 -0
  6. package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$onActivityResult$job$1.dex +0 -0
  7. package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$startStatusUpdate$1.dex +0 -0
  8. package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$syncData$1.dex +0 -0
  9. package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$vitalCore$2.dex +0 -0
  10. package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$writeHealthData$1.dex +0 -0
  11. package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule.dex +0 -0
  12. package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModuleKt.dex +0 -0
  13. package/android/build/intermediates/compile_library_classes_jar/debug/classes.jar +0 -0
  14. package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/AskForPermissionContinuation.class +0 -0
  15. package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$Companion.class +0 -0
  16. package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$cleanUp$1.class +0 -0
  17. package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$configure$1.class +0 -0
  18. package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$onActivityResult$1.class +0 -0
  19. package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$onActivityResult$job$1.class +0 -0
  20. package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$startStatusUpdate$1.class +0 -0
  21. package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$syncData$1.class +0 -0
  22. package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$vitalCore$2.class +0 -0
  23. package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$writeHealthData$1.class +0 -0
  24. package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule.class +0 -0
  25. package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModuleKt.class +0 -0
  26. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  27. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  28. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  29. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  30. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  31. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  32. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  33. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  34. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  35. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  36. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  37. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  38. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  39. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  40. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  41. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  42. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  43. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  44. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  45. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  46. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  47. package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/AskForPermissionContinuation.class +0 -0
  48. package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$Companion.class +0 -0
  49. package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$cleanUp$1.class +0 -0
  50. package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$configure$1.class +0 -0
  51. package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$onActivityResult$1.class +0 -0
  52. package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$onActivityResult$job$1.class +0 -0
  53. package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$startStatusUpdate$1.class +0 -0
  54. package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$syncData$1.class +0 -0
  55. package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$vitalCore$2.class +0 -0
  56. package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$writeHealthData$1.class +0 -0
  57. package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule.class +0 -0
  58. package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModuleKt.class +0 -0
  59. package/android/build.gradle +3 -1
  60. package/android/src/main/java/com/vitalhealthreactnative/VitalHealthReactNativeModule.kt +30 -52
  61. package/package.json +1 -1
  62. package/vital-health-react-native.podspec +1 -1
  63. package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$setUserId$1.dex +0 -0
  64. package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$setUserId$1.class +0 -0
  65. package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$setUserId$1.class +0 -0
@@ -130,7 +130,7 @@ repositories {
130
130
  }
131
131
 
132
132
  def kotlin_version = getExtOrDefault('kotlinVersion')
133
- def vital_sdk_version = '1.0.0-beta.14'
133
+ def vital_sdk_version = '1.0.0-beta.16'
134
134
  def health_connect_version = '1.0.0-alpha11'
135
135
 
136
136
  dependencies {
@@ -142,6 +142,8 @@ dependencies {
142
142
  implementation "com.github.tryVital.vital-android:VitalClient:$vital_sdk_version"
143
143
  implementation "com.github.tryVital.vital-android:VitalHealthConnect:$vital_sdk_version"
144
144
  implementation "androidx.health.connect:connect-client:$health_connect_version"
145
+
146
+ implementation project(':tryvital_vital-core-react-native')
145
147
  // From node_modules
146
148
  }
147
149
 
@@ -5,10 +5,9 @@ import android.content.Intent
5
5
  import android.util.Log
6
6
  import androidx.activity.result.contract.ActivityResultContract
7
7
  import com.facebook.react.bridge.*
8
+ import com.facebook.react.module.annotations.ReactModule
8
9
  import com.facebook.react.modules.core.DeviceEventManagerModule
9
- import io.tryvital.client.Environment
10
- import io.tryvital.client.Region
11
- import io.tryvital.client.VitalClient
10
+ import com.vitalcorereactnative.VitalCoreReactNativeModule
12
11
  import io.tryvital.client.utils.VitalLogger
13
12
  import io.tryvital.vitalhealthconnect.VitalHealthConnectManager
14
13
  import io.tryvital.vitalhealthconnect.model.*
@@ -20,12 +19,15 @@ import java.time.Instant
20
19
  const val VITAL_HEALTH_ERROR = "VitalHealthError"
21
20
  const val VITAL_REQUEST_CODE = 1984
22
21
 
22
+ @ReactModule(name = VitalHealthReactNativeModule.NAME)
23
23
  class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
24
24
  ReactContextBaseJavaModule(reactContext), ActivityEventListener {
25
25
 
26
26
  private val logger = VitalLogger.getOrCreate()
27
27
 
28
- private var vitalClient: VitalClient? = null
28
+ private val vitalCore: VitalCoreReactNativeModule by lazy {
29
+ reactContext.getNativeModule(VitalCoreReactNativeModule::class.java)!!
30
+ }
29
31
  private var vitalHealthConnectManager: VitalHealthConnectManager? = null
30
32
 
31
33
  private var askForPermission: AskForPermissionContinuation? = null
@@ -47,18 +49,15 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
47
49
  enableLogs: Boolean,
48
50
  promise: Promise
49
51
  ) {
50
- if (vitalClient == null) {
51
- return promise.reject(
52
- "VitalClient is not configured",
53
- "VitalClient is not configured",
54
- )
55
- }
52
+ logger.enabled = enableLogs
53
+
54
+ val client = vitalCore.client ?: return promise.rejectCoreNotConfigured()
56
55
 
57
56
  val availability = VitalHealthConnectManager.isAvailable(reactApplicationContext)
58
57
 
59
58
  if (availability != HealthConnectAvailability.Installed) {
60
59
  return promise.reject(
61
- "Health Connect is unavailable: $availability",
60
+ VITAL_HEALTH_ERROR,
62
61
  "Health Connect is unavailable: $availability",
63
62
  )
64
63
  }
@@ -67,9 +66,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
67
66
 
68
67
  val manager = VitalHealthConnectManager.create(
69
68
  reactApplicationContext,
70
- vitalClient!!.apiKey,
71
- vitalClient!!.region,
72
- vitalClient!!.environment
69
+ client
73
70
  )
74
71
 
75
72
  vitalHealthConnectManager = manager
@@ -90,12 +87,8 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
90
87
 
91
88
  @ReactMethod
92
89
  fun setUserId(userId: String, promise: Promise) {
93
- val manager = vitalHealthConnectManager ?: return promise.rejectHealthNotConfigured()
94
-
95
- mainScope.launch {
96
- manager.setUserId(userId)
97
- promise.resolve(null)
98
- }
90
+ // [Backward Compatibility] Delegate to VitalCore.
91
+ vitalCore.setUserId(userId, promise)
99
92
  }
100
93
 
101
94
  @ReactMethod
@@ -106,16 +99,8 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
106
99
  enableLogs: Boolean,
107
100
  promise: Promise
108
101
  ) {
109
- logger.enabled = enableLogs
110
-
111
- vitalClient = VitalClient(
112
- reactApplicationContext,
113
- stringToRegion(region),
114
- stringToEnvironment(environment),
115
- apiKey
116
- )
117
-
118
- promise.resolve(null)
102
+ // [Backward Compatibility] Delegate to VitalCore.
103
+ vitalCore.configure(apiKey, environment, region, enableLogs, promise)
119
104
  }
120
105
 
121
106
  @ReactMethod
@@ -203,10 +188,19 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
203
188
 
204
189
  @ReactMethod
205
190
  fun cleanUp(promise: Promise) {
206
- reset()
207
- promise.resolve(null)
191
+ val manager = vitalHealthConnectManager ?: return promise.rejectHealthNotConfigured()
192
+
193
+ mainScope.launch {
194
+ manager.cleanUp()
195
+ promise.resolve(null)
196
+ }
208
197
  }
209
198
 
199
+ /**
200
+ * Cancel the existing VitalHealthConnectManager and prepare for a new one to be recreated.
201
+ *
202
+ * TODO: To be removed after the Android SDK is singletonized.
203
+ */
210
204
  private fun reset() {
211
205
  mainScope.cancel()
212
206
  mainScope = MainScope()
@@ -242,8 +236,8 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
242
236
  promise.resolve(null)
243
237
  } catch (e: Exception) {
244
238
  promise.reject(
245
- "Failed to write data",
246
- e.message,
239
+ VITAL_HEALTH_ERROR,
240
+ "Failed to write data: ${e.message}",
247
241
  e
248
242
  )
249
243
  }
@@ -351,24 +345,8 @@ private data class AskForPermissionContinuation(
351
345
  val promise: Promise
352
346
  )
353
347
 
354
- private fun stringToRegion(region: String): Region {
355
- when (region) {
356
- "eu" -> return Region.EU
357
- "us" -> return Region.US
358
- }
359
-
360
- throw Exception("Unsupported region $region")
361
- }
362
-
363
- private fun stringToEnvironment(environment: String): Environment {
364
- when (environment) {
365
- "production" -> return Environment.Production
366
- "sandbox" -> return Environment.Sandbox
367
- "dev" -> return Environment.Dev
368
- }
369
-
370
- throw Exception("Unsupported environment $environment")
371
- }
348
+ private fun Promise.rejectCoreNotConfigured()
349
+ = reject(VITAL_HEALTH_ERROR, "VitalCore client has not been configured.")
372
350
 
373
351
  private fun Promise.rejectHealthNotConfigured()
374
352
  = reject(VITAL_HEALTH_ERROR, "VitalHealth client has not been configured.")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tryvital/vital-health-react-native",
3
- "version": "1.6.0",
3
+ "version": "1.7.1",
4
4
  "description": "Client to access iOS's HealthKit and Android HealthConnect",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -17,7 +17,7 @@ Pod::Spec.new do |s|
17
17
  s.source_files = "ios/**/*.{h,m,mm,swift}"
18
18
 
19
19
  s.dependency "React-Core"
20
- s.dependency "VitalHealthKit", "~> 0.9.6"
20
+ s.dependency "VitalHealthKit", "~> 0.9.7"
21
21
 
22
22
  # Don't install the dependencies when we run `pod install` in the old architecture.
23
23
  if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then