feat: 合并一些代码

dev
Spark 2 weeks ago
parent 8d4a9e519e
commit de6984eff3

@ -0,0 +1,3 @@
description: This file stores settings for Dart & Flutter DevTools.
documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
extensions:

@ -0,0 +1,30 @@
// api/api_collection.dart
import 'package:dio/dio.dart';
import 'package:music_player_miao/models/universal_bean.dart';
const String _CollectionURL = 'http://flyingpig.fun:10010/collections';
class CollectionApiMusic {
final Dio dio = Dio();
///
Future<UniversalBean> addCollection({
required int musicId,
required String Authorization,
}) async {
Response response = await dio.post(
_CollectionURL,
queryParameters: {'musicId': musicId},
options: Options(headers: {
'Authorization': Authorization,
'Content-Type': 'application/json;charset=UTF-8'
})
);
print(response.data);
return UniversalBean.formMap(response.data); // UniversalBean
}
}

@ -32,9 +32,10 @@ class commentMusic {
Response response = await dio.post(
_postComment,
data: {
'musicId': musicId,
'password': content,
'Authorization': Authorization
'content': content,
'MusicId': musicId,
'Authorization':Authorization
},
options: Options(headers:{'Authorization':Authorization,'Content-Type':'application/json;charset=UTF-8'})
);
@ -50,21 +51,26 @@ class getCommentApi {
required String musicId,
required String pageNo,
required String pageSize,
required String Authorization
required String Authorization,
}) async {
Response response = await dio.get(
_postComment,
queryParameters: {'musicId':musicId,'pageNo':pageNo,'pageSize':pageSize},
options: Options(headers:{'Authorization':Authorization,'Content-Type':'application/json;charset=UTF-8'})
queryParameters: {
'musicId': musicId,
'pageNo': pageNo,
'pageSize': pageSize,
},
options: Options(headers: {
'Authorization': Authorization,
'Content-Type': 'application/json;charset=UTF-8',
}),
);
print(response.data);
return GetCommentBean.formMap(response.data);
}
}

@ -35,8 +35,7 @@ class ReleaseApi {
queryParameters: {'singerName':singerName,'name':name,'introduce':introduce},
data: formData,
options: Options(headers:{'Authorization':Authorization,
'Content-Type':'multipart/form-data;boundary=--------------------------741231434897925203274596',
'Content-Length':'2858240'})
})
);
print(response.data);
return UniversalBean.formMap(response.data);

@ -1,24 +1,28 @@
import 'package:flutter/material.dart';
import '../api/api_music_likes.dart'; // API
import '../api/api_collection.dart'; // API
//
class RankSongsRow extends StatelessWidget {
final Map sObj;
final VoidCallback onPressedPlay;
final VoidCallback onPressed;
final String? rank;
const RankSongsRow({
super.key,
required this.sObj,
required this.onPressed,
required this.onPressedPlay, required this.rank,
required this.onPressedPlay,
required this.rank,
});
@override
Widget build(BuildContext context) {
rank: sObj["rank"];
return
Column(
return Column(
children: [
Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
children: [
@ -35,7 +39,7 @@ class RankSongsRow extends StatelessWidget {
),
),
),
const SizedBox(width: 10,),
const SizedBox(width: 10),
ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Image.asset(
@ -45,8 +49,7 @@ class RankSongsRow extends StatelessWidget {
fit: BoxFit.cover,
),
),
const SizedBox(width: 20,),
const SizedBox(width: 20),
SizedBox(
width: 170,
child: Column(
@ -58,7 +61,8 @@ class RankSongsRow extends StatelessWidget {
style: TextStyle(
color: Colors.black,
fontSize: 16,
fontWeight: FontWeight.w400),
fontWeight: FontWeight.w400,
),
),
Text(
sObj["artists"],
@ -68,45 +72,45 @@ class RankSongsRow extends StatelessWidget {
],
),
),
const SizedBox(width: 20,),
const SizedBox(width: 20),
],
),
IconButton(
onPressed: (){
onPressed: () {
_bottomSheet(context);
},
icon: Image.asset(
"assets/img/More.png",
width: 25,
height: 25,
),
),
const SizedBox(height: 20,)
const SizedBox(height: 20)
],
),
const SizedBox(height: 10,)
const SizedBox(height: 10)
],
);
}
getRankFontSize(String rank) {
double getRankFontSize(String rank) {
switch (rank) {
case '1': case '2':case '3':
case '1':
case '2':
case '3':
return 30.0;
default:
return 20.0;
}
}
Future _bottomSheet(BuildContext context){
Future _bottomSheet(BuildContext context) {
return showModalBottomSheet(
context: context,
backgroundColor: Colors.white,
shape: const RoundedRectangleBorder(borderRadius: BorderRadius.vertical(top: Radius.circular(30))),
builder: (context) =>Container(
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.vertical(top: Radius.circular(30))),
builder: (context) => Container(
height: 210,
padding: const EdgeInsets.only(top: 20),
child: Column(
@ -118,63 +122,76 @@ class RankSongsRow extends StatelessWidget {
Column(
children: [
IconButton(
onPressed: (){},
onPressed: () {
// TODO:
},
icon: Image.asset("assets/img/list_add.png"),
iconSize: 60,
),
Text("加入歌单")
Text("加入歌单"),
],
),
Column(
children: [
IconButton(
onPressed: (){},
onPressed: () {
// TODO:
},
icon: Image.asset("assets/img/list_download.png"),
iconSize: 60,
),
Text("下载")
Text("下载"),
],
),
Column(
children: [
IconButton(
onPressed: (){},
onPressed: () async {
// API
await _toggleCollect();
},
icon: Image.asset("assets/img/list_collection.png"),
iconSize: 60,
),
Text("收藏")
Text("收藏"),
],
),
Column(
children: [
IconButton(
onPressed: (){},
onPressed: () async {
// API
await _toggleLike();
},
icon: Image.asset("assets/img/list_good.png"),
iconSize: 60,
),
Text("点赞")
Text("点赞"),
],
),
Column(
children: [
IconButton(
onPressed: (){},
onPressed: () {
//
},
icon: Image.asset("assets/img/list_comment.png"),
iconSize: 60,
),
Text("评论")
Text("评论"),
],
),
],
),
const SizedBox(height: 10,),
const SizedBox(height: 10),
ElevatedButton(
onPressed: () {
// Get.to(()=>const MainTabView());
// TODO:
},
child: Text(
"查看详情页",
style: const TextStyle(color:Colors.black,fontSize: 18),
style: const TextStyle(color: Colors.black, fontSize: 18),
),
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xffE6F4F1),
@ -184,13 +201,12 @@ class RankSongsRow extends StatelessWidget {
borderRadius: BorderRadius.zero,
),
),
),
ElevatedButton(
onPressed: () =>Navigator.pop(context),
onPressed: () => Navigator.pop(context),
child: Text(
"取消",
style: const TextStyle(color:Colors.black,fontSize: 18),
style: const TextStyle(color: Colors.black, fontSize: 18),
),
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xff429482),
@ -200,12 +216,40 @@ class RankSongsRow extends StatelessWidget {
borderRadius: BorderRadius.zero,
),
),
),
],
),
)
),
);
}
//
Future<void> _toggleLike() async {
final api = LikesApiMusic(); // API
try {
String authorizationToken = 'eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI1ZDBmY2Q3ZThlYmY0N2QzOThlNmVjNDQ0ZTM5NTAxNSIsInN1YiI6IjEiLCJpc3MiOiJmbHlpbmdwaWciLCJpYXQiOjE3MzEwNDM3NTgsImV4cCI6MTczMzYzNTc1OH0.5jfhZtK46YNSC7KCaBWiPxSLO7Ym6ntBXnQwfsvMrCw'; // Token
await api.likesMusic(
musicId: sObj['id'], // 使 ID
Authorization: authorizationToken,
);
print('Liked music ID: ${sObj['id']}');
} catch (e) {
print('Error liking music: $e');
}
}
//
Future<void> _toggleCollect() async {
final api = CollectionApiMusic(); // API
try {
String authorizationToken = 'eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI1ZDBmY2Q3ZThlYmY0N2QzOThlNmVjNDQ0ZTM5NTAxNSIsInN1YiI6IjEiLCJpc3MiOiJmbHlpbmdwaWciLCJpYXQiOjE3MzEwNDM3NTgsImV4cCI6MTczMzYzNTc1OH0.5jfhZtK46YNSC7KCaBWiPxSLO7Ym6ntBXnQwfsvMrCw'; // Token
await api.addCollection(
musicId: sObj['id'], // 使 ID
Authorization: authorizationToken,
);
print('Collected music ID: ${sObj['id']}');
} catch (e) {
print('Error collecting music: $e');
}
}
}

@ -1,26 +1,30 @@
class GetCommentBean {
int? code;
String? msg;
int? total;
List<CommentBean>? rows;
GetCommentBean.formMap(Map map) {
code = map['code'];
msg = map['msg'];
total = map['total'];
GetCommentBean.formMap(Map<String, dynamic> map) {
code = map['code'] as int?;
msg = map['msg'] as String?;
List<dynamic>? rowList = map['rows'];
if (rowList == null) return;
// data data total rows
Map<String, dynamic>? data = map['data'];
if (data != null) {
total = data['total'] as int?;
rows = rowList
.map((item) => CommentBean._formMap(item))
.toList();
List<dynamic>? rowList = data['rows'];
if (rowList != null) {
rows = rowList.map((item) => CommentBean.formMap(item as Map<String, dynamic>)).toList();
} else {
rows = []; // rows
}
} else {
rows = []; // data
}
}
}
class CommentBean {
int? id;
String? content;
@ -28,11 +32,11 @@ class CommentBean {
String? username;
String? avatar;
CommentBean._formMap(Map map) {
id = map['id'];
content = map['content'];
time = map['time'];
username = map['username'];
avatar = map['avatar'];
CommentBean.formMap(Map<String, dynamic> map) {
id = map['id'] as int?;
content = map['content'] as String? ?? 'No content';
time = map['time'] as String? ?? 'Unknown time';
username = map['username'] as String? ?? 'Anonymous';
avatar = map['avatar'] as String? ?? 'Default avatar';
}
}

@ -6,6 +6,9 @@ class UniversalBean {
UniversalBean.formMap(Map map) {
code = map['code'];
msg = map['msg'];
data = map['data'];
}
}
}}

@ -8,6 +8,8 @@ import 'package:music_player_miao/widget/text_field.dart';
class CommentView extends StatefulWidget {
@override
_CommentViewState createState() => _CommentViewState();
@ -39,23 +41,27 @@ class _CommentViewState extends State<CommentView> {
musicId: '1',
pageNo: '0',
pageSize: '10',
Authorization: AppData().currentToken);
Authorization: AppData().currentToken,
);
// rows
if (bean1.rows == null) {
print('No comments found');
return;
}
setState(() {
comments = bean1.rows!.map((rows) => rows.content!).toList();
commentTimes = bean1.rows!.map((rows) => rows.time!).toList();
commentHeader = bean1.rows!.map((rows) => rows.avatar!).toList();
commentName = bean1.rows!.map((rows) => rows.username!).toList();
comments = bean1.rows!.map((rows) => rows.content ?? 'No content').toList();
commentTimes = bean1.rows!.map((rows) => rows.time ?? 'Unknown time').toList();
commentHeader = bean1.rows!.map((rows) => rows.avatar ?? 'Default avatar').toList();
commentName = bean1.rows!.map((rows) => rows.username ?? 'Anonymous').toList();
playlistCount = comments.length;
});
} catch (error) {
if (error != null) {
print('Response data: $error');
} else {
print('Error fetching songlist data: $error');
}
}
}
@ -164,17 +170,22 @@ class _CommentViewState extends State<CommentView> {
),
IconButton(
onPressed: () {
// setState(() {
// ascendingOrder = !ascendingOrder;
// comments.sort((a, b) {
// int compare = ascendingOrder
// ? commentTimes.indexOf(a).compareTo(
// commentTimes.indexOf(b))
// : commentTimes.indexOf(b).compareTo(
// commentTimes.indexOf(a));
// return compare;
// });
// });
setState(() {
ascendingOrder = !ascendingOrder;
// 使
List<int> sortedIndexes = List<int>.generate(comments.length, (i) => i);
sortedIndexes.sort((a, b) {
DateTime timeA = DateTime.parse(commentTimes[a]);
DateTime timeB = DateTime.parse(commentTimes[b]);
return ascendingOrder ? timeA.compareTo(timeB) : timeB.compareTo(timeA);
});
comments = [for (var i in sortedIndexes) comments[i]];
commentTimes = [for (var i in sortedIndexes) commentTimes[i]];
commentHeader = [for (var i in sortedIndexes) commentHeader[i]];
commentName = [for (var i in sortedIndexes) commentName[i]];
});
},
icon: Image.asset(
ascendingOrder
@ -284,21 +295,35 @@ class _CommentViewState extends State<CommentView> {
);
}
void submitComment() {
String comment = commentController.text;
if (comment.isNotEmpty) {
DateTime currentTime = DateTime.now();
String formattedTime = "${currentTime.year}/${currentTime
.month}/${currentTime.day} ${currentTime.hour}:${currentTime.minute}";
void submitComment() async {
String comment = commentController.text.trim();
if (comment.isEmpty) {
print('Comment cannot be empty');
Get.snackbar('错误', '评论不能为空');
return;
}
print('Submitting comment with content: $comment');
setState(() {
comments.add(comment);
commentTimes.add(formattedTime);
commentName.add(AppData().currentUsername);
commentHeader.add(AppData().currentAvatar);
try {
UniversalBean bean = await commentMusic().comment(
musicId: widget.initialSongIndex,
content: comment,
Authorization: AppData().currentToken,
);
//
if (bean.code == 200) {
print('Comment submitted successfully');
commentController.clear();
playlistCount++;
});
_fetchSonglistData(); //
} else {
print('Failed to submit comment: ${bean.msg}');
Get.snackbar('错误', bean.msg ?? '评论提交失败');
}
} catch (error) {
print('Error submitting comment: $error');
}
}
}

@ -8,8 +8,11 @@ import 'package:audioplayers/audioplayers.dart';
import '../api/api_music_likes.dart';
import '../api/api_music_list.dart';
import '../api/api_collection.dart';
import '../common_widget/Song_widegt.dart';
import '../models/getMusicList_bean.dart';
import '../view/commend_view.dart';
class MusicView extends StatefulWidget {
final Song song;
@ -270,7 +273,9 @@ class _MusicViewState extends State<MusicView> {
),
),
IconButton(
onPressed: () {
onPressed: () async{
UniversalBean bean1 =
await CollectionApiMusic().addCollection(musicId: currentSongIndex+1, Authorization: AppData().currentToken);
setState(() {
collectionsnot = !collectionsnot;
});
@ -285,7 +290,12 @@ class _MusicViewState extends State<MusicView> {
),
IconButton(
onPressed: () {
Image.asset("assets/img/music_good.png");
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => CommentView(initialSongIndex: widget.initialSongIndex),
),
);
},
icon: Image.asset(
"assets/img/music_commend_un.png",

@ -31,6 +31,7 @@ class _ReleaseViewState extends State<ReleaseView> {
late File selectedMp3File;
@override
Widget build(BuildContext context) {
return Scaffold(

@ -93,42 +93,50 @@ packages:
dependency: transitive
description:
name: collection
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.17.2"
version: "1.18.0"
cross_file:
dependency: transitive
description:
name: cross_file
sha256: "2f9d2cbccb76127ba28528cb3ae2c2326a122446a83de5a056aaa3880d3882c5"
sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.3.3+7"
version: "0.3.4+2"
crypto:
dependency: transitive
description:
name: crypto
sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.3"
version: "3.0.6"
cupertino_icons:
dependency: "direct main"
description:
name: cupertino_icons
sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d
sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.6"
version: "1.0.8"
dio:
dependency: "direct main"
description:
name: dio
sha256: "797e1e341c3dd2f69f2dad42564a6feff3bfb87187d05abb93b9609e6f1645c3"
sha256: "5598aa796bbf4699afd5c67c0f5f6e2ed542afc956884b9cd58c306966efc260"
url: "https://pub.flutter-io.cn"
source: hosted
version: "5.4.0"
version: "5.7.0"
dio_web_adapter:
dependency: transitive
description:
name: dio_web_adapter
sha256: "33259a9276d6cea88774a0000cfae0d861003497755969c92faa223108620dc8"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.0"
fake_async:
dependency: transitive
description:
@ -141,58 +149,66 @@ packages:
dependency: transitive
description:
name: ffi
sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878"
sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.0"
version: "2.1.3"
file:
dependency: transitive
description:
name: file
sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c"
sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
url: "https://pub.flutter-io.cn"
source: hosted
version: "7.0.0"
version: "7.0.1"
file_picker:
dependency: "direct main"
description:
name: file_picker
sha256: "4e42aacde3b993c5947467ab640882c56947d9d27342a5b6f2895b23956954a6"
sha256: "1bbf65dd997458a08b531042ec3794112a6c39c07c37ff22113d2e7e4f81d4e4"
url: "https://pub.flutter-io.cn"
source: hosted
version: "6.1.1"
version: "6.2.1"
file_selector_linux:
dependency: transitive
description:
name: file_selector_linux
sha256: "045d372bf19b02aeb69cacf8b4009555fb5f6f0b7ad8016e5f46dd1387ddd492"
sha256: "712ce7fab537ba532c8febdb1a8f167b32441e74acd68c3ccb2e36dcb52c4ab2"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.9.2+1"
version: "0.9.3"
file_selector_macos:
dependency: transitive
description:
name: file_selector_macos
sha256: b15c3da8bd4908b9918111fa486903f5808e388b8d1c559949f584725a6594d6
sha256: "271ab9986df0c135d45c3cdb6bd0faa5db6f4976d3e4b437cf7d0f258d941bfc"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.9.3+3"
version: "0.9.4+2"
file_selector_platform_interface:
dependency: transitive
description:
name: file_selector_platform_interface
sha256: "0aa47a725c346825a2bd396343ce63ac00bda6eff2fbc43eabe99737dede8262"
sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.6.1"
version: "2.6.2"
file_selector_windows:
dependency: transitive
description:
name: file_selector_windows
sha256: d3547240c20cabf205c7c7f01a50ecdbc413755814d6677f3cb366f04abcead0
sha256: "8f5d2f6590d51ecd9179ba39c64f722edc15226cc93dcc8698466ad36a4a85a4"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.9.3+3"
fixnum:
dependency: transitive
description:
name: fixnum
sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.9.3+1"
version: "1.1.1"
flutter:
dependency: "direct main"
description: flutter
@ -210,10 +226,10 @@ packages:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
sha256: b068ffc46f82a55844acfa4fdbb61fad72fa2aef0905548419d97f0f95c456da
sha256: "9b78450b89f059e96c9ebb355fa6b3df1d6b330436e0b885fb49594c41721398"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.17"
version: "2.0.23"
flutter_swiper_view:
dependency: "direct main"
description:
@ -252,10 +268,10 @@ packages:
dependency: "direct main"
description:
name: http
sha256: "759d1a329847dd0f39226c688d3e06a6b8679668e350e2891a6474f8b4bb8525"
sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.0"
version: "1.2.2"
http_parser:
dependency: "direct main"
description:
@ -268,34 +284,34 @@ packages:
dependency: "direct main"
description:
name: image_picker
sha256: "7d7f2768df2a8b0a3cefa5ef4f84636121987d403130e70b17ef7e2cf650ba84"
sha256: "021834d9c0c3de46bf0fe40341fa07168407f694d9b2bb18d532dc1261867f7a"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.4"
version: "1.1.2"
image_picker_android:
dependency: transitive
description:
name: image_picker_android
sha256: d6a6e78821086b0b737009b09363018309bbc6de3fd88cc5c26bc2bb44a4957f
sha256: "8faba09ba361d4b246dc0a17cb4289b3324c2b9f6db7b3d457ee69106a86bd32"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.8.8+2"
version: "0.8.12+17"
image_picker_for_web:
dependency: transitive
description:
name: image_picker_for_web
sha256: "50bc9ae6a77eea3a8b11af5eb6c661eeb858fdd2f734c2a4fd17086922347ef7"
sha256: "717eb042ab08c40767684327be06a5d8dbb341fe791d514e4b92c7bbe1b7bb83"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.1"
version: "3.0.6"
image_picker_ios:
dependency: transitive
description:
name: image_picker_ios
sha256: "76ec722aeea419d03aa915c2c96bf5b47214b053899088c9abb4086ceecf97a7"
sha256: "4f0568120c6fcc0aaa04511cb9f9f4d29fc3d0139884b1d06be88dcec7641d6b"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.8.8+4"
version: "0.8.12+1"
image_picker_linux:
dependency: transitive
description:
@ -316,10 +332,10 @@ packages:
dependency: transitive
description:
name: image_picker_platform_interface
sha256: ed9b00e63977c93b0d2d2b343685bed9c324534ba5abafbb3dfbd6a780b1b514
sha256: "9ec26d410ff46f483c5519c29c02ef0e02e13a543f882b152d4bfd2f06802f80"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.9.1"
version: "2.10.0"
image_picker_windows:
dependency: transitive
description:
@ -336,6 +352,30 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.6.7"
leak_tracker:
dependency: transitive
description:
name: leak_tracker
sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
url: "https://pub.flutter-io.cn"
source: hosted
version: "10.0.5"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.5"
leak_tracker_testing:
dependency: transitive
description:
name: leak_tracker_testing
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.1"
lints:
dependency: transitive
description:
@ -348,34 +388,34 @@ packages:
dependency: transitive
description:
name: matcher
sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.12.16"
version: "0.12.16+1"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.5.0"
version: "0.11.1"
meta:
dependency: transitive
description:
name: meta
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.9.1"
version: "1.15.0"
mime:
dependency: transitive
description:
name: mime
sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e
sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.4"
version: "2.0.0"
nested:
dependency: transitive
description:
@ -388,34 +428,34 @@ packages:
dependency: "direct main"
description:
name: path
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.8.3"
version: "1.9.0"
path_provider:
dependency: transitive
description:
name: path_provider
sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa
sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.1"
version: "2.1.4"
path_provider_android:
dependency: transitive
description:
name: path_provider_android
sha256: e595b98692943b4881b219f0a9e3945118d3c16bd7e2813f98ec6e532d905f72
sha256: c464428172cb986b758c6d1724c603097febb8fb855aa265aeecc9280c294d4a
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.2.1"
version: "2.2.12"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_foundation
sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d"
sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.3.1"
version: "2.4.0"
path_provider_linux:
dependency: transitive
description:
@ -428,42 +468,42 @@ packages:
dependency: transitive
description:
name: path_provider_platform_interface
sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c"
sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.1"
version: "2.1.2"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170"
sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.2.1"
version: "2.3.0"
platform:
dependency: transitive
description:
name: platform
sha256: "0a279f0707af40c890e80b1e9df8bb761694c074ba7e1d4ab1bc4b728e200b59"
sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.1.3"
version: "3.1.6"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
sha256: f4f88d4a900933e7267e2b353594774fc0d07fb072b47eedcd5b54e1ea3269f8
sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.7"
version: "2.1.8"
provider:
dependency: "direct main"
description:
name: provider
sha256: "9a96a0a19b594dbc5bf0f1f27d2bc67d5f95957359b461cd9feb44ed6ae75096"
sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c
url: "https://pub.flutter-io.cn"
source: hosted
version: "6.1.1"
version: "6.1.2"
sky_engine:
dependency: transitive
description: flutter
@ -489,18 +529,18 @@ packages:
dependency: transitive
description:
name: stack_trace
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.11.0"
version: "1.11.1"
stream_channel:
dependency: transitive
description:
name: stream_channel
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.1"
version: "2.1.2"
string_scanner:
dependency: transitive
description:
@ -513,10 +553,10 @@ packages:
dependency: transitive
description:
name: synchronized
sha256: "5fcbd27688af6082f5abd611af56ee575342c30e87541d0245f7ff99faa02c60"
sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.1.0"
version: "3.3.0+3"
term_glyph:
dependency: transitive
description:
@ -529,26 +569,26 @@ packages:
dependency: transitive
description:
name: test_api
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.6.0"
version: "0.7.2"
typed_data:
dependency: transitive
description:
name: typed_data
sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.3.2"
version: "1.4.0"
uuid:
dependency: transitive
description:
name: uuid
sha256: df5a4d8f22ee4ccd77f8839ac7cb274ebc11ef9adcce8b92be14b797fe889921
sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.2.1"
version: "4.5.1"
vector_math:
dependency: transitive
description:
@ -557,30 +597,38 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.4"
vm_service:
dependency: transitive
description:
name: vm_service
sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
url: "https://pub.flutter-io.cn"
source: hosted
version: "14.2.5"
web:
dependency: transitive
description:
name: web
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.1.4-beta"
version: "1.1.0"
win32:
dependency: transitive
dependency: "direct main"
description:
name: win32
sha256: "7c99c0e1e2fa190b48d25c81ca5e42036d5cac81430ef249027d97b0935c553f"
sha256: e1d0cc62e65dc2561f5071fcbccecf58ff20c344f8f3dc7d4922df372a11df1f
url: "https://pub.flutter-io.cn"
source: hosted
version: "5.1.0"
version: "5.7.1"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
sha256: "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2"
sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.3"
version: "1.1.0"
sdks:
dart: ">=3.1.2 <4.0.0"
flutter: ">=3.13.0"
dart: ">=3.5.0 <4.0.0"
flutter: ">=3.24.0"

@ -30,7 +30,7 @@ environment:
dependencies:
flutter:
sdk: flutter
win32: ^5.1.0
flutter_swiper_view: 1.1.8
audioplayers: ^5.2.1

Loading…
Cancel
Save