@ovok/native 1.5.1 → 1.5.3
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.gradle +43 -0
- package/android/src/main/AndroidManifest.xml +23 -0
- package/android/src/main/java/com/ovok/sdk/backgroundsync/BackgroundSyncNotification.java +78 -0
- package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokBackgroundSyncModule.java +109 -0
- package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokBackgroundSyncPackage.java +26 -0
- package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokBluetoothForegroundService.java +28 -0
- package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokHealthConnectTaskService.java +45 -0
- package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokHealthConnectWorker.java +28 -0
- package/lib/commonjs/index.js +11 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/modules/background-sync/android-background-sync.js +102 -0
- package/lib/commonjs/modules/background-sync/android-background-sync.js.map +1 -0
- package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js +49 -0
- package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -0
- package/lib/commonjs/modules/background-sync/index.js +28 -0
- package/lib/commonjs/modules/background-sync/index.js.map +1 -0
- package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +7 -1
- package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
- package/lib/commonjs/modules/bt-management/constants/measurement-field-catalog.js +80 -88
- package/lib/commonjs/modules/bt-management/constants/measurement-field-catalog.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-frame-parser.js +24 -2
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-frame-parser.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +9 -6
- package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.device.js +16 -0
- package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.device.js.map +1 -1
- package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js +96 -36
- package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
- package/lib/commonjs/modules/data-sync/components/android/android-health-sync.js +5 -3
- package/lib/commonjs/modules/data-sync/components/android/android-health-sync.js.map +1 -1
- package/lib/commonjs/modules/data-sync/components/apple/apple-health-authorization-provider.js +94 -12
- package/lib/commonjs/modules/data-sync/components/apple/apple-health-authorization-provider.js.map +1 -1
- package/lib/commonjs/modules/data-sync/components/apple/apple-health-sync.js +7 -4
- package/lib/commonjs/modules/data-sync/components/apple/apple-health-sync.js.map +1 -1
- package/lib/commonjs/modules/data-sync/hooks/use-listen-changes.js +27 -11
- package/lib/commonjs/modules/data-sync/hooks/use-listen-changes.js.map +1 -1
- package/lib/commonjs/modules/data-sync/index.js +11 -0
- package/lib/commonjs/modules/data-sync/index.js.map +1 -1
- package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +4 -3
- package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
- package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js +9 -5
- package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
- package/lib/commonjs/modules/data-sync/services/managers/sync-state-manager.js +19 -2
- package/lib/commonjs/modules/data-sync/services/managers/sync-state-manager.js.map +1 -1
- package/lib/commonjs/modules/data-sync/types/health-authorization-status.js +6 -0
- package/lib/commonjs/modules/data-sync/types/health-authorization-status.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/modules/background-sync/android-background-sync.js +93 -0
- package/lib/module/modules/background-sync/android-background-sync.js.map +1 -0
- package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js +44 -0
- package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -0
- package/lib/module/modules/background-sync/index.js +5 -0
- package/lib/module/modules/background-sync/index.js.map +1 -0
- package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +7 -2
- package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
- package/lib/module/modules/bt-management/constants/measurement-field-catalog.js +81 -89
- package/lib/module/modules/bt-management/constants/measurement-field-catalog.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bc01/bc01-frame-parser.js +24 -2
- package/lib/module/modules/bt-management/services/devices/bc01/bc01-frame-parser.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +9 -6
- package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/uebe/mysense.device.js +16 -0
- package/lib/module/modules/bt-management/services/devices/uebe/mysense.device.js.map +1 -1
- package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js +96 -36
- package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
- package/lib/module/modules/data-sync/components/android/android-health-sync.js +5 -3
- package/lib/module/modules/data-sync/components/android/android-health-sync.js.map +1 -1
- package/lib/module/modules/data-sync/components/apple/apple-health-authorization-provider.js +95 -13
- package/lib/module/modules/data-sync/components/apple/apple-health-authorization-provider.js.map +1 -1
- package/lib/module/modules/data-sync/components/apple/apple-health-sync.js +7 -4
- package/lib/module/modules/data-sync/components/apple/apple-health-sync.js.map +1 -1
- package/lib/module/modules/data-sync/hooks/use-listen-changes.js +27 -10
- package/lib/module/modules/data-sync/hooks/use-listen-changes.js.map +1 -1
- package/lib/module/modules/data-sync/index.js +1 -0
- package/lib/module/modules/data-sync/index.js.map +1 -1
- package/lib/module/modules/data-sync/services/base-health-sync-service.js +4 -3
- package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
- package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js +9 -5
- package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
- package/lib/module/modules/data-sync/services/managers/sync-state-manager.js +19 -2
- package/lib/module/modules/data-sync/services/managers/sync-state-manager.js.map +1 -1
- package/lib/module/modules/data-sync/types/health-authorization-status.js +4 -0
- package/lib/module/modules/data-sync/types/health-authorization-status.js.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +1 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts +62 -0
- package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/background-sync/android-bluetooth-foreground-service.d.ts +12 -0
- package/lib/typescript/commonjs/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/background-sync/index.d.ts +3 -0
- package/lib/typescript/commonjs/src/modules/background-sync/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts +11 -4
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +4 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts +3 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts +8 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-sync.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-sync.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-sync.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-sync.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/components/data-sync.d.ts +4 -4
- package/lib/typescript/commonjs/src/modules/data-sync/hooks/use-listen-changes.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/hooks/use-listen-changes.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts +1 -0
- package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts +2 -1
- package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +4 -4
- package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-state-manager.d.ts +4 -1
- package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-state-manager.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts +7 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts +5 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-sync-props.d.ts +7 -2
- package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-sync-props.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts +15 -0
- package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts +6 -0
- package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts +4 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts +1 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts +62 -0
- package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/background-sync/android-bluetooth-foreground-service.d.ts +12 -0
- package/lib/typescript/module/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/background-sync/index.d.ts +3 -0
- package/lib/typescript/module/src/modules/background-sync/index.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts +11 -4
- package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +4 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts +3 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts +8 -0
- package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts +1 -1
- package/lib/typescript/module/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/components/android/android-health-sync.d.ts +1 -1
- package/lib/typescript/module/src/modules/data-sync/components/android/android-health-sync.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts +1 -1
- package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-sync.d.ts +1 -1
- package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-sync.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/components/data-sync.d.ts +4 -4
- package/lib/typescript/module/src/modules/data-sync/hooks/use-listen-changes.d.ts +1 -1
- package/lib/typescript/module/src/modules/data-sync/hooks/use-listen-changes.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/index.d.ts +1 -0
- package/lib/typescript/module/src/modules/data-sync/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts +2 -1
- package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +4 -4
- package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/services/managers/sync-state-manager.d.ts +4 -1
- package/lib/typescript/module/src/modules/data-sync/services/managers/sync-state-manager.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts +7 -1
- package/lib/typescript/module/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts +5 -1
- package/lib/typescript/module/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/types/apple-health-sync-props.d.ts +7 -2
- package/lib/typescript/module/src/modules/data-sync/types/apple-health-sync-props.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts +15 -0
- package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts +6 -0
- package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts +4 -1
- package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
- package/package.json +6 -3
- package/react-native.config.js +11 -0
|
@@ -39,7 +39,7 @@ class BaseHealthSyncService {
|
|
|
39
39
|
await this.initializeSync();
|
|
40
40
|
}
|
|
41
41
|
await this.processAllDataTypes();
|
|
42
|
-
this.progressManager.setPauseStatuses();
|
|
42
|
+
this.progressManager.setPauseStatuses(this.stateManager.pauseReason);
|
|
43
43
|
} catch (error) {
|
|
44
44
|
this.onSyncError(error);
|
|
45
45
|
}
|
|
@@ -49,8 +49,9 @@ class BaseHealthSyncService {
|
|
|
49
49
|
this.stateManager.reset();
|
|
50
50
|
this.stateManager.shouldStopSync = true;
|
|
51
51
|
}
|
|
52
|
-
async pauseSync() {
|
|
53
|
-
this.stateManager.pause();
|
|
52
|
+
async pauseSync(reason) {
|
|
53
|
+
this.stateManager.pause(reason);
|
|
54
|
+
this.progressManager.setPauseStatuses(reason);
|
|
54
55
|
}
|
|
55
56
|
async initializeSync() {
|
|
56
57
|
const latestObservationDates = await this.dataProcessor.getLatestObservationDates(this.dataToSync);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_dataProcessor","require","_storageManager","_syncProgressManager","_syncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","SyncProgressManager","updateProgress","stateManager","SyncStateManager","storageManager","StorageManager","getProviderName","dataProcessor","DataProcessor","chunkSize","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasAnchor","observationBodies","currentHasAnchor","getObservationBodiesForType","entries","generateObservationEntries","incrementSyncedObservations","length","result","saveObservations","addResult","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"names":["_dataProcessor","require","_storageManager","_syncProgressManager","_syncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","SyncProgressManager","updateProgress","stateManager","SyncStateManager","storageManager","StorageManager","getProviderName","dataProcessor","DataProcessor","chunkSize","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","pauseReason","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","reason","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasAnchor","observationBodies","currentHasAnchor","getObservationBodiesForType","entries","generateObservationEntries","incrementSyncedObservations","length","result","saveObservations","addResult","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,12 +20,12 @@ class SyncProgressManager {
|
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
setPauseStatuses() {
|
|
23
|
+
setPauseStatuses(reason) {
|
|
24
24
|
for (const key of Object.keys(this.syncData)) {
|
|
25
25
|
const measurementTypeKey = key;
|
|
26
26
|
const currentStatus = this.getStatus(measurementTypeKey);
|
|
27
27
|
if (currentStatus !== "completed") {
|
|
28
|
-
this.setStatus(measurementTypeKey, "paused");
|
|
28
|
+
this.setStatus(measurementTypeKey, "paused", reason);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -53,9 +53,10 @@ class SyncProgressManager {
|
|
|
53
53
|
this.syncData[measurementTypeKey].syncedObservations += count;
|
|
54
54
|
this.notifyProgress(measurementTypeKey, "syncing");
|
|
55
55
|
}
|
|
56
|
-
setStatus(measurementTypeKey, status) {
|
|
56
|
+
setStatus(measurementTypeKey, status, reason) {
|
|
57
57
|
this.syncData[measurementTypeKey].status = status;
|
|
58
|
-
this.
|
|
58
|
+
this.syncData[measurementTypeKey].reason = status === "paused" ? reason : undefined;
|
|
59
|
+
this.notifyProgress(measurementTypeKey, status, reason);
|
|
59
60
|
}
|
|
60
61
|
getStatus(measurementTypeKey) {
|
|
61
62
|
return this.syncData[measurementTypeKey].status;
|
|
@@ -69,10 +70,13 @@ class SyncProgressManager {
|
|
|
69
70
|
this.notifyProgress(measurementTypeKey, "idle");
|
|
70
71
|
});
|
|
71
72
|
}
|
|
72
|
-
notifyProgress(measurementTypeKey, status) {
|
|
73
|
+
notifyProgress(measurementTypeKey, status, reason) {
|
|
73
74
|
this.updateProgress({
|
|
74
75
|
measurementTypeKey,
|
|
75
76
|
status,
|
|
77
|
+
...(status === "paused" && reason ? {
|
|
78
|
+
reason
|
|
79
|
+
} : {}),
|
|
76
80
|
progress: this.getProgress(measurementTypeKey)
|
|
77
81
|
});
|
|
78
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defaultSyncData","syncedObservations","totalObservations","status","SyncProgressManager","syncData","constructor","updateProgress","dataToSync","key","Object","keys","measurementTypeKey","setPauseStatuses","currentStatus","getStatus","setStatus","setNotStartedStatuses","getProgress","done","total","setTotalObservations","notifyProgress","incrementSyncedObservations","count","resetAll","forEach","progress","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/sync-progress-manager.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"names":["defaultSyncData","syncedObservations","totalObservations","status","SyncProgressManager","syncData","constructor","updateProgress","dataToSync","key","Object","keys","measurementTypeKey","setPauseStatuses","reason","currentStatus","getStatus","setStatus","setNotStartedStatuses","getProgress","done","total","setTotalObservations","notifyProgress","incrementSyncedObservations","count","undefined","resetAll","forEach","progress","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/sync-progress-manager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,6 +16,7 @@ class SyncStateManager {
|
|
|
16
16
|
* because the read cursor only advances once a read has returned.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
+
rerunRequested = false;
|
|
19
20
|
shouldStopSync = false;
|
|
20
21
|
initialDataFetched = false;
|
|
21
22
|
latestObservationDates = [];
|
|
@@ -26,22 +27,38 @@ class SyncStateManager {
|
|
|
26
27
|
|
|
27
28
|
/** Runs `sync`, or joins the run already under way. */
|
|
28
29
|
async once(sync) {
|
|
29
|
-
this.inFlight
|
|
30
|
+
if (this.inFlight) {
|
|
31
|
+
if (this.shouldStopSync) {
|
|
32
|
+
this.rerunRequested = true;
|
|
33
|
+
}
|
|
34
|
+
const inFlight = this.inFlight;
|
|
35
|
+
await inFlight;
|
|
36
|
+
if (this.rerunRequested && !this.inFlight) {
|
|
37
|
+
this.rerunRequested = false;
|
|
38
|
+
return this.once(sync);
|
|
39
|
+
}
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
this.inFlight = sync().finally(() => {
|
|
30
43
|
this.inFlight = undefined;
|
|
31
44
|
});
|
|
32
45
|
return this.inFlight;
|
|
33
46
|
}
|
|
34
47
|
reset() {
|
|
35
48
|
this.shouldStopSync = false;
|
|
49
|
+
this.pauseReason = undefined;
|
|
36
50
|
this.initialDataFetched = false;
|
|
37
51
|
this.latestObservationDates = [];
|
|
38
52
|
this.results = [];
|
|
53
|
+
this.rerunRequested = false;
|
|
39
54
|
}
|
|
40
|
-
pause() {
|
|
55
|
+
pause(reason) {
|
|
41
56
|
this.shouldStopSync = true;
|
|
57
|
+
this.pauseReason = reason;
|
|
42
58
|
}
|
|
43
59
|
resume() {
|
|
44
60
|
this.shouldStopSync = false;
|
|
61
|
+
this.pauseReason = undefined;
|
|
45
62
|
}
|
|
46
63
|
}
|
|
47
64
|
exports.SyncStateManager = SyncStateManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SyncStateManager","shouldStopSync","initialDataFetched","latestObservationDates","results","addResult","result","push","once","sync","inFlight","finally","undefined","reset","pause","resume","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/sync-state-manager.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"names":["SyncStateManager","rerunRequested","shouldStopSync","initialDataFetched","latestObservationDates","results","addResult","result","push","once","sync","inFlight","finally","undefined","reset","pauseReason","pause","reason","resume","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/sync-state-manager.ts"],"mappings":";;;;;;AAIO,MAAMA,gBAAgB,CAAC;EAC5B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAEUC,cAAc,GAAG,KAAK;EAEvBC,cAAc,GAAG,KAAK;EAEtBC,kBAAkB,GAAG,KAAK;EAC1BC,sBAAsB,GAGxB,EAAE;EACAC,OAAO,GAA0B,EAAE;EAE1CC,SAASA,CAACC,MAA2B,EAAQ;IAC3C,IAAI,CAACF,OAAO,CAACG,IAAI,CAACD,MAAM,CAAC;EAC3B;;EAEA;EACA,MAAME,IAAIA,CAACC,IAAyB,EAAiB;IACnD,IAAI,IAAI,CAACC,QAAQ,EAAE;MACjB,IAAI,IAAI,CAACT,cAAc,EAAE;QACvB,IAAI,CAACD,cAAc,GAAG,IAAI;MAC5B;MAEA,MAAMU,QAAQ,GAAG,IAAI,CAACA,QAAQ;MAE9B,MAAMA,QAAQ;MAEd,IAAI,IAAI,CAACV,cAAc,IAAI,CAAC,IAAI,CAACU,QAAQ,EAAE;QACzC,IAAI,CAACV,cAAc,GAAG,KAAK;QAE3B,OAAO,IAAI,CAACQ,IAAI,CAACC,IAAI,CAAC;MACxB;MAEA;IACF;IAEA,IAAI,CAACC,QAAQ,GAAGD,IAAI,CAAC,CAAC,CAACE,OAAO,CAAC,MAAM;MACnC,IAAI,CAACD,QAAQ,GAAGE,SAAS;IAC3B,CAAC,CAAC;IAEF,OAAO,IAAI,CAACF,QAAQ;EACtB;EAEAG,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACZ,cAAc,GAAG,KAAK;IAC3B,IAAI,CAACa,WAAW,GAAGF,SAAS;IAC5B,IAAI,CAACV,kBAAkB,GAAG,KAAK;IAC/B,IAAI,CAACC,sBAAsB,GAAG,EAAE;IAChC,IAAI,CAACC,OAAO,GAAG,EAAE;IACjB,IAAI,CAACJ,cAAc,GAAG,KAAK;EAC7B;EAEAe,KAAKA,CAACC,MAAwB,EAAQ;IACpC,IAAI,CAACf,cAAc,GAAG,IAAI;IAC1B,IAAI,CAACa,WAAW,GAAGE,MAAM;EAC3B;EAEAC,MAAMA,CAAA,EAAS;IACb,IAAI,CAAChB,cAAc,GAAG,KAAK;IAC3B,IAAI,CAACa,WAAW,GAAGF,SAAS;EAC9B;AACF;AAACM,OAAA,CAAAnB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/data-sync/types/health-authorization-status.ts"],"mappings":"","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -25,4 +25,5 @@ export * from "./modules/socket/index.js";
|
|
|
25
25
|
export * from "./modules/questionnaire-response-form/index.js";
|
|
26
26
|
export * from "./modules/image/index.js";
|
|
27
27
|
export * from "./modules/data-sync/index.js";
|
|
28
|
+
export * from "./modules/background-sync/index.js";
|
|
28
29
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,cAAc,4BAAmB;AACjC,cAAc,0BAAiB;AAC/B,cAAc,yBAAgB;AAC9B,cAAc,yBAAgB;AAC9B,cAAc,4BAAmB;AACjC,cAAc,0BAAiB;AAC/B,cAAc,gCAAuB;AACrC,cAAc,wBAAe;AAC7B,cAAc,uCAA8B;AAC5C,cAAc,4BAAmB;AACjC,cAAc,kCAAyB;AACvC,cAAc,sBAAa;AAC3B,cAAc,wBAAe;AAC7B,cAAc,iCAAwB;AACtC,cAAc,8BAAqB;AACnC,cAAc,sCAA6B;AAC3C,cAAc,4BAAmB;AACjC,cAAc,uCAA8B;AAC5C,cAAc,iCAAwB;AACtC,cAAc,4BAAmB;AACjC,cAAc,mDAAgD;AAC9D,cAAc,2BAAkB;AAChC,cAAc,gDAAuC;AACrD,cAAc,0BAAiB;AAC/B,cAAc,8BAAqB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,cAAc,4BAAmB;AACjC,cAAc,0BAAiB;AAC/B,cAAc,yBAAgB;AAC9B,cAAc,yBAAgB;AAC9B,cAAc,4BAAmB;AACjC,cAAc,0BAAiB;AAC/B,cAAc,gCAAuB;AACrC,cAAc,wBAAe;AAC7B,cAAc,uCAA8B;AAC5C,cAAc,4BAAmB;AACjC,cAAc,kCAAyB;AACvC,cAAc,sBAAa;AAC3B,cAAc,wBAAe;AAC7B,cAAc,iCAAwB;AACtC,cAAc,8BAAqB;AACnC,cAAc,sCAA6B;AAC3C,cAAc,4BAAmB;AACjC,cAAc,uCAA8B;AAC5C,cAAc,iCAAwB;AACtC,cAAc,4BAAmB;AACjC,cAAc,mDAAgD;AAC9D,cAAc,2BAAkB;AAChC,cAAc,gDAAuC;AACrD,cAAc,0BAAiB;AAC/B,cAAc,8BAAqB;AACnC,cAAc,oCAA2B","ignoreList":[]}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { AppRegistry, NativeModules, Platform } from "react-native";
|
|
4
|
+
import { AndroidHealthSyncService } from "../data-sync/services/android-health-sync-service.js";
|
|
5
|
+
const ANDROID_HEALTH_CONNECT_BACKGROUND_TASK = "OvokHealthConnectBackgroundSync";
|
|
6
|
+
const getNativeModule = () => {
|
|
7
|
+
const nativeModule = NativeModules.OvokBackgroundSync;
|
|
8
|
+
if (!nativeModule) {
|
|
9
|
+
throw new Error("Ovok Android background sync requires a native Android build. Rebuild the app after installing @ovok/native.");
|
|
10
|
+
}
|
|
11
|
+
return nativeModule;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Starts the Android connected-device foreground service. Mount this alongside
|
|
16
|
+
* the BTProvider that owns the scan; the service keeps that app process alive
|
|
17
|
+
* while Android has the app in the background.
|
|
18
|
+
*/
|
|
19
|
+
const startAndroidBluetoothForegroundService = async (options = {}) => {
|
|
20
|
+
if (Platform.OS !== "android") {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
await getNativeModule().startBluetoothForegroundService(options);
|
|
24
|
+
};
|
|
25
|
+
const stopAndroidBluetoothForegroundService = async () => {
|
|
26
|
+
if (Platform.OS !== "android") {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
await getNativeModule().stopBluetoothForegroundService();
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Schedules a WorkManager wake-up that starts the registered headless JS task.
|
|
34
|
+
* The task must create the host app's authenticated client and run the desired
|
|
35
|
+
* AndroidHealthSync service; the SDK cannot serialize a client or auth token.
|
|
36
|
+
*/
|
|
37
|
+
const scheduleAndroidHealthConnectSync = async (options = {}) => {
|
|
38
|
+
if (Platform.OS !== "android") {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
await getNativeModule().scheduleHealthConnectSync(options);
|
|
42
|
+
};
|
|
43
|
+
const cancelAndroidHealthConnectSync = async () => {
|
|
44
|
+
if (Platform.OS !== "android") {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
await getNativeModule().cancelHealthConnectSync();
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Runs one Health Connect import without mounting React components.
|
|
52
|
+
*
|
|
53
|
+
* Headless JS tasks have no React tree, so AndroidHealthSync cannot be rendered
|
|
54
|
+
* after the OS recreates the app process. The host app still restores its own
|
|
55
|
+
* client and patient identity, then calls this function with the same mapping
|
|
56
|
+
* it uses in the foreground.
|
|
57
|
+
*/
|
|
58
|
+
const runAndroidHealthConnectSync = async ({
|
|
59
|
+
client,
|
|
60
|
+
patientId,
|
|
61
|
+
dataToSync,
|
|
62
|
+
chunkSize,
|
|
63
|
+
onError,
|
|
64
|
+
onProgress
|
|
65
|
+
}) => {
|
|
66
|
+
const progress = {};
|
|
67
|
+
const service = AndroidHealthSyncService.getInstance({
|
|
68
|
+
client,
|
|
69
|
+
patientId,
|
|
70
|
+
dataToSync,
|
|
71
|
+
chunkSize,
|
|
72
|
+
onSyncError: error => onError?.(error),
|
|
73
|
+
updateProgress: nextProgress => {
|
|
74
|
+
progress[nextProgress.measurementTypeKey] = nextProgress;
|
|
75
|
+
onProgress?.(progress);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
await service.startSync();
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Registers the JS entry point WorkManager invokes after process death. Call
|
|
83
|
+
* this once from the app entry point, not from a screen component, so it is
|
|
84
|
+
* registered before Android wakes the headless runtime.
|
|
85
|
+
*/
|
|
86
|
+
const registerAndroidHealthConnectBackgroundTask = (task, taskName = ANDROID_HEALTH_CONNECT_BACKGROUND_TASK) => {
|
|
87
|
+
if (Platform.OS !== "android") {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
AppRegistry.registerHeadlessTask(taskName, () => task);
|
|
91
|
+
};
|
|
92
|
+
export { ANDROID_HEALTH_CONNECT_BACKGROUND_TASK, cancelAndroidHealthConnectSync, registerAndroidHealthConnectBackgroundTask, runAndroidHealthConnectSync, scheduleAndroidHealthConnectSync, startAndroidBluetoothForegroundService, stopAndroidBluetoothForegroundService };
|
|
93
|
+
//# sourceMappingURL=android-background-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AppRegistry","NativeModules","Platform","AndroidHealthSyncService","ANDROID_HEALTH_CONNECT_BACKGROUND_TASK","getNativeModule","nativeModule","OvokBackgroundSync","Error","startAndroidBluetoothForegroundService","options","OS","startBluetoothForegroundService","stopAndroidBluetoothForegroundService","stopBluetoothForegroundService","scheduleAndroidHealthConnectSync","scheduleHealthConnectSync","cancelAndroidHealthConnectSync","cancelHealthConnectSync","runAndroidHealthConnectSync","client","patientId","dataToSync","chunkSize","onError","onProgress","progress","service","getInstance","onSyncError","error","updateProgress","nextProgress","measurementTypeKey","startSync","registerAndroidHealthConnectBackgroundTask","task","taskName","registerHeadlessTask"],"sourceRoot":"../../../../src","sources":["modules/background-sync/android-background-sync.ts"],"mappings":";;AACA,SAASA,WAAW,EAAEC,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEnE,SAASC,wBAAwB,QAAQ,sDAAmD;AAI5F,MAAMC,sCAAsC,GAC1C,iCAAiC;AAoDnC,MAAMC,eAAe,GAAGA,CAAA,KAAkC;EACxD,MAAMC,YAAY,GAAGL,aAAa,CAACM,kBAEtB;EAEb,IAAI,CAACD,YAAY,EAAE;IACjB,MAAM,IAAIE,KAAK,CACb,8GACF,CAAC;EACH;EAEA,OAAOF,YAAY;AACrB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMG,sCAAsC,GAAG,MAAAA,CAC7CC,OAAiD,GAAG,CAAC,CAAC,KACpC;EAClB,IAAIR,QAAQ,CAACS,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMN,eAAe,CAAC,CAAC,CAACO,+BAA+B,CAACF,OAAO,CAAC;AAClE,CAAC;AAED,MAAMG,qCAAqC,GAAG,MAAAA,CAAA,KAA2B;EACvE,IAAIX,QAAQ,CAACS,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMN,eAAe,CAAC,CAAC,CAACS,8BAA8B,CAAC,CAAC;AAC1D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMC,gCAAgC,GAAG,MAAAA,CACvCL,OAAkD,GAAG,CAAC,CAAC,KACrC;EAClB,IAAIR,QAAQ,CAACS,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMN,eAAe,CAAC,CAAC,CAACW,yBAAyB,CAACN,OAAO,CAAC;AAC5D,CAAC;AAED,MAAMO,8BAA8B,GAAG,MAAAA,CAAA,KAA2B;EAChE,IAAIf,QAAQ,CAACS,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMN,eAAe,CAAC,CAAC,CAACa,uBAAuB,CAAC,CAAC;AACnD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,2BAA2B,GAAG,MAAAA,CAAO;EACzCC,MAAM;EACNC,SAAS;EACTC,UAAU;EACVC,SAAS;EACTC,OAAO;EACPC;AACkC,CAAC,KAAoB;EACvD,MAAMC,QAA2D,GAAG,CAAC,CAAC;EAEtE,MAAMC,OAAO,GAAGxB,wBAAwB,CAACyB,WAAW,CAAC;IACnDR,MAAM;IACNC,SAAS;IACTC,UAAU;IACVC,SAAS;IACTM,WAAW,EAAGC,KAAK,IAAKN,OAAO,GAAGM,KAAK,CAAC;IACxCC,cAAc,EAAGC,YAAY,IAAK;MAChCN,QAAQ,CAACM,YAAY,CAACC,kBAAkB,CAAC,GAAGD,YAAY;MACxDP,UAAU,GAAGC,QAAQ,CAAC;IACxB;EACF,CAAC,CAAC;EAEF,MAAMC,OAAO,CAACO,SAAS,CAAC,CAAC;AAC3B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMC,0CAA0C,GAAGA,CACjDC,IAAwC,EACxCC,QAAQ,GAAGjC,sCAAsC,KACxC;EACT,IAAIF,QAAQ,CAACS,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEAX,WAAW,CAACsC,oBAAoB,CAACD,QAAQ,EAAE,MAAMD,IAAI,CAAC;AACxD,CAAC;AAED,SACEhC,sCAAsC,EAKtCa,8BAA8B,EAC9BkB,0CAA0C,EAC1ChB,2BAA2B,EAC3BJ,gCAAgC,EAChCN,sCAAsC,EACtCI,qCAAqC","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Platform } from "react-native";
|
|
5
|
+
import { startAndroidBluetoothForegroundService, stopAndroidBluetoothForegroundService } from "./android-background-sync.js";
|
|
6
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const AndroidBluetoothForegroundService = ({
|
|
8
|
+
enabled,
|
|
9
|
+
children,
|
|
10
|
+
options,
|
|
11
|
+
onError
|
|
12
|
+
}) => {
|
|
13
|
+
const notificationBody = options?.notificationBody;
|
|
14
|
+
const notificationTitle = options?.notificationTitle;
|
|
15
|
+
React.useEffect(() => {
|
|
16
|
+
if (Platform.OS !== "android" || !enabled) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
void startAndroidBluetoothForegroundService({
|
|
20
|
+
...(notificationBody === undefined ? {} : {
|
|
21
|
+
notificationBody
|
|
22
|
+
}),
|
|
23
|
+
...(notificationTitle === undefined ? {} : {
|
|
24
|
+
notificationTitle
|
|
25
|
+
})
|
|
26
|
+
}).catch(error => {
|
|
27
|
+
onError?.({
|
|
28
|
+
error: error instanceof Error ? error : String(error)
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
return () => {
|
|
32
|
+
void stopAndroidBluetoothForegroundService().catch(error => {
|
|
33
|
+
onError?.({
|
|
34
|
+
error: error instanceof Error ? error : String(error)
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
}, [enabled, notificationBody, notificationTitle, onError]);
|
|
39
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
40
|
+
children: children
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
export { AndroidBluetoothForegroundService };
|
|
44
|
+
//# sourceMappingURL=android-bluetooth-foreground-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Platform","startAndroidBluetoothForegroundService","stopAndroidBluetoothForegroundService","Fragment","_Fragment","jsx","_jsx","AndroidBluetoothForegroundService","enabled","children","options","onError","notificationBody","notificationTitle","useEffect","OS","undefined","catch","error","Error","String"],"sourceRoot":"../../../../src","sources":["modules/background-sync/android-bluetooth-foreground-service.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,QAAQ,cAAc;AAIvC,SACEC,sCAAsC,EACtCC,qCAAqC,QAEhC,8BAA2B;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA;AASnC,MAAMC,iCAAiC,GAAGA,CAAC;EACzCC,OAAO;EACPC,QAAQ;EACRC,OAAO;EACPC;AACsC,CAAC,KAAK;EAC5C,MAAMC,gBAAgB,GAAGF,OAAO,EAAEE,gBAAgB;EAClD,MAAMC,iBAAiB,GAAGH,OAAO,EAAEG,iBAAiB;EAEpDd,KAAK,CAACe,SAAS,CAAC,MAAM;IACpB,IAAId,QAAQ,CAACe,EAAE,KAAK,SAAS,IAAI,CAACP,OAAO,EAAE;MACzC;IACF;IAEA,KAAKP,sCAAsC,CAAC;MAC1C,IAAIW,gBAAgB,KAAKI,SAAS,GAAG,CAAC,CAAC,GAAG;QAAEJ;MAAiB,CAAC,CAAC;MAC/D,IAAIC,iBAAiB,KAAKG,SAAS,GAAG,CAAC,CAAC,GAAG;QAAEH;MAAkB,CAAC;IAClE,CAAC,CAAC,CAACI,KAAK,CAAEC,KAAc,IAAK;MACzBP,OAAO,GAAG;QACRO,KAAK,EAAEA,KAAK,YAAYC,KAAK,GAAGD,KAAK,GAAGE,MAAM,CAACF,KAAK;MACtD,CAAC,CAAC;IACJ,CAAC,CAAC;IAEJ,OAAO,MAAM;MACX,KAAKhB,qCAAqC,CAAC,CAAC,CAACe,KAAK,CAAEC,KAAc,IAAK;QACrEP,OAAO,GAAG;UACRO,KAAK,EAAEA,KAAK,YAAYC,KAAK,GAAGD,KAAK,GAAGE,MAAM,CAACF,KAAK;QACtD,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC;EACH,CAAC,EAAE,CAACV,OAAO,EAAEI,gBAAgB,EAAEC,iBAAiB,EAAEF,OAAO,CAAC,CAAC;EAE3D,oBAAOL,IAAA,CAAAF,SAAA;IAAAK,QAAA,EAAGA;EAAQ,CAAG,CAAC;AACxB,CAAC;AAED,SAASF,iCAAiC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["modules/background-sync/index.ts"],"mappings":";;AAAA,cAAc,8BAA2B;AACzC,cAAc,2CAAwC","ignoreList":[]}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
/* eslint-disable max-lines */
|
|
3
4
|
import * as React from "react";
|
|
4
5
|
import { AppState } from "react-native";
|
|
6
|
+
import { AndroidBluetoothForegroundService } from "../../background-sync/index.js";
|
|
5
7
|
import { useDeviceList } from "../../bt-device/components/hooks/use-device-list.js";
|
|
6
8
|
import { sentryLogger } from "../../helpers/utils/sentry-logger.js";
|
|
7
9
|
import { getRestoredBleState } from "../services/background-sync/background-ble-manager.js";
|
|
8
10
|
import { getBackgroundServiceUUIDs } from "../services/background-sync/background-service-uuids.js";
|
|
9
11
|
import { BackgroundSyncCoordinator } from "../services/background-sync/background-sync-coordinator.js";
|
|
10
12
|
import { BTManager } from "../services/bt-manager.js";
|
|
11
|
-
import {
|
|
13
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
14
|
export const BTProviderChildWrapper = /*#__PURE__*/React.memo(({
|
|
13
15
|
bleManager,
|
|
14
16
|
acceptedDevices = [],
|
|
@@ -179,7 +181,10 @@ export const BTProviderChildWrapper = /*#__PURE__*/React.memo(({
|
|
|
179
181
|
listener.remove();
|
|
180
182
|
};
|
|
181
183
|
}, [onError]);
|
|
182
|
-
return /*#__PURE__*/_jsx(
|
|
184
|
+
return /*#__PURE__*/_jsx(AndroidBluetoothForegroundService, {
|
|
185
|
+
enabled: backgroundSync?.enabled === true,
|
|
186
|
+
options: backgroundSync?.android?.foregroundService,
|
|
187
|
+
onError: onError,
|
|
183
188
|
children: children
|
|
184
189
|
});
|
|
185
190
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","AppState","useDeviceList","sentryLogger","getRestoredBleState","getBackgroundServiceUUIDs","BackgroundSyncCoordinator","BTManager","
|
|
1
|
+
{"version":3,"names":["React","AppState","AndroidBluetoothForegroundService","useDeviceList","sentryLogger","getRestoredBleState","getBackgroundServiceUUIDs","BackgroundSyncCoordinator","BTManager","jsx","_jsx","BTProviderChildWrapper","memo","bleManager","acceptedDevices","children","oneReadingPerConnection","deliveredEcgFileNames","onDeviceFound","onError","onDeviceStatusChanged","onResult","backgroundSync","btManagerRef","useRef","backgroundSyncRef","backgroundSyncCoordinatorRef","setDeviceListItems","current","useEffect","length","currentBackgroundSync","isBackgroundEnabled","enabled","backgroundOptions","backgroundEnabled","serviceUUIDs","undefined","managerOptions","btManager","Object","keys","coordinator","result","latest","setBackgroundScanEnabled","currentState","startScan","destroy","maxRetries","retryBackoffMs","storage","storageKey","callback","data","enqueue","catch","error","Error","String","status","deviceData","measurementTypeKey","prev","newList","index","findIndex","item","deviceType","name","restoredState","restoreStateIdentifier","connectedPeripherals","restoreDevices","flush","includeExhausted","resetExhausted","listener","addEventListener","state","remove","options","android","foregroundService"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/components/bt-provider-child-wrapper.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { MeasurementTypeKey } from "@ovok/core";
|
|
3
|
+
import { MeasurementTypeKey, URINE_ANALYTE_DEFINITIONS } from "@ovok/core";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* The measurement types a declaration may produce, the properties each one accepts, the
|
|
@@ -20,6 +20,85 @@ import { MeasurementTypeKey } from "@ovok/core";
|
|
|
20
20
|
* record of something that was never measured. A "result" case must declare all of them.
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
|
+
const urineAnalyteRanges = {
|
|
24
|
+
uro: {
|
|
25
|
+
min: 0.2,
|
|
26
|
+
max: 8,
|
|
27
|
+
normalMin: 0.1,
|
|
28
|
+
normalMax: 1
|
|
29
|
+
},
|
|
30
|
+
bld: {
|
|
31
|
+
min: 0,
|
|
32
|
+
max: 250,
|
|
33
|
+
normalMin: 0,
|
|
34
|
+
normalMax: 0
|
|
35
|
+
},
|
|
36
|
+
bil: {
|
|
37
|
+
min: 0,
|
|
38
|
+
max: 6,
|
|
39
|
+
normalMin: 0,
|
|
40
|
+
normalMax: 0
|
|
41
|
+
},
|
|
42
|
+
ket: {
|
|
43
|
+
min: 0,
|
|
44
|
+
max: 80,
|
|
45
|
+
normalMin: 0,
|
|
46
|
+
normalMax: 15
|
|
47
|
+
},
|
|
48
|
+
glu: {
|
|
49
|
+
min: 0,
|
|
50
|
+
max: 1000,
|
|
51
|
+
normalMin: 0,
|
|
52
|
+
normalMax: 0
|
|
53
|
+
},
|
|
54
|
+
pro: {
|
|
55
|
+
min: 0,
|
|
56
|
+
max: 300,
|
|
57
|
+
normalMin: 0,
|
|
58
|
+
normalMax: 14
|
|
59
|
+
},
|
|
60
|
+
ph: {
|
|
61
|
+
min: 5,
|
|
62
|
+
max: 8.5,
|
|
63
|
+
normalMin: 4.5,
|
|
64
|
+
normalMax: 8
|
|
65
|
+
},
|
|
66
|
+
nit: {
|
|
67
|
+
min: 0,
|
|
68
|
+
max: 1,
|
|
69
|
+
normalMin: 0,
|
|
70
|
+
normalMax: 0
|
|
71
|
+
},
|
|
72
|
+
leu: {
|
|
73
|
+
min: 0,
|
|
74
|
+
max: 500,
|
|
75
|
+
normalMin: 0,
|
|
76
|
+
normalMax: 25
|
|
77
|
+
},
|
|
78
|
+
sg: {
|
|
79
|
+
min: 1.005,
|
|
80
|
+
max: 1.03,
|
|
81
|
+
normalMin: 1.003,
|
|
82
|
+
normalMax: 1.03
|
|
83
|
+
},
|
|
84
|
+
vc: {
|
|
85
|
+
min: 0,
|
|
86
|
+
max: 100
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
const urineAnalyteCatalog = Object.fromEntries(Object.entries(urineAnalyteRanges).map(([key, range]) => {
|
|
90
|
+
const definition = URINE_ANALYTE_DEFINITIONS.find(analyte => analyte.key === key);
|
|
91
|
+
if (!definition) {
|
|
92
|
+
throw new Error(`Missing shared urine analyte definition for ${key}`);
|
|
93
|
+
}
|
|
94
|
+
return [key, {
|
|
95
|
+
...range,
|
|
96
|
+
display: definition.display,
|
|
97
|
+
// UCUM's dimensionless unit is the safe declaration value when the
|
|
98
|
+
// analyte has no display unit (pH and specific gravity).
|
|
99
|
+
unit: definition.unit ?? "1"
|
|
100
|
+
}];
|
|
101
|
+
}));
|
|
23
102
|
export const measurementFieldCatalog = {
|
|
24
103
|
[MeasurementTypeKey.bloodPressure]: {
|
|
25
104
|
systolic: {
|
|
@@ -104,93 +183,6 @@ export const measurementFieldCatalog = {
|
|
|
104
183
|
required: true
|
|
105
184
|
}
|
|
106
185
|
},
|
|
107
|
-
[MeasurementTypeKey.uricAcid]:
|
|
108
|
-
uro: {
|
|
109
|
-
unit: "mg/dL",
|
|
110
|
-
min: 0,
|
|
111
|
-
max: 6,
|
|
112
|
-
display: "Urobilinogen",
|
|
113
|
-
normalMin: 0.1,
|
|
114
|
-
normalMax: 1
|
|
115
|
-
},
|
|
116
|
-
bld: {
|
|
117
|
-
unit: "RBC/µL",
|
|
118
|
-
min: 0,
|
|
119
|
-
max: 6,
|
|
120
|
-
display: "Hemoglobin",
|
|
121
|
-
normalMin: 0,
|
|
122
|
-
normalMax: 0
|
|
123
|
-
},
|
|
124
|
-
bil: {
|
|
125
|
-
unit: "mg/dL",
|
|
126
|
-
min: 0,
|
|
127
|
-
max: 6,
|
|
128
|
-
display: "Bilirubin",
|
|
129
|
-
normalMin: 0,
|
|
130
|
-
normalMax: 0
|
|
131
|
-
},
|
|
132
|
-
ket: {
|
|
133
|
-
unit: "mg/dL",
|
|
134
|
-
min: 0,
|
|
135
|
-
max: 6,
|
|
136
|
-
display: "Ketones",
|
|
137
|
-
normalMin: 0,
|
|
138
|
-
normalMax: 15
|
|
139
|
-
},
|
|
140
|
-
glu: {
|
|
141
|
-
unit: "mg/dL",
|
|
142
|
-
min: 0,
|
|
143
|
-
max: 6,
|
|
144
|
-
display: "Glucose",
|
|
145
|
-
normalMin: 0,
|
|
146
|
-
normalMax: 0
|
|
147
|
-
},
|
|
148
|
-
pro: {
|
|
149
|
-
unit: "mg/dL",
|
|
150
|
-
min: 0,
|
|
151
|
-
max: 6,
|
|
152
|
-
display: "Protein",
|
|
153
|
-
normalMin: 0,
|
|
154
|
-
normalMax: 14
|
|
155
|
-
},
|
|
156
|
-
ph: {
|
|
157
|
-
unit: "pH",
|
|
158
|
-
min: 0,
|
|
159
|
-
max: 14,
|
|
160
|
-
display: "Urine pH",
|
|
161
|
-
normalMin: 4.5,
|
|
162
|
-
normalMax: 8
|
|
163
|
-
},
|
|
164
|
-
nit: {
|
|
165
|
-
unit: "qualitative",
|
|
166
|
-
min: 0,
|
|
167
|
-
max: 6,
|
|
168
|
-
display: "Nitrite",
|
|
169
|
-
normalMin: 0,
|
|
170
|
-
normalMax: 0
|
|
171
|
-
},
|
|
172
|
-
leu: {
|
|
173
|
-
unit: "WBC/µL",
|
|
174
|
-
min: 0,
|
|
175
|
-
max: 6,
|
|
176
|
-
display: "Leukocyte esterase",
|
|
177
|
-
normalMin: 0,
|
|
178
|
-
normalMax: 25
|
|
179
|
-
},
|
|
180
|
-
sg: {
|
|
181
|
-
unit: "specific gravity",
|
|
182
|
-
min: 0,
|
|
183
|
-
max: 6,
|
|
184
|
-
display: "Specific gravity",
|
|
185
|
-
normalMin: 1.003,
|
|
186
|
-
normalMax: 1.03
|
|
187
|
-
},
|
|
188
|
-
vc: {
|
|
189
|
-
unit: "mg/dL",
|
|
190
|
-
min: 0,
|
|
191
|
-
max: 6,
|
|
192
|
-
display: "Ascorbate (vitamin C)"
|
|
193
|
-
}
|
|
194
|
-
}
|
|
186
|
+
[MeasurementTypeKey.uricAcid]: urineAnalyteCatalog
|
|
195
187
|
};
|
|
196
188
|
//# sourceMappingURL=measurement-field-catalog.js.map
|