health_kit_upload_mapper.dart
2.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import 'package:doublefeel_flutter/pigeon/health_kit_api.g.dart';
import 'models/apple_health_upload_sample.dart';
import 'models/health_upload_data_type.dart';
import 'models/upload_active_energy.dart';
import 'models/upload_exercise.dart';
import 'models/upload_heart_rate.dart';
import 'models/upload_hrv.dart';
import 'models/upload_irregular_heart_rhythm.dart';
import 'models/upload_oxygen_saturation.dart';
import 'models/upload_respiratory_rate.dart';
import 'models/upload_resting_heart_rate.dart';
import 'models/upload_sleep.dart';
import 'models/upload_sleeping_heart_rate.dart';
import 'models/upload_sleeping_wrist_temperature.dart';
import 'models/upload_stand.dart';
import 'models/upload_step_count.dart';
import 'models/upload_walking_heart_rate.dart';
extension HealthUploadDataPointMapper on HealthUploadDataPoint {
AppleHealthUploadSample? toAppleHealthUploadSample() {
switch (HealthUploadDataType.fromValue(dataType)) {
case HealthUploadDataType.hrv:
return HealthHrvUploadData(time: time, value: value);
case HealthUploadDataType.heartRate:
return HealthHeartRateUploadData(time: time, value: value);
case HealthUploadDataType.oxygenSaturation:
return HealthOxygenSaturationUploadData(time: time, value: value);
case HealthUploadDataType.activeEnergy:
return HealthActiveEnergyUploadData(time: time, value: value);
case HealthUploadDataType.exercise:
return HealthExerciseUploadData(time: time, value: value);
case HealthUploadDataType.stand:
return HealthStandUploadData(time: time, value: value);
case HealthUploadDataType.steps:
return HealthStepCountUploadData(time: time, value: value);
case HealthUploadDataType.walkingHeartRate:
return HealthWalkingHeartRateUploadData(time: time, value: value);
case HealthUploadDataType.restingHeartRate:
return HealthRestingHeartRateUploadData(time: time, value: value);
case HealthUploadDataType.sleepingHeartRate:
return HealthSleepingHeartRateUploadData(time: time, value: value);
case HealthUploadDataType.sleepingWristTemperature:
return HealthSleepingWristTemperatureUploadData(
time: time,
value: value,
);
case HealthUploadDataType.respiratoryRate:
return HealthRespiratoryRateUploadData(time: time, value: value);
case HealthUploadDataType.irregularHeartRhythm:
return HealthIrregularHeartRhythmUploadData(time: time, value: value);
case HealthUploadDataType.unknown:
case HealthUploadDataType.sleep:
return null;
}
}
}
extension HealthSleepUploadDataPointMapper on HealthSleepUploadDataPoint {
HealthSleepUploadData toHealthSleepUploadData() {
return HealthSleepUploadData(
dataType: dataType,
fromTime: fromTime,
toTime: toTime,
);
}
}