diff --git a/Sources/dafl_project_flutter/android/app/src/main/res/drawable-v21/launch_background.xml b/Sources/dafl_project_flutter/android/app/src/main/res/drawable-v21/launch_background.xml index f74085f..3cc4948 100644 --- a/Sources/dafl_project_flutter/android/app/src/main/res/drawable-v21/launch_background.xml +++ b/Sources/dafl_project_flutter/android/app/src/main/res/drawable-v21/launch_background.xml @@ -1,12 +1,9 @@ - - - - - + + + + + + diff --git a/Sources/dafl_project_flutter/android/app/src/main/res/drawable/launch_background.xml b/Sources/dafl_project_flutter/android/app/src/main/res/drawable/launch_background.xml index 304732f..3cc4948 100644 --- a/Sources/dafl_project_flutter/android/app/src/main/res/drawable/launch_background.xml +++ b/Sources/dafl_project_flutter/android/app/src/main/res/drawable/launch_background.xml @@ -1,12 +1,9 @@ - - - - - + + + + + + diff --git a/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-hdpi/ic_launcher.png index db77bb4..ffcdcee 100644 Binary files a/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 17987b7..637e6d5 100644 Binary files a/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png index 09d4391..366a205 100644 Binary files a/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index d5f1c8d..ffa5dc7 100644 Binary files a/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 4d6372e..d610ef8 100644 Binary files a/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/Sources/dafl_project_flutter/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/Sources/dafl_project_flutter/android/app/src/main/res/values/styles.xml b/Sources/dafl_project_flutter/android/app/src/main/res/values/styles.xml index cb1ef88..82c1a05 100644 --- a/Sources/dafl_project_flutter/android/app/src/main/res/values/styles.xml +++ b/Sources/dafl_project_flutter/android/app/src/main/res/values/styles.xml @@ -5,6 +5,9 @@ @drawable/launch_background + false + false + shortEdges + diff --git a/Sources/dafl_project_flutter/assets/images/Logo_luancher_2.png b/Sources/dafl_project_flutter/assets/images/Logo_launcher_2.png similarity index 100% rename from Sources/dafl_project_flutter/assets/images/Logo_luancher_2.png rename to Sources/dafl_project_flutter/assets/images/Logo_launcher_2.png diff --git a/Sources/dafl_project_flutter/assets/images/bouton_messages.png b/Sources/dafl_project_flutter/assets/images/bouton_messages.png new file mode 100644 index 0000000..26d6806 Binary files /dev/null and b/Sources/dafl_project_flutter/assets/images/bouton_messages.png differ diff --git a/Sources/dafl_project_flutter/assets/images/icon_messages.png b/Sources/dafl_project_flutter/assets/images/icon_messages.png new file mode 100644 index 0000000..0ae98bb Binary files /dev/null and b/Sources/dafl_project_flutter/assets/images/icon_messages.png differ diff --git a/Sources/dafl_project_flutter/assets/images/loadingPlaceholder.gif b/Sources/dafl_project_flutter/assets/images/loadingPlaceholder.gif new file mode 100644 index 0000000..490bf64 Binary files /dev/null and b/Sources/dafl_project_flutter/assets/images/loadingPlaceholder.gif differ diff --git a/Sources/dafl_project_flutter/assets/images/send_logo.png b/Sources/dafl_project_flutter/assets/images/send_logo.png new file mode 100644 index 0000000..582ed64 Binary files /dev/null and b/Sources/dafl_project_flutter/assets/images/send_logo.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner.xcodeproj/project.pbxproj b/Sources/dafl_project_flutter/ios/Runner.xcodeproj/project.pbxproj index 21ce897..15a0b3c 100644 --- a/Sources/dafl_project_flutter/ios/Runner.xcodeproj/project.pbxproj +++ b/Sources/dafl_project_flutter/ios/Runner.xcodeproj/project.pbxproj @@ -478,4 +478,4 @@ /* End XCConfigurationList section */ }; rootObject = 97C146E61CF9000F007C117D /* Project object */; -} +} \ No newline at end of file diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png index dc9ada4..18c3fed 100644 Binary files a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png index 28c6bf0..cc405ac 100644 Binary files a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png index 2ccbfd9..e715e09 100644 Binary files a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png index f091b6b..5f9f8e8 100644 Binary files a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png index 4cde121..837133f 100644 Binary files a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png index d0ef06e..216633e 100644 Binary files a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png index dcdc230..1028db2 100644 Binary files a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png index 2ccbfd9..e715e09 100644 Binary files a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png index c8f9ed8..589bb34 100644 Binary files a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png index a6d6b86..087e424 100644 Binary files a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png index a6d6b86..087e424 100644 Binary files a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png index 75b2d16..9034592 100644 Binary files a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png index c4df70d..ac2b899 100644 Binary files a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png index 6a84f41..b30405b 100644 Binary files a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png index d0e1f58..beaa03a 100644 Binary files a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json index 0bedcf2..00cabce 100644 --- a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json +++ b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -1,23 +1,23 @@ { "images" : [ { - "idiom" : "universal", "filename" : "LaunchImage.png", + "idiom" : "universal", "scale" : "1x" }, { - "idiom" : "universal", "filename" : "LaunchImage@2x.png", + "idiom" : "universal", "scale" : "2x" }, { - "idiom" : "universal", "filename" : "LaunchImage@3x.png", + "idiom" : "universal", "scale" : "3x" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } } diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png index 9da19ea..0a87ceb 100644 Binary files a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png index 9da19ea..cb1d40f 100644 Binary files a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png index 9da19ea..a37f79f 100644 Binary files a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png differ diff --git a/Sources/dafl_project_flutter/ios/Runner/Base.lproj/LaunchScreen.storyboard b/Sources/dafl_project_flutter/ios/Runner/Base.lproj/LaunchScreen.storyboard index f2e259c..a66867f 100644 --- a/Sources/dafl_project_flutter/ios/Runner/Base.lproj/LaunchScreen.storyboard +++ b/Sources/dafl_project_flutter/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -16,13 +16,19 @@ - - + + - - + + + + + + + + @@ -32,6 +38,7 @@ - + + diff --git a/Sources/dafl_project_flutter/ios/Runner/Info.plist b/Sources/dafl_project_flutter/ios/Runner/Info.plist index c060fb6..60521b9 100644 --- a/Sources/dafl_project_flutter/ios/Runner/Info.plist +++ b/Sources/dafl_project_flutter/ios/Runner/Info.plist @@ -1,51 +1,53 @@ - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - Dafl Project Flutter - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - dafl_project_flutter - CFBundlePackageType - APPL - CFBundleShortVersionString - $(FLUTTER_BUILD_NAME) - CFBundleSignature - ???? - CFBundleVersion - $(FLUTTER_BUILD_NUMBER) - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - CADisableMinimumFrameDurationOnPhone - - UIApplicationSupportsIndirectInputEvents - - + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Dafl Project Flutter + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + dafl_project_flutter + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + UIStatusBarHidden + + diff --git a/Sources/dafl_project_flutter/lib/main.dart b/Sources/dafl_project_flutter/lib/main.dart index 8b4cab8..2ab1678 100644 --- a/Sources/dafl_project_flutter/lib/main.dart +++ b/Sources/dafl_project_flutter/lib/main.dart @@ -1,5 +1,7 @@ import 'dart:async'; +import 'package:dafl_project_flutter/views/pages/main/w_bottomsheet.dart'; import 'package:fluttertoast/fluttertoast.dart'; +import 'package:vibration/vibration.dart'; import 'dart:math'; import './views/pages/home/p_home.dart'; import './views/pages/main/p_main.dart'; @@ -30,7 +32,7 @@ class MyApp extends StatelessWidget { } } -enum CardStatus { like, disLike, discovery} +enum CardStatus { like, disLike, discovery, message} class CardProvider extends ChangeNotifier{ List _urlImages = []; @@ -80,7 +82,7 @@ class CardProvider extends ChangeNotifier{ notifyListeners(); } - void endPosition() { + void endPosition(context) { _isDragging = false; notifyListeners(); @@ -89,7 +91,7 @@ class CardProvider extends ChangeNotifier{ switch (status) { case CardStatus.like: - like(); + like(context); break; case CardStatus.disLike: dislike(); @@ -97,6 +99,9 @@ class CardProvider extends ChangeNotifier{ case CardStatus.discovery: discovery(); break; + case CardStatus.message: + message(context); + break; default: resetPosition(); } @@ -120,7 +125,8 @@ class CardProvider extends ChangeNotifier{ CardStatus? getStatus({bool force = false}) { final x = _position.dx; final y = _position.dy; - final forceDiscovery = x.abs() < 20; + final forceDiscovery = x.abs() < 80; + final forceMessage = x.abs() < 100; if(force) { final delta = 100; @@ -129,15 +135,19 @@ class CardProvider extends ChangeNotifier{ return CardStatus.like; } else if ( x <= -delta){ return CardStatus.disLike; - } else if ( y <= -delta / 2 && forceDiscovery){ + } else if ( y <= -delta/2 && forceDiscovery){ + return CardStatus.message; + } else if (y >= delta * 2 && x.abs() < 100) { return CardStatus.discovery; } } else{ final delta = 20; if(y <= -delta * 2 && forceDiscovery) { + return CardStatus.message; + } else if (y >= delta *2 && x.abs() < 80) { return CardStatus.discovery; - } else if ( x >= delta) { + }else if ( x >= delta) { return CardStatus.like; } else if ( x <= -delta) { return CardStatus.disLike; @@ -145,6 +155,7 @@ class CardProvider extends ChangeNotifier{ } } void dislike() { + Vibration.vibrate(duration: 20, amplitude: 60); print("dislike"); _angle = -20; _position -= Offset(2 * _screenSize.width, 0); @@ -154,9 +165,10 @@ class CardProvider extends ChangeNotifier{ } void discovery() { + Vibration.vibrate(duration: 20, amplitude: 60); print("discovery"); _angle = 0; - _position -= Offset(0, _screenSize.height); + _position -= Offset(0, -_screenSize.height); _discovery_card(); Fluttertoast.showToast( msg: 'Ajouté', @@ -170,13 +182,131 @@ class CardProvider extends ChangeNotifier{ notifyListeners(); } - void like() { + void message(context) { + Vibration.vibrate(duration: 20, amplitude: 60); + print("message"); + _angle = 0; + _position -= Offset(0, _screenSize.height); + _message_card(); + showModalBottomSheet( + isDismissible: false, + useRootNavigator: true, + isScrollControlled: true, + backgroundColor: Colors.transparent, + context: context, + constraints: BoxConstraints( + maxWidth: 600, + maxHeight: double.infinity, + ), + builder: (context) => buildSheet(),); + notifyListeners(); + } + Widget buildSheet() => Container( + height: 550, + width: 350, + decoration: BoxDecoration( + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.4), + offset: const Offset( + 0, + 0, + ), + blurRadius: 10.0, + spreadRadius: 2.0, + ), + BoxShadow( + color: Colors.white.withOpacity(0.3), + offset: const Offset(0.0, 0.0), + blurRadius: 0.0, + spreadRadius: 0.0, + ),//BoxShadow//BoxShadow + ], + color: Color(0xFF232123), + borderRadius: BorderRadius.only( + topRight: Radius.circular(30), + topLeft: Radius.circular(30), + ), + ), + child: Padding( + padding: EdgeInsets.fromLTRB(20, 10, 20, 10), + child: Column( + children: [ + + Container( + height: 5, + width: 130, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: Color(0xFF8A8A8A), + ), + ), + SizedBox(height: 30,), + Container( + width: double.infinity, + height: 300, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: Color(0xFF302C30), + ), + child: Padding( + padding: EdgeInsets.all(20), + child: TextField( + maxLength: 300, + style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 17, fontWeight: FontWeight.w200), + expands: true, + maxLines: null, + keyboardType: TextInputType.multiline, + decoration: InputDecoration( + hintStyle: TextStyle( + color: Colors.white, + ), + border: InputBorder.none, + hintText: "Mon message", + ), + ), + ), + ), + SizedBox(height: 20,), + SizedBox( + width: double.infinity, + height: 70, + child: ElevatedButton( + onPressed: () {}, + style: ElevatedButton.styleFrom( + primary: Color(0xFF3F1DC3), + textStyle: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(17) + ), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Text("Envoyer"), + Opacity(opacity: 0.2, + child: Image.asset("assets/images/send_logo.png",),) + ], + ), + ), + ) + ], + ), + ), + + ); + + + void like(context) { + Vibration.vibrate(duration: 20, amplitude: 60); print("like"); _angle = 20; _position += Offset(2 * _screenSize.width, 0); _nextCard(); - notifyListeners(); + } Future _nextCard() async { @@ -191,6 +321,12 @@ class CardProvider extends ChangeNotifier{ await Future.delayed(Duration(milliseconds: 200)); resetPosition(); } + + Future _message_card() async { + await Future.delayed(Duration(milliseconds: 200)); + resetPosition(); + } + } 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 737d33c..1f6f308 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 @@ -28,30 +28,12 @@ class _HomePageState extends State { crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.end, children: [ - + Spacer(), Image.asset( 'assets/images/Logo.png', - width: 200, + width: 230, ), - SizedBox(height: height*0.04,), - SizedBox( - height: 55, - width: width*0.75, - child: ElevatedButton( - style: ElevatedButton.styleFrom( - backgroundColor: Color(0xFF24CF5F), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(15.0), - ),// background// foreground - ), - onPressed: () { - }, - child: Text("CONTINUER AVEC SPOTIFY", - style: TextStyle(color: Colors.white ,fontSize: 17, fontWeight: FontWeight.bold), - textAlign: TextAlign.center, - ), - ),), - SizedBox(height: height*0.015,), + SizedBox(height: height*0.08,), SizedBox( height: 55, width: width*0.75, @@ -76,7 +58,7 @@ class _HomePageState extends State { textAlign: TextAlign.center, ), ),), - SizedBox(height: 220,), + Spacer(), GestureDetector( onTap: (){ Navigator.of(context).push( @@ -112,15 +94,6 @@ class _HomePageState extends State { ], ), - Align( - alignment: Alignment.topRight, - child: Container( - padding: EdgeInsets.fromLTRB(0, 20, 20, 0), - child: Text("v1.0", - style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.5) ,fontSize: 17, fontWeight: FontWeight.w700), - ), - ) - ), ], ), 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 new file mode 100644 index 0000000..e2d6e3c --- /dev/null +++ b/Sources/dafl_project_flutter/lib/views/pages/main/p_conversation.dart @@ -0,0 +1,150 @@ +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); + + @override + State createState() => _ConversationPageState(); +} + +class _ConversationPageState extends State { + @override + Widget build(BuildContext context) { + double height = MediaQuery.of(context).size.height; + double width = MediaQuery.of(context).size.width; + return Scaffold( + resizeToAvoidBottomInset: true, + backgroundColor: Color(0xFF141414), + appBar: AppBar( + toolbarHeight: 100, + title: Row( + children: [ + Container( + height: 60, + width: 60, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(40), + color: Colors.blue, + ), + ), + SizedBox(width: 20,), + Text("Max"), + + ], + ), + + backgroundColor: Color(0xFF141414), + elevation: 0, + ), + body: SingleChildScrollView( + child: Column( + children: [ + Container( + color: Color(0xFF141414), + height: height*0.76, + width: double.infinity, + child: ListView( + 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), + ], + ), + + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + + children: [ + Container( + height: height*0.08, + color: Color(0xFF141414), + width: width*0.8, + child: Container( + margin: EdgeInsets.fromLTRB(20, 10, 0, 10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(100), + color: Colors.white, + + ), + child: Padding( + padding: EdgeInsets.fromLTRB(10, 0, 10, 0), + child: TextField( + decoration: InputDecoration( + border: InputBorder.none, + hintText: "Envoyer un message..." + ), + cursorColor: Colors.purple, + textAlign: TextAlign.left, + ), + ), + ), + ), + Container( + width: 40, + height: 40, + margin: EdgeInsets.fromLTRB(0, 0, 0, 0), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(100), + color: Colors.blue, + ), + child: Icon(Icons.send, size: 20, color: Colors.white,), + ) + ], + ), + ], + ), + ), + ); + } + + Widget Message(String message, int user) { + if(user == 0){ + return Container( + margin: EdgeInsets.fromLTRB(40, 7, 80, 7), + decoration: BoxDecoration( + borderRadius: 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), + ), + child: Padding( + padding: EdgeInsets.fromLTRB(20, 20, 20, 20), + child: Text(message,style: TextStyle(fontFamily: 'DMSans', color: Colors.white ,fontSize: 19, fontWeight: FontWeight.w400), + )), + ); + } + else{ + return Container( + margin: EdgeInsets.fromLTRB(80, 7, 40, 7), + decoration: BoxDecoration( + borderRadius: BorderRadius.only( + bottomRight: Radius.circular(20), + bottomLeft: Radius.circular(20), + topLeft: Radius.circular(20), + topRight: Radius.circular(20), + ), + color: Color(0xFF2F2F2F), + ), + child: Padding( + padding: EdgeInsets.fromLTRB(20, 20, 20, 20), + child: Text(message,style: TextStyle(fontFamily: 'DMSans', color: Colors.white ,fontSize: 19, 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 bbdb13e..616f9b8 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 @@ -4,6 +4,7 @@ import './w_settings.dart'; import './w_spot.dart'; import './w_discovery.dart'; import './w_profile.dart'; +import './w_messages.dart'; class MainPage extends StatefulWidget { const MainPage({Key? key}) : super(key: key); @@ -21,13 +22,14 @@ class _MainPageState extends State { DiscoveryWidget(), SpotsWidget(), Center(child: Text('Tops'),), - Center(child: Text('Messages'),), + MessagesWidget(), SettingsWidget(), ]; @override Widget build(BuildContext context) { double height = MediaQuery.of(context).size.height; return Scaffold( + resizeToAvoidBottomInset: false, body: screens[_index], bottomNavigationBar: NavigationBarTheme( data: NavigationBarThemeData( diff --git a/Sources/dafl_project_flutter/lib/views/pages/main/w_bottomsheet.dart b/Sources/dafl_project_flutter/lib/views/pages/main/w_bottomsheet.dart new file mode 100644 index 0000000..27ec3c4 --- /dev/null +++ b/Sources/dafl_project_flutter/lib/views/pages/main/w_bottomsheet.dart @@ -0,0 +1,3 @@ +import 'package:flutter/cupertino.dart'; + + 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 6eef2c1..8009b40 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 @@ -12,7 +12,7 @@ class User{ required this.chanteur, required this.titre, required this.urlImage, -}); + }); } @@ -44,21 +44,21 @@ class _CardWidgetState extends State{ } @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( - image: DecorationImage( - image: NetworkImage(widget.urlImage), - fit: BoxFit.cover, - alignment: Alignment(0,0), - ), 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), ), ); @@ -77,6 +77,9 @@ class _CardWidgetState extends State{ case CardStatus.discovery: 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); + return child; default: return Container(); @@ -84,29 +87,29 @@ class _CardWidgetState extends State{ } Widget buildStamp({ - double angle = 0, + double angle = 0, required String image, required double 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)) - ), - child: Center( - child: Image.asset( - image, - width: 100, + 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)) ), + child: Center( + child: Image.asset( + image, + width: 100, + ), + ), ), - ), - ),); + ),); } Widget buildFrontCard() => GestureDetector( @@ -124,7 +127,7 @@ class _CardWidgetState extends State{ ..translate(-center.dx, -center.dy); return AnimatedContainer( - curve: Curves.easeInOut, + curve: Curves.easeOut, duration: Duration(milliseconds: milliseconds), transform: rotatedMatrix..translate(position.dx, position.dy), child: Stack( @@ -149,7 +152,7 @@ class _CardWidgetState extends State{ onPanEnd: (details) { final provider = Provider.of(context, listen: false); - provider.endPosition(); + provider.endPosition(this.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 0939e2b..e06afd6 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 @@ -13,162 +13,197 @@ class _DiscoveryWidgetState extends State { @override Widget build(BuildContext context) { - return Scaffold( - backgroundColor: Color(0xFF141414), - resizeToAvoidBottomInset: false, - - body: Padding(padding: EdgeInsets.fromLTRB(30, 50, 30, 0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - 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,), - ] - ), - 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),), - ], - ), + return Container( + color: Color(0xFF141414), + + child: Padding(padding: EdgeInsets.fromLTRB(30, 50, 30, 0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + 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,), + ] + ), + 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: ListView( - - children: [ - SizedBox(height: 40,), - Container( - margin: EdgeInsets.fromLTRB(0, 10, 0, 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( - image: 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(10)), - ),), - Container( - margin: EdgeInsets.fromLTRB(20, 0, 0, 0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text('IVERSON',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - Text('Laylow',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),), - - ], - ),), - ], - ), + ), + Expanded( + child: ListView( + + children: [ + SizedBox(height: 40,), + Container( + margin: EdgeInsets.fromLTRB(0, 10, 0, 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: 'https://www.goutemesdisques.com/uploads/tx_gmdchron/pi1/L_Etrange_Histoire_de_Mr_Anderson.jpg'), + ),), + Container( + margin: EdgeInsets.fromLTRB(20, 0, 0, 0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text('IVERSON',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), + Text('Laylow',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),), + + ], + ),), + ], + ), + ), + + + ], + ) + ), + Container( + margin: EdgeInsets.fromLTRB(0, 10, 0, 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: 'https://www.goutemesdisques.com/uploads/tx_gmdchron/pi1/L_Etrange_Histoire_de_Mr_Anderson.jpg'), + ),), + Container( + margin: EdgeInsets.fromLTRB(20, 0, 0, 0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text('IVERSON',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), + Text('Laylow',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),), + + ], + ),), + ], ), + ), + + ], + ) + ), + Container( + margin: EdgeInsets.fromLTRB(0, 10, 0, 0), + child: Column( + children: [ - ], - ) - ), - Container( - margin: EdgeInsets.fromLTRB(0, 10, 0, 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( - image: 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(10)), - ),), - Container( - margin: EdgeInsets.fromLTRB(20, 0, 0, 0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text('IVERSON',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - Text('Laylow',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),), - - ], - ),), - ], - ), + 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: 'https://www.goutemesdisques.com/uploads/tx_gmdchron/pi1/L_Etrange_Histoire_de_Mr_Anderson.jpg'), + ),), + Container( + margin: EdgeInsets.fromLTRB(20, 0, 0, 0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text('IVERSON',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), + Text('Laylow',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),), + + ], + ),), + ], ), + ), + + ], + ) + ), + Container( + margin: EdgeInsets.fromLTRB(0, 10, 0, 0), + child: Column( + children: [ - ], - ) - ), - Container( - margin: EdgeInsets.fromLTRB(0, 10, 0, 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( - image: 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(10)), - ),), - Container( - margin: EdgeInsets.fromLTRB(20, 0, 0, 0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text('IVERSON',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - Text('Laylow',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),), - - ], - ),), - ], - ), + 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: 'https://www.goutemesdisques.com/uploads/tx_gmdchron/pi1/L_Etrange_Histoire_de_Mr_Anderson.jpg'), + ),), + Container( + margin: EdgeInsets.fromLTRB(20, 0, 0, 0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text('IVERSON',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), + Text('Laylow',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 new file mode 100644 index 0000000..3c5db1a --- /dev/null +++ b/Sources/dafl_project_flutter/lib/views/pages/main/w_messages.dart @@ -0,0 +1,228 @@ +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'; + +class MessagesWidget extends StatefulWidget { + const MessagesWidget({Key? key}) : super(key: key); + + @override + State createState() => _MessagesWidgetState(); +} + +class _MessagesWidgetState extends State { + int indexSectedButton = 0; + Widget listeActuelle = ListConfirmedWidget(); + + + var colorConfirm = Color(0xFFFFFFFF); + var colorWaiting = Color(0xFFA8A8A8); + void changeSelected(int num){ + if(indexSectedButton == num){ + return; + } + else{ + if(num == 0){ + setState((){ + colorConfirm = Color(0xFFFFFFFF); + colorWaiting = Color(0xFFA8A8A8); + listeActuelle = ListConfirmedWidget(); + indexSectedButton = num; + }); + + + } + else{ + setState((){ + colorConfirm = Color(0xFFA8A8A8); + colorWaiting = Color(0xFFFFFFFF); + listeActuelle = 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), + 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), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + SizedBox( + height: 35, + width: width*0.35, + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: colorConfirm, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(15.0), + ),// background// foreground + ), + onPressed: () { + changeSelected(0); + }, + child: Text("Validées", + style: TextStyle(color: Colors.black ,fontSize: 17, fontWeight: FontWeight.bold), + textAlign: TextAlign.center, + ), + ),), + SizedBox( + height: 35, + width: width*0.35, + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: colorWaiting, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(15.0), + ),// background// foreground + ), + onPressed: () { + changeSelected(1); + }, + child: Text("En attente", + style: TextStyle(color: Colors.black ,fontSize: 17, fontWeight: FontWeight.bold), + textAlign: TextAlign.center, + ), + ),), + ], + ),), + ], + ), + ), + Expanded( + child: + listeActuelle, + + + ), + ], + ),), + ); + } +} + +class MessagesButtonWidget extends StatelessWidget{ + @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), + child: Column( + children: [ + + Container( + color: Colors.transparent, + margin: EdgeInsets.fromLTRB(0, 5, 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'), + fit: BoxFit.cover, + ), + border: Border.all(width: 0, color: Colors.grey.withOpacity(0)), + borderRadius: BorderRadius.all(Radius.circular(30)), + ),), + Container( + width: width-160, + margin: EdgeInsets.fromLTRB(20, 0, 20, 0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Row( + 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('A envoyé un musique.',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),), + + ], + ),), + ], + ), + ), + + + ], + ) + ); + + } +} + +class ListConfirmedWidget extends StatelessWidget{ + @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,), + MessagesButtonWidget(), + MessagesButtonWidget(), + MessagesButtonWidget(), + MessagesButtonWidget(), + + + ], + ); + + } +} + +class ListWaitingWidget extends StatelessWidget{ + @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( + onTap: () { + Navigator.of(context).push(PageTransition( + duration: Duration(milliseconds: 200), + reverseDuration: Duration(milliseconds: 200), + type: PageTransitionType.rightToLeftWithFade, + childCurrent: context.widget, + child: ConversationPage())); + }, + child: 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 b38784c..bec4151 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 @@ -16,198 +16,209 @@ class _ProfilWidgetState extends State { Widget build(BuildContext context) { double height = MediaQuery.of(context).size.height; + return MainPageProfil(); + } +} + +class MainPageProfil extends StatelessWidget { + const MainPageProfil({super.key}); + + @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( - width: double.infinity, - height: double.infinity, - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Container( - width: double.infinity, - margin: EdgeInsets.fromLTRB(30, 50, 0, 0), - child: Text( - "Profil", - style: TextStyle(fontSize: 25, fontWeight: FontWeight.w600, color: Colors.white),), - ), - Container( - margin: EdgeInsets.fromLTRB(0, 10, 0, 40), - 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), - + child: Container( + width: double.infinity, + height: double.infinity, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + width: double.infinity, + margin: EdgeInsets.fromLTRB(30, 50, 0, 0), + child: Text( + "Profil", + style: TextStyle(fontSize: 25, fontWeight: FontWeight.w600, color: Colors.white),), ), - ), - Container( - height: 55, - width: double.infinity, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10.0), - color: Colors.transparent, + Container( + margin: EdgeInsets.fromLTRB(0, 10, 0, 40), + 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), + + ), ), - margin: EdgeInsets.fromLTRB(30, 0, 30, 0), - child: SizedBox( + Container( height: 55, width: double.infinity, - child: ElevatedButton( - style: ElevatedButton.styleFrom( - backgroundColor: Color(0xFFD9D9D9).withOpacity(0.08), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(10.0), - ),// background// foreground - ), - 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), - textAlign: TextAlign.center, - ), - Spacer(), - Icon(Icons.arrow_forward_ios, color: Colors.white.withOpacity(0.3),), - ], - ) - ),), - ), - Container( - height: 55, - width: double.infinity, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10.0), - color: Colors.transparent, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10.0), + color: Colors.transparent, + ), + margin: EdgeInsets.fromLTRB(30, 0, 30, 0), + child: SizedBox( + height: 55, + width: double.infinity, + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: Color(0xFFD9D9D9).withOpacity(0.08), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10.0), + ),// background// foreground + ), + 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), + textAlign: TextAlign.center, + ), + Spacer(), + Icon(Icons.arrow_forward_ios, color: Colors.white.withOpacity(0.3),), + ], + ) + ),), ), - margin: EdgeInsets.fromLTRB(30, 10, 30, 0), - child: SizedBox( + Container( height: 55, width: double.infinity, - child: ElevatedButton( - style: ElevatedButton.styleFrom( - backgroundColor: Color(0xFFD9D9D9).withOpacity(0.08), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(10.0), - ),// background// foreground - ), - onPressed: () { - Navigator.push(context,MaterialPageRoute(builder: (context)=> DisplayInfoWidget())); - }, - child: Row( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10.0), + color: Colors.transparent, + ), + margin: EdgeInsets.fromLTRB(30, 10, 30, 0), + child: SizedBox( + height: 55, + width: double.infinity, + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: Color(0xFFD9D9D9).withOpacity(0.08), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10.0), + ),// background// foreground + ), + onPressed: () { + Navigator.push(context,MaterialPageRoute(builder: (context)=> 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), + textAlign: TextAlign.center, + ), + Spacer(), + Icon(Icons.arrow_forward_ios, color: Colors.white.withOpacity(0.3),), + ], + ) + ),), + ), + Container( + height: height*0.27, + width: double.infinity, + margin: EdgeInsets.fromLTRB(30, 15, 30, 0), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, children: [ - Icon(Icons.remove_red_eye, color: Colors.white,size: 30,), - SizedBox(width: 12,), - Text("Aperçu de mon profil", + 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, ), - Spacer(), - Icon(Icons.arrow_forward_ios, color: Colors.white.withOpacity(0.3),), ], - ) - ),), - ), - Container( - height: height*0.27, - width: double.infinity, - margin: 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), - textAlign: TextAlign.center, - ), - ], - ), - Container( - margin: EdgeInsets.fromLTRB(0, 10, 0, 0), - height: height*0.14, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(15.0), - color: Color(0xFFD9D9D9).withOpacity(0.08), ), - child: - Row( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Container( - margin: EdgeInsets.fromLTRB(15, 0, 0, 0), - child: ClipRRect( - borderRadius: BorderRadius.circular(15), - child: Image( - height: 90, - width: 90, - image: NetworkImage('https://images.genius.com/ef4849be3da5fdb22ea9e656679be3a3.600x600x1.jpg'), + Container( + margin: EdgeInsets.fromLTRB(0, 10, 0, 0), + height: height*0.14, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(15.0), + color: Color(0xFFD9D9D9).withOpacity(0.08), + ), + child: + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + margin: 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'), ), ), - ), - Container( - margin: 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),), - ], - ), - ) + Container( + margin: 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),), + ], + ), + ) - ], + ], + ), ), - ), - ], - ), - ), - Spacer(), - Container( - height: 55, - width: double.infinity, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10.0), - color: Colors.transparent, + ], + ), ), - margin: EdgeInsets.fromLTRB(30, 0, 30, height*0.04), - child: SizedBox( + Spacer(), + Container( height: 55, width: double.infinity, - child: ElevatedButton( - style: ElevatedButton.styleFrom( - backgroundColor: Color(0xFFD9D9D9).withOpacity(0.08), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(10.0), - ),// background// foreground - ), - onPressed: () { - Navigator.push(context,MaterialPageRoute(builder: (context)=> 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), - textAlign: TextAlign.center, - ), - Spacer(), - Icon(Icons.arrow_forward_ios, color: Colors.white.withOpacity(0.3),), - ], - ) - ),), - ), - ], + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10.0), + color: Colors.transparent, + ), + margin: EdgeInsets.fromLTRB(30, 0, 30, height*0.04), + child: SizedBox( + height: 55, + width: double.infinity, + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: Color(0xFFD9D9D9).withOpacity(0.08), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10.0), + ),// background// foreground + ), + onPressed: () { + Navigator.push(context,MaterialPageRoute(builder: (context)=> 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), + textAlign: TextAlign.center, + ), + Spacer(), + Icon(Icons.arrow_forward_ios, color: Colors.white.withOpacity(0.3),), + ], + ) + ),), + ), + ], + ), ), - ), ); + } } 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 19db674..40f2bc7 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 @@ -30,21 +30,21 @@ class _SettingsWidgetState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ Container( - 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), - borderRadius: BorderRadius.circular(7.0), - ), - child: Padding( - padding: EdgeInsets.fromLTRB(20, 0, 0, 0), - child: Text('Pseudo', - style: TextStyle( - color: Color(0xFFAEAEAE) - ),), - ) + 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), + borderRadius: BorderRadius.circular(7.0), + ), + child: 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: SizedBox( @@ -68,8 +68,8 @@ class _SettingsWidgetState extends State { ), Spacer(), Padding(padding: EdgeInsets.fromLTRB(0, 0, 20, 0), - child: Text('modifier', - style: TextStyle( color: Colors.blue, fontSize: 17),),), + child: Text('modifier', + style: TextStyle( color: Colors.blue, fontSize: 17),),), ], ), @@ -129,3 +129,4 @@ class _SettingsWidgetState extends State { ); } } + 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 bca1061..a3f34ad 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 @@ -6,6 +6,7 @@ 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); @@ -26,33 +27,30 @@ class _SpotsWidgetState extends State { double height = MediaQuery.of(context).size.height; double width = MediaQuery.of(context).size.width; final provider = Provider.of(context); - return Scaffold( - - resizeToAvoidBottomInset: false, - backgroundColor: Color(0xFF141414), - body: Container( - height: double.maxFinite, - child: Stack( - children: [ - Transform.scale(scale: 1.1, - child: Container( - decoration: BoxDecoration( - image: DecorationImage( - image: NetworkImage(provider.urlImages.isEmpty != true - ?provider.urlImages.last - :"https://i.imgur.com/Uovh293.png"), - fit: BoxFit.cover, + return Container( - ), - ), - child: BackdropFilter(filter: ImageFilter.blur(sigmaX: 20.0, sigmaY: 20.0), + color: Color(0xFF141414), + child: Container( + height: double.maxFinite, + child: Stack( + children: [ + Transform.scale(scale: 1.1, child: Container( - decoration: BoxDecoration(color: Colors.black.withOpacity(0.4)), + decoration: BoxDecoration( + image: DecorationImage( + image: NetworkImage(provider.urlImages.isEmpty != true + ?provider.urlImages.last + :"https://i.imgur.com/Uovh293.png"), + fit: BoxFit.cover, + + ), + ), + child: BackdropFilter(filter: ImageFilter.blur(sigmaX: 20.0, sigmaY: 20.0), + child: Container( + decoration: BoxDecoration(color: Colors.black.withOpacity(0.4)), + ),), ),), - ),), - Padding( - padding: EdgeInsets.fromLTRB(0, 0, 0,height*0.03), - child: Align( + Align( alignment: FractionalOffset.bottomCenter, child: OpenContainer( @@ -67,68 +65,74 @@ class _SpotsWidgetState extends State { }, ), ), - ), - Center( - child: Container( - width: 300, - height: 300, - child: RiveAnimation.asset('assets/images/search_spot_animation.riv'), + Center( + child: Container( + width: 300, + height: 300, + child: RiveAnimation.asset('assets/images/search_spot_animation.riv'), + ), ), - ), - Positioned( - top: height*0.68, - width: width, - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - 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, + Positioned( + top: height*0.68, + width: width, + child: 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, + ), ), - ), - SizedBox( - width: width*0.1, - ), - 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.discovery(); + }, + child: Image.asset( + 'assets/images/bouton_discovery.png', + height: 70, + width: 70, + fit: BoxFit.cover, + ), ), - ), - SizedBox( - width: width*0.1, - ), - GestureDetector( - onTap: () { - final provider = Provider.of(context, listen: false); - provider.like(); - }, - child: Image.asset( - 'assets/images/bouton_like.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( + Align( + child:Container( width: 400, height: height*0.8, margin: EdgeInsets.fromLTRB(width*0.09,height/5,width*0.09,height/3.7), @@ -136,28 +140,28 @@ class _SpotsWidgetState extends State { child: Container( child: buildCards(), ) - ) , - ), - IgnorePointer(child: Container(height: 200, - decoration: BoxDecoration( - gradient: gradiant.LinearGradient( - colors: [Colors.black, Colors.transparent], - begin: Alignment.topCenter, - end: Alignment.bottomCenter, - ) - - ),),), - Padding(padding: EdgeInsets.fromLTRB(20, 60, 0, 0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text('COULEURS',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), - Text('Khali',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 17, fontWeight: FontWeight.w200),), - ], - ),), - ], - ), - ) + ) , + ), + IgnorePointer(child: Container(height: 200, + decoration: BoxDecoration( + gradient: gradiant.LinearGradient( + colors: [Colors.black, Colors.transparent], + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + ) + + ),),), + Padding(padding: EdgeInsets.fromLTRB(20, 60, 0, 0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('COULEURS',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), + Text('Khali',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 17, fontWeight: FontWeight.w200),), + ], + ),), + ], + ), + ) ); } @@ -168,13 +172,15 @@ class _SpotsWidgetState extends State { return Stack( children: urlImages .map((urlImage) => CardWidget( - urlImage: urlImage, - isFront: urlImages.last == urlImage, + urlImage: urlImage, + isFront: urlImages.last == urlImage, )) .toList(), ); } + + } @@ -192,61 +198,61 @@ class DisplayInfoWidget extends StatelessWidget{ body: ListView( children: [ Container( - margin: 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),), + margin: 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),), - Container( - margin: 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)), - boxShadow: [ - BoxShadow( - color: Colors.black.withOpacity(0.2), - blurRadius: 5, - spreadRadius: 1, - offset: Offset(2.0, 2.0), // shadow direction: bottom right - ) - ], + Container( + margin: 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)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.2), + blurRadius: 5, + spreadRadius: 1, + offset: 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, - ), - 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),), - - ], - ),), - ], - ),), - ), + 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, + ), + 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),), - ], - ) + ], + ),), + ], + ),), + ), + + ], + ) ), Container( margin: EdgeInsets.fromLTRB(30, 10, 30, 0), @@ -666,13 +672,16 @@ class PreviewInfoWidget extends StatelessWidget{ decoration: BoxDecoration( color: Color(0xFF24243A).withOpacity(0.40), border: Border.all(width: 0, color: Colors.grey.withOpacity(0)), - borderRadius: BorderRadius.all(Radius.circular(15)), + borderRadius: BorderRadius.only( + topLeft: Radius.circular(20), + topRight: Radius.circular(20), + ), ), child: Row( mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text('Me découvrir...',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 17, fontWeight: FontWeight.w800),), - ], + children: [ + 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/sign_in/p_sign_in.dart b/Sources/dafl_project_flutter/lib/views/pages/sign_in/p_sign_in.dart index 2ead9e9..78fac5e 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 @@ -111,6 +111,7 @@ class _SignInPageState extends State { ),Padding(padding: EdgeInsets.fromLTRB(50, 0, 20, 0), child: TextField( + obscureText: true, decoration: InputDecoration( border: InputBorder.none, ), @@ -174,9 +175,10 @@ class _SignInPageState extends State { child:Ink( child: Align( alignment: Alignment.center, - child: Image.asset( - 'assets/images/valid_logo.png', - width: 40, + child: Icon( + Icons.check, + color: Color(0xFF406DE1), + size: 60.0, ), ), padding: EdgeInsets.fromLTRB(0, 10, 0, 0), @@ -202,7 +204,7 @@ class _SignInPageState extends State { Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - Text('Tu n’as pas de compte?', style: TextStyle(color: Colors.white, fontWeight: FontWeight.normal, fontSize: 17)), + Text('Tu n’as pas de compte ?', style: TextStyle(color: Colors.white, fontWeight: FontWeight.normal, fontSize: 17)), GestureDetector( onTap: () { Navigator.of(context).push( @@ -220,15 +222,6 @@ class _SignInPageState extends State { SizedBox(height: 60,), ], ), - Align( - alignment: Alignment.topRight, - child: Container( - padding: EdgeInsets.fromLTRB(0, 20, 20, 0), - child: Text("v1.0", - style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.5) ,fontSize: 17, fontWeight: FontWeight.w700), - ), - ) - ), ], ), 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 167928d..276bd32 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 @@ -112,6 +112,7 @@ class _SignUpPageState extends State { ),Padding(padding: EdgeInsets.fromLTRB(50, 0, 20, 0), child: TextField( + obscureText: true, decoration: InputDecoration( border: InputBorder.none, ), @@ -155,6 +156,7 @@ class _SignUpPageState extends State { ),Padding(padding: EdgeInsets.fromLTRB(50, 0, 20, 0), child: TextField( + obscureText: true, controller: passwordconfirm, decoration: InputDecoration( border: InputBorder.none, @@ -244,9 +246,10 @@ class _SignUpPageState extends State { child:Ink( child: Align( alignment: Alignment.center, - child: Image.asset( - 'assets/images/valid_logo.png', - width: 47, + child: Icon( + Icons.check, + color: Color(0xFF406DE1), + size: 60.0, ), ), padding: EdgeInsets.fromLTRB(0, 10, 0, 0), @@ -272,7 +275,7 @@ class _SignUpPageState extends State { Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - Text('Tu n’as déjà un compte?', style: TextStyle(color: Colors.white, fontWeight: FontWeight.normal, fontSize: 17)), + Text('Tu as déjà un compte ?', style: TextStyle(color: Colors.white, fontWeight: FontWeight.normal, fontSize: 17)), GestureDetector( onTap: () { Navigator.of(context).push( @@ -290,15 +293,6 @@ class _SignUpPageState extends State { SizedBox(height: 60,), ], ), - Align( - alignment: Alignment.topRight, - child: Container( - padding: EdgeInsets.fromLTRB(0, 20, 20, 0), - child: Text("v1.0", - style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.5) ,fontSize: 17, fontWeight: FontWeight.w700), - ), - ) - ), ], ), diff --git a/Sources/dafl_project_flutter/pubspec.lock b/Sources/dafl_project_flutter/pubspec.lock index 77f1c3e..552dcf5 100644 --- a/Sources/dafl_project_flutter/pubspec.lock +++ b/Sources/dafl_project_flutter/pubspec.lock @@ -78,6 +78,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.0.2" + csslib: + dependency: transitive + description: + name: csslib + url: "https://pub.dartlang.org" + source: hosted + version: "0.17.2" cupertino_icons: dependency: "direct main" description: @@ -111,6 +118,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.1" + flutter_native_splash: + dependency: "direct dev" + description: + name: flutter_native_splash + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.11" flutter_test: dependency: "direct dev" description: flutter @@ -142,6 +156,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.0" + html: + dependency: transitive + description: + name: html + url: "https://pub.dartlang.org" + source: hosted + version: "0.15.1" http: dependency: transitive description: @@ -301,6 +322,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.3.1" + universal_io: + dependency: transitive + description: + name: universal_io + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.4" vector_math: dependency: transitive description: @@ -308,6 +336,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.2" + vibration: + dependency: "direct main" + description: + name: vibration + url: "https://pub.dartlang.org" + source: hosted + version: "1.7.6" xml: dependency: transitive description: diff --git a/Sources/dafl_project_flutter/pubspec.yaml b/Sources/dafl_project_flutter/pubspec.yaml index 7f5cd52..cbd0b78 100644 --- a/Sources/dafl_project_flutter/pubspec.yaml +++ b/Sources/dafl_project_flutter/pubspec.yaml @@ -42,6 +42,7 @@ dependencies: rive: ^0.9.1 animations: ^2.0.7 fluttertoast: ^8.1.1 + vibration: ^1.7.6 dev_dependencies: flutter_test: @@ -54,6 +55,16 @@ dev_dependencies: # rules and activating additional ones. flutter_lints: ^2.0.0 flutter_launcher_icons: ^0.10.0 + flutter_native_splash: ^2.2.11 + +flutter_native_splash: + android: true + ios: true + web: false + + color: "#141414" + #background_image: "assets/images/background_blur.png" + image: "assets/images/Logo_launcher_2.png" # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec @@ -63,7 +74,7 @@ dev_dependencies: flutter_icons: android: true ios: true - image_path: "assets/images/Logo_luancher_2.png" + image_path: "assets/images/Logo_launcher_2.png" flutter: