searching music is live 🔥🔥

search_LDE-DDA
Lucas Delanier 2 years ago
parent 2b1a4345c2
commit 17d5d4b512

@ -1,6 +1,7 @@
import 'package:flutter/Material.dart'; import 'package:flutter/Material.dart';
import 'package:google_fonts/google_fonts.dart'; import 'package:google_fonts/google_fonts.dart';
import 'package:justmusic/components/play_button_component.dart'; import 'package:justmusic/components/play_button_component.dart';
import 'package:text_scroll/text_scroll.dart';
import '../model/Music.dart'; import '../model/Music.dart';
class MusicListComponent extends StatelessWidget { class MusicListComponent extends StatelessWidget {
@ -21,12 +22,18 @@ class MusicListComponent extends StatelessWidget {
if (music.cover != null) { if (music.cover != null) {
return ClipRRect( return ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(5)), borderRadius: BorderRadius.all(Radius.circular(5)),
child: FadeInImage.assetNetwork( child: music.cover != null
height: 60, ? FadeInImage.assetNetwork(
width: 60, height: 60,
fit: BoxFit.cover, width: 60,
placeholder: "assets/images/loadingPlaceholder.gif", fit: BoxFit.cover,
image: music.cover!), placeholder: "assets/images/loadingPlaceholder.gif",
image: music.cover!)
: Container(
height: 60,
width: 60,
color: Colors.grey,
),
); );
} else { } else {
return Image( return Image(
@ -41,40 +48,44 @@ class MusicListComponent extends StatelessWidget {
), ),
Expanded( Expanded(
flex: 10, flex: 10,
child: Wrap( child: Column(
alignment: WrapAlignment.center, crossAxisAlignment: CrossAxisAlignment.start,
direction: Axis.vertical, mainAxisAlignment: MainAxisAlignment.center,
runSpacing: 3,
spacing: 3,
children: [ children: [
Wrap( Row(
verticalDirection: VerticalDirection.up,
spacing: 5,
runSpacing: 8,
runAlignment: WrapAlignment.end,
alignment: WrapAlignment.end,
children: [ children: [
Text( Flexible(
music.title ?? "Unknown", flex: 8,
overflow: TextOverflow.ellipsis, child: ScrollConfiguration(
style: GoogleFonts.plusJakartaSans( behavior:
fontSize: 16, ScrollBehavior().copyWith(scrollbars: false),
color: Colors.white, child: TextScroll(
fontWeight: FontWeight.w700), music.title ?? "Unknown",
), style: GoogleFonts.plusJakartaSans(
fontSize: 16,
color: Colors.white,
fontWeight: FontWeight.w700),
mode: TextScrollMode.endless,
pauseBetween: Duration(milliseconds: 2500),
velocity: Velocity(pixelsPerSecond: Offset(30, 0)),
intervalSpaces: 10,
),
)),
Icon( Icon(
Icons.explicit, Icons.explicit,
color: Colors.grey.withOpacity(0.7), color: Colors.grey.withOpacity(0.7),
size: 17, size: 17,
) ),
], ],
), ),
Text( ScrollConfiguration(
music.artists.first.name ?? "Unknown", behavior: ScrollBehavior().copyWith(scrollbars: false),
overflow: TextOverflow.ellipsis, child: Text(
style: GoogleFonts.plusJakartaSans( music.artists.first.name ?? "Unknown",
color: Colors.grey, fontWeight: FontWeight.w400), overflow: TextOverflow.ellipsis,
) style: GoogleFonts.plusJakartaSans(
color: Colors.grey, fontWeight: FontWeight.w400),
))
], ],
), ),
), ),

@ -1,3 +1,4 @@
import 'dart:async';
import 'dart:ui'; import 'dart:ui';
import 'package:flutter/Material.dart'; import 'package:flutter/Material.dart';
@ -17,12 +18,48 @@ class SearchSongScreen extends StatefulWidget {
} }
class _SearchSongScreenState extends State<SearchSongScreen> { class _SearchSongScreenState extends State<SearchSongScreen> {
final ScrollController _scrollController = ScrollController();
final TextEditingController _textEditingController = TextEditingController();
Future<void> resetFullScreen() async { Future<void> resetFullScreen() async {
await SystemChannels.platform.invokeMethod<void>( await SystemChannels.platform.invokeMethod<void>(
'SystemChrome.restoreSystemUIOverlays', 'SystemChrome.restoreSystemUIOverlays',
); );
} }
@override
void initState() {
super.initState();
_scrollController.addListener(_scrollListener);
}
Future<void> _scrollListener() async {
if (_scrollController.position.pixels ==
_scrollController.position.maxScrollExtent) {
filteredData.addAll(await MyApp.musicViewModel.getMusicsWithName(
_textEditingController.text,
limit: 10,
offset: filteredData.length));
setState(() {
filteredData = filteredData;
});
}
if (_scrollController.offset >=
_scrollController.position.maxScrollExtent &&
!_scrollController.position.outOfRange) {
setState(() {
//you can do anything here
});
}
if (_scrollController.offset <=
_scrollController.position.minScrollExtent &&
!_scrollController.position.outOfRange) {
setState(() {
Timer(Duration(milliseconds: 1), () => _scrollController.jumpTo(0));
});
}
}
List<Music> filteredData = []; List<Music> filteredData = [];
@override @override
@ -44,8 +81,7 @@ class _SearchSongScreenState extends State<SearchSongScreen> {
child: Container( child: Container(
color: bgAppBar.withOpacity(0.5), color: bgAppBar.withOpacity(0.5),
height: screenHeight - 50, height: screenHeight - 50,
padding: const EdgeInsets.only( padding: const EdgeInsets.only(top: 10),
top: 10, left: defaultPadding, right: defaultPadding),
child: Column( child: Column(
children: [ children: [
Align( Align(
@ -60,18 +96,25 @@ class _SearchSongScreenState extends State<SearchSongScreen> {
height: 10, height: 10,
), ),
Padding( Padding(
padding: const EdgeInsets.only(bottom: 10), padding:
const EdgeInsets.only(bottom: 10, left: 20, right: 20),
child: SizedBox( child: SizedBox(
height: 40, height: 40,
child: TextField( child: TextField(
controller: _textEditingController,
keyboardAppearance: Brightness.dark, keyboardAppearance: Brightness.dark,
onEditingComplete: resetFullScreen, onEditingComplete: resetFullScreen,
onSubmitted: (value) async { onChanged: (value) async {
filteredData = if (_textEditingController.text.isEmpty) {
await MyApp.musicViewModel.getMusicsWithName(value); } else if (value == " ") {
setState(() { print("popular");
filteredData = filteredData; } else {
}); filteredData = await MyApp.musicViewModel
.getMusicsWithName(value);
setState(() {
filteredData = filteredData;
});
}
}, },
cursorColor: Colors.white, cursorColor: Colors.white,
keyboardType: TextInputType.text, keyboardType: TextInputType.text,
@ -105,17 +148,18 @@ class _SearchSongScreenState extends State<SearchSongScreen> {
), ),
), ),
), ),
Expanded( Flexible(
child: ScrollConfiguration( child: ScrollConfiguration(
behavior: ScrollBehavior().copyWith(scrollbars: false), behavior: ScrollBehavior().copyWith(scrollbars: true),
child: SizedBox( child: ListView.builder(
height: 200, controller: _scrollController,
child: ListView.builder( itemCount: filteredData.length,
itemCount: filteredData.length, itemBuilder: (context, index) {
itemBuilder: (context, index) { return Padding(
return MusicListComponent(music: filteredData[index]); padding: const EdgeInsets.symmetric(horizontal: 20),
}), child: MusicListComponent(music: filteredData[index]),
), );
}),
)) ))
], ],
), ),

@ -24,7 +24,7 @@ class MusicViewModel {
final responseData = jsonDecode(response.body); final responseData = jsonDecode(response.body);
List<Artist> artists = List<Artist> artists =
List<Artist>.from(responseData['artists'].map((artist) { List<Artist>.from(responseData['artists'].map((artist) {
return Artist(artist['id'], artist['name'],''); return Artist(artist['id'], artist['name'], '');
})); }));
return Music( return Music(
@ -46,7 +46,7 @@ class MusicViewModel {
List<dynamic> tracks = responseData['tracks']['items']; List<dynamic> tracks = responseData['tracks']['items'];
for (var track in tracks) { for (var track in tracks) {
List<Artist> artists = List<Artist>.from(track['artists'].map((artist) { List<Artist> artists = List<Artist>.from(track['artists'].map((artist) {
return Artist(artist['id'], artist['name'],''); return Artist(artist['id'], artist['name'], '');
})); }));
musics.add(Music( musics.add(Music(
@ -61,12 +61,15 @@ class MusicViewModel {
return musics; return musics;
} }
Future<List<Music>> getMusicsWithName(String name, {int limit = 20, int offset = 0, String market = "FR"}) async { Future<List<Music>> getMusicsWithName(String name,
{int limit = 20, int offset = 0, String market = "FR"}) async {
var accessToken = await _token.getAccessToken(); var accessToken = await _token.getAccessToken();
var response = await http var response = await http.get(
.get(Uri.parse('$API_URL/search?q=track%3A$name&type=track&market=fr&limit=$limit&offset=$offset'), headers: { Uri.parse(
'Authorization': 'Bearer $accessToken', '$API_URL/search?q=track%3A$name&type=track&market=fr&limit=$limit&offset=$offset'),
}); headers: {
'Authorization': 'Bearer $accessToken',
});
if (response.statusCode == 200) { if (response.statusCode == 200) {
Map<String, dynamic> responseData = jsonDecode(response.body); Map<String, dynamic> responseData = jsonDecode(response.body);
@ -77,10 +80,12 @@ class MusicViewModel {
} }
} }
Future<List<Music>> getMusicsWithArtistName(String name, {int limit = 20, int offset = 0, String market = "FR"}) async { Future<List<Music>> getMusicsWithArtistName(String name,
{int limit = 20, int offset = 0, String market = "FR"}) async {
var accessToken = await _token.getAccessToken(); var accessToken = await _token.getAccessToken();
var response = await http.get( var response = await http.get(
Uri.parse('$API_URL/search?q=artist%3A$name&type=track&market=fr&limit=$limit&offset=$offset'), Uri.parse(
'$API_URL/search?q=artist%3A$name&type=track&market=fr&limit=$limit&offset=$offset'),
headers: { headers: {
'Authorization': 'Bearer $accessToken', 'Authorization': 'Bearer $accessToken',
}); });

@ -5,140 +5,160 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: async name: async
url: "https://pub.dartlang.org" sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.9.0" version: "2.11.0"
audioplayers: audioplayers:
dependency: "direct main" dependency: "direct main"
description: description:
name: audioplayers name: audioplayers
url: "https://pub.dartlang.org" sha256: "61583554386721772f9309f509e17712865b38565a903c761f96b1115a979282"
url: "https://pub.dev"
source: hosted source: hosted
version: "4.1.0" version: "4.1.0"
audioplayers_android: audioplayers_android:
dependency: transitive dependency: transitive
description: description:
name: audioplayers_android name: audioplayers_android
url: "https://pub.dartlang.org" sha256: dbdc9b7f2aa2440314c638aa55aadd45c7705e8340d5eddf2e3fb8da32d4ae2c
url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.2" version: "3.0.2"
audioplayers_darwin: audioplayers_darwin:
dependency: transitive dependency: transitive
description: description:
name: audioplayers_darwin name: audioplayers_darwin
url: "https://pub.dartlang.org" sha256: "6aea96df1d12f7ad5a71d88c6d1b22a216211a9564219920124c16768e456e9d"
url: "https://pub.dev"
source: hosted source: hosted
version: "4.1.0" version: "4.1.0"
audioplayers_linux: audioplayers_linux:
dependency: transitive dependency: transitive
description: description:
name: audioplayers_linux name: audioplayers_linux
url: "https://pub.dartlang.org" sha256: "396b62ac62c92dd26c3bc5106583747f57a8b325ebd2b41e5576f840cfc61338"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.1.0"
audioplayers_platform_interface: audioplayers_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: audioplayers_platform_interface name: audioplayers_platform_interface
url: "https://pub.dartlang.org" sha256: f7daaed4659143094151ecf6bacd927d29ab8acffba98c110c59f0b81ae51143
url: "https://pub.dev"
source: hosted source: hosted
version: "5.0.1" version: "5.0.1"
audioplayers_web: audioplayers_web:
dependency: transitive dependency: transitive
description: description:
name: audioplayers_web name: audioplayers_web
url: "https://pub.dartlang.org" sha256: ec84fd46eed1577148ed4113f5998a36a18da4fce7170c37ce3e21b631393339
url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.0" version: "3.1.0"
audioplayers_windows: audioplayers_windows:
dependency: transitive dependency: transitive
description: description:
name: audioplayers_windows name: audioplayers_windows
url: "https://pub.dartlang.org" sha256: "1d3aaac98a192b8488167711ba1e67d8b96333e8d0572ede4e2912e5bbce69a3"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.2" version: "2.0.2"
auto_size_text: auto_size_text:
dependency: "direct main" dependency: "direct main"
description: description:
name: auto_size_text name: auto_size_text
url: "https://pub.dartlang.org" sha256: "3f5261cd3fb5f2a9ab4e2fc3fba84fd9fcaac8821f20a1d4e71f557521b22599"
url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.0" version: "3.0.0"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
name: boolean_selector name: boolean_selector
url: "https://pub.dartlang.org" sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.1.1"
characters: characters:
dependency: transitive dependency: transitive
description: description:
name: characters name: characters
url: "https://pub.dartlang.org" sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.1" version: "1.3.0"
circular_reveal_animation: circular_reveal_animation:
dependency: "direct main" dependency: "direct main"
description: description:
name: circular_reveal_animation name: circular_reveal_animation
url: "https://pub.dartlang.org" sha256: "198f5a1fa27384dcf950807e0ae07a0da857c04df6233f7468755ee9db102b0c"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
clock: clock:
dependency: transitive dependency: transitive
description: description:
name: clock name: clock
url: "https://pub.dartlang.org" sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.1" version: "1.1.1"
collection: collection:
dependency: transitive dependency: transitive
description: description:
name: collection name: collection
url: "https://pub.dartlang.org" sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.16.0" version: "1.17.1"
crypto: crypto:
dependency: transitive dependency: transitive
description: description:
name: crypto name: crypto
url: "https://pub.dartlang.org" sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67
url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.2" version: "3.0.2"
cupertino_icons: cupertino_icons:
dependency: "direct main" dependency: "direct main"
description: description:
name: cupertino_icons name: cupertino_icons
url: "https://pub.dartlang.org" sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be
url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.5" version: "1.0.5"
custom_draggable_widget: custom_draggable_widget:
dependency: "direct main" dependency: "direct main"
description: description:
name: custom_draggable_widget name: custom_draggable_widget
url: "https://pub.dartlang.org" sha256: "15718003ebcebb84acdf0c625831a880d139a284d8de9d943ef0d0a669f10159"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.0.2" version: "0.0.2"
fake_async: fake_async:
dependency: transitive dependency: transitive
description: description:
name: fake_async name: fake_async
url: "https://pub.dartlang.org" sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.1" version: "1.3.1"
ffi: ffi:
dependency: transitive dependency: transitive
description: description:
name: ffi name: ffi
url: "https://pub.dartlang.org" sha256: ed5337a5660c506388a9f012be0288fb38b49020ce2b45fe1f8b8323fe429f99
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.2" version: "2.0.2"
file: file:
dependency: transitive dependency: transitive
description: description:
name: file name: file
url: "https://pub.dartlang.org" sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
url: "https://pub.dev"
source: hosted source: hosted
version: "6.1.4" version: "6.1.4"
flutter: flutter:
@ -150,28 +170,32 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_animated_play_button name: flutter_animated_play_button
url: "https://pub.dartlang.org" sha256: dd955a450a4514e935e2f410afbd03b3bcf5f31b933a8f1334199caa3c6a81e2
url: "https://pub.dev"
source: hosted source: hosted
version: "0.3.0" version: "0.3.0"
flutter_lints: flutter_lints:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: flutter_lints name: flutter_lints
url: "https://pub.dartlang.org" sha256: "2118df84ef0c3ca93f96123a616ae8540879991b8b57af2f81b76a7ada49b2a4"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.2" version: "2.0.2"
flutter_screenutil: flutter_screenutil:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_screenutil name: flutter_screenutil
url: "https://pub.dartlang.org" sha256: "0a122936b450324cbdfd51be0819cc6fcebb093eb65585e9cd92263f7a1a8a39"
url: "https://pub.dev"
source: hosted source: hosted
version: "5.7.0" version: "5.7.0"
flutter_signin_button: flutter_signin_button:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_signin_button name: flutter_signin_button
url: "https://pub.dartlang.org" sha256: a063ecc5d5308377e103c9c3a89084abf15fca4440636233af6a13abacd5dcae
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
flutter_test: flutter_test:
@ -188,154 +212,176 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: font_awesome_flutter name: font_awesome_flutter
url: "https://pub.dartlang.org" sha256: "1f93e5799f0e6c882819e8393a05c6ca5226010f289190f2242ec19f3f0fdba5"
url: "https://pub.dev"
source: hosted source: hosted
version: "9.2.0" version: "9.2.0"
google_fonts: google_fonts:
dependency: "direct main" dependency: "direct main"
description: description:
name: google_fonts name: google_fonts
url: "https://pub.dartlang.org" sha256: "6b6f10f0ce3c42f6552d1c70d2c28d764cf22bb487f50f66cca31dcd5194f4d6"
url: "https://pub.dev"
source: hosted source: hosted
version: "4.0.4" version: "4.0.4"
gradiantbutton: gradiantbutton:
dependency: "direct main" dependency: "direct main"
description: description:
name: gradiantbutton name: gradiantbutton
url: "https://pub.dartlang.org" sha256: c88ac8567242630cd14231e2a6a861da4e40a02a9a0310af360e05634890d172
url: "https://pub.dev"
source: hosted source: hosted
version: "0.0.1" version: "0.0.1"
gradient_borders: gradient_borders:
dependency: "direct main" dependency: "direct main"
description: description:
name: gradient_borders name: gradient_borders
url: "https://pub.dartlang.org" sha256: "69eeaff519d145a4c6c213ada1abae386bcc8981a4970d923e478ce7ba19e309"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
http: http:
dependency: "direct main" dependency: "direct main"
description: description:
name: http name: http
url: "https://pub.dartlang.org" sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.13.5" version: "0.13.5"
http_parser: http_parser:
dependency: transitive dependency: transitive
description: description:
name: http_parser name: http_parser
url: "https://pub.dartlang.org" sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
url: "https://pub.dev"
source: hosted source: hosted
version: "4.0.2" version: "4.0.2"
ionicons: ionicons:
dependency: "direct main" dependency: "direct main"
description: description:
name: ionicons name: ionicons
url: "https://pub.dartlang.org" sha256: "5496bc65a16115ecf05b15b78f494ee4a8869504357668f0a11d689e970523cf"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.2.2" version: "0.2.2"
js: js:
dependency: transitive dependency: transitive
description: description:
name: js name: js
url: "https://pub.dartlang.org" sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
url: "https://pub.dev"
source: hosted source: hosted
version: "0.6.4" version: "0.6.7"
lints: lints:
dependency: transitive dependency: transitive
description: description:
name: lints name: lints
url: "https://pub.dartlang.org" sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
matcher: matcher:
dependency: transitive dependency: transitive
description: description:
name: matcher name: matcher
url: "https://pub.dartlang.org" sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.12.12" version: "0.12.15"
material_color_utilities: material_color_utilities:
dependency: transitive dependency: transitive
description: description:
name: material_color_utilities name: material_color_utilities
url: "https://pub.dartlang.org" sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
url: "https://pub.dev"
source: hosted source: hosted
version: "0.1.5" version: "0.2.0"
meta: meta:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
url: "https://pub.dartlang.org" sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.8.0" version: "1.9.1"
modal_bottom_sheet: modal_bottom_sheet:
dependency: "direct main" dependency: "direct main"
description: description:
name: modal_bottom_sheet name: modal_bottom_sheet
url: "https://pub.dartlang.org" sha256: ef533916a2c3089571c32bd34e410faca77a6849a3f28f748e0794525c5658a0
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.2" version: "2.1.2"
path: path:
dependency: transitive dependency: transitive
description: description:
name: path name: path
url: "https://pub.dartlang.org" sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.8.2" version: "1.8.3"
path_provider: path_provider:
dependency: transitive dependency: transitive
description: description:
name: path_provider name: path_provider
url: "https://pub.dartlang.org" sha256: "3087813781ab814e4157b172f1a11c46be20179fcc9bea043e0fba36bc0acaa2"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.15" version: "2.0.15"
path_provider_android: path_provider_android:
dependency: transitive dependency: transitive
description: description:
name: path_provider_android name: path_provider_android
url: "https://pub.dartlang.org" sha256: "2cec049d282c7f13c594b4a73976b0b4f2d7a1838a6dd5aaf7bd9719196bee86"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.27" version: "2.0.27"
path_provider_foundation: path_provider_foundation:
dependency: transitive dependency: transitive
description: description:
name: path_provider_foundation name: path_provider_foundation
url: "https://pub.dartlang.org" sha256: "916731ccbdce44d545414dd9961f26ba5fbaa74bcbb55237d8e65a623a8c7297"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.4" version: "2.2.4"
path_provider_linux: path_provider_linux:
dependency: transitive dependency: transitive
description: description:
name: path_provider_linux name: path_provider_linux
url: "https://pub.dartlang.org" sha256: ffbb8cc9ed2c9ec0e4b7a541e56fd79b138e8f47d2fb86815f15358a349b3b57
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.11" version: "2.1.11"
path_provider_platform_interface: path_provider_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: path_provider_platform_interface name: path_provider_platform_interface
url: "https://pub.dartlang.org" sha256: "57585299a729335f1298b43245842678cb9f43a6310351b18fb577d6e33165ec"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.6" version: "2.0.6"
path_provider_windows: path_provider_windows:
dependency: transitive dependency: transitive
description: description:
name: path_provider_windows name: path_provider_windows
url: "https://pub.dartlang.org" sha256: "1cb68ba4cd3a795033de62ba1b7b4564dace301f952de6bfb3cd91b202b6ee96"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.7" version: "2.1.7"
platform: platform:
dependency: transitive dependency: transitive
description: description:
name: platform name: platform
url: "https://pub.dartlang.org" sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.0" version: "3.1.0"
plugin_platform_interface: plugin_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: plugin_platform_interface name: plugin_platform_interface
url: "https://pub.dartlang.org" sha256: "43798d895c929056255600343db8f049921cbec94d31ec87f1dc5c16c01935dd"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.5" version: "2.1.5"
sky_engine: sky_engine:
@ -347,114 +393,130 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: smooth_corner name: smooth_corner
url: "https://pub.dartlang.org" sha256: "1e920cffd9644d6f51f9a99674652f8c00f2e9074b275f3edde0de1441ba78e9"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
source_span: source_span:
dependency: transitive dependency: transitive
description: description:
name: source_span name: source_span
url: "https://pub.dartlang.org" sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
url: "https://pub.dev"
source: hosted source: hosted
version: "1.9.0" version: "1.9.1"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
name: stack_trace name: stack_trace
url: "https://pub.dartlang.org" sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
url: "https://pub.dev"
source: hosted source: hosted
version: "1.10.0" version: "1.11.0"
stream_channel: stream_channel:
dependency: transitive dependency: transitive
description: description:
name: stream_channel name: stream_channel
url: "https://pub.dartlang.org" sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.1.1"
string_scanner: string_scanner:
dependency: transitive dependency: transitive
description: description:
name: string_scanner name: string_scanner
url: "https://pub.dartlang.org" sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.1" version: "1.2.0"
synchronized: synchronized:
dependency: transitive dependency: transitive
description: description:
name: synchronized name: synchronized
url: "https://pub.dartlang.org" sha256: "5fcbd27688af6082f5abd611af56ee575342c30e87541d0245f7ff99faa02c60"
url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.0" version: "3.1.0"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
name: term_glyph name: term_glyph
url: "https://pub.dartlang.org" sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.1" version: "1.2.1"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
url: "https://pub.dartlang.org" sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
url: "https://pub.dev"
source: hosted source: hosted
version: "0.4.12" version: "0.5.1"
text_scroll: text_scroll:
dependency: "direct main" dependency: "direct main"
description: description:
name: text_scroll name: text_scroll
url: "https://pub.dartlang.org" sha256: "7869d86a6fdd725dee56bdd150216a99f0372b82fbfcac319214dbd5f36e1908"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.2.0" version: "0.2.0"
top_snackbar_flutter: top_snackbar_flutter:
dependency: "direct main" dependency: "direct main"
description: description:
name: top_snackbar_flutter name: top_snackbar_flutter
url: "https://pub.dartlang.org" sha256: "22d14664a13db6ac714934c3382bd8d4daa57fb888a672f922df71981c5a5cb2"
url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.0" version: "3.1.0"
typed_data: typed_data:
dependency: transitive dependency: transitive
description: description:
name: typed_data name: typed_data
url: "https://pub.dartlang.org" sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.2" version: "1.3.2"
uuid: uuid:
dependency: transitive dependency: transitive
description: description:
name: uuid name: uuid
url: "https://pub.dartlang.org" sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313"
url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.7" version: "3.0.7"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
name: vector_math name: vector_math
url: "https://pub.dartlang.org" sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.2" version: "2.1.4"
win32: win32:
dependency: transitive dependency: transitive
description: description:
name: win32 name: win32
url: "https://pub.dartlang.org" sha256: "5a751eddf9db89b3e5f9d50c20ab8612296e4e8db69009788d6c8b060a84191c"
url: "https://pub.dev"
source: hosted source: hosted
version: "4.1.4" version: "4.1.4"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:
name: xdg_directories name: xdg_directories
url: "https://pub.dartlang.org" sha256: e0b1147eec179d3911f1f19b59206448f78195ca1d20514134e10641b7d7fbff
url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.1" version: "1.0.1"
zoom_tap_animation: zoom_tap_animation:
dependency: "direct main" dependency: "direct main"
description: description:
name: zoom_tap_animation name: zoom_tap_animation
url: "https://pub.dartlang.org" sha256: d9f7a73cab65aa1546ba6886b5e21d3c8ccccb34e4e5f770301c306d4868bee0
url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
sdks: sdks:
dart: ">=2.18.2 <3.0.0" dart: ">=3.0.0-0 <4.0.0"
flutter: ">=3.3.0" flutter: ">=3.3.0"

Loading…
Cancel
Save