@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.
- package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/AskForPermissionContinuation.dex +0 -0
- package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$Companion.dex +0 -0
- package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$cleanUp$1.dex +0 -0
- package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$configure$1.dex +0 -0
- package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$onActivityResult$1.dex +0 -0
- package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$onActivityResult$job$1.dex +0 -0
- package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$startStatusUpdate$1.dex +0 -0
- package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$syncData$1.dex +0 -0
- package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$vitalCore$2.dex +0 -0
- package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$writeHealthData$1.dex +0 -0
- package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule.dex +0 -0
- package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModuleKt.dex +0 -0
- package/android/build/intermediates/compile_library_classes_jar/debug/classes.jar +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/AskForPermissionContinuation.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$Companion.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$cleanUp$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$configure$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$onActivityResult$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$onActivityResult$job$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$startStatusUpdate$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$syncData$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$vitalCore$2.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$writeHealthData$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModuleKt.class +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
- package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/AskForPermissionContinuation.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$cleanUp$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$configure$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$onActivityResult$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$onActivityResult$job$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$startStatusUpdate$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$syncData$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$vitalCore$2.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$writeHealthData$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModuleKt.class +0 -0
- package/android/build.gradle +3 -1
- package/android/src/main/java/com/vitalhealthreactnative/VitalHealthReactNativeModule.kt +30 -52
- package/package.json +1 -1
- package/vital-health-react-native.podspec +1 -1
- package/android/build/.transforms/7daa840025aa96d88f6824c7b735a441/transformed/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$setUserId$1.dex +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$setUserId$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/vitalhealthreactnative/VitalHealthReactNativeModule$setUserId$1.class +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream
CHANGED
|
Binary file
|
|
Binary file
|
package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len
CHANGED
|
Binary file
|
package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/android/build.gradle
CHANGED
|
@@ -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.
|
|
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
|
|
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
|
|
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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
207
|
-
|
|
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
|
-
|
|
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
|
|
355
|
-
|
|
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
|
@@ -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.
|
|
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
|
|
Binary file
|
|
Binary file
|