diff --git a/.drone.yml b/.drone.yml
new file mode 100644
index 0000000..7747b7e
--- /dev/null
+++ b/.drone.yml
@@ -0,0 +1,55 @@
+kind: pipeline
+type: docker
+name: DAFLPipeline
+
+trigger:
+ event:
+ - push
+
+steps:
+# build CONTAINER for app-build on cirrusci IMAGE
+- name: app-build
+ image: cirrusci/flutter:stable
+ commands:
+ - flutter doctor
+ - cd ./Sources/dafl_project_flutter/
+ - flutter build apk
+
+# build CONTAINER for sonar on cirrusci IMAGE
+- name: code-analysis
+ image: cirrusci/flutter:stable
+ environment:
+ SONAR_TOKEN:
+ from_secret: sonar_token
+ settings:
+ sources: ./Sources/dafl_project_flutter
+ commands:
+ - export SONAR_SCANNER_VERSION=4.7.0.2747
+ - export SONAR_SCANNER_HOME=$HOME/.sonar/sonar-scanner-$SONAR_SCANNER_VERSION-linux
+ - curl --create-dirs -sSLo $HOME/.sonar/sonar-scanner.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-$SONAR_SCANNER_VERSION-linux.zip
+ - unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/
+ - export PATH=$SONAR_SCANNER_HOME/bin:$PATH
+ - export SONAR_SCANNER_OPTS="-server"
+ - sonar-scanner -D sonar.projectKey=DAFLMusic -D sonar.sources=. -D sonar.host.url=https://codefirst.iut.uca.fr/sonar
+ depends_on: [ app-build ]
+
+- name: web-server
+ image: plugins/docker
+ settings:
+ dockerfile: ./Sources/api_redirect/Dockerfile
+ context: Sources/api_redirect/
+ registry: hub.codefirst.iut.uca.fr
+ repo: hub.codefirst.iut.uca.fr/felix.mielcarek/dafl_music
+ username:
+ from_secret: secret-registry-username
+ password:
+ from_secret: secret-registry-password
+
+- name: deploy-container
+ image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest
+ environment:
+ IMAGENAME: hub.codefirst.iut.uca.fr/felix.mielcarek/dafl_music:latest
+ CONTAINERNAME: apiredirect
+ COMMAND: create
+ OVERWRITE: true
+ depends_on: [ web-server ]
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/Daflv4.iml b/.idea/Daflv4.iml
new file mode 100644
index 0000000..23209a3
--- /dev/null
+++ b/.idea/Daflv4.iml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml
new file mode 100644
index 0000000..0fa6055
--- /dev/null
+++ b/.idea/libraries/Dart_Packages.xml
@@ -0,0 +1,428 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Dart_SDK.xml b/.idea/libraries/Dart_SDK.xml
new file mode 100644
index 0000000..6ae284f
--- /dev/null
+++ b/.idea/libraries/Dart_SDK.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..85c8ded
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/Images/MCD.png b/Documentation/Images/MCD.png
new file mode 100644
index 0000000..b100b2a
Binary files /dev/null and b/Documentation/Images/MCD.png differ
diff --git a/Documentation/Images/MLD.png b/Documentation/Images/MLD.png
new file mode 100644
index 0000000..7c3e5d8
Binary files /dev/null and b/Documentation/Images/MLD.png differ
diff --git a/Documentation/Images/Mld.png b/Documentation/Images/Mld.png
deleted file mode 100644
index 296ec26..0000000
Binary files a/Documentation/Images/Mld.png and /dev/null differ
diff --git a/Documentation/Images/backlog.png b/Documentation/Images/backlog.png
new file mode 100644
index 0000000..8fe46dc
Binary files /dev/null and b/Documentation/Images/backlog.png differ
diff --git a/README.md b/README.md
index 0990995..38bbbaa 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,54 @@
-# DAFLMusic
+
+
+
+[](https://codefirst.iut.uca.fr/DAFLDev/DAFLMusic)
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=DAFLMusic)
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=DAFLMusic)
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=DAFLMusic)
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=DAFLMusic)
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=DAFLMusic)
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=DAFLMusic)
+[](https://codefirst.iut.uca.fr/sonar/dashboard?id=DAFLMusic)
+
+# Le contexte du projet
+
+Ce projet est un travail universitaire pour la deuxième année du B.U.T Informatique de Clermont-Ferrand. Il correspond au travail demandé pour la SAE 3.01, nous disposons de 480 heures théoriques pour le réaliser.
+
+
+
+# L'application
+
+
+
+* Notre projet est un réseau social destiné aux appareils mobiles Android
+et iOS focalisé sur la musique.
+
+* Chaque utilisateur voit défiler les profils des autres personnes utilisant
+notre application et se trouvant dans un périmètre restreint (environ une
+cinquantaine de mètres).
+
+* Un profil peut être "liké" et si les deux personnes se "likent" mutuellement, un "match" a alors lieu, et une conversation est créée pour qu'elles puissent entrer en contact. Après un "like", le profil suivant est affiché. Si ce profil ne l'intéresse pas il peut le "passer", et l'application propose un autre profil, etc.
+
+* Pour chaque profil affiché, il est possible d'envoyer un message, ce qui
+créera une conversation en attente chez l'autre personne. Elle pourra
+ensuite choisir de répondre ou de le supprimer si elle n'est pas intéressée.
+
+* Un profil affiché est anonyme. Seulement la musique écoutée en temps
+réel par la personne possédant le compte est renseignée.
+
+* En cliquant sur un bouton, il est aussi possible de voir des informations
+complémentaires toujours sur les goûts musicaux du profil. Ces
+informations sont remplies préalablement par chaque utilisateur, cela
+peut être par exemple : "Quelle est la musique que je passerais à mon
+mariage ?".
+
+* Les informations complémentaires de tous les utilisateurs sont aussi
+utilisées pour établir des statistiques dans une page à part. Il y sera
+indiqué, pour chaque catégorie, quelle est la musique la plus choisie parmi
+tous les utilisateurs.
+
+* Si l'utilisateur est consentant, après un "Match", il peut accepter de
+révéler quelques informations personnelles (nom, âge, sexe).
+Le but est qu'une mise en contact entre 2 personnes se base uniquement
+sur des critères musicaux et non personnels.
\ No newline at end of file
diff --git a/Sources/api_redirect/Dockerfile b/Sources/api_redirect/Dockerfile
new file mode 100644
index 0000000..bde780c
--- /dev/null
+++ b/Sources/api_redirect/Dockerfile
@@ -0,0 +1,2 @@
+FROM httpd:2.4
+COPY ./public-html/ /usr/local/apache2/htdocs/
\ No newline at end of file
diff --git a/Sources/api_redirect/README.md b/Sources/api_redirect/README.md
new file mode 100644
index 0000000..eb6681e
--- /dev/null
+++ b/Sources/api_redirect/README.md
@@ -0,0 +1,5 @@
+# 🚧 WIP
+
+La commande dans le Dockerfile pour copier les fichiers dans le repertoire racine du serveur web ne fonctionne pas. Elle est tirée de [la documentation de l'image httpd officielle](https://hub.docker.com/_/httpd).
+
+Dans l'état actuelle des choses le serveur tourne et [est accessible](https://codefirst.iut.uca.fr/containers/api-redirect-felixmielcarek), cependant nos fichiers ne sont pas atteignables pour une raison encore non identifiée.
\ No newline at end of file
diff --git a/Sources/api_redirect/public-html/index.html b/Sources/api_redirect/public-html/index.html
new file mode 100644
index 0000000..4f1af38
--- /dev/null
+++ b/Sources/api_redirect/public-html/index.html
@@ -0,0 +1 @@
+Hello world Dafl !
\ No newline at end of file
diff --git a/Sources/dafl_project_flutter/README.md b/Sources/dafl_project_flutter/README.md
index 0e10b97..898b53d 100644
--- a/Sources/dafl_project_flutter/README.md
+++ b/Sources/dafl_project_flutter/README.md
@@ -1,46 +1 @@
-# dafl_project_flutter
-
-*```dafl_project_flutter``` est le nom de notre projet Flutter.*
-
-## Gestion de Git
-
-* Ceci est un **ordre** !
-
-Faire les commit en ligne de commande car Android Studio déclare des erreurs factices dans des fichiers créés pour les plateformes.
-
-1. Ajout de tous les fichiers modifiés / ou créés dans la staging area (fichers locaux prêts à être commit)
-
-```shell
-git add -A
-```
-
-2. Validation des fichiers destinées à être envoyé sur le repo
-
-```shell
-git commit -m "Message corresponding to modifications done in my commmit"
-```
-
-*Insérer un message entre les doubles quotes après le ```-m```*
-
-3. Envoi des commit
-
-```shell
-git push origin my_branch
-```
-
-*Remplacer ```my_branch``` par la branche sur laquelle on a voulu trailler*
-
-## Convention de nommage des répertoires
-
-```
-mon_repertoire
-```
-
-*Penser à ajouter un ```.gitkeep``` pour que Git conserve le repertoire.*
-
-## Convention de nommage des fichiers
-
-| Contenu du fichier | Convention |
-| :- | :- |
-| Page de vue | ```p_ma_page.dart``` |
-| Page de widget | ```w_mon_widget.dart``` |
+# dafl_project_flutter
\ No newline at end of file
diff --git a/Sources/dafl_project_flutter/android/app/src/main/res/drawable-hdpi/splash.png b/Sources/dafl_project_flutter/android/app/src/main/res/drawable-hdpi/splash.png
new file mode 100644
index 0000000..a82e3d2
Binary files /dev/null and b/Sources/dafl_project_flutter/android/app/src/main/res/drawable-hdpi/splash.png differ
diff --git a/Sources/dafl_project_flutter/android/app/src/main/res/drawable-mdpi/splash.png b/Sources/dafl_project_flutter/android/app/src/main/res/drawable-mdpi/splash.png
new file mode 100644
index 0000000..0a87ceb
Binary files /dev/null and b/Sources/dafl_project_flutter/android/app/src/main/res/drawable-mdpi/splash.png differ
diff --git a/Sources/dafl_project_flutter/android/app/src/main/res/drawable-v21/background.png b/Sources/dafl_project_flutter/android/app/src/main/res/drawable-v21/background.png
new file mode 100644
index 0000000..5245854
Binary files /dev/null and b/Sources/dafl_project_flutter/android/app/src/main/res/drawable-v21/background.png differ
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-xhdpi/splash.png b/Sources/dafl_project_flutter/android/app/src/main/res/drawable-xhdpi/splash.png
new file mode 100644
index 0000000..cb1d40f
Binary files /dev/null and b/Sources/dafl_project_flutter/android/app/src/main/res/drawable-xhdpi/splash.png differ
diff --git a/Sources/dafl_project_flutter/android/app/src/main/res/drawable-xxhdpi/splash.png b/Sources/dafl_project_flutter/android/app/src/main/res/drawable-xxhdpi/splash.png
new file mode 100644
index 0000000..a37f79f
Binary files /dev/null and b/Sources/dafl_project_flutter/android/app/src/main/res/drawable-xxhdpi/splash.png differ
diff --git a/Sources/dafl_project_flutter/android/app/src/main/res/drawable-xxxhdpi/splash.png b/Sources/dafl_project_flutter/android/app/src/main/res/drawable-xxxhdpi/splash.png
new file mode 100644
index 0000000..8290add
Binary files /dev/null and b/Sources/dafl_project_flutter/android/app/src/main/res/drawable-xxxhdpi/splash.png differ
diff --git a/Sources/dafl_project_flutter/android/app/src/main/res/drawable/background.png b/Sources/dafl_project_flutter/android/app/src/main/res/drawable/background.png
new file mode 100644
index 0000000..5245854
Binary files /dev/null and b/Sources/dafl_project_flutter/android/app/src/main/res/drawable/background.png differ
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-v31/styles.xml b/Sources/dafl_project_flutter/android/app/src/main/res/values-v31/styles.xml
new file mode 100644
index 0000000..f5fdb6b
--- /dev/null
+++ b/Sources/dafl_project_flutter/android/app/src/main/res/values-v31/styles.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
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-50x50@1x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png
new file mode 100644
index 0000000..647a321
Binary files /dev/null and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png differ
diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png
new file mode 100644
index 0000000..9e1c2cd
Binary files /dev/null and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png differ
diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png
new file mode 100644
index 0000000..cfe599b
Binary files /dev/null and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png differ
diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png
new file mode 100644
index 0000000..f916bd4
Binary files /dev/null and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.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-72x72@1x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png
new file mode 100644
index 0000000..ffcdcee
Binary files /dev/null and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png differ
diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png
new file mode 100644
index 0000000..ffa5dc7
Binary files /dev/null and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.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/LaunchBackground.imageset/Contents.json b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json
new file mode 100644
index 0000000..9f447e1
--- /dev/null
+++ b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "background.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png
new file mode 100644
index 0000000..5245854
Binary files /dev/null and b/Sources/dafl_project_flutter/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.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 7e524af..5b3aa76 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,9 +28,10 @@ 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,
@@ -59,6 +60,7 @@ class _HomePageState extends State {
SizedBox(
height: height * 0.015,
),
+ SizedBox(height: height*0.08,),
SizedBox(
height: 55,
width: width * 0.75,
@@ -87,11 +89,8 @@ class _HomePageState extends State {
fontWeight: FontWeight.bold),
textAlign: TextAlign.center,
),
- ),
- ),
- const SizedBox(
- height: 220,
- ),
+ ),),
+ Spacer(),
GestureDetector(
onTap: () {
Navigator.of(context).push(
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 12ec26b..a601a14 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
@@ -124,6 +124,7 @@ class _SignUpPageState extends State {
const Padding(
padding: EdgeInsets.fromLTRB(50, 0, 20, 0),
child: TextField(
+ obscureText: true,
decoration: InputDecoration(
border: InputBorder.none,
),
@@ -167,6 +168,7 @@ class _SignUpPageState extends State {
Padding(
padding: const EdgeInsets.fromLTRB(50, 0, 20, 0),
child: TextField(
+ obscureText: true,
controller: passwordconfirm,
decoration: const InputDecoration(
border: InputBorder.none,
@@ -265,7 +267,15 @@ class _SignUpPageState extends State {
child: HomePage()),
);
},
- child: Ink(
+ child:Ink(
+ child: Align(
+ alignment: Alignment.center,
+ child: Icon(
+ Icons.check,
+ color: Color(0xFF406DE1),
+ size: 60.0,
+ ),
+ ),
padding: const EdgeInsets.fromLTRB(0, 10, 0, 0),
width: 83,
height: 83,
@@ -281,13 +291,6 @@ class _SignUpPageState extends State {
),
],
),
- child: Align(
- alignment: Alignment.center,
- child: Image.asset(
- 'assets/images/valid_logo.png',
- width: 47,
- ),
- ),
),
),
),
diff --git a/Sources/dafl_project_flutter/pubspec.lock b/Sources/dafl_project_flutter/pubspec.lock
index 6b9d26c..f4febd2 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:
@@ -385,6 +406,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.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:
@@ -392,6 +420,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 3ff0c6f..2350aec 100644
--- a/Sources/dafl_project_flutter/pubspec.yaml
+++ b/Sources/dafl_project_flutter/pubspec.yaml
@@ -44,6 +44,7 @@ dependencies:
fluttertoast: ^8.1.1
url_launcher: ^6.1.6
uni_links: ^0.5.1
+ vibration: ^1.7.6
dev_dependencies:
flutter_test:
@@ -56,6 +57,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
@@ -65,7 +76,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: