diff --git a/Sources/dafl_project_flutter/android/app/src/profile/AndroidManifest.xml b/Sources/dafl_project_flutter/android/app/src/profile/AndroidManifest.xml
index 9066d9d..721e7d2 100644
--- a/Sources/dafl_project_flutter/android/app/src/profile/AndroidManifest.xml
+++ b/Sources/dafl_project_flutter/android/app/src/profile/AndroidManifest.xml
@@ -5,4 +5,5 @@
to allow setting breakpoints, to provide hot reload, etc.
-->
+
diff --git a/Sources/dafl_project_flutter/lib/main.dart b/Sources/dafl_project_flutter/lib/main.dart
index f1f0439..2ab1678 100644
--- a/Sources/dafl_project_flutter/lib/main.dart
+++ b/Sources/dafl_project_flutter/lib/main.dart
@@ -1,6 +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';
@@ -154,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);
@@ -163,6 +165,7 @@ class CardProvider extends ChangeNotifier{
}
void discovery() {
+ Vibration.vibrate(duration: 20, amplitude: 60);
print("discovery");
_angle = 0;
_position -= Offset(0, -_screenSize.height);
@@ -180,6 +183,7 @@ class CardProvider extends ChangeNotifier{
}
void message(context) {
+ Vibration.vibrate(duration: 20, amplitude: 60);
print("message");
_angle = 0;
_position -= Offset(0, _screenSize.height);
@@ -296,12 +300,13 @@ class CardProvider extends ChangeNotifier{
void like(context) {
+ Vibration.vibrate(duration: 20, amplitude: 60);
print("like");
_angle = 20;
_position += Offset(2 * _screenSize.width, 0);
_nextCard();
-
notifyListeners();
+
}
Future _nextCard() async {
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/w_messages.dart b/Sources/dafl_project_flutter/lib/views/pages/main/w_messages.dart
index 4f51074..3c5db1a 100644
--- a/Sources/dafl_project_flutter/lib/views/pages/main/w_messages.dart
+++ b/Sources/dafl_project_flutter/lib/views/pages/main/w_messages.dart
@@ -1,5 +1,8 @@
+import 'package:dafl_project_flutter/views/pages/main/p_conversation.dart';
+import 'package:dafl_project_flutter/views/pages/main/p_main.dart';
import 'package:flutter/material.dart';
import 'package:fluttericon/font_awesome5_icons.dart';
+import 'package:page_transition/page_transition.dart';
class MessagesWidget extends StatefulWidget {
const MessagesWidget({Key? key}) : super(key: key);
@@ -130,6 +133,7 @@ class MessagesButtonWidget extends StatelessWidget{
children: [
Container(
+ color: Colors.transparent,
margin: EdgeInsets.fromLTRB(0, 5, 0, 0),
child: Row(
children: [
@@ -156,7 +160,6 @@ class MessagesButtonWidget extends StatelessWidget{
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text('Max',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),),
- Spacer(),
Text('1 jour(s)',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.8) ,fontSize: 15, fontWeight: FontWeight.w400),),
],
),
@@ -206,7 +209,17 @@ class ListWaitingWidget extends StatelessWidget{
children: [
SizedBox(height: 40,),
- MessagesButtonWidget(),
+ 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(),
+ ),
],
);
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 8408c11..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);
@@ -82,6 +83,7 @@ class _SpotsWidgetState extends State {
final provider = Provider.of(context, listen: false);
provider.dislike();
+
},
child: Image.asset(
'assets/images/bouton_dislike.png',
@@ -178,6 +180,7 @@ class _SpotsWidgetState extends State {
}
+
}
diff --git a/Sources/dafl_project_flutter/pubspec.lock b/Sources/dafl_project_flutter/pubspec.lock
index 4dd48a3..552dcf5 100644
--- a/Sources/dafl_project_flutter/pubspec.lock
+++ b/Sources/dafl_project_flutter/pubspec.lock
@@ -336,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 220a740..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: