Commit ffa69d854a2a8d46b31461381c4d1c0b04b0ab98

Authored by 权海
1 parent da29459c

feat(ui):修改pigeon api中间层

... ... @@ -135,8 +135,6 @@ private open class HealthKitApiPigeonCodec : StandardMessageCodec() {
/** Generated interface from Pigeon that represents a handler of messages from Flutter. */
interface HealthKitHostApi {
fun getHealthServerAuthUrl(callback: (Result<String>) -> Unit)
fun cancelHealthAppAuthorization(): Boolean
/** Opens Huawei Health client authorization UI. Returns whether user granted. */
fun checkHealthAppAuthorization(callback: (Result<HealthAuthorization>) -> Unit)
fun requestHealthClientAuthorization(callback: (Result<Boolean>) -> Unit)
... ... @@ -151,39 +149,6 @@ interface HealthKitHostApi {
fun setUp(binaryMessenger: BinaryMessenger, api: HealthKitHostApi?, messageChannelSuffix: String = "") {
val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else ""
run {
val channel = BasicMessageChannel<Any?>(binaryMessenger, "dev.flutter.pigeon.doublefeel_flutter.HealthKitHostApi.getHealthServerAuthUrl$separatedMessageChannelSuffix", codec)
if (api != null) {
channel.setMessageHandler { _, reply ->
api.getHealthServerAuthUrl{ result: Result<String> ->
val error = result.exceptionOrNull()
if (error != null) {
reply.reply(HealthKitApiPigeonUtils.wrapError(error))
} else {
val data = result.getOrNull()
reply.reply(HealthKitApiPigeonUtils.wrapResult(data))
}
}
}
} else {
channel.setMessageHandler(null)
}
}
run {
val channel = BasicMessageChannel<Any?>(binaryMessenger, "dev.flutter.pigeon.doublefeel_flutter.HealthKitHostApi.cancelHealthAppAuthorization$separatedMessageChannelSuffix", codec)
if (api != null) {
channel.setMessageHandler { _, reply ->
val wrapped: List<Any?> = try {
listOf(api.cancelHealthAppAuthorization())
} catch (exception: Throwable) {
HealthKitApiPigeonUtils.wrapError(exception)
}
reply.reply(wrapped)
}
} else {
channel.setMessageHandler(null)
}
}
run {
val channel = BasicMessageChannel<Any?>(binaryMessenger, "dev.flutter.pigeon.doublefeel_flutter.HealthKitHostApi.checkHealthAppAuthorization$separatedMessageChannelSuffix", codec)
if (api != null) {
channel.setMessageHandler { _, reply ->
... ...
... ... @@ -181,8 +181,6 @@ class HealthKitApiPigeonCodec: FlutterStandardMessageCodec, @unchecked Sendable
/// Generated protocol from Pigeon that represents a handler of messages from Flutter.
protocol HealthKitHostApi {
func getHealthServerAuthUrl(completion: @escaping (Result<String, Error>) -> Void)
func cancelHealthAppAuthorization() throws -> Bool
/// Opens Huawei Health client authorization UI. Returns whether user granted.
func checkHealthAppAuthorization(completion: @escaping (Result<HealthAuthorization, Error>) -> Void)
func requestHealthClientAuthorization(completion: @escaping (Result<Bool, Error>) -> Void)
... ... @@ -194,34 +192,6 @@ class HealthKitHostApiSetup {
/// Sets up an instance of `HealthKitHostApi` to handle messages through the `binaryMessenger`.
static func setUp(binaryMessenger: FlutterBinaryMessenger, api: HealthKitHostApi?, messageChannelSuffix: String = "") {
let channelSuffix = messageChannelSuffix.count > 0 ? ".\(messageChannelSuffix)" : ""
let getHealthServerAuthUrlChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.doublefeel_flutter.HealthKitHostApi.getHealthServerAuthUrl\(channelSuffix)", binaryMessenger: binaryMessenger, codec: codec)
if let api = api {
getHealthServerAuthUrlChannel.setMessageHandler { _, reply in
api.getHealthServerAuthUrl { result in
switch result {
case .success(let res):
reply(wrapResult(res))
case .failure(let error):
reply(wrapError(error))
}
}
}
} else {
getHealthServerAuthUrlChannel.setMessageHandler(nil)
}
let cancelHealthAppAuthorizationChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.doublefeel_flutter.HealthKitHostApi.cancelHealthAppAuthorization\(channelSuffix)", binaryMessenger: binaryMessenger, codec: codec)
if let api = api {
cancelHealthAppAuthorizationChannel.setMessageHandler { _, reply in
do {
let result = try api.cancelHealthAppAuthorization()
reply(wrapResult(result))
} catch {
reply(wrapError(error))
}
}
} else {
cancelHealthAppAuthorizationChannel.setMessageHandler(nil)
}
/// Opens Huawei Health client authorization UI. Returns whether user granted.
let checkHealthAppAuthorizationChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.doublefeel_flutter.HealthKitHostApi.checkHealthAppAuthorization\(channelSuffix)", binaryMessenger: binaryMessenger, codec: codec)
if let api = api {
... ...
... ... @@ -8,16 +8,6 @@ final class HealthKitHostApiImpl: HealthKitHostApi {
self.service = service
}
func getHealthServerAuthUrl(completion: @escaping (Result<String, Error>) -> Void) {
// Apple Health authorization is system-managed, not URL based.
completion(.success(""))
}
func cancelHealthAppAuthorization() throws -> Bool {
// iOS does not let apps revoke HealthKit permission programmatically.
false
}
func checkHealthAppAuthorization(completion: @escaping (Result<HealthAuthorization, Error>) -> Void) {
Task {
let authorization: HealthAuthorization
... ...
... ... @@ -60,8 +60,13 @@ class AppPlatformHostApi extends _AppPigeonApiFacade {
final platform.PlatformHostApi _api;
Future<String> getFullUserAgent() =>
dispatch(ios: () => _api.getFullUserAgent());
Future<String> getFullUserAgent() => dispatch(
ios: () => _api.getFullUserAgent(),
ohos: () async {
//TODO: - 组装agent
return "";
},
);
Future<bool> isChinaRegion() => dispatch(
ios: () => _api.isChinaRegion(),
... ... @@ -69,11 +74,21 @@ class AppPlatformHostApi extends _AppPigeonApiFacade {
return true;
});
Future<int> getApnsAuthStatus() =>
dispatch(ios: () => _api.getApnsAuthStatus());
Future<int> getApnsAuthStatus() => dispatch(
ios: () => _api.getApnsAuthStatus(),
ohos: () async {
//TODO: - 检查通知权限
return 0;
},
);
Future<bool> requestNotificationAuth() =>
dispatch(ios: () => _api.requestNotificationAuth());
Future<bool> requestNotificationAuth() => dispatch(
ios: () => _api.requestNotificationAuth(),
ohos: () async {
//TODO: - 请求通知权限
return false;
},
);
Future<bool> isDebugEnvoriment() => dispatch(
ios: () => _api.isDebugEnvoriment(),
... ... @@ -81,61 +96,125 @@ class AppPlatformHostApi extends _AppPigeonApiFacade {
return false;
});
Future<bool> shareText(String text) =>
dispatch(ios: () => _api.shareText(text));
Future<bool> shareText(String text) => dispatch(
ios: () => _api.shareText(text),
ohos: () async {
//TODO: - 分享文本(配对信息)
return false;
});
Future<bool> shareFileData(Uint8List databytes) =>
dispatch(ios: () => _api.shareFileData(databytes));
Future<bool> shareFileData(Uint8List databytes) => dispatch(
ios: () => _api.shareFileData(databytes),
ohos: () async {
return false;
});
Future<void> updateLoginInfo(String jsonString, String baseUrl) =>
dispatch(ios: () => _api.updateLoginInfo(jsonString, baseUrl));
Future<void> updateLoginInfo(String jsonString, String baseUrl) => dispatch(
ios: () => _api.updateLoginInfo(jsonString, baseUrl),
ohos: () async {
return;
});
Future<void> logout() => dispatch(ios: () => _api.logout());
Future<void> logout() => dispatch(
ios: () => _api.logout(),
ohos: () async {
return;
});
Future<void> refreshVip() => dispatch(ios: () => _api.refreshVip());
Future<void> refreshVip() => dispatch(
ios: () => _api.refreshVip(),
ohos: () async {
return;
});
Future<void> refreshWatchAppAndWidgets() =>
dispatch(ios: () => _api.refreshWatchAppAndWidgets());
Future<void> refreshWatchAppAndWidgets() => dispatch(
ios: () => _api.refreshWatchAppAndWidgets(),
ohos: () async {
return;
});
Future<bool> requestAppReview() =>
dispatch(ios: () => _api.requestAppReview());
Future<bool> requestAppReview() => dispatch(
ios: () => _api.requestAppReview(),
ohos: () async {
return false;
});
Future<bool> jumpAppSetting() => dispatch(ios: () => _api.jumpAppSetting());
Future<bool> jumpAppSetting() => dispatch(
ios: () => _api.jumpAppSetting(),
ohos: () async {
return false;
});
Future<bool> nativeHandleUrl(String urlString) =>
dispatch(ios: () => _api.nativeHandleUrl(urlString));
Future<bool> nativeHandleUrl(String urlString) => dispatch(
ios: () => _api.nativeHandleUrl(urlString),
ohos: () async {
//TODO: - 处理url跳转
return false;
});
Future<String?> requestUnhandedUrl() =>
dispatch(ios: () => _api.requestUnhandedUrl());
Future<String?> requestUnhandedUrl() => dispatch(
ios: () => _api.requestUnhandedUrl(),
ohos: () async {
//TODO: - 请求未处理的url(通知点击启动app后,启动flutter引擎交给flutter处理url)
return null;
});
Future<platform.AppleSignInModel?> requestAppleSignIn() =>
dispatch(ios: () => _api.requestAppleSignIn());
Future<platform.AppleSignInModel?> requestAppleSignIn() => dispatch(
ios: () => _api.requestAppleSignIn(),
ohos: () async {
return null;
});
Future<platform.GoogleSignInModel?> requestGoogleSignIn() =>
dispatch(ios: () => _api.requestGoogleSignIn());
Future<platform.GoogleSignInModel?> requestGoogleSignIn() => dispatch(
ios: () => _api.requestGoogleSignIn(),
ohos: () async {
return null;
});
Future<bool> sendEmail(String mailTo, String title, String content) =>
dispatch(ios: () => _api.sendEmail(mailTo, title, content));
dispatch(
ios: () => _api.sendEmail(mailTo, title, content),
ohos: () async {
//TODO: - 发送邮件
return false;
});
Future<platform.AppleProductInfo?> requestAppleProductInfo(
String productId,
int baseUnit,
) =>
dispatch(ios: () => _api.requestAppleProductInfo(productId, baseUnit));
dispatch(
ios: () => _api.requestAppleProductInfo(productId, baseUnit),
ohos: () async {
return null;
});
Future<platform.AppleProductPaymentResult?> performApplePayment(
String productId,
String uuid,
) =>
dispatch(ios: () => _api.performApplePayment(productId, uuid));
dispatch(
ios: () => _api.performApplePayment(productId, uuid),
ohos: () async {
return null;
});
Future<bool> performRestore() => dispatch(ios: () => _api.performRestore());
Future<bool> performRestore() => dispatch(
ios: () => _api.performRestore(),
ohos: () async {
return false;
});
Future<String?> uploadFile(
String filePath,
platform.HResourceType resourceType,
) =>
dispatch(ios: () => _api.uploadFile(filePath, resourceType));
dispatch(
ios: () => _api.uploadFile(filePath, resourceType),
ohos: () async {
//TODO: - 上传文件(头像)
return null;
});
Future<String?> performCropImage(
String imageUrl,
... ... @@ -144,7 +223,10 @@ class AppPlatformHostApi extends _AppPigeonApiFacade {
int? height,
) =>
dispatch(
ios: () => _api.performCropImage(imageUrl, maxKB, width, height));
ios: () => _api.performCropImage(imageUrl, maxKB, width, height),
ohos: () async {
return null;
});
Future<bool> sendLocalNotification(
int dataType,
... ... @@ -154,9 +236,12 @@ class AppPlatformHostApi extends _AppPigeonApiFacade {
String link,
) =>
dispatch(
ios: () => _api.sendLocalNotification(
dataType, dateTime, title, content, link),
);
ios: () => _api.sendLocalNotification(
dataType, dateTime, title, content, link),
ohos: () async {
//TODO: - 发送本地通知
return false;
});
}
class AppHealthKitHostApi extends _AppPigeonApiFacade {
... ... @@ -168,17 +253,20 @@ class AppHealthKitHostApi extends _AppPigeonApiFacade {
final health_kit.HealthKitHostApi _api;
Future<String> getHealthServerAuthUrl() =>
dispatch(ios: () => _api.getHealthServerAuthUrl());
Future<bool> cancelHealthAppAuthorization() =>
dispatch(ios: () => _api.cancelHealthAppAuthorization());
Future<health_kit.HealthAuthorization> checkHealthAppAuthorization() =>
dispatch(ios: () => _api.checkHealthAppAuthorization());
Future<bool> requestHealthClientAuthorization() =>
dispatch(ios: () => _api.requestHealthClientAuthorization());
dispatch(
ios: () => _api.checkHealthAppAuthorization(),
ohos: () async {
//TODO: - 检查华为健康授权状态
return health_kit.HealthAuthorization(status: -1, hasData: false);
});
Future<bool> requestHealthClientAuthorization() => dispatch(
ios: () => _api.requestHealthClientAuthorization(),
ohos: () async {
//TODO: - 请求华为健康授权
return false;
});
}
class AppHealthKitRawDataHostApi extends _AppPigeonApiFacade {
... ... @@ -199,10 +287,17 @@ class AppHealthKitRawDataHostApi extends _AppPigeonApiFacade {
) =>
dispatch(
ios: () => _api.getHealthKitRawData(dataType, startTime, endTime),
ohos: () async {
//TODO: - 获取华为健康原始数据
return [];
},
);
Future<bool> performHealthDataUpload() =>
dispatch(ios: () => _api.performHealthDataUpload());
Future<bool> performHealthDataUpload() => dispatch(
ios: () => _api.performHealthDataUpload(),
ohos: () async {
return false;
});
Future<bool> syncDatabase({
required String hrDataPath,
... ... @@ -211,45 +306,64 @@ class AppHealthKitRawDataHostApi extends _AppPigeonApiFacade {
required String avgRealtimeStressDataPath,
}) =>
dispatch(
ios: () => _api.syncDatabase(
hrDataPath: hrDataPath,
hrvDataPath: hrvDataPath,
sleepDataPath: sleepDataPath,
avgRealtimeStressDataPath: avgRealtimeStressDataPath,
),
);
ios: () => _api.syncDatabase(
hrDataPath: hrDataPath,
hrvDataPath: hrvDataPath,
sleepDataPath: sleepDataPath,
avgRealtimeStressDataPath: avgRealtimeStressDataPath,
),
ohos: () async {
return false;
});
Future<int> performHRDataUpload({required String sqliteFilePath}) => dispatch(
ios: () => _api.performHRDataUpload(sqliteFilePath: sqliteFilePath),
);
ios: () => _api.performHRDataUpload(sqliteFilePath: sqliteFilePath),
ohos: () async {
//TODO: - 上传HR数据
return 0;
});
Future<int> performHRVDataUpload({required String sqliteFilePath}) =>
dispatch(
ios: () => _api.performHRVDataUpload(sqliteFilePath: sqliteFilePath),
);
ios: () => _api.performHRVDataUpload(sqliteFilePath: sqliteFilePath),
ohos: () async {
//TODO: - 上传HRV数据
return 0;
});
Future<int> performSleepAnalysisDataUpload(
{required String sqliteFilePath}) =>
dispatch(
ios: () => _api.performSleepAnalysisDataUpload(
sqliteFilePath: sqliteFilePath,
),
);
ios: () => _api.performSleepAnalysisDataUpload(
sqliteFilePath: sqliteFilePath,
),
ohos: () async {
//TODO: - 上传睡眠数据
return 0;
});
Future<int> performAvgRealtimeStressDataUpload({
required String sqliteFilePath,
}) =>
dispatch(
ios: () => _api.performAvgRealtimeStressDataUpload(
sqliteFilePath: sqliteFilePath,
),
);
ios: () => _api.performAvgRealtimeStressDataUpload(
sqliteFilePath: sqliteFilePath,
),
ohos: () async {
//TODO: - 上传平均实时压力数据
return 0;
});
Future<List<health_raw.HealthKitRawSleepDataPoint>> getHealthKitRawSleepData(
int startTime,
int endTime,
) =>
dispatch(ios: () => _api.getHealthKitRawSleepData(startTime, endTime));
dispatch(
ios: () => _api.getHealthKitRawSleepData(startTime, endTime),
ohos: () async {
//TODO: - 获取华为健康原始睡眠数据
return [];
});
Future<List<health_raw.HealthKitRawActivityDataPoint>>
getHealthKitRawActivityData(
... ... @@ -257,8 +371,11 @@ class AppHealthKitRawDataHostApi extends _AppPigeonApiFacade {
int endTime,
) =>
dispatch(
ios: () => _api.getHealthKitRawActivityData(startTime, endTime),
);
ios: () => _api.getHealthKitRawActivityData(startTime, endTime),
ohos: () async {
//TODO: - 获取华为健康原始活动数据
return [];
});
Future<List<health_raw.HealthKitRawWorkoutDataPoint>>
getHealthKitRawWorkoutData(
... ... @@ -266,8 +383,11 @@ class AppHealthKitRawDataHostApi extends _AppPigeonApiFacade {
int endTime,
) =>
dispatch(
ios: () => _api.getHealthKitRawWorkoutData(startTime, endTime),
);
ios: () => _api.getHealthKitRawWorkoutData(startTime, endTime),
ohos: () async {
//TODO: - 获取华为健康原始锻炼数据
return [];
});
Future<bool> saveNativeCallFlutterChange({
required List<int> relativeDataTypes,
... ... @@ -276,6 +396,7 @@ class AppHealthKitRawDataHostApi extends _AppPigeonApiFacade {
ios: () => _api.saveNativeCallFlutterChange(
relativeDataTypes: relativeDataTypes,
),
ohos: () => Future.value(false),
);
Future<bool> saveFlutterCaculateFinished({
... ... @@ -285,6 +406,7 @@ class AppHealthKitRawDataHostApi extends _AppPigeonApiFacade {
ios: () => _api.saveFlutterCaculateFinished(
relativeDataTypes: relativeDataTypes,
),
ohos: () => Future.value(false),
);
Future<bool> saveLocalNotificationRecord({
... ... @@ -296,24 +418,30 @@ class AppHealthKitRawDataHostApi extends _AppPigeonApiFacade {
notificationType: notificationType,
timestamp: timestamp,
),
ohos: () => Future.value(false),
);
Future<bool> shareNativeAppleHealthObserverRecord() =>
dispatch(ios: () => _api.shareNativeAppleHealthObserverRecord());
Future<bool> shareNativeAppleHealthObserverRecord() => dispatch(
ios: () => _api.shareNativeAppleHealthObserverRecord(),
ohos: () => Future.value(false));
Future<bool> saveLocalNotificationDebugEvent({
required Map<String, Object?> event,
}) =>
dispatch(ios: () => _api.saveLocalNotificationDebugEvent(event: event));
dispatch(
ios: () => _api.saveLocalNotificationDebugEvent(event: event),
ohos: () => Future.value(false));
Future<bool> shareFlutterObserverRecord() =>
dispatch(ios: () => _api.shareFlutterObserverRecord());
Future<bool> shareFlutterObserverRecord() => dispatch(
ios: () => _api.shareFlutterObserverRecord(),
ohos: () => Future.value(false));
Future<bool> shareLocalNotificationDebugRecord() =>
dispatch(ios: () => _api.shareLocalNotificationDebugRecord());
Future<bool> shareLocalNotificationDebugRecord() => dispatch(
ios: () => _api.shareLocalNotificationDebugRecord(),
ohos: () => Future.value(false));
Future<bool> shareUploadTaskRecord() =>
dispatch(ios: () => _api.shareUploadTaskRecord());
Future<bool> shareUploadTaskRecord() => dispatch(
ios: () => _api.shareUploadTaskRecord(), ohos: () => Future.value(false));
}
class AppWearEngineHostApi extends _AppPigeonApiFacade {
... ... @@ -325,39 +453,31 @@ class AppWearEngineHostApi extends _AppPigeonApiFacade {
final wear.WearEngineHostApi _api;
Future<bool> hasAvailableDevices() =>
dispatch(ios: () => _api.hasAvailableDevices());
Future<wear.WearDeviceInfo?> checkConnectedDevice() =>
dispatch(ios: () => _api.checkConnectedDevice());
Future<bool> registerMessageReceiver() =>
dispatch(ios: () => _api.registerMessageReceiver());
Future<bool> hasAvailableDevices() => dispatch(
ios: () => _api.hasAvailableDevices(), ohos: () => Future.value(false));
Future<bool> sendTextMessage(String message) =>
dispatch(ios: () => _api.sendTextMessage(message));
Future<wear.WearDeviceInfo?> checkConnectedDevice() => dispatch(
ios: () => _api.checkConnectedDevice(), ohos: () => Future.value(null));
Future<bool> addWatchSurface() => dispatch(ios: () => _api.addWatchSurface());
Future<bool> registerMessageReceiver() => dispatch(
ios: () => _api.registerMessageReceiver(),
ohos: () => Future.value(false));
Future<bool> syncWatchTheme(wear.WatchTransformTheme? theme) =>
dispatch(ios: () => _api.syncWatchTheme(theme));
Future<bool> sendTextMessage(String message) => dispatch(
ios: () => _api.sendTextMessage(message),
ohos: () => Future.value(false));
Future<String?> removeBackground(String originImagePath) =>
dispatch(ios: () => _api.removeBackground(originImagePath));
Future<bool> addWatchSurface() => dispatch(
ios: () => _api.addWatchSurface(), ohos: () => Future.value(false));
Future<bool> hasInstalledWatchSurface() =>
dispatch(ios: () => _api.hasInstalledWatchSurface());
}
class AppAlipayHostApi extends _AppPigeonApiFacade {
AppAlipayHostApi({
alipay.AlipayHostApi? api,
super.appPlatform,
super.platformProvider,
}) : _api = api ?? alipay.AlipayHostApi();
Future<bool> syncWatchTheme(wear.WatchTransformTheme? theme) => dispatch(
ios: () => _api.syncWatchTheme(theme), ohos: () => Future.value(false));
final alipay.AlipayHostApi _api;
Future<String?> removeBackground(String originImagePath) => dispatch(
ios: () => _api.removeBackground(originImagePath),
ohos: () => Future.value(null));
Future<alipay.AliPayResultCode> launchAliPay(String prepayData) =>
dispatch(ios: () => _api.launchAliPay(prepayData));
Future<bool> hasInstalledWatchSurface() => dispatch(
ios: () => _api.hasInstalledWatchSurface(),
ohos: () => Future.value(false));
}
... ...
... ... @@ -117,62 +117,6 @@ class HealthKitHostApi {
final String pigeonVar_messageChannelSuffix;
Future<String> getHealthServerAuthUrl() async {
final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.HealthKitHostApi.getHealthServerAuthUrl$pigeonVar_messageChannelSuffix';
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
pigeonVar_channelName,
pigeonChannelCodec,
binaryMessenger: pigeonVar_binaryMessenger,
);
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(null);
final List<Object?>? pigeonVar_replyList =
await pigeonVar_sendFuture as List<Object?>?;
if (pigeonVar_replyList == null) {
throw _createConnectionError(pigeonVar_channelName);
} else if (pigeonVar_replyList.length > 1) {
throw PlatformException(
code: pigeonVar_replyList[0]! as String,
message: pigeonVar_replyList[1] as String?,
details: pigeonVar_replyList[2],
);
} else if (pigeonVar_replyList[0] == null) {
throw PlatformException(
code: 'null-error',
message: 'Host platform returned null value for non-null return value.',
);
} else {
return (pigeonVar_replyList[0] as String?)!;
}
}
Future<bool> cancelHealthAppAuthorization() async {
final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.HealthKitHostApi.cancelHealthAppAuthorization$pigeonVar_messageChannelSuffix';
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
pigeonVar_channelName,
pigeonChannelCodec,
binaryMessenger: pigeonVar_binaryMessenger,
);
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(null);
final List<Object?>? pigeonVar_replyList =
await pigeonVar_sendFuture as List<Object?>?;
if (pigeonVar_replyList == null) {
throw _createConnectionError(pigeonVar_channelName);
} else if (pigeonVar_replyList.length > 1) {
throw PlatformException(
code: pigeonVar_replyList[0]! as String,
message: pigeonVar_replyList[1] as String?,
details: pigeonVar_replyList[2],
);
} else if (pigeonVar_replyList[0] == null) {
throw PlatformException(
code: 'null-error',
message: 'Host platform returned null value for non-null return value.',
);
} else {
return (pigeonVar_replyList[0] as bool?)!;
}
}
/// Opens Huawei Health client authorization UI. Returns whether user granted.
Future<HealthAuthorization> checkHealthAppAuthorization() async {
final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.HealthKitHostApi.checkHealthAppAuthorization$pigeonVar_messageChannelSuffix';
... ...
... ... @@ -135,10 +135,6 @@ export interface Result<T> {
}
/* Generated abstract class from Pigeon that represents a handler of messages from Flutter.*/
export abstract class HealthKitHostApi {
abstract getHealthServerAuthUrl(result: Result<string>): void;
abstract cancelHealthAppAuthorization(): boolean;
/* Opens Huawei Health client authorization UI. Returns whether user granted.*/
abstract checkHealthAppAuthorization(result: Result<HealthAuthorization>): void;
... ... @@ -153,54 +149,6 @@ export abstract class HealthKitHostApi {
{
let channel: BasicMessageChannel<Object> =
new BasicMessageChannel(
binaryMessenger, 'dev.flutter.pigeon.doublefeel_flutter.HealthKitHostApi.getHealthServerAuthUrl' + separatedMessageChannelSuffix, HealthKitHostApi.getCodec());
if (api != null) {
channel.setMessageHandler({
onMessage(message: Object, reply: Reply<Object>) {
class ResultImp implements Result<string>{
success(result: string): void {
let res: Array<Object | null> = [];
res.push(result);
reply.reply(res);
}
error(error: Error): void {
let wrappedError: Array<Object | null> = wrapError(error);
reply.reply(wrappedError);
}
}
let resultCallback: Result<string> = new ResultImp();
api!.getHealthServerAuthUrl(resultCallback);
} });
} else {
channel.setMessageHandler(null);
}
}
{
let channel: BasicMessageChannel<Object> =
new BasicMessageChannel(
binaryMessenger, 'dev.flutter.pigeon.doublefeel_flutter.HealthKitHostApi.cancelHealthAppAuthorization' + separatedMessageChannelSuffix, HealthKitHostApi.getCodec());
if (api != null) {
channel.setMessageHandler({
onMessage(message: Object, reply: Reply<Object>) {
let res: Array<Object | null> = [];
try {
let output: boolean = api!.cancelHealthAppAuthorization();
res.push(output);
} catch (error) {
let wrappedError: Array<Object | null> = wrapError(error);
res = wrappedError;
}
reply.reply(res);
} });
} else {
channel.setMessageHandler(null);
}
}
{
let channel: BasicMessageChannel<Object> =
new BasicMessageChannel(
binaryMessenger, 'dev.flutter.pigeon.doublefeel_flutter.HealthKitHostApi.checkHealthAppAuthorization' + separatedMessageChannelSuffix, HealthKitHostApi.getCodec());
if (api != null) {
channel.setMessageHandler({
... ...
... ... @@ -27,15 +27,6 @@ class HealthAuthorization {
)
@HostApi()
abstract class HealthKitHostApi {
// @optional
@async
String getHealthServerAuthUrl();
bool cancelHealthAppAuthorization();
// @required
/// Opens Huawei Health client authorization UI. Returns whether user granted.
@async
... ... @@ -43,87 +34,4 @@ abstract class HealthKitHostApi {
@async
bool requestHealthClientAuthorization();
/*
///测试使用- 导出本地存储的observer日志
@async
bool exportHealthObserverRecord();
/// Runs native health read and server upload pipeline.
@async
HealthUploadResult performHealthUpload();
@async
List<HealthUploadDataPoint> fetchHrvData(int startTime, int endTime);
@async
List<HealthUploadDataPoint> fetchHeartRateData(int startTime, int endTime);
@async
List<HealthUploadDataPoint> fetchWalkingHeartRateData(
int startTime,
int endTime,
);
@async
List<HealthUploadDataPoint> fetchRestingHeartRateData(
int startTime,
int endTime,
);
@async
List<HealthUploadDataPoint> fetchSleepingHeartRateData(
int startTime,
int endTime,
);
@async
List<HealthUploadDataPoint> fetchOxygenSaturationData(
int startTime,
int endTime,
);
@async
List<HealthUploadDataPoint> fetchActiveEnergyData(
int startTime,
int endTime,
);
@async
List<HealthUploadDataPoint> fetchExerciseData(int startTime, int endTime);
@async
List<HealthUploadDataPoint> fetchStandData(int startTime, int endTime);
@async
List<HealthUploadDataPoint> fetchStepCountData(int startTime, int endTime);
@async
List<HealthSleepUploadDataPoint> fetchSleepData(int startTime, int endTime);
@async
List<HealthUploadDataPoint> fetchSleepingWristTemperatureData(
int startTime,
int endTime,
);
@async
List<HealthUploadDataPoint> fetchRespiratoryRateData(
int startTime,
int endTime,
);
@async
List<HealthUploadDataPoint> fetchIrregularHeartRhythmData(
int startTime,
int endTime,
);
@async
HealthActivityTargetData? fetchActivityTargetData(
int startTime,
int endTime,
);
*/
}
... ...
... ... @@ -6,7 +6,7 @@ packages:
description:
name: _fe_analyzer_shared
sha256: da0d9209ca76bde579f2da330aeb9df62b6319c834fa7baae052021b0462401f
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "85.0.0"
analyzer:
... ... @@ -14,7 +14,7 @@ packages:
description:
name: analyzer
sha256: "974859dc0ff5f37bc4313244b3218c791810d03ab3470a579580279ba971a48d"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "7.7.1"
archive:
... ... @@ -22,7 +22,7 @@ packages:
description:
name: archive
sha256: ace891da0862b0e4cabbb064ee3fd87b2728b898949fdb366d83fe98342c9f19
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.2.0"
args:
... ... @@ -30,7 +30,7 @@ packages:
description:
name: args
sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.7.0"
async:
... ... @@ -38,7 +38,7 @@ packages:
description:
name: async
sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.13.1"
boolean_selector:
... ... @@ -46,7 +46,7 @@ packages:
description:
name: boolean_selector
sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.2"
build:
... ... @@ -54,7 +54,7 @@ packages:
description:
name: build
sha256: "825fed4d63050252a0b6e74f2d75844c4a85b664814be6993bd3493fb5239779"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.0.1"
build_config:
... ... @@ -62,7 +62,7 @@ packages:
description:
name: build_config
sha256: "4f64382b97504dc2fcdf487d5aae33418e08b4703fc21249e4db6d804a4d0187"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.2.0"
build_daemon:
... ... @@ -70,7 +70,7 @@ packages:
description:
name: build_daemon
sha256: fd754058c342243718d5171a95f352cfc9fcf0cba8cfa26df67cb13a5836db78
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.1.2"
build_runner:
... ... @@ -78,7 +78,7 @@ packages:
description:
name: build_runner
sha256: "4e54dbeefdc70691ba80b3bce3976af63b5425c8c07dface348dfee664a0edc1"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.9.0"
built_collection:
... ... @@ -86,7 +86,7 @@ packages:
description:
name: built_collection
sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "5.1.1"
built_value:
... ... @@ -94,7 +94,7 @@ packages:
description:
name: built_value
sha256: "31b24be6615ec7fcf70b3aa5a7469fe35826485e639a16dd7eb83ba30e4cc6a8"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "8.12.7"
cached_network_image:
... ... @@ -102,7 +102,7 @@ packages:
description:
name: cached_network_image
sha256: "7c1183e361e5c8b0a0f21a28401eecdbde252441106a9816400dd4c2b2424916"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.4.1"
cached_network_image_platform_interface:
... ... @@ -110,7 +110,7 @@ packages:
description:
name: cached_network_image_platform_interface
sha256: "35814b016e37fbdc91f7ae18c8caf49ba5c88501813f73ce8a07027a395e2829"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.1.1"
cached_network_image_web:
... ... @@ -118,7 +118,7 @@ packages:
description:
name: cached_network_image_web
sha256: "980842f4e8e2535b8dbd3d5ca0b1f0ba66bf61d14cc3a17a9b4788a3685ba062"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.3.1"
characters:
... ... @@ -126,7 +126,7 @@ packages:
description:
name: characters
sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.4.0"
checked_yaml:
... ... @@ -134,7 +134,7 @@ packages:
description:
name: checked_yaml
sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.4"
clock:
... ... @@ -142,7 +142,7 @@ packages:
description:
name: clock
sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.2"
code_assets:
... ... @@ -150,7 +150,7 @@ packages:
description:
name: code_assets
sha256: cfd4f5f575a49c5f10ca856e9846073f1e6c3ee94912377eea5f6cefc5272941
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.0"
code_builder:
... ... @@ -158,7 +158,7 @@ packages:
description:
name: code_builder
sha256: "6a6cab2ba4680d6423f34a9b972a4c9a94ebe1b62ecec4e1a1f2cba91fd1319d"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.11.1"
collection:
... ... @@ -166,7 +166,7 @@ packages:
description:
name: collection
sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.19.1"
convert:
... ... @@ -174,7 +174,7 @@ packages:
description:
name: convert
sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.1.2"
cross_file:
... ... @@ -182,7 +182,7 @@ packages:
description:
name: cross_file
sha256: f141ea4f277af142a0356955707f6556f37b03947d39d55585981a06ca437bd6
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.3.5+5"
crypto:
... ... @@ -190,7 +190,7 @@ packages:
description:
name: crypto
sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.7"
cupertino_icons:
... ... @@ -198,7 +198,7 @@ packages:
description:
name: cupertino_icons
sha256: "41e005c33bd814be4d3096aff55b1908d419fde52ca656c8c47719ec745873cd"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.9"
dart_style:
... ... @@ -206,7 +206,7 @@ packages:
description:
name: dart_style
sha256: "8a0e5fba27e8ee025d2ffb4ee820b4e6e2cf5e4246a6b1a477eb66866947e0bb"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.1.1"
dio:
... ... @@ -214,7 +214,7 @@ packages:
description:
name: dio
sha256: "0df44ebba85e503958eb75d07eedd3c86275a58c1d3eda2f2ce8f0a2c3abbb3c"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "5.11.0"
dio_web_adapter:
... ... @@ -222,7 +222,7 @@ packages:
description:
name: dio_web_adapter
sha256: "0786d0b7295a373de356fc0af4f6f1d0ab2844ed31b19dfc5e7556b70e24212c"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.2.1"
equatable:
... ... @@ -230,7 +230,7 @@ packages:
description:
name: equatable
sha256: "3bce007a596ff8b3119c45d68aaef631272537c03d30e5d4534dd24bf4c5eaa2"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.0"
fake_async:
... ... @@ -238,7 +238,7 @@ packages:
description:
name: fake_async
sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.3.3"
ffi:
... ... @@ -246,7 +246,7 @@ packages:
description:
name: ffi
sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.2.0"
file:
... ... @@ -254,7 +254,7 @@ packages:
description:
name: file
sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "7.0.1"
file_selector_linux:
... ... @@ -262,7 +262,7 @@ packages:
description:
name: file_selector_linux
sha256: "2567f398e06ac72dcf2e98a0c95df2a9edd03c2c2e0cacd4780f20cdf56263a0"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.9.4"
file_selector_macos:
... ... @@ -270,7 +270,7 @@ packages:
description:
name: file_selector_macos
sha256: "5e0bbe9c312416f1787a68259ea1505b52f258c587f12920422671807c4d618a"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.9.5"
file_selector_platform_interface:
... ... @@ -278,7 +278,7 @@ packages:
description:
name: file_selector_platform_interface
sha256: "35e0bd61ebcdb91a3505813b055b09b79dfdc7d0aee9c09a7ba59ae4bb13dc85"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.7.0"
file_selector_windows:
... ... @@ -286,7 +286,7 @@ packages:
description:
name: file_selector_windows
sha256: "62197474ae75893a62df75939c777763d39c2bc5f73ce5b88497208bc269abfd"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.9.3+5"
fixnum:
... ... @@ -294,7 +294,7 @@ packages:
description:
name: fixnum
sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.1"
fl_chart:
... ... @@ -302,7 +302,7 @@ packages:
description:
name: fl_chart
sha256: "5276944c6ffc975ae796569a826c38a62d2abcf264e26b88fa6f482e107f4237"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.70.2"
flutter:
... ... @@ -315,7 +315,7 @@ packages:
description:
name: flutter_cache_manager
sha256: "1de7849213b4c73c85aca7e0ac687a9a5d82ccdb594366b9dcc26cb6a2189cd2"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.4.2"
flutter_lints:
... ... @@ -323,7 +323,7 @@ packages:
description:
name: flutter_lints
sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "5.0.0"
flutter_localizations:
... ... @@ -336,7 +336,7 @@ packages:
description:
name: flutter_plugin_android_lifecycle
sha256: "3854fe5e3bff0b113c658f260b90c95dea17c92db0f2addeac2e343dd9969785"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.35"
flutter_test:
... ... @@ -349,7 +349,7 @@ packages:
description:
name: flutter_timezone
sha256: "869677426fde92dbe170fb7d2d4929f2a8343c2f5f62f08b0bb64f908630b073"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "5.1.0"
flutter_web_plugins:
... ... @@ -362,7 +362,7 @@ packages:
description:
name: fluttertoast
sha256: "90778fe0497fe3a09166e8cf2e0867310ff434b794526589e77ec03cf08ba8e8"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "8.2.14"
get:
... ... @@ -370,7 +370,7 @@ packages:
description:
name: get
sha256: "5ed34a7925b85336e15d472cc4cfe7d9ebf4ab8e8b9f688585bf6b50f4c3d79a"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.7.3"
glob:
... ... @@ -378,7 +378,7 @@ packages:
description:
name: glob
sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.3"
graphs:
... ... @@ -386,7 +386,7 @@ packages:
description:
name: graphs
sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.3.2"
hooks:
... ... @@ -394,7 +394,7 @@ packages:
description:
name: hooks
sha256: eaac480a35ec0814146c2c48d96aaa829e0e44a7662c88ae84c9edf4bc35651f
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.2.0"
http:
... ... @@ -402,7 +402,7 @@ packages:
description:
name: http
sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.6.0"
http_multi_server:
... ... @@ -410,7 +410,7 @@ packages:
description:
name: http_multi_server
sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.2.2"
http_parser:
... ... @@ -418,7 +418,7 @@ packages:
description:
name: http_parser
sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.1.2"
image_cropper:
... ... @@ -426,7 +426,7 @@ packages:
description:
name: image_cropper
sha256: "4e9c96c029eb5a23798da1b6af39787f964da6ffc78fd8447c140542a9f7c6fc"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "9.1.0"
image_cropper_for_web:
... ... @@ -434,7 +434,7 @@ packages:
description:
name: image_cropper_for_web
sha256: fd81ebe36f636576094377aab32673c4e5d1609b32dec16fad98d2b71f1250a9
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "6.1.0"
image_cropper_platform_interface:
... ... @@ -442,7 +442,7 @@ packages:
description:
name: image_cropper_platform_interface
sha256: "6ca6b81769abff9a4dcc3bbd3d75f5dfa9de6b870ae9613c8cd237333a4283af"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "7.1.0"
image_picker:
... ... @@ -450,7 +450,7 @@ packages:
description:
name: image_picker
sha256: d8402284df184bc05f4a2210c6c23983b0720f4cd87cbd05c5390a78af602667
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.2.3"
image_picker_android:
... ... @@ -458,7 +458,7 @@ packages:
description:
name: image_picker_android
sha256: d5b3e1774af29c9ab00103afb0d4614070f924d2e0057ac867ec98800114793f
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.8.13+17"
image_picker_for_web:
... ... @@ -466,7 +466,7 @@ packages:
description:
name: image_picker_for_web
sha256: "66257a3191ab360d23a55c8241c91a6e329d31e94efa7be9cf7a212e65850214"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.1.1"
image_picker_ios:
... ... @@ -474,7 +474,7 @@ packages:
description:
name: image_picker_ios
sha256: b9c4a438a9ff4f60808c9cf0039b93a42bb6c2211ef6ebb647394b2b3fa84588
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.8.13+6"
image_picker_linux:
... ... @@ -482,7 +482,7 @@ packages:
description:
name: image_picker_linux
sha256: "1f81c5f2046b9ab724f85523e4af65be1d47b038160a8c8deed909762c308ed4"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.2.2"
image_picker_macos:
... ... @@ -490,7 +490,7 @@ packages:
description:
name: image_picker_macos
sha256: "86f0f15a309de7e1a552c12df9ce5b59fe927e71385329355aec4776c6a8ec91"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.2.2+1"
image_picker_ohos:
... ... @@ -507,7 +507,7 @@ packages:
description:
name: image_picker_platform_interface
sha256: "567e056716333a1647c64bb6bd873cff7622233a5c3f694be28a583d4715690c"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.11.1"
image_picker_windows:
... ... @@ -515,7 +515,7 @@ packages:
description:
name: image_picker_windows
sha256: d248c86554a72b5495a31c56f060cf73a41c7ff541689327b1a7dbccc33adfae
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.2.2"
intl:
... ... @@ -523,7 +523,7 @@ packages:
description:
name: intl
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.20.2"
io:
... ... @@ -531,7 +531,7 @@ packages:
description:
name: io
sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.5"
jni:
... ... @@ -539,7 +539,7 @@ packages:
description:
name: jni
sha256: f038e58b4dc2c9037f50e233175086337e0b305e356d28211bf55f21c504cbd3
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.3"
jni_flutter:
... ... @@ -547,7 +547,7 @@ packages:
description:
name: jni_flutter
sha256: "7b717011ea40d04fd47c2731d3d1d36eb99eba3435c2753d62489e8c3c9991d5"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.2"
jni_util:
... ... @@ -555,7 +555,7 @@ packages:
description:
name: jni_util
sha256: "1ba86da04a5f2bf18fde2edb235587e70c5b0fc5bd4ba955f46b00942c3fc35f"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.0"
json_annotation:
... ... @@ -563,7 +563,7 @@ packages:
description:
name: json_annotation
sha256: "2a743920d81b7910627f68ee2c9ac1fc0bfee32b9fc3403587d7c6791ca12f80"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.12.0"
leak_tracker:
... ... @@ -571,7 +571,7 @@ packages:
description:
name: leak_tracker
sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "11.0.2"
leak_tracker_flutter_testing:
... ... @@ -579,7 +579,7 @@ packages:
description:
name: leak_tracker_flutter_testing
sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.10"
leak_tracker_testing:
... ... @@ -587,7 +587,7 @@ packages:
description:
name: leak_tracker_testing
sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.2"
lints:
... ... @@ -595,7 +595,7 @@ packages:
description:
name: lints
sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "5.1.1"
logger:
... ... @@ -603,7 +603,7 @@ packages:
description:
name: logger
sha256: "25aee487596a6257655a1e091ec2ae66bc30e7af663592cc3a27e6591e05035c"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.7.0"
logging:
... ... @@ -611,7 +611,7 @@ packages:
description:
name: logging
sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.3.0"
lottie:
... ... @@ -619,7 +619,7 @@ packages:
description:
name: lottie
sha256: c5fa04a80a620066c15cf19cc44773e19e9b38e989ff23ea32e5903ef1015950
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.3.1"
matcher:
... ... @@ -627,7 +627,7 @@ packages:
description:
name: matcher
sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.12.17"
material_color_utilities:
... ... @@ -635,7 +635,7 @@ packages:
description:
name: material_color_utilities
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.11.1"
meta:
... ... @@ -643,7 +643,7 @@ packages:
description:
name: meta
sha256: "307249ce4ff29d58a18e97f6345f539382eb9c9c29ecda628900f31de0443dd9"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.19.0"
mime:
... ... @@ -651,7 +651,7 @@ packages:
description:
name: mime
sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.0"
objective_c:
... ... @@ -659,7 +659,7 @@ packages:
description:
name: objective_c
sha256: ad56fd53a78ff6b1472fa59ff2a4e8b8ccabafc586fc263a1dfad0b99b5553e3
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "9.6.0"
octo_image:
... ... @@ -667,7 +667,7 @@ packages:
description:
name: octo_image
sha256: "34faa6639a78c7e3cbe79be6f9f96535867e879748ade7d17c9b1ae7536293bd"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.0"
package_config:
... ... @@ -675,7 +675,7 @@ packages:
description:
name: package_config
sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.2.0"
path:
... ... @@ -683,7 +683,7 @@ packages:
description:
name: path
sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.9.1"
path_provider:
... ... @@ -691,7 +691,7 @@ packages:
description:
name: path_provider
sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.5"
path_provider_android:
... ... @@ -699,7 +699,7 @@ packages:
description:
name: path_provider_android
sha256: "69cbd515a62b94d32a7944f086b2f82b4ac40a1d45bebfc00813a430ab2dabcd"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.3.1"
path_provider_foundation:
... ... @@ -707,7 +707,7 @@ packages:
description:
name: path_provider_foundation
sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.6.0"
path_provider_linux:
... ... @@ -715,7 +715,7 @@ packages:
description:
name: path_provider_linux
sha256: "58c2005f147315b11e9b4a7bc889cd5203e250cba8e3f012dae259b4972b5c16"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.2.2"
path_provider_platform_interface:
... ... @@ -723,7 +723,7 @@ packages:
description:
name: path_provider_platform_interface
sha256: "484838772624c3a4b94f1e44a3e19897fee738f2d5c4ce448443b0417f7c9dda"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.3"
path_provider_windows:
... ... @@ -731,7 +731,7 @@ packages:
description:
name: path_provider_windows
sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.3.0"
permission_handler:
... ... @@ -739,7 +739,7 @@ packages:
description:
name: permission_handler
sha256: "59adad729136f01ea9e35a48f5d1395e25cba6cea552249ddbe9cf950f5d7849"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "11.4.0"
permission_handler_android:
... ... @@ -747,7 +747,7 @@ packages:
description:
name: permission_handler_android
sha256: d3971dcdd76182a0c198c096b5db2f0884b0d4196723d21a866fc4cdea057ebc
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "12.1.0"
permission_handler_apple:
... ... @@ -755,7 +755,7 @@ packages:
description:
name: permission_handler_apple
sha256: f49cb15a064ea9d974fc7fbb302099353b7b170d07284e86e264561579e5bcf8
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "9.6.1"
permission_handler_html:
... ... @@ -763,7 +763,7 @@ packages:
description:
name: permission_handler_html
sha256: "6ea98b3f17f60d3b527f2647ed2ab4dc0f6bfe25b22cb1c363f5d8f62252f6ac"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.1.4+1"
permission_handler_ohos:
... ... @@ -780,7 +780,7 @@ packages:
description:
name: permission_handler_platform_interface
sha256: a5c8a97ecf5616112a5b16d4b8e9ec0e5ae90ef63ac69c0d7b8ae240be760b23
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.4.0"
permission_handler_windows:
... ... @@ -788,7 +788,7 @@ packages:
description:
name: permission_handler_windows
sha256: caeae01858a0a7d2df67a445ac98e1ad95e55a0e77c73044f4e9b1c8c2289cbd
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.2.2"
pigeon:
... ... @@ -805,7 +805,7 @@ packages:
description:
name: platform
sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.1.6"
plugin_platform_interface:
... ... @@ -813,7 +813,7 @@ packages:
description:
name: plugin_platform_interface
sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.8"
pool:
... ... @@ -821,7 +821,7 @@ packages:
description:
name: pool
sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.5.2"
posix:
... ... @@ -829,7 +829,7 @@ packages:
description:
name: posix
sha256: bc1bad54ad2b735816e31f8d4600cfde6c7839975085ddfbca48b6c9f7c4044e
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "6.5.2"
pretty_dio_logger:
... ... @@ -837,7 +837,7 @@ packages:
description:
name: pretty_dio_logger
sha256: "36f2101299786d567869493e2f5731de61ce130faa14679473b26905a92b6407"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.4.0"
pub_semver:
... ... @@ -845,7 +845,7 @@ packages:
description:
name: pub_semver
sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.2.0"
pubspec_parse:
... ... @@ -853,7 +853,7 @@ packages:
description:
name: pubspec_parse
sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.5.0"
record_use:
... ... @@ -861,7 +861,7 @@ packages:
description:
name: record_use
sha256: "1cb8564af8d43b464294411db9217f5ec04891c6f22ee2c32d73ae05e88a6bd2"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.1"
rxdart:
... ... @@ -869,7 +869,7 @@ packages:
description:
name: rxdart
sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.28.0"
share_plus:
... ... @@ -904,7 +904,7 @@ packages:
description:
name: shared_preferences_android
sha256: e8d4762b1e2e8578fc4d0fd548cebf24afd24f49719c08974df92834565e2c53
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.4.23"
shared_preferences_foundation:
... ... @@ -912,7 +912,7 @@ packages:
description:
name: shared_preferences_foundation
sha256: "4e7eaffc2b17ba398759f1151415869a34771ba11ebbccd1b0145472a619a64f"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.5.6"
shared_preferences_linux:
... ... @@ -920,7 +920,7 @@ packages:
description:
name: shared_preferences_linux
sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.4.1"
shared_preferences_ohos:
... ... @@ -937,7 +937,7 @@ packages:
description:
name: shared_preferences_platform_interface
sha256: "649dc798a33931919ea356c4305c2d1f81619ea6e92244070b520187b5140ef9"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.4.2"
shared_preferences_web:
... ... @@ -945,7 +945,7 @@ packages:
description:
name: shared_preferences_web
sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.4.3"
shared_preferences_windows:
... ... @@ -953,7 +953,7 @@ packages:
description:
name: shared_preferences_windows
sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.4.1"
shelf:
... ... @@ -961,7 +961,7 @@ packages:
description:
name: shelf
sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.4.2"
shelf_web_socket:
... ... @@ -969,7 +969,7 @@ packages:
description:
name: shelf_web_socket
sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.0"
simple_gesture_detector:
... ... @@ -977,7 +977,7 @@ packages:
description:
name: simple_gesture_detector
sha256: ba2cd5af24ff20a0b8d609cec3f40e5b0744d2a71804a2616ae086b9c19d19a3
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.2.1"
sky_engine:
... ... @@ -990,7 +990,7 @@ packages:
description:
name: source_span
sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.10.2"
sqflite:
... ... @@ -1007,7 +1007,7 @@ packages:
description:
name: sqflite_android
sha256: "881e28efdcc9950fd8e9bb42713dcf1103e62a2e7168f23c9338d82db13dec40"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.4.2+3"
sqflite_common:
... ... @@ -1015,7 +1015,7 @@ packages:
description:
name: sqflite_common
sha256: "1581ffbf7a0e333b380d6a30737d78516b826cb35beb7fb0bf8a3ea0c678b465"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.5.8"
sqflite_darwin:
... ... @@ -1023,7 +1023,7 @@ packages:
description:
name: sqflite_darwin
sha256: "279832e5cde3fe99e8571879498c9211f3ca6391b0d818df4e17d9fff5c6ccb3"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.4.2"
sqflite_ohos:
... ... @@ -1040,7 +1040,7 @@ packages:
description:
name: sqflite_platform_interface
sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.4.0"
stack_trace:
... ... @@ -1048,7 +1048,7 @@ packages:
description:
name: stack_trace
sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.12.1"
stream_channel:
... ... @@ -1056,7 +1056,7 @@ packages:
description:
name: stream_channel
sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.4"
stream_transform:
... ... @@ -1064,7 +1064,7 @@ packages:
description:
name: stream_transform
sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.1"
string_scanner:
... ... @@ -1072,7 +1072,7 @@ packages:
description:
name: string_scanner
sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.4.1"
synchronized:
... ... @@ -1080,7 +1080,7 @@ packages:
description:
name: synchronized
sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.4.0"
table_calendar:
... ... @@ -1088,7 +1088,7 @@ packages:
description:
name: table_calendar
sha256: f276347cad425ef837a41e8d9ad43f3ee7d59227aa4c36d7430607a5a18fa3b3
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.2.1"
term_glyph:
... ... @@ -1096,7 +1096,7 @@ packages:
description:
name: term_glyph
sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.2.2"
test_api:
... ... @@ -1104,7 +1104,7 @@ packages:
description:
name: test_api
sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.7.7"
thinking_analytics:
... ... @@ -1112,7 +1112,7 @@ packages:
description:
name: thinking_analytics
sha256: b01cac0b5482e71c1d75c44c77d27f427662cc65a77b7bc3c8b49617d7a01e02
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.3.3"
typed_data:
... ... @@ -1120,7 +1120,7 @@ packages:
description:
name: typed_data
sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.4.0"
url_launcher_linux:
... ... @@ -1128,7 +1128,7 @@ packages:
description:
name: url_launcher_linux
sha256: d5e14138b3bc193a0f63c10a53c94b91d399df0512b1f29b94a043db7482384a
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.2.2"
url_launcher_platform_interface:
... ... @@ -1136,7 +1136,7 @@ packages:
description:
name: url_launcher_platform_interface
sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.3.2"
url_launcher_web:
... ... @@ -1144,7 +1144,7 @@ packages:
description:
name: url_launcher_web
sha256: "85c81589622fbc87c1c683aaea164d3604a7777495a79d91e39ffcdec39ddb34"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.4.3"
url_launcher_windows:
... ... @@ -1152,7 +1152,7 @@ packages:
description:
name: url_launcher_windows
sha256: "712c70ab1b99744ff066053cbe3e80c73332b38d46e5e945c98689b2e66fc15f"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.1.5"
uuid:
... ... @@ -1160,7 +1160,7 @@ packages:
description:
name: uuid
sha256: "9b129329f58692f6e6578329498a8fe9fbe98f090beb764ffbb8ee2eadd01dcd"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.6.0"
vector_math:
... ... @@ -1168,7 +1168,7 @@ packages:
description:
name: vector_math
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.2.0"
video_thumbnail:
... ... @@ -1176,7 +1176,7 @@ packages:
description:
name: video_thumbnail
sha256: "181a0c205b353918954a881f53a3441476b9e301641688a581e0c13f00dc588b"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.5.6"
vm_service:
... ... @@ -1184,7 +1184,7 @@ packages:
description:
name: vm_service
sha256: "5f37239c4851efcef929cea7824e76df7f2f0970aef85d66bbc430afa40e72f0"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "15.3.0"
watcher:
... ... @@ -1192,7 +1192,7 @@ packages:
description:
name: watcher
sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.2.1"
web:
... ... @@ -1200,7 +1200,7 @@ packages:
description:
name: web
sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.1"
web_socket:
... ... @@ -1208,7 +1208,7 @@ packages:
description:
name: web_socket
sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.1"
web_socket_channel:
... ... @@ -1216,7 +1216,7 @@ packages:
description:
name: web_socket_channel
sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.3"
webview_flutter:
... ... @@ -1269,7 +1269,7 @@ packages:
description:
name: win32
sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "5.15.0"
xdg_directories:
... ... @@ -1277,7 +1277,7 @@ packages:
description:
name: xdg_directories
sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15"
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.0"
yaml:
... ... @@ -1285,7 +1285,7 @@ packages:
description:
name: yaml
sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce
url: "https://pub.dev"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.1.3"
sdks:
... ...