Merge remote-tracking branch 'origin/amelioration_vues'

pull/81/head
Lucas Delanier 3 years ago
commit ccf7e3e81d

@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="?android:colorBackground" /> <item>
<bitmap android:gravity="fill" android:src="@drawable/background"/>
<!-- You can insert your own image assets here --> </item>
<!-- <item> <item>
<bitmap <bitmap android:gravity="center" android:src="@drawable/splash"/>
android:gravity="center" </item>
android:src="@mipmap/launch_image" />
</item> -->
</layer-list> </layer-list>

@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white" /> <item>
<bitmap android:gravity="fill" android:src="@drawable/background"/>
<!-- You can insert your own image assets here --> </item>
<!-- <item> <item>
<bitmap <bitmap android:gravity="center" android:src="@drawable/splash"/>
android:gravity="center" </item>
android:src="@mipmap/launch_image" />
</item> -->
</layer-list> </layer-list>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 442 B

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 721 B

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 39 KiB

@ -5,6 +5,9 @@
<!-- Show a splash screen on the activity. Automatically removed when <!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame --> the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item> <item name="android:windowBackground">@drawable/launch_background</item>
<item name="android:forceDarkAllowed">false</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
</style> </style>
<!-- Theme applied to the Android Window as soon as the process has started. <!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your This theme determines the color of the Android Window while your

@ -5,4 +5,5 @@
to allow setting breakpoints, to provide hot reload, etc. to allow setting breakpoints, to provide hot reload, etc.
--> -->
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.VIBRATE" />
</manifest> </manifest>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

@ -478,4 +478,4 @@
/* End XCConfigurationList section */ /* End XCConfigurationList section */
}; };
rootObject = 97C146E61CF9000F007C117D /* Project object */; rootObject = 97C146E61CF9000F007C117D /* Project object */;
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 285 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 564 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 30 KiB

@ -1,23 +1,23 @@
{ {
"images" : [ "images" : [
{ {
"idiom" : "universal",
"filename" : "LaunchImage.png", "filename" : "LaunchImage.png",
"idiom" : "universal",
"scale" : "1x" "scale" : "1x"
}, },
{ {
"idiom" : "universal",
"filename" : "LaunchImage@2x.png", "filename" : "LaunchImage@2x.png",
"idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"idiom" : "universal",
"filename" : "LaunchImage@3x.png", "filename" : "LaunchImage@3x.png",
"idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
], ],
"info" : { "info" : {
"version" : 1, "author" : "xcode",
"author" : "xcode" "version" : 1
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 B

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 B

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 B

After

Width:  |  Height:  |  Size: 59 KiB

@ -16,13 +16,19 @@
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3"> <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4"> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" image="LaunchBackground" translatesAutoresizingMaskIntoConstraints="NO" id="tWc-Dq-wcI"/>
</imageView> <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4"></imageView>
</subviews> </subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints> <constraints>
<constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/> <constraint firstItem="YRO-k0-Ey4" firstAttribute="leading" secondItem="Ze5-6b-2t3" secondAttribute="leading" id="3T2-ad-Qdv"/>
<constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/> <constraint firstItem="tWc-Dq-wcI" firstAttribute="bottom" secondItem="Ze5-6b-2t3" secondAttribute="bottom" id="RPx-PI-7Xg"/>
<constraint firstItem="tWc-Dq-wcI" firstAttribute="top" secondItem="Ze5-6b-2t3" secondAttribute="top" id="SdS-ul-q2q"/>
<constraint firstAttribute="trailing" secondItem="tWc-Dq-wcI" secondAttribute="trailing" id="Swv-Gf-Rwn"/>
<constraint firstAttribute="trailing" secondItem="YRO-k0-Ey4" secondAttribute="trailing" id="TQA-XW-tRk"/>
<constraint firstItem="YRO-k0-Ey4" firstAttribute="bottom" secondItem="Ze5-6b-2t3" secondAttribute="bottom" id="duK-uY-Gun"/>
<constraint firstItem="tWc-Dq-wcI" firstAttribute="leading" secondItem="Ze5-6b-2t3" secondAttribute="leading" id="kV7-tw-vXt"/>
<constraint firstItem="YRO-k0-Ey4" firstAttribute="top" secondItem="Ze5-6b-2t3" secondAttribute="top" id="xPn-NY-SIU"/>
</constraints> </constraints>
</view> </view>
</viewController> </viewController>
@ -32,6 +38,7 @@
</scene> </scene>
</scenes> </scenes>
<resources> <resources>
<image name="LaunchImage" width="168" height="185"/> <image name="LaunchImage" width="343" height="343"/>
<image name="LaunchBackground" width="1" height="1"/>
</resources> </resources>
</document> </document>

@ -1,51 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string> <string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key> <key>CFBundleDisplayName</key>
<string>Dafl Project Flutter</string> <string>Dafl Project Flutter</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string> <string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleName</key> <key>CFBundleName</key>
<string>dafl_project_flutter</string> <string>dafl_project_flutter</string>
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>$(FLUTTER_BUILD_NAME)</string> <string>$(FLUTTER_BUILD_NAME)</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>$(FLUTTER_BUILD_NUMBER)</string> <string>$(FLUTTER_BUILD_NUMBER)</string>
<key>LSRequiresIPhoneOS</key> <key>LSRequiresIPhoneOS</key>
<true/> <true/>
<key>UILaunchStoryboardName</key> <key>UILaunchStoryboardName</key>
<string>LaunchScreen</string> <string>LaunchScreen</string>
<key>UIMainStoryboardFile</key> <key>UIMainStoryboardFile</key>
<string>Main</string> <string>Main</string>
<key>UISupportedInterfaceOrientations</key> <key>UISupportedInterfaceOrientations</key>
<array> <array>
<string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string> <string>UIInterfaceOrientationLandscapeRight</string>
</array> </array>
<key>UISupportedInterfaceOrientations~ipad</key> <key>UISupportedInterfaceOrientations~ipad</key>
<array> <array>
<string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string> <string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string> <string>UIInterfaceOrientationLandscapeRight</string>
</array> </array>
<key>UIViewControllerBasedStatusBarAppearance</key> <key>UIViewControllerBasedStatusBarAppearance</key>
<false/> <false/>
<key>CADisableMinimumFrameDurationOnPhone</key> <key>CADisableMinimumFrameDurationOnPhone</key>
<true/> <true/>
<key>UIApplicationSupportsIndirectInputEvents</key> <key>UIApplicationSupportsIndirectInputEvents</key>
<true/> <true/>
</dict> <key>UIStatusBarHidden</key>
<false/>
</dict>
</plist> </plist>

@ -1,5 +1,7 @@
import 'dart:async'; import 'dart:async';
import 'package:dafl_project_flutter/views/pages/main/w_bottomsheet.dart';
import 'package:fluttertoast/fluttertoast.dart'; import 'package:fluttertoast/fluttertoast.dart';
import 'package:vibration/vibration.dart';
import 'dart:math'; import 'dart:math';
import './views/pages/home/p_home.dart'; import './views/pages/home/p_home.dart';
import './views/pages/main/p_main.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{ class CardProvider extends ChangeNotifier{
List<String> _urlImages = []; List<String> _urlImages = [];
@ -80,7 +82,7 @@ class CardProvider extends ChangeNotifier{
notifyListeners(); notifyListeners();
} }
void endPosition() { void endPosition(context) {
_isDragging = false; _isDragging = false;
notifyListeners(); notifyListeners();
@ -89,7 +91,7 @@ class CardProvider extends ChangeNotifier{
switch (status) { switch (status) {
case CardStatus.like: case CardStatus.like:
like(); like(context);
break; break;
case CardStatus.disLike: case CardStatus.disLike:
dislike(); dislike();
@ -97,6 +99,9 @@ class CardProvider extends ChangeNotifier{
case CardStatus.discovery: case CardStatus.discovery:
discovery(); discovery();
break; break;
case CardStatus.message:
message(context);
break;
default: default:
resetPosition(); resetPosition();
} }
@ -120,7 +125,8 @@ class CardProvider extends ChangeNotifier{
CardStatus? getStatus({bool force = false}) { CardStatus? getStatus({bool force = false}) {
final x = _position.dx; final x = _position.dx;
final y = _position.dy; final y = _position.dy;
final forceDiscovery = x.abs() < 20; final forceDiscovery = x.abs() < 80;
final forceMessage = x.abs() < 100;
if(force) { if(force) {
final delta = 100; final delta = 100;
@ -129,15 +135,19 @@ class CardProvider extends ChangeNotifier{
return CardStatus.like; return CardStatus.like;
} else if ( x <= -delta){ } else if ( x <= -delta){
return CardStatus.disLike; 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; return CardStatus.discovery;
} }
} else{ } else{
final delta = 20; final delta = 20;
if(y <= -delta * 2 && forceDiscovery) { if(y <= -delta * 2 && forceDiscovery) {
return CardStatus.message;
} else if (y >= delta *2 && x.abs() < 80) {
return CardStatus.discovery; return CardStatus.discovery;
} else if ( x >= delta) { }else if ( x >= delta) {
return CardStatus.like; return CardStatus.like;
} else if ( x <= -delta) { } else if ( x <= -delta) {
return CardStatus.disLike; return CardStatus.disLike;
@ -145,6 +155,7 @@ class CardProvider extends ChangeNotifier{
} }
} }
void dislike() { void dislike() {
Vibration.vibrate(duration: 20, amplitude: 60);
print("dislike"); print("dislike");
_angle = -20; _angle = -20;
_position -= Offset(2 * _screenSize.width, 0); _position -= Offset(2 * _screenSize.width, 0);
@ -154,9 +165,10 @@ class CardProvider extends ChangeNotifier{
} }
void discovery() { void discovery() {
Vibration.vibrate(duration: 20, amplitude: 60);
print("discovery"); print("discovery");
_angle = 0; _angle = 0;
_position -= Offset(0, _screenSize.height); _position -= Offset(0, -_screenSize.height);
_discovery_card(); _discovery_card();
Fluttertoast.showToast( Fluttertoast.showToast(
msg: 'Ajouté', msg: 'Ajouté',
@ -170,13 +182,131 @@ class CardProvider extends ChangeNotifier{
notifyListeners(); 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"); print("like");
_angle = 20; _angle = 20;
_position += Offset(2 * _screenSize.width, 0); _position += Offset(2 * _screenSize.width, 0);
_nextCard(); _nextCard();
notifyListeners(); notifyListeners();
} }
Future _nextCard() async { Future _nextCard() async {
@ -191,6 +321,12 @@ class CardProvider extends ChangeNotifier{
await Future.delayed(Duration(milliseconds: 200)); await Future.delayed(Duration(milliseconds: 200));
resetPosition(); resetPosition();
} }
Future _message_card() async {
await Future.delayed(Duration(milliseconds: 200));
resetPosition();
}
} }

@ -28,30 +28,12 @@ class _HomePageState extends State<HomePage> {
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: [ children: [
Spacer(),
Image.asset( Image.asset(
'assets/images/Logo.png', 'assets/images/Logo.png',
width: 200, width: 230,
), ),
SizedBox(height: height*0.04,), SizedBox(height: height*0.08,),
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( SizedBox(
height: 55, height: 55,
width: width*0.75, width: width*0.75,
@ -76,7 +58,7 @@ class _HomePageState extends State<HomePage> {
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
),), ),),
SizedBox(height: 220,), Spacer(),
GestureDetector( GestureDetector(
onTap: (){ onTap: (){
Navigator.of(context).push( Navigator.of(context).push(
@ -112,15 +94,6 @@ class _HomePageState extends State<HomePage> {
], ],
), ),
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),
),
)
),
], ],
), ),

@ -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<ConversationPage> createState() => _ConversationPageState();
}
class _ConversationPageState extends State<ConversationPage> {
@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),
)),
);
}
}
}

@ -4,6 +4,7 @@ import './w_settings.dart';
import './w_spot.dart'; import './w_spot.dart';
import './w_discovery.dart'; import './w_discovery.dart';
import './w_profile.dart'; import './w_profile.dart';
import './w_messages.dart';
class MainPage extends StatefulWidget { class MainPage extends StatefulWidget {
const MainPage({Key? key}) : super(key: key); const MainPage({Key? key}) : super(key: key);
@ -21,13 +22,14 @@ class _MainPageState extends State<MainPage> {
DiscoveryWidget(), DiscoveryWidget(),
SpotsWidget(), SpotsWidget(),
Center(child: Text('Tops'),), Center(child: Text('Tops'),),
Center(child: Text('Messages'),), MessagesWidget(),
SettingsWidget(), SettingsWidget(),
]; ];
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double height = MediaQuery.of(context).size.height; double height = MediaQuery.of(context).size.height;
return Scaffold( return Scaffold(
resizeToAvoidBottomInset: false,
body: screens[_index], body: screens[_index],
bottomNavigationBar: NavigationBarTheme( bottomNavigationBar: NavigationBarTheme(
data: NavigationBarThemeData( data: NavigationBarThemeData(

@ -0,0 +1,3 @@
import 'package:flutter/cupertino.dart';

@ -12,7 +12,7 @@ class User{
required this.chanteur, required this.chanteur,
required this.titre, required this.titre,
required this.urlImage, required this.urlImage,
}); });
} }
@ -44,21 +44,21 @@ class _CardWidgetState extends State<CardWidget>{
} }
@override @override
Widget build(BuildContext context) => SizedBox.expand( Widget build(BuildContext context) => SizedBox.expand(
child: widget.isFront ? buildFrontCard() : buildCard(), child: widget.isFront ? buildFrontCard() : buildCard(),
); );
Widget buildCard() => ClipRRect( Widget buildCard() => ClipRRect(
borderRadius: BorderRadius.circular(20), borderRadius: BorderRadius.circular(20),
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
image: DecorationImage(
image: NetworkImage(widget.urlImage),
fit: BoxFit.cover,
alignment: Alignment(0,0),
),
borderRadius: BorderRadius.all(Radius.circular(20)) 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<CardWidget>{
case CardStatus.discovery: 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; return child;
case CardStatus.message:
final child = buildStamp(image: 'assets/images/icon_messages.png', opacity: opacity);
return child;
default: default:
return Container(); return Container();
@ -84,29 +87,29 @@ class _CardWidgetState extends State<CardWidget>{
} }
Widget buildStamp({ Widget buildStamp({
double angle = 0, double angle = 0,
required String image, required String image,
required double opacity, required double opacity,
}) { }) {
return Opacity(opacity: opacity, return Opacity(opacity: opacity,
child: ClipRRect( child: ClipRRect(
borderRadius: BorderRadius.circular(20), borderRadius: BorderRadius.circular(20),
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.black.withOpacity(0.75), color: Colors.black.withOpacity(0.75),
border: Border.all(color: Color(0xFF3F1DC3), width: 6), border: Border.all(color: Color(0xFF3F1DC3), width: 6),
borderRadius: BorderRadius.all(Radius.circular(20)) borderRadius: BorderRadius.all(Radius.circular(20))
),
child: Center(
child: Image.asset(
image,
width: 100,
), ),
child: Center(
child: Image.asset(
image,
width: 100,
),
),
), ),
), ),);
),);
} }
Widget buildFrontCard() => GestureDetector( Widget buildFrontCard() => GestureDetector(
@ -124,7 +127,7 @@ class _CardWidgetState extends State<CardWidget>{
..translate(-center.dx, -center.dy); ..translate(-center.dx, -center.dy);
return AnimatedContainer( return AnimatedContainer(
curve: Curves.easeInOut, curve: Curves.easeOut,
duration: Duration(milliseconds: milliseconds), duration: Duration(milliseconds: milliseconds),
transform: rotatedMatrix..translate(position.dx, position.dy), transform: rotatedMatrix..translate(position.dx, position.dy),
child: Stack( child: Stack(
@ -149,7 +152,7 @@ class _CardWidgetState extends State<CardWidget>{
onPanEnd: (details) { onPanEnd: (details) {
final provider = Provider.of<CardProvider>(context, listen: false); final provider = Provider.of<CardProvider>(context, listen: false);
provider.endPosition(); provider.endPosition(this.context);
}, },

@ -13,162 +13,197 @@ class _DiscoveryWidgetState extends State<DiscoveryWidget> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Container(
backgroundColor: Color(0xFF141414), color: Color(0xFF141414),
resizeToAvoidBottomInset: false,
child: Padding(padding: EdgeInsets.fromLTRB(30, 50, 30, 0),
body: Padding(padding: EdgeInsets.fromLTRB(30, 50, 30, 0), child: Column(
child: Column( crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start, children: [
children: [ Container(
Container( child: Column(
child: Column( crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start, children: [
children: [ Row(
Row( children: [
children: [ Text('Playlist découverte', style: TextStyle(color: Colors.white, fontWeight: FontWeight.w500, fontSize: 25),),
Text('Playlist découverte', style: TextStyle(color: Colors.white, fontWeight: FontWeight.w500, fontSize: 25),), Spacer(),
Spacer(), Icon(FontAwesome5.sort_amount_down, size: 30, color: Colors.white,),
Icon(FontAwesome5.sort_amount_down, size: 30, color: Colors.white,), ]
] ),
), Padding(padding: EdgeInsets.fromLTRB(0, 5, 0, 0)),
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),),
Text('Retrouvez ici vos nouvelles découvertes.', style: TextStyle(color: Colors.grey.withOpacity(0.4), fontSize: 15),), ],
],
),
), ),
Expanded( ),
child: ListView( Expanded(
child: ListView(
children: [
SizedBox(height: 40,), children: [
Container( SizedBox(height: 40,),
margin: EdgeInsets.fromLTRB(0, 10, 0, 0), Container(
child: Column( margin: EdgeInsets.fromLTRB(0, 10, 0, 0),
children: [ child: Column(
children: [
Container(
margin: EdgeInsets.fromLTRB(0, 5, 0, 0), Container(
width: double.infinity, margin: EdgeInsets.fromLTRB(0, 5, 0, 0),
child: Row( width: double.infinity,
children: [ child: Row(
Container( children: [
height: 60, Container(
width: 60, height: 60,
decoration: BoxDecoration( width: 60,
image: DecorationImage( decoration: BoxDecoration(
image: NetworkImage('https://www.goutemesdisques.com/uploads/tx_gmdchron/pi1/L_Etrange_Histoire_de_Mr_Anderson.jpg'), border: Border.all(width: 0, color: Colors.grey.withOpacity(0)),
fit: BoxFit.cover, borderRadius: BorderRadius.all(Radius.circular(10)),
), ),
border: Border.all(width: 0, color: Colors.grey.withOpacity(0)), child: Container(
borderRadius: BorderRadius.all(Radius.circular(10)), 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( Container(
margin: EdgeInsets.fromLTRB(20, 0, 0, 0), margin: EdgeInsets.fromLTRB(20, 0, 0, 0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Text('IVERSON',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), 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),), 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, 5, 0, 0),
), width: double.infinity,
Container( child: Row(
margin: EdgeInsets.fromLTRB(0, 10, 0, 0), children: [
child: Column( Container(
children: [ height: 60,
width: 60,
Container( decoration: BoxDecoration(
margin: EdgeInsets.fromLTRB(0, 5, 0, 0), border: Border.all(width: 0, color: Colors.grey.withOpacity(0)),
width: double.infinity, borderRadius: BorderRadius.all(Radius.circular(10)),
child: Row( ),
children: [ child: Container(
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'),
height: 60, ),),
width: 60, Container(
decoration: BoxDecoration( margin: EdgeInsets.fromLTRB(20, 0, 0, 0),
image: DecorationImage( child: Column(
image: NetworkImage('https://www.goutemesdisques.com/uploads/tx_gmdchron/pi1/L_Etrange_Histoire_de_Mr_Anderson.jpg'), crossAxisAlignment: CrossAxisAlignment.start,
fit: BoxFit.cover, mainAxisAlignment: MainAxisAlignment.center,
), children: [
border: Border.all(width: 0, color: Colors.grey.withOpacity(0)), Text('IVERSON',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),),
borderRadius: BorderRadius.all(Radius.circular(10)), Text('Laylow',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),),
),),
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,
Container( child: Row(
margin: EdgeInsets.fromLTRB(0, 10, 0, 0), children: [
child: Column( Container(
children: [ height: 60,
width: 60,
Container( decoration: BoxDecoration(
margin: EdgeInsets.fromLTRB(0, 5, 0, 0), border: Border.all(width: 0, color: Colors.grey.withOpacity(0)),
width: double.infinity, borderRadius: BorderRadius.all(Radius.circular(10)),
child: Row( ),
children: [ child: Container(
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'),
height: 60, ),),
width: 60, Container(
decoration: BoxDecoration( margin: EdgeInsets.fromLTRB(20, 0, 0, 0),
image: DecorationImage( child: Column(
image: NetworkImage('https://www.goutemesdisques.com/uploads/tx_gmdchron/pi1/L_Etrange_Histoire_de_Mr_Anderson.jpg'), crossAxisAlignment: CrossAxisAlignment.start,
fit: BoxFit.cover, mainAxisAlignment: MainAxisAlignment.center,
), children: [
border: Border.all(width: 0, color: Colors.grey.withOpacity(0)), Text('IVERSON',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),),
borderRadius: BorderRadius.all(Radius.circular(10)), Text('Laylow',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),),
),),
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),),
],
),),
],
),
), ),
),
], ],
) )
), ),
], ],
),
), ),
], ),
),), ],
),),
); );
} }
} }

@ -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<MessagesWidget> createState() => _MessagesWidgetState();
}
class _MessagesWidgetState extends State<MessagesWidget> {
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(),
),
],
);
}
}

@ -16,198 +16,209 @@ class _ProfilWidgetState extends State<ProfilWidget> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
double height = MediaQuery.of(context).size.height; 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( return Container(
color: Color(0xFF141414), color: Color(0xFF141414),
child: Container( child: Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
Container( Container(
width: double.infinity, width: double.infinity,
margin: EdgeInsets.fromLTRB(30, 50, 0, 0), margin: EdgeInsets.fromLTRB(30, 50, 0, 0),
child: Text( child: Text(
"Profil", "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, 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),
), ),
), Container(
Container( margin: EdgeInsets.fromLTRB(0, 10, 0, 40),
height: 55, height: height*0.14,
width: double.infinity, width: height*0.14,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10.0), borderRadius: BorderRadius.circular(100.0),
color: Colors.transparent, color: Colors.blue,border: Border.all(width: 6.0, color: Colors.white),
),
), ),
margin: EdgeInsets.fromLTRB(30, 0, 30, 0), Container(
child: SizedBox(
height: 55, height: 55,
width: double.infinity, width: double.infinity,
child: ElevatedButton( decoration: BoxDecoration(
style: ElevatedButton.styleFrom( borderRadius: BorderRadius.circular(10.0),
backgroundColor: Color(0xFFD9D9D9).withOpacity(0.08), color: Colors.transparent,
shape: RoundedRectangleBorder( ),
borderRadius: BorderRadius.circular(10.0), margin: EdgeInsets.fromLTRB(30, 0, 30, 0),
),// background// foreground child: SizedBox(
), height: 55,
onPressed: () { width: double.infinity,
}, child: ElevatedButton(
child: Row( style: ElevatedButton.styleFrom(
children: [ backgroundColor: Color(0xFFD9D9D9).withOpacity(0.08),
Image.asset('assets/images/fav_logo.png', height: 25,), shape: RoundedRectangleBorder(
SizedBox(width: 12,), borderRadius: BorderRadius.circular(10.0),
Text("Préférences musicales", ),// background// foreground
style: TextStyle(color: Colors.white ,fontSize: 17, fontWeight: FontWeight.w400), ),
textAlign: TextAlign.center, onPressed: () {
), },
Spacer(), child: Row(
Icon(Icons.arrow_forward_ios, color: Colors.white.withOpacity(0.3),), 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),
Container( textAlign: TextAlign.center,
height: 55, ),
width: double.infinity, Spacer(),
decoration: BoxDecoration( Icon(Icons.arrow_forward_ios, color: Colors.white.withOpacity(0.3),),
borderRadius: BorderRadius.circular(10.0), ],
color: Colors.transparent, )
),),
), ),
margin: EdgeInsets.fromLTRB(30, 10, 30, 0), Container(
child: SizedBox(
height: 55, height: 55,
width: double.infinity, width: double.infinity,
child: ElevatedButton( decoration: BoxDecoration(
style: ElevatedButton.styleFrom( borderRadius: BorderRadius.circular(10.0),
backgroundColor: Color(0xFFD9D9D9).withOpacity(0.08), color: Colors.transparent,
shape: RoundedRectangleBorder( ),
borderRadius: BorderRadius.circular(10.0), margin: EdgeInsets.fromLTRB(30, 10, 30, 0),
),// background// foreground child: SizedBox(
), height: 55,
onPressed: () { width: double.infinity,
Navigator.push(context,MaterialPageRoute(builder: (context)=> DisplayInfoWidget())); child: ElevatedButton(
}, style: ElevatedButton.styleFrom(
child: Row( 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: [ children: [
Icon(Icons.remove_red_eye, color: Colors.white,size: 30,), Icon(Icons.wifi_tethering, color: Colors.white, size: 35,),
SizedBox(width: 12,), SizedBox(width: 10,),
Text("Aperçu de mon profil", Text("En cours d'écoute...",
style: TextStyle(color: Colors.white ,fontSize: 17, fontWeight: FontWeight.w400), style: TextStyle(color: Colors.white ,fontSize: 17, fontWeight: FontWeight.w400),
textAlign: TextAlign.center, 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: Container(
Row( margin: EdgeInsets.fromLTRB(0, 10, 0, 0),
mainAxisAlignment: MainAxisAlignment.start, height: height*0.14,
crossAxisAlignment: CrossAxisAlignment.center, decoration: BoxDecoration(
children: [ borderRadius: BorderRadius.circular(15.0),
Container( color: Color(0xFFD9D9D9).withOpacity(0.08),
margin: EdgeInsets.fromLTRB(15, 0, 0, 0), ),
child: ClipRRect( child:
borderRadius: BorderRadius.circular(15), Row(
child: Image( mainAxisAlignment: MainAxisAlignment.start,
height: 90, crossAxisAlignment: CrossAxisAlignment.center,
width: 90, children: [
image: NetworkImage('https://images.genius.com/ef4849be3da5fdb22ea9e656679be3a3.600x600x1.jpg'), 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(
Container( margin: EdgeInsets.fromLTRB(12, 20, 0, 0),
margin: EdgeInsets.fromLTRB(12, 20, 0, 0), child: Column(
child: Column( mainAxisAlignment: MainAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start, children: [
children: [ Text('BAMBINA', style: TextStyle(fontSize:18, fontWeight: FontWeight.w500, color: Colors.white),),
Text('BAMBINA', style: TextStyle(fontSize:18, fontWeight: FontWeight.w500, color: Colors.white),), Text('PNL', style: TextStyle(fontSize:16, fontWeight: FontWeight.w400, color: Colors.grey),),
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), Spacer(),
child: SizedBox( Container(
height: 55, height: 55,
width: double.infinity, width: double.infinity,
child: ElevatedButton( decoration: BoxDecoration(
style: ElevatedButton.styleFrom( borderRadius: BorderRadius.circular(10.0),
backgroundColor: Color(0xFFD9D9D9).withOpacity(0.08), color: Colors.transparent,
shape: RoundedRectangleBorder( ),
borderRadius: BorderRadius.circular(10.0), margin: EdgeInsets.fromLTRB(30, 0, 30, height*0.04),
),// background// foreground child: SizedBox(
), height: 55,
onPressed: () { width: double.infinity,
Navigator.push(context,MaterialPageRoute(builder: (context)=> SettingsWidget())); child: ElevatedButton(
}, style: ElevatedButton.styleFrom(
child: Row( backgroundColor: Color(0xFFD9D9D9).withOpacity(0.08),
children: [ shape: RoundedRectangleBorder(
Icon(Icons.settings, color: Colors.white,size: 30,), borderRadius: BorderRadius.circular(10.0),
SizedBox(width: 12,), ),// background// foreground
Text("Paramètres", ),
style: TextStyle(color: Colors.white ,fontSize: 17, fontWeight: FontWeight.w400), onPressed: () {
textAlign: TextAlign.center, Navigator.push(context,MaterialPageRoute(builder: (context)=> SettingsWidget()));
), },
Spacer(), child: Row(
Icon(Icons.arrow_forward_ios, color: Colors.white.withOpacity(0.3),), 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),),
],
)
),),
),
],
),
), ),
),
); );
} }
} }

@ -30,21 +30,21 @@ class _SettingsWidgetState extends State<SettingsWidget> {
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
Container( Container(
margin: EdgeInsets.fromLTRB(30, height*0.07, 30, 0), margin: EdgeInsets.fromLTRB(30, height*0.07, 30, 0),
width: double.infinity, width: double.infinity,
height: 30, height: 30,
alignment: Alignment.centerLeft, alignment: Alignment.centerLeft,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(0xFFD9D9D9).withOpacity(0.16), color: Color(0xFFD9D9D9).withOpacity(0.16),
borderRadius: BorderRadius.circular(7.0), borderRadius: BorderRadius.circular(7.0),
), ),
child: Padding( child: Padding(
padding: EdgeInsets.fromLTRB(20, 0, 0, 0), padding: EdgeInsets.fromLTRB(20, 0, 0, 0),
child: Text('Pseudo', child: Text('Pseudo',
style: TextStyle( style: TextStyle(
color: Color(0xFFAEAEAE) color: Color(0xFFAEAEAE)
),), ),),
) )
), ),
Padding(padding: EdgeInsets.fromLTRB(30, 0, 30, 0), Padding(padding: EdgeInsets.fromLTRB(30, 0, 30, 0),
child: SizedBox( child: SizedBox(
@ -68,8 +68,8 @@ class _SettingsWidgetState extends State<SettingsWidget> {
), ),
Spacer(), Spacer(),
Padding(padding: EdgeInsets.fromLTRB(0, 0, 20, 0), Padding(padding: EdgeInsets.fromLTRB(0, 0, 20, 0),
child: Text('modifier', child: Text('modifier',
style: TextStyle( color: Colors.blue, fontSize: 17),),), style: TextStyle( color: Colors.blue, fontSize: 17),),),
], ],
), ),
@ -129,3 +129,4 @@ class _SettingsWidgetState extends State<SettingsWidget> {
); );
} }
} }

@ -6,6 +6,7 @@ import 'package:provider/provider.dart';
import '../../../main.dart'; import '../../../main.dart';
import 'package:rive/rive.dart'; import 'package:rive/rive.dart';
import 'package:animations/animations.dart'; import 'package:animations/animations.dart';
import 'package:vibration/vibration.dart';
class SpotsWidget extends StatefulWidget { class SpotsWidget extends StatefulWidget {
const SpotsWidget({Key? key}) : super(key: key); const SpotsWidget({Key? key}) : super(key: key);
@ -26,33 +27,30 @@ class _SpotsWidgetState extends State<SpotsWidget> {
double height = MediaQuery.of(context).size.height; double height = MediaQuery.of(context).size.height;
double width = MediaQuery.of(context).size.width; double width = MediaQuery.of(context).size.width;
final provider = Provider.of<CardProvider>(context); final provider = Provider.of<CardProvider>(context);
return Scaffold( return Container(
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,
), color: Color(0xFF141414),
), child: Container(
child: BackdropFilter(filter: ImageFilter.blur(sigmaX: 20.0, sigmaY: 20.0), height: double.maxFinite,
child: Stack(
children: [
Transform.scale(scale: 1.1,
child: Container( 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)),
),),
),), ),),
),), Align(
Padding(
padding: EdgeInsets.fromLTRB(0, 0, 0,height*0.03),
child: Align(
alignment: FractionalOffset.bottomCenter, alignment: FractionalOffset.bottomCenter,
child: OpenContainer( child: OpenContainer(
@ -67,68 +65,74 @@ class _SpotsWidgetState extends State<SpotsWidget> {
}, },
), ),
), ),
), Center(
Center( child: Container(
child: Container( width: 300,
width: 300, height: 300,
height: 300, child: RiveAnimation.asset('assets/images/search_spot_animation.riv'),
child: RiveAnimation.asset('assets/images/search_spot_animation.riv'), ),
), ),
), Positioned(
Positioned( top: height*0.68,
top: height*0.68, width: width,
width: width, child: Row(
child: Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly,
mainAxisAlignment: MainAxisAlignment.center, children: [
children: [ GestureDetector(
GestureDetector( onTap: () {
onTap: () { final provider = Provider.of<CardProvider>(context, listen: false);
final provider = Provider.of<CardProvider>(context, listen: false); provider.dislike();
provider.dislike();
}, },
child: Image.asset( child: Image.asset(
'assets/images/bouton_dislike.png', 'assets/images/bouton_dislike.png',
height: 70, height: 70,
width: 70, width: 70,
fit: BoxFit.cover, fit: BoxFit.cover,
),
), ),
), GestureDetector(
SizedBox( onTap: () {
width: width*0.1, final provider = Provider.of<CardProvider>(context, listen: false);
), provider.discovery();
GestureDetector( },
onTap: () { child: Image.asset(
final provider = Provider.of<CardProvider>(context, listen: false); 'assets/images/bouton_discovery.png',
provider.discovery(); height: 70,
}, width: 70,
child: Image.asset( fit: BoxFit.cover,
'assets/images/bouton_discovery.png', ),
height: 70,
width: 70,
fit: BoxFit.cover,
), ),
), GestureDetector(
SizedBox( onTap: () {
width: width*0.1, final provider = Provider.of<CardProvider>(context, listen: false);
), provider.message(this.context);
GestureDetector( },
onTap: () { child: Image.asset(
final provider = Provider.of<CardProvider>(context, listen: false); 'assets/images/bouton_messages.png',
provider.like(); height: 70,
}, width: 70,
child: Image.asset( fit: BoxFit.cover,
'assets/images/bouton_like.png', ),
height: 70,
width: 70,
fit: BoxFit.cover,
), ),
), GestureDetector(
], onTap: () {
final provider = Provider.of<CardProvider>(context, listen: false);
provider.like(this.context);
},
child: Image.asset(
'assets/images/bouton_like.png',
height: 70,
width: 70,
fit: BoxFit.cover,
),
),
],
),
), ),
), Align(
Align( child:Container(
child:Container(
width: 400, width: 400,
height: height*0.8, height: height*0.8,
margin: EdgeInsets.fromLTRB(width*0.09,height/5,width*0.09,height/3.7), margin: EdgeInsets.fromLTRB(width*0.09,height/5,width*0.09,height/3.7),
@ -136,28 +140,28 @@ class _SpotsWidgetState extends State<SpotsWidget> {
child: Container( child: Container(
child: buildCards(), child: buildCards(),
) )
) , ) ,
), ),
IgnorePointer(child: Container(height: 200, IgnorePointer(child: Container(height: 200,
decoration: BoxDecoration( decoration: BoxDecoration(
gradient: gradiant.LinearGradient( gradient: gradiant.LinearGradient(
colors: [Colors.black, Colors.transparent], colors: [Colors.black, Colors.transparent],
begin: Alignment.topCenter, begin: Alignment.topCenter,
end: Alignment.bottomCenter, end: Alignment.bottomCenter,
) )
),),), ),),),
Padding(padding: EdgeInsets.fromLTRB(20, 60, 0, 0), Padding(padding: EdgeInsets.fromLTRB(20, 60, 0, 0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text('COULEURS',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), 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),), Text('Khali',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 17, fontWeight: FontWeight.w200),),
], ],
),), ),),
], ],
), ),
) )
); );
} }
@ -168,13 +172,15 @@ class _SpotsWidgetState extends State<SpotsWidget> {
return Stack( return Stack(
children: urlImages children: urlImages
.map((urlImage) => CardWidget( .map((urlImage) => CardWidget(
urlImage: urlImage, urlImage: urlImage,
isFront: urlImages.last == urlImage, isFront: urlImages.last == urlImage,
)) ))
.toList(), .toList(),
); );
} }
} }
@ -192,61 +198,61 @@ class DisplayInfoWidget extends StatelessWidget{
body: ListView( body: ListView(
children: [ children: [
Container( Container(
margin: EdgeInsets.fromLTRB(30, 10, 30, 0), margin: EdgeInsets.fromLTRB(30, 10, 30, 0),
child: Column( child: Column(
children: [ 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( Container(
margin: EdgeInsets.fromLTRB(0, 10, 0, 0), margin: EdgeInsets.fromLTRB(0, 10, 0, 0),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(0xFF2E2C2E), color: Color(0xFF2E2C2E),
border: Border.all(width: 1, color: Colors.grey.withOpacity(0.05)), border: Border.all(width: 1, color: Colors.grey.withOpacity(0.05)),
borderRadius: BorderRadius.all(Radius.circular(20)), borderRadius: BorderRadius.all(Radius.circular(20)),
boxShadow: [ boxShadow: [
BoxShadow( BoxShadow(
color: Colors.black.withOpacity(0.2), color: Colors.black.withOpacity(0.2),
blurRadius: 5, blurRadius: 5,
spreadRadius: 1, spreadRadius: 1,
offset: Offset(2.0, 2.0), // shadow direction: bottom right 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( width: double.infinity,
margin: EdgeInsets.fromLTRB(20, 0, 0, 0), height: 100,
child: Column( child: Padding(padding: EdgeInsets.fromLTRB(10, 10, 10, 10),child: Row(
crossAxisAlignment: CrossAxisAlignment.start, children: [
mainAxisAlignment: MainAxisAlignment.center, Container(
children: [ height: 75,
Text('Ma vie',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),), width: 75,
Text('Dadju',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),), 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( Container(
margin: EdgeInsets.fromLTRB(30, 10, 30, 0), margin: EdgeInsets.fromLTRB(30, 10, 30, 0),
@ -666,13 +672,16 @@ class PreviewInfoWidget extends StatelessWidget{
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(0xFF24243A).withOpacity(0.40), color: Color(0xFF24243A).withOpacity(0.40),
border: Border.all(width: 0, color: Colors.grey.withOpacity(0)), 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( child: Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ 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),),
], ],
), ),
); );

@ -111,6 +111,7 @@ class _SignInPageState extends State<SignInPage> {
),Padding(padding: EdgeInsets.fromLTRB(50, 0, 20, 0), ),Padding(padding: EdgeInsets.fromLTRB(50, 0, 20, 0),
child: TextField( child: TextField(
obscureText: true,
decoration: InputDecoration( decoration: InputDecoration(
border: InputBorder.none, border: InputBorder.none,
), ),
@ -174,9 +175,10 @@ class _SignInPageState extends State<SignInPage> {
child:Ink( child:Ink(
child: Align( child: Align(
alignment: Alignment.center, alignment: Alignment.center,
child: Image.asset( child: Icon(
'assets/images/valid_logo.png', Icons.check,
width: 40, color: Color(0xFF406DE1),
size: 60.0,
), ),
), ),
padding: EdgeInsets.fromLTRB(0, 10, 0, 0), padding: EdgeInsets.fromLTRB(0, 10, 0, 0),
@ -202,7 +204,7 @@ class _SignInPageState extends State<SignInPage> {
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Text('Tu nas pas de compte?', style: TextStyle(color: Colors.white, fontWeight: FontWeight.normal, fontSize: 17)), Text('Tu nas pas de compte ?', style: TextStyle(color: Colors.white, fontWeight: FontWeight.normal, fontSize: 17)),
GestureDetector( GestureDetector(
onTap: () { onTap: () {
Navigator.of(context).push( Navigator.of(context).push(
@ -220,15 +222,6 @@ class _SignInPageState extends State<SignInPage> {
SizedBox(height: 60,), 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),
),
)
),
], ],
), ),

@ -112,6 +112,7 @@ class _SignUpPageState extends State<SignUpPage> {
),Padding(padding: EdgeInsets.fromLTRB(50, 0, 20, 0), ),Padding(padding: EdgeInsets.fromLTRB(50, 0, 20, 0),
child: TextField( child: TextField(
obscureText: true,
decoration: InputDecoration( decoration: InputDecoration(
border: InputBorder.none, border: InputBorder.none,
), ),
@ -155,6 +156,7 @@ class _SignUpPageState extends State<SignUpPage> {
),Padding(padding: EdgeInsets.fromLTRB(50, 0, 20, 0), ),Padding(padding: EdgeInsets.fromLTRB(50, 0, 20, 0),
child: TextField( child: TextField(
obscureText: true,
controller: passwordconfirm, controller: passwordconfirm,
decoration: InputDecoration( decoration: InputDecoration(
border: InputBorder.none, border: InputBorder.none,
@ -244,9 +246,10 @@ class _SignUpPageState extends State<SignUpPage> {
child:Ink( child:Ink(
child: Align( child: Align(
alignment: Alignment.center, alignment: Alignment.center,
child: Image.asset( child: Icon(
'assets/images/valid_logo.png', Icons.check,
width: 47, color: Color(0xFF406DE1),
size: 60.0,
), ),
), ),
padding: EdgeInsets.fromLTRB(0, 10, 0, 0), padding: EdgeInsets.fromLTRB(0, 10, 0, 0),
@ -272,7 +275,7 @@ class _SignUpPageState extends State<SignUpPage> {
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Text('Tu nas 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( GestureDetector(
onTap: () { onTap: () {
Navigator.of(context).push( Navigator.of(context).push(
@ -290,15 +293,6 @@ class _SignUpPageState extends State<SignUpPage> {
SizedBox(height: 60,), 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),
),
)
),
], ],
), ),

@ -78,6 +78,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.2" version: "3.0.2"
csslib:
dependency: transitive
description:
name: csslib
url: "https://pub.dartlang.org"
source: hosted
version: "0.17.2"
cupertino_icons: cupertino_icons:
dependency: "direct main" dependency: "direct main"
description: description:
@ -111,6 +118,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.1" 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: flutter_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter
@ -142,6 +156,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0" version: "2.1.0"
html:
dependency: transitive
description:
name: html
url: "https://pub.dartlang.org"
source: hosted
version: "0.15.1"
http: http:
dependency: transitive dependency: transitive
description: description:
@ -301,6 +322,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.3.1" 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: vector_math:
dependency: transitive dependency: transitive
description: description:
@ -308,6 +336,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.2" version: "2.1.2"
vibration:
dependency: "direct main"
description:
name: vibration
url: "https://pub.dartlang.org"
source: hosted
version: "1.7.6"
xml: xml:
dependency: transitive dependency: transitive
description: description:

@ -42,6 +42,7 @@ dependencies:
rive: ^0.9.1 rive: ^0.9.1
animations: ^2.0.7 animations: ^2.0.7
fluttertoast: ^8.1.1 fluttertoast: ^8.1.1
vibration: ^1.7.6
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
@ -54,6 +55,16 @@ dev_dependencies:
# rules and activating additional ones. # rules and activating additional ones.
flutter_lints: ^2.0.0 flutter_lints: ^2.0.0
flutter_launcher_icons: ^0.10.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 # For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec # following page: https://dart.dev/tools/pub/pubspec
@ -63,7 +74,7 @@ dev_dependencies:
flutter_icons: flutter_icons:
android: true android: true
ios: true ios: true
image_path: "assets/images/Logo_luancher_2.png" image_path: "assets/images/Logo_launcher_2.png"
flutter: flutter:

Loading…
Cancel
Save