diff --git a/Sources/dafl_project_flutter/lib/api/api.dart b/Sources/dafl_project_flutter/lib/api/api.dart index 982282c..11b360a 100644 --- a/Sources/dafl_project_flutter/lib/api/api.dart +++ b/Sources/dafl_project_flutter/lib/api/api.dart @@ -2,7 +2,7 @@ import 'dart:convert'; import 'dart:math'; import 'package:http/http.dart' as http; import 'package:crypto/crypto.dart'; - +import 'dart:developer' as dev; import 'track.dart'; class Api { @@ -36,7 +36,7 @@ class Api { _state = _generateRandomString(16); _codeVerifier = _generateRandomString(_generateRandomInt(43, 128)); _codeChallenge = _generateCodeChallenge(); - print(_codeChallenge); + dev.log(_codeChallenge); _encodedLogs = base64.encode(utf8.encode("$_clientId:$_clientSecret")); _urlAuthorize = Uri.https('accounts.spotify.com', 'authorize', { 'client_id': _clientId, diff --git a/Sources/dafl_project_flutter/lib/api/in_app_browser.dart b/Sources/dafl_project_flutter/lib/api/in_app_browser.dart index 0424e86..81bc685 100644 --- a/Sources/dafl_project_flutter/lib/api/in_app_browser.dart +++ b/Sources/dafl_project_flutter/lib/api/in_app_browser.dart @@ -2,8 +2,6 @@ import 'dart:io'; import 'package:dafl_project_flutter/main.dart'; import 'package:flutter_inappwebview/flutter_inappwebview.dart'; -import 'track.dart'; - class MyInAppBrowser extends InAppBrowser { var options = InAppBrowserClassOptions( crossPlatform: diff --git a/Sources/dafl_project_flutter/lib/controller/controller.dart b/Sources/dafl_project_flutter/lib/controller/controller.dart index 7da6b68..6ae37c9 100644 --- a/Sources/dafl_project_flutter/lib/controller/controller.dart +++ b/Sources/dafl_project_flutter/lib/controller/controller.dart @@ -4,57 +4,41 @@ import '../persistence/database_searcher.dart'; import '../persistence/loader.dart'; import '../persistence/saver.dart'; -import '../persistence/loader.dart'; import '../model/user.dart'; import '../persistence/searcher.dart'; - -class Controller{ - static Controller? _this; - +class Controller { static Saver saver = DatabaseSaver(); static Loader loader = DatabaseLoader(); - static Searcher _searcher = DatabaseSearcher(); - + static final Searcher _searcher = DatabaseSearcher(); User currentUser = User("", ""); - - factory Controller(){ - if (_this == null) _this = Controller._(); - return _this!; - } - - Controller._(); - - void save(User userToSave){ + void save(User userToSave) { saver.save(userToSave); } - Future load(String username, String password) async{ + Future load(String username, String password) async { changeCurrentUser(await loader.load(username, password)); } - User createUser(String username, String password){ + User createUser(String username, String password) { return User(username, password); } - void changeCurrentUser(User user){ - this.currentUser = user; + void changeCurrentUser(User user) { + currentUser = user; } - void changeUsernameCourant(String newName){ - if(newName !=null){ - this.currentUser.usernameDafl = newName; - } + void changeUsernameCourant(String newName) { + currentUser.usernameDafl = newName; } - void changePasswordCourant(String newPass){ - if(newPass !=null){ - this.currentUser.passwDafl = newPass; - } + + void changePasswordCourant(String newPass) { + currentUser.passwDafl = newPass; } - Future searchByUsername(String username) async{ + Future searchByUsername(String username) async { return await _searcher.searchByUsername(username); } } diff --git a/Sources/dafl_project_flutter/lib/main.dart b/Sources/dafl_project_flutter/lib/main.dart index c5d8b8b..0b54269 100644 --- a/Sources/dafl_project_flutter/lib/main.dart +++ b/Sources/dafl_project_flutter/lib/main.dart @@ -9,30 +9,30 @@ import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; import 'package:rive/rive.dart' as riv; import '../controller/controller.dart'; -import '../model/music.dart'; -import 'model/music.dart'; import 'model/spot.dart'; import 'model/user.dart'; -import 'package:rive/rive.dart'; import 'api/api.dart'; +import 'dart:developer' as dev; void main() { - runApp(MyApp()); + runApp(const MyApp()); } class MyApp extends StatelessWidget { - Controller controller = Controller(); - + static Controller controller = Controller(); static Api api = Api(); + + const MyApp({super.key}); + // This widget is the root of your application. @override - Widget build(BuildContext context){ + Widget build(BuildContext context) { Paint.enableDithering = true; SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky); return ChangeNotifierProvider( create: (context) => CardProvider(), - child: MaterialApp( + child: const MaterialApp( debugShowCheckedModeBanner: false, title: 'Flutter Demo', home: HomePage(), @@ -43,16 +43,19 @@ class MyApp extends StatelessWidget { enum CardStatus { like, disLike, discovery, message } -class CardProvider extends ChangeNotifier{ - List _spotsList = MyApp().controller.currentUser.Spots2; +class CardProvider extends ChangeNotifier { + final List _spotsList = MyApp.controller.currentUser.spots; bool _isDragging = false; double _angle = 0; Offset _position = Offset.zero; Size _screenSize = Size.zero; List get spotsList => _spotsList; + bool get isDragging => _isDragging; + Offset get position => _position; + double get angle => _angle; void setScreenSize(Size screenSize) => _screenSize = screenSize; @@ -104,7 +107,7 @@ class CardProvider extends ChangeNotifier{ } double getStatusOpacity() { - final delta = 100; + const delta = 100; final pos = max(_position.dx.abs(), _position.dy.abs()); final opacity = pos / delta; @@ -115,10 +118,9 @@ class CardProvider extends ChangeNotifier{ final x = _position.dx; final y = _position.dy; final forceDiscovery = x.abs() < 80; - final forceMessage = x.abs() < 100; if (force) { - final delta = 100; + const delta = 100; if (x >= delta) { return CardStatus.like; @@ -130,7 +132,7 @@ class CardProvider extends ChangeNotifier{ return CardStatus.discovery; } } else { - final delta = 20; + const delta = 20; if (y <= -delta * 2 && forceDiscovery) { return CardStatus.message; @@ -146,7 +148,7 @@ class CardProvider extends ChangeNotifier{ void dislike() { Vibration.vibrate(duration: 20, amplitude: 60); - print("dislike"); + dev.log("dislike"); _angle = -20; _position -= Offset(2 * _screenSize.width, 0); _nextCard(); @@ -156,53 +158,49 @@ class CardProvider extends ChangeNotifier{ void discovery() { Vibration.vibrate(duration: 20, amplitude: 60); - print("discovery"); + dev.log("discovery"); _angle = 0; _position -= Offset(0, -_screenSize.height); - _discovery_card(); - print("discovery"); - if(MyApp().controller.currentUser.Discovery.contains(MyApp().controller.currentUser.Spots2?.last.music)){ - MyApp().controller.currentUser.Discovery.remove(MyApp().controller.currentUser.Spots2?.last.music); + _discoveryCard(); + dev.log("discovery"); + if (MyApp.controller.currentUser.discovery + .contains(MyApp.controller.currentUser.spots.last.music)) { + MyApp.controller.currentUser.discovery + .remove(MyApp.controller.currentUser.spots.last.music); Fluttertoast.showToast( - msg: 'Supprimer', - toastLength: Toast.LENGTH_SHORT, - gravity: ToastGravity.TOP, - timeInSecForIosWeb: 2, - backgroundColor: Colors.red, - textColor: Colors.white - ); - } - else{ - if(MyApp().controller.currentUser.Spots2?.last != null){ - MyApp().controller.currentUser.addDiscovery(MyApp().controller.currentUser.Spots2.last.music); - Fluttertoast.showToast( - msg: 'Ajouté', - toastLength: Toast.LENGTH_SHORT, - gravity: ToastGravity.TOP, - timeInSecForIosWeb: 2, - backgroundColor: Colors.deepPurple, - textColor: Colors.white - ); - notifyListeners(); - } - + msg: 'Supprimer', + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.TOP, + timeInSecForIosWeb: 2, + backgroundColor: Colors.red, + textColor: Colors.white); + } else { + MyApp.controller.currentUser + .addDiscovery(MyApp.controller.currentUser.spots.last.music); + Fluttertoast.showToast( + msg: 'Ajouté', + toastLength: Toast.LENGTH_SHORT, + gravity: ToastGravity.TOP, + timeInSecForIosWeb: 2, + backgroundColor: Colors.deepPurple, + textColor: Colors.white); + notifyListeners(); } - } void message(context) { Vibration.vibrate(duration: 20, amplitude: 60); - print("message"); + dev.log("message"); _angle = 0; _position -= Offset(0, _screenSize.height); - _message_card(); + _messageCard(); showModalBottomSheet( isDismissible: false, useRootNavigator: true, isScrollControlled: true, backgroundColor: Colors.transparent, context: context, - constraints: BoxConstraints( + constraints: const BoxConstraints( maxWidth: 600, maxHeight: double.infinity, ), @@ -210,7 +208,8 @@ class CardProvider extends ChangeNotifier{ ); notifyListeners(); } - Widget buildSheet(){ + + Widget buildSheet() { final messageTextField = TextEditingController(); return Container( height: 550, @@ -231,45 +230,50 @@ class CardProvider extends ChangeNotifier{ offset: const Offset(0.0, 0.0), blurRadius: 0.0, spreadRadius: 0.0, - ),//BoxShadow//BoxShadow + ), //BoxShadow//BoxShadow ], - color: Color(0xFF232123), - borderRadius: BorderRadius.only( + color: const Color(0xFF232123), + borderRadius: const BorderRadius.only( topRight: Radius.circular(30), topLeft: Radius.circular(30), ), ), child: Padding( - padding: EdgeInsets.fromLTRB(20, 10, 20, 10), + padding: const EdgeInsets.fromLTRB(20, 10, 20, 10), child: Column( children: [ - Container( height: 5, width: 130, decoration: BoxDecoration( borderRadius: BorderRadius.circular(20), - color: Color(0xFF8A8A8A), + color: const Color(0xFF8A8A8A), ), ), - SizedBox(height: 30,), + const SizedBox( + height: 30, + ), Container( width: double.infinity, height: 300, decoration: BoxDecoration( borderRadius: BorderRadius.circular(20), - color: Color(0xFF302C30), + color: const Color(0xFF302C30), ), child: Padding( - padding: EdgeInsets.all(20), + padding: const EdgeInsets.all(20), child: TextField( controller: messageTextField, maxLength: 300, - style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 17, fontWeight: FontWeight.w200), + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 17, + fontWeight: FontWeight.w200), expands: true, maxLines: null, keyboardType: TextInputType.multiline, - decoration: InputDecoration( + decoration: const InputDecoration( hintStyle: TextStyle( color: Colors.white, ), @@ -279,29 +283,34 @@ class CardProvider extends ChangeNotifier{ ), ), ), - SizedBox(height: 20,), + const SizedBox( + height: 20, + ), SizedBox( width: double.infinity, height: 70, child: ElevatedButton( onPressed: () { - sendMessage(messageTextField.text, MyApp().controller.currentUser.Spots2.last.user); + sendMessage(messageTextField.text, + MyApp.controller.currentUser.spots.last.user); }, style: ElevatedButton.styleFrom( - primary: Color(0xFF3F1DC3), - textStyle: TextStyle( - fontSize: 20, - fontWeight: FontWeight.bold), + backgroundColor: const Color(0xFF3F1DC3), + textStyle: const TextStyle( + fontSize: 20, fontWeight: FontWeight.bold), shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(17) - ), + borderRadius: BorderRadius.circular(17)), ), child: Row( mainAxisAlignment: MainAxisAlignment.end, children: [ - Text("Envoyer"), - Opacity(opacity: 0.2, - child: Image.asset("assets/images/send_logo.png",),) + const Text("Envoyer"), + Opacity( + opacity: 0.2, + child: Image.asset( + "assets/images/send_logo.png", + ), + ) ], ), ), @@ -309,20 +318,16 @@ class CardProvider extends ChangeNotifier{ ], ), ), - ); - - - } - void sendMessage(String message, User destinataire){ - print(MyApp().controller.currentUser.Spots2.last.user.usernameDafl); } - + void sendMessage(String message, User destinataire) { + dev.log(MyApp.controller.currentUser.spots.last.user.usernameDafl); + } void like(context) { Vibration.vibrate(duration: 20, amplitude: 60); - print("like"); + dev.log("like"); _angle = 20; _position += Offset(2 * _screenSize.width, 0); _nextCard(); @@ -330,26 +335,25 @@ class CardProvider extends ChangeNotifier{ } Future _nextCard() async { - print(_spotsList.length); + dev.log(_spotsList.length.toString()); if (_spotsList.isEmpty) { - print('dernier'); + dev.log('dernier'); return; - } - else { - await Future.delayed(Duration(milliseconds: 200)); - print(_spotsList.last.music.name); + } else { + await Future.delayed(const Duration(milliseconds: 200)); + dev.log(_spotsList.last.music.name); _spotsList.removeLast(); resetPosition(); } } - Future _discovery_card() async { - await Future.delayed(Duration(milliseconds: 200)); + Future _discoveryCard() async { + await Future.delayed(const Duration(milliseconds: 200)); resetPosition(); } - Future _message_card() async { - await Future.delayed(Duration(milliseconds: 200)); + Future _messageCard() async { + await Future.delayed(const Duration(milliseconds: 200)); resetPosition(); } } @@ -366,12 +370,9 @@ class _SplashState extends State { void initState() { super.initState(); WidgetsBinding.instance.addPostFrameCallback((timeStamp) { - Timer(Duration(seconds: 2), () { - Navigator.pushReplacement(context, - MaterialPageRoute(builder: - (context) =>MainPage() - ) - ); + Timer(const Duration(seconds: 2), () { + Navigator.pushReplacement( + context, MaterialPageRoute(builder: (context) => const MainPage())); }); }); } @@ -379,12 +380,12 @@ class _SplashState extends State { @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: Color(0xFF141414), + backgroundColor: const Color(0xFF141414), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, - children: [ - Container( + children: const [ + SizedBox( height: 300, width: 300, child: riv.RiveAnimation.asset('assets/images/new_file (2).riv'), @@ -396,36 +397,43 @@ class _SplashState extends State { ); } } -Object Notify(int index, context, {bool isError = true}){ + +Object notify(int index, context, {bool isError = true}) { String message; - if(isError == true){ - switch(index){ - case 0: { - message = "Ce nom d'utilisateur existe déjà ! Veuillez réessayer."; - break; - } - case 1: { - message = "Mots de passe différents ! Veuillez réessayer."; - break; - } - case 2: { - message = "Identifiant incorrect ! Veuillez réessayer."; - break; - } - case 3: { - message = "Mot de passe incorrect ! Votre mot de passe doit contenir 8 caractères minimum."; - break; - } - case 4: { - message = "Mot de passe incorrect ! Veuillez réessayer."; - break; - } + if (isError == true) { + switch (index) { + case 0: + { + message = "Ce nom d'utilisateur existe déjà ! Veuillez réessayer."; + break; + } + case 1: + { + message = "Mots de passe différents ! Veuillez réessayer."; + break; + } + case 2: + { + message = "Identifiant incorrect ! Veuillez réessayer."; + break; + } + case 3: + { + message = + "Mot de passe incorrect ! Votre mot de passe doit contenir 8 caractères minimum."; + break; + } + case 4: + { + message = "Mot de passe incorrect ! Veuillez réessayer."; + break; + } default: - message = "Une erreur est survenue pendant l'inscription. Veuillez réessayer."; + message = + "Une erreur est survenue pendant l'inscription. Veuillez réessayer."; break; - } - return ScaffoldMessenger.of(context).showSnackBar( SnackBar( + return ScaffoldMessenger.of(context).showSnackBar(SnackBar( dismissDirection: DismissDirection.down, behavior: SnackBarBehavior.floating, backgroundColor: Colors.transparent, @@ -433,71 +441,77 @@ Object Notify(int index, context, {bool isError = true}){ content: Stack( clipBehavior: Clip.none, children: [ - Container( - padding: EdgeInsets.all(16), - height: 90, - child: Row( - children: [ - Container( + padding: const EdgeInsets.all(16), + height: 90, + decoration: BoxDecoration( + image: const DecorationImage( + image: AssetImage("assets/images/backgroundNotify.png"), + fit: BoxFit.cover), + gradient: const LinearGradient( + colors: [Color(0xFF81052a), Color(0xFF810548)], + begin: Alignment.topLeft, + end: Alignment.bottomRight), + borderRadius: const BorderRadius.all(Radius.circular(20)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.3), + blurRadius: 10, + offset: const Offset(4, 8), // Shadow position + ), + ], + ), + child: Row(children: [ + const SizedBox( height: 48, width: 48, ), - Expanded(child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text("Oh oh !", style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),), - Text(message,style: TextStyle( - ), - overflow: TextOverflow.ellipsis, - maxLines: 2,), - ], - ),), - ], - ), - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage("assets/images/backgroundNotify.png"), - fit: BoxFit.cover), - gradient: LinearGradient(colors: [Color(0xFF81052a),Color(0xFF810548)],begin: Alignment.topLeft, end: Alignment.bottomRight), - borderRadius: BorderRadius.all(Radius.circular(20)), - boxShadow: [ - BoxShadow( - color: Colors.black.withOpacity(0.3), - blurRadius: 10, - offset: Offset(4, 8), // Shadow position - ), - ], - ), - ), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "Oh oh !", + style: TextStyle( + fontSize: 20, fontWeight: FontWeight.bold), + ), + Text( + message, + style: const TextStyle(), + overflow: TextOverflow.ellipsis, + maxLines: 2, + ) + ])) + ])), Positioned( top: -50, left: -20, child: Container( - color: Colors.transparent, + color: Colors.transparent, height: 110, width: 110, - child: riv.RiveAnimation.asset("assets/images/error_icon.riv"),)), + child: const riv.RiveAnimation.asset( + "assets/images/error_icon.riv"), + )), ], - ) - )); - } - else{ - switch(index){ - case 0: { - message = "Vous avez changer votre identifiant avec succès"; - break; - } - case 1: { - message = "Vous avez changer votre mot de passe avec succès"; - break; - } + ))); + } else { + switch (index) { + case 0: + { + message = "Vous avez changer votre identifiant avec succès"; + break; + } + case 1: + { + message = "Vous avez changer votre mot de passe avec succès"; + break; + } default: message = "L'opération a bien été éxécutée"; break; - } - return ScaffoldMessenger.of(context).showSnackBar( SnackBar( + return ScaffoldMessenger.of(context).showSnackBar(SnackBar( dismissDirection: DismissDirection.down, behavior: SnackBarBehavior.floating, backgroundColor: Colors.transparent, @@ -505,39 +519,49 @@ Object Notify(int index, context, {bool isError = true}){ content: Stack( clipBehavior: Clip.none, children: [ - Container( - padding: EdgeInsets.all(16), + padding: const EdgeInsets.all(16), height: 90, - child: Row( - children: [ - Container( - height: 48, - width: 48, - ), - Expanded(child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text("Super !", style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),), - Text(message,style: TextStyle( - ), - overflow: TextOverflow.ellipsis, - maxLines: 2,), - ], - ),), - ], - ), decoration: BoxDecoration( - image: DecorationImage( + image: const DecorationImage( image: AssetImage("assets/images/valid_background.png"), fit: BoxFit.cover), - gradient: LinearGradient(colors: [Color(0xFF81052a),Color(0xFF810548)],begin: Alignment.topLeft, end: Alignment.bottomRight), - borderRadius: BorderRadius.all(Radius.circular(20)), + gradient: const LinearGradient( + colors: [Color(0xFF81052a), Color(0xFF810548)], + begin: Alignment.topLeft, + end: Alignment.bottomRight), + borderRadius: const BorderRadius.all(Radius.circular(20)), boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.3), blurRadius: 10, - offset: Offset(4, 8), // Shadow position + offset: const Offset(4, 8), // Shadow position + ), + ], + ), + child: Row( + children: [ + const SizedBox( + height: 48, + width: 48, + ), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "Super !", + style: TextStyle( + fontSize: 20, fontWeight: FontWeight.bold), + ), + Text( + message, + style: const TextStyle(), + overflow: TextOverflow.ellipsis, + maxLines: 2, + ), + ], + ), ), ], ), @@ -546,16 +570,13 @@ Object Notify(int index, context, {bool isError = true}){ top: -50, left: -20, child: Container( - color: Colors.transparent, + color: Colors.transparent, height: 110, width: 110, - child: riv.RiveAnimation.asset("assets/images/valid_icon.riv"),)), + child: const riv.RiveAnimation.asset( + "assets/images/valid_icon.riv"), + )), ], - ) - )); - + ))); } - } - - diff --git a/Sources/dafl_project_flutter/lib/model/conversation.dart b/Sources/dafl_project_flutter/lib/model/conversation.dart index 09f38cf..449cd4f 100644 --- a/Sources/dafl_project_flutter/lib/model/conversation.dart +++ b/Sources/dafl_project_flutter/lib/model/conversation.dart @@ -1,21 +1,22 @@ import 'message.dart'; import 'user.dart'; +import 'dart:developer' as dev; -class Conversation{ +class Conversation { User firstUser; User secondUser; - List messages=[]; + List messages = []; - Conversation(this.firstUser,this.secondUser); + Conversation(this.firstUser, this.secondUser); - void addMessage(User sender,String content){ + void addMessage(User sender, String content) { messages.add(Message(sender, content)); } - void displayMessages(){ - print("-----Conversation entre $firstUser et $secondUser-----"); + void displayMessages() { + dev.log("-----Conversation entre $firstUser et $secondUser-----"); for (var element in messages) { - print(element); + dev.log(element.toString()); } } -} \ No newline at end of file +} diff --git a/Sources/dafl_project_flutter/lib/model/spot.dart b/Sources/dafl_project_flutter/lib/model/spot.dart index 634ba16..96253c0 100644 --- a/Sources/dafl_project_flutter/lib/model/spot.dart +++ b/Sources/dafl_project_flutter/lib/model/spot.dart @@ -1,13 +1,9 @@ +import 'music.dart'; +import 'user.dart'; -import 'package:dafl_project_flutter/model/user.dart'; -import 'package:dafl_project_flutter/model/music.dart'; - - -class Spot{ - +class Spot { User user; Music music; Spot(this.user, this.music); - -} \ No newline at end of file +} diff --git a/Sources/dafl_project_flutter/lib/model/user.dart b/Sources/dafl_project_flutter/lib/model/user.dart index 7a16c58..ba89aba 100644 --- a/Sources/dafl_project_flutter/lib/model/user.dart +++ b/Sources/dafl_project_flutter/lib/model/user.dart @@ -1,100 +1,60 @@ -import 'package:dafl_project_flutter/main.dart'; -import 'package:dafl_project_flutter/model/spot.dart'; -import 'message.dart'; -import 'spot.dart'; - +import '../main.dart'; import 'conversation.dart'; import 'music.dart'; +import 'spot.dart'; -class User{ +class User { //attributes from DAFL - late int _idDafl; - late String _usernameDafl; - late String _passwDafl; + late int idDafl; + late String usernameDafl; + late String passwDafl; //attributes to link with API - late String _usernameAPI; - late String _passwAPI; - - - - // Getters for attributes - int get idDafl => _idDafl; - String get passwAPI => _passwAPI; - String get usernameDafl => _usernameDafl; - String get passwDafl => _passwDafl; - String get usernameAPI => _usernameAPI; - - // Setters for attributes - set idDafl(int value) { _idDafl = value; } - set usernameDafl(String value) { _usernameDafl = value; } - set passwDafl(String value) { _passwDafl = value; } - set usernameAPI(String value) { _usernameAPI = value; } - set passwAPI(String value) { _passwAPI = value; } - - + late String usernameAPI; + late String passwAPI; //constructors - User(this._usernameDafl, this._passwDafl); - - User.name(this._usernameDafl); - - User.fromDatabase(this._idDafl, this._usernameDafl); + User(this.usernameDafl, this.passwDafl); + User.name(this.usernameDafl); + User.fromDatabase(this.idDafl, this.usernameDafl); //lists - Set likedUsers={}; - List Discovery=[]; - List waitingConv=[]; - List confirmConv=[]; - - Music currentSong = Music('Couleurs','Khali','https://khaligidilit.com/assets/images/cover-LAI%CC%88LA-Khali.jpeg'); - - /*List Spots=[ - Music('Couleurs','Khali','https://khaligidilit.com/assets/images/cover-LAI%CC%88LA-Khali.jpeg'), - Music("J'suis PNL",'PNL','https://m.media-amazon.com/images/I/61aUOMzwS8L._SL1440_.jpg'), - Music('Sundance','Nepal','https://pbs.twimg.com/media/ExJ-My-XMAE3Ko2.jpg'), - Music('Eternelle 2','So La Lune','https://cdns-images.dzcdn.net/images/cover/2818a661c6d533155ce6dffc256b1f51/500x500.jpg'), - Music('M.I.L.S 3','Ninho','https://cdns-images.dzcdn.net/images/cover/b351f0e935c9c3901f8d893b92ab952a/500x500.jpg'), - Music('Deux frères','PNL','https://cdns-images.dzcdn.net/images/cover/65147b581f2ace9e0f0723ee76e70fda/500x500.jpg'), - Music('Paradis','Sopico','https://cdns-images.dzcdn.net/images/cover/17a9747927ac3e5ea56f92f635d9180c/500x500.jpg')].reversed.toList();*/ - - List Spots2= []; - Map conversations={}; - + Set likedUsers = {}; + List discovery = []; + List waitingConv = []; + List confirmConv = []; + Music currentSong = Music('Couleurs', 'Khali', + 'https://khaligidilit.com/assets/images/cover-LAI%CC%88LA-Khali.jpeg'); - void addDiscovery(Music newmusic){ - if(MyApp().controller.currentUser.Discovery == null){ - - } - else{ - MyApp().controller.currentUser.Discovery.add(newmusic); - } - + List spots = []; + Map conversations = {}; + void addDiscovery(Music newmusic) { + MyApp.controller.currentUser.discovery.add(newmusic); } - void like(User liked){ + void like(User liked) { likedUsers.add(liked); Conversation? conv = liked.conversations[this]; - if(conv==null) { - conversations[liked]= Conversation(this, liked); + if (conv == null) { + conversations[liked] = Conversation(this, liked); } else { - conversations[liked]= conv; + conversations[liked] = conv; } } - void chat(User recipient,String content){ + void chat(User recipient, String content) { Conversation? conv = conversations[recipient]; - if(conv != null) conv.addMessage(this, content); + if (conv != null) conv.addMessage(this, content); } - void displayConversations(){ - conversations.forEach((k,v) => v.displayMessages()); + void displayConversations() { + conversations.forEach((k, v) => v.displayMessages()); } @override String toString() => "$usernameDafl ($passwDafl)"; -} \ No newline at end of file +} diff --git a/Sources/dafl_project_flutter/lib/persistence/database_connexion.dart b/Sources/dafl_project_flutter/lib/persistence/database_connexion.dart index d7fe1ed..7e1ff2d 100644 --- a/Sources/dafl_project_flutter/lib/persistence/database_connexion.dart +++ b/Sources/dafl_project_flutter/lib/persistence/database_connexion.dart @@ -1,18 +1,10 @@ import 'dart:convert'; -import 'dart:io'; import 'package:flutter/services.dart'; -import 'package:path_provider/path_provider.dart'; - -import '../model/user.dart'; -import 'package:postgresql2/constants.dart'; -import 'package:postgresql2/pool.dart'; import 'package:postgresql2/postgresql.dart'; - -class DatabaseConnexion{ +class DatabaseConnexion { // Path to the file containing the database identifiers - static final String filePath = 'assets/logs.txt'; - + static const String filePath = 'assets/logs.txt'; // Database identifiers static String? _psqlUser; @@ -20,41 +12,38 @@ class DatabaseConnexion{ static String? _psqlHost; static String? _psqlDataBase; - - - // Read the database connection identifiers in a file - static Future _loadLogs() async{ - try{ - final _loadedData = await rootBundle.loadString(filePath); + static Future _loadLogs() async { + try { + final loadedData = await rootBundle.loadString(filePath); - final _logs = LineSplitter.split(_loadedData).toList(); + final logs = LineSplitter.split(loadedData).toList(); - _psqlUser = _logs[0]; - _psqlPswd = _logs[1]; - _psqlHost = _logs[2]; - _psqlDataBase = _logs[3]; - } - catch(e){ + _psqlUser = logs[0]; + _psqlPswd = logs[1]; + _psqlHost = logs[2]; + _psqlDataBase = logs[3]; + } catch (e) { throw Exception('Logs file Not Found'); } } - - //Initialise and open a connection to the database - static Future initConnexion() async{ - if(_psqlHost == null || _psqlPswd == null || _psqlUser == null || _psqlDataBase == null){ + static Future initConnexion() async { + if (_psqlHost == null || + _psqlPswd == null || + _psqlUser == null || + _psqlDataBase == null) { await _loadLogs(); } - try{ - var uri = 'postgres://$_psqlUser:$_psqlPswd@$_psqlHost:5442/$_psqlDataBase'; + try { + var uri = + 'postgres://$_psqlUser:$_psqlPswd@$_psqlHost:5442/$_psqlDataBase'; return connect(uri); - } - catch(e){ + } catch (e) { throw Exception('Connection to database : IMPOSSIBLE'); } } -} \ No newline at end of file +} diff --git a/Sources/dafl_project_flutter/lib/persistence/database_loader.dart b/Sources/dafl_project_flutter/lib/persistence/database_loader.dart index 75c2fde..848018f 100644 --- a/Sources/dafl_project_flutter/lib/persistence/database_loader.dart +++ b/Sources/dafl_project_flutter/lib/persistence/database_loader.dart @@ -2,24 +2,30 @@ import 'dart:async'; import 'loader.dart'; import '../model/user.dart'; import 'database_connexion.dart'; +import 'dart:developer' as dev; -class DatabaseLoader extends Loader{ - - +class DatabaseLoader extends Loader { // Load an user from database @override Future load(String username, String password) async { final connection = await DatabaseConnexion.initConnexion(); - var queryResult = await connection.query('select * from utilisateur where username = @username AND password = @password', - {'username': username, - 'password': password}).toList() + var queryResult = await connection + .query( + 'select * from utilisateur where username = @username AND password = @password', + {'username': username, 'password': password}) + .toList() .then((result) { - print(result); - if(result.isNotEmpty) return User(username, password); - else return User("", ""); - }).whenComplete(() { - connection.close();}); + dev.log(result.toString()); + if (result.isNotEmpty) { + return User(username, password); + } else { + return User("", ""); + } + }) + .whenComplete(() { + connection.close(); + }); return queryResult; } diff --git a/Sources/dafl_project_flutter/lib/persistence/database_saver.dart b/Sources/dafl_project_flutter/lib/persistence/database_saver.dart index 25ab875..6553e79 100644 --- a/Sources/dafl_project_flutter/lib/persistence/database_saver.dart +++ b/Sources/dafl_project_flutter/lib/persistence/database_saver.dart @@ -1,25 +1,21 @@ -import 'dart:io'; import 'database_connexion.dart'; import 'saver.dart'; import '../model/user.dart'; - -class DatabaseSaver extends Saver{ - - +class DatabaseSaver extends Saver { // Save user in the database @override - void save(User userToSave) async{ + void save(User userToSave) async { final connection = await DatabaseConnexion.initConnexion(); - connection.execute('insert into utilisateur (username, password) values (@username, @password)', - { 'id' : '', + connection.execute( + 'insert into utilisateur (username, password) values (@username, @password)', + { + 'id': '', 'username': userToSave.usernameDafl, - 'password' : userToSave.passwDafl}) - - .whenComplete(() { - connection.close(); - }); + 'password': userToSave.passwDafl + }).whenComplete(() { + connection.close(); + }); } - -} \ No newline at end of file +} diff --git a/Sources/dafl_project_flutter/lib/persistence/database_searcher.dart b/Sources/dafl_project_flutter/lib/persistence/database_searcher.dart index a01721b..e10328a 100644 --- a/Sources/dafl_project_flutter/lib/persistence/database_searcher.dart +++ b/Sources/dafl_project_flutter/lib/persistence/database_searcher.dart @@ -1,26 +1,28 @@ -import 'package:dafl_project_flutter/persistence/database_connexion.dart'; - +import 'database_connexion.dart'; import 'searcher.dart'; - - -class DatabaseSearcher extends Searcher{ - Future searchUser(String? username, String? password) async { return true; } - - +class DatabaseSearcher extends Searcher { + @override + Future searchUser(String? username, String? password) async { + return true; + } // Search an user in the database by username @override - Future searchByUsername(String? usernameToSearch) async{ + Future searchByUsername(String? username) async { final connection = await DatabaseConnexion.initConnexion(); - bool queryResult = await connection.query('select * from utilisateur where username = @username',{ 'username' : usernameToSearch}) + bool queryResult = await connection + .query('select * from utilisateur where username = @username', + {'username': username}) .toList() - .then((rows) { return rows.isEmpty; }).whenComplete(() { - connection.close();}); - + .then((rows) { + return rows.isEmpty; + }) + .whenComplete(() { + connection.close(); + }); return queryResult; } - } diff --git a/Sources/dafl_project_flutter/lib/persistence/loader.dart b/Sources/dafl_project_flutter/lib/persistence/loader.dart index 2adf991..9cc2eec 100644 --- a/Sources/dafl_project_flutter/lib/persistence/loader.dart +++ b/Sources/dafl_project_flutter/lib/persistence/loader.dart @@ -1,7 +1,6 @@ import 'dart:async'; - import '../model/user.dart'; -abstract class Loader{ +abstract class Loader { Future load(String username, String password); -} \ No newline at end of file +} diff --git a/Sources/dafl_project_flutter/lib/persistence/searcher.dart b/Sources/dafl_project_flutter/lib/persistence/searcher.dart index 276a197..f27315d 100644 --- a/Sources/dafl_project_flutter/lib/persistence/searcher.dart +++ b/Sources/dafl_project_flutter/lib/persistence/searcher.dart @@ -1,6 +1,5 @@ -import '../model/user.dart'; - -abstract class Searcher{ +abstract class Searcher { Future searchUser(String? username, String? password); + Future searchByUsername(String? username); -} \ No newline at end of file +} diff --git a/Sources/dafl_project_flutter/lib/position/location.dart b/Sources/dafl_project_flutter/lib/position/location.dart index 762f7fa..74c540f 100644 --- a/Sources/dafl_project_flutter/lib/position/location.dart +++ b/Sources/dafl_project_flutter/lib/position/location.dart @@ -1,13 +1,12 @@ -import 'package:dafl_project_flutter/main.dart'; import 'package:geolocator/geolocator.dart'; import 'package:http/http.dart' as http; import 'dart:convert'; import 'dart:developer'; import 'dart:async'; -class Location { - +import '../main.dart'; +class Location { static Future sendCurrentLocation() async { Uri uri = Uri.parse("http://89.83.53.34/phpmyadmin/dafldev/insert.php"); LocationPermission permission; @@ -19,12 +18,12 @@ class Location { return Future.error('Location Not Available'); } } - String actualUser = MyApp().controller.currentUser.usernameDafl; + String actualUser = MyApp.controller.currentUser.usernameDafl; Position current = await Geolocator.getCurrentPosition(); await http.post(uri, body: { - "id" : actualUser.toString(), - "latitude" : current.latitude.toString(), - "longitude" : current.longitude.toString(), + "id": actualUser.toString(), + "latitude": current.latitude.toString(), + "longitude": current.longitude.toString(), }); } @@ -35,4 +34,4 @@ class Location { log(data.toString()); return data.toString(); } -} \ No newline at end of file +} diff --git a/Sources/dafl_project_flutter/lib/views/pages/home/p_home.dart b/Sources/dafl_project_flutter/lib/views/pages/home/p_home.dart index 1720a0d..6c2afc0 100644 --- a/Sources/dafl_project_flutter/lib/views/pages/home/p_home.dart +++ b/Sources/dafl_project_flutter/lib/views/pages/home/p_home.dart @@ -4,6 +4,8 @@ import '../sign_in/p_sign_in.dart'; import '../sign_up/p_sign_up.dart'; class HomePage extends StatefulWidget { + const HomePage({super.key}); + @override State createState() => _HomePageState(); } @@ -25,91 +27,30 @@ class _HomePageState extends State { fit: BoxFit.cover, ), Column( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Spacer(), - Image.asset( - 'assets/images/Logo.png', - width: 230, - ), - SizedBox( - height: height * 0.04, - ), - SizedBox( - height: 55, - width: width * 0.75, - child: ElevatedButton( - style: ElevatedButton.styleFrom( - backgroundColor: const Color(0xFF24CF5F), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(15.0), - ), // background// foreground - ), - onPressed: () {}, - child: const Text( - "CONTINUER AVEC SPOTIFY", - style: TextStyle( - color: Colors.white, - fontSize: 17, - fontWeight: FontWeight.bold), - textAlign: TextAlign.center, - ), + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.end, + children: [ + const Spacer(), + Image.asset( + 'assets/images/Logo.png', + width: 230, ), - ), - SizedBox( - height: height * 0.015, - ), - SizedBox( - height: height * 0.08, - ), - SizedBox( - height: 55, - width: width * 0.75, - child: ElevatedButton( - style: ElevatedButton.styleFrom( - backgroundColor: const Color(0xFF5C1DC3), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(15.0), - ), // background// foreground - ), - onPressed: () { - Navigator.of(context).push( - PageTransition( - duration: const Duration(milliseconds: 300), - reverseDuration: const Duration(milliseconds: 300), - type: PageTransitionType.rightToLeftJoined, - childCurrent: widget, - child: const SignUpPage()), - ); - }, - child: const Text( - "S’INSCRIRE MAINTENANT", - style: TextStyle( - color: Colors.white, - fontSize: 17, - fontWeight: FontWeight.bold), - textAlign: TextAlign.center, - ), + SizedBox( + height: height * 0.04, ), - ), - Spacer(), - GestureDetector( - onTap: () { - Navigator.of(context).push( - PageTransition( - duration: const Duration(milliseconds: 300), - reverseDuration: const Duration(milliseconds: 300), - type: PageTransitionType.rightToLeftJoined, - childCurrent: widget, - child: const SignInPage()), - ); - }, - child: Container( - child: const Align( - alignment: Alignment.center, - child: Text( - "SE CONNECTER", + SizedBox( + height: 55, + width: width * 0.75, + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF24CF5F), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(15.0), + ), // background// foreground + ), + onPressed: () {}, + child: const Text( + "CONTINUER AVEC SPOTIFY", style: TextStyle( color: Colors.white, fontSize: 17, @@ -117,19 +58,77 @@ class _HomePageState extends State { textAlign: TextAlign.center, ), ), - margin: const EdgeInsets.fromLTRB(0, 0, 0, 0), - width: double.infinity, - height: 80, - decoration: const BoxDecoration( - color: Color(0xFF232123), - border: Border( - top: BorderSide(width: 1.5, color: Color(0xFF3C3C3C)), - ), // Set rounded corner radius + ), + SizedBox( + height: height * 0.015, + ), + SizedBox( + height: height * 0.08, + ), + SizedBox( + height: 55, + width: width * 0.75, + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF5C1DC3), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(15.0), + ), // background// foreground + ), + onPressed: () { + Navigator.of(context).push( + PageTransition( + duration: const Duration(milliseconds: 300), + reverseDuration: const Duration(milliseconds: 300), + type: PageTransitionType.rightToLeftJoined, + childCurrent: widget, + child: const SignUpPage()), + ); + }, + child: const Text( + "S’INSCRIRE MAINTENANT", + style: TextStyle( + color: Colors.white, + fontSize: 17, + fontWeight: FontWeight.bold), + textAlign: TextAlign.center, + ), ), ), - ), - ], - ), + const Spacer(), + GestureDetector( + onTap: () { + Navigator.of(context).push( + PageTransition( + duration: const Duration(milliseconds: 300), + reverseDuration: const Duration(milliseconds: 300), + type: PageTransitionType.rightToLeftJoined, + childCurrent: widget, + child: const SignInPage()), + ); + }, + child: Container( + margin: const EdgeInsets.fromLTRB(0, 0, 0, 0), + width: double.infinity, + height: 80, + decoration: const BoxDecoration( + color: Color(0xFF232123), + border: Border( + top: BorderSide( + width: 1.5, color: Color(0xFF3C3C3C)), + ), // Set rounded corner radius + ), + child: const Align( + alignment: Alignment.center, + child: Text( + "SE CONNECTER", + style: TextStyle( + color: Colors.white, + fontSize: 17, + fontWeight: FontWeight.bold), + textAlign: TextAlign.center, + )))) + ]), Align( alignment: Alignment.topRight, child: Container( @@ -147,4 +146,4 @@ class _HomePageState extends State { ), ); } -} \ No newline at end of file +} diff --git a/Sources/dafl_project_flutter/lib/views/pages/main/p_conversation.dart b/Sources/dafl_project_flutter/lib/views/pages/main/p_conversation.dart index 30580f7..5dc18af 100644 --- a/Sources/dafl_project_flutter/lib/views/pages/main/p_conversation.dart +++ b/Sources/dafl_project_flutter/lib/views/pages/main/p_conversation.dart @@ -1,6 +1,4 @@ -import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:fluttericon/font_awesome5_icons.dart'; class ConversationPage extends StatefulWidget { const ConversationPage({Key? key}) : super(key: key); @@ -18,80 +16,86 @@ class _ConversationPageState extends State { extendBodyBehindAppBar: true, resizeToAvoidBottomInset: true, appBar: AppBar( - backgroundColor: Color(0xFF141414), + backgroundColor: const Color(0xFF141414), toolbarHeight: 70, - title: Container( - child: Row( - children: [ - Container( - padding: EdgeInsets.fromLTRB(0, 10, 0, 0), - height: 40, - width: 40, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(40), - color: Colors.blue, - ), + title: Row( + children: [ + Container( + padding: const EdgeInsets.fromLTRB(0, 10, 0, 0), + height: 40, + width: 40, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(40), + color: Colors.blue, ), - SizedBox(width: 20,), - Text("Max"), - - ], - ), + ), + const SizedBox( + width: 20, + ), + const Text("Max"), + ], ), - elevation: 0, ), body: SingleChildScrollView( - child: - Container( - color: Color(0xFF141414), - height: height*0.92, - width: double.infinity, - child: ListView( - reverse: true, - scrollDirection: Axis.vertical, - children: [ - Message('Adolescebat autem obstinatum propositum erga haec et similia multa scrutanda, stimulos admovente regina, quae abrupte mariti fortunas trudebat in exitium praeceps, cum eum potius lenitate feminea ad veritatis humanitatisque viam reducere utilia suadendo deberet, ut in Gordianorum actibus factitasse Maximini truculenti illius imperatoris rettulimus coniugem.', 0), - Message('Claudiopolis olim Seleucia Caesar potens quidem olim interneciva enim et.', 1), - Message('Quae quae praeceps feminea quae truculenti humanitatisque cum humanitatisque in truculenti abrupte imperatoris mariti regina regina ad lenitate veritatis veritatis.', 1), - Message('Quae quae praeceps feminea quae truculenti humanitatisque cum humanitatisque in truculenti abrupte imperatoris mariti regina regina ad lenitate veritatis veritatis.', 0), - Message('Quae quae praeceps feminea quae truculenti humanitatisque cum humanitatisque in truculenti abrupte imperatoris mariti regina regina ad lenitate veritatis veritatis.', 0), - Message('Quae quae praeceps feminea quae truculenti humanitatisque cum humanitatisque in truculenti abrupte imperatoris mariti regina regina ad lenitate veritatis veritatis.', 1), - ], - ), - - ), + child: Container( + color: const Color(0xFF141414), + height: height * 0.92, + width: double.infinity, + child: ListView( + reverse: true, + scrollDirection: Axis.vertical, + children: [ + message( + 'Adolescebat autem obstinatum propositum erga haec et similia multa scrutanda, stimulos admovente regina, quae abrupte mariti fortunas trudebat in exitium praeceps, cum eum potius lenitate feminea ad veritatis humanitatisque viam reducere utilia suadendo deberet, ut in Gordianorum actibus factitasse Maximini truculenti illius imperatoris rettulimus coniugem.', + 0), + message( + 'Claudiopolis olim Seleucia Caesar potens quidem olim interneciva enim et.', + 1), + message( + 'Quae quae praeceps feminea quae truculenti humanitatisque cum humanitatisque in truculenti abrupte imperatoris mariti regina regina ad lenitate veritatis veritatis.', + 1), + message( + 'Quae quae praeceps feminea quae truculenti humanitatisque cum humanitatisque in truculenti abrupte imperatoris mariti regina regina ad lenitate veritatis veritatis.', + 0), + message( + 'Quae quae praeceps feminea quae truculenti humanitatisque cum humanitatisque in truculenti abrupte imperatoris mariti regina regina ad lenitate veritatis veritatis.', + 0), + message( + 'Quae quae praeceps feminea quae truculenti humanitatisque cum humanitatisque in truculenti abrupte imperatoris mariti regina regina ad lenitate veritatis veritatis.', + 1), + ], + ), + ), ), bottomSheet: BottomAppBar( - color: Color(0xFF141414), + color: const Color(0xFF141414), child: Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, crossAxisAlignment: CrossAxisAlignment.center, - children: [ Container( - height: height*0.08, + height: height * 0.08, color: Colors.transparent, - width: width*0.8, + width: width * 0.8, child: Container( - margin: EdgeInsets.fromLTRB(20, 10, 0, 10), + margin: const EdgeInsets.fromLTRB(20, 10, 0, 10), decoration: BoxDecoration( border: Border.all( width: 1, - color: Color(0xFF2F2F2F), + color: const Color(0xFF2F2F2F), ), borderRadius: BorderRadius.circular(100), - color: Color(0xFF141414), - + color: const Color(0xFF141414), ), - child: Padding( + child: const Padding( padding: EdgeInsets.fromLTRB(10, 0, 10, 0), child: TextField( style: TextStyle(color: Colors.white), decoration: InputDecoration( - hintStyle: TextStyle(color: Colors.white), - border: InputBorder.none, - hintText: "Envoyer un message...", + hintStyle: TextStyle(color: Colors.white), + border: InputBorder.none, + hintText: "Envoyer un message...", ), cursorColor: Colors.purple, textAlign: TextAlign.left, @@ -102,45 +106,53 @@ class _ConversationPageState extends State { Container( width: 40, height: 40, - margin: EdgeInsets.fromLTRB(0, 0, 0, 0), + margin: const EdgeInsets.fromLTRB(0, 0, 0, 0), decoration: BoxDecoration( borderRadius: BorderRadius.circular(100), color: Colors.blue, ), - child: Icon(Icons.send, size: 20, color: Colors.white,), + child: const Icon( + Icons.send, + size: 20, + color: Colors.white, + ), ) ], ), ), - ); } - Widget Message(String message, int user) { - if(user == 0){ + Widget message(String message, int user) { + if (user == 0) { return Container( - margin: EdgeInsets.fromLTRB(40, 7, 80, 7), + margin: const EdgeInsets.fromLTRB(40, 7, 80, 7), decoration: BoxDecoration( - borderRadius: BorderRadius.only( + borderRadius: const BorderRadius.only( bottomRight: Radius.circular(20), topLeft: Radius.circular(20), topRight: Radius.circular(20), bottomLeft: Radius.circular(20), ), - border: Border.all(width: 1.5, - color: Color(0xFF9C9C9C).withOpacity(0.3)), - color: Color(0xFF191919), + border: Border.all( + width: 1.5, color: const Color(0xFF9C9C9C).withOpacity(0.3)), + color: const Color(0xFF191919), ), child: Padding( - padding: EdgeInsets.fromLTRB(15, 15, 15, 15), - child: Text(message,style: TextStyle(fontFamily: 'DMSans', color: Colors.white ,fontSize: 15, fontWeight: FontWeight.w400), + padding: const EdgeInsets.fromLTRB(15, 15, 15, 15), + child: Text( + message, + style: const TextStyle( + fontFamily: 'DMSans', + color: Colors.white, + fontSize: 15, + fontWeight: FontWeight.w400), )), ); - } - else{ + } else { return Container( - margin: EdgeInsets.fromLTRB(80, 7, 40, 7), - decoration: BoxDecoration( + margin: const EdgeInsets.fromLTRB(80, 7, 40, 7), + decoration: const BoxDecoration( borderRadius: BorderRadius.only( bottomRight: Radius.circular(20), bottomLeft: Radius.circular(20), @@ -150,12 +162,16 @@ class _ConversationPageState extends State { color: Color(0xFF2F2F2F), ), child: Padding( - padding: EdgeInsets.fromLTRB(15, 15, 15, 15), - child: Text(message,style: TextStyle(fontFamily: 'DMSans', color: Colors.white ,fontSize: 15, fontWeight: FontWeight.w400), + padding: const EdgeInsets.fromLTRB(15, 15, 15, 15), + child: Text( + message, + style: const TextStyle( + fontFamily: 'DMSans', + color: Colors.white, + fontSize: 15, + fontWeight: FontWeight.w400), )), ); } - - } } diff --git a/Sources/dafl_project_flutter/lib/views/pages/main/p_main.dart b/Sources/dafl_project_flutter/lib/views/pages/main/p_main.dart index 992a935..f474e8e 100644 --- a/Sources/dafl_project_flutter/lib/views/pages/main/p_main.dart +++ b/Sources/dafl_project_flutter/lib/views/pages/main/p_main.dart @@ -1,12 +1,12 @@ -import 'package:dafl_project_flutter/presentation/custom_icons_icons.dart'; -import 'package:dafl_project_flutter/views/pages/main/w_top.dart'; import 'package:flutter/material.dart'; import '../../../position/location.dart'; +import '../../../presentation/custom_icons_icons.dart'; import './w_settings.dart'; import './w_spot.dart'; import './w_discovery.dart'; import './w_profile.dart'; import './w_messages.dart'; +import 'w_top.dart'; class MainPage extends StatefulWidget { const MainPage({Key? key}) : super(key: key); @@ -15,67 +15,110 @@ class MainPage extends StatefulWidget { State createState() => _MainPageState(); } - class _MainPageState extends State { int _index = 2; + int get index => _index; final screens = [ - ProfilWidget(), - DiscoveryWidget(), - SpotsWidget(), - TopsWidget(), - MessagesWidget(), - SettingsWidget(), + const ProfileWidget(), + const DiscoveryWidget(), + const SpotsWidget(), + const TopsWidget(), + const MessagesWidget(), + const SettingsWidget(), ]; + @override Widget build(BuildContext context) { Location.sendCurrentLocation(); Location.getData(); - double height = MediaQuery.of(context).size.height; + double height = MediaQuery + .of(context) + .size + .height; return Scaffold( resizeToAvoidBottomInset: false, body: screens[_index], bottomNavigationBar: NavigationBarTheme( data: NavigationBarThemeData( - indicatorColor: Color(0xFF5C1DC3), - labelTextStyle: MaterialStateProperty.all( - TextStyle(fontSize: 12, fontWeight: FontWeight.w400, color: Colors.grey) - ), + indicatorColor: const Color(0xFF5C1DC3), + labelTextStyle: MaterialStateProperty.all(const TextStyle( + fontSize: 12, fontWeight: FontWeight.w400, color: Colors.grey)), ), child: ConstrainedBox( constraints: BoxConstraints( - minHeight: height*0.1, + minHeight: height * 0.1, maxHeight: 100, ), child: NavigationBar( - animationDuration: Duration(seconds: 1), + animationDuration: const Duration(seconds: 1), selectedIndex: index, - height: height*0.1, - onDestinationSelected: (index) => - setState(() => _index = index), - backgroundColor: Color(0xFF232123), - destinations: [ - NavigationDestination(icon: Icon(Icons.person_outline, color: Colors.grey,), label: 'Profil', selectedIcon: Icon(Icons.person, color: Colors.white,),), - NavigationDestination(icon: Icon(Icons.bookmark_border, color: Colors.grey,), selectedIcon: Icon(Icons.bookmark, color: Colors.white,), label: 'Discovery'), - NavigationDestination(icon: Icon(CustomIcons.spot, color: Colors.grey), selectedIcon: Icon(CustomIcons.spot_outline, color: Colors.white), label: 'Spots',), - NavigationDestination(icon: Icon(CustomIcons.podium_outline, color: Colors.grey,), label: 'Tops', selectedIcon: Icon(CustomIcons.podium, color: Colors.white,),), - NavigationDestination(icon: Icon(Icons.mail_outline, color: Colors.grey,), label: 'Messages', selectedIcon: Icon(Icons.email, color: Colors.white,),), + height: height * 0.1, + onDestinationSelected: (index) => setState(() => _index = index), + backgroundColor: const Color(0xFF232123), + destinations: const [ + NavigationDestination( + icon: Icon( + Icons.person_outline, + color: Colors.grey, + ), + label: 'Profil', + selectedIcon: Icon( + Icons.person, + color: Colors.white, + ), + ), + NavigationDestination( + icon: Icon( + Icons.bookmark_border, + color: Colors.grey, + ), + selectedIcon: Icon( + Icons.bookmark, + color: Colors.white, + ), + label: 'Discovery'), + NavigationDestination( + icon: Icon(CustomIcons.spot, color: Colors.grey), + selectedIcon: + Icon(CustomIcons.spot_outline, color: Colors.white), + label: 'Spots', + ), + NavigationDestination( + icon: Icon( + CustomIcons.podium_outline, + color: Colors.grey, + ), + label: 'Tops', + selectedIcon: Icon( + CustomIcons.podium, + color: Colors.white, + ), + ), + NavigationDestination( + icon: Icon( + Icons.mail_outline, + color: Colors.grey, + ), + label: 'Messages', + selectedIcon: Icon( + Icons.email, + color: Colors.white, + ), + ), ], ), ), ), ); } - - } class GradientText extends StatelessWidget { - const GradientText( - this.text, { - required this.gradient, - this.style, - }); + const GradientText(this.text, {super.key, + required this.gradient, + this.style, + }); final String text; final TextStyle? style; @@ -85,10 +128,11 @@ class GradientText extends StatelessWidget { Widget build(BuildContext context) { return ShaderMask( blendMode: BlendMode.srcIn, - shaderCallback: (bounds) => gradient.createShader( - Rect.fromLTWH(0, 0, bounds.width, bounds.height), - ), + shaderCallback: (bounds) => + gradient.createShader( + Rect.fromLTWH(0, 0, bounds.width, bounds.height), + ), child: Text(text, style: style), ); } -} \ No newline at end of file +} diff --git a/Sources/dafl_project_flutter/lib/views/pages/main/w_card.dart b/Sources/dafl_project_flutter/lib/views/pages/main/w_card.dart index 165cea2..ed4a245 100644 --- a/Sources/dafl_project_flutter/lib/views/pages/main/w_card.dart +++ b/Sources/dafl_project_flutter/lib/views/pages/main/w_card.dart @@ -3,9 +3,6 @@ import 'package:flutter/material.dart'; import '../../../main.dart'; import 'package:provider/provider.dart'; - - - class CardWidget extends StatefulWidget { final String urlImage; final bool isFront; @@ -19,7 +16,8 @@ class CardWidget extends StatefulWidget { @override State createState() => _CardWidgetState(); } -class _CardWidgetState extends State{ + +class _CardWidgetState extends State { @override void initState() { super.initState(); @@ -31,25 +29,25 @@ class _CardWidgetState extends State{ provider.setScreenSize(size); }); } + @override Widget build(BuildContext context) => SizedBox.expand( - child: widget.isFront ? buildFrontCard() : buildCard(), - ); + child: widget.isFront ? buildFrontCard() : buildCard(), + ); Widget buildCard() => ClipRRect( - borderRadius: BorderRadius.circular(20), - child: Container( - decoration: BoxDecoration( - - borderRadius: BorderRadius.all(Radius.circular(20)) - ), - child: FadeInImage.assetNetwork( - height: double.infinity, - width: double.infinity, - fit: BoxFit.cover, - placeholder: "assets/images/loadingPlaceholder.gif", image: widget.urlImage ), - ), - ); + borderRadius: BorderRadius.circular(20), + child: Container( + decoration: const BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(20))), + child: FadeInImage.assetNetwork( + height: double.infinity, + width: double.infinity, + fit: BoxFit.cover, + placeholder: "assets/images/loadingPlaceholder.gif", + image: widget.urlImage), + ), + ); Widget buildStamps() { final provider = Provider.of(context); @@ -58,20 +56,23 @@ class _CardWidgetState extends State{ switch (status) { case CardStatus.like: - final child = buildStamp(image: 'assets/images/icon_like.png', opacity: opacity); + final child = + buildStamp(image: 'assets/images/icon_like.png', opacity: opacity); return child; case CardStatus.disLike: - final child = buildStamp(image: 'assets/images/icon_dislike.png', opacity: opacity); + final child = buildStamp( + image: 'assets/images/icon_dislike.png', opacity: opacity); return child; case CardStatus.discovery: - final child = buildStamp(image: 'assets/images/icon_discovery.png', opacity: opacity); + final child = buildStamp( + image: 'assets/images/icon_discovery.png', opacity: opacity); return child; case CardStatus.message: - final child = buildStamp(image: 'assets/images/icon_messages.png', opacity: opacity); + final child = buildStamp( + image: 'assets/images/icon_messages.png', opacity: opacity); return child; default: return Container(); - } } @@ -80,71 +81,67 @@ class _CardWidgetState extends State{ required String image, required double opacity, }) { - return Opacity(opacity: opacity, + return Opacity( + opacity: opacity, child: ClipRRect( borderRadius: BorderRadius.circular(20), child: Container( decoration: BoxDecoration( color: Colors.black.withOpacity(0.75), - border: Border.all(color: Color(0xFF3F1DC3), width: 6), - - borderRadius: BorderRadius.all(Radius.circular(20)) - ), + border: Border.all(color: const Color(0xFF3F1DC3), width: 6), + borderRadius: const BorderRadius.all(Radius.circular(20))), child: Center( child: Image.asset( image, width: 100, ), - ), ), - ),); + ), + ); } Widget buildFrontCard() => GestureDetector( - child: LayoutBuilder( - builder: (context, constraints) { - final provider = Provider.of(context); - final position = provider.position; - final milliseconds = provider.isDragging ? 0 : 400; - - final center = constraints.smallest.center(Offset.zero); - final angle = provider.angle * pi / 180; - final rotatedMatrix = Matrix4.identity() - ..translate(center.dx, center.dy) - ..rotateZ(angle) - ..translate(-center.dx, -center.dy); - - return AnimatedContainer( - curve: Curves.easeOut, - duration: Duration(milliseconds: milliseconds), - transform: rotatedMatrix..translate(position.dx, position.dy), - child: Stack( - children: [ - buildCard(), - buildStamps(), - ], - ), - ); - }, - ), - onPanStart: (details) { - final provider = Provider.of(context, listen: false); - - provider.startPosition(details); - }, - onPanUpdate: (details) { - final provider = Provider.of(context, listen: false); - - provider.updatePosition(details); - }, - onPanEnd: (details) { - final provider = Provider.of(context, listen: false); - - provider.endPosition(context); - }, - - - - ); -} \ No newline at end of file + child: LayoutBuilder( + builder: (context, constraints) { + final provider = Provider.of(context); + final position = provider.position; + final milliseconds = provider.isDragging ? 0 : 400; + + final center = constraints.smallest.center(Offset.zero); + final angle = provider.angle * pi / 180; + final rotatedMatrix = Matrix4.identity() + ..translate(center.dx, center.dy) + ..rotateZ(angle) + ..translate(-center.dx, -center.dy); + + return AnimatedContainer( + curve: Curves.easeOut, + duration: Duration(milliseconds: milliseconds), + transform: rotatedMatrix..translate(position.dx, position.dy), + child: Stack( + children: [ + buildCard(), + buildStamps(), + ], + ), + ); + }, + ), + onPanStart: (details) { + final provider = Provider.of(context, listen: false); + + provider.startPosition(details); + }, + onPanUpdate: (details) { + final provider = Provider.of(context, listen: false); + + provider.updatePosition(details); + }, + onPanEnd: (details) { + final provider = Provider.of(context, listen: false); + + provider.endPosition(context); + }, + ); +} 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 cb1fc71..a97d26b 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 @@ -1,11 +1,7 @@ -import 'dart:math'; - import 'package:dafl_project_flutter/main.dart'; import 'package:fluttericon/font_awesome5_icons.dart'; import 'package:flutter/material.dart'; -import '../../../model/music.dart'; - class DiscoveryWidget extends StatefulWidget { const DiscoveryWidget({Key? key}) : super(key: key); @@ -14,42 +10,56 @@ class DiscoveryWidget extends StatefulWidget { } class _DiscoveryWidgetState extends State { - @override - Widget build(BuildContext context) { return Container( - color: Color(0xFF141414), - - child: Padding(padding: EdgeInsets.fromLTRB(0, 50, 0, 0), + color: const Color(0xFF141414), + child: Padding( + padding: const EdgeInsets.fromLTRB(0, 50, 0, 0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( - padding: EdgeInsets.fromLTRB(30, 0, 30, 0), + padding: const EdgeInsets.fromLTRB(30, 0, 30, 0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Row( - children: [ - Text('Playlist découverte', style: TextStyle(color: Colors.white, fontWeight: FontWeight.w500, fontSize: 25),), - Spacer(), - Icon(FontAwesome5.sort_amount_down, size: 30, color: Colors.white,), - ] + Row(children: const [ + Text( + 'Playlist découverte', + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.w500, + fontSize: 25), + ), + Spacer(), + Icon( + FontAwesome5.sort_amount_down, + size: 30, + color: Colors.white, + ), + ]), + const Padding(padding: EdgeInsets.fromLTRB(0, 5, 0, 0)), + Text( + 'Retrouvez ici vos nouvelles découvertes.', + style: TextStyle( + color: Colors.grey.withOpacity(0.4), fontSize: 15), ), - Padding(padding: EdgeInsets.fromLTRB(0, 5, 0, 0)), - Text('Retrouvez ici vos nouvelles découvertes.', style: TextStyle(color: Colors.grey.withOpacity(0.4), fontSize: 15),), ], ), ), Expanded( - child: MyApp().controller.currentUser.Discovery.isEmpty? - Center(child: Image.asset('assets/images/EmptyDiscovery-Hint.png',scale: 1.8,)): - DiscoveryList(), + child: MyApp.controller.currentUser.discovery.isEmpty + ? Center( + child: Image.asset( + 'assets/images/EmptyDiscovery-Hint.png', + scale: 1.8, + )) + : const DiscoveryList(), ), - ], - ),), + ), + ), ); } } @@ -62,7 +72,8 @@ class DiscoveryList extends StatefulWidget { } class _DiscoveryListState extends State { - late GlobalKey refreshKey; + late GlobalKey refreshKey; + @override void initState() { refreshKey = GlobalKey(); @@ -70,72 +81,101 @@ class _DiscoveryListState extends State { super.initState(); } - Future refreshList() async { - await Future.delayed(Duration(seconds: 1)); + refreshList() async { + await Future.delayed(const Duration(seconds: 1)); setState(() { - MyApp().controller.currentUser.Discovery; + MyApp.controller.currentUser.discovery; }); - return null; } - Widget build(BuildContext context) { - return RefreshIndicator(child: ListView.builder( - itemCount: MyApp().controller.currentUser.Discovery.length ?? 0, - itemBuilder: (context, index){ - int itemCount = MyApp().controller.currentUser.Discovery.length ?? 0; - int reversedIndex = itemCount - 1 - index; - return Dismissible( - key: Key(MyApp().controller.currentUser.Discovery[reversedIndex].name), - direction: DismissDirection.startToEnd, - child: Container( - margin: EdgeInsets.fromLTRB(0, 10, 0, 0), - padding: EdgeInsets.fromLTRB(30, 0, 30, 0), - child: Column( - children: [ - - Container( - margin: EdgeInsets.fromLTRB(0, 5, 0, 0), - width: double.infinity, - child: Row( - children: [ - Container( - height: 60, - width: 60, - decoration: BoxDecoration( - border: Border.all(width: 0, color: Colors.grey.withOpacity(0)), - borderRadius: BorderRadius.all(Radius.circular(10)), - ), - child: Container( - child: FadeInImage.assetNetwork(placeholder: "assets/images/loadingPlaceholder.gif", image: MyApp().controller.currentUser.Discovery[reversedIndex].linkCover), - ),), - Container( - margin: EdgeInsets.fromLTRB(20, 0, 0, 0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text(MyApp().controller.currentUser?.Discovery[reversedIndex].name ?? '',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - Text(MyApp().controller.currentUser?.Discovery[reversedIndex].artist ?? '',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),), - - ], - ),), - ], - ), - ), - - ], - ) - - ), onDismissed: (direction) { - if(direction == DismissDirection.startToEnd) - MyApp().controller.currentUser?.Discovery.removeAt(reversedIndex); - }, - background: Container(decoration: BoxDecoration( - image: DecorationImage(image: AssetImage("assets/images/delete_background.png"), fit: BoxFit.cover), - )),); - } - ), onRefresh: () async { - refreshList(); - }, key: refreshKey,); + @override + Widget build(BuildContext context) { + return RefreshIndicator( + onRefresh: () async { + refreshList(); + }, + key: refreshKey, + child: ListView.builder( + itemCount: MyApp.controller.currentUser.discovery.length, + itemBuilder: (context, index) { + int itemCount = MyApp.controller.currentUser.discovery.length; + int reversedIndex = itemCount - 1 - index; + return Dismissible( + key: Key( + MyApp.controller.currentUser.discovery[reversedIndex].name), + direction: DismissDirection.startToEnd, + onDismissed: (direction) { + if (direction == DismissDirection.startToEnd) { + MyApp.controller.currentUser.discovery + .removeAt(reversedIndex); + } + }, + background: Container( + decoration: const BoxDecoration( + image: DecorationImage( + image: AssetImage("assets/images/delete_background.png"), + fit: BoxFit.cover), + )), + child: Container( + margin: const EdgeInsets.fromLTRB(0, 10, 0, 0), + padding: const EdgeInsets.fromLTRB(30, 0, 30, 0), + child: Column( + children: [ + Container( + margin: const EdgeInsets.fromLTRB(0, 5, 0, 0), + width: double.infinity, + child: Row( + children: [ + Container( + height: 60, + width: 60, + decoration: BoxDecoration( + border: Border.all( + width: 0, + color: Colors.grey.withOpacity(0)), + borderRadius: + const BorderRadius.all(Radius.circular(10)), + ), + child: FadeInImage.assetNetwork( + placeholder: + "assets/images/loadingPlaceholder.gif", + image: MyApp.controller.currentUser + .discovery[reversedIndex].linkCover), + ), + Container( + margin: const EdgeInsets.fromLTRB(20, 0, 0, 0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + MyApp.controller.currentUser + .discovery[reversedIndex].name, + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), + Text( + MyApp.controller.currentUser + .discovery[reversedIndex].artist, + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(0.6), + fontSize: 16, + fontWeight: FontWeight.w400), + ), + ], + ), + ), + ], + ), + ), + ], + )), + ); + }), + ); } } diff --git a/Sources/dafl_project_flutter/lib/views/pages/main/w_messages.dart b/Sources/dafl_project_flutter/lib/views/pages/main/w_messages.dart index 6b9e4ea..5eeb371 100644 --- a/Sources/dafl_project_flutter/lib/views/pages/main/w_messages.dart +++ b/Sources/dafl_project_flutter/lib/views/pages/main/w_messages.dart @@ -1,9 +1,8 @@ -import 'package:dafl_project_flutter/views/pages/main/p_conversation.dart'; -import 'package:dafl_project_flutter/views/pages/main/p_main.dart'; import 'package:flutter/material.dart'; -import 'package:fluttericon/font_awesome5_icons.dart'; import 'package:page_transition/page_transition.dart'; +import 'p_conversation.dart'; + class MessagesWidget extends StatefulWidget { const MessagesWidget({Key? key}) : super(key: key); @@ -13,144 +12,156 @@ class MessagesWidget extends StatefulWidget { class _MessagesWidgetState extends State { int indexSectedButton = 0; - Widget listeActuelle = ListConfirmedWidget(); + Widget currentList = const ListConfirmedWidget(); + var colorConfirm = const Color(0xFFFFFFFF); + var colorWaiting = const Color(0xFFA8A8A8); - var colorConfirm = Color(0xFFFFFFFF); - var colorWaiting = Color(0xFFA8A8A8); - void changeSelected(int num){ - if(indexSectedButton == num){ + void changeSelected(int num) { + if (indexSectedButton == num) { return; - } - else{ - if(num == 0){ - setState((){ - colorConfirm = Color(0xFFFFFFFF); - colorWaiting = Color(0xFFA8A8A8); - listeActuelle = ListConfirmedWidget(); + } else { + if (num == 0) { + setState(() { + colorConfirm = const Color(0xFFFFFFFF); + colorWaiting = const Color(0xFFA8A8A8); + currentList = const ListConfirmedWidget(); indexSectedButton = num; }); - - - } - else{ - setState((){ - colorConfirm = Color(0xFFA8A8A8); - colorWaiting = Color(0xFFFFFFFF); - listeActuelle = ListWaitingWidget(); + } else { + setState(() { + colorConfirm = const Color(0xFFA8A8A8); + colorWaiting = const Color(0xFFFFFFFF); + currentList = const ListWaitingWidget(); indexSectedButton = num; }); } - } } @override - Widget build(BuildContext context) { double height = MediaQuery.of(context).size.height; double width = MediaQuery.of(context).size.width; return Container( - color: Color(0xFF141414), - - child: Padding(padding: EdgeInsets.fromLTRB(30, 50, 30, 0), + color: const Color(0xFF141414), + child: Padding( + padding: const EdgeInsets.fromLTRB(30, 50, 30, 0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Container( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text('Messages', style: TextStyle(color: Colors.white, fontWeight: FontWeight.w500, fontSize: 25)), - Padding(padding: EdgeInsets.fromLTRB(0, 5, 0, 0)), - Text('Retrouvez ici vos discussions.', style: TextStyle(color: Colors.grey.withOpacity(0.4), fontSize: 15),), - Padding( - padding: EdgeInsets.fromLTRB(0, height*0.01, 0, 0), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text('Messages', + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.w500, + fontSize: 25)), + const Padding(padding: EdgeInsets.fromLTRB(0, 5, 0, 0)), + Text( + 'Retrouvez ici vos discussions.', + style: TextStyle( + color: Colors.grey.withOpacity(0.4), fontSize: 15), + ), + Padding( + padding: EdgeInsets.fromLTRB(0, height * 0.01, 0, 0), child: Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ SizedBox( height: 35, - width: width*0.35, + width: width * 0.35, child: ElevatedButton( style: ElevatedButton.styleFrom( backgroundColor: colorConfirm, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(15.0), - ),// background// foreground + ), // background// foreground ), onPressed: () { changeSelected(0); }, - child: Text("Validées", - style: TextStyle(color: Colors.black ,fontSize: 17, fontWeight: FontWeight.bold), + child: const Text( + "Validées", + style: TextStyle( + color: Colors.black, + fontSize: 17, + fontWeight: FontWeight.bold), textAlign: TextAlign.center, ), - ),), + ), + ), SizedBox( height: 35, - width: width*0.35, + width: width * 0.35, child: ElevatedButton( style: ElevatedButton.styleFrom( backgroundColor: colorWaiting, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(15.0), - ),// background// foreground + ), // background// foreground ), onPressed: () { changeSelected(1); }, - child: Text("En attente", - style: TextStyle(color: Colors.black ,fontSize: 17, fontWeight: FontWeight.bold), + child: const Text( + "En attente", + style: TextStyle( + color: Colors.black, + fontSize: 17, + fontWeight: FontWeight.bold), textAlign: TextAlign.center, ), - ),), + ), + ), ], - ),), - ], - ), + ), + ), + ], ), Expanded( - child: - listeActuelle, - - + child: currentList, ), ], - ),), + ), + ), ); } } -class MessagesButtonWidget extends StatelessWidget{ +class MessagesButtonWidget extends StatelessWidget { + const MessagesButtonWidget({super.key}); + @override Widget build(BuildContext context) { - double height = MediaQuery.of(context).size.height; double width = MediaQuery.of(context).size.width; return Container( - margin: EdgeInsets.fromLTRB(0, 0, 0, 10), + margin: const EdgeInsets.fromLTRB(0, 0, 0, 10), child: Column( children: [ - Container( color: Colors.transparent, - margin: EdgeInsets.fromLTRB(0, 0, 0, 0), + margin: const EdgeInsets.fromLTRB(0, 0, 0, 0), child: Row( children: [ Container( height: 60, width: 60, decoration: BoxDecoration( - image: DecorationImage( - image: NetworkImage('https://www.goutemesdisques.com/uploads/tx_gmdchron/pi1/L_Etrange_Histoire_de_Mr_Anderson.jpg'), + image: const DecorationImage( + image: NetworkImage( + 'https://www.goutemesdisques.com/uploads/tx_gmdchron/pi1/L_Etrange_Histoire_de_Mr_Anderson.jpg'), fit: BoxFit.cover, ), - border: Border.all(width: 0, color: Colors.grey.withOpacity(0)), - borderRadius: BorderRadius.all(Radius.circular(30)), - ),), + border: Border.all( + width: 0, color: Colors.grey.withOpacity(0)), + borderRadius: const BorderRadius.all(Radius.circular(30)), + ), + ), Container( - width: width-160, - margin: EdgeInsets.fromLTRB(20, 0, 20, 0), + width: width - 160, + margin: const EdgeInsets.fromLTRB(20, 0, 20, 0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.center, @@ -159,70 +170,81 @@ class MessagesButtonWidget extends StatelessWidget{ crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text('Max',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - Text('1 jour(s)',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.8) ,fontSize: 15, fontWeight: FontWeight.w400),), + Text( + 'Max', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), + Text( + '1 jour(s)', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(0.8), + fontSize: 15, + fontWeight: FontWeight.w400), + ), ], ), - Text('A envoyé un musique.',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),), - + Text( + 'A envoyé un musique.', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(0.6), + fontSize: 16, + fontWeight: FontWeight.w400), + ), ], - ),), + ), + ), ], ), ), - - ], - ) - ); - + )); } } -class ListConfirmedWidget extends StatelessWidget{ +class ListConfirmedWidget extends StatelessWidget { + const ListConfirmedWidget({super.key}); + @override Widget build(BuildContext context) { - double height = MediaQuery.of(context).size.height; - double width = MediaQuery.of(context).size.width; return ListView( - - children: [ - SizedBox(height: 40,), + children: const [ + SizedBox( + height: 40, + ), MessagesButtonWidget(), MessagesButtonWidget(), MessagesButtonWidget(), MessagesButtonWidget(), - - ], ); - } } -class ListWaitingWidget extends StatelessWidget{ +class ListWaitingWidget extends StatelessWidget { + const ListWaitingWidget({super.key}); + @override Widget build(BuildContext context) { - double height = MediaQuery.of(context).size.height; - double width = MediaQuery.of(context).size.width; - return ListView( - - children: [ - SizedBox(height: 40,), - GestureDetector( + return ListView(children: [ + const SizedBox( + height: 40, + ), + GestureDetector( onTap: () { Navigator.of(context).push(PageTransition( - duration: Duration(milliseconds: 200), - reverseDuration: Duration(milliseconds: 200), + duration: const Duration(milliseconds: 200), + reverseDuration: const Duration(milliseconds: 200), type: PageTransitionType.rightToLeftWithFade, childCurrent: context.widget, - child: ConversationPage())); + child: const ConversationPage())); }, - child: MessagesButtonWidget(), - ), - - ], - ); - + child: const MessagesButtonWidget()) + ]); } -} \ No newline at end of file +} 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 50fc84e..7d782bc 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 @@ -1,26 +1,19 @@ -import 'package:dafl_project_flutter/main.dart'; - -import '../../../main.dart'; import '../../../main.dart'; import './w_settings.dart'; import './w_spot.dart'; import 'package:flutter/material.dart'; -class ProfilWidget extends StatefulWidget { - const ProfilWidget({Key? key}) : super(key: key); +class ProfileWidget extends StatefulWidget { + const ProfileWidget({Key? key}) : super(key: key); @override - State createState() => _ProfilWidgetState(); + State createState() => _ProfileWidgetState(); } -class _ProfilWidgetState extends State { - - +class _ProfileWidgetState extends State { @override Widget build(BuildContext context) { - double height = MediaQuery.of(context).size.height; - - return MainPageProfil(); + return const MainPageProfil(); } } @@ -30,10 +23,9 @@ class MainPageProfil extends StatelessWidget { @override Widget build(BuildContext context) { double height = MediaQuery.of(context).size.height; - double width = MediaQuery.of(context).size.width; return Container( - color: Color(0xFF141414), - child: Container( + color: const Color(0xFF141414), + child: SizedBox( width: double.infinity, height: double.infinity, child: Column( @@ -41,37 +33,49 @@ class MainPageProfil extends StatelessWidget { children: [ Container( width: double.infinity, - margin: EdgeInsets.fromLTRB(30, 50, 0, 0), - child: Text( + margin: const EdgeInsets.fromLTRB(30, 50, 0, 0), + child: const Text( "Profil", - style: TextStyle(fontSize: 25, fontWeight: FontWeight.w600, color: Colors.white),), + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.w600, + color: Colors.white), + ), ), Container( - margin: EdgeInsets.fromLTRB(0, 10, 0, 10), - height: height*0.14, - width: height*0.14, + margin: const EdgeInsets.fromLTRB(0, 10, 0, 10), + height: height * 0.14, + width: height * 0.14, decoration: BoxDecoration( borderRadius: BorderRadius.circular(100.0), - color: Colors.blue,border: Border.all(width: 6.0, color: Colors.white), - boxShadow: [ + color: Colors.blue, + border: Border.all(width: 6.0, color: Colors.white), + boxShadow: const [ BoxShadow( offset: Offset(0, 0), spreadRadius: 5, - blurRadius:10, + blurRadius: 10, color: Color.fromRGBO(0, 0, 0, 1), ), ], - ), child: Center( - child: Text(MyApp().controller.currentUser.usernameDafl![0] ?? '', - style: TextStyle(color: Colors.white ,fontSize: 60, fontWeight: FontWeight.w500), + child: Text( + MyApp.controller.currentUser.usernameDafl[0], + style: const TextStyle( + color: Colors.white, + fontSize: 60, + fontWeight: FontWeight.w500), textAlign: TextAlign.center, ), ), ), - Text(MyApp().controller.currentUser.usernameDafl ?? '', - style: TextStyle(color: Colors.white ,fontSize: 17, fontWeight: FontWeight.w400), + Text( + MyApp.controller.currentUser.usernameDafl, + style: const TextStyle( + color: Colors.white, + fontSize: 17, + fontWeight: FontWeight.w400), textAlign: TextAlign.center, ), Container( @@ -81,32 +85,44 @@ class MainPageProfil extends StatelessWidget { borderRadius: BorderRadius.circular(10.0), color: Colors.transparent, ), - margin: EdgeInsets.fromLTRB(30, 40, 30, 0), + margin: const EdgeInsets.fromLTRB(30, 40, 30, 0), child: SizedBox( height: 55, width: double.infinity, child: ElevatedButton( style: ElevatedButton.styleFrom( - backgroundColor: Color(0xFFD9D9D9).withOpacity(0.08), + backgroundColor: + const Color(0xFFD9D9D9).withOpacity(0.08), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10.0), - ),// background// foreground + ), // background// foreground ), - onPressed: () { - }, + onPressed: () {}, child: Row( children: [ - Image.asset('assets/images/fav_logo.png', height: 25,), - SizedBox(width: 12,), - Text("Préférences musicales", - style: TextStyle(color: Colors.white ,fontSize: 17, fontWeight: FontWeight.w400), + Image.asset( + 'assets/images/fav_logo.png', + height: 25, + ), + const SizedBox( + width: 12, + ), + const Text( + "Préférences musicales", + style: TextStyle( + color: Colors.white, + fontSize: 17, + fontWeight: FontWeight.w400), textAlign: TextAlign.center, ), - Spacer(), - Icon(Icons.arrow_forward_ios, color: Colors.white.withOpacity(0.3),), + const Spacer(), + Icon( + Icons.arrow_forward_ios, + color: Colors.white.withOpacity(0.3), + ), ], - ) - ),), + )), + ), ), Container( height: 55, @@ -115,93 +131,133 @@ class MainPageProfil extends StatelessWidget { borderRadius: BorderRadius.circular(10.0), color: Colors.transparent, ), - margin: EdgeInsets.fromLTRB(30, 10, 30, 0), + margin: const EdgeInsets.fromLTRB(30, 10, 30, 0), child: SizedBox( height: 55, width: double.infinity, child: ElevatedButton( style: ElevatedButton.styleFrom( - backgroundColor: Color(0xFFD9D9D9).withOpacity(0.08), + backgroundColor: + const Color(0xFFD9D9D9).withOpacity(0.08), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10.0), - ),// background// foreground + ), // background// foreground ), onPressed: () { - Navigator.push(context,MaterialPageRoute(builder: (context)=> DisplayInfoWidget())); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const DisplayInfoWidget())); }, child: Row( children: [ - Icon(Icons.remove_red_eye, color: Colors.white,size: 30,), - SizedBox(width: 12,), - Text("Aperçu de mon profil", - style: TextStyle(color: Colors.white ,fontSize: 17, fontWeight: FontWeight.w400), + const Icon( + Icons.remove_red_eye, + color: Colors.white, + size: 30, + ), + const SizedBox( + width: 12, + ), + const Text( + "Aperçu de mon profil", + style: TextStyle( + color: Colors.white, + fontSize: 17, + fontWeight: FontWeight.w400), textAlign: TextAlign.center, ), - Spacer(), - Icon(Icons.arrow_forward_ios, color: Colors.white.withOpacity(0.3),), + const Spacer(), + Icon( + Icons.arrow_forward_ios, + color: Colors.white.withOpacity(0.3), + ), ], - ) - ),), + )), + ), ), Container( - height: height*0.27, + height: height * 0.27, width: double.infinity, - margin: EdgeInsets.fromLTRB(30, 15, 30, 0), + margin: const EdgeInsets.fromLTRB(30, 15, 30, 0), child: Column( children: [ Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Icon(Icons.wifi_tethering, color: Colors.white, size: 35,), - SizedBox(width: 10,), - Text("En cours d'écoute...", - style: TextStyle(color: Colors.white ,fontSize: 17, fontWeight: FontWeight.w400), + children: const [ + Icon( + Icons.wifi_tethering, + color: Colors.white, + size: 35, + ), + SizedBox( + width: 10, + ), + Text( + "En cours d'écoute...", + style: TextStyle( + color: Colors.white, + fontSize: 17, + fontWeight: FontWeight.w400), textAlign: TextAlign.center, ), ], ), Container( - margin: EdgeInsets.fromLTRB(0, 10, 0, 0), - height: height*0.14, + margin: const EdgeInsets.fromLTRB(0, 10, 0, 0), + height: height * 0.14, decoration: BoxDecoration( borderRadius: BorderRadius.circular(15.0), - color: Color(0xFFD9D9D9).withOpacity(0.08), + color: const Color(0xFFD9D9D9).withOpacity(0.08), ), - child: - Row( + child: Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, children: [ Container( - margin: EdgeInsets.fromLTRB(15, 0, 0, 0), + margin: const EdgeInsets.fromLTRB(15, 0, 0, 0), child: ClipRRect( borderRadius: BorderRadius.circular(15), child: FadeInImage.assetNetwork( height: 90, width: 90, - placeholder: "assets/images/loadingPlaceholder.gif", image: 'https://images.genius.com/ef4849be3da5fdb22ea9e656679be3a3.600x600x1.jpg'), + placeholder: + "assets/images/loadingPlaceholder.gif", + image: + 'https://images.genius.com/ef4849be3da5fdb22ea9e656679be3a3.600x600x1.jpg'), ), ), Container( - margin: EdgeInsets.fromLTRB(12, 20, 0, 0), + margin: const EdgeInsets.fromLTRB(12, 20, 0, 0), child: Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text('BAMBINA', style: TextStyle(fontSize:18, fontWeight: FontWeight.w500, color: Colors.white),), - Text('PNL', style: TextStyle(fontSize:16, fontWeight: FontWeight.w400, color: Colors.grey),), + children: const [ + Text( + 'BAMBINA', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.w500, + color: Colors.white), + ), + Text( + 'PNL', + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w400, + color: Colors.grey), + ), ], ), ) - ], ), ), ], ), ), - Spacer(), + const Spacer(), Container( height: 55, width: double.infinity, @@ -209,39 +265,55 @@ class MainPageProfil extends StatelessWidget { borderRadius: BorderRadius.circular(10.0), color: Colors.transparent, ), - margin: EdgeInsets.fromLTRB(30, 0, 30,0), + margin: const EdgeInsets.fromLTRB(30, 0, 30, 0), child: SizedBox( height: 55, width: double.infinity, child: ElevatedButton( style: ElevatedButton.styleFrom( - backgroundColor: Color(0xFFD9D9D9).withOpacity(0.08), + backgroundColor: + const Color(0xFFD9D9D9).withOpacity(0.08), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10.0), - ),// background// foreground + ), // background// foreground ), onPressed: () { - Navigator.push(context,MaterialPageRoute(builder: (context)=> SettingsWidget())); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const SettingsWidget())); }, child: Row( children: [ - Icon(Icons.settings, color: Colors.white,size: 30,), - SizedBox(width: 12,), - Text("Paramètres", - style: TextStyle(color: Colors.white ,fontSize: 17, fontWeight: FontWeight.w400), + const Icon( + Icons.settings, + color: Colors.white, + size: 30, + ), + const SizedBox( + width: 12, + ), + const Text( + "Paramètres", + style: TextStyle( + color: Colors.white, + fontSize: 17, + fontWeight: FontWeight.w400), textAlign: TextAlign.center, ), - Spacer(), - Icon(Icons.arrow_forward_ios, color: Colors.white.withOpacity(0.3),), + const Spacer(), + Icon( + Icons.arrow_forward_ios, + color: Colors.white.withOpacity(0.3), + ), ], - ) - ),), + )), + ), ), - Spacer(), + const Spacer(), ], ), ), ); - } } diff --git a/Sources/dafl_project_flutter/lib/views/pages/main/w_settings.dart b/Sources/dafl_project_flutter/lib/views/pages/main/w_settings.dart index ab0daa5..27b3452 100644 --- a/Sources/dafl_project_flutter/lib/views/pages/main/w_settings.dart +++ b/Sources/dafl_project_flutter/lib/views/pages/main/w_settings.dart @@ -1,6 +1,6 @@ -import 'package:dafl_project_flutter/main.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; + +import '../../../main.dart'; class SettingsWidget extends StatefulWidget { const SettingsWidget({Key? key}) : super(key: key); @@ -10,47 +10,54 @@ class SettingsWidget extends StatefulWidget { } class _SettingsWidgetState extends State { - final userNameTextField = TextEditingController(text: MyApp().controller.currentUser?.usernameDafl); - final passwordTextField = TextEditingController(text: MyApp().controller.currentUser?.passwDafl); + final userNameTextField = + TextEditingController(text: MyApp.controller.currentUser.usernameDafl); + final passwordTextField = + TextEditingController(text: MyApp.controller.currentUser.passwDafl); + @override Widget build(BuildContext context) { double height = MediaQuery.of(context).size.height; double width = MediaQuery.of(context).size.width; return Scaffold( - backgroundColor: Color(0xFF141414), + backgroundColor: const Color(0xFF141414), resizeToAvoidBottomInset: false, appBar: AppBar( - leading: new IconButton( - icon: new Icon(Icons.keyboard_arrow_left, color: Colors.grey.withOpacity(0.7), size: 50,), + leading: IconButton( + icon: Icon( + Icons.keyboard_arrow_left, + color: Colors.grey.withOpacity(0.7), + size: 50, + ), onPressed: () => {Navigator.of(context).pop()}, ), backgroundColor: Colors.transparent, elevation: 0, ), - body: Container( + body: SizedBox( width: double.infinity, height: double.infinity, child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ Container( - margin: EdgeInsets.fromLTRB(30, height*0.07, 30, 0), + margin: EdgeInsets.fromLTRB(30, height * 0.07, 30, 0), width: double.infinity, height: 30, alignment: Alignment.centerLeft, decoration: BoxDecoration( - color: Color(0xFFD9D9D9).withOpacity(0.16), + color: const Color(0xFFD9D9D9).withOpacity(0.16), borderRadius: BorderRadius.circular(7.0), ), - child: Padding( + child: const Padding( padding: EdgeInsets.fromLTRB(20, 0, 0, 0), - child: Text('Pseudo', - style: TextStyle( - color: Color(0xFFAEAEAE) - ),), - ) - ), - Padding(padding: EdgeInsets.fromLTRB(30, 0, 30, 0), + child: Text( + 'Pseudo', + style: TextStyle(color: Color(0xFFAEAEAE)), + ), + )), + Padding( + padding: const EdgeInsets.fromLTRB(30, 0, 30, 0), child: SizedBox( width: width, child: Row( @@ -59,11 +66,12 @@ class _SettingsWidgetState extends State { width: 230, child: TextField( controller: userNameTextField, - style: TextStyle(color: Colors.white), + style: const TextStyle(color: Colors.white), decoration: InputDecoration( - hintStyle: Theme.of(context).textTheme.caption?.copyWith( - color: Colors.white, - ), + hintStyle: + Theme.of(context).textTheme.caption?.copyWith( + color: Colors.white, + ), border: InputBorder.none, hintText: 'Pseudonyme', ), @@ -71,39 +79,43 @@ class _SettingsWidgetState extends State { textAlign: TextAlign.left, ), ), - Spacer(), + const Spacer(), GestureDetector( onTap: () { - MyApp().controller.changeUsernameCourant(userNameTextField.text); - Notify(0,context,isError: false); + MyApp.controller + .changeUsernameCourant(userNameTextField.text); + notify(0, context, isError: false); }, - child: Padding(padding: EdgeInsets.fromLTRB(0, 0, 20, 0), - child: Text('modifier', - style: TextStyle( color: Colors.blue, fontSize: 17),),),) - - + child: const Padding( + padding: EdgeInsets.fromLTRB(0, 0, 20, 0), + child: Text( + 'modifier', + style: TextStyle(color: Colors.blue, fontSize: 17), + ), + ), + ) ], ), ), ), Container( - margin: EdgeInsets.fromLTRB(30, 0, 30, 0), + margin: const EdgeInsets.fromLTRB(30, 0, 30, 0), width: double.infinity, height: 30, alignment: Alignment.centerLeft, decoration: BoxDecoration( - color: Color(0xFFD9D9D9).withOpacity(0.16), + color: const Color(0xFFD9D9D9).withOpacity(0.16), borderRadius: BorderRadius.circular(7.0), ), - child: Padding( + child: const Padding( padding: EdgeInsets.fromLTRB(20, 0, 0, 0), - child: Text('Mot de passe', - style: TextStyle( - color: Color(0xFFAEAEAE) - ),), - ) - ), - Padding(padding: EdgeInsets.fromLTRB(30, 0, 30, 0), + child: Text( + 'Mot de passe', + style: TextStyle(color: Color(0xFFAEAEAE)), + ), + )), + Padding( + padding: const EdgeInsets.fromLTRB(30, 0, 30, 0), child: SizedBox( width: width, child: Row( @@ -113,11 +125,12 @@ class _SettingsWidgetState extends State { child: TextField( controller: passwordTextField, obscureText: true, - style: TextStyle(color: Colors.white), + style: const TextStyle(color: Colors.white), decoration: InputDecoration( - hintStyle: Theme.of(context).textTheme.caption?.copyWith( - color: Colors.white, - ), + hintStyle: + Theme.of(context).textTheme.caption?.copyWith( + color: Colors.white, + ), border: InputBorder.none, hintText: 'Mot de passe', ), @@ -125,26 +138,28 @@ class _SettingsWidgetState extends State { textAlign: TextAlign.left, ), ), - Spacer(), + const Spacer(), GestureDetector( onTap: () { - MyApp().controller.changePasswordCourant(passwordTextField.text); - Notify(1,context,isError: false); + MyApp.controller + .changePasswordCourant(passwordTextField.text); + notify(1, context, isError: false); }, - child: Padding(padding: EdgeInsets.fromLTRB(0, 0, 20, 0), - child: Text('modifier', - style: TextStyle( color: Colors.blue, fontSize: 17),),), + child: const Padding( + padding: EdgeInsets.fromLTRB(0, 0, 20, 0), + child: Text( + 'modifier', + style: TextStyle(color: Colors.blue, fontSize: 17), + ), + ), ), - ], ), ), ), - ], ), ), ); } } - 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 3ebd2ed..f4035db 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 @@ -1,15 +1,11 @@ import 'dart:ui'; -import 'package:dafl_project_flutter/views/pages/main/w_discovery.dart'; +import 'package:rive/rive.dart' as riv; -import '../../../model/music.dart'; import './w_card.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/src/painting/gradient.dart' as gradiant; import 'package:provider/provider.dart'; import '../../../main.dart'; -import 'package:rive/rive.dart'; import 'package:animations/animations.dart'; -import 'package:vibration/vibration.dart'; class SpotsWidget extends StatefulWidget { const SpotsWidget({Key? key}) : super(key: key); @@ -19,147 +15,188 @@ class SpotsWidget extends StatefulWidget { } class _SpotsWidgetState extends State { - @override Widget build(BuildContext context) { double height = MediaQuery.of(context).size.height; double width = MediaQuery.of(context).size.width; - final provider = Provider.of(context); return Container( - - color: Color(0xFF141414), - child: Container( + color: const Color(0xFF141414), + child: SizedBox( height: double.maxFinite, child: Stack( children: [ - Transform.scale(scale: 1.1, + Transform.scale( + scale: 1.1, child: Container( decoration: BoxDecoration( image: DecorationImage( - image: NetworkImage(MyApp().controller.currentUser.Spots2.isEmpty? "https://i.imgur.com/Uovh293.png":MyApp().controller.currentUser.Spots2.last.music.linkCover), + image: NetworkImage( + MyApp.controller.currentUser.spots.isEmpty + ? "https://i.imgur.com/Uovh293.png" + : MyApp.controller.currentUser.spots.last.music + .linkCover), fit: BoxFit.cover, - ), ), - child: BackdropFilter(filter: ImageFilter.blur(sigmaX: 20.0, sigmaY: 20.0), + child: BackdropFilter( + filter: ImageFilter.blur(sigmaX: 20.0, sigmaY: 20.0), child: Container( - decoration: BoxDecoration(color: Colors.black.withOpacity(0.4)), - ),), - ),), + decoration: + BoxDecoration(color: Colors.black.withOpacity(0.4)), + ), + ), + ), + ), Align( alignment: FractionalOffset.bottomCenter, - child: MyApp().controller.currentUser.Spots2.isEmpty? Container():OpenContainer( - - closedColor: Colors.transparent, - closedElevation: 0, - transitionDuration: Duration(milliseconds: 400), - closedBuilder: (context, openWidget){ - return PreviewInfoWidget(); - }, - openBuilder: (context, closeWidget){ - return DisplayInfoWidget(); - }, - ), + child: MyApp.controller.currentUser.spots.isEmpty + ? Container() + : OpenContainer( + closedColor: Colors.transparent, + closedElevation: 0, + transitionDuration: const Duration(milliseconds: 400), + closedBuilder: (context, openWidget) { + return const PreviewInfoWidget(); + }, + openBuilder: (context, closeWidget) { + return const DisplayInfoWidget(); + }, + ), ), - Center( - child: Container( + const Center( + child: SizedBox( width: 300, height: 300, - child: RiveAnimation.asset('assets/images/search_spot_animation.riv'), + child: riv.RiveAnimation.asset( + 'assets/images/search_spot_animation.riv'), ), ), Positioned( - top: height*0.68, + top: height * 0.68, width: width, - child: MyApp().controller.currentUser.Spots2.isEmpty? Container():Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - GestureDetector( - onTap: () { - final provider = Provider.of(context, listen: false); - provider.dislike(); - - - }, - child: Image.asset( - 'assets/images/bouton_dislike.png', - height: 70, - width: 70, - fit: BoxFit.cover, - ), - ), - GestureDetector( - onTap: () { - final provider = Provider.of(context, listen: false); - provider.discovery(); - }, - child: Image.asset( - 'assets/images/bouton_discovery.png', - height: 70, - width: 70, - fit: BoxFit.cover, - ), - ), - GestureDetector( - onTap: () { - final provider = Provider.of(context, listen: false); - provider.message(this.context); - }, - child: Image.asset( - 'assets/images/bouton_messages.png', - height: 70, - width: 70, - fit: BoxFit.cover, - ), - ), - GestureDetector( - onTap: () { - final provider = Provider.of(context, listen: false); - provider.like(this.context); - }, - child: Image.asset( - 'assets/images/bouton_like.png', - height: 70, - width: 70, - fit: BoxFit.cover, + child: MyApp.controller.currentUser.spots.isEmpty + ? Container() + : Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + GestureDetector( + onTap: () { + final provider = Provider.of( + context, + listen: false); + provider.dislike(); + }, + child: Image.asset( + 'assets/images/bouton_dislike.png', + height: 70, + width: 70, + fit: BoxFit.cover, + ), + ), + GestureDetector( + onTap: () { + final provider = Provider.of( + context, + listen: false); + provider.discovery(); + }, + child: Image.asset( + 'assets/images/bouton_discovery.png', + height: 70, + width: 70, + fit: BoxFit.cover, + ), + ), + GestureDetector( + onTap: () { + final provider = Provider.of( + context, + listen: false); + provider.message(this.context); + }, + child: Image.asset( + 'assets/images/bouton_messages.png', + height: 70, + width: 70, + fit: BoxFit.cover, + ), + ), + GestureDetector( + onTap: () { + final provider = Provider.of( + context, + listen: false); + provider.like(this.context); + }, + child: Image.asset( + 'assets/images/bouton_like.png', + height: 70, + width: 70, + fit: BoxFit.cover, + ), + ), + ], ), - ), - ], - ), ), Align( - child:Container( + child: Container( width: 400, - height: height*0.8, - margin: EdgeInsets.fromLTRB(width*0.09,height/5,width*0.09,height/3.7), - + height: height * 0.8, + margin: EdgeInsets.fromLTRB( + width * 0.09, height / 5, width * 0.09, height / 3.7), child: Container( child: buildCards(), - ) - ) , + )), ), - IgnorePointer(child: Container(height: 200, - decoration: BoxDecoration( - gradient: gradiant.LinearGradient( - colors: [Colors.black.withOpacity(0.95),Colors.black.withOpacity(0.84),Colors.black.withOpacity(0.66),Colors.black.withOpacity(0.41),Colors.black.withOpacity(0)], - begin: Alignment.topCenter, - end: Alignment.bottomCenter, - ) - - ),),), - Padding(padding: EdgeInsets.fromLTRB(20, 60, 0, 0), + IgnorePointer( + child: Container( + height: 200, + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [ + Colors.black.withOpacity(0.95), + Colors.black.withOpacity(0.84), + Colors.black.withOpacity(0.66), + Colors.black.withOpacity(0.41), + Colors.black.withOpacity(0) + ], + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + )), + ), + ), + Padding( + padding: const EdgeInsets.fromLTRB(20, 60, 0, 0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text(MyApp().controller.currentUser.Spots2.isEmpty? '': - MyApp().controller.currentUser.Spots2.last.music.name,style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - Text(MyApp().controller.currentUser.Spots2.isEmpty? '': MyApp().controller.currentUser.Spots2.last.music.artist,style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 17, fontWeight: FontWeight.w200),), + Text( + MyApp.controller.currentUser.spots.isEmpty + ? '' + : MyApp.controller.currentUser.spots.last.music.name, + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), + Text( + MyApp.controller.currentUser.spots.isEmpty + ? '' + : MyApp + .controller.currentUser.spots.last.music.artist, + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 17, + fontWeight: FontWeight.w200), + ), ], - ),), + ), + ), ], ), - ) - ); + )); } Widget buildCards() { @@ -169,507 +206,705 @@ class _SpotsWidgetState extends State { return Stack( children: urlImages .map((urlImage) => CardWidget( - urlImage: urlImage.music.linkCover, - isFront: urlImages.last == urlImage, - )) + urlImage: urlImage.music.linkCover, + isFront: urlImages.last == urlImage, + )) .toList(), ); } - - - } +class DisplayInfoWidget extends StatelessWidget { + const DisplayInfoWidget({super.key}); - -class DisplayInfoWidget extends StatelessWidget{ @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: Color(0xFF232123), + backgroundColor: const Color(0xFF232123), appBar: AppBar( elevation: 0, backgroundColor: Colors.transparent, - title: Text("J'aime aussi..."), + title: const Text("J'aime aussi..."), ), body: ListView( children: [ Container( - margin: EdgeInsets.fromLTRB(30, 10, 30, 0), + margin: const EdgeInsets.fromLTRB(30, 10, 30, 0), child: Column( children: [ - Text('Pour mon mariage',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - + Text( + 'Pour mon mariage', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), Container( - margin: EdgeInsets.fromLTRB(0, 10, 0, 0), + margin: const EdgeInsets.fromLTRB(0, 10, 0, 0), decoration: BoxDecoration( - color: Color(0xFF2E2C2E), - border: Border.all(width: 1, color: Colors.grey.withOpacity(0.05)), - borderRadius: BorderRadius.all(Radius.circular(20)), + color: const Color(0xFF2E2C2E), + border: Border.all( + width: 1, color: Colors.grey.withOpacity(0.05)), + borderRadius: const BorderRadius.all(Radius.circular(20)), boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.2), blurRadius: 5, spreadRadius: 1, - offset: Offset(2.0, 2.0), // shadow direction: bottom right + offset: const Offset( + 2.0, 2.0), // shadow direction: bottom right ) ], - ), width: double.infinity, height: 100, - child: Padding(padding: EdgeInsets.fromLTRB(10, 10, 10, 10),child: Row( - children: [ - Container( - height: 75, - width: 75, - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage("assets/images/dadju-cover-poison.png"), - fit: BoxFit.cover, + child: Padding( + padding: const EdgeInsets.fromLTRB(10, 10, 10, 10), + child: Row( + children: [ + Container( + height: 75, + width: 75, + decoration: BoxDecoration( + image: const DecorationImage( + image: AssetImage( + "assets/images/dadju-cover-poison.png"), + fit: BoxFit.cover, + ), + border: Border.all( + width: 0, color: Colors.grey.withOpacity(0)), + borderRadius: + const BorderRadius.all(Radius.circular(15)), ), - border: Border.all(width: 0, color: Colors.grey.withOpacity(0)), - borderRadius: BorderRadius.all(Radius.circular(15)), - ),), - SizedBox( - ), - Container( - margin: EdgeInsets.fromLTRB(20, 0, 0, 0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text('Ma vie',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - Text('Dadju',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),), - - ], - ),), - ], - ),), + ), + const SizedBox(), + Container( + margin: const EdgeInsets.fromLTRB(20, 0, 0, 0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Ma vie', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), + Text( + 'Dadju', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(0.6), + fontSize: 16, + fontWeight: FontWeight.w400), + ), + ], + ), + ), + ], + ), + ), ), - ], - ) - ), + )), Container( - margin: EdgeInsets.fromLTRB(30, 10, 30, 0), + margin: const EdgeInsets.fromLTRB(30, 10, 30, 0), child: Column( children: [ - Text('Pour mon mariage',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - + Text( + 'Pour mon mariage', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), Container( - margin: EdgeInsets.fromLTRB(0, 10, 0, 0), + margin: const EdgeInsets.fromLTRB(0, 10, 0, 0), decoration: BoxDecoration( - color: Color(0xFF2E2C2E), - border: Border.all(width: 1, color: Colors.grey.withOpacity(0.05)), - borderRadius: BorderRadius.all(Radius.circular(20)), + color: const Color(0xFF2E2C2E), + border: Border.all( + width: 1, color: Colors.grey.withOpacity(0.05)), + borderRadius: const BorderRadius.all(Radius.circular(20)), boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.2), blurRadius: 5, spreadRadius: 1, - offset: Offset(2.0, 2.0), // shadow direction: bottom right + offset: const Offset( + 2.0, 2.0), // shadow direction: bottom right ) ], - ), width: double.infinity, height: 100, - child: Padding(padding: EdgeInsets.fromLTRB(10, 10, 10, 10),child: Row( - children: [ - Container( - height: 75, - width: 75, - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage("assets/images/dadju-cover-poison.png"), - fit: BoxFit.cover, + child: Padding( + padding: const EdgeInsets.fromLTRB(10, 10, 10, 10), + child: Row( + children: [ + Container( + height: 75, + width: 75, + decoration: BoxDecoration( + image: const DecorationImage( + image: AssetImage( + "assets/images/dadju-cover-poison.png"), + fit: BoxFit.cover, + ), + border: Border.all( + width: 0, color: Colors.grey.withOpacity(0)), + borderRadius: + const BorderRadius.all(Radius.circular(15)), ), - border: Border.all(width: 0, color: Colors.grey.withOpacity(0)), - borderRadius: BorderRadius.all(Radius.circular(15)), - ),), - SizedBox( - ), - Container( - margin: EdgeInsets.fromLTRB(20, 0, 0, 0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text('Ma vie',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - Text('Dadju',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),), - - ], - ),), - ], - ),), + ), + const SizedBox(), + Container( + margin: const EdgeInsets.fromLTRB(20, 0, 0, 0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Ma vie', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), + Text( + 'Dadju', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(0.6), + fontSize: 16, + fontWeight: FontWeight.w400), + ), + ], + ), + ), + ], + ), + ), ), - ], - ) - ), + )), Container( - margin: EdgeInsets.fromLTRB(30, 10, 30, 0), + margin: const EdgeInsets.fromLTRB(30, 10, 30, 0), child: Column( children: [ - Text('Pour mon mariage',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - + Text( + 'Pour mon mariage', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), Container( - margin: EdgeInsets.fromLTRB(0, 10, 0, 0), + margin: const EdgeInsets.fromLTRB(0, 10, 0, 0), decoration: BoxDecoration( - color: Color(0xFF2E2C2E), - border: Border.all(width: 1, color: Colors.grey.withOpacity(0.05)), - borderRadius: BorderRadius.all(Radius.circular(20)), + color: const Color(0xFF2E2C2E), + border: Border.all( + width: 1, color: Colors.grey.withOpacity(0.05)), + borderRadius: const BorderRadius.all(Radius.circular(20)), boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.2), blurRadius: 5, spreadRadius: 1, - offset: Offset(2.0, 2.0), // shadow direction: bottom right + offset: const Offset( + 2.0, 2.0), // shadow direction: bottom right ) ], - ), width: double.infinity, height: 100, - child: Padding(padding: EdgeInsets.fromLTRB(10, 10, 10, 10),child: Row( - children: [ - Container( - height: 75, - width: 75, - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage("assets/images/dadju-cover-poison.png"), - fit: BoxFit.cover, + child: Padding( + padding: const EdgeInsets.fromLTRB(10, 10, 10, 10), + child: Row( + children: [ + Container( + height: 75, + width: 75, + decoration: BoxDecoration( + image: const DecorationImage( + image: AssetImage( + "assets/images/dadju-cover-poison.png"), + fit: BoxFit.cover, + ), + border: Border.all( + width: 0, color: Colors.grey.withOpacity(0)), + borderRadius: + const BorderRadius.all(Radius.circular(15)), ), - border: Border.all(width: 0, color: Colors.grey.withOpacity(0)), - borderRadius: BorderRadius.all(Radius.circular(15)), - ),), - SizedBox( - ), - Container( - margin: EdgeInsets.fromLTRB(20, 0, 0, 0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text('Ma vie',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - Text('Dadju',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),), - - ], - ),), - ], - ),), + ), + const SizedBox(), + Container( + margin: const EdgeInsets.fromLTRB(20, 0, 0, 0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Ma vie', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), + Text( + 'Dadju', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(0.6), + fontSize: 16, + fontWeight: FontWeight.w400), + ), + ], + ), + ), + ], + ), + ), ), - ], - ) - ), + )), Container( - margin: EdgeInsets.fromLTRB(30, 10, 30, 0), + margin: const EdgeInsets.fromLTRB(30, 10, 30, 0), child: Column( children: [ - Text('Pour mon mariage',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - + Text( + 'Pour mon mariage', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), Container( - margin: EdgeInsets.fromLTRB(0, 10, 0, 0), + margin: const EdgeInsets.fromLTRB(0, 10, 0, 0), decoration: BoxDecoration( - color: Color(0xFF2E2C2E), - border: Border.all(width: 1, color: Colors.grey.withOpacity(0.05)), - borderRadius: BorderRadius.all(Radius.circular(20)), + color: const Color(0xFF2E2C2E), + border: Border.all( + width: 1, color: Colors.grey.withOpacity(0.05)), + borderRadius: const BorderRadius.all(Radius.circular(20)), boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.2), blurRadius: 5, spreadRadius: 1, - offset: Offset(2.0, 2.0), // shadow direction: bottom right + offset: const Offset( + 2.0, 2.0), // shadow direction: bottom right ) ], - ), width: double.infinity, height: 100, - child: Padding(padding: EdgeInsets.fromLTRB(10, 10, 10, 10),child: Row( - children: [ - Container( - height: 75, - width: 75, - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage("assets/images/dadju-cover-poison.png"), - fit: BoxFit.cover, + child: Padding( + padding: const EdgeInsets.fromLTRB(10, 10, 10, 10), + child: Row( + children: [ + Container( + height: 75, + width: 75, + decoration: BoxDecoration( + image: const DecorationImage( + image: AssetImage( + "assets/images/dadju-cover-poison.png"), + fit: BoxFit.cover, + ), + border: Border.all( + width: 0, color: Colors.grey.withOpacity(0)), + borderRadius: + const BorderRadius.all(Radius.circular(15)), ), - border: Border.all(width: 0, color: Colors.grey.withOpacity(0)), - borderRadius: BorderRadius.all(Radius.circular(15)), - ),), - SizedBox( - ), - Container( - margin: EdgeInsets.fromLTRB(20, 0, 0, 0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text('Ma vie',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - Text('Dadju',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),), - - ], - ),), - ], - ),), + ), + const SizedBox(), + Container( + margin: const EdgeInsets.fromLTRB(20, 0, 0, 0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Ma vie', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), + Text( + 'Dadju', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(0.6), + fontSize: 16, + fontWeight: FontWeight.w400), + ), + ], + ), + ), + ], + ), + ), ), - ], - ) - ), + )), Container( - margin: EdgeInsets.fromLTRB(30, 10, 30, 0), + margin: const EdgeInsets.fromLTRB(30, 10, 30, 0), child: Column( children: [ - Text('Pour mon mariage',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - + Text( + 'Pour mon mariage', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), Container( - margin: EdgeInsets.fromLTRB(0, 10, 0, 0), + margin: const EdgeInsets.fromLTRB(0, 10, 0, 0), decoration: BoxDecoration( - color: Color(0xFF2E2C2E), - border: Border.all(width: 1, color: Colors.grey.withOpacity(0.05)), - borderRadius: BorderRadius.all(Radius.circular(20)), + color: const Color(0xFF2E2C2E), + border: Border.all( + width: 1, color: Colors.grey.withOpacity(0.05)), + borderRadius: const BorderRadius.all(Radius.circular(20)), boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.2), blurRadius: 5, spreadRadius: 1, - offset: Offset(2.0, 2.0), // shadow direction: bottom right + offset: const Offset( + 2.0, 2.0), // shadow direction: bottom right ) ], - ), width: double.infinity, height: 100, - child: Padding(padding: EdgeInsets.fromLTRB(10, 10, 10, 10),child: Row( - children: [ - Container( - height: 75, - width: 75, - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage("assets/images/dadju-cover-poison.png"), - fit: BoxFit.cover, + child: Padding( + padding: const EdgeInsets.fromLTRB(10, 10, 10, 10), + child: Row( + children: [ + Container( + height: 75, + width: 75, + decoration: BoxDecoration( + image: const DecorationImage( + image: AssetImage( + "assets/images/dadju-cover-poison.png"), + fit: BoxFit.cover, + ), + border: Border.all( + width: 0, color: Colors.grey.withOpacity(0)), + borderRadius: + const BorderRadius.all(Radius.circular(15)), ), - border: Border.all(width: 0, color: Colors.grey.withOpacity(0)), - borderRadius: BorderRadius.all(Radius.circular(15)), - ),), - SizedBox( - ), - Container( - margin: EdgeInsets.fromLTRB(20, 0, 0, 0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text('Ma vie',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - Text('Dadju',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),), - - ], - ),), - ], - ),), + ), + const SizedBox(), + Container( + margin: const EdgeInsets.fromLTRB(20, 0, 0, 0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Ma vie', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), + Text( + 'Dadju', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(0.6), + fontSize: 16, + fontWeight: FontWeight.w400), + ), + ], + ), + ), + ], + ), + ), ), - ], - ) - ), + )), Container( - margin: EdgeInsets.fromLTRB(30, 10, 30, 0), + margin: const EdgeInsets.fromLTRB(30, 10, 30, 0), child: Column( children: [ - Text('Pour mon mariage',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - + Text( + 'Pour mon mariage', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), Container( - margin: EdgeInsets.fromLTRB(0, 10, 0, 0), + margin: const EdgeInsets.fromLTRB(0, 10, 0, 0), decoration: BoxDecoration( - color: Color(0xFF2E2C2E), - border: Border.all(width: 1, color: Colors.grey.withOpacity(0.05)), - borderRadius: BorderRadius.all(Radius.circular(20)), + color: const Color(0xFF2E2C2E), + border: Border.all( + width: 1, color: Colors.grey.withOpacity(0.05)), + borderRadius: const BorderRadius.all(Radius.circular(20)), boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.2), blurRadius: 5, spreadRadius: 1, - offset: Offset(2.0, 2.0), // shadow direction: bottom right + offset: const Offset( + 2.0, 2.0), // shadow direction: bottom right ) ], - ), width: double.infinity, height: 100, - child: Padding(padding: EdgeInsets.fromLTRB(10, 10, 10, 10),child: Row( - children: [ - Container( - height: 75, - width: 75, - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage("assets/images/dadju-cover-poison.png"), - fit: BoxFit.cover, + child: Padding( + padding: const EdgeInsets.fromLTRB(10, 10, 10, 10), + child: Row( + children: [ + Container( + height: 75, + width: 75, + decoration: BoxDecoration( + image: const DecorationImage( + image: AssetImage( + "assets/images/dadju-cover-poison.png"), + fit: BoxFit.cover, + ), + border: Border.all( + width: 0, color: Colors.grey.withOpacity(0)), + borderRadius: + const BorderRadius.all(Radius.circular(15)), ), - border: Border.all(width: 0, color: Colors.grey.withOpacity(0)), - borderRadius: BorderRadius.all(Radius.circular(15)), - ),), - SizedBox( - ), - Container( - margin: EdgeInsets.fromLTRB(20, 0, 0, 0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text('Ma vie',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - Text('Dadju',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),), - - ], - ),), - ], - ),), + ), + const SizedBox(), + Container( + margin: const EdgeInsets.fromLTRB(20, 0, 0, 0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Ma vie', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), + Text( + 'Dadju', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(0.6), + fontSize: 16, + fontWeight: FontWeight.w400), + ), + ], + ), + ), + ], + ), + ), ), - ], - ) - ), + )), Container( - margin: EdgeInsets.fromLTRB(30, 10, 30, 0), + margin: const EdgeInsets.fromLTRB(30, 10, 30, 0), child: Column( children: [ - Text('Pour mon mariage',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - + Text( + 'Pour mon mariage', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), Container( - margin: EdgeInsets.fromLTRB(0, 10, 0, 0), + margin: const EdgeInsets.fromLTRB(0, 10, 0, 0), decoration: BoxDecoration( - color: Color(0xFF2E2C2E), - border: Border.all(width: 1, color: Colors.grey.withOpacity(0.05)), - borderRadius: BorderRadius.all(Radius.circular(20)), + color: const Color(0xFF2E2C2E), + border: Border.all( + width: 1, color: Colors.grey.withOpacity(0.05)), + borderRadius: const BorderRadius.all(Radius.circular(20)), boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.2), blurRadius: 5, spreadRadius: 1, - offset: Offset(2.0, 2.0), // shadow direction: bottom right + offset: const Offset( + 2.0, 2.0), // shadow direction: bottom right ) ], - ), width: double.infinity, height: 100, - child: Padding(padding: EdgeInsets.fromLTRB(10, 10, 10, 10),child: Row( - children: [ - Container( - height: 75, - width: 75, - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage("assets/images/dadju-cover-poison.png"), - fit: BoxFit.cover, + child: Padding( + padding: const EdgeInsets.fromLTRB(10, 10, 10, 10), + child: Row( + children: [ + Container( + height: 75, + width: 75, + decoration: BoxDecoration( + image: const DecorationImage( + image: AssetImage( + "assets/images/dadju-cover-poison.png"), + fit: BoxFit.cover, + ), + border: Border.all( + width: 0, color: Colors.grey.withOpacity(0)), + borderRadius: + const BorderRadius.all(Radius.circular(15)), ), - border: Border.all(width: 0, color: Colors.grey.withOpacity(0)), - borderRadius: BorderRadius.all(Radius.circular(15)), - ),), - SizedBox( - ), - Container( - margin: EdgeInsets.fromLTRB(20, 0, 0, 0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text('Ma vie',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - Text('Dadju',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),), - - ], - ),), - ], - ),), + ), + const SizedBox(), + Container( + margin: const EdgeInsets.fromLTRB(20, 0, 0, 0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Ma vie', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), + Text( + 'Dadju', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(0.6), + fontSize: 16, + fontWeight: FontWeight.w400), + ), + ], + ), + ), + ], + ), + ), ), - ], - ) - ), + )), Container( - margin: EdgeInsets.fromLTRB(30, 10, 30, 0), + margin: const EdgeInsets.fromLTRB(30, 10, 30, 0), child: Column( children: [ - Text('Pour mon mariage',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - + Text( + 'Pour mon mariage', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), Container( - margin: EdgeInsets.fromLTRB(0, 10, 0, 0), + margin: const EdgeInsets.fromLTRB(0, 10, 0, 0), decoration: BoxDecoration( - color: Color(0xFF2E2C2E), - border: Border.all(width: 1, color: Colors.grey.withOpacity(0.05)), - borderRadius: BorderRadius.all(Radius.circular(20)), + color: const Color(0xFF2E2C2E), + border: Border.all( + width: 1, color: Colors.grey.withOpacity(0.05)), + borderRadius: const BorderRadius.all(Radius.circular(20)), boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.2), blurRadius: 5, spreadRadius: 1, - offset: Offset(2.0, 2.0), // shadow direction: bottom right + offset: const Offset( + 2.0, 2.0), // shadow direction: bottom right ) ], - ), width: double.infinity, height: 100, - child: Padding(padding: EdgeInsets.fromLTRB(10, 10, 10, 10),child: Row( - children: [ - Container( - height: 75, - width: 75, - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage("assets/images/dadju-cover-poison.png"), - fit: BoxFit.cover, + child: Padding( + padding: const EdgeInsets.fromLTRB(10, 10, 10, 10), + child: Row( + children: [ + Container( + height: 75, + width: 75, + decoration: BoxDecoration( + image: const DecorationImage( + image: AssetImage( + "assets/images/dadju-cover-poison.png"), + fit: BoxFit.cover, + ), + border: Border.all( + width: 0, color: Colors.grey.withOpacity(0)), + borderRadius: + const BorderRadius.all(Radius.circular(15)), ), - border: Border.all(width: 0, color: Colors.grey.withOpacity(0)), - borderRadius: BorderRadius.all(Radius.circular(15)), - ),), - SizedBox( - ), - Container( - margin: EdgeInsets.fromLTRB(20, 0, 0, 0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text('Ma vie',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - Text('Dadju',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),), - - ], - ),), - ], - ),), + ), + const SizedBox(), + Container( + margin: const EdgeInsets.fromLTRB(20, 0, 0, 0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Ma vie', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 20, + fontWeight: FontWeight.w800), + ), + Text( + 'Dadju', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(0.6), + fontSize: 16, + fontWeight: FontWeight.w400), + ), + ], + ), + ), + ], + ), + ), ), - ], - ) - ), - + )), ], ), ); } } -class PreviewInfoWidget extends StatelessWidget{ +class PreviewInfoWidget extends StatelessWidget { + const PreviewInfoWidget({super.key}); + @override Widget build(BuildContext context) { double height = MediaQuery.of(context).size.height; double width = MediaQuery.of(context).size.width; return Container( - height: height*0.06, - constraints: BoxConstraints(minWidth: 300, maxWidth: 400), - margin: EdgeInsets.fromLTRB(width*0.1, 0, width*0.1, 0), + height: height * 0.06, + constraints: const BoxConstraints(minWidth: 300, maxWidth: 400), + margin: EdgeInsets.fromLTRB(width * 0.1, 0, width * 0.1, 0), decoration: BoxDecoration( - color: Color(0xFF24243A).withOpacity(0.40), + color: const Color(0xFF24243A).withOpacity(0.40), border: Border.all(width: 0, color: Colors.grey.withOpacity(0)), - borderRadius: BorderRadius.only( + borderRadius: const BorderRadius.only( topLeft: Radius.circular(20), topRight: Radius.circular(20), ), @@ -677,10 +912,16 @@ class PreviewInfoWidget extends StatelessWidget{ child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - Text('Me découvrir...',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 17, fontWeight: FontWeight.w800),), + Text( + 'Me découvrir...', + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white.withOpacity(1), + fontSize: 17, + fontWeight: FontWeight.w800), + ), ], ), ); - } } diff --git a/Sources/dafl_project_flutter/lib/views/pages/main/w_top.dart b/Sources/dafl_project_flutter/lib/views/pages/main/w_top.dart index 26c28bf..a863920 100644 --- a/Sources/dafl_project_flutter/lib/views/pages/main/w_top.dart +++ b/Sources/dafl_project_flutter/lib/views/pages/main/w_top.dart @@ -1,6 +1,4 @@ -import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:fluttericon/font_awesome5_icons.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'p_main.dart'; @@ -17,25 +15,36 @@ class _TopsWidgetState extends State { Widget build(BuildContext context) { return Container( width: double.infinity, - color: Color(0xFF141414), - - child: Padding(padding: EdgeInsets.fromLTRB(0, 50, 0, 0), + color: const Color(0xFF141414), + child: Padding( + padding: const EdgeInsets.fromLTRB(0, 50, 0, 0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( - padding: EdgeInsets.fromLTRB(30, 0, 30, 0), + padding: const EdgeInsets.fromLTRB(30, 0, 30, 0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text('Les Tops', style: TextStyle(color: Colors.white, fontWeight: FontWeight.w500, fontSize: 25),), - Padding(padding: EdgeInsets.fromLTRB(0, 5, 0, 0)), - Text('Retrouvez ici les titres les plus écoutés', style: TextStyle(color: Colors.grey.withOpacity(0.4), fontSize: 15),), + const Text( + 'Les Tops', + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.w500, + fontSize: 25), + ), + const Padding(padding: EdgeInsets.fromLTRB(0, 5, 0, 0)), + Text( + 'Retrouvez ici les titres les plus écoutés', + style: TextStyle( + color: Colors.grey.withOpacity(0.4), fontSize: 15), + ), ], ), ), - Expanded(child: ListView( - children: [ + Expanded( + child: ListView( + children: const [ TopWidget(), TopWidget(), TopWidget(), @@ -44,97 +53,124 @@ class _TopsWidgetState extends State { TopWidget(), ], )), - ], - ),), + ), + ), ); } - } -class TopWidget extends StatelessWidget{ +class TopWidget extends StatelessWidget { + const TopWidget({super.key}); + @override Widget build(BuildContext context) { return Container( - padding: EdgeInsets.fromLTRB(30, 0, 30, 0), + padding: const EdgeInsets.fromLTRB(30, 0, 30, 0), width: double.infinity, height: 200, child: Column( - mainAxisAlignment: MainAxisAlignment.center, children: [ Stack( alignment: AlignmentDirectional.centerEnd, clipBehavior: Clip.none, children: [ - Positioned(child: Icon(FontAwesomeIcons.champagneGlasses,size: 50,color: Colors.white,), + const Positioned( right: 20, - top: -15,), + top: -15, + child: Icon( + FontAwesomeIcons.champagneGlasses, + size: 50, + color: Colors.white, + ), + ), Container( width: double.infinity, height: 35, decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), - color: Color(0xFFD9D9D9).withOpacity(0.16), + color: const Color(0xFFD9D9D9).withOpacity(0.16), ), - child: Align( + child: const Align( alignment: Alignment.centerLeft, child: Padding( padding: EdgeInsets.fromLTRB(20, 0, 0, 0), - child: Text('Pour mon mariage',style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold,fontSize: 16),), + child: Text( + 'Pour mon mariage', + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 16), + ), ), - ) - ), + )), ], ), - SizedBox(height: 20,), + const SizedBox( + height: 20, + ), Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( - margin: EdgeInsets.fromLTRB(15, 0, 0, 0), + margin: const EdgeInsets.fromLTRB(15, 0, 0, 0), child: ClipRRect( borderRadius: BorderRadius.circular(15), child: FadeInImage.assetNetwork( height: 120, width: 120, - placeholder: "assets/images/loadingPlaceholder.gif", image: 'https://images.genius.com/ef4849be3da5fdb22ea9e656679be3a3.600x600x1.jpg'), + placeholder: "assets/images/loadingPlaceholder.gif", + image: + 'https://images.genius.com/ef4849be3da5fdb22ea9e656679be3a3.600x600x1.jpg'), ), ), Stack( children: [ Container( - margin: EdgeInsets.fromLTRB(12, 5, 80, 60), + margin: const EdgeInsets.fromLTRB(12, 5, 80, 60), child: Column( mainAxisAlignment: MainAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text('BAMBINA', style: TextStyle(fontSize:25, fontWeight: FontWeight.w700, color: Colors.white),), - Text('PNL', style: TextStyle(fontSize:20, fontWeight: FontWeight.w400, color: Colors.grey),), + children: const [ + Text( + 'BAMBINA', + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.w700, + color: Colors.white), + ), + Text( + 'PNL', + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.w400, + color: Colors.grey), + ), ], ), ), Positioned( bottom: 0, - right: 0, - child: Row( - children: [ - GradientText( - '7,2%', - style: const TextStyle(fontSize: 60, fontWeight: FontWeight.bold), - gradient: LinearGradient(colors: [ - Colors.orange, - Colors.red, - Colors.purple, - ]), - ), - ], - ), + right: 0, + child: Row( + children: const [ + GradientText( + '7,2%', + style: TextStyle( + fontSize: 60, fontWeight: FontWeight.bold), + gradient: LinearGradient(colors: [ + Colors.orange, + Colors.red, + Colors.purple, + ]), + ), + ], + ), ), ], ), - ], ), ], 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 50d9e3a..d917c72 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 @@ -1,11 +1,9 @@ -import 'dart:ui'; -import 'package:dafl_project_flutter/model/user.dart'; -import 'package:dafl_project_flutter/views/pages/main/p_main.dart'; import 'package:flutter/material.dart'; import 'package:page_transition/page_transition.dart'; import '../../../main.dart'; import '../../../model/music.dart'; import '../../../model/spot.dart'; +import '../../../model/user.dart'; import '../sign_up/p_sign_up.dart'; class SignInPage extends StatefulWidget { @@ -17,15 +15,15 @@ class SignInPage extends StatefulWidget { class _SignInPageState extends State { var boxColor = Colors.white; - - @override bool isChecked = false; final userNameTextField = TextEditingController(); final passwordTextField = TextEditingController(); + + @override Widget build(BuildContext context) { return Scaffold( resizeToAvoidBottomInset: false, - backgroundColor: Color(0xFF141414), + backgroundColor: const Color(0xFF141414), body: Stack( alignment: AlignmentDirectional.topCenter, children: [ @@ -39,88 +37,97 @@ class _SignInPageState extends State { crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.end, children: [ - Image.asset( 'assets/images/Logo.png', width: 250, ), - SizedBox(height: 80,), - Text( + const SizedBox( + height: 80, + ), + const Text( "SE CONNECTER", - style: TextStyle(fontFamily: 'DMSans', color: Colors.white ,fontSize: 23, fontWeight: FontWeight.w700), + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white, + fontSize: 23, + fontWeight: FontWeight.w700), textAlign: TextAlign.center, ), - SizedBox(height: 10,), + const SizedBox( + height: 10, + ), Container( - width: 500, - padding: EdgeInsets.fromLTRB(45, 0, 45, 0), - child: Stack( - children: [ - Container( - height: 43, - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.all( - Radius.circular(50)), - boxShadow: [ - BoxShadow( - color: Colors.black.withOpacity(0.3), - spreadRadius: 5, - blurRadius: 7, - offset: Offset(0, 3), // changes position of shadow - ), - ], + width: 500, + padding: const EdgeInsets.fromLTRB(45, 0, 45, 0), + child: Stack( + children: [ + Container( + height: 43, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: + const BorderRadius.all(Radius.circular(50)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.3), + spreadRadius: 5, + blurRadius: 7, + offset: const Offset( + 0, 3), // changes position of shadow + ), + ], + ), ), - ), - Padding(padding: EdgeInsets.fromLTRB(50, 0, 20, 0), - child: TextField( - controller: userNameTextField, - decoration: InputDecoration( - border: InputBorder.none, + Padding( + padding: const EdgeInsets.fromLTRB(50, 0, 20, 0), + child: TextField( + controller: userNameTextField, + decoration: const InputDecoration( + border: InputBorder.none, + ), + cursorColor: Colors.purple, + textAlign: TextAlign.left, ), - cursorColor: Colors.purple, - textAlign: TextAlign.left, ), - ), - Container( - margin: EdgeInsets.fromLTRB(15, 12, 0, 0), - child: Image.asset( - 'assets/images/profil_logo.png', - height: 16, - width: 16, - fit: BoxFit.cover, + Container( + margin: const EdgeInsets.fromLTRB(15, 12, 0, 0), + child: Image.asset( + 'assets/images/profil_logo.png', + height: 16, + width: 16, + fit: BoxFit.cover, + ), ), - ), - ], - ) - ), + ], + )), Container( width: 500, - padding: EdgeInsets.fromLTRB(45, 10, 45, 0), + padding: const EdgeInsets.fromLTRB(45, 10, 45, 0), child: Stack( children: [ Container( height: 43, decoration: BoxDecoration( color: Colors.white, - borderRadius: BorderRadius.all( - Radius.circular(50)), + borderRadius: + const BorderRadius.all(Radius.circular(50)), boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.3), spreadRadius: 5, blurRadius: 7, - offset: Offset(0, 3), // changes position of shadow + offset: const Offset( + 0, 3), // changes position of shadow ), ], - ), - - ),Padding(padding: EdgeInsets.fromLTRB(50, 0, 20, 0), + ), + Padding( + padding: const EdgeInsets.fromLTRB(50, 0, 20, 0), child: TextField( controller: passwordTextField, obscureText: true, - decoration: InputDecoration( + decoration: const InputDecoration( border: InputBorder.none, ), cursorColor: Colors.purple, @@ -128,7 +135,7 @@ class _SignInPageState extends State { ), ), Container( - margin: EdgeInsets.fromLTRB(15, 12, 0, 0), + margin: const EdgeInsets.fromLTRB(15, 12, 0, 0), child: Image.asset( 'assets/images/password_logo.png', height: 16, @@ -137,17 +144,18 @@ class _SignInPageState extends State { ), ), ], - ) + )), + const SizedBox( + height: 10, ), - SizedBox(height: 10,), - Container( + SizedBox( width: double.infinity, child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Checkbox( checkColor: Colors.white, - activeColor: Color(0xFF951DDE), + activeColor: const Color(0xFF951DDE), value: isChecked, onChanged: (bool? value) { setState(() { @@ -155,108 +163,144 @@ class _SignInPageState extends State { }); }, ), - Text( + const Text( "se souvenir de moi", - style: TextStyle(fontFamily: 'DMSans', color: Colors.white ,fontSize: 17, fontWeight: FontWeight.w700), + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white, + fontSize: 17, + fontWeight: FontWeight.w700), textAlign: TextAlign.center, ), ], ), ), - SizedBox(height: 50,), + const SizedBox( + height: 50, + ), ClipRRect( borderRadius: BorderRadius.circular(22), - child: Material( - child: InkWell( highlightColor: Colors.grey.shade100, - splashColor: Color(0xFF406DE1), - onTap: (){ - checkInformations(userNameTextField.text, passwordTextField.text); + splashColor: const Color(0xFF406DE1), + onTap: () { + checkInformations( + userNameTextField.text, passwordTextField.text); }, - child:Ink( - child: Align( - alignment: Alignment.center, - child: Icon( - Icons.check, - color: Color(0xFF406DE1), - size: 60.0, - ), - ), - padding: EdgeInsets.fromLTRB(0, 10, 0, 0), + child: Ink( + padding: const EdgeInsets.fromLTRB(0, 10, 0, 0), width: 83, height: 83, decoration: BoxDecoration( - color: Colors.white,// Set rounded corner radius + color: Colors.white, // Set rounded corner radius boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.3), spreadRadius: 5, blurRadius: 7, - offset: Offset(0, 3), // changes position of shadow + offset: const Offset( + 0, 3), // changes position of shadow ), ], ), - + child: const Align( + alignment: Alignment.center, + child: Icon( + Icons.check, + color: Color(0xFF406DE1), + size: 60.0, + ), + ), ), ), ), ), - SizedBox(height: 100,), + const SizedBox( + height: 100, + ), Row( mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text('Tu n’as pas de compte ?', style: TextStyle(color: Colors.white, fontWeight: FontWeight.normal, fontSize: 17)), - GestureDetector( - onTap: () { - Navigator.of(context).push( - PageTransition( - type: PageTransitionType.fade, - childCurrent: widget, - child: SignUpPage()), - ); - }, - child: Text(' s’inscrire', style: TextStyle(color: Color(0xFF406DE1), fontWeight: FontWeight.normal, fontSize: 16), - ), + children: [ + const Text('Tu n’as pas de compte ?', + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.normal, + fontSize: 17)), + GestureDetector( + onTap: () { + Navigator.of(context).push( + PageTransition( + type: PageTransitionType.fade, + childCurrent: widget, + child: const SignUpPage()), + ); + }, + child: const Text( + ' s’inscrire', + style: TextStyle( + color: Color(0xFF406DE1), + fontWeight: FontWeight.normal, + fontSize: 16), ), - ], - ), - SizedBox(height: 60,), + ), + ], + ), + const SizedBox( + height: 60, + ), ], ), - ], ), ); } - void checkInformations(String username,String password){ - if(username ==""){ - Notify(2, context); - } - else if(password ==""){ - Notify(4, context); - } - else{ + void checkInformations(String username, String password) { + if (username == "") { + notify(2, context); + } else if (password == "") { + notify(4, context); + } else { //MyApp().controller.load(userNameTextField.text, passwordTextField.text); - MyApp().controller.currentUser = User(userNameTextField.text, passwordTextField.text); - MyApp().controller.currentUser.Spots2 = [ - 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')), + MyApp.controller.currentUser = + User(userNameTextField.text, passwordTextField.text); + MyApp.controller.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(); Navigator.of(context).push( PageTransition( type: PageTransitionType.fade, childCurrent: widget, - child: Splash()), + child: const Splash()), ); - - } + } } } diff --git a/Sources/dafl_project_flutter/lib/views/pages/sign_up/p_sign_up.dart b/Sources/dafl_project_flutter/lib/views/pages/sign_up/p_sign_up.dart index f337fa9..24b4d29 100644 --- a/Sources/dafl_project_flutter/lib/views/pages/sign_up/p_sign_up.dart +++ b/Sources/dafl_project_flutter/lib/views/pages/sign_up/p_sign_up.dart @@ -1,14 +1,10 @@ import 'package:dafl_project_flutter/main.dart'; -import 'package:dafl_project_flutter/api/api.dart'; -import 'package:dafl_project_flutter/main.dart'; import 'package:flutter/material.dart'; import 'package:page_transition/page_transition.dart'; import '../../../api/in_app_browser.dart'; -import 'package:rive/rive.dart' as riv; import '../../../model/user.dart'; import '../home/p_home.dart'; import '../sign_in/p_sign_in.dart'; -import '../../../controller/controller.dart'; class SignUpPage extends StatefulWidget { const SignUpPage({Key? key}) : super(key: key); @@ -20,19 +16,19 @@ class SignUpPage extends StatefulWidget { class _SignUpPageState extends State { Color boxColor = Colors.white; bool isHovering = false; - @override bool isChecked = false; final userNameTextField = TextEditingController(); final passwordTextField = TextEditingController(); final passwordConfirmTextField = TextEditingController(); + + @override Widget build(BuildContext context) { double width = MediaQuery.of(context).size.width; return Scaffold( - resizeToAvoidBottomInset: false, - backgroundColor: const Color(0xFF141414), - body: Stack( - alignment: AlignmentDirectional.topCenter, - children: [ + resizeToAvoidBottomInset: false, + backgroundColor: const Color(0xFF141414), + body: + Stack(alignment: AlignmentDirectional.topCenter, children: [ Image.asset( 'assets/images/background.png', height: double.infinity, @@ -40,173 +36,240 @@ class _SignUpPageState extends State { fit: BoxFit.cover, ), Column( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Image.asset( - 'assets/images/Logo.png', - width: 250, - ), - const SizedBox( - height: 45, - ), - const Text( - "S'INSCRIRE", - style: TextStyle( - fontFamily: 'DMSans', - color: Colors.white, - fontSize: 23, - fontWeight: FontWeight.w700), - textAlign: TextAlign.center, - ), - const SizedBox( - height: 10, - ), - Container( - width: 500, - padding: const EdgeInsets.fromLTRB(45, 0, 45, 0), - child: Stack( - children: [ - Container( - height: 43, - decoration: BoxDecoration( - color: Colors.white, - borderRadius: - const BorderRadius.all(Radius.circular(50)), - boxShadow: [ - BoxShadow( - color: Colors.black.withOpacity(0.3), - spreadRadius: 5, - blurRadius: 7, - offset: const Offset( - 0, 3), // changes position of shadow + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Image.asset( + 'assets/images/Logo.png', + width: 250, + ), + const SizedBox( + height: 45, + ), + const Text( + "S'INSCRIRE", + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white, + fontSize: 23, + fontWeight: FontWeight.w700), + textAlign: TextAlign.center, + ), + const SizedBox( + height: 10, + ), + Container( + width: 500, + padding: const EdgeInsets.fromLTRB(45, 0, 45, 0), + child: Stack( + children: [ + Container( + height: 43, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: + const BorderRadius.all(Radius.circular(50)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.3), + spreadRadius: 5, + blurRadius: 7, + offset: const Offset( + 0, 3), // changes position of shadow + ), + ], + ), + ), + Padding( + padding: const EdgeInsets.fromLTRB(50, 0, 20, 0), + child: TextField( + controller: userNameTextField, + decoration: const InputDecoration( + border: InputBorder.none, ), - ], + cursorColor: Colors.purple, + textAlign: TextAlign.left, + ), ), - ), - const Padding( - padding: EdgeInsets.fromLTRB(50, 0, 20, 0), - child: TextField( - controller: userNameTextField, - decoration: InputDecoration( - border: InputBorder.none, + Container( + margin: const EdgeInsets.fromLTRB(15, 12, 0, 0), + child: Image.asset( + 'assets/images/profil_logo.png', + height: 16, + width: 16, + fit: BoxFit.cover, ), - cursorColor: Colors.purple, - textAlign: TextAlign.left, ), - ), - Container( - margin: const EdgeInsets.fromLTRB(15, 12, 0, 0), - child: Image.asset( - 'assets/images/profil_logo.png', - height: 16, - width: 16, - fit: BoxFit.cover, + ], + )), + Container( + width: 500, + padding: const EdgeInsets.fromLTRB(45, 10, 45, 0), + child: Stack( + children: [ + Container( + height: 43, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: + const BorderRadius.all(Radius.circular(50)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.3), + spreadRadius: 5, + blurRadius: 7, + offset: const Offset( + 0, 3), // changes position of shadow + ), + ], + ), ), - ), - ], - )), - Container( - width: 500, - padding: const EdgeInsets.fromLTRB(45, 10, 45, 0), - child: Stack( - children: [ - Container( - height: 43, - decoration: BoxDecoration( - color: Colors.white, - borderRadius: - const BorderRadius.all(Radius.circular(50)), - boxShadow: [ - BoxShadow( - color: Colors.black.withOpacity(0.3), - spreadRadius: 5, - blurRadius: 7, - offset: const Offset( - 0, 3), // changes position of shadow + Padding( + padding: const EdgeInsets.fromLTRB(50, 0, 20, 0), + child: TextField( + controller: passwordTextField, + obscureText: true, + decoration: const InputDecoration( + border: InputBorder.none, ), - ], + cursorColor: Colors.purple, + textAlign: TextAlign.left, + ), ), - ), - const Padding( - padding: EdgeInsets.fromLTRB(50, 0, 20, 0), - child: TextField( - controller: passwordTextField, - obscureText: true, - decoration: InputDecoration( - border: InputBorder.none, + Container( + margin: const EdgeInsets.fromLTRB(15, 12, 0, 0), + child: Image.asset( + 'assets/images/password_logo.png', + height: 16, + width: 16, + fit: BoxFit.cover, ), - cursorColor: Colors.purple, - textAlign: TextAlign.left, ), - ), - Container( - margin: const EdgeInsets.fromLTRB(15, 12, 0, 0), - child: Image.asset( - 'assets/images/password_logo.png', - height: 16, - width: 16, - fit: BoxFit.cover, + ], + )), + Container( + width: 500, + padding: const EdgeInsets.fromLTRB(45, 10, 45, 0), + child: Stack( + children: [ + Container( + height: 43, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: + const BorderRadius.all(Radius.circular(50)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.3), + spreadRadius: 5, + blurRadius: 7, + offset: const Offset( + 0, 3), // changes position of shadow + ), + ], + ), ), - ), - ], - )), - Container( - width: 500, - padding: const EdgeInsets.fromLTRB(45, 10, 45, 0), - child: Stack( - children: [ - Container( - height: 43, - decoration: BoxDecoration( - color: Colors.white, - borderRadius: - const BorderRadius.all(Radius.circular(50)), - boxShadow: [ - BoxShadow( - color: Colors.black.withOpacity(0.3), - spreadRadius: 5, - blurRadius: 7, - offset: const Offset( - 0, 3), // changes position of shadow + Padding( + padding: const EdgeInsets.fromLTRB(50, 0, 20, 0), + child: TextField( + obscureText: true, + controller: passwordConfirmTextField, + decoration: const InputDecoration( + border: InputBorder.none, ), - ], + cursorColor: Colors.purple, + textAlign: TextAlign.left, + ), ), - ), - Padding( - padding: const EdgeInsets.fromLTRB(50, 0, 20, 0), - child: TextField( - obscureText: true, - controller: passwordConfirmTextField, - decoration: InputDecoration( - border: InputBorder.none, + Container( + margin: const EdgeInsets.fromLTRB(15, 12, 0, 0), + child: Image.asset( + 'assets/images/password_logo.png', + height: 16, + width: 16, + fit: BoxFit.cover, ), - cursorColor: Colors.purple, - textAlign: TextAlign.left, ), - ), - Container( - margin: const EdgeInsets.fromLTRB(15, 12, 0, 0), - child: Image.asset( - 'assets/images/password_logo.png', - height: 16, - width: 16, - fit: BoxFit.cover, + ], + )), + Container( + width: 500, + padding: const EdgeInsets.fromLTRB(45, 10, 45, 0), + child: Stack( + children: [ + Container( + height: 43, + decoration: BoxDecoration( + color: const Color(0xFF24CF5F), + borderRadius: + const BorderRadius.all(Radius.circular(50)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.3), + spreadRadius: 5, + blurRadius: 7, + offset: const Offset( + 0, 3), // changes position of shadow + ), + ], + ), ), - ), - ], - )), - Container( - width: 500, - padding: const EdgeInsets.fromLTRB(45, 10, 45, 0), - child: Stack( - children: [ - Container( - height: 43, + SizedBox( + height: 43, + width: width * 0.75, + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF24CF5F), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(100), + ), // background// foreground + ), + onPressed: () { + MyInAppBrowser(); + }, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text( + "Lier compte", + style: TextStyle( + fontFamily: 'DMSans', + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w700), + ), + Image.asset( + 'assets/images/spotify_logo.png', + height: 25, + width: 25, + fit: BoxFit.cover, + ), + ], + )), + ), + ], + )), + const SizedBox( + height: 30, + ), + ClipRRect( + borderRadius: BorderRadius.circular(22), + child: Material( + child: InkWell( + highlightColor: Colors.grey.shade100, + splashColor: const Color(0xFF406DE1), + onTap: () { + checkInformations( + userNameTextField.text, + passwordTextField.text, + passwordConfirmTextField.text); + }, + child: Ink( + padding: const EdgeInsets.fromLTRB(0, 10, 0, 0), + width: 83, + height: 83, decoration: BoxDecoration( - color: const Color(0xFF24CF5F), - borderRadius: - const BorderRadius.all(Radius.circular(50)), + color: Colors.white, // Set rounded corner radius boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.3), @@ -217,155 +280,79 @@ class _SignUpPageState extends State { ), ], ), - ), - SizedBox( - height: 43, - width: width * 0.75, - child: ElevatedButton( - style: ElevatedButton.styleFrom( - backgroundColor: const Color(0xFF24CF5F), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(100), - ), // background// foreground - ), - onPressed: () { - MyInAppBrowser(); - }, - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const Text( - "Lier compte", - style: TextStyle( - fontFamily: 'DMSans', - color: Colors.white, - fontSize: 18, - fontWeight: FontWeight.w700), - ), - Image.asset( - 'assets/images/spotify_logo.png', - height: 25, - width: 25, - fit: BoxFit.cover, - ), - ], - )), - ), - ], - )), - const SizedBox( - height: 30, - ), - ClipRRect( - borderRadius: BorderRadius.circular(22), - child: Material( - child: InkWell( - highlightColor: Colors.grey.shade100, - splashColor: Color(0xFF406DE1), - onTap: (){ - checkInformations(userNameTextField.text, passwordTextField.text, passwordConfirmTextField.text); - - }, - child:Ink( - child: Align( - alignment: Alignment.center, - child: Icon( - Icons.check, - color: Color(0xFF406DE1), - size: 60.0, - ), - ), - padding: EdgeInsets.fromLTRB(0, 10, 0, 0), - width: 83, - height: 83, - decoration: BoxDecoration( - color: Colors.white, // Set rounded corner radius - boxShadow: [ - BoxShadow( - color: Colors.black.withOpacity(0.3), - spreadRadius: 5, - blurRadius: 7, - offset: const Offset( - 0, 3), // changes position of shadow + child: const Align( + alignment: Alignment.center, + child: Icon( + Icons.check, + color: Color(0xFF406DE1), + size: 60.0, ), - ], + ), ), - ), ), ), - ), - const SizedBox( - height: 100, - ), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const Text('Tu as déjà un compte ?', - style: TextStyle( - color: Colors.white, - fontWeight: FontWeight.normal, - fontSize: 17)), - GestureDetector( - onTap: () { - Navigator.of(context).push( - PageTransition( - type: PageTransitionType.fade, - childCurrent: widget, - child: const SignInPage()), - ); - }, - child: const Text( - ' se connecter', - style: TextStyle( - color: Color(0xFF406DE1), - fontWeight: FontWeight.normal, - fontSize: 16), + const SizedBox( + height: 100, + ), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text('Tu as déjà un compte ?', + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.normal, + fontSize: 17)), + GestureDetector( + onTap: () { + Navigator.of(context).push( + PageTransition( + type: PageTransitionType.fade, + childCurrent: widget, + child: const SignInPage()), + ); + }, + child: const Text( + ' se connecter', + style: TextStyle( + color: Color(0xFF406DE1), + fontWeight: FontWeight.normal, + fontSize: 16), + ), ), - ), - ], - ), - const SizedBox( - height: 60, - ), - ], - ), - - ], - ), - ); + ], + ), + const SizedBox( + height: 60, + ) + ]) + ])); } - - Future checkInformations(String username, String password, String confirmPassword) async { - if(username == ""){ - Notify(2, context); - } - else if(! await MyApp().controller.searchByUsername(username)){ - Notify(0, context); - } - if(password == "" || confirmPassword == ""){ - Notify(4, context); - } - else if(password.length <8){ - Notify(3, context); + Future checkInformations( + String username, String password, String confirmPassword) async { + if (username == "") { + notify(2, context); + } else if (!await MyApp.controller.searchByUsername(username)) { + notify(0, context); } - else if(password != confirmPassword){ - Notify(1, context); - } - else{ - MyApp().controller.save(User(username, password)); + if (password == "" || confirmPassword == "") { + notify(4, context); + } else if (password.length < 8) { + notify(3, context); + } else if (password != confirmPassword) { + notify(1, context); + } else { + MyApp.controller.save(User(username, password)); Navigator.of(context).push( PageTransition( - duration: Duration(milliseconds: 300), - reverseDuration: Duration(milliseconds: 300), + duration: const Duration(milliseconds: 300), + reverseDuration: const Duration(milliseconds: 300), type: PageTransitionType.leftToRightJoined, childCurrent: widget, - child: HomePage()),); - + child: HomePage()), + ); } - } - } diff --git a/Sources/dafl_project_flutter/linux/.gitignore b/Sources/dafl_project_flutter/linux/.gitignore deleted file mode 100644 index d3896c9..0000000 --- a/Sources/dafl_project_flutter/linux/.gitignore +++ /dev/null @@ -1 +0,0 @@ -flutter/ephemeral diff --git a/Sources/dafl_project_flutter/linux/CMakeLists.txt b/Sources/dafl_project_flutter/linux/CMakeLists.txt deleted file mode 100644 index 8795aab..0000000 --- a/Sources/dafl_project_flutter/linux/CMakeLists.txt +++ /dev/null @@ -1,138 +0,0 @@ -# Project-level configuration. -cmake_minimum_required(VERSION 3.10) -project(runner LANGUAGES CXX) - -# The name of the executable created for the application. Change this to change -# the on-disk name of your application. -set(BINARY_NAME "dafl_project_flutter") -# The unique GTK application identifier for this application. See: -# https://wiki.gnome.org/HowDoI/ChooseApplicationID -set(APPLICATION_ID "com.example.dafl_project_flutter") - -# Explicitly opt in to modern CMake behaviors to avoid warnings with recent -# versions of CMake. -cmake_policy(SET CMP0063 NEW) - -# Load bundled libraries from the lib/ directory relative to the binary. -set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") - -# Root filesystem for cross-building. -if(FLUTTER_TARGET_PLATFORM_SYSROOT) - set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) - set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) - set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) - set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -endif() - -# Define build configuration options. -if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - set(CMAKE_BUILD_TYPE "Debug" CACHE - STRING "Flutter build mode" FORCE) - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS - "Debug" "Profile" "Release") -endif() - -# Compilation settings that should be applied to most targets. -# -# Be cautious about adding new options here, as plugins use this function by -# default. In most cases, you should add new options to specific targets instead -# of modifying this function. -function(APPLY_STANDARD_SETTINGS TARGET) - target_compile_features(${TARGET} PUBLIC cxx_std_14) - target_compile_options(${TARGET} PRIVATE -Wall -Werror) - target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") - target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") -endfunction() - -# Flutter library and tool build rules. -set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") -add_subdirectory(${FLUTTER_MANAGED_DIR}) - -# System-level dependencies. -find_package(PkgConfig REQUIRED) -pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) - -add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") - -# Define the application target. To change its name, change BINARY_NAME above, -# not the value here, or `flutter run` will no longer work. -# -# Any new source files that you add to the application should be added here. -add_executable(${BINARY_NAME} - "main.cc" - "my_application.cc" - "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" -) - -# Apply the standard set of build settings. This can be removed for applications -# that need different build settings. -apply_standard_settings(${BINARY_NAME}) - -# Add dependency libraries. Add any application-specific dependencies here. -target_link_libraries(${BINARY_NAME} PRIVATE flutter) -target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) - -# Run the Flutter tool portions of the build. This must not be removed. -add_dependencies(${BINARY_NAME} flutter_assemble) - -# Only the install-generated bundle's copy of the executable will launch -# correctly, since the resources must in the right relative locations. To avoid -# people trying to run the unbundled copy, put it in a subdirectory instead of -# the default top-level location. -set_target_properties(${BINARY_NAME} - PROPERTIES - RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" -) - -# Generated plugin build rules, which manage building the plugins and adding -# them to the application. -include(flutter/generated_plugins.cmake) - - -# === Installation === -# By default, "installing" just makes a relocatable bundle in the build -# directory. -set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) -endif() - -# Start with a clean build bundle directory every time. -install(CODE " - file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") - " COMPONENT Runtime) - -set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") -set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") - -install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) - -foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) - install(FILES "${bundled_library}" - DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) -endforeach(bundled_library) - -# Fully re-copy the assets directory on each build to avoid having stale files -# from a previous install. -set(FLUTTER_ASSET_DIR_NAME "flutter_assets") -install(CODE " - file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") - " COMPONENT Runtime) -install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" - DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) - -# Install the AOT library on non-Debug builds only. -if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") - install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) -endif() diff --git a/Sources/dafl_project_flutter/linux/flutter/CMakeLists.txt b/Sources/dafl_project_flutter/linux/flutter/CMakeLists.txt deleted file mode 100644 index d5bd016..0000000 --- a/Sources/dafl_project_flutter/linux/flutter/CMakeLists.txt +++ /dev/null @@ -1,88 +0,0 @@ -# This file controls Flutter-level build steps. It should not be edited. -cmake_minimum_required(VERSION 3.10) - -set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") - -# Configuration provided via flutter tool. -include(${EPHEMERAL_DIR}/generated_config.cmake) - -# TODO: Move the rest of this into files in ephemeral. See -# https://github.com/flutter/flutter/issues/57146. - -# Serves the same purpose as list(TRANSFORM ... PREPEND ...), -# which isn't available in 3.10. -function(list_prepend LIST_NAME PREFIX) - set(NEW_LIST "") - foreach(element ${${LIST_NAME}}) - list(APPEND NEW_LIST "${PREFIX}${element}") - endforeach(element) - set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) -endfunction() - -# === Flutter Library === -# System-level dependencies. -find_package(PkgConfig REQUIRED) -pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) -pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) -pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) - -set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") - -# Published to parent scope for install step. -set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) -set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) -set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) -set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) - -list(APPEND FLUTTER_LIBRARY_HEADERS - "fl_basic_message_channel.h" - "fl_binary_codec.h" - "fl_binary_messenger.h" - "fl_dart_project.h" - "fl_engine.h" - "fl_json_message_codec.h" - "fl_json_method_codec.h" - "fl_message_codec.h" - "fl_method_call.h" - "fl_method_channel.h" - "fl_method_codec.h" - "fl_method_response.h" - "fl_plugin_registrar.h" - "fl_plugin_registry.h" - "fl_standard_message_codec.h" - "fl_standard_method_codec.h" - "fl_string_codec.h" - "fl_value.h" - "fl_view.h" - "flutter_linux.h" -) -list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") -add_library(flutter INTERFACE) -target_include_directories(flutter INTERFACE - "${EPHEMERAL_DIR}" -) -target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") -target_link_libraries(flutter INTERFACE - PkgConfig::GTK - PkgConfig::GLIB - PkgConfig::GIO -) -add_dependencies(flutter flutter_assemble) - -# === Flutter tool backend === -# _phony_ is a non-existent file to force this command to run every time, -# since currently there's no way to get a full input/output list from the -# flutter tool. -add_custom_command( - OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} - ${CMAKE_CURRENT_BINARY_DIR}/_phony_ - COMMAND ${CMAKE_COMMAND} -E env - ${FLUTTER_TOOL_ENVIRONMENT} - "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" - ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} - VERBATIM -) -add_custom_target(flutter_assemble DEPENDS - "${FLUTTER_LIBRARY}" - ${FLUTTER_LIBRARY_HEADERS} -) diff --git a/Sources/dafl_project_flutter/linux/flutter/generated_plugin_registrant.cc b/Sources/dafl_project_flutter/linux/flutter/generated_plugin_registrant.cc deleted file mode 100644 index e71a16d..0000000 --- a/Sources/dafl_project_flutter/linux/flutter/generated_plugin_registrant.cc +++ /dev/null @@ -1,11 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#include "generated_plugin_registrant.h" - - -void fl_register_plugins(FlPluginRegistry* registry) { -} diff --git a/Sources/dafl_project_flutter/linux/flutter/generated_plugin_registrant.h b/Sources/dafl_project_flutter/linux/flutter/generated_plugin_registrant.h deleted file mode 100644 index e0f0a47..0000000 --- a/Sources/dafl_project_flutter/linux/flutter/generated_plugin_registrant.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#ifndef GENERATED_PLUGIN_REGISTRANT_ -#define GENERATED_PLUGIN_REGISTRANT_ - -#include - -// Registers Flutter plugins. -void fl_register_plugins(FlPluginRegistry* registry); - -#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/Sources/dafl_project_flutter/linux/flutter/generated_plugins.cmake b/Sources/dafl_project_flutter/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2e1de87..0000000 --- a/Sources/dafl_project_flutter/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/Sources/dafl_project_flutter/linux/main.cc b/Sources/dafl_project_flutter/linux/main.cc deleted file mode 100644 index e7c5c54..0000000 --- a/Sources/dafl_project_flutter/linux/main.cc +++ /dev/null @@ -1,6 +0,0 @@ -#include "my_application.h" - -int main(int argc, char** argv) { - g_autoptr(MyApplication) app = my_application_new(); - return g_application_run(G_APPLICATION(app), argc, argv); -} diff --git a/Sources/dafl_project_flutter/linux/my_application.cc b/Sources/dafl_project_flutter/linux/my_application.cc deleted file mode 100644 index 2831c75..0000000 --- a/Sources/dafl_project_flutter/linux/my_application.cc +++ /dev/null @@ -1,104 +0,0 @@ -#include "my_application.h" - -#include -#ifdef GDK_WINDOWING_X11 -#include -#endif - -#include "flutter/generated_plugin_registrant.h" - -struct _MyApplication { - GtkApplication parent_instance; - char** dart_entrypoint_arguments; -}; - -G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) - -// Implements GApplication::activate. -static void my_application_activate(GApplication* application) { - MyApplication* self = MY_APPLICATION(application); - GtkWindow* window = - GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); - - // Use a header bar when running in GNOME as this is the common style used - // by applications and is the setup most users will be using (e.g. Ubuntu - // desktop). - // If running on X and not using GNOME then just use a traditional title bar - // in case the window manager does more exotic layout, e.g. tiling. - // If running on Wayland assume the header bar will work (may need changing - // if future cases occur). - gboolean use_header_bar = TRUE; -#ifdef GDK_WINDOWING_X11 - GdkScreen* screen = gtk_window_get_screen(window); - if (GDK_IS_X11_SCREEN(screen)) { - const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); - if (g_strcmp0(wm_name, "GNOME Shell") != 0) { - use_header_bar = FALSE; - } - } -#endif - if (use_header_bar) { - GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); - gtk_widget_show(GTK_WIDGET(header_bar)); - gtk_header_bar_set_title(header_bar, "dafl_project_flutter"); - gtk_header_bar_set_show_close_button(header_bar, TRUE); - gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); - } else { - gtk_window_set_title(window, "dafl_project_flutter"); - } - - gtk_window_set_default_size(window, 1280, 720); - gtk_widget_show(GTK_WIDGET(window)); - - g_autoptr(FlDartProject) project = fl_dart_project_new(); - fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); - - FlView* view = fl_view_new(project); - gtk_widget_show(GTK_WIDGET(view)); - gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); - - fl_register_plugins(FL_PLUGIN_REGISTRY(view)); - - gtk_widget_grab_focus(GTK_WIDGET(view)); -} - -// Implements GApplication::local_command_line. -static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { - MyApplication* self = MY_APPLICATION(application); - // Strip out the first argument as it is the binary name. - self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); - - g_autoptr(GError) error = nullptr; - if (!g_application_register(application, nullptr, &error)) { - g_warning("Failed to register: %s", error->message); - *exit_status = 1; - return TRUE; - } - - g_application_activate(application); - *exit_status = 0; - - return TRUE; -} - -// Implements GObject::dispose. -static void my_application_dispose(GObject* object) { - MyApplication* self = MY_APPLICATION(object); - g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); - G_OBJECT_CLASS(my_application_parent_class)->dispose(object); -} - -static void my_application_class_init(MyApplicationClass* klass) { - G_APPLICATION_CLASS(klass)->activate = my_application_activate; - G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; - G_OBJECT_CLASS(klass)->dispose = my_application_dispose; -} - -static void my_application_init(MyApplication* self) {} - -MyApplication* my_application_new() { - return MY_APPLICATION(g_object_new(my_application_get_type(), - "application-id", APPLICATION_ID, - "flags", G_APPLICATION_NON_UNIQUE, - nullptr)); -} diff --git a/Sources/dafl_project_flutter/linux/my_application.h b/Sources/dafl_project_flutter/linux/my_application.h deleted file mode 100644 index 72271d5..0000000 --- a/Sources/dafl_project_flutter/linux/my_application.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef FLUTTER_MY_APPLICATION_H_ -#define FLUTTER_MY_APPLICATION_H_ - -#include - -G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, - GtkApplication) - -/** - * my_application_new: - * - * Creates a new Flutter-based application. - * - * Returns: a new #MyApplication. - */ -MyApplication* my_application_new(); - -#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/Sources/dafl_project_flutter/macos/.gitignore b/Sources/dafl_project_flutter/macos/.gitignore deleted file mode 100644 index 746adbb..0000000 --- a/Sources/dafl_project_flutter/macos/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# Flutter-related -**/Flutter/ephemeral/ -**/Pods/ - -# Xcode-related -**/dgph -**/xcuserdata/ diff --git a/Sources/dafl_project_flutter/macos/Flutter/Flutter-Debug.xcconfig b/Sources/dafl_project_flutter/macos/Flutter/Flutter-Debug.xcconfig deleted file mode 100644 index 4b81f9b..0000000 --- a/Sources/dafl_project_flutter/macos/Flutter/Flutter-Debug.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" -#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/Sources/dafl_project_flutter/macos/Flutter/Flutter-Release.xcconfig b/Sources/dafl_project_flutter/macos/Flutter/Flutter-Release.xcconfig deleted file mode 100644 index 5caa9d1..0000000 --- a/Sources/dafl_project_flutter/macos/Flutter/Flutter-Release.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" -#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/Sources/dafl_project_flutter/macos/Flutter/GeneratedPluginRegistrant.swift b/Sources/dafl_project_flutter/macos/Flutter/GeneratedPluginRegistrant.swift deleted file mode 100644 index 3557088..0000000 --- a/Sources/dafl_project_flutter/macos/Flutter/GeneratedPluginRegistrant.swift +++ /dev/null @@ -1,14 +0,0 @@ -// -// Generated file. Do not edit. -// - -import FlutterMacOS -import Foundation - -import geolocator_apple -import path_provider_macos - -func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { - GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin")) - PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) -} diff --git a/Sources/dafl_project_flutter/macos/Flutter/ephemeral/Flutter-Generated.xcconfig b/Sources/dafl_project_flutter/macos/Flutter/ephemeral/Flutter-Generated.xcconfig deleted file mode 100644 index ff87a0b..0000000 --- a/Sources/dafl_project_flutter/macos/Flutter/ephemeral/Flutter-Generated.xcconfig +++ /dev/null @@ -1,11 +0,0 @@ -// This is a generated file; do not edit or check into version control. -FLUTTER_ROOT=/Users/delanierlucas/flutter -FLUTTER_APPLICATION_PATH=/Users/delanierlucas/StudioProjects/dafl_musicv6/Sources/dafl_project_flutter -COCOAPODS_PARALLEL_CODE_SIGN=true -FLUTTER_BUILD_DIR=build -FLUTTER_BUILD_NAME=1.0.0 -FLUTTER_BUILD_NUMBER=1 -DART_OBFUSCATION=false -TRACK_WIDGET_CREATION=true -TREE_SHAKE_ICONS=false -PACKAGE_CONFIG=.dart_tool/package_config.json diff --git a/Sources/dafl_project_flutter/macos/Flutter/ephemeral/flutter_export_environment.sh b/Sources/dafl_project_flutter/macos/Flutter/ephemeral/flutter_export_environment.sh deleted file mode 100755 index facbe1c..0000000 --- a/Sources/dafl_project_flutter/macos/Flutter/ephemeral/flutter_export_environment.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -# This is a generated file; do not edit or check into version control. -export "FLUTTER_ROOT=/Users/delanierlucas/flutter" -export "FLUTTER_APPLICATION_PATH=/Users/delanierlucas/StudioProjects/dafl_musicv6/Sources/dafl_project_flutter" -export "COCOAPODS_PARALLEL_CODE_SIGN=true" -export "FLUTTER_BUILD_DIR=build" -export "FLUTTER_BUILD_NAME=1.0.0" -export "FLUTTER_BUILD_NUMBER=1" -export "DART_OBFUSCATION=false" -export "TRACK_WIDGET_CREATION=true" -export "TREE_SHAKE_ICONS=false" -export "PACKAGE_CONFIG=.dart_tool/package_config.json" diff --git a/Sources/dafl_project_flutter/macos/Podfile b/Sources/dafl_project_flutter/macos/Podfile deleted file mode 100644 index dade8df..0000000 --- a/Sources/dafl_project_flutter/macos/Podfile +++ /dev/null @@ -1,40 +0,0 @@ -platform :osx, '10.11' - -# CocoaPods analytics sends network stats synchronously affecting flutter build latency. -ENV['COCOAPODS_DISABLE_STATS'] = 'true' - -project 'Runner', { - 'Debug' => :debug, - 'Profile' => :release, - 'Release' => :release, -} - -def flutter_root - generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) - unless File.exist?(generated_xcode_build_settings_path) - raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" - end - - File.foreach(generated_xcode_build_settings_path) do |line| - matches = line.match(/FLUTTER_ROOT\=(.*)/) - return matches[1].strip if matches - end - raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" -end - -require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - -flutter_macos_podfile_setup - -target 'Runner' do - use_frameworks! - use_modular_headers! - - flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_macos_build_settings(target) - end -end diff --git a/Sources/dafl_project_flutter/macos/Runner.xcodeproj/project.pbxproj b/Sources/dafl_project_flutter/macos/Runner.xcodeproj/project.pbxproj deleted file mode 100644 index 7ea8b93..0000000 --- a/Sources/dafl_project_flutter/macos/Runner.xcodeproj/project.pbxproj +++ /dev/null @@ -1,572 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 51; - objects = { - -/* Begin PBXAggregateTarget section */ - 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; - buildPhases = ( - 33CC111E2044C6BF0003C045 /* ShellScript */, - ); - dependencies = ( - ); - name = "Flutter Assemble"; - productName = FLX; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; - 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; - 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; - 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; - 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33CC10E52044A3C60003C045 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 33CC111A2044C6BA0003C045; - remoteInfo = FLX; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 33CC110E2044A8840003C045 /* Bundle Framework */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Bundle Framework"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; - 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; - 33CC10ED2044A3C60003C045 /* dafl_project_flutter.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "dafl_project_flutter.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; - 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; - 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; - 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; - 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; - 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; - 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; - 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; - 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; - 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 33CC10EA2044A3C60003C045 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 33BA886A226E78AF003329D5 /* Configs */ = { - isa = PBXGroup; - children = ( - 33E5194F232828860026EE4D /* AppInfo.xcconfig */, - 9740EEB21CF90195004384FC /* Debug.xcconfig */, - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, - 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, - ); - path = Configs; - sourceTree = ""; - }; - 33CC10E42044A3C60003C045 = { - isa = PBXGroup; - children = ( - 33FAB671232836740065AC1E /* Runner */, - 33CEB47122A05771004F2AC0 /* Flutter */, - 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, - ); - sourceTree = ""; - }; - 33CC10EE2044A3C60003C045 /* Products */ = { - isa = PBXGroup; - children = ( - 33CC10ED2044A3C60003C045 /* dafl_project_flutter.app */, - ); - name = Products; - sourceTree = ""; - }; - 33CC11242044D66E0003C045 /* Resources */ = { - isa = PBXGroup; - children = ( - 33CC10F22044A3C60003C045 /* Assets.xcassets */, - 33CC10F42044A3C60003C045 /* MainMenu.xib */, - 33CC10F72044A3C60003C045 /* Info.plist */, - ); - name = Resources; - path = ..; - sourceTree = ""; - }; - 33CEB47122A05771004F2AC0 /* Flutter */ = { - isa = PBXGroup; - children = ( - 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, - 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, - 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, - 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, - ); - path = Flutter; - sourceTree = ""; - }; - 33FAB671232836740065AC1E /* Runner */ = { - isa = PBXGroup; - children = ( - 33CC10F02044A3C60003C045 /* AppDelegate.swift */, - 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, - 33E51913231747F40026EE4D /* DebugProfile.entitlements */, - 33E51914231749380026EE4D /* Release.entitlements */, - 33CC11242044D66E0003C045 /* Resources */, - 33BA886A226E78AF003329D5 /* Configs */, - ); - path = Runner; - sourceTree = ""; - }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 33CC10EC2044A3C60003C045 /* Runner */ = { - isa = PBXNativeTarget; - buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; - buildPhases = ( - 33CC10E92044A3C60003C045 /* Sources */, - 33CC10EA2044A3C60003C045 /* Frameworks */, - 33CC10EB2044A3C60003C045 /* Resources */, - 33CC110E2044A8840003C045 /* Bundle Framework */, - 3399D490228B24CF009A79C7 /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - 33CC11202044C79F0003C045 /* PBXTargetDependency */, - ); - name = Runner; - productName = Runner; - productReference = 33CC10ED2044A3C60003C045 /* dafl_project_flutter.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 33CC10E52044A3C60003C045 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 1300; - ORGANIZATIONNAME = ""; - TargetAttributes = { - 33CC10EC2044A3C60003C045 = { - CreatedOnToolsVersion = 9.2; - LastSwiftMigration = 1100; - ProvisioningStyle = Automatic; - SystemCapabilities = { - com.apple.Sandbox = { - enabled = 1; - }; - }; - }; - 33CC111A2044C6BA0003C045 = { - CreatedOnToolsVersion = 9.2; - ProvisioningStyle = Manual; - }; - }; - }; - buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 33CC10E42044A3C60003C045; - productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 33CC10EC2044A3C60003C045 /* Runner */, - 33CC111A2044C6BA0003C045 /* Flutter Assemble */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 33CC10EB2044A3C60003C045 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, - 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 3399D490228B24CF009A79C7 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; - }; - 33CC111E2044C6BF0003C045 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - Flutter/ephemeral/FlutterInputs.xcfilelist, - ); - inputPaths = ( - Flutter/ephemeral/tripwire, - ); - outputFileListPaths = ( - Flutter/ephemeral/FlutterOutputs.xcfilelist, - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 33CC10E92044A3C60003C045 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, - 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, - 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; - targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - 33CC10F52044A3C60003C045 /* Base */, - ); - name = MainMenu.xib; - path = Runner; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 338D0CE9231458BD00FA5F75 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - }; - name = Profile; - }; - 338D0CEA231458BD00FA5F75 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - }; - name = Profile; - }; - 338D0CEB231458BD00FA5F75 /* Profile */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Manual; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Profile; - }; - 33CC10F92044A3C60003C045 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 33CC10FA2044A3C60003C045 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - }; - name = Release; - }; - 33CC10FC2044A3C60003C045 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 33CC10FD2044A3C60003C045 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; - 33CC111C2044C6BA0003C045 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Manual; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 33CC111D2044C6BA0003C045 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33CC10F92044A3C60003C045 /* Debug */, - 33CC10FA2044A3C60003C045 /* Release */, - 338D0CE9231458BD00FA5F75 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33CC10FC2044A3C60003C045 /* Debug */, - 33CC10FD2044A3C60003C045 /* Release */, - 338D0CEA231458BD00FA5F75 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33CC111C2044C6BA0003C045 /* Debug */, - 33CC111D2044C6BA0003C045 /* Release */, - 338D0CEB231458BD00FA5F75 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 33CC10E52044A3C60003C045 /* Project object */; -} diff --git a/Sources/dafl_project_flutter/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Sources/dafl_project_flutter/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/Sources/dafl_project_flutter/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/Sources/dafl_project_flutter/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/Sources/dafl_project_flutter/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme deleted file mode 100644 index 83c0754..0000000 --- a/Sources/dafl_project_flutter/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Sources/dafl_project_flutter/macos/Runner.xcworkspace/contents.xcworkspacedata b/Sources/dafl_project_flutter/macos/Runner.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 1d526a1..0000000 --- a/Sources/dafl_project_flutter/macos/Runner.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Sources/dafl_project_flutter/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Sources/dafl_project_flutter/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/Sources/dafl_project_flutter/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/Sources/dafl_project_flutter/macos/Runner/AppDelegate.swift b/Sources/dafl_project_flutter/macos/Runner/AppDelegate.swift deleted file mode 100644 index d53ef64..0000000 --- a/Sources/dafl_project_flutter/macos/Runner/AppDelegate.swift +++ /dev/null @@ -1,9 +0,0 @@ -import Cocoa -import FlutterMacOS - -@NSApplicationMain -class AppDelegate: FlutterAppDelegate { - override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { - return true - } -} diff --git a/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index a2ec33f..0000000 --- a/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "images" : [ - { - "size" : "16x16", - "idiom" : "mac", - "filename" : "app_icon_16.png", - "scale" : "1x" - }, - { - "size" : "16x16", - "idiom" : "mac", - "filename" : "app_icon_32.png", - "scale" : "2x" - }, - { - "size" : "32x32", - "idiom" : "mac", - "filename" : "app_icon_32.png", - "scale" : "1x" - }, - { - "size" : "32x32", - "idiom" : "mac", - "filename" : "app_icon_64.png", - "scale" : "2x" - }, - { - "size" : "128x128", - "idiom" : "mac", - "filename" : "app_icon_128.png", - "scale" : "1x" - }, - { - "size" : "128x128", - "idiom" : "mac", - "filename" : "app_icon_256.png", - "scale" : "2x" - }, - { - "size" : "256x256", - "idiom" : "mac", - "filename" : "app_icon_256.png", - "scale" : "1x" - }, - { - "size" : "256x256", - "idiom" : "mac", - "filename" : "app_icon_512.png", - "scale" : "2x" - }, - { - "size" : "512x512", - "idiom" : "mac", - "filename" : "app_icon_512.png", - "scale" : "1x" - }, - { - "size" : "512x512", - "idiom" : "mac", - "filename" : "app_icon_1024.png", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png deleted file mode 100644 index 82b6f9d..0000000 Binary files a/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png and /dev/null differ diff --git a/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png deleted file mode 100644 index 13b35eb..0000000 Binary files a/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png and /dev/null differ diff --git a/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png deleted file mode 100644 index 0a3f5fa..0000000 Binary files a/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png and /dev/null differ diff --git a/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png deleted file mode 100644 index bdb5722..0000000 Binary files a/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png and /dev/null differ diff --git a/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png deleted file mode 100644 index f083318..0000000 Binary files a/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png and /dev/null differ diff --git a/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png deleted file mode 100644 index 326c0e7..0000000 Binary files a/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png and /dev/null differ diff --git a/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png deleted file mode 100644 index 2f1632c..0000000 Binary files a/Sources/dafl_project_flutter/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png and /dev/null differ diff --git a/Sources/dafl_project_flutter/macos/Runner/Base.lproj/MainMenu.xib b/Sources/dafl_project_flutter/macos/Runner/Base.lproj/MainMenu.xib deleted file mode 100644 index 80e867a..0000000 --- a/Sources/dafl_project_flutter/macos/Runner/Base.lproj/MainMenu.xib +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Sources/dafl_project_flutter/macos/Runner/Configs/AppInfo.xcconfig b/Sources/dafl_project_flutter/macos/Runner/Configs/AppInfo.xcconfig deleted file mode 100644 index b088dbe..0000000 --- a/Sources/dafl_project_flutter/macos/Runner/Configs/AppInfo.xcconfig +++ /dev/null @@ -1,14 +0,0 @@ -// Application-level settings for the Runner target. -// -// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the -// future. If not, the values below would default to using the project name when this becomes a -// 'flutter create' template. - -// The application's name. By default this is also the title of the Flutter window. -PRODUCT_NAME = dafl_project_flutter - -// The application's bundle identifier -PRODUCT_BUNDLE_IDENTIFIER = com.example.daflProjectFlutter - -// The copyright displayed in application information -PRODUCT_COPYRIGHT = Copyright © 2022 com.example. All rights reserved. diff --git a/Sources/dafl_project_flutter/macos/Runner/Configs/Debug.xcconfig b/Sources/dafl_project_flutter/macos/Runner/Configs/Debug.xcconfig deleted file mode 100644 index 36b0fd9..0000000 --- a/Sources/dafl_project_flutter/macos/Runner/Configs/Debug.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "../../Flutter/Flutter-Debug.xcconfig" -#include "Warnings.xcconfig" diff --git a/Sources/dafl_project_flutter/macos/Runner/Configs/Release.xcconfig b/Sources/dafl_project_flutter/macos/Runner/Configs/Release.xcconfig deleted file mode 100644 index dff4f49..0000000 --- a/Sources/dafl_project_flutter/macos/Runner/Configs/Release.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "../../Flutter/Flutter-Release.xcconfig" -#include "Warnings.xcconfig" diff --git a/Sources/dafl_project_flutter/macos/Runner/Configs/Warnings.xcconfig b/Sources/dafl_project_flutter/macos/Runner/Configs/Warnings.xcconfig deleted file mode 100644 index 42bcbf4..0000000 --- a/Sources/dafl_project_flutter/macos/Runner/Configs/Warnings.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings -GCC_WARN_UNDECLARED_SELECTOR = YES -CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES -CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE -CLANG_WARN__DUPLICATE_METHOD_MATCH = YES -CLANG_WARN_PRAGMA_PACK = YES -CLANG_WARN_STRICT_PROTOTYPES = YES -CLANG_WARN_COMMA = YES -GCC_WARN_STRICT_SELECTOR_MATCH = YES -CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES -CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES -GCC_WARN_SHADOW = YES -CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/Sources/dafl_project_flutter/macos/Runner/DebugProfile.entitlements b/Sources/dafl_project_flutter/macos/Runner/DebugProfile.entitlements deleted file mode 100644 index dddb8a3..0000000 --- a/Sources/dafl_project_flutter/macos/Runner/DebugProfile.entitlements +++ /dev/null @@ -1,12 +0,0 @@ - - - - - com.apple.security.app-sandbox - - com.apple.security.cs.allow-jit - - com.apple.security.network.server - - - diff --git a/Sources/dafl_project_flutter/macos/Runner/Info.plist b/Sources/dafl_project_flutter/macos/Runner/Info.plist deleted file mode 100644 index 4789daa..0000000 --- a/Sources/dafl_project_flutter/macos/Runner/Info.plist +++ /dev/null @@ -1,32 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIconFile - - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - $(FLUTTER_BUILD_NAME) - CFBundleVersion - $(FLUTTER_BUILD_NUMBER) - LSMinimumSystemVersion - $(MACOSX_DEPLOYMENT_TARGET) - NSHumanReadableCopyright - $(PRODUCT_COPYRIGHT) - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/Sources/dafl_project_flutter/macos/Runner/MainFlutterWindow.swift b/Sources/dafl_project_flutter/macos/Runner/MainFlutterWindow.swift deleted file mode 100644 index 2722837..0000000 --- a/Sources/dafl_project_flutter/macos/Runner/MainFlutterWindow.swift +++ /dev/null @@ -1,15 +0,0 @@ -import Cocoa -import FlutterMacOS - -class MainFlutterWindow: NSWindow { - override func awakeFromNib() { - let flutterViewController = FlutterViewController.init() - let windowFrame = self.frame - self.contentViewController = flutterViewController - self.setFrame(windowFrame, display: true) - - RegisterGeneratedPlugins(registry: flutterViewController) - - super.awakeFromNib() - } -} diff --git a/Sources/dafl_project_flutter/macos/Runner/Release.entitlements b/Sources/dafl_project_flutter/macos/Runner/Release.entitlements deleted file mode 100644 index 852fa1a..0000000 --- a/Sources/dafl_project_flutter/macos/Runner/Release.entitlements +++ /dev/null @@ -1,8 +0,0 @@ - - - - - com.apple.security.app-sandbox - - - diff --git a/Sources/dafl_project_flutter/pubspec.lock b/Sources/dafl_project_flutter/pubspec.lock index 85a066d..ff5cc49 100644 --- a/Sources/dafl_project_flutter/pubspec.lock +++ b/Sources/dafl_project_flutter/pubspec.lock @@ -191,6 +191,48 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "10.2.1" + geolocator: + dependency: "direct main" + description: + name: geolocator + url: "https://pub.dartlang.org" + source: hosted + version: "9.0.2" + geolocator_android: + dependency: transitive + description: + name: geolocator_android + url: "https://pub.dartlang.org" + source: hosted + version: "4.1.4" + geolocator_apple: + dependency: transitive + description: + name: geolocator_apple + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.3" + geolocator_platform_interface: + dependency: transitive + description: + name: geolocator_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.7" + geolocator_web: + dependency: transitive + description: + name: geolocator_web + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.6" + geolocator_windows: + dependency: transitive + description: + name: geolocator_windows + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.1" graphs: dependency: transitive description: diff --git a/Sources/dafl_project_flutter/pubspec.yaml b/Sources/dafl_project_flutter/pubspec.yaml index f2c68c1..6849976 100644 --- a/Sources/dafl_project_flutter/pubspec.yaml +++ b/Sources/dafl_project_flutter/pubspec.yaml @@ -26,7 +26,6 @@ dependencies: postgresql2: ^1.0.3 path_provider: ^2.0.11 font_awesome_flutter: ^10.2.1 - http: ^0.13.5 geolocator: ^9.0.2 dev_dependencies: @@ -40,7 +39,6 @@ dev_dependencies: flutter_native_splash: android: true ios: true - web: false color: "#141414" #background_image: "assets/images/background_blur.png" diff --git a/Sources/dafl_project_flutter/test/testFileRead.dart b/Sources/dafl_project_flutter/test/testFileRead.dart deleted file mode 100644 index 5904fdd..0000000 --- a/Sources/dafl_project_flutter/test/testFileRead.dart +++ /dev/null @@ -1,15 +0,0 @@ -import 'package:dafl_project_flutter/main.dart'; -import 'package:dafl_project_flutter/persistence/database_connexion.dart'; -import 'package:flutter/cupertino.dart'; - - -Future main() async { - MyApp mainApp = MyApp(); - - runApp(mainApp); - - DatabaseConnexion d = DatabaseConnexion(); - - DatabaseConnexion.initConnexion(); - -} \ No newline at end of file diff --git a/Sources/dafl_project_flutter/test/widget_test.dart b/Sources/dafl_project_flutter/test/widget_test.dart deleted file mode 100644 index c894ad9..0000000 --- a/Sources/dafl_project_flutter/test/widget_test.dart +++ /dev/null @@ -1,30 +0,0 @@ -// This is a basic Flutter widget test. -// -// To perform an interaction with a widget in your test, use the WidgetTester -// utility in the flutter_test package. For example, you can send tap and scroll -// gestures. You can also use WidgetTester to find child widgets in the widget -// tree, read text, and verify that the values of widget properties are correct. - -import 'package:flutter/material.dart'; -import 'package:flutter_test/flutter_test.dart'; - -import 'package:dafl_project_flutter/main.dart'; - -void main() { - testWidgets('Counter increments smoke test', (WidgetTester tester) async { - // Build our app and trigger a frame. - await tester.pumpWidget(MyApp()); - - // Verify that our counter starts at 0. - expect(find.text('0'), findsOneWidget); - expect(find.text('1'), findsNothing); - - // Tap the '+' icon and trigger a frame. - await tester.tap(find.byIcon(Icons.add)); - await tester.pump(); - - // Verify that our counter has incremented. - expect(find.text('0'), findsNothing); - expect(find.text('1'), findsOneWidget); - }); -} diff --git a/Sources/dafl_project_flutter/web/favicon.png b/Sources/dafl_project_flutter/web/favicon.png deleted file mode 100644 index 8aaa46a..0000000 Binary files a/Sources/dafl_project_flutter/web/favicon.png and /dev/null differ diff --git a/Sources/dafl_project_flutter/web/icons/Icon-192.png b/Sources/dafl_project_flutter/web/icons/Icon-192.png deleted file mode 100644 index b749bfe..0000000 Binary files a/Sources/dafl_project_flutter/web/icons/Icon-192.png and /dev/null differ diff --git a/Sources/dafl_project_flutter/web/icons/Icon-512.png b/Sources/dafl_project_flutter/web/icons/Icon-512.png deleted file mode 100644 index 88cfd48..0000000 Binary files a/Sources/dafl_project_flutter/web/icons/Icon-512.png and /dev/null differ diff --git a/Sources/dafl_project_flutter/web/icons/Icon-maskable-192.png b/Sources/dafl_project_flutter/web/icons/Icon-maskable-192.png deleted file mode 100644 index eb9b4d7..0000000 Binary files a/Sources/dafl_project_flutter/web/icons/Icon-maskable-192.png and /dev/null differ diff --git a/Sources/dafl_project_flutter/web/icons/Icon-maskable-512.png b/Sources/dafl_project_flutter/web/icons/Icon-maskable-512.png deleted file mode 100644 index d69c566..0000000 Binary files a/Sources/dafl_project_flutter/web/icons/Icon-maskable-512.png and /dev/null differ diff --git a/Sources/dafl_project_flutter/web/index.html b/Sources/dafl_project_flutter/web/index.html deleted file mode 100644 index d2b5cd9..0000000 --- a/Sources/dafl_project_flutter/web/index.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - dafl_project_flutter - - - - - - - - - - diff --git a/Sources/dafl_project_flutter/web/manifest.json b/Sources/dafl_project_flutter/web/manifest.json deleted file mode 100644 index 907c353..0000000 --- a/Sources/dafl_project_flutter/web/manifest.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "dafl_project_flutter", - "short_name": "dafl_project_flutter", - "start_url": ".", - "display": "standalone", - "background_color": "#0175C2", - "theme_color": "#0175C2", - "description": "A new Flutter project.", - "orientation": "portrait-primary", - "prefer_related_applications": false, - "icons": [ - { - "src": "icons/Icon-192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "icons/Icon-512.png", - "sizes": "512x512", - "type": "image/png" - }, - { - "src": "icons/Icon-maskable-192.png", - "sizes": "192x192", - "type": "image/png", - "purpose": "maskable" - }, - { - "src": "icons/Icon-maskable-512.png", - "sizes": "512x512", - "type": "image/png", - "purpose": "maskable" - } - ] -} diff --git a/Sources/dafl_project_flutter/windows/.gitignore b/Sources/dafl_project_flutter/windows/.gitignore deleted file mode 100644 index d492d0d..0000000 --- a/Sources/dafl_project_flutter/windows/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -flutter/ephemeral/ - -# Visual Studio user-specific files. -*.suo -*.user -*.userosscache -*.sln.docstates - -# Visual Studio build-related files. -x64/ -x86/ - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ diff --git a/Sources/dafl_project_flutter/windows/CMakeLists.txt b/Sources/dafl_project_flutter/windows/CMakeLists.txt deleted file mode 100644 index 9f1e408..0000000 --- a/Sources/dafl_project_flutter/windows/CMakeLists.txt +++ /dev/null @@ -1,101 +0,0 @@ -# Project-level configuration. -cmake_minimum_required(VERSION 3.14) -project(dafl_project_flutter LANGUAGES CXX) - -# The name of the executable created for the application. Change this to change -# the on-disk name of your application. -set(BINARY_NAME "dafl_project_flutter") - -# Explicitly opt in to modern CMake behaviors to avoid warnings with recent -# versions of CMake. -cmake_policy(SET CMP0063 NEW) - -# Define build configuration option. -get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) -if(IS_MULTICONFIG) - set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" - CACHE STRING "" FORCE) -else() - if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - set(CMAKE_BUILD_TYPE "Debug" CACHE - STRING "Flutter build mode" FORCE) - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS - "Debug" "Profile" "Release") - endif() -endif() -# Define settings for the Profile build mode. -set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") -set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") -set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") -set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") - -# Use Unicode for all projects. -add_definitions(-DUNICODE -D_UNICODE) - -# Compilation settings that should be applied to most targets. -# -# Be cautious about adding new options here, as plugins use this function by -# default. In most cases, you should add new options to specific targets instead -# of modifying this function. -function(APPLY_STANDARD_SETTINGS TARGET) - target_compile_features(${TARGET} PUBLIC cxx_std_17) - target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") - target_compile_options(${TARGET} PRIVATE /EHsc) - target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") - target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") -endfunction() - -# Flutter library and tool build rules. -set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") -add_subdirectory(${FLUTTER_MANAGED_DIR}) - -# Application build; see runner/CMakeLists.txt. -add_subdirectory("runner") - -# Generated plugin build rules, which manage building the plugins and adding -# them to the application. -include(flutter/generated_plugins.cmake) - - -# === Installation === -# Support files are copied into place next to the executable, so that it can -# run in place. This is done instead of making a separate bundle (as on Linux) -# so that building and running from within Visual Studio will work. -set(BUILD_BUNDLE_DIR "$") -# Make the "install" step default, as it's required to run. -set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) -endif() - -set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") -set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") - -install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) - -if(PLUGIN_BUNDLED_LIBRARIES) - install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" - DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) -endif() - -# Fully re-copy the assets directory on each build to avoid having stale files -# from a previous install. -set(FLUTTER_ASSET_DIR_NAME "flutter_assets") -install(CODE " - file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") - " COMPONENT Runtime) -install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" - DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) - -# Install the AOT library on non-Debug builds only. -install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" - CONFIGURATIONS Profile;Release - COMPONENT Runtime) diff --git a/Sources/dafl_project_flutter/windows/flutter/CMakeLists.txt b/Sources/dafl_project_flutter/windows/flutter/CMakeLists.txt deleted file mode 100644 index 930d207..0000000 --- a/Sources/dafl_project_flutter/windows/flutter/CMakeLists.txt +++ /dev/null @@ -1,104 +0,0 @@ -# This file controls Flutter-level build steps. It should not be edited. -cmake_minimum_required(VERSION 3.14) - -set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") - -# Configuration provided via flutter tool. -include(${EPHEMERAL_DIR}/generated_config.cmake) - -# TODO: Move the rest of this into files in ephemeral. See -# https://github.com/flutter/flutter/issues/57146. -set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") - -# === Flutter Library === -set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") - -# Published to parent scope for install step. -set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) -set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) -set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) -set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) - -list(APPEND FLUTTER_LIBRARY_HEADERS - "flutter_export.h" - "flutter_windows.h" - "flutter_messenger.h" - "flutter_plugin_registrar.h" - "flutter_texture_registrar.h" -) -list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") -add_library(flutter INTERFACE) -target_include_directories(flutter INTERFACE - "${EPHEMERAL_DIR}" -) -target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") -add_dependencies(flutter flutter_assemble) - -# === Wrapper === -list(APPEND CPP_WRAPPER_SOURCES_CORE - "core_implementations.cc" - "standard_codec.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") -list(APPEND CPP_WRAPPER_SOURCES_PLUGIN - "plugin_registrar.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") -list(APPEND CPP_WRAPPER_SOURCES_APP - "flutter_engine.cc" - "flutter_view_controller.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") - -# Wrapper sources needed for a plugin. -add_library(flutter_wrapper_plugin STATIC - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_PLUGIN} -) -apply_standard_settings(flutter_wrapper_plugin) -set_target_properties(flutter_wrapper_plugin PROPERTIES - POSITION_INDEPENDENT_CODE ON) -set_target_properties(flutter_wrapper_plugin PROPERTIES - CXX_VISIBILITY_PRESET hidden) -target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) -target_include_directories(flutter_wrapper_plugin PUBLIC - "${WRAPPER_ROOT}/include" -) -add_dependencies(flutter_wrapper_plugin flutter_assemble) - -# Wrapper sources needed for the runner. -add_library(flutter_wrapper_app STATIC - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_APP} -) -apply_standard_settings(flutter_wrapper_app) -target_link_libraries(flutter_wrapper_app PUBLIC flutter) -target_include_directories(flutter_wrapper_app PUBLIC - "${WRAPPER_ROOT}/include" -) -add_dependencies(flutter_wrapper_app flutter_assemble) - -# === Flutter tool backend === -# _phony_ is a non-existent file to force this command to run every time, -# since currently there's no way to get a full input/output list from the -# flutter tool. -set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") -set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) -add_custom_command( - OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} - ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} - ${CPP_WRAPPER_SOURCES_APP} - ${PHONY_OUTPUT} - COMMAND ${CMAKE_COMMAND} -E env - ${FLUTTER_TOOL_ENVIRONMENT} - "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" - windows-x64 $ - VERBATIM -) -add_custom_target(flutter_assemble DEPENDS - "${FLUTTER_LIBRARY}" - ${FLUTTER_LIBRARY_HEADERS} - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_PLUGIN} - ${CPP_WRAPPER_SOURCES_APP} -) diff --git a/Sources/dafl_project_flutter/windows/flutter/generated_plugin_registrant.cc b/Sources/dafl_project_flutter/windows/flutter/generated_plugin_registrant.cc deleted file mode 100644 index 1ece8f2..0000000 --- a/Sources/dafl_project_flutter/windows/flutter/generated_plugin_registrant.cc +++ /dev/null @@ -1,14 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#include "generated_plugin_registrant.h" - -#include - -void RegisterPlugins(flutter::PluginRegistry* registry) { - GeolocatorWindowsRegisterWithRegistrar( - registry->GetRegistrarForPlugin("GeolocatorWindows")); -} diff --git a/Sources/dafl_project_flutter/windows/flutter/generated_plugin_registrant.h b/Sources/dafl_project_flutter/windows/flutter/generated_plugin_registrant.h deleted file mode 100644 index dc139d8..0000000 --- a/Sources/dafl_project_flutter/windows/flutter/generated_plugin_registrant.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#ifndef GENERATED_PLUGIN_REGISTRANT_ -#define GENERATED_PLUGIN_REGISTRANT_ - -#include - -// Registers Flutter plugins. -void RegisterPlugins(flutter::PluginRegistry* registry); - -#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/Sources/dafl_project_flutter/windows/flutter/generated_plugins.cmake b/Sources/dafl_project_flutter/windows/flutter/generated_plugins.cmake deleted file mode 100644 index 7f101a7..0000000 --- a/Sources/dafl_project_flutter/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - geolocator_windows -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/Sources/dafl_project_flutter/windows/runner/CMakeLists.txt b/Sources/dafl_project_flutter/windows/runner/CMakeLists.txt deleted file mode 100644 index 17411a8..0000000 --- a/Sources/dafl_project_flutter/windows/runner/CMakeLists.txt +++ /dev/null @@ -1,39 +0,0 @@ -cmake_minimum_required(VERSION 3.14) -project(runner LANGUAGES CXX) - -# Define the application target. To change its name, change BINARY_NAME in the -# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer -# work. -# -# Any new source files that you add to the application should be added here. -add_executable(${BINARY_NAME} WIN32 - "flutter_window.cpp" - "main.cpp" - "utils.cpp" - "win32_window.cpp" - "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" - "Runner.rc" - "runner.exe.manifest" -) - -# Apply the standard set of build settings. This can be removed for applications -# that need different build settings. -apply_standard_settings(${BINARY_NAME}) - -# Add preprocessor definitions for the build version. -target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") -target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") -target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") -target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") -target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") - -# Disable Windows macros that collide with C++ standard library functions. -target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") - -# Add dependency libraries and include directories. Add any application-specific -# dependencies here. -target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) -target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") - -# Run the Flutter tool portions of the build. This must not be removed. -add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/Sources/dafl_project_flutter/windows/runner/Runner.rc b/Sources/dafl_project_flutter/windows/runner/Runner.rc deleted file mode 100644 index f4e4ca1..0000000 --- a/Sources/dafl_project_flutter/windows/runner/Runner.rc +++ /dev/null @@ -1,121 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#pragma code_page(65001) -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "winres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (United States) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""winres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_APP_ICON ICON "resources\\app_icon.ico" - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) -#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD -#else -#define VERSION_AS_NUMBER 1,0,0,0 -#endif - -#if defined(FLUTTER_VERSION) -#define VERSION_AS_STRING FLUTTER_VERSION -#else -#define VERSION_AS_STRING "1.0.0" -#endif - -VS_VERSION_INFO VERSIONINFO - FILEVERSION VERSION_AS_NUMBER - PRODUCTVERSION VERSION_AS_NUMBER - FILEFLAGSMASK VS_FFI_FILEFLAGSMASK -#ifdef _DEBUG - FILEFLAGS VS_FF_DEBUG -#else - FILEFLAGS 0x0L -#endif - FILEOS VOS__WINDOWS32 - FILETYPE VFT_APP - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904e4" - BEGIN - VALUE "CompanyName", "com.example" "\0" - VALUE "FileDescription", "dafl_project_flutter" "\0" - VALUE "FileVersion", VERSION_AS_STRING "\0" - VALUE "InternalName", "dafl_project_flutter" "\0" - VALUE "LegalCopyright", "Copyright (C) 2022 com.example. All rights reserved." "\0" - VALUE "OriginalFilename", "dafl_project_flutter.exe" "\0" - VALUE "ProductName", "dafl_project_flutter" "\0" - VALUE "ProductVersion", VERSION_AS_STRING "\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1252 - END -END - -#endif // English (United States) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED diff --git a/Sources/dafl_project_flutter/windows/runner/flutter_window.cpp b/Sources/dafl_project_flutter/windows/runner/flutter_window.cpp deleted file mode 100644 index b43b909..0000000 --- a/Sources/dafl_project_flutter/windows/runner/flutter_window.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include "flutter_window.h" - -#include - -#include "flutter/generated_plugin_registrant.h" - -FlutterWindow::FlutterWindow(const flutter::DartProject& project) - : project_(project) {} - -FlutterWindow::~FlutterWindow() {} - -bool FlutterWindow::OnCreate() { - if (!Win32Window::OnCreate()) { - return false; - } - - RECT frame = GetClientArea(); - - // The size here must match the window dimensions to avoid unnecessary surface - // creation / destruction in the startup path. - flutter_controller_ = std::make_unique( - frame.right - frame.left, frame.bottom - frame.top, project_); - // Ensure that basic setup of the controller was successful. - if (!flutter_controller_->engine() || !flutter_controller_->view()) { - return false; - } - RegisterPlugins(flutter_controller_->engine()); - SetChildContent(flutter_controller_->view()->GetNativeWindow()); - return true; -} - -void FlutterWindow::OnDestroy() { - if (flutter_controller_) { - flutter_controller_ = nullptr; - } - - Win32Window::OnDestroy(); -} - -LRESULT -FlutterWindow::MessageHandler(HWND hwnd, UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept { - // Give Flutter, including plugins, an opportunity to handle window messages. - if (flutter_controller_) { - std::optional result = - flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, - lparam); - if (result) { - return *result; - } - } - - switch (message) { - case WM_FONTCHANGE: - flutter_controller_->engine()->ReloadSystemFonts(); - break; - } - - return Win32Window::MessageHandler(hwnd, message, wparam, lparam); -} diff --git a/Sources/dafl_project_flutter/windows/runner/flutter_window.h b/Sources/dafl_project_flutter/windows/runner/flutter_window.h deleted file mode 100644 index 6da0652..0000000 --- a/Sources/dafl_project_flutter/windows/runner/flutter_window.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef RUNNER_FLUTTER_WINDOW_H_ -#define RUNNER_FLUTTER_WINDOW_H_ - -#include -#include - -#include - -#include "win32_window.h" - -// A window that does nothing but host a Flutter view. -class FlutterWindow : public Win32Window { - public: - // Creates a new FlutterWindow hosting a Flutter view running |project|. - explicit FlutterWindow(const flutter::DartProject& project); - virtual ~FlutterWindow(); - - protected: - // Win32Window: - bool OnCreate() override; - void OnDestroy() override; - LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, - LPARAM const lparam) noexcept override; - - private: - // The project to run. - flutter::DartProject project_; - - // The Flutter instance hosted by this window. - std::unique_ptr flutter_controller_; -}; - -#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/Sources/dafl_project_flutter/windows/runner/main.cpp b/Sources/dafl_project_flutter/windows/runner/main.cpp deleted file mode 100644 index 45e8edc..0000000 --- a/Sources/dafl_project_flutter/windows/runner/main.cpp +++ /dev/null @@ -1,43 +0,0 @@ -#include -#include -#include - -#include "flutter_window.h" -#include "utils.h" - -int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, - _In_ wchar_t *command_line, _In_ int show_command) { - // Attach to console when present (e.g., 'flutter run') or create a - // new console when running with a debugger. - if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { - CreateAndAttachConsole(); - } - - // Initialize COM, so that it is available for use in the library and/or - // plugins. - ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); - - flutter::DartProject project(L"data"); - - std::vector command_line_arguments = - GetCommandLineArguments(); - - project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); - - FlutterWindow window(project); - Win32Window::Point origin(10, 10); - Win32Window::Size size(1280, 720); - if (!window.CreateAndShow(L"dafl_project_flutter", origin, size)) { - return EXIT_FAILURE; - } - window.SetQuitOnClose(true); - - ::MSG msg; - while (::GetMessage(&msg, nullptr, 0, 0)) { - ::TranslateMessage(&msg); - ::DispatchMessage(&msg); - } - - ::CoUninitialize(); - return EXIT_SUCCESS; -} diff --git a/Sources/dafl_project_flutter/windows/runner/resource.h b/Sources/dafl_project_flutter/windows/runner/resource.h deleted file mode 100644 index 66a65d1..0000000 --- a/Sources/dafl_project_flutter/windows/runner/resource.h +++ /dev/null @@ -1,16 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by Runner.rc -// -#define IDI_APP_ICON 101 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 102 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1001 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/Sources/dafl_project_flutter/windows/runner/resources/app_icon.ico b/Sources/dafl_project_flutter/windows/runner/resources/app_icon.ico deleted file mode 100644 index c04e20c..0000000 Binary files a/Sources/dafl_project_flutter/windows/runner/resources/app_icon.ico and /dev/null differ diff --git a/Sources/dafl_project_flutter/windows/runner/runner.exe.manifest b/Sources/dafl_project_flutter/windows/runner/runner.exe.manifest deleted file mode 100644 index a42ea76..0000000 --- a/Sources/dafl_project_flutter/windows/runner/runner.exe.manifest +++ /dev/null @@ -1,20 +0,0 @@ - - - - - PerMonitorV2 - - - - - - - - - - - - - - - diff --git a/Sources/dafl_project_flutter/windows/runner/utils.cpp b/Sources/dafl_project_flutter/windows/runner/utils.cpp deleted file mode 100644 index f5bf9fa..0000000 --- a/Sources/dafl_project_flutter/windows/runner/utils.cpp +++ /dev/null @@ -1,64 +0,0 @@ -#include "utils.h" - -#include -#include -#include -#include - -#include - -void CreateAndAttachConsole() { - if (::AllocConsole()) { - FILE *unused; - if (freopen_s(&unused, "CONOUT$", "w", stdout)) { - _dup2(_fileno(stdout), 1); - } - if (freopen_s(&unused, "CONOUT$", "w", stderr)) { - _dup2(_fileno(stdout), 2); - } - std::ios::sync_with_stdio(); - FlutterDesktopResyncOutputStreams(); - } -} - -std::vector GetCommandLineArguments() { - // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. - int argc; - wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); - if (argv == nullptr) { - return std::vector(); - } - - std::vector command_line_arguments; - - // Skip the first argument as it's the binary name. - for (int i = 1; i < argc; i++) { - command_line_arguments.push_back(Utf8FromUtf16(argv[i])); - } - - ::LocalFree(argv); - - return command_line_arguments; -} - -std::string Utf8FromUtf16(const wchar_t* utf16_string) { - if (utf16_string == nullptr) { - return std::string(); - } - int target_length = ::WideCharToMultiByte( - CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, - -1, nullptr, 0, nullptr, nullptr); - std::string utf8_string; - if (target_length == 0 || target_length > utf8_string.max_size()) { - return utf8_string; - } - utf8_string.resize(target_length); - int converted_length = ::WideCharToMultiByte( - CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, - -1, utf8_string.data(), - target_length, nullptr, nullptr); - if (converted_length == 0) { - return std::string(); - } - return utf8_string; -} diff --git a/Sources/dafl_project_flutter/windows/runner/utils.h b/Sources/dafl_project_flutter/windows/runner/utils.h deleted file mode 100644 index 3879d54..0000000 --- a/Sources/dafl_project_flutter/windows/runner/utils.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef RUNNER_UTILS_H_ -#define RUNNER_UTILS_H_ - -#include -#include - -// Creates a console for the process, and redirects stdout and stderr to -// it for both the runner and the Flutter library. -void CreateAndAttachConsole(); - -// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string -// encoded in UTF-8. Returns an empty std::string on failure. -std::string Utf8FromUtf16(const wchar_t* utf16_string); - -// Gets the command line arguments passed in as a std::vector, -// encoded in UTF-8. Returns an empty std::vector on failure. -std::vector GetCommandLineArguments(); - -#endif // RUNNER_UTILS_H_ diff --git a/Sources/dafl_project_flutter/windows/runner/win32_window.cpp b/Sources/dafl_project_flutter/windows/runner/win32_window.cpp deleted file mode 100644 index c10f08d..0000000 --- a/Sources/dafl_project_flutter/windows/runner/win32_window.cpp +++ /dev/null @@ -1,245 +0,0 @@ -#include "win32_window.h" - -#include - -#include "resource.h" - -namespace { - -constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; - -// The number of Win32Window objects that currently exist. -static int g_active_window_count = 0; - -using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); - -// Scale helper to convert logical scaler values to physical using passed in -// scale factor -int Scale(int source, double scale_factor) { - return static_cast(source * scale_factor); -} - -// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. -// This API is only needed for PerMonitor V1 awareness mode. -void EnableFullDpiSupportIfAvailable(HWND hwnd) { - HMODULE user32_module = LoadLibraryA("User32.dll"); - if (!user32_module) { - return; - } - auto enable_non_client_dpi_scaling = - reinterpret_cast( - GetProcAddress(user32_module, "EnableNonClientDpiScaling")); - if (enable_non_client_dpi_scaling != nullptr) { - enable_non_client_dpi_scaling(hwnd); - FreeLibrary(user32_module); - } -} - -} // namespace - -// Manages the Win32Window's window class registration. -class WindowClassRegistrar { - public: - ~WindowClassRegistrar() = default; - - // Returns the singleton registar instance. - static WindowClassRegistrar* GetInstance() { - if (!instance_) { - instance_ = new WindowClassRegistrar(); - } - return instance_; - } - - // Returns the name of the window class, registering the class if it hasn't - // previously been registered. - const wchar_t* GetWindowClass(); - - // Unregisters the window class. Should only be called if there are no - // instances of the window. - void UnregisterWindowClass(); - - private: - WindowClassRegistrar() = default; - - static WindowClassRegistrar* instance_; - - bool class_registered_ = false; -}; - -WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; - -const wchar_t* WindowClassRegistrar::GetWindowClass() { - if (!class_registered_) { - WNDCLASS window_class{}; - window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); - window_class.lpszClassName = kWindowClassName; - window_class.style = CS_HREDRAW | CS_VREDRAW; - window_class.cbClsExtra = 0; - window_class.cbWndExtra = 0; - window_class.hInstance = GetModuleHandle(nullptr); - window_class.hIcon = - LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); - window_class.hbrBackground = 0; - window_class.lpszMenuName = nullptr; - window_class.lpfnWndProc = Win32Window::WndProc; - RegisterClass(&window_class); - class_registered_ = true; - } - return kWindowClassName; -} - -void WindowClassRegistrar::UnregisterWindowClass() { - UnregisterClass(kWindowClassName, nullptr); - class_registered_ = false; -} - -Win32Window::Win32Window() { - ++g_active_window_count; -} - -Win32Window::~Win32Window() { - --g_active_window_count; - Destroy(); -} - -bool Win32Window::CreateAndShow(const std::wstring& title, - const Point& origin, - const Size& size) { - Destroy(); - - const wchar_t* window_class = - WindowClassRegistrar::GetInstance()->GetWindowClass(); - - const POINT target_point = {static_cast(origin.x), - static_cast(origin.y)}; - HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); - UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); - double scale_factor = dpi / 96.0; - - HWND window = CreateWindow( - window_class, title.c_str(), WS_OVERLAPPEDWINDOW | WS_VISIBLE, - Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), - Scale(size.width, scale_factor), Scale(size.height, scale_factor), - nullptr, nullptr, GetModuleHandle(nullptr), this); - - if (!window) { - return false; - } - - return OnCreate(); -} - -// static -LRESULT CALLBACK Win32Window::WndProc(HWND const window, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept { - if (message == WM_NCCREATE) { - auto window_struct = reinterpret_cast(lparam); - SetWindowLongPtr(window, GWLP_USERDATA, - reinterpret_cast(window_struct->lpCreateParams)); - - auto that = static_cast(window_struct->lpCreateParams); - EnableFullDpiSupportIfAvailable(window); - that->window_handle_ = window; - } else if (Win32Window* that = GetThisFromHandle(window)) { - return that->MessageHandler(window, message, wparam, lparam); - } - - return DefWindowProc(window, message, wparam, lparam); -} - -LRESULT -Win32Window::MessageHandler(HWND hwnd, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept { - switch (message) { - case WM_DESTROY: - window_handle_ = nullptr; - Destroy(); - if (quit_on_close_) { - PostQuitMessage(0); - } - return 0; - - case WM_DPICHANGED: { - auto newRectSize = reinterpret_cast(lparam); - LONG newWidth = newRectSize->right - newRectSize->left; - LONG newHeight = newRectSize->bottom - newRectSize->top; - - SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, - newHeight, SWP_NOZORDER | SWP_NOACTIVATE); - - return 0; - } - case WM_SIZE: { - RECT rect = GetClientArea(); - if (child_content_ != nullptr) { - // Size and position the child window. - MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, - rect.bottom - rect.top, TRUE); - } - return 0; - } - - case WM_ACTIVATE: - if (child_content_ != nullptr) { - SetFocus(child_content_); - } - return 0; - } - - return DefWindowProc(window_handle_, message, wparam, lparam); -} - -void Win32Window::Destroy() { - OnDestroy(); - - if (window_handle_) { - DestroyWindow(window_handle_); - window_handle_ = nullptr; - } - if (g_active_window_count == 0) { - WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); - } -} - -Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { - return reinterpret_cast( - GetWindowLongPtr(window, GWLP_USERDATA)); -} - -void Win32Window::SetChildContent(HWND content) { - child_content_ = content; - SetParent(content, window_handle_); - RECT frame = GetClientArea(); - - MoveWindow(content, frame.left, frame.top, frame.right - frame.left, - frame.bottom - frame.top, true); - - SetFocus(child_content_); -} - -RECT Win32Window::GetClientArea() { - RECT frame; - GetClientRect(window_handle_, &frame); - return frame; -} - -HWND Win32Window::GetHandle() { - return window_handle_; -} - -void Win32Window::SetQuitOnClose(bool quit_on_close) { - quit_on_close_ = quit_on_close; -} - -bool Win32Window::OnCreate() { - // No-op; provided for subclasses. - return true; -} - -void Win32Window::OnDestroy() { - // No-op; provided for subclasses. -} diff --git a/Sources/dafl_project_flutter/windows/runner/win32_window.h b/Sources/dafl_project_flutter/windows/runner/win32_window.h deleted file mode 100644 index 17ba431..0000000 --- a/Sources/dafl_project_flutter/windows/runner/win32_window.h +++ /dev/null @@ -1,98 +0,0 @@ -#ifndef RUNNER_WIN32_WINDOW_H_ -#define RUNNER_WIN32_WINDOW_H_ - -#include - -#include -#include -#include - -// A class abstraction for a high DPI-aware Win32 Window. Intended to be -// inherited from by classes that wish to specialize with custom -// rendering and input handling -class Win32Window { - public: - struct Point { - unsigned int x; - unsigned int y; - Point(unsigned int x, unsigned int y) : x(x), y(y) {} - }; - - struct Size { - unsigned int width; - unsigned int height; - Size(unsigned int width, unsigned int height) - : width(width), height(height) {} - }; - - Win32Window(); - virtual ~Win32Window(); - - // Creates and shows a win32 window with |title| and position and size using - // |origin| and |size|. New windows are created on the default monitor. Window - // sizes are specified to the OS in physical pixels, hence to ensure a - // consistent size to will treat the width height passed in to this function - // as logical pixels and scale to appropriate for the default monitor. Returns - // true if the window was created successfully. - bool CreateAndShow(const std::wstring& title, - const Point& origin, - const Size& size); - - // Release OS resources associated with window. - void Destroy(); - - // Inserts |content| into the window tree. - void SetChildContent(HWND content); - - // Returns the backing Window handle to enable clients to set icon and other - // window properties. Returns nullptr if the window has been destroyed. - HWND GetHandle(); - - // If true, closing this window will quit the application. - void SetQuitOnClose(bool quit_on_close); - - // Return a RECT representing the bounds of the current client area. - RECT GetClientArea(); - - protected: - // Processes and route salient window messages for mouse handling, - // size change and DPI. Delegates handling of these to member overloads that - // inheriting classes can handle. - virtual LRESULT MessageHandler(HWND window, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept; - - // Called when CreateAndShow is called, allowing subclass window-related - // setup. Subclasses should return false if setup fails. - virtual bool OnCreate(); - - // Called when Destroy is called. - virtual void OnDestroy(); - - private: - friend class WindowClassRegistrar; - - // OS callback called by message pump. Handles the WM_NCCREATE message which - // is passed when the non-client area is being created and enables automatic - // non-client DPI scaling so that the non-client area automatically - // responsponds to changes in DPI. All other messages are handled by - // MessageHandler. - static LRESULT CALLBACK WndProc(HWND const window, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept; - - // Retrieves a class instance pointer for |window| - static Win32Window* GetThisFromHandle(HWND const window) noexcept; - - bool quit_on_close_ = false; - - // window handle for top level window. - HWND window_handle_ = nullptr; - - // window handle for hosted content. - HWND child_content_ = nullptr; -}; - -#endif // RUNNER_WIN32_WINDOW_H_