Commit 4aa2c2eacc8167e714884e03d3152635ec2ec19f

Authored by 权海
1 parent 61a25926

feat(ui):恢复实现原ios的互动功能;适配3.27.5-ohos版本flutter

Showing 42 changed files with 855 additions and 180 deletions
@@ -16,6 +16,7 @@ PODS: @@ -16,6 +16,7 @@ PODS:
16 - Flutter 16 - Flutter
17 - fluttertoast (0.0.2): 17 - fluttertoast (0.0.2):
18 - Flutter 18 - Flutter
  19 + - Toast
19 - GoogleSignIn (9.2.0): 20 - GoogleSignIn (9.2.0):
20 - AppAuth (~> 2.1) 21 - AppAuth (~> 2.1)
21 - AppCheckCore (~> 11.0) 22 - AppCheckCore (~> 11.0)
@@ -90,6 +91,7 @@ PODS: @@ -90,6 +91,7 @@ PODS:
90 - ThinkingSDK/Main (3.4.8): 91 - ThinkingSDK/Main (3.4.8):
91 - ThinkingSDK/iOS 92 - ThinkingSDK/iOS
92 - ThinkingSDK/OSX 93 - ThinkingSDK/OSX
  94 + - Toast (4.1.1)
93 - TOCropViewController (2.7.4) 95 - TOCropViewController (2.7.4)
94 - video_thumbnail (0.0.1): 96 - video_thumbnail (0.0.1):
95 - Flutter 97 - Flutter
@@ -132,6 +134,7 @@ SPEC REPOS: @@ -132,6 +134,7 @@ SPEC REPOS:
132 - TAThirdParty 134 - TAThirdParty
133 - ThinkingDataCore 135 - ThinkingDataCore
134 - ThinkingSDK 136 - ThinkingSDK
  137 + - Toast
135 - TOCropViewController 138 - TOCropViewController
136 - WechatOpenSDK 139 - WechatOpenSDK
137 140
@@ -168,9 +171,9 @@ EXTERNAL SOURCES: @@ -168,9 +171,9 @@ EXTERNAL SOURCES:
168 SPEC CHECKSUMS: 171 SPEC CHECKSUMS:
169 AppAuth: ef4da5a3fc2e10b90c09a0a94a9baeaedc0341d5 172 AppAuth: ef4da5a3fc2e10b90c09a0a94a9baeaedc0341d5
170 AppCheckCore: e215d35177a9cf469927863e69c13e220df32a8b 173 AppCheckCore: e215d35177a9cf469927863e69c13e220df32a8b
171 - Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 174 + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
172 flutter_timezone: 7c838e17ffd4645d261e87037e5bebf6d38fe544 175 flutter_timezone: 7c838e17ffd4645d261e87037e5bebf6d38fe544
173 - fluttertoast: 2c67e14dce98bbdb200df9e1acf610d7a6264ea1 176 + fluttertoast: 76fea30fcf04176325f6864c87306927bd7d2038
174 GoogleSignIn: e449a40a92e9f2eea56e98b5214d13725dc5a00a 177 GoogleSignIn: e449a40a92e9f2eea56e98b5214d13725dc5a00a
175 GoogleUtilities: 766ace00c6b10d8148408f329d10c4f051931850 178 GoogleUtilities: 766ace00c6b10d8148408f329d10c4f051931850
176 GTMAppAuth: 217a876b249c3c585a54fd6f73e6b58c4f5c4238 179 GTMAppAuth: 217a876b249c3c585a54fd6f73e6b58c4f5c4238
@@ -179,7 +182,7 @@ SPEC CHECKSUMS: @@ -179,7 +182,7 @@ SPEC CHECKSUMS:
179 image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a 182 image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a
180 libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8 183 libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8
181 OBS: 4cf1e6db5515aefd6c3c6ae3e90e85ea5f028e83 184 OBS: 4cf1e6db5515aefd6c3c6ae3e90e85ea5f028e83
182 - path_provider_foundation: bb55f6dbba17d0dccd6737fe6f7f34fbd0376880 185 + path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
183 permission_handler_apple: 92d754bbaa7361d436db2d6c3c1c2a0fdcec462e 186 permission_handler_apple: 92d754bbaa7361d436db2d6c3c1c2a0fdcec462e
184 PromisesObjC: 752c3227f599e3467650e47ea36f433eeb10c273 187 PromisesObjC: 752c3227f599e3467650e47ea36f433eeb10c273
185 PromisesSwift: 217dea0fd5d2ad65222a109c48698add13cc1c5b 188 PromisesSwift: 217dea0fd5d2ad65222a109c48698add13cc1c5b
@@ -191,6 +194,7 @@ SPEC CHECKSUMS: @@ -191,6 +194,7 @@ SPEC CHECKSUMS:
191 thinking_analytics: 6f254c030da8dfc3409c08d91929b6ad89c415be 194 thinking_analytics: 6f254c030da8dfc3409c08d91929b6ad89c415be
192 ThinkingDataCore: 2bda656a0e68ad95542ab029450784d38ab50949 195 ThinkingDataCore: 2bda656a0e68ad95542ab029450784d38ab50949
193 ThinkingSDK: 48c27bf8af8c2035f8fb80522add51f0b3c65284 196 ThinkingSDK: 48c27bf8af8c2035f8fb80522add51f0b3c65284
  197 + Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e
194 TOCropViewController: 80b8985ad794298fb69d3341de183f33d1853654 198 TOCropViewController: 80b8985ad794298fb69d3341de183f33d1853654
195 video_thumbnail: b637e0ad5f588ca9945f6e2c927f73a69a661140 199 video_thumbnail: b637e0ad5f588ca9945f6e2c927f73a69a661140
196 webview_flutter_wkwebview: 1821ceac936eba6f7984d89a9f3bcb4dea99ebb2 200 webview_flutter_wkwebview: 1821ceac936eba6f7984d89a9f3bcb4dea99ebb2
@@ -75,6 +75,10 @@ class DeveloperOptionsController extends GetxController { @@ -75,6 +75,10 @@ class DeveloperOptionsController extends GetxController {
75 routeName: Routes.ROUTE_LIST, 75 routeName: Routes.ROUTE_LIST,
76 ), 76 ),
77 DeveloperOptionsItem( 77 DeveloperOptionsItem(
  78 + title: '互动页(测试)',
  79 + routeName: Routes.INTERACT,
  80 + ),
  81 + DeveloperOptionsItem(
78 title: 'Token Login', 82 title: 'Token Login',
79 routeName: Routes.TOKEN_LOGIN, 83 routeName: Routes.TOKEN_LOGIN,
80 ), 84 ),
  1 +import 'package:doublefeel_flutter/app/modules/interact/controllers/interact_controller.dart';
  2 +import 'package:doublefeel_flutter/core/network/api/interaction_api.dart';
  3 +import 'package:doublefeel_flutter/data/local/user_preferences_storage.dart';
  4 +import 'package:get/get.dart';
  5 +
  6 +class InteractBinding extends Bindings {
  7 + @override
  8 + void dependencies() {
  9 + Get.lazyPut<InteractController>(
  10 + () => InteractController(
  11 + Get.find<InteractionApi>(),
  12 + Get.find<UserPreferencesStorage>(),
  13 + ),
  14 + );
  15 + }
  16 +}
  1 +import 'dart:async';
  2 +
  3 +import 'package:doublefeel_flutter/app/routes/app_pages.dart';
  4 +import 'package:doublefeel_flutter/core/network/api/interaction_api.dart';
  5 +import 'package:doublefeel_flutter/core/result/app_result.dart';
  6 +import 'package:doublefeel_flutter/data/local/user_preferences_storage.dart';
  7 +import 'package:doublefeel_flutter/data/models/interaction/interaction_models.dart';
  8 +import 'package:doublefeel_flutter/data/models/user/user_models.dart';
  9 +import 'package:get/get.dart';
  10 +
  11 +enum InteractAction { stick, miss, punch }
  12 +
  13 +extension InteractActionUi on InteractAction {
  14 + int get apiValue => switch (this) {
  15 + InteractAction.stick => 0,
  16 + InteractAction.miss => 1,
  17 + InteractAction.punch => 2,
  18 + };
  19 +
  20 + String get title => switch (this) {
  21 + InteractAction.stick => '戳一戳',
  22 + InteractAction.miss => '想Ta',
  23 + InteractAction.punch => '打一拳',
  24 + };
  25 +
  26 + bool get needsVip => this != InteractAction.stick;
  27 +
  28 + String get iconAsset => switch (this) {
  29 + InteractAction.stick => 'assets/images/interact/icon_stick.png',
  30 + InteractAction.miss => 'assets/images/interact/icon_miss.png',
  31 + InteractAction.punch => 'assets/images/interact/icon_punch.png',
  32 + };
  33 +
  34 + String get titleAsset => switch (this) {
  35 + InteractAction.stick => 'assets/images/interact/title_stick.png',
  36 + InteractAction.miss => 'assets/images/interact/title_miss.png',
  37 + InteractAction.punch => 'assets/images/interact/title_punch.png',
  38 + };
  39 +
  40 + String get lockedTitleAsset => switch (this) {
  41 + InteractAction.stick => 'assets/images/interact/title_stick_locked.png',
  42 + InteractAction.miss => 'assets/images/interact/title_miss_locked.png',
  43 + InteractAction.punch => 'assets/images/interact/title_punch_locked.png',
  44 + };
  45 +}
  46 +
  47 +class InteractController extends GetxController {
  48 + InteractController(this._interactionApi, this._userPreferencesStorage);
  49 +
  50 + final InteractionApi _interactionApi;
  51 + final UserPreferencesStorage _userPreferencesStorage;
  52 +
  53 + final records = <InteractionRecord>[].obs;
  54 + final isLoading = false.obs;
  55 + final sendingAction = Rxn<InteractAction>();
  56 + final activeAction = Rxn<InteractAction>();
  57 +
  58 + UserInfoResponse? get me =>
  59 + _userPreferencesStorage.preferences.value.meUserInfo;
  60 + UserInfoResponse? get partner =>
  61 + _userPreferencesStorage.preferences.value.partnerUserInfo;
  62 + bool get isPaired => partner?.id != null;
  63 + bool get isVip =>
  64 + _userPreferencesStorage.preferences.value.vipInfo?.isVip ?? false;
  65 +
  66 + @override
  67 + void onInit() {
  68 + super.onInit();
  69 + unawaited(loadRecords());
  70 + }
  71 +
  72 + Future<void> loadRecords() async {
  73 + isLoading.value = true;
  74 + final result = await _interactionApi.getInteractionRecordList();
  75 + isLoading.value = false;
  76 + switch (result) {
  77 + case AppSuccess(:final data):
  78 + records.assignAll(data.records ?? const <InteractionRecord>[]);
  79 + case AppFailure():
  80 + // Keep the last successful list visible when a refresh fails.
  81 + }
  82 + }
  83 +
  84 + Future<void> sendAction(
  85 + InteractAction action, {
  86 + InteractionDataAction? actionVariables,
  87 + }) async {
  88 + if (!isPaired) {
  89 + _showToast('请先绑定另一半');
  90 + Get.toNamed(AppRoutes.bindPartner);
  91 + return;
  92 + }
  93 + if (action.needsVip && !isVip) {
  94 + _showToast('${action.title}为会员互动,请先开通会员');
  95 + Get.toNamed(Routes.PURCHASE);
  96 + return;
  97 + }
  98 + if (sendingAction.value != null) return;
  99 +
  100 + sendingAction.value = action;
  101 + activeAction.value = action;
  102 + final result = await _interactionApi.sendInteraction(
  103 + InteractionData(
  104 + interactionType: 0,
  105 + actionType: action.apiValue,
  106 + action: actionVariables,
  107 + ),
  108 + );
  109 + sendingAction.value = null;
  110 +
  111 + switch (result) {
  112 + case AppSuccess():
  113 + _showToast('${action.title}成功!');
  114 + unawaited(loadRecords());
  115 + case AppFailure(:final error):
  116 + _showToast('互动发送失败:$error');
  117 + }
  118 +
  119 + Future<void>.delayed(const Duration(seconds: 4), () {
  120 + if (activeAction.value == action) activeAction.value = null;
  121 + });
  122 + }
  123 +
  124 + String recordText(InteractionRecord record) {
  125 + final text = record.text?.trim();
  126 + if (text != null && text.isNotEmpty) return text;
  127 + final actor = record.userId == me?.id ? '我' : '对方';
  128 + final target = record.action?.objectTarget == 1 ? '自己' : 'Ta';
  129 + return switch (record.actionType) {
  130 + 0 => '$actor 戳了戳$target~',
  131 + 1 => '$actor$target 了一下~',
  132 + 2 => '$actor 打了$target 一拳~',
  133 + _ => '$actor 发起了一次互动~',
  134 + };
  135 + }
  136 +
  137 + String recordTime(InteractionRecord record) {
  138 + final timestamp = record.createTime;
  139 + if (timestamp == null || timestamp <= 0) return '';
  140 + final date = DateTime.fromMillisecondsSinceEpoch(timestamp * 1000);
  141 + return '${date.month.toString().padLeft(2, '0')}-'
  142 + '${date.day.toString().padLeft(2, '0')} '
  143 + '${date.hour.toString().padLeft(2, '0')}:'
  144 + '${date.minute.toString().padLeft(2, '0')}';
  145 + }
  146 +
  147 + String? partnerActionAsset() {
  148 + final action = activeAction.value;
  149 + if (action == null || !isPaired) return null;
  150 + final character = switch (partner?.persona) {
  151 + 2 => 'Dog',
  152 + 3 => 'Rabbit',
  153 + 4 => 'Elephant',
  154 + _ => 'Cat',
  155 + };
  156 + final actionName = switch (action) {
  157 + InteractAction.stick => 'Stick',
  158 + InteractAction.miss => 'Miss',
  159 + InteractAction.punch => 'Punch',
  160 + };
  161 + return 'assets/images/interact/animations/'
  162 + 'character${character}Interaction${actionName}Animation.png';
  163 + }
  164 +
  165 + String? actionMaskAsset() => switch (activeAction.value) {
  166 + InteractAction.stick =>
  167 + 'assets/images/interact/animations/interactionStickMaskAnimation.png',
  168 + InteractAction.miss =>
  169 + 'assets/images/interact/animations/interactionMissMaskAnimation.png',
  170 + InteractAction.punch =>
  171 + 'assets/images/interact/animations/interactionPunchMaskAnimation.png',
  172 + null => null,
  173 + };
  174 +
  175 + void _showToast(String message) {
  176 + Get.snackbar('互动', message, snackPosition: SnackPosition.BOTTOM);
  177 + }
  178 +}
  1 +import 'package:doublefeel_flutter/app/modules/interact/controllers/interact_controller.dart';
  2 +import 'package:doublefeel_flutter/data/models/interaction/interaction_models.dart';
  3 +import 'package:doublefeel_flutter/data/models/user/user_models.dart';
  4 +import 'package:flutter/material.dart';
  5 +import 'package:get/get.dart';
  6 +
  7 +class InteractView extends GetView<InteractController> {
  8 + const InteractView({super.key});
  9 +
  10 + static const _purple = Color(0xff896cdc);
  11 + static const _muted = Color(0xff908b91);
  12 +
  13 + @override
  14 + Widget build(BuildContext context) {
  15 + return Scaffold(
  16 + body: Stack(
  17 + fit: StackFit.expand,
  18 + children: [
  19 + Image.asset('assets/images/interact/page_bg.png', fit: BoxFit.cover),
  20 + SafeArea(
  21 + child: Obx(
  22 + () => Column(
  23 + children: [
  24 + _appBar(),
  25 + Expanded(
  26 + child: RefreshIndicator(
  27 + onRefresh: controller.loadRecords,
  28 + child: ListView(
  29 + physics: const AlwaysScrollableScrollPhysics(),
  30 + padding: const EdgeInsets.only(bottom: 28),
  31 + children: [
  32 + _marquee(),
  33 + _characterArea(),
  34 + const SizedBox(height: 34),
  35 + _actionButtons(context),
  36 + const SizedBox(height: 28),
  37 + _records(),
  38 + ],
  39 + ),
  40 + ),
  41 + ),
  42 + ],
  43 + ),
  44 + ),
  45 + ),
  46 + Obx(() {
  47 + final asset = controller.actionMaskAsset();
  48 + if (asset == null) return const SizedBox.shrink();
  49 + return IgnorePointer(
  50 + child: Align(
  51 + alignment: const Alignment(0, -.5),
  52 + child:
  53 + Image.asset(asset, width: Get.width, fit: BoxFit.fitWidth),
  54 + ),
  55 + );
  56 + }),
  57 + ],
  58 + ),
  59 + );
  60 + }
  61 +
  62 + Widget _appBar() {
  63 + return SizedBox(
  64 + height: 48,
  65 + child: Row(
  66 + children: [
  67 + IconButton(
  68 + icon: const Icon(Icons.arrow_back_ios_new, color: Colors.black),
  69 + onPressed: Get.back,
  70 + ),
  71 + const Spacer(),
  72 + IconButton(
  73 + tooltip: '刷新互动记录',
  74 + icon: const Icon(Icons.refresh, color: Colors.black87),
  75 + onPressed: controller.loadRecords,
  76 + ),
  77 + ],
  78 + ),
  79 + );
  80 + }
  81 +
  82 + Widget _marquee() {
  83 + final records = controller.records.take(3).toList(growable: false);
  84 + if (records.isEmpty) return const SizedBox(height: 72);
  85 + return SizedBox(
  86 + height: 72,
  87 + child: ListView.separated(
  88 + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
  89 + scrollDirection: Axis.horizontal,
  90 + itemCount: records.length,
  91 + separatorBuilder: (_, __) => const SizedBox(width: 10),
  92 + itemBuilder: (_, index) {
  93 + final record = records[index];
  94 + final isMe = record.userId == controller.me?.id;
  95 + return Container(
  96 + constraints: const BoxConstraints(maxWidth: 210),
  97 + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 7),
  98 + decoration: BoxDecoration(
  99 + image: const DecorationImage(
  100 + image: AssetImage('assets/images/interact/page_bubble_bg.png'),
  101 + fit: BoxFit.fill,
  102 + ),
  103 + ),
  104 + child: Row(
  105 + mainAxisSize: MainAxisSize.min,
  106 + children: [
  107 + _avatar(isMe ? controller.me : controller.partner, size: 28),
  108 + const SizedBox(width: 7),
  109 + Flexible(
  110 + child: Text(
  111 + controller.recordText(record),
  112 + maxLines: 1,
  113 + overflow: TextOverflow.ellipsis,
  114 + style: const TextStyle(color: Colors.white, fontSize: 13),
  115 + ),
  116 + ),
  117 + ],
  118 + ),
  119 + );
  120 + },
  121 + ),
  122 + );
  123 + }
  124 +
  125 + Widget _characterArea() {
  126 + final actionAsset = controller.partnerActionAsset();
  127 + return Padding(
  128 + padding: const EdgeInsets.symmetric(horizontal: 24),
  129 + child: Row(
  130 + children: [
  131 + Expanded(child: _person(me: true)),
  132 + const SizedBox(width: 12),
  133 + Expanded(
  134 + child: controller.isPaired
  135 + ? _person(me: false, actionAsset: actionAsset)
  136 + : _unpairedPerson(),
  137 + ),
  138 + ],
  139 + ),
  140 + );
  141 + }
  142 +
  143 + Widget _person({required bool me, String? actionAsset}) {
  144 + final user = me ? controller.me : controller.partner;
  145 + return Column(
  146 + children: [
  147 + SizedBox(
  148 + height: 132,
  149 + child: actionAsset == null
  150 + ? _avatar(user,
  151 + size: 108,
  152 + borderColor: me ? _purple : const Color(0xfffff45b))
  153 + : Image.asset(actionAsset, fit: BoxFit.contain),
  154 + ),
  155 + const SizedBox(height: 6),
  156 + Row(
  157 + mainAxisAlignment: MainAxisAlignment.center,
  158 + children: [
  159 + if (me)
  160 + Container(
  161 + padding: const EdgeInsets.symmetric(horizontal: 5, vertical: 2),
  162 + decoration:
  163 + const BoxDecoration(color: _purple, shape: BoxShape.circle),
  164 + child: const Text('我',
  165 + style: TextStyle(color: Colors.white, fontSize: 11)),
  166 + ),
  167 + if (me) const SizedBox(width: 5),
  168 + Flexible(
  169 + child: Text(
  170 + user?.nickname ?? '-',
  171 + overflow: TextOverflow.ellipsis,
  172 + style:
  173 + const TextStyle(fontWeight: FontWeight.w600, fontSize: 16),
  174 + ),
  175 + ),
  176 + ],
  177 + ),
  178 + ],
  179 + );
  180 + }
  181 +
  182 + Widget _unpairedPerson() {
  183 + return Column(
  184 + children: [
  185 + Image.asset('assets/images/interact/unpaired_avatar.png', width: 58),
  186 + const SizedBox(height: 8),
  187 + const Text('暂未绑定Feel搭子',
  188 + style: TextStyle(color: Color(0xffff2c20), fontSize: 12)),
  189 + const SizedBox(height: 10),
  190 + TextButton.icon(
  191 + onPressed: () => Get.snackbar('互动', '请先前往搭子页面完成绑定'),
  192 + icon: const Text('去绑定'),
  193 + label: const Icon(Icons.chevron_right, size: 18),
  194 + style: TextButton.styleFrom(
  195 + foregroundColor: Colors.white,
  196 + backgroundColor: _purple,
  197 + shape: const StadiumBorder(),
  198 + ),
  199 + ),
  200 + ],
  201 + );
  202 + }
  203 +
  204 + Widget _actionButtons(BuildContext context) {
  205 + return Row(
  206 + mainAxisAlignment: MainAxisAlignment.center,
  207 + crossAxisAlignment: CrossAxisAlignment.end,
  208 + children: [
  209 + _actionButton(context, InteractAction.miss, width: 88, height: 52),
  210 + const SizedBox(width: 12),
  211 + _actionButton(context, InteractAction.stick, width: 112, height: 72),
  212 + const SizedBox(width: 12),
  213 + _actionButton(context, InteractAction.punch, width: 88, height: 52),
  214 + ],
  215 + );
  216 + }
  217 +
  218 + Widget _actionButton(
  219 + BuildContext context,
  220 + InteractAction action, {
  221 + required double width,
  222 + required double height,
  223 + }) {
  224 + final enabled =
  225 + controller.isPaired && (!action.needsVip || controller.isVip);
  226 + final sending = controller.sendingAction.value == action;
  227 + return GestureDetector(
  228 + onLongPress: () => _showActionSheet(context),
  229 + child: SizedBox(
  230 + width: width,
  231 + height: height + 18,
  232 + child: ElevatedButton(
  233 + onPressed: sending ? null : () => controller.sendAction(action),
  234 + style: ElevatedButton.styleFrom(
  235 + padding: EdgeInsets.zero,
  236 + backgroundColor: _purple.withValues(alpha: enabled ? 1 : .4),
  237 + disabledBackgroundColor: _purple.withValues(alpha: .4),
  238 + elevation: 5,
  239 + shadowColor: _purple.withValues(alpha: .5),
  240 + shape:
  241 + RoundedRectangleBorder(borderRadius: BorderRadius.circular(28)),
  242 + ),
  243 + child: sending
  244 + ? const SizedBox(
  245 + width: 22,
  246 + height: 22,
  247 + child: CircularProgressIndicator(
  248 + color: Colors.white, strokeWidth: 2))
  249 + : Column(
  250 + mainAxisAlignment: MainAxisAlignment.center,
  251 + children: [
  252 + Image.asset(
  253 + enabled
  254 + ? action.iconAsset
  255 + : 'assets/images/interact/icon_locked.png',
  256 + width: action == InteractAction.stick ? 48 : 40,
  257 + height: action == InteractAction.stick ? 48 : 40,
  258 + ),
  259 + Image.asset(
  260 + enabled ? action.titleAsset : action.lockedTitleAsset,
  261 + height: 20,
  262 + fit: BoxFit.contain,
  263 + ),
  264 + ],
  265 + ),
  266 + ),
  267 + ),
  268 + );
  269 + }
  270 +
  271 + Widget _records() {
  272 + final records = controller.records.take(10).toList(growable: false);
  273 + return Container(
  274 + margin: const EdgeInsets.only(top: 2),
  275 + padding: const EdgeInsets.fromLTRB(24, 20, 24, 42),
  276 + decoration: const BoxDecoration(
  277 + gradient: LinearGradient(
  278 + colors: [Color(0xffeae1ff), Color(0x00fcf4ff)],
  279 + begin: Alignment.topCenter,
  280 + end: Alignment.bottomCenter,
  281 + ),
  282 + borderRadius: BorderRadius.vertical(top: Radius.circular(20)),
  283 + ),
  284 + child: Column(
  285 + children: [
  286 + Row(
  287 + children: [
  288 + const Text('互动记录',
  289 + style: TextStyle(
  290 + fontSize: 17,
  291 + fontWeight: FontWeight.w700,
  292 + color: Color(0xff2c2020))),
  293 + const Spacer(),
  294 + Text('仅保留10条', style: TextStyle(fontSize: 12, color: _muted)),
  295 + ],
  296 + ),
  297 + const SizedBox(height: 15),
  298 + if (controller.isLoading.value && records.isEmpty)
  299 + const Padding(
  300 + padding: EdgeInsets.all(40), child: CircularProgressIndicator())
  301 + else if (records.isEmpty)
  302 + const Padding(
  303 + padding: EdgeInsets.symmetric(vertical: 76),
  304 + child: Text('暂时还没有记录哦~',
  305 + style: TextStyle(color: _muted, fontSize: 14)),
  306 + )
  307 + else
  308 + ...records.map(_recordItem),
  309 + ],
  310 + ),
  311 + );
  312 + }
  313 +
  314 + Widget _recordItem(InteractionRecord record) {
  315 + return Container(
  316 + width: double.infinity,
  317 + margin: const EdgeInsets.only(bottom: 7),
  318 + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 9),
  319 + decoration: BoxDecoration(
  320 + color: Colors.white.withValues(alpha: .48),
  321 + borderRadius: BorderRadius.circular(7)),
  322 + child: Row(
  323 + children: [
  324 + const Icon(Icons.circle_outlined, size: 10, color: _purple),
  325 + const SizedBox(width: 8),
  326 + Expanded(
  327 + child: Text(controller.recordText(record),
  328 + style: const TextStyle(fontSize: 14))),
  329 + Text(controller.recordTime(record),
  330 + style: const TextStyle(fontSize: 12, color: _muted)),
  331 + ],
  332 + ),
  333 + );
  334 + }
  335 +
  336 + Widget _avatar(UserInfoResponse? user,
  337 + {required double size, Color? borderColor}) {
  338 + final avatar = user?.avatar;
  339 + return Container(
  340 + width: size,
  341 + height: size,
  342 + clipBehavior: Clip.antiAlias,
  343 + decoration: BoxDecoration(
  344 + shape: BoxShape.circle,
  345 + border: Border.all(color: borderColor ?? _purple, width: 2),
  346 + color: Colors.white),
  347 + child: avatar == null || avatar.isEmpty
  348 + ? Icon(Icons.person, size: size * .55, color: _muted)
  349 + : Image.network(avatar,
  350 + fit: BoxFit.cover,
  351 + errorBuilder: (_, __, ___) =>
  352 + Icon(Icons.person, size: size * .55, color: _muted)),
  353 + );
  354 + }
  355 +
  356 + void _showActionSheet(BuildContext context) {
  357 + Get.bottomSheet(
  358 + InteractActionBottomSheet(controller: controller),
  359 + isScrollControlled: true,
  360 + backgroundColor: Colors.transparent,
  361 + );
  362 + }
  363 +}
  364 +
  365 +class InteractActionBottomSheet extends StatelessWidget {
  366 + const InteractActionBottomSheet({required this.controller, super.key});
  367 +
  368 + final InteractController controller;
  369 +
  370 + @override
  371 + Widget build(BuildContext context) {
  372 + return SafeArea(
  373 + top: false,
  374 + child: Container(
  375 + height: 331,
  376 + decoration: const BoxDecoration(
  377 + image: DecorationImage(
  378 + image: AssetImage('assets/images/interact/bottom_sheet_bg.png'),
  379 + fit: BoxFit.fill),
  380 + ),
  381 + child: Stack(
  382 + children: [
  383 + Align(
  384 + alignment: const Alignment(.2, -.98),
  385 + child: Image.asset(
  386 + 'assets/images/interact/bottom_sheet_label.png',
  387 + width: 126),
  388 + ),
  389 + Column(
  390 + children: [
  391 + const SizedBox(height: 18),
  392 + _sheetAvatar(),
  393 + const SizedBox(height: 13),
  394 + const Text('给搭子送去一份互动',
  395 + style: TextStyle(color: Color(0xff908b91), fontSize: 14)),
  396 + const SizedBox(height: 3),
  397 + const Text('想念要说出来',
  398 + style: TextStyle(
  399 + color: Color(0xff896cdc),
  400 + fontSize: 24,
  401 + fontWeight: FontWeight.w700)),
  402 + const SizedBox(height: 24),
  403 + Obx(
  404 + () => Row(
  405 + mainAxisAlignment: MainAxisAlignment.center,
  406 + crossAxisAlignment: CrossAxisAlignment.end,
  407 + children: InteractAction.values
  408 + .map((action) => Padding(
  409 + padding:
  410 + const EdgeInsets.symmetric(horizontal: 6),
  411 + child: _sheetButton(action),
  412 + ))
  413 + .toList(growable: false),
  414 + ),
  415 + ),
  416 + ],
  417 + ),
  418 + ],
  419 + ),
  420 + ),
  421 + );
  422 + }
  423 +
  424 + Widget _sheetAvatar() {
  425 + final avatar = controller.partner?.avatar;
  426 + return Container(
  427 + width: 56,
  428 + height: 56,
  429 + clipBehavior: Clip.antiAlias,
  430 + decoration: BoxDecoration(
  431 + shape: BoxShape.circle,
  432 + border: Border.all(color: const Color(0xff896cdc), width: 2)),
  433 + child: avatar == null || avatar.isEmpty
  434 + ? const Icon(Icons.person, color: Color(0xff908b91))
  435 + : Image.network(avatar, fit: BoxFit.cover),
  436 + );
  437 + }
  438 +
  439 + Widget _sheetButton(InteractAction action) {
  440 + final enabled =
  441 + controller.isPaired && (!action.needsVip || controller.isVip);
  442 + final sending = controller.sendingAction.value == action;
  443 + return SizedBox(
  444 + width: action == InteractAction.stick ? 112 : 88,
  445 + height: action == InteractAction.stick ? 74 : 56,
  446 + child: ElevatedButton(
  447 + onPressed: sending
  448 + ? null
  449 + : () async {
  450 + await controller.sendAction(
  451 + action,
  452 + actionVariables: const InteractionDataAction(objectTarget: 2),
  453 + );
  454 + if (controller.sendingAction.value == null) Get.back();
  455 + },
  456 + style: ElevatedButton.styleFrom(
  457 + padding: EdgeInsets.zero,
  458 + backgroundColor:
  459 + const Color(0xff896cdc).withValues(alpha: enabled ? 1 : .4),
  460 + shape:
  461 + RoundedRectangleBorder(borderRadius: BorderRadius.circular(28)),
  462 + ),
  463 + child: sending
  464 + ? const CircularProgressIndicator(
  465 + color: Colors.white, strokeWidth: 2)
  466 + : Column(
  467 + mainAxisAlignment: MainAxisAlignment.center,
  468 + children: [
  469 + Image.asset(
  470 + enabled
  471 + ? action.iconAsset
  472 + : 'assets/images/interact/icon_locked.png',
  473 + height: 38),
  474 + Image.asset(
  475 + enabled ? action.titleAsset : action.lockedTitleAsset,
  476 + height: 18),
  477 + ],
  478 + ),
  479 + ),
  480 + );
  481 + }
  482 +}
@@ -31,6 +31,8 @@ import '../modules/help/views/help_view.dart'; @@ -31,6 +31,8 @@ import '../modules/help/views/help_view.dart';
31 import '../modules/home/bindings/home_binding.dart'; 31 import '../modules/home/bindings/home_binding.dart';
32 import '../modules/home/views/home_page.dart'; 32 import '../modules/home/views/home_page.dart';
33 import '../modules/home/widgets/my/security_email_views.dart'; 33 import '../modules/home/widgets/my/security_email_views.dart';
  34 +import '../modules/interact/bindings/interact_binding.dart';
  35 +import '../modules/interact/views/interact_view.dart';
34 import '../modules/login/bindings/login_binding.dart'; 36 import '../modules/login/bindings/login_binding.dart';
35 import '../modules/login/views/debug_environment_view.dart'; 37 import '../modules/login/views/debug_environment_view.dart';
36 import '../modules/login/views/login_view.dart'; 38 import '../modules/login/views/login_view.dart';
@@ -169,6 +171,11 @@ abstract final class AppPages { @@ -169,6 +171,11 @@ abstract final class AppPages {
169 binding: RouteListBinding(), 171 binding: RouteListBinding(),
170 ), 172 ),
171 GetPage( 173 GetPage(
  174 + name: Routes.INTERACT,
  175 + page: () => const InteractView(),
  176 + binding: InteractBinding(),
  177 + ),
  178 + GetPage(
172 name: Routes.PURCHASE, 179 name: Routes.PURCHASE,
173 page: () => const PurchaseView(), 180 page: () => const PurchaseView(),
174 binding: PurchaseBinding(), 181 binding: PurchaseBinding(),
@@ -30,6 +30,7 @@ abstract class Routes { @@ -30,6 +30,7 @@ abstract class Routes {
30 static const CHANGE_SECURITY_EMAIL = _Paths.CHANGE_SECURITY_EMAIL; 30 static const CHANGE_SECURITY_EMAIL = _Paths.CHANGE_SECURITY_EMAIL;
31 static const RESET_PASSWORD = _Paths.RESET_PASSWORD; 31 static const RESET_PASSWORD = _Paths.RESET_PASSWORD;
32 static const HW_HEALTH_AUTH_WEB_VIEW = _Paths.HW_HEALTH_AUTH_WEB_VIEW; 32 static const HW_HEALTH_AUTH_WEB_VIEW = _Paths.HW_HEALTH_AUTH_WEB_VIEW;
  33 + static const INTERACT = _Paths.INTERACT;
33 } 34 }
34 35
35 abstract class _Paths { 36 abstract class _Paths {
@@ -61,4 +62,5 @@ abstract class _Paths { @@ -61,4 +62,5 @@ abstract class _Paths {
61 static const CHANGE_SECURITY_EMAIL = '/change-security-email'; 62 static const CHANGE_SECURITY_EMAIL = '/change-security-email';
62 static const RESET_PASSWORD = '/reset-password'; 63 static const RESET_PASSWORD = '/reset-password';
63 static const HW_HEALTH_AUTH_WEB_VIEW = '/hw-health-auth-webview'; 64 static const HW_HEALTH_AUTH_WEB_VIEW = '/hw-health-auth-webview';
  65 + static const INTERACT = '/interact';
64 } 66 }
@@ -6,7 +6,7 @@ packages: @@ -6,7 +6,7 @@ packages:
6 description: 6 description:
7 name: _fe_analyzer_shared 7 name: _fe_analyzer_shared
8 sha256: da0d9209ca76bde579f2da330aeb9df62b6319c834fa7baae052021b0462401f 8 sha256: da0d9209ca76bde579f2da330aeb9df62b6319c834fa7baae052021b0462401f
9 - url: "https://pub.flutter-io.cn" 9 + url: "https://pub.dev"
10 source: hosted 10 source: hosted
11 version: "85.0.0" 11 version: "85.0.0"
12 analyzer: 12 analyzer:
@@ -14,7 +14,7 @@ packages: @@ -14,7 +14,7 @@ packages:
14 description: 14 description:
15 name: analyzer 15 name: analyzer
16 sha256: "974859dc0ff5f37bc4313244b3218c791810d03ab3470a579580279ba971a48d" 16 sha256: "974859dc0ff5f37bc4313244b3218c791810d03ab3470a579580279ba971a48d"
17 - url: "https://pub.flutter-io.cn" 17 + url: "https://pub.dev"
18 source: hosted 18 source: hosted
19 version: "7.7.1" 19 version: "7.7.1"
20 archive: 20 archive:
@@ -22,7 +22,7 @@ packages: @@ -22,7 +22,7 @@ packages:
22 description: 22 description:
23 name: archive 23 name: archive
24 sha256: ace891da0862b0e4cabbb064ee3fd87b2728b898949fdb366d83fe98342c9f19 24 sha256: ace891da0862b0e4cabbb064ee3fd87b2728b898949fdb366d83fe98342c9f19
25 - url: "https://pub.flutter-io.cn" 25 + url: "https://pub.dev"
26 source: hosted 26 source: hosted
27 version: "4.2.0" 27 version: "4.2.0"
28 args: 28 args:
@@ -30,7 +30,7 @@ packages: @@ -30,7 +30,7 @@ packages:
30 description: 30 description:
31 name: args 31 name: args
32 sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 32 sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04
33 - url: "https://pub.flutter-io.cn" 33 + url: "https://pub.dev"
34 source: hosted 34 source: hosted
35 version: "2.7.0" 35 version: "2.7.0"
36 async: 36 async:
@@ -38,7 +38,7 @@ packages: @@ -38,7 +38,7 @@ packages:
38 description: 38 description:
39 name: async 39 name: async
40 sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" 40 sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
41 - url: "https://pub.flutter-io.cn" 41 + url: "https://pub.dev"
42 source: hosted 42 source: hosted
43 version: "2.11.0" 43 version: "2.11.0"
44 boolean_selector: 44 boolean_selector:
@@ -46,7 +46,7 @@ packages: @@ -46,7 +46,7 @@ packages:
46 description: 46 description:
47 name: boolean_selector 47 name: boolean_selector
48 sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" 48 sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
49 - url: "https://pub.flutter-io.cn" 49 + url: "https://pub.dev"
50 source: hosted 50 source: hosted
51 version: "2.1.1" 51 version: "2.1.1"
52 build: 52 build:
@@ -54,7 +54,7 @@ packages: @@ -54,7 +54,7 @@ packages:
54 description: 54 description:
55 name: build 55 name: build
56 sha256: cef23f1eda9b57566c81e2133d196f8e3df48f244b317368d65c5943d91148f0 56 sha256: cef23f1eda9b57566c81e2133d196f8e3df48f244b317368d65c5943d91148f0
57 - url: "https://pub.flutter-io.cn" 57 + url: "https://pub.dev"
58 source: hosted 58 source: hosted
59 version: "2.4.2" 59 version: "2.4.2"
60 build_config: 60 build_config:
@@ -62,7 +62,7 @@ packages: @@ -62,7 +62,7 @@ packages:
62 description: 62 description:
63 name: build_config 63 name: build_config
64 sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" 64 sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33"
65 - url: "https://pub.flutter-io.cn" 65 + url: "https://pub.dev"
66 source: hosted 66 source: hosted
67 version: "1.1.2" 67 version: "1.1.2"
68 build_daemon: 68 build_daemon:
@@ -70,7 +70,7 @@ packages: @@ -70,7 +70,7 @@ packages:
70 description: 70 description:
71 name: build_daemon 71 name: build_daemon
72 sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" 72 sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa"
73 - url: "https://pub.flutter-io.cn" 73 + url: "https://pub.dev"
74 source: hosted 74 source: hosted
75 version: "4.0.4" 75 version: "4.0.4"
76 build_resolvers: 76 build_resolvers:
@@ -78,7 +78,7 @@ packages: @@ -78,7 +78,7 @@ packages:
78 description: 78 description:
79 name: build_resolvers 79 name: build_resolvers
80 sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0 80 sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0
81 - url: "https://pub.flutter-io.cn" 81 + url: "https://pub.dev"
82 source: hosted 82 source: hosted
83 version: "2.4.4" 83 version: "2.4.4"
84 build_runner: 84 build_runner:
@@ -86,7 +86,7 @@ packages: @@ -86,7 +86,7 @@ packages:
86 description: 86 description:
87 name: build_runner 87 name: build_runner
88 sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99" 88 sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99"
89 - url: "https://pub.flutter-io.cn" 89 + url: "https://pub.dev"
90 source: hosted 90 source: hosted
91 version: "2.4.15" 91 version: "2.4.15"
92 build_runner_core: 92 build_runner_core:
@@ -94,7 +94,7 @@ packages: @@ -94,7 +94,7 @@ packages:
94 description: 94 description:
95 name: build_runner_core 95 name: build_runner_core
96 sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" 96 sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021"
97 - url: "https://pub.flutter-io.cn" 97 + url: "https://pub.dev"
98 source: hosted 98 source: hosted
99 version: "8.0.0" 99 version: "8.0.0"
100 built_collection: 100 built_collection:
@@ -102,7 +102,7 @@ packages: @@ -102,7 +102,7 @@ packages:
102 description: 102 description:
103 name: built_collection 103 name: built_collection
104 sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" 104 sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100"
105 - url: "https://pub.flutter-io.cn" 105 + url: "https://pub.dev"
106 source: hosted 106 source: hosted
107 version: "5.1.1" 107 version: "5.1.1"
108 built_value: 108 built_value:
@@ -110,7 +110,7 @@ packages: @@ -110,7 +110,7 @@ packages:
110 description: 110 description:
111 name: built_value 111 name: built_value
112 sha256: f87ea98192116f7093cb214551ce1929caae0681fdba282b3d8b4462adee7bb7 112 sha256: f87ea98192116f7093cb214551ce1929caae0681fdba282b3d8b4462adee7bb7
113 - url: "https://pub.flutter-io.cn" 113 + url: "https://pub.dev"
114 source: hosted 114 source: hosted
115 version: "8.13.0" 115 version: "8.13.0"
116 cached_network_image: 116 cached_network_image:
@@ -118,7 +118,7 @@ packages: @@ -118,7 +118,7 @@ packages:
118 description: 118 description:
119 name: cached_network_image 119 name: cached_network_image
120 sha256: "7c1183e361e5c8b0a0f21a28401eecdbde252441106a9816400dd4c2b2424916" 120 sha256: "7c1183e361e5c8b0a0f21a28401eecdbde252441106a9816400dd4c2b2424916"
121 - url: "https://pub.flutter-io.cn" 121 + url: "https://pub.dev"
122 source: hosted 122 source: hosted
123 version: "3.4.1" 123 version: "3.4.1"
124 cached_network_image_platform_interface: 124 cached_network_image_platform_interface:
@@ -126,7 +126,7 @@ packages: @@ -126,7 +126,7 @@ packages:
126 description: 126 description:
127 name: cached_network_image_platform_interface 127 name: cached_network_image_platform_interface
128 sha256: "35814b016e37fbdc91f7ae18c8caf49ba5c88501813f73ce8a07027a395e2829" 128 sha256: "35814b016e37fbdc91f7ae18c8caf49ba5c88501813f73ce8a07027a395e2829"
129 - url: "https://pub.flutter-io.cn" 129 + url: "https://pub.dev"
130 source: hosted 130 source: hosted
131 version: "4.1.1" 131 version: "4.1.1"
132 cached_network_image_web: 132 cached_network_image_web:
@@ -134,7 +134,7 @@ packages: @@ -134,7 +134,7 @@ packages:
134 description: 134 description:
135 name: cached_network_image_web 135 name: cached_network_image_web
136 sha256: "980842f4e8e2535b8dbd3d5ca0b1f0ba66bf61d14cc3a17a9b4788a3685ba062" 136 sha256: "980842f4e8e2535b8dbd3d5ca0b1f0ba66bf61d14cc3a17a9b4788a3685ba062"
137 - url: "https://pub.flutter-io.cn" 137 + url: "https://pub.dev"
138 source: hosted 138 source: hosted
139 version: "1.3.1" 139 version: "1.3.1"
140 characters: 140 characters:
@@ -142,7 +142,7 @@ packages: @@ -142,7 +142,7 @@ packages:
142 description: 142 description:
143 name: characters 143 name: characters
144 sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" 144 sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
145 - url: "https://pub.flutter-io.cn" 145 + url: "https://pub.dev"
146 source: hosted 146 source: hosted
147 version: "1.3.0" 147 version: "1.3.0"
148 checked_yaml: 148 checked_yaml:
@@ -150,7 +150,7 @@ packages: @@ -150,7 +150,7 @@ packages:
150 description: 150 description:
151 name: checked_yaml 151 name: checked_yaml
152 sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff 152 sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff
153 - url: "https://pub.flutter-io.cn" 153 + url: "https://pub.dev"
154 source: hosted 154 source: hosted
155 version: "2.0.3" 155 version: "2.0.3"
156 clock: 156 clock:
@@ -158,7 +158,7 @@ packages: @@ -158,7 +158,7 @@ packages:
158 description: 158 description:
159 name: clock 159 name: clock
160 sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf 160 sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
161 - url: "https://pub.flutter-io.cn" 161 + url: "https://pub.dev"
162 source: hosted 162 source: hosted
163 version: "1.1.1" 163 version: "1.1.1"
164 code_builder: 164 code_builder:
@@ -166,7 +166,7 @@ packages: @@ -166,7 +166,7 @@ packages:
166 description: 166 description:
167 name: code_builder 167 name: code_builder
168 sha256: "0ec10bf4a89e4c613960bf1e8b42c64127021740fb21640c29c909826a5eea3e" 168 sha256: "0ec10bf4a89e4c613960bf1e8b42c64127021740fb21640c29c909826a5eea3e"
169 - url: "https://pub.flutter-io.cn" 169 + url: "https://pub.dev"
170 source: hosted 170 source: hosted
171 version: "4.10.1" 171 version: "4.10.1"
172 collection: 172 collection:
@@ -174,7 +174,7 @@ packages: @@ -174,7 +174,7 @@ packages:
174 description: 174 description:
175 name: collection 175 name: collection
176 sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf 176 sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf
177 - url: "https://pub.flutter-io.cn" 177 + url: "https://pub.dev"
178 source: hosted 178 source: hosted
179 version: "1.19.0" 179 version: "1.19.0"
180 convert: 180 convert:
@@ -182,7 +182,7 @@ packages: @@ -182,7 +182,7 @@ packages:
182 description: 182 description:
183 name: convert 183 name: convert
184 sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 184 sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68
185 - url: "https://pub.flutter-io.cn" 185 + url: "https://pub.dev"
186 source: hosted 186 source: hosted
187 version: "3.1.2" 187 version: "3.1.2"
188 cross_file: 188 cross_file:
@@ -190,7 +190,7 @@ packages: @@ -190,7 +190,7 @@ packages:
190 description: 190 description:
191 name: cross_file 191 name: cross_file
192 sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" 192 sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670"
193 - url: "https://pub.flutter-io.cn" 193 + url: "https://pub.dev"
194 source: hosted 194 source: hosted
195 version: "0.3.4+2" 195 version: "0.3.4+2"
196 crypto: 196 crypto:
@@ -198,7 +198,7 @@ packages: @@ -198,7 +198,7 @@ packages:
198 description: 198 description:
199 name: crypto 199 name: crypto
200 sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf 200 sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf
201 - url: "https://pub.flutter-io.cn" 201 + url: "https://pub.dev"
202 source: hosted 202 source: hosted
203 version: "3.0.7" 203 version: "3.0.7"
204 cupertino_icons: 204 cupertino_icons:
@@ -206,7 +206,7 @@ packages: @@ -206,7 +206,7 @@ packages:
206 description: 206 description:
207 name: cupertino_icons 207 name: cupertino_icons
208 sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 208 sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6
209 - url: "https://pub.flutter-io.cn" 209 + url: "https://pub.dev"
210 source: hosted 210 source: hosted
211 version: "1.0.8" 211 version: "1.0.8"
212 dart_style: 212 dart_style:
@@ -214,7 +214,7 @@ packages: @@ -214,7 +214,7 @@ packages:
214 description: 214 description:
215 name: dart_style 215 name: dart_style
216 sha256: "27eb0ae77836989a3bc541ce55595e8ceee0992807f14511552a898ddd0d88ac" 216 sha256: "27eb0ae77836989a3bc541ce55595e8ceee0992807f14511552a898ddd0d88ac"
217 - url: "https://pub.flutter-io.cn" 217 + url: "https://pub.dev"
218 source: hosted 218 source: hosted
219 version: "3.0.1" 219 version: "3.0.1"
220 dio: 220 dio:
@@ -222,7 +222,7 @@ packages: @@ -222,7 +222,7 @@ packages:
222 description: 222 description:
223 name: dio 223 name: dio
224 sha256: "852ec3b48cc431ac04fff978413c541502b67ffc3e26921e74e3d994694192c1" 224 sha256: "852ec3b48cc431ac04fff978413c541502b67ffc3e26921e74e3d994694192c1"
225 - url: "https://pub.flutter-io.cn" 225 + url: "https://pub.dev"
226 source: hosted 226 source: hosted
227 version: "5.11.1" 227 version: "5.11.1"
228 dio_web_adapter: 228 dio_web_adapter:
@@ -230,7 +230,7 @@ packages: @@ -230,7 +230,7 @@ packages:
230 description: 230 description:
231 name: dio_web_adapter 231 name: dio_web_adapter
232 sha256: "3a1b2cd7be71086f38504956e3ebcd2837288d231ff454bafa78021244102bfc" 232 sha256: "3a1b2cd7be71086f38504956e3ebcd2837288d231ff454bafa78021244102bfc"
233 - url: "https://pub.flutter-io.cn" 233 + url: "https://pub.dev"
234 source: hosted 234 source: hosted
235 version: "2.2.2" 235 version: "2.2.2"
236 equatable: 236 equatable:
@@ -238,7 +238,7 @@ packages: @@ -238,7 +238,7 @@ packages:
238 description: 238 description:
239 name: equatable 239 name: equatable
240 sha256: "3bce007a596ff8b3119c45d68aaef631272537c03d30e5d4534dd24bf4c5eaa2" 240 sha256: "3bce007a596ff8b3119c45d68aaef631272537c03d30e5d4534dd24bf4c5eaa2"
241 - url: "https://pub.flutter-io.cn" 241 + url: "https://pub.dev"
242 source: hosted 242 source: hosted
243 version: "2.1.0" 243 version: "2.1.0"
244 fake_async: 244 fake_async:
@@ -246,7 +246,7 @@ packages: @@ -246,7 +246,7 @@ packages:
246 description: 246 description:
247 name: fake_async 247 name: fake_async
248 sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" 248 sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
249 - url: "https://pub.flutter-io.cn" 249 + url: "https://pub.dev"
250 source: hosted 250 source: hosted
251 version: "1.3.1" 251 version: "1.3.1"
252 ffi: 252 ffi:
@@ -254,7 +254,7 @@ packages: @@ -254,7 +254,7 @@ packages:
254 description: 254 description:
255 name: ffi 255 name: ffi
256 sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" 256 sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6"
257 - url: "https://pub.flutter-io.cn" 257 + url: "https://pub.dev"
258 source: hosted 258 source: hosted
259 version: "2.1.3" 259 version: "2.1.3"
260 file: 260 file:
@@ -262,7 +262,7 @@ packages: @@ -262,7 +262,7 @@ packages:
262 description: 262 description:
263 name: file 263 name: file
264 sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 264 sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
265 - url: "https://pub.flutter-io.cn" 265 + url: "https://pub.dev"
266 source: hosted 266 source: hosted
267 version: "7.0.1" 267 version: "7.0.1"
268 file_selector_linux: 268 file_selector_linux:
@@ -270,7 +270,7 @@ packages: @@ -270,7 +270,7 @@ packages:
270 description: 270 description:
271 name: file_selector_linux 271 name: file_selector_linux
272 sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33" 272 sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33"
273 - url: "https://pub.flutter-io.cn" 273 + url: "https://pub.dev"
274 source: hosted 274 source: hosted
275 version: "0.9.3+2" 275 version: "0.9.3+2"
276 file_selector_macos: 276 file_selector_macos:
@@ -278,7 +278,7 @@ packages: @@ -278,7 +278,7 @@ packages:
278 description: 278 description:
279 name: file_selector_macos 279 name: file_selector_macos
280 sha256: "8c9250b2bd2d8d4268e39c82543bacbaca0fda7d29e0728c3c4bbb7c820fd711" 280 sha256: "8c9250b2bd2d8d4268e39c82543bacbaca0fda7d29e0728c3c4bbb7c820fd711"
281 - url: "https://pub.flutter-io.cn" 281 + url: "https://pub.dev"
282 source: hosted 282 source: hosted
283 version: "0.9.4+3" 283 version: "0.9.4+3"
284 file_selector_platform_interface: 284 file_selector_platform_interface:
@@ -286,7 +286,7 @@ packages: @@ -286,7 +286,7 @@ packages:
286 description: 286 description:
287 name: file_selector_platform_interface 287 name: file_selector_platform_interface
288 sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b 288 sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b
289 - url: "https://pub.flutter-io.cn" 289 + url: "https://pub.dev"
290 source: hosted 290 source: hosted
291 version: "2.6.2" 291 version: "2.6.2"
292 file_selector_windows: 292 file_selector_windows:
@@ -294,7 +294,7 @@ packages: @@ -294,7 +294,7 @@ packages:
294 description: 294 description:
295 name: file_selector_windows 295 name: file_selector_windows
296 sha256: "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b" 296 sha256: "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b"
297 - url: "https://pub.flutter-io.cn" 297 + url: "https://pub.dev"
298 source: hosted 298 source: hosted
299 version: "0.9.3+4" 299 version: "0.9.3+4"
300 fixnum: 300 fixnum:
@@ -302,7 +302,7 @@ packages: @@ -302,7 +302,7 @@ packages:
302 description: 302 description:
303 name: fixnum 303 name: fixnum
304 sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be 304 sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
305 - url: "https://pub.flutter-io.cn" 305 + url: "https://pub.dev"
306 source: hosted 306 source: hosted
307 version: "1.1.1" 307 version: "1.1.1"
308 fl_chart: 308 fl_chart:
@@ -310,7 +310,7 @@ packages: @@ -310,7 +310,7 @@ packages:
310 description: 310 description:
311 name: fl_chart 311 name: fl_chart
312 sha256: "5276944c6ffc975ae796569a826c38a62d2abcf264e26b88fa6f482e107f4237" 312 sha256: "5276944c6ffc975ae796569a826c38a62d2abcf264e26b88fa6f482e107f4237"
313 - url: "https://pub.flutter-io.cn" 313 + url: "https://pub.dev"
314 source: hosted 314 source: hosted
315 version: "0.70.2" 315 version: "0.70.2"
316 flutter: 316 flutter:
@@ -323,7 +323,7 @@ packages: @@ -323,7 +323,7 @@ packages:
323 description: 323 description:
324 name: flutter_cache_manager 324 name: flutter_cache_manager
325 sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386" 325 sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386"
326 - url: "https://pub.flutter-io.cn" 326 + url: "https://pub.dev"
327 source: hosted 327 source: hosted
328 version: "3.4.1" 328 version: "3.4.1"
329 flutter_lints: 329 flutter_lints:
@@ -331,7 +331,7 @@ packages: @@ -331,7 +331,7 @@ packages:
331 description: 331 description:
332 name: flutter_lints 332 name: flutter_lints
333 sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1" 333 sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1"
334 - url: "https://pub.flutter-io.cn" 334 + url: "https://pub.dev"
335 source: hosted 335 source: hosted
336 version: "5.0.0" 336 version: "5.0.0"
337 flutter_localizations: 337 flutter_localizations:
@@ -344,7 +344,7 @@ packages: @@ -344,7 +344,7 @@ packages:
344 description: 344 description:
345 name: flutter_plugin_android_lifecycle 345 name: flutter_plugin_android_lifecycle
346 sha256: "6382ce712ff69b0f719640ce957559dde459e55ecd433c767e06d139ddf16cab" 346 sha256: "6382ce712ff69b0f719640ce957559dde459e55ecd433c767e06d139ddf16cab"
347 - url: "https://pub.flutter-io.cn" 347 + url: "https://pub.dev"
348 source: hosted 348 source: hosted
349 version: "2.0.29" 349 version: "2.0.29"
350 flutter_test: 350 flutter_test:
@@ -357,7 +357,7 @@ packages: @@ -357,7 +357,7 @@ packages:
357 description: 357 description:
358 name: flutter_timezone 358 name: flutter_timezone
359 sha256: "869677426fde92dbe170fb7d2d4929f2a8343c2f5f62f08b0bb64f908630b073" 359 sha256: "869677426fde92dbe170fb7d2d4929f2a8343c2f5f62f08b0bb64f908630b073"
360 - url: "https://pub.flutter-io.cn" 360 + url: "https://pub.dev"
361 source: hosted 361 source: hosted
362 version: "5.1.0" 362 version: "5.1.0"
363 flutter_web_plugins: 363 flutter_web_plugins:
@@ -379,7 +379,7 @@ packages: @@ -379,7 +379,7 @@ packages:
379 description: 379 description:
380 name: frontend_server_client 380 name: frontend_server_client
381 sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 381 sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694
382 - url: "https://pub.flutter-io.cn" 382 + url: "https://pub.dev"
383 source: hosted 383 source: hosted
384 version: "4.0.0" 384 version: "4.0.0"
385 get: 385 get:
@@ -387,7 +387,7 @@ packages: @@ -387,7 +387,7 @@ packages:
387 description: 387 description:
388 name: get 388 name: get
389 sha256: "5ed34a7925b85336e15d472cc4cfe7d9ebf4ab8e8b9f688585bf6b50f4c3d79a" 389 sha256: "5ed34a7925b85336e15d472cc4cfe7d9ebf4ab8e8b9f688585bf6b50f4c3d79a"
390 - url: "https://pub.flutter-io.cn" 390 + url: "https://pub.dev"
391 source: hosted 391 source: hosted
392 version: "4.7.3" 392 version: "4.7.3"
393 glob: 393 glob:
@@ -395,7 +395,7 @@ packages: @@ -395,7 +395,7 @@ packages:
395 description: 395 description:
396 name: glob 396 name: glob
397 sha256: "218aeb56050c714f62a3182775320dfa04602b55074873e24e31bbd39bda96fb" 397 sha256: "218aeb56050c714f62a3182775320dfa04602b55074873e24e31bbd39bda96fb"
398 - url: "https://pub.flutter-io.cn" 398 + url: "https://pub.dev"
399 source: hosted 399 source: hosted
400 version: "2.2.0" 400 version: "2.2.0"
401 graphs: 401 graphs:
@@ -403,7 +403,7 @@ packages: @@ -403,7 +403,7 @@ packages:
403 description: 403 description:
404 name: graphs 404 name: graphs
405 sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" 405 sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0"
406 - url: "https://pub.flutter-io.cn" 406 + url: "https://pub.dev"
407 source: hosted 407 source: hosted
408 version: "2.3.2" 408 version: "2.3.2"
409 http: 409 http:
@@ -411,7 +411,7 @@ packages: @@ -411,7 +411,7 @@ packages:
411 description: 411 description:
412 name: http 412 name: http
413 sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412" 413 sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412"
414 - url: "https://pub.flutter-io.cn" 414 + url: "https://pub.dev"
415 source: hosted 415 source: hosted
416 version: "1.6.0" 416 version: "1.6.0"
417 http_multi_server: 417 http_multi_server:
@@ -419,7 +419,7 @@ packages: @@ -419,7 +419,7 @@ packages:
419 description: 419 description:
420 name: http_multi_server 420 name: http_multi_server
421 sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 421 sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8
422 - url: "https://pub.flutter-io.cn" 422 + url: "https://pub.dev"
423 source: hosted 423 source: hosted
424 version: "3.2.2" 424 version: "3.2.2"
425 http_parser: 425 http_parser:
@@ -427,7 +427,7 @@ packages: @@ -427,7 +427,7 @@ packages:
427 description: 427 description:
428 name: http_parser 428 name: http_parser
429 sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" 429 sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
430 - url: "https://pub.flutter-io.cn" 430 + url: "https://pub.dev"
431 source: hosted 431 source: hosted
432 version: "4.1.2" 432 version: "4.1.2"
433 image_cropper: 433 image_cropper:
@@ -471,7 +471,7 @@ packages: @@ -471,7 +471,7 @@ packages:
471 description: 471 description:
472 name: image_picker_android 472 name: image_picker_android
473 sha256: e83b2b05141469c5e19d77e1dfa11096b6b1567d09065b2265d7c6904560050c 473 sha256: e83b2b05141469c5e19d77e1dfa11096b6b1567d09065b2265d7c6904560050c
474 - url: "https://pub.flutter-io.cn" 474 + url: "https://pub.dev"
475 source: hosted 475 source: hosted
476 version: "0.8.13" 476 version: "0.8.13"
477 image_picker_for_web: 477 image_picker_for_web:
@@ -479,7 +479,7 @@ packages: @@ -479,7 +479,7 @@ packages:
479 description: 479 description:
480 name: image_picker_for_web 480 name: image_picker_for_web
481 sha256: "40c2a6a0da15556dc0f8e38a3246064a971a9f512386c3339b89f76db87269b6" 481 sha256: "40c2a6a0da15556dc0f8e38a3246064a971a9f512386c3339b89f76db87269b6"
482 - url: "https://pub.flutter-io.cn" 482 + url: "https://pub.dev"
483 source: hosted 483 source: hosted
484 version: "3.1.0" 484 version: "3.1.0"
485 image_picker_ios: 485 image_picker_ios:
@@ -487,7 +487,7 @@ packages: @@ -487,7 +487,7 @@ packages:
487 description: 487 description:
488 name: image_picker_ios 488 name: image_picker_ios
489 sha256: eb06fe30bab4c4497bad449b66448f50edcc695f1c59408e78aa3a8059eb8f0e 489 sha256: eb06fe30bab4c4497bad449b66448f50edcc695f1c59408e78aa3a8059eb8f0e
490 - url: "https://pub.flutter-io.cn" 490 + url: "https://pub.dev"
491 source: hosted 491 source: hosted
492 version: "0.8.13" 492 version: "0.8.13"
493 image_picker_linux: 493 image_picker_linux:
@@ -495,7 +495,7 @@ packages: @@ -495,7 +495,7 @@ packages:
495 description: 495 description:
496 name: image_picker_linux 496 name: image_picker_linux
497 sha256: "1f81c5f2046b9ab724f85523e4af65be1d47b038160a8c8deed909762c308ed4" 497 sha256: "1f81c5f2046b9ab724f85523e4af65be1d47b038160a8c8deed909762c308ed4"
498 - url: "https://pub.flutter-io.cn" 498 + url: "https://pub.dev"
499 source: hosted 499 source: hosted
500 version: "0.2.2" 500 version: "0.2.2"
501 image_picker_macos: 501 image_picker_macos:
@@ -503,7 +503,7 @@ packages: @@ -503,7 +503,7 @@ packages:
503 description: 503 description:
504 name: image_picker_macos 504 name: image_picker_macos
505 sha256: d58cd9d67793d52beefd6585b12050af0a7663c0c2a6ece0fb110a35d6955e04 505 sha256: d58cd9d67793d52beefd6585b12050af0a7663c0c2a6ece0fb110a35d6955e04
506 - url: "https://pub.flutter-io.cn" 506 + url: "https://pub.dev"
507 source: hosted 507 source: hosted
508 version: "0.2.2" 508 version: "0.2.2"
509 image_picker_ohos: 509 image_picker_ohos:
@@ -520,7 +520,7 @@ packages: @@ -520,7 +520,7 @@ packages:
520 description: 520 description:
521 name: image_picker_platform_interface 521 name: image_picker_platform_interface
522 sha256: "9f143b0dba3e459553209e20cc425c9801af48e6dfa4f01a0fcf927be3f41665" 522 sha256: "9f143b0dba3e459553209e20cc425c9801af48e6dfa4f01a0fcf927be3f41665"
523 - url: "https://pub.flutter-io.cn" 523 + url: "https://pub.dev"
524 source: hosted 524 source: hosted
525 version: "2.11.0" 525 version: "2.11.0"
526 image_picker_windows: 526 image_picker_windows:
@@ -528,7 +528,7 @@ packages: @@ -528,7 +528,7 @@ packages:
528 description: 528 description:
529 name: image_picker_windows 529 name: image_picker_windows
530 sha256: d248c86554a72b5495a31c56f060cf73a41c7ff541689327b1a7dbccc33adfae 530 sha256: d248c86554a72b5495a31c56f060cf73a41c7ff541689327b1a7dbccc33adfae
531 - url: "https://pub.flutter-io.cn" 531 + url: "https://pub.dev"
532 source: hosted 532 source: hosted
533 version: "0.2.2" 533 version: "0.2.2"
534 intl: 534 intl:
@@ -536,7 +536,7 @@ packages: @@ -536,7 +536,7 @@ packages:
536 description: 536 description:
537 name: intl 537 name: intl
538 sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf 538 sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf
539 - url: "https://pub.flutter-io.cn" 539 + url: "https://pub.dev"
540 source: hosted 540 source: hosted
541 version: "0.19.0" 541 version: "0.19.0"
542 io: 542 io:
@@ -544,7 +544,7 @@ packages: @@ -544,7 +544,7 @@ packages:
544 description: 544 description:
545 name: io 545 name: io
546 sha256: "2635216ca6a737e60de577ffa1a48a0bec76ca8a62917cfc1bb88c14c570646f" 546 sha256: "2635216ca6a737e60de577ffa1a48a0bec76ca8a62917cfc1bb88c14c570646f"
547 - url: "https://pub.flutter-io.cn" 547 + url: "https://pub.dev"
548 source: hosted 548 source: hosted
549 version: "1.1.0" 549 version: "1.1.0"
550 js: 550 js:
@@ -552,7 +552,7 @@ packages: @@ -552,7 +552,7 @@ packages:
552 description: 552 description:
553 name: js 553 name: js
554 sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf 554 sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf
555 - url: "https://pub.flutter-io.cn" 555 + url: "https://pub.dev"
556 source: hosted 556 source: hosted
557 version: "0.7.1" 557 version: "0.7.1"
558 json_annotation: 558 json_annotation:
@@ -560,7 +560,7 @@ packages: @@ -560,7 +560,7 @@ packages:
560 description: 560 description:
561 name: json_annotation 561 name: json_annotation
562 sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" 562 sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
563 - url: "https://pub.flutter-io.cn" 563 + url: "https://pub.dev"
564 source: hosted 564 source: hosted
565 version: "4.9.0" 565 version: "4.9.0"
566 leak_tracker: 566 leak_tracker:
@@ -568,7 +568,7 @@ packages: @@ -568,7 +568,7 @@ packages:
568 description: 568 description:
569 name: leak_tracker 569 name: leak_tracker
570 sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" 570 sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06"
571 - url: "https://pub.flutter-io.cn" 571 + url: "https://pub.dev"
572 source: hosted 572 source: hosted
573 version: "10.0.7" 573 version: "10.0.7"
574 leak_tracker_flutter_testing: 574 leak_tracker_flutter_testing:
@@ -576,7 +576,7 @@ packages: @@ -576,7 +576,7 @@ packages:
576 description: 576 description:
577 name: leak_tracker_flutter_testing 577 name: leak_tracker_flutter_testing
578 sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" 578 sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379"
579 - url: "https://pub.flutter-io.cn" 579 + url: "https://pub.dev"
580 source: hosted 580 source: hosted
581 version: "3.0.8" 581 version: "3.0.8"
582 leak_tracker_testing: 582 leak_tracker_testing:
@@ -584,7 +584,7 @@ packages: @@ -584,7 +584,7 @@ packages:
584 description: 584 description:
585 name: leak_tracker_testing 585 name: leak_tracker_testing
586 sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" 586 sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
587 - url: "https://pub.flutter-io.cn" 587 + url: "https://pub.dev"
588 source: hosted 588 source: hosted
589 version: "3.0.1" 589 version: "3.0.1"
590 lints: 590 lints:
@@ -592,7 +592,7 @@ packages: @@ -592,7 +592,7 @@ packages:
592 description: 592 description:
593 name: lints 593 name: lints
594 sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7 594 sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7
595 - url: "https://pub.flutter-io.cn" 595 + url: "https://pub.dev"
596 source: hosted 596 source: hosted
597 version: "5.1.1" 597 version: "5.1.1"
598 logger: 598 logger:
@@ -600,7 +600,7 @@ packages: @@ -600,7 +600,7 @@ packages:
600 description: 600 description:
601 name: logger 601 name: logger
602 sha256: "2a0dc097e7b01d942475bdd552356db2d0f768b05540bd4b2b53f1840f2239a7" 602 sha256: "2a0dc097e7b01d942475bdd552356db2d0f768b05540bd4b2b53f1840f2239a7"
603 - url: "https://pub.flutter-io.cn" 603 + url: "https://pub.dev"
604 source: hosted 604 source: hosted
605 version: "2.8.0" 605 version: "2.8.0"
606 logging: 606 logging:
@@ -608,7 +608,7 @@ packages: @@ -608,7 +608,7 @@ packages:
608 description: 608 description:
609 name: logging 609 name: logging
610 sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 610 sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61
611 - url: "https://pub.flutter-io.cn" 611 + url: "https://pub.dev"
612 source: hosted 612 source: hosted
613 version: "1.3.0" 613 version: "1.3.0"
614 lottie: 614 lottie:
@@ -616,7 +616,7 @@ packages: @@ -616,7 +616,7 @@ packages:
616 description: 616 description:
617 name: lottie 617 name: lottie
618 sha256: c5fa04a80a620066c15cf19cc44773e19e9b38e989ff23ea32e5903ef1015950 618 sha256: c5fa04a80a620066c15cf19cc44773e19e9b38e989ff23ea32e5903ef1015950
619 - url: "https://pub.flutter-io.cn" 619 + url: "https://pub.dev"
620 source: hosted 620 source: hosted
621 version: "3.3.1" 621 version: "3.3.1"
622 matcher: 622 matcher:
@@ -624,7 +624,7 @@ packages: @@ -624,7 +624,7 @@ packages:
624 description: 624 description:
625 name: matcher 625 name: matcher
626 sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb 626 sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
627 - url: "https://pub.flutter-io.cn" 627 + url: "https://pub.dev"
628 source: hosted 628 source: hosted
629 version: "0.12.16+1" 629 version: "0.12.16+1"
630 material_color_utilities: 630 material_color_utilities:
@@ -632,23 +632,23 @@ packages: @@ -632,23 +632,23 @@ packages:
632 description: 632 description:
633 name: material_color_utilities 633 name: material_color_utilities
634 sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec 634 sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
635 - url: "https://pub.flutter-io.cn" 635 + url: "https://pub.dev"
636 source: hosted 636 source: hosted
637 version: "0.11.1" 637 version: "0.11.1"
638 meta: 638 meta:
639 dependency: "direct overridden" 639 dependency: "direct overridden"
640 description: 640 description:
641 name: meta 641 name: meta
642 - sha256: "307249ce4ff29d58a18e97f6345f539382eb9c9c29ecda628900f31de0443dd9"  
643 - url: "https://pub.flutter-io.cn" 642 + sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
  643 + url: "https://pub.dev"
644 source: hosted 644 source: hosted
645 - version: "1.19.0" 645 + version: "1.17.0"
646 mime: 646 mime:
647 dependency: transitive 647 dependency: transitive
648 description: 648 description:
649 name: mime 649 name: mime
650 sha256: bd47de35f07e27267e69c8c8b22edf9473bfee170a60d60fcc93730c5144b7f6 650 sha256: bd47de35f07e27267e69c8c8b22edf9473bfee170a60d60fcc93730c5144b7f6
651 - url: "https://pub.flutter-io.cn" 651 + url: "https://pub.dev"
652 source: hosted 652 source: hosted
653 version: "2.1.0" 653 version: "2.1.0"
654 octo_image: 654 octo_image:
@@ -656,7 +656,7 @@ packages: @@ -656,7 +656,7 @@ packages:
656 description: 656 description:
657 name: octo_image 657 name: octo_image
658 sha256: "34faa6639a78c7e3cbe79be6f9f96535867e879748ade7d17c9b1ae7536293bd" 658 sha256: "34faa6639a78c7e3cbe79be6f9f96535867e879748ade7d17c9b1ae7536293bd"
659 - url: "https://pub.flutter-io.cn" 659 + url: "https://pub.dev"
660 source: hosted 660 source: hosted
661 version: "2.1.0" 661 version: "2.1.0"
662 package_config: 662 package_config:
@@ -664,7 +664,7 @@ packages: @@ -664,7 +664,7 @@ packages:
664 description: 664 description:
665 name: package_config 665 name: package_config
666 sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc 666 sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc
667 - url: "https://pub.flutter-io.cn" 667 + url: "https://pub.dev"
668 source: hosted 668 source: hosted
669 version: "2.2.0" 669 version: "2.2.0"
670 path: 670 path:
@@ -672,7 +672,7 @@ packages: @@ -672,7 +672,7 @@ packages:
672 description: 672 description:
673 name: path 673 name: path
674 sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" 674 sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
675 - url: "https://pub.flutter-io.cn" 675 + url: "https://pub.dev"
676 source: hosted 676 source: hosted
677 version: "1.9.0" 677 version: "1.9.0"
678 path_provider: 678 path_provider:
@@ -689,7 +689,7 @@ packages: @@ -689,7 +689,7 @@ packages:
689 description: 689 description:
690 name: path_provider_android 690 name: path_provider_android
691 sha256: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9 691 sha256: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9
692 - url: "https://pub.flutter-io.cn" 692 + url: "https://pub.dev"
693 source: hosted 693 source: hosted
694 version: "2.2.17" 694 version: "2.2.17"
695 path_provider_foundation: 695 path_provider_foundation:
@@ -697,7 +697,7 @@ packages: @@ -697,7 +697,7 @@ packages:
697 description: 697 description:
698 name: path_provider_foundation 698 name: path_provider_foundation
699 sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942" 699 sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942"
700 - url: "https://pub.flutter-io.cn" 700 + url: "https://pub.dev"
701 source: hosted 701 source: hosted
702 version: "2.4.1" 702 version: "2.4.1"
703 path_provider_linux: 703 path_provider_linux:
@@ -705,7 +705,7 @@ packages: @@ -705,7 +705,7 @@ packages:
705 description: 705 description:
706 name: path_provider_linux 706 name: path_provider_linux
707 sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 707 sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279
708 - url: "https://pub.flutter-io.cn" 708 + url: "https://pub.dev"
709 source: hosted 709 source: hosted
710 version: "2.2.1" 710 version: "2.2.1"
711 path_provider_ohos: 711 path_provider_ohos:
@@ -722,7 +722,7 @@ packages: @@ -722,7 +722,7 @@ packages:
722 description: 722 description:
723 name: path_provider_platform_interface 723 name: path_provider_platform_interface
724 sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" 724 sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
725 - url: "https://pub.flutter-io.cn" 725 + url: "https://pub.dev"
726 source: hosted 726 source: hosted
727 version: "2.1.2" 727 version: "2.1.2"
728 path_provider_windows: 728 path_provider_windows:
@@ -730,7 +730,7 @@ packages: @@ -730,7 +730,7 @@ packages:
730 description: 730 description:
731 name: path_provider_windows 731 name: path_provider_windows
732 sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 732 sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7
733 - url: "https://pub.flutter-io.cn" 733 + url: "https://pub.dev"
734 source: hosted 734 source: hosted
735 version: "2.3.0" 735 version: "2.3.0"
736 permission_handler: 736 permission_handler:
@@ -738,7 +738,7 @@ packages: @@ -738,7 +738,7 @@ packages:
738 description: 738 description:
739 name: permission_handler 739 name: permission_handler
740 sha256: "59adad729136f01ea9e35a48f5d1395e25cba6cea552249ddbe9cf950f5d7849" 740 sha256: "59adad729136f01ea9e35a48f5d1395e25cba6cea552249ddbe9cf950f5d7849"
741 - url: "https://pub.flutter-io.cn" 741 + url: "https://pub.dev"
742 source: hosted 742 source: hosted
743 version: "11.4.0" 743 version: "11.4.0"
744 permission_handler_android: 744 permission_handler_android:
@@ -746,7 +746,7 @@ packages: @@ -746,7 +746,7 @@ packages:
746 description: 746 description:
747 name: permission_handler_android 747 name: permission_handler_android
748 sha256: d3971dcdd76182a0c198c096b5db2f0884b0d4196723d21a866fc4cdea057ebc 748 sha256: d3971dcdd76182a0c198c096b5db2f0884b0d4196723d21a866fc4cdea057ebc
749 - url: "https://pub.flutter-io.cn" 749 + url: "https://pub.dev"
750 source: hosted 750 source: hosted
751 version: "12.1.0" 751 version: "12.1.0"
752 permission_handler_apple: 752 permission_handler_apple:
@@ -754,7 +754,7 @@ packages: @@ -754,7 +754,7 @@ packages:
754 description: 754 description:
755 name: permission_handler_apple 755 name: permission_handler_apple
756 sha256: f49cb15a064ea9d974fc7fbb302099353b7b170d07284e86e264561579e5bcf8 756 sha256: f49cb15a064ea9d974fc7fbb302099353b7b170d07284e86e264561579e5bcf8
757 - url: "https://pub.flutter-io.cn" 757 + url: "https://pub.dev"
758 source: hosted 758 source: hosted
759 version: "9.6.1" 759 version: "9.6.1"
760 permission_handler_html: 760 permission_handler_html:
@@ -762,7 +762,7 @@ packages: @@ -762,7 +762,7 @@ packages:
762 description: 762 description:
763 name: permission_handler_html 763 name: permission_handler_html
764 sha256: "6ea98b3f17f60d3b527f2647ed2ab4dc0f6bfe25b22cb1c363f5d8f62252f6ac" 764 sha256: "6ea98b3f17f60d3b527f2647ed2ab4dc0f6bfe25b22cb1c363f5d8f62252f6ac"
765 - url: "https://pub.flutter-io.cn" 765 + url: "https://pub.dev"
766 source: hosted 766 source: hosted
767 version: "0.1.4+1" 767 version: "0.1.4+1"
768 permission_handler_ohos: 768 permission_handler_ohos:
@@ -779,7 +779,7 @@ packages: @@ -779,7 +779,7 @@ packages:
779 description: 779 description:
780 name: permission_handler_platform_interface 780 name: permission_handler_platform_interface
781 sha256: ed86a61c190258fdd65de395ea0632822e3415c1faec38eae0c31b479c28a531 781 sha256: ed86a61c190258fdd65de395ea0632822e3415c1faec38eae0c31b479c28a531
782 - url: "https://pub.flutter-io.cn" 782 + url: "https://pub.dev"
783 source: hosted 783 source: hosted
784 version: "4.4.1" 784 version: "4.4.1"
785 permission_handler_windows: 785 permission_handler_windows:
@@ -787,7 +787,7 @@ packages: @@ -787,7 +787,7 @@ packages:
787 description: 787 description:
788 name: permission_handler_windows 788 name: permission_handler_windows
789 sha256: caeae01858a0a7d2df67a445ac98e1ad95e55a0e77c73044f4e9b1c8c2289cbd 789 sha256: caeae01858a0a7d2df67a445ac98e1ad95e55a0e77c73044f4e9b1c8c2289cbd
790 - url: "https://pub.flutter-io.cn" 790 + url: "https://pub.dev"
791 source: hosted 791 source: hosted
792 version: "0.2.2" 792 version: "0.2.2"
793 pigeon: 793 pigeon:
@@ -804,7 +804,7 @@ packages: @@ -804,7 +804,7 @@ packages:
804 description: 804 description:
805 name: platform 805 name: platform
806 sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" 806 sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984"
807 - url: "https://pub.flutter-io.cn" 807 + url: "https://pub.dev"
808 source: hosted 808 source: hosted
809 version: "3.1.6" 809 version: "3.1.6"
810 plugin_platform_interface: 810 plugin_platform_interface:
@@ -812,7 +812,7 @@ packages: @@ -812,7 +812,7 @@ packages:
812 description: 812 description:
813 name: plugin_platform_interface 813 name: plugin_platform_interface
814 sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" 814 sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
815 - url: "https://pub.flutter-io.cn" 815 + url: "https://pub.dev"
816 source: hosted 816 source: hosted
817 version: "2.1.8" 817 version: "2.1.8"
818 pool: 818 pool:
@@ -820,7 +820,7 @@ packages: @@ -820,7 +820,7 @@ packages:
820 description: 820 description:
821 name: pool 821 name: pool
822 sha256: "4177f68c237ea2128d1bee66ac17b2ce05ba3dbaafcbdd54c5d40a39d0b6b11c" 822 sha256: "4177f68c237ea2128d1bee66ac17b2ce05ba3dbaafcbdd54c5d40a39d0b6b11c"
823 - url: "https://pub.flutter-io.cn" 823 + url: "https://pub.dev"
824 source: hosted 824 source: hosted
825 version: "1.5.3" 825 version: "1.5.3"
826 posix: 826 posix:
@@ -828,7 +828,7 @@ packages: @@ -828,7 +828,7 @@ packages:
828 description: 828 description:
829 name: posix 829 name: posix
830 sha256: bc1bad54ad2b735816e31f8d4600cfde6c7839975085ddfbca48b6c9f7c4044e 830 sha256: bc1bad54ad2b735816e31f8d4600cfde6c7839975085ddfbca48b6c9f7c4044e
831 - url: "https://pub.flutter-io.cn" 831 + url: "https://pub.dev"
832 source: hosted 832 source: hosted
833 version: "6.5.2" 833 version: "6.5.2"
834 pretty_dio_logger: 834 pretty_dio_logger:
@@ -836,7 +836,7 @@ packages: @@ -836,7 +836,7 @@ packages:
836 description: 836 description:
837 name: pretty_dio_logger 837 name: pretty_dio_logger
838 sha256: "36f2101299786d567869493e2f5731de61ce130faa14679473b26905a92b6407" 838 sha256: "36f2101299786d567869493e2f5731de61ce130faa14679473b26905a92b6407"
839 - url: "https://pub.flutter-io.cn" 839 + url: "https://pub.dev"
840 source: hosted 840 source: hosted
841 version: "1.4.0" 841 version: "1.4.0"
842 pub_semver: 842 pub_semver:
@@ -844,7 +844,7 @@ packages: @@ -844,7 +844,7 @@ packages:
844 description: 844 description:
845 name: pub_semver 845 name: pub_semver
846 sha256: "261236774e8b1d69cfc6b9eabbc96c40f25e7a2d6b171f3385d4f65d5734fb24" 846 sha256: "261236774e8b1d69cfc6b9eabbc96c40f25e7a2d6b171f3385d4f65d5734fb24"
847 - url: "https://pub.flutter-io.cn" 847 + url: "https://pub.dev"
848 source: hosted 848 source: hosted
849 version: "2.2.1" 849 version: "2.2.1"
850 pubspec_parse: 850 pubspec_parse:
@@ -852,7 +852,7 @@ packages: @@ -852,7 +852,7 @@ packages:
852 description: 852 description:
853 name: pubspec_parse 853 name: pubspec_parse
854 sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" 854 sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082"
855 - url: "https://pub.flutter-io.cn" 855 + url: "https://pub.dev"
856 source: hosted 856 source: hosted
857 version: "1.5.0" 857 version: "1.5.0"
858 rxdart: 858 rxdart:
@@ -860,7 +860,7 @@ packages: @@ -860,7 +860,7 @@ packages:
860 description: 860 description:
861 name: rxdart 861 name: rxdart
862 sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" 862 sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962"
863 - url: "https://pub.flutter-io.cn" 863 + url: "https://pub.dev"
864 source: hosted 864 source: hosted
865 version: "0.28.0" 865 version: "0.28.0"
866 share_plus: 866 share_plus:
@@ -895,7 +895,7 @@ packages: @@ -895,7 +895,7 @@ packages:
895 description: 895 description:
896 name: shared_preferences_android 896 name: shared_preferences_android
897 sha256: "5bcf0772a761b04f8c6bf814721713de6f3e5d9d89caf8d3fe031b02a342379e" 897 sha256: "5bcf0772a761b04f8c6bf814721713de6f3e5d9d89caf8d3fe031b02a342379e"
898 - url: "https://pub.flutter-io.cn" 898 + url: "https://pub.dev"
899 source: hosted 899 source: hosted
900 version: "2.4.11" 900 version: "2.4.11"
901 shared_preferences_foundation: 901 shared_preferences_foundation:
@@ -903,7 +903,7 @@ packages: @@ -903,7 +903,7 @@ packages:
903 description: 903 description:
904 name: shared_preferences_foundation 904 name: shared_preferences_foundation
905 sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" 905 sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03"
906 - url: "https://pub.flutter-io.cn" 906 + url: "https://pub.dev"
907 source: hosted 907 source: hosted
908 version: "2.5.4" 908 version: "2.5.4"
909 shared_preferences_linux: 909 shared_preferences_linux:
@@ -911,7 +911,7 @@ packages: @@ -911,7 +911,7 @@ packages:
911 description: 911 description:
912 name: shared_preferences_linux 912 name: shared_preferences_linux
913 sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" 913 sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f"
914 - url: "https://pub.flutter-io.cn" 914 + url: "https://pub.dev"
915 source: hosted 915 source: hosted
916 version: "2.4.1" 916 version: "2.4.1"
917 shared_preferences_ohos: 917 shared_preferences_ohos:
@@ -928,7 +928,7 @@ packages: @@ -928,7 +928,7 @@ packages:
928 description: 928 description:
929 name: shared_preferences_platform_interface 929 name: shared_preferences_platform_interface
930 sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" 930 sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80"
931 - url: "https://pub.flutter-io.cn" 931 + url: "https://pub.dev"
932 source: hosted 932 source: hosted
933 version: "2.4.1" 933 version: "2.4.1"
934 shared_preferences_web: 934 shared_preferences_web:
@@ -936,7 +936,7 @@ packages: @@ -936,7 +936,7 @@ packages:
936 description: 936 description:
937 name: shared_preferences_web 937 name: shared_preferences_web
938 sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019 938 sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019
939 - url: "https://pub.flutter-io.cn" 939 + url: "https://pub.dev"
940 source: hosted 940 source: hosted
941 version: "2.4.3" 941 version: "2.4.3"
942 shared_preferences_windows: 942 shared_preferences_windows:
@@ -944,7 +944,7 @@ packages: @@ -944,7 +944,7 @@ packages:
944 description: 944 description:
945 name: shared_preferences_windows 945 name: shared_preferences_windows
946 sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" 946 sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1"
947 - url: "https://pub.flutter-io.cn" 947 + url: "https://pub.dev"
948 source: hosted 948 source: hosted
949 version: "2.4.1" 949 version: "2.4.1"
950 shelf: 950 shelf:
@@ -952,7 +952,7 @@ packages: @@ -952,7 +952,7 @@ packages:
952 description: 952 description:
953 name: shelf 953 name: shelf
954 sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 954 sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12
955 - url: "https://pub.flutter-io.cn" 955 + url: "https://pub.dev"
956 source: hosted 956 source: hosted
957 version: "1.4.2" 957 version: "1.4.2"
958 shelf_web_socket: 958 shelf_web_socket:
@@ -960,7 +960,7 @@ packages: @@ -960,7 +960,7 @@ packages:
960 description: 960 description:
961 name: shelf_web_socket 961 name: shelf_web_socket
962 sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" 962 sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925"
963 - url: "https://pub.flutter-io.cn" 963 + url: "https://pub.dev"
964 source: hosted 964 source: hosted
965 version: "3.0.0" 965 version: "3.0.0"
966 simple_gesture_detector: 966 simple_gesture_detector:
@@ -968,7 +968,7 @@ packages: @@ -968,7 +968,7 @@ packages:
968 description: 968 description:
969 name: simple_gesture_detector 969 name: simple_gesture_detector
970 sha256: ba2cd5af24ff20a0b8d609cec3f40e5b0744d2a71804a2616ae086b9c19d19a3 970 sha256: ba2cd5af24ff20a0b8d609cec3f40e5b0744d2a71804a2616ae086b9c19d19a3
971 - url: "https://pub.flutter-io.cn" 971 + url: "https://pub.dev"
972 source: hosted 972 source: hosted
973 version: "0.2.1" 973 version: "0.2.1"
974 sky_engine: 974 sky_engine:
@@ -981,7 +981,7 @@ packages: @@ -981,7 +981,7 @@ packages:
981 description: 981 description:
982 name: source_span 982 name: source_span
983 sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" 983 sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
984 - url: "https://pub.flutter-io.cn" 984 + url: "https://pub.dev"
985 source: hosted 985 source: hosted
986 version: "1.10.0" 986 version: "1.10.0"
987 sqflite: 987 sqflite:
@@ -998,7 +998,7 @@ packages: @@ -998,7 +998,7 @@ packages:
998 description: 998 description:
999 name: sqflite_android 999 name: sqflite_android
1000 sha256: "78f489aab276260cdd26676d2169446c7ecd3484bbd5fead4ca14f3ed4dd9ee3" 1000 sha256: "78f489aab276260cdd26676d2169446c7ecd3484bbd5fead4ca14f3ed4dd9ee3"
1001 - url: "https://pub.flutter-io.cn" 1001 + url: "https://pub.dev"
1002 source: hosted 1002 source: hosted
1003 version: "2.4.0" 1003 version: "2.4.0"
1004 sqflite_common: 1004 sqflite_common:
@@ -1006,7 +1006,7 @@ packages: @@ -1006,7 +1006,7 @@ packages:
1006 description: 1006 description:
1007 name: sqflite_common 1007 name: sqflite_common
1008 sha256: "761b9740ecbd4d3e66b8916d784e581861fd3c3553eda85e167bc49fdb68f709" 1008 sha256: "761b9740ecbd4d3e66b8916d784e581861fd3c3553eda85e167bc49fdb68f709"
1009 - url: "https://pub.flutter-io.cn" 1009 + url: "https://pub.dev"
1010 source: hosted 1010 source: hosted
1011 version: "2.5.4+6" 1011 version: "2.5.4+6"
1012 sqflite_darwin: 1012 sqflite_darwin:
@@ -1014,7 +1014,7 @@ packages: @@ -1014,7 +1014,7 @@ packages:
1014 description: 1014 description:
1015 name: sqflite_darwin 1015 name: sqflite_darwin
1016 sha256: "22adfd9a2c7d634041e96d6241e6e1c8138ca6817018afc5d443fef91dcefa9c" 1016 sha256: "22adfd9a2c7d634041e96d6241e6e1c8138ca6817018afc5d443fef91dcefa9c"
1017 - url: "https://pub.flutter-io.cn" 1017 + url: "https://pub.dev"
1018 source: hosted 1018 source: hosted
1019 version: "2.4.1+1" 1019 version: "2.4.1+1"
1020 sqflite_ohos: 1020 sqflite_ohos:
@@ -1031,7 +1031,7 @@ packages: @@ -1031,7 +1031,7 @@ packages:
1031 description: 1031 description:
1032 name: sqflite_platform_interface 1032 name: sqflite_platform_interface
1033 sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920" 1033 sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920"
1034 - url: "https://pub.flutter-io.cn" 1034 + url: "https://pub.dev"
1035 source: hosted 1035 source: hosted
1036 version: "2.4.0" 1036 version: "2.4.0"
1037 stack_trace: 1037 stack_trace:
@@ -1039,7 +1039,7 @@ packages: @@ -1039,7 +1039,7 @@ packages:
1039 description: 1039 description:
1040 name: stack_trace 1040 name: stack_trace
1041 sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" 1041 sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377"
1042 - url: "https://pub.flutter-io.cn" 1042 + url: "https://pub.dev"
1043 source: hosted 1043 source: hosted
1044 version: "1.12.0" 1044 version: "1.12.0"
1045 stream_channel: 1045 stream_channel:
@@ -1047,7 +1047,7 @@ packages: @@ -1047,7 +1047,7 @@ packages:
1047 description: 1047 description:
1048 name: stream_channel 1048 name: stream_channel
1049 sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 1049 sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
1050 - url: "https://pub.flutter-io.cn" 1050 + url: "https://pub.dev"
1051 source: hosted 1051 source: hosted
1052 version: "2.1.2" 1052 version: "2.1.2"
1053 stream_transform: 1053 stream_transform:
@@ -1055,7 +1055,7 @@ packages: @@ -1055,7 +1055,7 @@ packages:
1055 description: 1055 description:
1056 name: stream_transform 1056 name: stream_transform
1057 sha256: a00e5f18bffc764f923e7dec1038527f7fe7a1791361a7117f0358193f13d53a 1057 sha256: a00e5f18bffc764f923e7dec1038527f7fe7a1791361a7117f0358193f13d53a
1058 - url: "https://pub.flutter-io.cn" 1058 + url: "https://pub.dev"
1059 source: hosted 1059 source: hosted
1060 version: "2.1.2" 1060 version: "2.1.2"
1061 string_scanner: 1061 string_scanner:
@@ -1063,7 +1063,7 @@ packages: @@ -1063,7 +1063,7 @@ packages:
1063 description: 1063 description:
1064 name: string_scanner 1064 name: string_scanner
1065 sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" 1065 sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3"
1066 - url: "https://pub.flutter-io.cn" 1066 + url: "https://pub.dev"
1067 source: hosted 1067 source: hosted
1068 version: "1.3.0" 1068 version: "1.3.0"
1069 synchronized: 1069 synchronized:
@@ -1071,7 +1071,7 @@ packages: @@ -1071,7 +1071,7 @@ packages:
1071 description: 1071 description:
1072 name: synchronized 1072 name: synchronized
1073 sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225" 1073 sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225"
1074 - url: "https://pub.flutter-io.cn" 1074 + url: "https://pub.dev"
1075 source: hosted 1075 source: hosted
1076 version: "3.3.0+3" 1076 version: "3.3.0+3"
1077 table_calendar: 1077 table_calendar:
@@ -1079,7 +1079,7 @@ packages: @@ -1079,7 +1079,7 @@ packages:
1079 description: 1079 description:
1080 name: table_calendar 1080 name: table_calendar
1081 sha256: b2896b7c86adf3a4d9c911d860120fe3dbe03c85db43b22fd61f14ee78cdbb63 1081 sha256: b2896b7c86adf3a4d9c911d860120fe3dbe03c85db43b22fd61f14ee78cdbb63
1082 - url: "https://pub.flutter-io.cn" 1082 + url: "https://pub.dev"
1083 source: hosted 1083 source: hosted
1084 version: "3.1.3" 1084 version: "3.1.3"
1085 term_glyph: 1085 term_glyph:
@@ -1087,7 +1087,7 @@ packages: @@ -1087,7 +1087,7 @@ packages:
1087 description: 1087 description:
1088 name: term_glyph 1088 name: term_glyph
1089 sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 1089 sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
1090 - url: "https://pub.flutter-io.cn" 1090 + url: "https://pub.dev"
1091 source: hosted 1091 source: hosted
1092 version: "1.2.1" 1092 version: "1.2.1"
1093 test_api: 1093 test_api:
@@ -1095,7 +1095,7 @@ packages: @@ -1095,7 +1095,7 @@ packages:
1095 description: 1095 description:
1096 name: test_api 1096 name: test_api
1097 sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" 1097 sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c"
1098 - url: "https://pub.flutter-io.cn" 1098 + url: "https://pub.dev"
1099 source: hosted 1099 source: hosted
1100 version: "0.7.3" 1100 version: "0.7.3"
1101 thinking_analytics: 1101 thinking_analytics:
@@ -1103,7 +1103,7 @@ packages: @@ -1103,7 +1103,7 @@ packages:
1103 description: 1103 description:
1104 name: thinking_analytics 1104 name: thinking_analytics
1105 sha256: b01cac0b5482e71c1d75c44c77d27f427662cc65a77b7bc3c8b49617d7a01e02 1105 sha256: b01cac0b5482e71c1d75c44c77d27f427662cc65a77b7bc3c8b49617d7a01e02
1106 - url: "https://pub.flutter-io.cn" 1106 + url: "https://pub.dev"
1107 source: hosted 1107 source: hosted
1108 version: "3.3.3" 1108 version: "3.3.3"
1109 timing: 1109 timing:
@@ -1111,7 +1111,7 @@ packages: @@ -1111,7 +1111,7 @@ packages:
1111 description: 1111 description:
1112 name: timing 1112 name: timing
1113 sha256: "62ee18aca144e4a9f29d212f5a4c6a053be252b895ab14b5821996cff4ed90fe" 1113 sha256: "62ee18aca144e4a9f29d212f5a4c6a053be252b895ab14b5821996cff4ed90fe"
1114 - url: "https://pub.flutter-io.cn" 1114 + url: "https://pub.dev"
1115 source: hosted 1115 source: hosted
1116 version: "1.0.2" 1116 version: "1.0.2"
1117 typed_data: 1117 typed_data:
@@ -1119,7 +1119,7 @@ packages: @@ -1119,7 +1119,7 @@ packages:
1119 description: 1119 description:
1120 name: typed_data 1120 name: typed_data
1121 sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 1121 sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
1122 - url: "https://pub.flutter-io.cn" 1122 + url: "https://pub.dev"
1123 source: hosted 1123 source: hosted
1124 version: "1.4.0" 1124 version: "1.4.0"
1125 url_launcher_linux: 1125 url_launcher_linux:
@@ -1127,7 +1127,7 @@ packages: @@ -1127,7 +1127,7 @@ packages:
1127 description: 1127 description:
1128 name: url_launcher_linux 1128 name: url_launcher_linux
1129 sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" 1129 sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935"
1130 - url: "https://pub.flutter-io.cn" 1130 + url: "https://pub.dev"
1131 source: hosted 1131 source: hosted
1132 version: "3.2.1" 1132 version: "3.2.1"
1133 url_launcher_platform_interface: 1133 url_launcher_platform_interface:
@@ -1135,7 +1135,7 @@ packages: @@ -1135,7 +1135,7 @@ packages:
1135 description: 1135 description:
1136 name: url_launcher_platform_interface 1136 name: url_launcher_platform_interface
1137 sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" 1137 sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029"
1138 - url: "https://pub.flutter-io.cn" 1138 + url: "https://pub.dev"
1139 source: hosted 1139 source: hosted
1140 version: "2.3.2" 1140 version: "2.3.2"
1141 url_launcher_web: 1141 url_launcher_web:
@@ -1143,7 +1143,7 @@ packages: @@ -1143,7 +1143,7 @@ packages:
1143 description: 1143 description:
1144 name: url_launcher_web 1144 name: url_launcher_web
1145 sha256: "4bd2b7b4dc4d4d0b94e5babfffbca8eac1a126c7f3d6ecbc1a11013faa3abba2" 1145 sha256: "4bd2b7b4dc4d4d0b94e5babfffbca8eac1a126c7f3d6ecbc1a11013faa3abba2"
1146 - url: "https://pub.flutter-io.cn" 1146 + url: "https://pub.dev"
1147 source: hosted 1147 source: hosted
1148 version: "2.4.1" 1148 version: "2.4.1"
1149 url_launcher_windows: 1149 url_launcher_windows:
@@ -1151,7 +1151,7 @@ packages: @@ -1151,7 +1151,7 @@ packages:
1151 description: 1151 description:
1152 name: url_launcher_windows 1152 name: url_launcher_windows
1153 sha256: "3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77" 1153 sha256: "3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77"
1154 - url: "https://pub.flutter-io.cn" 1154 + url: "https://pub.dev"
1155 source: hosted 1155 source: hosted
1156 version: "3.1.4" 1156 version: "3.1.4"
1157 uuid: 1157 uuid:
@@ -1159,7 +1159,7 @@ packages: @@ -1159,7 +1159,7 @@ packages:
1159 description: 1159 description:
1160 name: uuid 1160 name: uuid
1161 sha256: "9b129329f58692f6e6578329498a8fe9fbe98f090beb764ffbb8ee2eadd01dcd" 1161 sha256: "9b129329f58692f6e6578329498a8fe9fbe98f090beb764ffbb8ee2eadd01dcd"
1162 - url: "https://pub.flutter-io.cn" 1162 + url: "https://pub.dev"
1163 source: hosted 1163 source: hosted
1164 version: "4.6.0" 1164 version: "4.6.0"
1165 vector_math: 1165 vector_math:
@@ -1167,7 +1167,7 @@ packages: @@ -1167,7 +1167,7 @@ packages:
1167 description: 1167 description:
1168 name: vector_math 1168 name: vector_math
1169 sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" 1169 sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
1170 - url: "https://pub.flutter-io.cn" 1170 + url: "https://pub.dev"
1171 source: hosted 1171 source: hosted
1172 version: "2.1.4" 1172 version: "2.1.4"
1173 video_thumbnail: 1173 video_thumbnail:
@@ -1175,7 +1175,7 @@ packages: @@ -1175,7 +1175,7 @@ packages:
1175 description: 1175 description:
1176 name: video_thumbnail 1176 name: video_thumbnail
1177 sha256: "181a0c205b353918954a881f53a3441476b9e301641688a581e0c13f00dc588b" 1177 sha256: "181a0c205b353918954a881f53a3441476b9e301641688a581e0c13f00dc588b"
1178 - url: "https://pub.flutter-io.cn" 1178 + url: "https://pub.dev"
1179 source: hosted 1179 source: hosted
1180 version: "0.5.6" 1180 version: "0.5.6"
1181 vm_service: 1181 vm_service:
@@ -1183,7 +1183,7 @@ packages: @@ -1183,7 +1183,7 @@ packages:
1183 description: 1183 description:
1184 name: vm_service 1184 name: vm_service
1185 sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b 1185 sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b
1186 - url: "https://pub.flutter-io.cn" 1186 + url: "https://pub.dev"
1187 source: hosted 1187 source: hosted
1188 version: "14.3.0" 1188 version: "14.3.0"
1189 watcher: 1189 watcher:
@@ -1191,7 +1191,7 @@ packages: @@ -1191,7 +1191,7 @@ packages:
1191 description: 1191 description:
1192 name: watcher 1192 name: watcher
1193 sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635" 1193 sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635"
1194 - url: "https://pub.flutter-io.cn" 1194 + url: "https://pub.dev"
1195 source: hosted 1195 source: hosted
1196 version: "1.2.1" 1196 version: "1.2.1"
1197 web: 1197 web:
@@ -1199,7 +1199,7 @@ packages: @@ -1199,7 +1199,7 @@ packages:
1199 description: 1199 description:
1200 name: web 1200 name: web
1201 sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" 1201 sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
1202 - url: "https://pub.flutter-io.cn" 1202 + url: "https://pub.dev"
1203 source: hosted 1203 source: hosted
1204 version: "1.1.1" 1204 version: "1.1.1"
1205 web_socket: 1205 web_socket:
@@ -1207,7 +1207,7 @@ packages: @@ -1207,7 +1207,7 @@ packages:
1207 description: 1207 description:
1208 name: web_socket 1208 name: web_socket
1209 sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" 1209 sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c"
1210 - url: "https://pub.flutter-io.cn" 1210 + url: "https://pub.dev"
1211 source: hosted 1211 source: hosted
1212 version: "1.0.1" 1212 version: "1.0.1"
1213 web_socket_channel: 1213 web_socket_channel:
@@ -1215,7 +1215,7 @@ packages: @@ -1215,7 +1215,7 @@ packages:
1215 description: 1215 description:
1216 name: web_socket_channel 1216 name: web_socket_channel
1217 sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 1217 sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8
1218 - url: "https://pub.flutter-io.cn" 1218 + url: "https://pub.dev"
1219 source: hosted 1219 source: hosted
1220 version: "3.0.3" 1220 version: "3.0.3"
1221 webview_flutter: 1221 webview_flutter:
@@ -1268,7 +1268,7 @@ packages: @@ -1268,7 +1268,7 @@ packages:
1268 description: 1268 description:
1269 name: win32 1269 name: win32
1270 sha256: daf97c9d80197ed7b619040e86c8ab9a9dad285e7671ee7390f9180cc828a51e 1270 sha256: daf97c9d80197ed7b619040e86c8ab9a9dad285e7671ee7390f9180cc828a51e
1271 - url: "https://pub.flutter-io.cn" 1271 + url: "https://pub.dev"
1272 source: hosted 1272 source: hosted
1273 version: "5.10.1" 1273 version: "5.10.1"
1274 xdg_directories: 1274 xdg_directories:
@@ -1276,7 +1276,7 @@ packages: @@ -1276,7 +1276,7 @@ packages:
1276 description: 1276 description:
1277 name: xdg_directories 1277 name: xdg_directories
1278 sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" 1278 sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15"
1279 - url: "https://pub.flutter-io.cn" 1279 + url: "https://pub.dev"
1280 source: hosted 1280 source: hosted
1281 version: "1.1.0" 1281 version: "1.1.0"
1282 yaml: 1282 yaml:
@@ -1284,7 +1284,7 @@ packages: @@ -1284,7 +1284,7 @@ packages:
1284 description: 1284 description:
1285 name: yaml 1285 name: yaml
1286 sha256: f67cdd8e07d3c6329146aaef1ba043542b3134c12489f553ca9a7435d1068aea 1286 sha256: f67cdd8e07d3c6329146aaef1ba043542b3134c12489f553ca9a7435d1068aea
1287 - url: "https://pub.flutter-io.cn" 1287 + url: "https://pub.dev"
1288 source: hosted 1288 source: hosted
1289 version: "3.1.4" 1289 version: "3.1.4"
1290 sdks: 1290 sdks:
1 name: doublefeel_flutter 1 name: doublefeel_flutter
2 description: "A new Flutter project." 2 description: "A new Flutter project."
3 -publish_to: 'none' 3 +publish_to: 'none'
4 4
5 -version: 2.7.0+101 5 +version: 2.5.0+100
6 6
7 environment: 7 environment:
8 sdk: ^3.6.2 8 sdk: ^3.6.2
@@ -11,17 +11,13 @@ dependencies: @@ -11,17 +11,13 @@ dependencies:
11 sdk: flutter 11 sdk: flutter
12 cupertino_icons: ^1.0.8 12 cupertino_icons: ^1.0.8
13 get: ^4.7.2 13 get: ^4.7.2
14 - # get:  
15 - # git:  
16 - # url: https://gitcode.com/CPF-Flutter/fluttertpc_get  
17 - # ref: 4.7.2-ohos-1.0.0-beta.1  
18 dio: ^5.7.0 14 dio: ^5.7.0
19 pretty_dio_logger: ^1.4.0 15 pretty_dio_logger: ^1.4.0
20 cached_network_image: ^3.4.1 16 cached_network_image: ^3.4.1
21 fl_chart: ^0.70.2 17 fl_chart: ^0.70.2
22 logger: ^2.6.2 18 logger: ^2.6.2
23 webview_flutter: 19 webview_flutter:
24 - git: 20 + git:
25 url: https://gitcode.com/openharmony-tpc/flutter_packages.git 21 url: https://gitcode.com/openharmony-tpc/flutter_packages.git
26 path: packages/webview_flutter/webview_flutter 22 path: packages/webview_flutter/webview_flutter
27 ref: br_webview_flutter-v4.13.0_ohos 23 ref: br_webview_flutter-v4.13.0_ohos
@@ -30,18 +26,17 @@ dependencies: @@ -30,18 +26,17 @@ dependencies:
30 url: https://gitcode.com/openharmony-tpc/flutter_packages.git 26 url: https://gitcode.com/openharmony-tpc/flutter_packages.git
31 path: packages/shared_preferences/shared_preferences 27 path: packages/shared_preferences/shared_preferences
32 ref: br_shared_preferences-v2.5.3_ohos 28 ref: br_shared_preferences-v2.5.3_ohos
33 - # image_picker: ^1.1.2  
34 - image_picker: 29 + image_picker: ^1.1.2
  30 + image_picker_ohos:
35 git: 31 git:
36 url: https://gitcode.com/openharmony-sig/flutter_packages.git 32 url: https://gitcode.com/openharmony-sig/flutter_packages.git
37 - path: packages/image_picker/image_picker  
38 - ref: br_image_picker-v1.1.2_ohos  
39 - # image_cropper: 9.1.0  
40 - image_cropper:  
41 - git:  
42 - url: https://gitcode.com/CPF-Flutter/fluttertpc_image_cropper.git  
43 - path: ./image_cropper  
44 - ref: 9.1.0-ohos-1.0.0-beta.1 33 + path: packages/image_picker/image_picker_ohos
  34 + image_cropper: 9.1.0
  35 + # image_cropper:
  36 + # git:
  37 + # url: https://gitcode.com/openharmony-sig/fluttertpc_image_cropper.git
  38 + # path: ./image_cropper
  39 + # ref: br_v9.1.0_ohos
45 permission_handler: ^11.3.1 40 permission_handler: ^11.3.1
46 permission_handler_ohos: 41 permission_handler_ohos:
47 git: 42 git:
@@ -55,23 +50,13 @@ dependencies: @@ -55,23 +50,13 @@ dependencies:
55 ref: br_share_plus-v10.1.1_ohos 50 ref: br_share_plus-v10.1.1_ohos
56 video_thumbnail: ^0.5.3 51 video_thumbnail: ^0.5.3
57 table_calendar: ^3.1.3 52 table_calendar: ^3.1.3
58 - # fluttertoast: ^8.2.2  
59 - fluttertoast:  
60 - git:  
61 - url: https://gitcode.com/CPF-Flutter/flutter_fluttertoast.git  
62 - ref: 9.0.0-ohos-1.0.0  
63 -  
64 - # path_provider: 2.1.5  
65 - path_provider:  
66 - git:  
67 - url: https://gitcode.com/openharmony-sig/flutter_packages.git  
68 - path: packages/path_provider/path_provider  
69 - ref: master 53 + fluttertoast: ^8.2.2
  54 + path_provider: ^2.1.5
70 thinking_analytics: ^3.3.2 55 thinking_analytics: ^3.3.2
71 flutter_localizations: 56 flutter_localizations:
72 sdk: flutter 57 sdk: flutter
73 intl: any 58 intl: any
74 - lottie: 3.3.1 59 + lottie: ^3.3.3
75 sqflite: 60 sqflite:
76 git: 61 git:
77 url: "https://gitcode.com/CPF-Flutter/flutter_sqflite.git" 62 url: "https://gitcode.com/CPF-Flutter/flutter_sqflite.git"
@@ -81,18 +66,12 @@ dependencies: @@ -81,18 +66,12 @@ dependencies:
81 flutter_timezone: ^5.1.0 66 flutter_timezone: ^5.1.0
82 67
83 68
84 -# share_plus (git) 间接依赖 openharmony-sig/flutter_packages.git@master 的  
85 -# path_provider,direct dependency 也保持同源,避免 pub source 冲突。 69 +# share_plus (git) 间接依赖 path_provider 的 git 版本,
  70 +# 与 cached_network_image → flutter_cache_manager 依赖的 hosted 版本冲突。
  71 +# 强制使用 hosted 版本统一来源。
86 dependency_overrides: 72 dependency_overrides:
87 - path_provider:  
88 - git:  
89 - url: https://gitcode.com/openharmony-sig/flutter_packages.git  
90 - path: packages/path_provider/path_provider  
91 - ref: master  
92 - # image_cropper_platform_interface: 7.1.0  
93 - # Override meta to satisfy flutter_timezone 5.1.0 (requires ^1.16.0)  
94 - # while the ohos flutter_test bundle pins 1.15.0.  
95 - meta: ^1.16.0 73 + path_provider: 2.1.5
  74 + image_cropper_platform_interface: 7.1.0
96 sqflite: 75 sqflite:
97 git: 76 git:
98 url: "https://gitcode.com/CPF-Flutter/flutter_sqflite.git" 77 url: "https://gitcode.com/CPF-Flutter/flutter_sqflite.git"
@@ -135,3 +114,6 @@ flutter: @@ -135,3 +114,6 @@ flutter:
135 - assets/images/user_onboarding/zh/ 114 - assets/images/user_onboarding/zh/
136 - assets/images/user_onboarding/oh/ 115 - assets/images/user_onboarding/oh/
137 - assets/images/premium/ 116 - assets/images/premium/
  117 + - assets/images/premium/zh/
  118 + - assets/images/interact/
  119 + - assets/images/interact/animations/