From a8da8c9999dacc2794e92d87211f424af468dc4a Mon Sep 17 00:00:00 2001 From: delanierlucas Date: Sat, 19 Nov 2022 16:23:07 +0100 Subject: [PATCH] play track with DaflApp --- .idea/libraries/Dart_Packages.xml | 340 +++++++++--------- .idea/libraries/Dart_SDK.xml | 38 +- .../assets/images/play_spotify_button.png | Bin 0 -> 18858 bytes .../assets/images/playing_animation.riv | Bin 0 -> 715 bytes .../lib/controller/controller.dart | 33 -- .../dafl_project_flutter/lib/model/spot.dart | 11 + .../dafl_project_flutter/lib/model/user.dart | 5 +- .../lib/views/pages/main/w_discovery.dart | 13 +- .../lib/views/pages/main/w_profile.dart | 12 +- .../lib/views/pages/main/w_spot.dart | 15 + .../lib/views/pages/sign_in/p_sign_in.dart | 1 - 11 files changed, 238 insertions(+), 230 deletions(-) create mode 100644 Sources/dafl_project_flutter/assets/images/play_spotify_button.png create mode 100644 Sources/dafl_project_flutter/assets/images/playing_animation.riv diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml index c2384f5..b25f471 100644 --- a/.idea/libraries/Dart_Packages.xml +++ b/.idea/libraries/Dart_Packages.xml @@ -5,686 +5,686 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.idea/libraries/Dart_SDK.xml b/.idea/libraries/Dart_SDK.xml index 6ae284f..b6e6985 100644 --- a/.idea/libraries/Dart_SDK.xml +++ b/.idea/libraries/Dart_SDK.xml @@ -1,25 +1,25 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + diff --git a/Sources/dafl_project_flutter/assets/images/play_spotify_button.png b/Sources/dafl_project_flutter/assets/images/play_spotify_button.png new file mode 100644 index 0000000000000000000000000000000000000000..f22d5cb99ef7bf7714a3052db83ab27c5dea965e GIT binary patch literal 18858 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 JPDHLkV1h$KQ6vBW literal 0 HcmV?d00001 diff --git a/Sources/dafl_project_flutter/assets/images/playing_animation.riv b/Sources/dafl_project_flutter/assets/images/playing_animation.riv new file mode 100644 index 0000000000000000000000000000000000000000..a5165e596b1107ea05c30b5e185324b7d2858348 GIT binary patch literal 715 zcmZY6%SyvQ6b9gb(u^sTrnRrH-xKP|F zK8N@KzKGyj7kVZ=l@tSKlK;#HbII=J{+flS?<{&C%*?jiP@(7grLDlNsn7zxoTMIL znC5N}G$hic$xFuuE*&Jyjv#dFhf0bx@VNq08hIeQQqTi(GB@%=k9HTz_k;7uooFZ9 zTvyA&E&2|{VwO)Htq$mfF<36ZsAdUiKzWRW-)5v7a6jQbN~PV literal 0 HcmV?d00001 diff --git a/Sources/dafl_project_flutter/lib/controller/controller.dart b/Sources/dafl_project_flutter/lib/controller/controller.dart index e08e080..a98b2fc 100644 --- a/Sources/dafl_project_flutter/lib/controller/controller.dart +++ b/Sources/dafl_project_flutter/lib/controller/controller.dart @@ -43,39 +43,6 @@ class Controller { return await _searcher.searchByUsername(username); } - /*void chargeExample() { - currentUser.spots = [ - Spot( - User('Félix', '1234'), - Music('Couleurs', 'Khali', - 'https://khaligidilit.com/assets/images/cover-LAI%CC%88LA-Khali.jpeg')), - Spot( - User('Audric', '1234'), - Music("J'suis PNL", 'PNL', - 'https://m.media-amazon.com/images/I/61aUOMzwS8L._SL1440_.jpg')), - Spot( - User('Dorian', '1234'), - Music('Sundance', 'Nepal', - 'https://pbs.twimg.com/media/ExJ-My-XMAE3Ko2.jpg')), - Spot( - User('Lucas', '1234'), - Music('Eternelle 2', 'So La Lune', - 'https://cdns-images.dzcdn.net/images/cover/2818a661c6d533155ce6dffc256b1f51/500x500.jpg')), - Spot( - User('David', '1234'), - Music('M.I.L.S 3', 'Ninho', - 'https://cdns-images.dzcdn.net/images/cover/b351f0e935c9c3901f8d893b92ab952a/500x500.jpg')), - Spot( - User('Hugo', '1234'), - Music('Deux frères', 'PNL', - 'https://cdns-images.dzcdn.net/images/cover/65147b581f2ace9e0f0723ee76e70fda/500x500.jpg')), - Spot( - User('Alban', '1234'), - Music('Paradis', 'Sopico', - 'https://cdns-images.dzcdn.net/images/cover/17a9747927ac3e5ea56f92f635d9180c/500x500.jpg')), - ].reversed.toList(); - }*/ - Future sendEmail( User reporter, User reported, String reason, String message) async { const serviceId = 'service_dzyndyb'; diff --git a/Sources/dafl_project_flutter/lib/model/spot.dart b/Sources/dafl_project_flutter/lib/model/spot.dart index d093b7f..84a5105 100644 --- a/Sources/dafl_project_flutter/lib/model/spot.dart +++ b/Sources/dafl_project_flutter/lib/model/spot.dart @@ -5,4 +5,15 @@ class Spot { Music music; Spot(this.userId, this.music); + + @override + bool operator ==(Object other) => + identical(this, other) || + other is Spot && + runtimeType == other.runtimeType && + userId == other.userId && + music == other.music; + + @override + int get hashCode => userId.hashCode ^ music.hashCode; } diff --git a/Sources/dafl_project_flutter/lib/model/user.dart b/Sources/dafl_project_flutter/lib/model/user.dart index c1f9008..eb327be 100644 --- a/Sources/dafl_project_flutter/lib/model/user.dart +++ b/Sources/dafl_project_flutter/lib/model/user.dart @@ -4,6 +4,7 @@ import '../exceptions/api_exception.dart'; import '../main.dart'; import 'music.dart'; import 'spot.dart'; +import 'package:collection/collection.dart'; class User { Timer? timer; @@ -55,7 +56,9 @@ class User { for (var element in tab) { List tab2 = element.split("-"); - spots.add(Spot(tab2[0], Music(tab2[1]))); + if (!spots.contains(Spot(tab2[0], Music(tab2[1])))) { + spots.add(Spot(tab2[0], Music(tab2[1]))); + } } }); } diff --git a/Sources/dafl_project_flutter/lib/views/pages/main/w_discovery.dart b/Sources/dafl_project_flutter/lib/views/pages/main/w_discovery.dart index 266d677..63c0495 100644 --- a/Sources/dafl_project_flutter/lib/views/pages/main/w_discovery.dart +++ b/Sources/dafl_project_flutter/lib/views/pages/main/w_discovery.dart @@ -42,9 +42,7 @@ class _DiscoveryWidgetState extends State { MyApp.controller.currentUser.sortChoise = !MyApp.controller.currentUser.sortChoise; rebuildAllChildren(context); - setState(() { - - }); + setState(() {}); }, style: OutlinedButton.styleFrom( shadowColor: Colors.black, @@ -85,11 +83,13 @@ class _DiscoveryWidgetState extends State { ), ); } + void rebuildAllChildren(BuildContext context) { void rebuild(Element el) { el.markNeedsBuild(); el.visitChildren(rebuild); } + (context as Element).visitChildren(rebuild); } } @@ -144,17 +144,20 @@ class _DiscoveryListState extends State { key: Key(listDiscovery[index].name), confirmDismiss: (direction) async { if (direction == DismissDirection.endToStart) { + print(listDiscovery[reversedIndex].id); print(listDiscovery[reversedIndex].name); MyApp.controller.currentUser.discovery .remove(listDiscovery[reversedIndex]); setState(() {}); + return true; } - }, - onDismissed: (direction) { if (direction == DismissDirection.startToEnd) { print(listDiscovery[reversedIndex].name); print('play'); + MyApp.api.playTrack(listDiscovery[reversedIndex].id); + setState(() {}); } + return false; }, background: Container( decoration: const BoxDecoration( diff --git a/Sources/dafl_project_flutter/lib/views/pages/main/w_profile.dart b/Sources/dafl_project_flutter/lib/views/pages/main/w_profile.dart index 7e82474..74dfbd6 100644 --- a/Sources/dafl_project_flutter/lib/views/pages/main/w_profile.dart +++ b/Sources/dafl_project_flutter/lib/views/pages/main/w_profile.dart @@ -2,6 +2,7 @@ import '../../../main.dart'; import './w_settings.dart'; import './w_spot.dart'; import 'package:flutter/material.dart'; +import 'package:rive/rive.dart' as riv; class ProfileWidget extends StatefulWidget { const ProfileWidget({Key? key}) : super(key: key); @@ -203,13 +204,22 @@ class _MainPageProfilState extends State { width: 10, ), Text( - "En cours d'écoute...", + "En cours d'écoute", style: TextStyle( color: Colors.white, fontSize: 17, fontWeight: FontWeight.w400), textAlign: TextAlign.center, ), + Padding( + padding: EdgeInsets.fromLTRB(1, 9, 0, 0), + child: SizedBox( + width: 25, + height: 25, + child: riv.RiveAnimation.asset( + 'assets/images/playing_animation.riv'), + ), + ), ], ), Container( diff --git a/Sources/dafl_project_flutter/lib/views/pages/main/w_spot.dart b/Sources/dafl_project_flutter/lib/views/pages/main/w_spot.dart index 71305b4..c7f4a15 100644 --- a/Sources/dafl_project_flutter/lib/views/pages/main/w_spot.dart +++ b/Sources/dafl_project_flutter/lib/views/pages/main/w_spot.dart @@ -194,6 +194,21 @@ class _SpotsWidgetState extends State { ], ), ), + Positioned( + top: 115, + right: 0, + child: GestureDetector( + onTap: () { + MyApp.api.playTrack( + MyApp.controller.currentUser.spots.last.music.id); + }, + child: SizedBox( + height: 40, + child: !MyApp.controller.currentUser.spots.isEmpty + ? Image.asset("assets/images/play_spotify_button.png") + : Container(), + ), + )) ], ), )); diff --git a/Sources/dafl_project_flutter/lib/views/pages/sign_in/p_sign_in.dart b/Sources/dafl_project_flutter/lib/views/pages/sign_in/p_sign_in.dart index 83537fb..44e9edd 100644 --- a/Sources/dafl_project_flutter/lib/views/pages/sign_in/p_sign_in.dart +++ b/Sources/dafl_project_flutter/lib/views/pages/sign_in/p_sign_in.dart @@ -260,7 +260,6 @@ class _SignInPageState extends State { .load(userNameTextField.text, passwordTextField.text); if (MyApp.controller.currentUser.usernameDafl != "") { - //MyApp.controller.chargeExample(); Navigator.of(context).push( PageTransition( type: PageTransitionType.fade,