vibration sur boutons d'intéractions et fixs

pull/81/head
Lucas Delanier 3 years ago
parent a010a117de
commit e71912c146

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

@ -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 {

@ -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),
)),
);
}
}
}

@ -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(),
),
],
);

@ -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<SpotsWidget> {
final provider = Provider.of<CardProvider>(context, listen: false);
provider.dislike();
},
child: Image.asset(
'assets/images/bouton_dislike.png',
@ -178,6 +180,7 @@ class _SpotsWidgetState extends State<SpotsWidget> {
}
}

@ -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:

@ -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:

Loading…
Cancel
Save