|
...
|
...
|
@@ -15,22 +15,21 @@ PlatformException _createConnectionError(String channelName) { |
|
|
|
message: 'Unable to establish connection on channel: "$channelName".',
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool _deepEquals(Object? a, Object? b) {
|
|
|
|
if (a is List && b is List) {
|
|
|
|
return a.length == b.length &&
|
|
|
|
a.indexed
|
|
|
|
.every(((int, dynamic) item) => _deepEquals(item.$2, b[item.$1]));
|
|
|
|
.every(((int, dynamic) item) => _deepEquals(item.$2, b[item.$1]));
|
|
|
|
}
|
|
|
|
if (a is Map && b is Map) {
|
|
|
|
return a.length == b.length &&
|
|
|
|
a.entries.every((MapEntry<Object?, Object?> entry) =>
|
|
|
|
(b as Map<Object?, Object?>).containsKey(entry.key) &&
|
|
|
|
_deepEquals(entry.value, b[entry.key]));
|
|
|
|
return a.length == b.length && a.entries.every((MapEntry<Object?, Object?> entry) =>
|
|
|
|
(b as Map<Object?, Object?>).containsKey(entry.key) &&
|
|
|
|
_deepEquals(entry.value, b[entry.key]));
|
|
|
|
}
|
|
|
|
return a == b;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
class HealthKitRawDataPoint {
|
|
|
|
HealthKitRawDataPoint({
|
|
|
|
required this.dataType,
|
|
...
|
...
|
@@ -61,8 +60,7 @@ class HealthKitRawDataPoint { |
|
|
|
}
|
|
|
|
|
|
|
|
Object encode() {
|
|
|
|
return _toList();
|
|
|
|
}
|
|
|
|
return _toList(); }
|
|
|
|
|
|
|
|
static HealthKitRawDataPoint decode(Object result) {
|
|
|
|
result as List<Object?>;
|
|
...
|
...
|
@@ -89,7 +87,8 @@ class HealthKitRawDataPoint { |
|
|
|
|
|
|
|
@override
|
|
|
|
// ignore: avoid_equals_and_hash_code_on_mutable_classes
|
|
|
|
int get hashCode => Object.hashAll(_toList());
|
|
|
|
int get hashCode => Object.hashAll(_toList())
|
|
|
|
;
|
|
|
|
}
|
|
|
|
|
|
|
|
class HealthKitRawSleepDataPoint {
|
|
...
|
...
|
@@ -110,23 +109,20 @@ class HealthKitRawSleepDataPoint { |
|
|
|
}
|
|
|
|
|
|
|
|
Object encode() {
|
|
|
|
return _toList();
|
|
|
|
}
|
|
|
|
return _toList(); }
|
|
|
|
|
|
|
|
static HealthKitRawSleepDataPoint decode(Object result) {
|
|
|
|
result as List<Object?>;
|
|
|
|
return HealthKitRawSleepDataPoint(
|
|
|
|
dataType: result[0]! as int,
|
|
|
|
sleepDataPoints:
|
|
|
|
(result[1] as List<Object?>?)!.cast<HealthKitRawDataPoint>(),
|
|
|
|
sleepDataPoints: (result[1] as List<Object?>?)!.cast<HealthKitRawDataPoint>(),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
|
|
|
// ignore: avoid_equals_and_hash_code_on_mutable_classes
|
|
|
|
bool operator ==(Object other) {
|
|
|
|
if (other is! HealthKitRawSleepDataPoint ||
|
|
|
|
other.runtimeType != runtimeType) {
|
|
|
|
if (other is! HealthKitRawSleepDataPoint || other.runtimeType != runtimeType) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
if (identical(this, other)) {
|
|
...
|
...
|
@@ -137,7 +133,8 @@ class HealthKitRawSleepDataPoint { |
|
|
|
|
|
|
|
@override
|
|
|
|
// ignore: avoid_equals_and_hash_code_on_mutable_classes
|
|
|
|
int get hashCode => Object.hashAll(_toList());
|
|
|
|
int get hashCode => Object.hashAll(_toList())
|
|
|
|
;
|
|
|
|
}
|
|
|
|
|
|
|
|
class HealthKitRawWorkoutDataPoint {
|
|
...
|
...
|
@@ -162,8 +159,7 @@ class HealthKitRawWorkoutDataPoint { |
|
|
|
}
|
|
|
|
|
|
|
|
Object encode() {
|
|
|
|
return _toList();
|
|
|
|
}
|
|
|
|
return _toList(); }
|
|
|
|
|
|
|
|
static HealthKitRawWorkoutDataPoint decode(Object result) {
|
|
|
|
result as List<Object?>;
|
|
...
|
...
|
@@ -177,8 +173,7 @@ class HealthKitRawWorkoutDataPoint { |
|
|
|
@override
|
|
|
|
// ignore: avoid_equals_and_hash_code_on_mutable_classes
|
|
|
|
bool operator ==(Object other) {
|
|
|
|
if (other is! HealthKitRawWorkoutDataPoint ||
|
|
|
|
other.runtimeType != runtimeType) {
|
|
|
|
if (other is! HealthKitRawWorkoutDataPoint || other.runtimeType != runtimeType) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
if (identical(this, other)) {
|
|
...
|
...
|
@@ -189,7 +184,8 @@ class HealthKitRawWorkoutDataPoint { |
|
|
|
|
|
|
|
@override
|
|
|
|
// ignore: avoid_equals_and_hash_code_on_mutable_classes
|
|
|
|
int get hashCode => Object.hashAll(_toList());
|
|
|
|
int get hashCode => Object.hashAll(_toList())
|
|
|
|
;
|
|
|
|
}
|
|
|
|
|
|
|
|
class HealthKitRawMotionDataPoint {
|
|
...
|
...
|
@@ -214,8 +210,7 @@ class HealthKitRawMotionDataPoint { |
|
|
|
}
|
|
|
|
|
|
|
|
Object encode() {
|
|
|
|
return _toList();
|
|
|
|
}
|
|
|
|
return _toList(); }
|
|
|
|
|
|
|
|
static HealthKitRawMotionDataPoint decode(Object result) {
|
|
|
|
result as List<Object?>;
|
|
...
|
...
|
@@ -229,8 +224,7 @@ class HealthKitRawMotionDataPoint { |
|
|
|
@override
|
|
|
|
// ignore: avoid_equals_and_hash_code_on_mutable_classes
|
|
|
|
bool operator ==(Object other) {
|
|
|
|
if (other is! HealthKitRawMotionDataPoint ||
|
|
|
|
other.runtimeType != runtimeType) {
|
|
|
|
if (other is! HealthKitRawMotionDataPoint || other.runtimeType != runtimeType) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
if (identical(this, other)) {
|
|
...
|
...
|
@@ -241,7 +235,8 @@ class HealthKitRawMotionDataPoint { |
|
|
|
|
|
|
|
@override
|
|
|
|
// ignore: avoid_equals_and_hash_code_on_mutable_classes
|
|
|
|
int get hashCode => Object.hashAll(_toList());
|
|
|
|
int get hashCode => Object.hashAll(_toList())
|
|
|
|
;
|
|
|
|
}
|
|
|
|
|
|
|
|
class HealthKitRawActivityDataPoint {
|
|
...
|
...
|
@@ -294,8 +289,7 @@ class HealthKitRawActivityDataPoint { |
|
|
|
}
|
|
|
|
|
|
|
|
Object encode() {
|
|
|
|
return _toList();
|
|
|
|
}
|
|
|
|
return _toList(); }
|
|
|
|
|
|
|
|
static HealthKitRawActivityDataPoint decode(Object result) {
|
|
|
|
result as List<Object?>;
|
|
...
|
...
|
@@ -316,8 +310,7 @@ class HealthKitRawActivityDataPoint { |
|
|
|
@override
|
|
|
|
// ignore: avoid_equals_and_hash_code_on_mutable_classes
|
|
|
|
bool operator ==(Object other) {
|
|
|
|
if (other is! HealthKitRawActivityDataPoint ||
|
|
|
|
other.runtimeType != runtimeType) {
|
|
|
|
if (other is! HealthKitRawActivityDataPoint || other.runtimeType != runtimeType) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
if (identical(this, other)) {
|
|
...
|
...
|
@@ -328,9 +321,11 @@ class HealthKitRawActivityDataPoint { |
|
|
|
|
|
|
|
@override
|
|
|
|
// ignore: avoid_equals_and_hash_code_on_mutable_classes
|
|
|
|
int get hashCode => Object.hashAll(_toList());
|
|
|
|
int get hashCode => Object.hashAll(_toList())
|
|
|
|
;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
class _PigeonCodec extends StandardMessageCodec {
|
|
|
|
const _PigeonCodec();
|
|
|
|
@override
|
|
...
|
...
|
@@ -338,19 +333,19 @@ class _PigeonCodec extends StandardMessageCodec { |
|
|
|
if (value is int) {
|
|
|
|
buffer.putUint8(4);
|
|
|
|
buffer.putInt64(value);
|
|
|
|
} else if (value is HealthKitRawDataPoint) {
|
|
|
|
} else if (value is HealthKitRawDataPoint) {
|
|
|
|
buffer.putUint8(129);
|
|
|
|
writeValue(buffer, value.encode());
|
|
|
|
} else if (value is HealthKitRawSleepDataPoint) {
|
|
|
|
} else if (value is HealthKitRawSleepDataPoint) {
|
|
|
|
buffer.putUint8(130);
|
|
|
|
writeValue(buffer, value.encode());
|
|
|
|
} else if (value is HealthKitRawWorkoutDataPoint) {
|
|
|
|
} else if (value is HealthKitRawWorkoutDataPoint) {
|
|
|
|
buffer.putUint8(131);
|
|
|
|
writeValue(buffer, value.encode());
|
|
|
|
} else if (value is HealthKitRawMotionDataPoint) {
|
|
|
|
} else if (value is HealthKitRawMotionDataPoint) {
|
|
|
|
buffer.putUint8(132);
|
|
|
|
writeValue(buffer, value.encode());
|
|
|
|
} else if (value is HealthKitRawActivityDataPoint) {
|
|
|
|
} else if (value is HealthKitRawActivityDataPoint) {
|
|
|
|
buffer.putUint8(133);
|
|
|
|
writeValue(buffer, value.encode());
|
|
|
|
} else {
|
|
...
|
...
|
@@ -361,15 +356,15 @@ class _PigeonCodec extends StandardMessageCodec { |
|
|
|
@override
|
|
|
|
Object? readValueOfType(int type, ReadBuffer buffer) {
|
|
|
|
switch (type) {
|
|
|
|
case 129:
|
|
|
|
case 129:
|
|
|
|
return HealthKitRawDataPoint.decode(readValue(buffer)!);
|
|
|
|
case 130:
|
|
|
|
case 130:
|
|
|
|
return HealthKitRawSleepDataPoint.decode(readValue(buffer)!);
|
|
|
|
case 131:
|
|
|
|
case 131:
|
|
|
|
return HealthKitRawWorkoutDataPoint.decode(readValue(buffer)!);
|
|
|
|
case 132:
|
|
|
|
case 132:
|
|
|
|
return HealthKitRawMotionDataPoint.decode(readValue(buffer)!);
|
|
|
|
case 133:
|
|
|
|
case 133:
|
|
|
|
return HealthKitRawActivityDataPoint.decode(readValue(buffer)!);
|
|
|
|
default:
|
|
|
|
return super.readValueOfType(type, buffer);
|
|
...
|
...
|
@@ -381,11 +376,9 @@ class HealthKitRawDataHostApi { |
|
|
|
/// Constructor for [HealthKitRawDataHostApi]. The [binaryMessenger] named argument is
|
|
|
|
/// available for dependency injection. If it is left null, the default
|
|
|
|
/// BinaryMessenger will be used which routes to the host platform.
|
|
|
|
HealthKitRawDataHostApi(
|
|
|
|
{BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''})
|
|
|
|
HealthKitRawDataHostApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''})
|
|
|
|
: pigeonVar_binaryMessenger = binaryMessenger,
|
|
|
|
pigeonVar_messageChannelSuffix =
|
|
|
|
messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : '';
|
|
|
|
pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : '';
|
|
|
|
final BinaryMessenger? pigeonVar_binaryMessenger;
|
|
|
|
|
|
|
|
static const MessageCodec<Object?> pigeonChannelCodec = _PigeonCodec();
|
|
...
|
...
|
@@ -394,10 +387,8 @@ class HealthKitRawDataHostApi { |
|
|
|
|
|
|
|
/// 是否有AppleHealth数据
|
|
|
|
Future<bool> hasHealthData() async {
|
|
|
|
final String pigeonVar_channelName =
|
|
|
|
'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.hasHealthData$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel =
|
|
|
|
BasicMessageChannel<Object?>(
|
|
|
|
final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.hasHealthData$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
|
|
|
|
pigeonVar_channelName,
|
|
|
|
pigeonChannelCodec,
|
|
|
|
binaryMessenger: pigeonVar_binaryMessenger,
|
|
...
|
...
|
@@ -424,18 +415,14 @@ class HealthKitRawDataHostApi { |
|
|
|
}
|
|
|
|
|
|
|
|
/// 从AppleHealth 中读取原始数据
|
|
|
|
Future<List<HealthKitRawDataPoint>> getHealthKitRawData(
|
|
|
|
int dataType, int startTime, int endTime) async {
|
|
|
|
final String pigeonVar_channelName =
|
|
|
|
'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.getHealthKitRawData$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel =
|
|
|
|
BasicMessageChannel<Object?>(
|
|
|
|
Future<List<HealthKitRawDataPoint>> getHealthKitRawData(int dataType, int startTime, int endTime) async {
|
|
|
|
final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.getHealthKitRawData$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
|
|
|
|
pigeonVar_channelName,
|
|
|
|
pigeonChannelCodec,
|
|
|
|
binaryMessenger: pigeonVar_binaryMessenger,
|
|
|
|
);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture =
|
|
|
|
pigeonVar_channel.send(<Object?>[dataType, startTime, endTime]);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(<Object?>[dataType, startTime, endTime]);
|
|
|
|
final List<Object?>? pigeonVar_replyList =
|
|
|
|
await pigeonVar_sendFuture as List<Object?>?;
|
|
|
|
if (pigeonVar_replyList == null) {
|
|
...
|
...
|
@@ -452,17 +439,14 @@ class HealthKitRawDataHostApi { |
|
|
|
message: 'Host platform returned null value for non-null return value.',
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
return (pigeonVar_replyList[0] as List<Object?>?)!
|
|
|
|
.cast<HealthKitRawDataPoint>();
|
|
|
|
return (pigeonVar_replyList[0] as List<Object?>?)!.cast<HealthKitRawDataPoint>();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/// 原生数据上传
|
|
|
|
Future<bool> performHealthDataUpload() async {
|
|
|
|
final String pigeonVar_channelName =
|
|
|
|
'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.performHealthDataUpload$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel =
|
|
|
|
BasicMessageChannel<Object?>(
|
|
|
|
final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.performHealthDataUpload$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
|
|
|
|
pigeonVar_channelName,
|
|
|
|
pigeonChannelCodec,
|
|
|
|
binaryMessenger: pigeonVar_binaryMessenger,
|
|
...
|
...
|
@@ -489,27 +473,14 @@ class HealthKitRawDataHostApi { |
|
|
|
}
|
|
|
|
|
|
|
|
/// 向原生同步数据库路径
|
|
|
|
Future<bool> syncDatabase({
|
|
|
|
required String hrDataPath,
|
|
|
|
required String hrvDataPath,
|
|
|
|
required String sleepDataPath,
|
|
|
|
required String avgRealtimeStressDataPath,
|
|
|
|
}) async {
|
|
|
|
final String pigeonVar_channelName =
|
|
|
|
'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.syncDatabase$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel =
|
|
|
|
BasicMessageChannel<Object?>(
|
|
|
|
Future<bool> syncDatabase({required String hrDataPath, required String hrvDataPath, required String sleepDataPath, required String avgRealtimeStressDataPath, }) async {
|
|
|
|
final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.syncDatabase$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
|
|
|
|
pigeonVar_channelName,
|
|
|
|
pigeonChannelCodec,
|
|
|
|
binaryMessenger: pigeonVar_binaryMessenger,
|
|
|
|
);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel
|
|
|
|
.send(<Object?>[
|
|
|
|
hrDataPath,
|
|
|
|
hrvDataPath,
|
|
|
|
sleepDataPath,
|
|
|
|
avgRealtimeStressDataPath
|
|
|
|
]);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(<Object?>[hrDataPath, hrvDataPath, sleepDataPath, avgRealtimeStressDataPath]);
|
|
|
|
final List<Object?>? pigeonVar_replyList =
|
|
|
|
await pigeonVar_sendFuture as List<Object?>?;
|
|
|
|
if (pigeonVar_replyList == null) {
|
|
...
|
...
|
@@ -532,16 +503,13 @@ class HealthKitRawDataHostApi { |
|
|
|
|
|
|
|
/// 上传心率 - 实时压力数据, 返回上传截止的时间戳, 方便flutter修改数据库
|
|
|
|
Future<int> performHRDataUpload({required String sqliteFilePath}) async {
|
|
|
|
final String pigeonVar_channelName =
|
|
|
|
'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.performHRDataUpload$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel =
|
|
|
|
BasicMessageChannel<Object?>(
|
|
|
|
final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.performHRDataUpload$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
|
|
|
|
pigeonVar_channelName,
|
|
|
|
pigeonChannelCodec,
|
|
|
|
binaryMessenger: pigeonVar_binaryMessenger,
|
|
|
|
);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture =
|
|
|
|
pigeonVar_channel.send(<Object?>[sqliteFilePath]);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(<Object?>[sqliteFilePath]);
|
|
|
|
final List<Object?>? pigeonVar_replyList =
|
|
|
|
await pigeonVar_sendFuture as List<Object?>?;
|
|
|
|
if (pigeonVar_replyList == null) {
|
|
...
|
...
|
@@ -564,16 +532,13 @@ class HealthKitRawDataHostApi { |
|
|
|
|
|
|
|
/// 上传HRV - HRV压力数据, 返回上传截止的时间戳,方便flutter 修改数据库
|
|
|
|
Future<int> performHRVDataUpload({required String sqliteFilePath}) async {
|
|
|
|
final String pigeonVar_channelName =
|
|
|
|
'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.performHRVDataUpload$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel =
|
|
|
|
BasicMessageChannel<Object?>(
|
|
|
|
final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.performHRVDataUpload$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
|
|
|
|
pigeonVar_channelName,
|
|
|
|
pigeonChannelCodec,
|
|
|
|
binaryMessenger: pigeonVar_binaryMessenger,
|
|
|
|
);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture =
|
|
|
|
pigeonVar_channel.send(<Object?>[sqliteFilePath]);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(<Object?>[sqliteFilePath]);
|
|
|
|
final List<Object?>? pigeonVar_replyList =
|
|
|
|
await pigeonVar_sendFuture as List<Object?>?;
|
|
|
|
if (pigeonVar_replyList == null) {
|
|
...
|
...
|
@@ -595,18 +560,14 @@ class HealthKitRawDataHostApi { |
|
|
|
}
|
|
|
|
|
|
|
|
/// 上传睡眠统计数据
|
|
|
|
Future<int> performSleepAnalysisDataUpload(
|
|
|
|
{required String sqliteFilePath}) async {
|
|
|
|
final String pigeonVar_channelName =
|
|
|
|
'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.performSleepAnalysisDataUpload$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel =
|
|
|
|
BasicMessageChannel<Object?>(
|
|
|
|
Future<int> performSleepAnalysisDataUpload({required String sqliteFilePath}) async {
|
|
|
|
final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.performSleepAnalysisDataUpload$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
|
|
|
|
pigeonVar_channelName,
|
|
|
|
pigeonChannelCodec,
|
|
|
|
binaryMessenger: pigeonVar_binaryMessenger,
|
|
|
|
);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture =
|
|
|
|
pigeonVar_channel.send(<Object?>[sqliteFilePath]);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(<Object?>[sqliteFilePath]);
|
|
|
|
final List<Object?>? pigeonVar_replyList =
|
|
|
|
await pigeonVar_sendFuture as List<Object?>?;
|
|
|
|
if (pigeonVar_replyList == null) {
|
|
...
|
...
|
@@ -628,18 +589,14 @@ class HealthKitRawDataHostApi { |
|
|
|
}
|
|
|
|
|
|
|
|
/// 上传当前实时压力(统计维度是当天)
|
|
|
|
Future<int> performAvgRealtimeStressDataUpload(
|
|
|
|
{required String sqliteFilePath}) async {
|
|
|
|
final String pigeonVar_channelName =
|
|
|
|
'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.performAvgRealtimeStressDataUpload$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel =
|
|
|
|
BasicMessageChannel<Object?>(
|
|
|
|
Future<int> performAvgRealtimeStressDataUpload({required String sqliteFilePath}) async {
|
|
|
|
final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.performAvgRealtimeStressDataUpload$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
|
|
|
|
pigeonVar_channelName,
|
|
|
|
pigeonChannelCodec,
|
|
|
|
binaryMessenger: pigeonVar_binaryMessenger,
|
|
|
|
);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture =
|
|
|
|
pigeonVar_channel.send(<Object?>[sqliteFilePath]);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(<Object?>[sqliteFilePath]);
|
|
|
|
final List<Object?>? pigeonVar_replyList =
|
|
|
|
await pigeonVar_sendFuture as List<Object?>?;
|
|
|
|
if (pigeonVar_replyList == null) {
|
|
...
|
...
|
@@ -661,18 +618,14 @@ class HealthKitRawDataHostApi { |
|
|
|
}
|
|
|
|
|
|
|
|
/// 从从AppleHealth中读取睡眠数据
|
|
|
|
Future<List<HealthKitRawSleepDataPoint>> getHealthKitRawSleepData(
|
|
|
|
int startTime, int endTime) async {
|
|
|
|
final String pigeonVar_channelName =
|
|
|
|
'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.getHealthKitRawSleepData$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel =
|
|
|
|
BasicMessageChannel<Object?>(
|
|
|
|
Future<List<HealthKitRawSleepDataPoint>> getHealthKitRawSleepData(int startTime, int endTime) async {
|
|
|
|
final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.getHealthKitRawSleepData$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
|
|
|
|
pigeonVar_channelName,
|
|
|
|
pigeonChannelCodec,
|
|
|
|
binaryMessenger: pigeonVar_binaryMessenger,
|
|
|
|
);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture =
|
|
|
|
pigeonVar_channel.send(<Object?>[startTime, endTime]);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(<Object?>[startTime, endTime]);
|
|
|
|
final List<Object?>? pigeonVar_replyList =
|
|
|
|
await pigeonVar_sendFuture as List<Object?>?;
|
|
|
|
if (pigeonVar_replyList == null) {
|
|
...
|
...
|
@@ -689,24 +642,19 @@ class HealthKitRawDataHostApi { |
|
|
|
message: 'Host platform returned null value for non-null return value.',
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
return (pigeonVar_replyList[0] as List<Object?>?)!
|
|
|
|
.cast<HealthKitRawSleepDataPoint>();
|
|
|
|
return (pigeonVar_replyList[0] as List<Object?>?)!.cast<HealthKitRawSleepDataPoint>();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/// 从从AppleHealth中读取活动统计数据
|
|
|
|
Future<List<HealthKitRawActivityDataPoint>> getHealthKitRawActivityData(
|
|
|
|
int startTime, int endTime) async {
|
|
|
|
final String pigeonVar_channelName =
|
|
|
|
'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.getHealthKitRawActivityData$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel =
|
|
|
|
BasicMessageChannel<Object?>(
|
|
|
|
Future<List<HealthKitRawActivityDataPoint>> getHealthKitRawActivityData(int startTime, int endTime) async {
|
|
|
|
final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.getHealthKitRawActivityData$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
|
|
|
|
pigeonVar_channelName,
|
|
|
|
pigeonChannelCodec,
|
|
|
|
binaryMessenger: pigeonVar_binaryMessenger,
|
|
|
|
);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture =
|
|
|
|
pigeonVar_channel.send(<Object?>[startTime, endTime]);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(<Object?>[startTime, endTime]);
|
|
|
|
final List<Object?>? pigeonVar_replyList =
|
|
|
|
await pigeonVar_sendFuture as List<Object?>?;
|
|
|
|
if (pigeonVar_replyList == null) {
|
|
...
|
...
|
@@ -723,24 +671,19 @@ class HealthKitRawDataHostApi { |
|
|
|
message: 'Host platform returned null value for non-null return value.',
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
return (pigeonVar_replyList[0] as List<Object?>?)!
|
|
|
|
.cast<HealthKitRawActivityDataPoint>();
|
|
|
|
return (pigeonVar_replyList[0] as List<Object?>?)!.cast<HealthKitRawActivityDataPoint>();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/// 从从AppleHealth中读取锻炼数据
|
|
|
|
Future<List<HealthKitRawWorkoutDataPoint>> getHealthKitRawWorkoutData(
|
|
|
|
int startTime, int endTime) async {
|
|
|
|
final String pigeonVar_channelName =
|
|
|
|
'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.getHealthKitRawWorkoutData$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel =
|
|
|
|
BasicMessageChannel<Object?>(
|
|
|
|
Future<List<HealthKitRawWorkoutDataPoint>> getHealthKitRawWorkoutData(int startTime, int endTime) async {
|
|
|
|
final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.getHealthKitRawWorkoutData$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
|
|
|
|
pigeonVar_channelName,
|
|
|
|
pigeonChannelCodec,
|
|
|
|
binaryMessenger: pigeonVar_binaryMessenger,
|
|
|
|
);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture =
|
|
|
|
pigeonVar_channel.send(<Object?>[startTime, endTime]);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(<Object?>[startTime, endTime]);
|
|
|
|
final List<Object?>? pigeonVar_replyList =
|
|
|
|
await pigeonVar_sendFuture as List<Object?>?;
|
|
|
|
if (pigeonVar_replyList == null) {
|
|
...
|
...
|
@@ -757,25 +700,20 @@ class HealthKitRawDataHostApi { |
|
|
|
message: 'Host platform returned null value for non-null return value.',
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
return (pigeonVar_replyList[0] as List<Object?>?)!
|
|
|
|
.cast<HealthKitRawWorkoutDataPoint>();
|
|
|
|
return (pigeonVar_replyList[0] as List<Object?>?)!.cast<HealthKitRawWorkoutDataPoint>();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/// 原生是否通知了flutter ,apple health数据变化,让native 记录这次调用记录
|
|
|
|
/// 需要保存引起此次计算的数据变化类型列表、当前时间
|
|
|
|
Future<bool> saveNativeCallFlutterChange(
|
|
|
|
{required List<int> relativeDataTypes}) async {
|
|
|
|
final String pigeonVar_channelName =
|
|
|
|
'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.saveNativeCallFlutterChange$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel =
|
|
|
|
BasicMessageChannel<Object?>(
|
|
|
|
Future<bool> saveNativeCallFlutterChange({required List<int> relativeDataTypes}) async {
|
|
|
|
final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.saveNativeCallFlutterChange$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
|
|
|
|
pigeonVar_channelName,
|
|
|
|
pigeonChannelCodec,
|
|
|
|
binaryMessenger: pigeonVar_binaryMessenger,
|
|
|
|
);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture =
|
|
|
|
pigeonVar_channel.send(<Object?>[relativeDataTypes]);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(<Object?>[relativeDataTypes]);
|
|
|
|
final List<Object?>? pigeonVar_replyList =
|
|
|
|
await pigeonVar_sendFuture as List<Object?>?;
|
|
|
|
if (pigeonVar_replyList == null) {
|
|
...
|
...
|
@@ -798,18 +736,14 @@ class HealthKitRawDataHostApi { |
|
|
|
|
|
|
|
/// caculate 一旦完成,让native 存储这次的计算记录
|
|
|
|
/// 需要保存引起此次计算的数据变化类型列表、当前时间
|
|
|
|
Future<bool> saveFlutterCaculateFinished(
|
|
|
|
{required List<int> relativeDataTypes}) async {
|
|
|
|
final String pigeonVar_channelName =
|
|
|
|
'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.saveFlutterCaculateFinished$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel =
|
|
|
|
BasicMessageChannel<Object?>(
|
|
|
|
Future<bool> saveFlutterCaculateFinished({required List<int> relativeDataTypes}) async {
|
|
|
|
final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.saveFlutterCaculateFinished$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
|
|
|
|
pigeonVar_channelName,
|
|
|
|
pigeonChannelCodec,
|
|
|
|
binaryMessenger: pigeonVar_binaryMessenger,
|
|
|
|
);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture =
|
|
|
|
pigeonVar_channel.send(<Object?>[relativeDataTypes]);
|
|
|
|
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(<Object?>[relativeDataTypes]);
|
|
|
|
final List<Object?>? pigeonVar_replyList =
|
|
|
|
await pigeonVar_sendFuture as List<Object?>?;
|
|
|
|
if (pigeonVar_replyList == null) {
|
|
...
|
...
|
@@ -832,10 +766,8 @@ class HealthKitRawDataHostApi { |
|
|
|
|
|
|
|
/// 让原生分享出来本地的记录文件
|
|
|
|
Future<bool> shareNativeAppleHealthObserverRecord() async {
|
|
|
|
final String pigeonVar_channelName =
|
|
|
|
'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.shareNativeAppleHealthObserverRecord$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel =
|
|
|
|
BasicMessageChannel<Object?>(
|
|
|
|
final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.shareNativeAppleHealthObserverRecord$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
|
|
|
|
pigeonVar_channelName,
|
|
|
|
pigeonChannelCodec,
|
|
|
|
binaryMessenger: pigeonVar_binaryMessenger,
|
|
...
|
...
|
@@ -863,10 +795,8 @@ class HealthKitRawDataHostApi { |
|
|
|
|
|
|
|
/// 让原生分享出来flutter的记录文件
|
|
|
|
Future<bool> shareFlutterObserverRecord() async {
|
|
|
|
final String pigeonVar_channelName =
|
|
|
|
'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.shareFlutterObserverRecord$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel =
|
|
|
|
BasicMessageChannel<Object?>(
|
|
|
|
final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.HealthKitRawDataHostApi.shareFlutterObserverRecord$pigeonVar_messageChannelSuffix';
|
|
|
|
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
|
|
|
|
pigeonVar_channelName,
|
|
|
|
pigeonChannelCodec,
|
|
|
|
binaryMessenger: pigeonVar_binaryMessenger,
|
...
|
...
|
|