Merge remote-tracking branch 'origin/messagerie_link_view'

# Conflicts:
#	.idea/libraries/Dart_Packages.xml
#	Sources/dafl_project_flutter/lib/controller/controller.dart
#	Sources/dafl_project_flutter/lib/main.dart
#	Sources/dafl_project_flutter/lib/model/user.dart
#	Sources/dafl_project_flutter/lib/views/pages/home/p_home.dart
#	Sources/dafl_project_flutter/lib/views/pages/main/p_conversation.dart
#	Sources/dafl_project_flutter/lib/views/pages/main/p_main.dart
#	Sources/dafl_project_flutter/lib/views/pages/main/w_discovery.dart
#	Sources/dafl_project_flutter/lib/views/pages/main/w_messages.dart
#	Sources/dafl_project_flutter/lib/views/pages/main/w_profile.dart
#	Sources/dafl_project_flutter/lib/views/pages/main/w_settings.dart
#	Sources/dafl_project_flutter/lib/views/pages/main/w_top.dart
#	Sources/dafl_project_flutter/lib/views/pages/sign_in/p_sign_in.dart
#	Sources/dafl_project_flutter/lib/views/pages/sign_up/p_sign_up.dart
#	Sources/dafl_project_flutter/pubspec.yaml
messagerie_lucas_test
Félix MIELCAREK 2 years ago
commit fe281b9ea2

@ -5,438 +5,590 @@
<entry key="animations"> <entry key="animations">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/animations-2.0.7/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/animations-2.0.7/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="archive"> <entry key="archive">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/archive-3.3.2/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/archive-3.3.2/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="args"> <entry key="args">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/args-2.3.1/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/args-2.3.1/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="async"> <entry key="async">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/async-2.9.0/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/async-2.9.0/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="boolean_selector"> <entry key="boolean_selector">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/boolean_selector-2.1.0/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/boolean_selector-2.1.0/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="characters"> <entry key="characters">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/characters-1.2.1/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/characters-1.2.1/lib" />
</list>
</value>
</entry>
<entry key="charcode">
<value>
<list>
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/charcode-1.3.1/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="checked_yaml"> <entry key="checked_yaml">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/checked_yaml-2.0.1/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/checked_yaml-2.0.1/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="cli_util"> <entry key="cli_util">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/cli_util-0.3.5/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/cli_util-0.3.5/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="clock"> <entry key="clock">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/clock-1.1.1/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/clock-1.1.1/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="collection"> <entry key="collection">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/collection-1.16.0/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/collection-1.16.0/lib" />
</list>
</value>
</entry>
<entry key="convert">
<value>
<list>
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/convert-3.1.1/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="crypto"> <entry key="crypto">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/crypto-3.0.2/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/crypto-3.0.2/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="csslib"> <entry key="csslib">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/csslib-0.17.2/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/csslib-0.17.2/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="cupertino_icons"> <entry key="cupertino_icons">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/cupertino_icons-1.0.5/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/cupertino_icons-1.0.5/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="fake_async"> <entry key="fake_async">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/fake_async-1.3.1/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/fake_async-1.3.1/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="flutter"> <entry key="ffi">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/packages/flutter/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/ffi-2.0.1/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="flutter_inappwebview"> <entry key="file">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.7.1/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/file-6.1.4/lib" />
</list>
</value>
</entry>
<entry key="flutter">
<value>
<list>
<option value="$USER_HOME$/flutter/packages/flutter/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="flutter_launcher_icons"> <entry key="flutter_launcher_icons">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_launcher_icons-0.10.0/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_launcher_icons-0.10.0/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="flutter_lints"> <entry key="flutter_lints">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_lints-2.0.1/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_lints-2.0.1/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="flutter_native_splash"> <entry key="flutter_native_splash">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_native_splash-2.2.11/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_native_splash-2.2.11/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="flutter_test"> <entry key="flutter_test">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/packages/flutter_test/lib" /> <option value="$USER_HOME$/flutter/packages/flutter_test/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="flutter_web_plugins"> <entry key="flutter_web_plugins">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/packages/flutter_web_plugins/lib" /> <option value="$USER_HOME$/flutter/packages/flutter_web_plugins/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="fluttericon"> <entry key="fluttericon">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/fluttericon-2.0.0/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/fluttericon-2.0.0/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="fluttertoast"> <entry key="fluttertoast">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/fluttertoast-8.1.1/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/fluttertoast-8.1.1/lib" />
</list>
</value>
</entry>
<entry key="font_awesome_flutter">
<value>
<list>
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/font_awesome_flutter-10.2.1/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="graphs"> <entry key="graphs">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/graphs-2.1.0/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/graphs-2.1.0/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="html"> <entry key="html">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/html-0.15.1/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/html-0.15.1/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="http"> <entry key="http">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/http-0.13.5/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/http-0.13.5/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="http_parser"> <entry key="http_parser">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/http_parser-4.0.2/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/http_parser-4.0.2/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="image"> <entry key="image">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/image-3.2.2/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/image-3.2.2/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="js"> <entry key="js">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/js-0.6.4/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/js-0.6.4/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="json_annotation"> <entry key="json_annotation">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/json_annotation-4.7.0/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/json_annotation-4.7.0/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="lints"> <entry key="lints">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/lints-2.0.0/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/lints-2.0.0/lib" />
</list>
</value>
</entry>
<entry key="logging">
<value>
<list>
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/logging-1.1.0/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="matcher"> <entry key="matcher">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.12/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.12/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="material_color_utilities"> <entry key="material_color_utilities">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/material_color_utilities-0.1.5/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/material_color_utilities-0.1.5/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="meta"> <entry key="meta">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/meta-1.8.0/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/meta-1.8.0/lib" />
</list>
</value>
</entry>
<entry key="mime">
<value>
<list>
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/mime-1.0.2/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="nested"> <entry key="nested">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/nested-1.0.0/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/nested-1.0.0/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="page_transition"> <entry key="page_transition">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/page_transition-2.0.9/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/page_transition-2.0.9/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="path"> <entry key="path">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/path-1.8.2/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path-1.8.2/lib" />
</list>
</value>
</entry>
<entry key="path_provider">
<value>
<list>
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-2.0.11/lib" />
</list>
</value>
</entry>
<entry key="path_provider_android">
<value>
<list>
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_android-2.0.21/lib" />
</list>
</value>
</entry>
<entry key="path_provider_ios">
<value>
<list>
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_ios-2.0.11/lib" />
</list>
</value>
</entry>
<entry key="path_provider_linux">
<value>
<list>
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_linux-2.1.7/lib" />
</list>
</value>
</entry>
<entry key="path_provider_macos">
<value>
<list>
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_macos-2.0.6/lib" />
</list>
</value>
</entry>
<entry key="path_provider_platform_interface">
<value>
<list>
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_platform_interface-2.0.5/lib" />
</list>
</value>
</entry>
<entry key="path_provider_windows">
<value>
<list>
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_windows-2.1.3/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="petitparser"> <entry key="petitparser">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/petitparser-5.0.0/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/petitparser-5.0.0/lib" />
</list>
</value>
</entry>
<entry key="platform">
<value>
<list>
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/platform-3.1.0/lib" />
</list>
</value>
</entry>
<entry key="plugin_platform_interface">
<value>
<list>
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/plugin_platform_interface-2.1.3/lib" />
</list>
</value>
</entry>
<entry key="postgresql2">
<value>
<list>
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/postgresql2-1.0.3/lib" />
</list>
</value>
</entry>
<entry key="process">
<value>
<list>
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/process-4.2.4/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="provider"> <entry key="provider">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/provider-6.0.4/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/provider-6.0.4/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="random_string"> <entry key="rikulo_commons">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/random_string-2.3.1/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/rikulo_commons-5.2.1/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="rive"> <entry key="rive">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/rive-0.9.1/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/rive-0.9.1/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="sky_engine"> <entry key="sky_engine">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/bin/cache/pkg/sky_engine/lib" /> <option value="$USER_HOME$/flutter/bin/cache/pkg/sky_engine/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="source_span"> <entry key="source_span">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/source_span-1.9.0/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/source_span-1.9.0/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="stack_trace"> <entry key="stack_trace">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.10.0/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.10.0/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="stream_channel"> <entry key="stream_channel">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/stream_channel-2.1.0/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/stream_channel-2.1.0/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="string_scanner"> <entry key="string_scanner">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.1.1/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.1.1/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="term_glyph"> <entry key="term_glyph">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.2.1/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.2.1/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="test_api"> <entry key="test_api">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/test_api-0.4.12/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/test_api-0.4.12/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="typed_data"> <entry key="typed_data">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/typed_data-1.3.1/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/typed_data-1.3.1/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="universal_io"> <entry key="universal_io">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/universal_io-2.0.4/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/universal_io-2.0.4/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="vector_math"> <entry key="vector_math">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/vector_math-2.1.2/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/vector_math-2.1.2/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="vibration"> <entry key="vibration">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/vibration-1.7.6/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/vibration-1.7.6/lib" />
</list>
</value>
</entry>
<entry key="win32">
<value>
<list>
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/win32-3.0.1/lib" />
</list>
</value>
</entry>
<entry key="xdg_directories">
<value>
<list>
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/xdg_directories-0.2.0+2/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="xml"> <entry key="xml">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/xml-6.1.0/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/xml-6.1.0/lib" />
</list> </list>
</value> </value>
</entry> </entry>
<entry key="yaml"> <entry key="yaml">
<value> <value>
<list> <list>
<option value="$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/yaml-3.1.1/lib" /> <option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/yaml-3.1.1/lib" />
</list> </list>
</value> </value>
</entry> </entry>
</option> </option>
</properties> </properties>
<CLASSES> <CLASSES>
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/animations-2.0.7/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/animations-2.0.7/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/archive-3.3.2/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/archive-3.3.2/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/args-2.3.1/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/args-2.3.1/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/async-2.9.0/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/async-2.9.0/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/boolean_selector-2.1.0/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/boolean_selector-2.1.0/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/characters-1.2.1/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/characters-1.2.1/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/checked_yaml-2.0.1/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/charcode-1.3.1/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/cli_util-0.3.5/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/checked_yaml-2.0.1/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/clock-1.1.1/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/cli_util-0.3.5/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/collection-1.16.0/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/clock-1.1.1/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/crypto-3.0.2/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/collection-1.16.0/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/csslib-0.17.2/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/convert-3.1.1/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/cupertino_icons-1.0.5/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/crypto-3.0.2/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/fake_async-1.3.1/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/csslib-0.17.2/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.7.1/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/cupertino_icons-1.0.5/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_launcher_icons-0.10.0/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/fake_async-1.3.1/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_lints-2.0.1/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/ffi-2.0.1/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_native_splash-2.2.11/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/file-6.1.4/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/fluttericon-2.0.0/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_launcher_icons-0.10.0/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/fluttertoast-8.1.1/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_lints-2.0.1/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/graphs-2.1.0/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_native_splash-2.2.11/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/html-0.15.1/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/fluttericon-2.0.0/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/http-0.13.5/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/fluttertoast-8.1.1/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/http_parser-4.0.2/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/font_awesome_flutter-10.2.1/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/image-3.2.2/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/graphs-2.1.0/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/js-0.6.4/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/html-0.15.1/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/json_annotation-4.7.0/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/http-0.13.5/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/lints-2.0.0/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/http_parser-4.0.2/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.12/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/image-3.2.2/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/material_color_utilities-0.1.5/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/js-0.6.4/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/meta-1.8.0/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/json_annotation-4.7.0/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/nested-1.0.0/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/lints-2.0.0/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/page_transition-2.0.9/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/logging-1.1.0/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/path-1.8.2/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.12/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/petitparser-5.0.0/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/material_color_utilities-0.1.5/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/provider-6.0.4/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/meta-1.8.0/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/random_string-2.3.1/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/mime-1.0.2/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/rive-0.9.1/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/nested-1.0.0/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/source_span-1.9.0/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/page_transition-2.0.9/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.10.0/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path-1.8.2/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/stream_channel-2.1.0/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-2.0.11/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.1.1/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_android-2.0.21/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.2.1/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_ios-2.0.11/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/test_api-0.4.12/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_linux-2.1.7/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/typed_data-1.3.1/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_macos-2.0.6/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/universal_io-2.0.4/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_platform_interface-2.0.5/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/vector_math-2.1.2/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_windows-2.1.3/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/vibration-1.7.6/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/petitparser-5.0.0/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/xml-6.1.0/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/platform-3.1.0/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/.pub-cache/hosted/pub.dartlang.org/yaml-3.1.1/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/plugin_platform_interface-2.1.3/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/bin/cache/pkg/sky_engine/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/postgresql2-1.0.3/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/packages/flutter/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/process-4.2.4/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/packages/flutter_test/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/provider-6.0.4/lib" />
<root url="file://$PROJECT_DIR$/../../../../flutter/packages/flutter_web_plugins/lib" /> <root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/rikulo_commons-5.2.1/lib" />
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/rive-0.9.1/lib" />
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/source_span-1.9.0/lib" />
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.10.0/lib" />
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/stream_channel-2.1.0/lib" />
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.1.1/lib" />
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.2.1/lib" />
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/test_api-0.4.12/lib" />
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/typed_data-1.3.1/lib" />
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/universal_io-2.0.4/lib" />
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/vector_math-2.1.2/lib" />
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/vibration-1.7.6/lib" />
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/win32-3.0.1/lib" />
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/xdg_directories-0.2.0+2/lib" />
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/xml-6.1.0/lib" />
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/yaml-3.1.1/lib" />
<root url="file://$USER_HOME$/flutter/bin/cache/pkg/sky_engine/lib" />
<root url="file://$USER_HOME$/flutter/packages/flutter/lib" />
<root url="file://$USER_HOME$/flutter/packages/flutter_test/lib" />
<root url="file://$USER_HOME$/flutter/packages/flutter_web_plugins/lib" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />

@ -5,6 +5,8 @@ PODS:
- fluttertoast (0.0.2): - fluttertoast (0.0.2):
- Flutter - Flutter
- Toast - Toast
- home_indicator (0.0.1):
- Flutter
- path_provider_ios (0.0.1): - path_provider_ios (0.0.1):
- Flutter - Flutter
- Toast (4.0.0) - Toast (4.0.0)
@ -15,6 +17,7 @@ DEPENDENCIES:
- Flutter (from `Flutter`) - Flutter (from `Flutter`)
- flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`) - flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`)
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
- home_indicator (from `.symlinks/plugins/home_indicator/ios`)
- path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`) - path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`)
- vibration (from `.symlinks/plugins/vibration/ios`) - vibration (from `.symlinks/plugins/vibration/ios`)
@ -29,6 +32,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/flutter_native_splash/ios" :path: ".symlinks/plugins/flutter_native_splash/ios"
fluttertoast: fluttertoast:
:path: ".symlinks/plugins/fluttertoast/ios" :path: ".symlinks/plugins/fluttertoast/ios"
home_indicator:
:path: ".symlinks/plugins/home_indicator/ios"
path_provider_ios: path_provider_ios:
:path: ".symlinks/plugins/path_provider_ios/ios" :path: ".symlinks/plugins/path_provider_ios/ios"
vibration: vibration:
@ -38,6 +43,7 @@ SPEC CHECKSUMS:
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef
fluttertoast: 74526702fea2c060ea55dde75895b7e1bde1c86b fluttertoast: 74526702fea2c060ea55dde75895b7e1bde1c86b
home_indicator: 60c6a4b60d17173cd164c112eb9be37055b23af8
path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02 path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02
Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 Toast: 91b396c56ee72a5790816f40d3a94dd357abc196
vibration: 7d883d141656a1c1a6d8d238616b2042a51a1241 vibration: 7d883d141656a1c1a6d8d238616b2042a51a1241

@ -30,15 +30,14 @@ class Controller {
currentUser = user; currentUser = user;
} }
void changeUsernameCourant(String newName) { void changeUsernameCourant(String newName){
currentUser.usernameDafl = newName; if(newName !=null){
this.currentUser.usernameDafl = newName;
} }
void changePasswordCourant(String newPass) {
currentUser.passwDafl = newPass;
} }
void changePasswordCourant(String newPass){
Future<bool> searchByUsername(String username) async { if(newPass !=null){
return await _searcher.searchByUsername(username); this.currentUser.passwDafl = newPass;
}
} }
} }

@ -1,4 +1,5 @@
import 'dart:async'; import 'dart:async';
import 'dart:io';
import 'package:fluttertoast/fluttertoast.dart'; import 'package:fluttertoast/fluttertoast.dart';
import 'package:vibration/vibration.dart'; import 'package:vibration/vibration.dart';
import 'dart:math'; import 'dart:math';
@ -9,6 +10,9 @@ import 'package:flutter/services.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:rive/rive.dart' as riv; import 'package:rive/rive.dart' as riv;
import '../controller/controller.dart'; import '../controller/controller.dart';
import 'package:home_indicator/home_indicator.dart';
import '../model/music.dart';
import 'model/music.dart';
import 'model/spot.dart'; import 'model/spot.dart';
import 'model/user.dart'; import 'model/user.dart';
import 'api/api.dart'; import 'api/api.dart';
@ -29,7 +33,7 @@ class MyApp extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
Paint.enableDithering = true; Paint.enableDithering = true;
SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky); SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);
return ChangeNotifierProvider( return ChangeNotifierProvider(
create: (context) => CardProvider(), create: (context) => CardProvider(),
child: const MaterialApp( child: const MaterialApp(
@ -147,7 +151,6 @@ class CardProvider extends ChangeNotifier {
} }
void dislike() { void dislike() {
Vibration.vibrate(duration: 20, amplitude: 60);
dev.log("dislike"); dev.log("dislike");
_angle = -20; _angle = -20;
_position -= Offset(2 * _screenSize.width, 0); _position -= Offset(2 * _screenSize.width, 0);
@ -157,39 +160,40 @@ class CardProvider extends ChangeNotifier {
} }
void discovery() { void discovery() {
Vibration.vibrate(duration: 20, amplitude: 60);
dev.log("discovery"); dev.log("discovery");
_angle = 0; _angle = 0;
_position -= Offset(0, -_screenSize.height); _position -= Offset(0, -_screenSize.height);
_discoveryCard(); _discovery_card();
dev.log("discovery"); dev.log("discovery");
if (MyApp.controller.currentUser.discovery if(MyApp.controller.currentUser.Discovery.contains(MyApp().controller.currentUser.Spots2.last.music)){
.contains(MyApp.controller.currentUser.spots.last.music)) { MyApp.controller.currentUser.Discovery.remove(MyApp().controller.currentUser.Spots2.last.music);
MyApp.controller.currentUser.discovery
.remove(MyApp.controller.currentUser.spots.last.music);
Fluttertoast.showToast( Fluttertoast.showToast(
msg: 'Supprimer', msg: 'Supprimer',
toastLength: Toast.LENGTH_SHORT, toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.TOP, gravity: ToastGravity.TOP,
timeInSecForIosWeb: 2, timeInSecForIosWeb: 2,
backgroundColor: Colors.red, backgroundColor: Colors.red,
textColor: Colors.white); textColor: Colors.white
} else { );
MyApp.controller.currentUser }
.addDiscovery(MyApp.controller.currentUser.spots.last.music); else{
if(MyApp.controller.currentUser.Spots2.last != null){
MyApp.controller.currentUser.addDiscovery(MyApp().controller.currentUser.Spots2.last.music);
Fluttertoast.showToast( Fluttertoast.showToast(
msg: 'Ajouté', msg: 'Ajouté',
toastLength: Toast.LENGTH_SHORT, toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.TOP, gravity: ToastGravity.TOP,
timeInSecForIosWeb: 2, timeInSecForIosWeb: 2,
backgroundColor: Colors.deepPurple, backgroundColor: Colors.deepPurple,
textColor: Colors.white); textColor: Colors.white
);
notifyListeners(); notifyListeners();
} }
}
} }
void message(context) { void message(context) {
Vibration.vibrate(duration: 20, amplitude: 60);
dev.log("message"); dev.log("message");
_angle = 0; _angle = 0;
_position -= Offset(0, _screenSize.height); _position -= Offset(0, _screenSize.height);
@ -204,16 +208,17 @@ class CardProvider extends ChangeNotifier {
maxWidth: 600, maxWidth: 600,
maxHeight: double.infinity, maxHeight: double.infinity,
), ),
builder: (context) => buildSheet(), builder: (context) => buildSheet(context),);
);
notifyListeners(); notifyListeners();
} }
Widget buildSheet(context){
Widget buildSheet() {
final messageTextField = TextEditingController(); final messageTextField = TextEditingController();
return Container( return SingleChildScrollView(
height: 550, padding:
width: 350, EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom),
child: Container(
height: 500,
width: 380,
decoration: BoxDecoration( decoration: BoxDecoration(
boxShadow: [ boxShadow: [
BoxShadow( BoxShadow(
@ -230,50 +235,46 @@ class CardProvider extends ChangeNotifier {
offset: const Offset(0.0, 0.0), offset: const Offset(0.0, 0.0),
blurRadius: 0.0, blurRadius: 0.0,
spreadRadius: 0.0, spreadRadius: 0.0,
), //BoxShadow//BoxShadow ),//BoxShadow//BoxShadow
], ],
color: const Color(0xFF232123), color: Color(0xFF232123),
borderRadius: const BorderRadius.only( borderRadius: BorderRadius.only(
topRight: Radius.circular(30), topRight: Radius.circular(30),
topLeft: Radius.circular(30), topLeft: Radius.circular(30),
), ),
), ),
child: Padding( child: Padding(
padding: const EdgeInsets.fromLTRB(20, 10, 20, 10), padding: EdgeInsets.fromLTRB(20, 10, 20, 10),
child: Column( child: Column(
children: [ children: [
Container( Container(
height: 5, height: 5,
width: 130, width: 130,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(20), borderRadius: BorderRadius.circular(20),
color: const Color(0xFF8A8A8A), color: Color(0xFF8A8A8A),
), ),
), ),
const SizedBox( SizedBox(height: 30,),
height: 30,
),
Container( Container(
width: double.infinity, width: double.infinity,
height: 300, height: 300,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(20), borderRadius: BorderRadius.circular(20),
color: const Color(0xFF302C30), color: Color(0xFF302C30),
), ),
child: Padding( child: Padding(
padding: const EdgeInsets.all(20), padding: EdgeInsets.all(20),
child: TextField( child: TextField(
keyboardAppearance: Brightness.dark,
controller: messageTextField, controller: messageTextField,
maxLength: 300, maxLength: 300,
style: TextStyle( style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 17, fontWeight: FontWeight.w200),
fontFamily: 'DMSans',
color: Colors.white.withOpacity(1),
fontSize: 17,
fontWeight: FontWeight.w200),
expands: true, expands: true,
maxLines: null, maxLines: null,
keyboardType: TextInputType.multiline, textInputAction: TextInputAction.send,
decoration: const InputDecoration( decoration: InputDecoration(
hintStyle: TextStyle( hintStyle: TextStyle(
color: Colors.white, color: Colors.white,
), ),
@ -283,34 +284,29 @@ class CardProvider extends ChangeNotifier {
), ),
), ),
), ),
const SizedBox( SizedBox(height: 20,),
height: 20,
),
SizedBox( SizedBox(
width: double.infinity, width: double.infinity,
height: 70, height: 70,
child: ElevatedButton( child: ElevatedButton(
onPressed: () { onPressed: () {
sendMessage(messageTextField.text, sendMessage(messageTextField.text, MyApp().controller.currentUser.Spots2.last.user);
MyApp.controller.currentUser.spots.last.user);
}, },
style: ElevatedButton.styleFrom( style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xFF3F1DC3), primary: Color(0xFF3F1DC3),
textStyle: const TextStyle( textStyle: TextStyle(
fontSize: 20, fontWeight: FontWeight.bold), fontSize: 20,
fontWeight: FontWeight.bold),
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(17)), borderRadius: BorderRadius.circular(17)
),
), ),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: [ children: [
const Text("Envoyer"), Text("Envoyer"),
Opacity( Opacity(opacity: 0.2,
opacity: 0.2, child: Image.asset("assets/images/send_logo.png",),)
child: Image.asset(
"assets/images/send_logo.png",
),
)
], ],
), ),
), ),
@ -318,6 +314,8 @@ class CardProvider extends ChangeNotifier {
], ],
), ),
), ),
),
); );
} }
@ -326,7 +324,6 @@ class CardProvider extends ChangeNotifier {
} }
void like(context) { void like(context) {
Vibration.vibrate(duration: 20, amplitude: 60);
dev.log("like"); dev.log("like");
_angle = 20; _angle = 20;
_position += Offset(2 * _screenSize.width, 0); _position += Offset(2 * _screenSize.width, 0);
@ -397,8 +394,9 @@ class _SplashState extends State<Splash> {
); );
} }
} }
Object Notify(int index, context, {bool isError = true}){
Object notify(int index, context, {bool isError = true}) { double height = MediaQuery.of(context).size.height;
double width = MediaQuery.of(context).size.width;
String message; String message;
if (isError == true) { if (isError == true) {
switch (index) { switch (index) {
@ -442,47 +440,41 @@ Object notify(int index, context, {bool isError = true}) {
clipBehavior: Clip.none, clipBehavior: Clip.none,
children: [ children: [
Container( Container(
padding: const EdgeInsets.all(16), padding: EdgeInsets.fromLTRB(20,height/110,20,0),
height: 90, height: 90,
child: Row(
children: [
Container(
height: 48,
width: 48,
),
Expanded(child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text("Ho ho !", style: TextStyle( fontWeight: FontWeight.bold),),
Text(message,style: TextStyle(
),
overflow: TextOverflow.ellipsis,
maxLines: 2,),
],
),),
],
),
decoration: BoxDecoration( decoration: BoxDecoration(
image: const DecorationImage( image: DecorationImage(
image: AssetImage("assets/images/backgroundNotify.png"), image: AssetImage("assets/images/backgroundNotify.png"),
fit: BoxFit.cover), fit: BoxFit.cover),
gradient: const LinearGradient( gradient: LinearGradient(colors: [Color(0xFF81052a),Color(0xFF810548)],begin: Alignment.topLeft, end: Alignment.bottomRight),
colors: [Color(0xFF81052a), Color(0xFF810548)], borderRadius: BorderRadius.all(Radius.circular(20)),
begin: Alignment.topLeft,
end: Alignment.bottomRight),
borderRadius: const BorderRadius.all(Radius.circular(20)),
boxShadow: [ boxShadow: [
BoxShadow( BoxShadow(
color: Colors.black.withOpacity(0.3), color: Colors.black.withOpacity(0.3),
blurRadius: 10, blurRadius: 10,
offset: const Offset(4, 8), // Shadow position offset: Offset(4, 8), // Shadow position
), ),
], ],
), ),
child: Row(children: [
const SizedBox(
height: 48,
width: 48,
), ),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text(
"Oh oh !",
style: TextStyle(
fontSize: 20, fontWeight: FontWeight.bold),
),
Text(
message,
style: const TextStyle(),
overflow: TextOverflow.ellipsis,
maxLines: 2,
)
]))
])),
Positioned( Positioned(
top: -50, top: -50,
left: -20, left: -20,
@ -520,7 +512,7 @@ Object notify(int index, context, {bool isError = true}) {
clipBehavior: Clip.none, clipBehavior: Clip.none,
children: [ children: [
Container( Container(
padding: const EdgeInsets.all(16), padding: EdgeInsets.fromLTRB(20,height/110,20,0),
height: 90, height: 90,
decoration: BoxDecoration( decoration: BoxDecoration(
image: const DecorationImage( image: const DecorationImage(

@ -4,8 +4,9 @@ class Message{
User sender; User sender;
String content; String content;
Message(this.sender,this.content);
@override @override
String toString() => "$sender : $content"; String toString() => "$sender : $content";
Message(this.sender, this.content);
} }

@ -58,88 +58,50 @@ class _HomePageState extends State<HomePage> {
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
), ),
),
SizedBox(
height: height * 0.015,
),
SizedBox(
height: height * 0.08,
),
SizedBox(
height: 55,
width: width * 0.75,
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xFF5C1DC3),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15.0),
), // background// foreground
),
onPressed: () { onPressed: () {
Navigator.of(context).push( Navigator.of(context).push(PageTransition(
PageTransition( duration: Duration(milliseconds: 300),
duration: const Duration(milliseconds: 300), reverseDuration: Duration(milliseconds: 300),
reverseDuration: const Duration(milliseconds: 300),
type: PageTransitionType.rightToLeftJoined, type: PageTransitionType.rightToLeftJoined,
childCurrent: widget, childCurrent: widget,
child: const SignUpPage()), child: SignUpPage()),
); );
}, },
child: const Text( child: Text("SINSCRIRE MAINTENANT",
"SINSCRIRE MAINTENANT", style: TextStyle(color: Colors.white ,fontSize: 17, fontWeight: FontWeight.bold,fontFamily: "DMSans"),
style: TextStyle(
color: Colors.white,
fontSize: 17,
fontWeight: FontWeight.bold),
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
), ),),
), Spacer(),
const Spacer(),
GestureDetector( GestureDetector(
onTap: () { onTap: (){
Navigator.of(context).push( Navigator.of(context).push(
PageTransition( PageTransition(
duration: const Duration(milliseconds: 300), duration: Duration(milliseconds: 300),
reverseDuration: const Duration(milliseconds: 300), reverseDuration: Duration(milliseconds: 300),
type: PageTransitionType.rightToLeftJoined, type: PageTransitionType.rightToLeftJoined,
childCurrent: widget, childCurrent: widget,
child: const SignInPage()), child: SignInPage()),
); );
}, },
child: Container( child: Container(
margin: const EdgeInsets.fromLTRB(0, 0, 0, 0), child: Align(
alignment: Alignment.center,
child: Text("SE CONNECTER",
style: TextStyle(color: Colors.white ,fontFamily: "DMSans",fontSize: 17, fontWeight: FontWeight.bold),
textAlign: TextAlign.center,
),
),
margin: EdgeInsets.fromLTRB(0, 0, 0, 0),
width: double.infinity, width: double.infinity,
height: 80, height: 80,
decoration: const BoxDecoration( decoration: BoxDecoration(
color: Color(0xFF232123), color: Color(0xFF232123),
border: Border( border: Border(
top: BorderSide( top: BorderSide(width: 1.5, color: Color(0xFF3C3C3C)),
width: 1.5, color: Color(0xFF3C3C3C)), ),// Set rounded corner radius
), // Set rounded corner radius
), ),
child: const Align(
alignment: Alignment.center,
child: Text(
"SE CONNECTER",
style: TextStyle(
color: Colors.white,
fontSize: 17,
fontWeight: FontWeight.bold),
textAlign: TextAlign.center,
))))
]),
Align(
alignment: Alignment.topRight,
child: Container(
padding: const 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),
), ),
)), )),
], ],

@ -1,4 +1,11 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:dafl_project_flutter/main.dart';
import 'package:dafl_project_flutter/model/user.dart';
import 'package:dafl_project_flutter/views/pages/main/w_messages.dart';
import 'package:flutter/cupertino.dart';
import 'package:dafl_project_flutter/model/message.dart';
class ConversationPage extends StatefulWidget { class ConversationPage extends StatefulWidget {
const ConversationPage({Key? key}) : super(key: key); const ConversationPage({Key? key}) : super(key: key);
@ -8,20 +15,114 @@ class ConversationPage extends StatefulWidget {
} }
class _ConversationPageState extends State<ConversationPage> { class _ConversationPageState extends State<ConversationPage> {
User destinataire = new User("test1", '1234');
List<Widget> messages= [];
bool isNull = true;
final messageTextField = TextEditingController();
void SendMessage(String content){
setState(() {
messages.add(MessageWidget(Message(MyApp().controller.currentUser,content)));
});
}
Widget MessageWidget(Message message) {
if(message.sender != MyApp().controller.currentUser){
return Align(
alignment: Alignment.centerLeft,
child: 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(15, 15, 15, 15),
child: Text(message.content,style: TextStyle(fontFamily: 'DMSans', color: Colors.white ,fontSize: 15, fontWeight: FontWeight.w400),
)),
),
);
}
else{
return Align(
alignment: Alignment.centerRight,
child: 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.all(15),
child: Text(message.content,style: TextStyle(fontFamily: 'DMSans', color: Colors.white ,fontSize: 15, fontWeight: FontWeight.w400),),
),),
);
}
}
@override
void initState() {
super.initState();
messageTextField.addListener(_checkIfNull);
print("INITSATE");
}
@override
void dispose() {
messageTextField.dispose();
super.dispose();
}
void _checkIfNull(){
if(messageTextField.text.length > 0){
setState(() {
isNull = false;
});
}
else{
setState(() {
isNull = true;
});
}
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double height = MediaQuery.of(context).size.height; double height = MediaQuery.of(context).size.height;
double width = MediaQuery.of(context).size.width; double width = MediaQuery.of(context).size.width;
ScrollController listScrollController = ScrollController();
return Scaffold( return Scaffold(
extendBodyBehindAppBar: true, extendBodyBehindAppBar: true,
resizeToAvoidBottomInset: true, resizeToAvoidBottomInset: true,
appBar: AppBar( appBar: AppBar(
backgroundColor: const Color(0xFF141414), elevation: 20,
backgroundColor: Color(0xFF141414),
toolbarHeight: 70, toolbarHeight: 70,
title: Row( title: Container(
child: Row(
children: [ children: [
Container( Container(
padding: const EdgeInsets.fromLTRB(0, 10, 0, 0), padding: EdgeInsets.fromLTRB(0, 10, 0, 0),
height: 40, height: 40,
width: 40, width: 40,
decoration: BoxDecoration( decoration: BoxDecoration(
@ -29,73 +130,79 @@ class _ConversationPageState extends State<ConversationPage> {
color: Colors.blue, color: Colors.blue,
), ),
), ),
const SizedBox( SizedBox(width: 20,),
width: 20, Text("Max"),
Spacer(),
IconButton(
splashColor: Colors.grey.withOpacity(0.2),
splashRadius: 30,
onPressed: () {
showModalBottomSheet(
isDismissible: true,
useRootNavigator: true,
isScrollControlled: true,
backgroundColor: Colors.transparent,
context: context,
constraints: BoxConstraints(
maxWidth: 600,
maxHeight: double.infinity,
),
builder: (context) => buildSheet(),);
},
icon: Icon(Icons.report_problem, color: Colors.grey.withOpacity(0.3),size: 25,),
), ),
const Text("Max"),
], ],
), ),
elevation: 0, ),
), ),
body: SingleChildScrollView( body: SingleChildScrollView(
child: Container( child:
color: const Color(0xFF141414), Container(
height: height * 0.92, color: Color(0xFF141414),
height: height*0.92,
width: double.infinity, width: double.infinity,
child: ListView( child: ListView.builder(
reverse: true, controller: listScrollController,
scrollDirection: Axis.vertical, physics: BouncingScrollPhysics(),
children: [ itemCount: messages.length,
message( itemBuilder: (context, index) {
'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.', return messages[index];
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),
],
),
), ),
), ),
bottomSheet: BottomAppBar( bottomSheet: BottomAppBar(
color: const Color(0xFF141414), color: Color(0xFF141414),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
Container( Container(
height: height * 0.08, height: height*0.08,
color: Colors.transparent, color: Colors.transparent,
width: width * 0.8, width: width*0.9,
child: Container( child: Container(
margin: const EdgeInsets.fromLTRB(20, 10, 0, 10), margin: EdgeInsets.fromLTRB(10, 10, 10, 10),
decoration: BoxDecoration( decoration: BoxDecoration(
border: Border.all( border: Border.all(
width: 1, width: 1,
color: const Color(0xFF2F2F2F), color: Color(0xFF2F2F2F),
), ),
borderRadius: BorderRadius.circular(100), borderRadius: BorderRadius.circular(100),
color: const Color(0xFF141414), color: Color(0xFF141414),
), ),
child: const Padding( child: Padding(
padding: EdgeInsets.fromLTRB(10, 0, 10, 0), padding: EdgeInsets.fromLTRB(15, 0, 15, 0),
child: TextField( child: TextField(
controller: messageTextField,
style: TextStyle(color: Colors.white), style: TextStyle(color: Colors.white),
decoration: InputDecoration( decoration: InputDecoration(
hintStyle: TextStyle(color: Colors.white), hintStyle: TextStyle(color: Colors.white.withOpacity(0.7)),
border: InputBorder.none, border: InputBorder.none,
hintText: "Envoyer un message...", hintText: "Votre message...",
), ),
cursorColor: Colors.purple, cursorColor: Colors.purple,
textAlign: TextAlign.left, textAlign: TextAlign.left,
@ -103,75 +210,216 @@ class _ConversationPageState extends State<ConversationPage> {
), ),
), ),
), ),
GestureDetector(
onTap: isNull?
null:
() {
SendMessage(messageTextField.text);
if (listScrollController.hasClients) {
final position = listScrollController.position.maxScrollExtent;
listScrollController.jumpTo(position);
}
messageTextField.clear();
},
child: isNull == true?
Container(
height: 1,
width: 1,
):
Container( Container(
width: 40, width: 40,
height: 40, height: 40,
margin: const EdgeInsets.fromLTRB(0, 0, 0, 0), margin: EdgeInsets.fromLTRB(0, 0, 0, 0),
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(100), borderRadius: BorderRadius.circular(100),
color: Colors.blue, gradient: LinearGradient(
colors: [Color(0xff8e24a1), Color(0xff8163ff)],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
)
), ),
child: const Icon( child: Transform.rotate(angle: -300,
Icons.send, child: Icon(Icons.arrow_back, size: 26, color: Colors.white,),)
size: 20,
color: Colors.white,
), ),
) )
], ],
), ),
), ),
); );
} }
Widget message(String message, int user) { Widget buildSheet(){
if (user == 0) { String dropdownValue = list.first;
return Container( final messageTextField = TextEditingController();
margin: const EdgeInsets.fromLTRB(40, 7, 80, 7), return SingleChildScrollView(
padding:
EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom),
child:Container(
height: 500,
width: double.infinity,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: const BorderRadius.only( boxShadow: [
bottomRight: Radius.circular(20), BoxShadow(
topLeft: Radius.circular(20), color: Colors.black.withOpacity(0.4),
topRight: Radius.circular(20), offset: const Offset(
bottomLeft: Radius.circular(20), 0,
0,
), ),
border: Border.all( blurRadius: 10.0,
width: 1.5, color: const Color(0xFF9C9C9C).withOpacity(0.3)), spreadRadius: 2.0,
color: const Color(0xFF191919),
), ),
child: Padding( BoxShadow(
padding: const EdgeInsets.fromLTRB(15, 15, 15, 15), color: Colors.white.withOpacity(0.3),
child: Text( offset: const Offset(0.0, 0.0),
message, blurRadius: 0.0,
style: const TextStyle( spreadRadius: 0.0,
fontFamily: 'DMSans', ),//BoxShadow//BoxShadow
color: Colors.white, ],
fontSize: 15, color: Color(0xFF232123),
fontWeight: FontWeight.w400),
)),
);
} else {
return Container(
margin: const EdgeInsets.fromLTRB(80, 7, 40, 7),
decoration: const BoxDecoration(
borderRadius: BorderRadius.only( borderRadius: BorderRadius.only(
bottomRight: Radius.circular(20), topRight: Radius.circular(30),
bottomLeft: Radius.circular(20), topLeft: Radius.circular(30),
topLeft: Radius.circular(20),
topRight: Radius.circular(20),
), ),
color: Color(0xFF2F2F2F),
), ),
child: Padding( child: Padding(
padding: const EdgeInsets.fromLTRB(15, 15, 15, 15), padding: EdgeInsets.fromLTRB(20, 10, 20, 10),
child: Text( child: Column(
message, mainAxisAlignment: MainAxisAlignment.spaceBetween,
style: const TextStyle( children: [
fontFamily: 'DMSans',
color: Colors.white, Container(
height: 5,
width: 130,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(20),
color: Color(0xFF8A8A8A),
),
),
Padding(padding: EdgeInsets.fromLTRB(0, 20, 0, 20),
child: Text('Signaler', style: TextStyle(color: Colors.white, fontSize: 20, fontWeight: FontWeight.w500),),),
Container(
padding: EdgeInsets.fromLTRB(20, 10, 20, 10),
width: double.infinity,
decoration: BoxDecoration(
color: Colors.grey.shade900,
borderRadius: BorderRadius.circular(15),
),
child: Column(
children: [
Text('Vous êtes sur le point de signaler cet utilisateur. Veuillez renseigner le motif du signalement.', style: TextStyle(color: Colors.grey), textAlign: TextAlign.center,),
Padding(padding: EdgeInsets.fromLTRB(0, 20, 0, 10),
child: DropdownButtonReason(),),
],
),),
Padding(padding: EdgeInsets.fromLTRB(0, 20, 0, 20),
child: Column(
children: [
Container(
padding: EdgeInsets.fromLTRB(20, 10, 20, 10),
width: double.infinity,
decoration: BoxDecoration(
color: Colors.grey.withOpacity(0.07),
borderRadius: BorderRadius.circular(15),
),
child: TextField(
keyboardAppearance: Brightness.dark,
onTap: (){
},
style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 17, fontWeight: FontWeight.w200),
maxLines: 3,
textInputAction: TextInputAction.done,
decoration: InputDecoration(
hintText: '* Commentaires',
hintStyle: TextStyle(
fontSize: 15, fontSize: 15,
fontWeight: FontWeight.w400), color: Colors.white,
),
border: InputBorder.none,
),
),),
],
)), )),
); Spacer(),
Padding(padding: EdgeInsets.fromLTRB(0, 0, 0, 50),
child: SizedBox(
width: double.infinity,
height: 70,
child: ElevatedButton(
onPressed: () {
},
style: ElevatedButton.styleFrom(
primary: Colors.red,
textStyle: TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(17)
),
),
child: Stack(
children: [
Positioned(
top: -10,
right: 0,
child: Icon(Icons.report,size: 100,color: Colors.white.withOpacity(0.2),)),
Center(child: Text("Envoyer le signalement"),),
],
),
),
),),
],
),
),
) ,);
} }
}
class DropdownButtonReason extends StatefulWidget {
const DropdownButtonReason({super.key});
@override
State<DropdownButtonReason> createState() => _DropdownButtonReasonState();
}
const List<String> list = <String>['Insulte', 'Racisme', 'Messages inappropriés', "Usurpation d'identité"];
class _DropdownButtonReasonState extends State<DropdownButtonReason> {
String dropdownValue = list.first;
@override
Widget build(BuildContext context) {
return DropdownButton<String>(
dropdownColor: Colors.grey.shade900.withOpacity(1),
value: dropdownValue,
icon: const Icon(Icons.arrow_downward, color: Colors.grey,),
elevation: 16,
style: const TextStyle(color: Colors.white),
underline: Container(
height: 2,
color: Colors.grey.withOpacity(0.6),
),
onChanged: (String? value) {
// This is called when the user selects an item.
setState(() {
dropdownValue = value!;
});
},
items: list.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
}).toList(),
);
} }
} }

@ -47,11 +47,11 @@ class _MainPageState extends State<MainPage> {
), ),
child: ConstrainedBox( child: ConstrainedBox(
constraints: BoxConstraints( constraints: BoxConstraints(
minHeight: height * 0.1, minHeight: 100,
maxHeight: 100, maxHeight: 100,
), ),
child: NavigationBar( child: NavigationBar(
animationDuration: const Duration(seconds: 1), animationDuration: Duration(microseconds: 800),
selectedIndex: index, selectedIndex: index,
height: height * 0.1, height: height * 0.1,
onDestinationSelected: (index) => setState(() => _index = index), onDestinationSelected: (index) => setState(() => _index = index),

@ -90,39 +90,22 @@ class _DiscoveryListState extends State<DiscoveryList> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return RefreshIndicator( return RefreshIndicator(child: ListView.builder(
onRefresh: () async { itemCount: MyApp().controller.currentUser.Discovery.length,
refreshList(); itemBuilder: (context, index){
}, int itemCount = MyApp().controller.currentUser.Discovery.length;
key: refreshKey,
child: ListView.builder(
itemCount: MyApp.controller.currentUser.discovery.length,
itemBuilder: (context, index) {
int itemCount = MyApp.controller.currentUser.discovery.length;
int reversedIndex = itemCount - 1 - index; int reversedIndex = itemCount - 1 - index;
return Dismissible( return Dismissible(
key: Key( key: Key(MyApp().controller.currentUser.Discovery[reversedIndex].name),
MyApp.controller.currentUser.discovery[reversedIndex].name),
direction: DismissDirection.startToEnd, direction: DismissDirection.startToEnd,
onDismissed: (direction) {
if (direction == DismissDirection.startToEnd) {
MyApp.controller.currentUser.discovery
.removeAt(reversedIndex);
}
},
background: Container(
decoration: const BoxDecoration(
image: DecorationImage(
image: AssetImage("assets/images/delete_background.png"),
fit: BoxFit.cover),
)),
child: Container( child: Container(
margin: const EdgeInsets.fromLTRB(0, 10, 0, 0), margin: EdgeInsets.fromLTRB(0, 10, 0, 0),
padding: const EdgeInsets.fromLTRB(30, 0, 30, 0), padding: EdgeInsets.fromLTRB(30, 0, 30, 0),
child: Column( child: Column(
children: [ children: [
Container( Container(
margin: const EdgeInsets.fromLTRB(0, 5, 0, 0), margin: EdgeInsets.fromLTRB(0, 5, 0, 0),
width: double.infinity, width: double.infinity,
child: Row( child: Row(
children: [ children: [
@ -130,52 +113,41 @@ class _DiscoveryListState extends State<DiscoveryList> {
height: 60, height: 60,
width: 60, width: 60,
decoration: BoxDecoration( decoration: BoxDecoration(
border: Border.all( border: Border.all(width: 0, color: Colors.grey.withOpacity(0)),
width: 0, borderRadius: BorderRadius.all(Radius.circular(10)),
color: Colors.grey.withOpacity(0)),
borderRadius:
const BorderRadius.all(Radius.circular(10)),
),
child: FadeInImage.assetNetwork(
placeholder:
"assets/images/loadingPlaceholder.gif",
image: MyApp.controller.currentUser
.discovery[reversedIndex].linkCover),
), ),
child: Container(
child: FadeInImage.assetNetwork(placeholder: "assets/images/loadingPlaceholder.gif", image: MyApp().controller.currentUser.Discovery[reversedIndex].linkCover),
),),
Container( Container(
margin: const EdgeInsets.fromLTRB(20, 0, 0, 0), margin: EdgeInsets.fromLTRB(20, 0, 0, 0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Text( Text(MyApp().controller.currentUser.Discovery[reversedIndex].name,style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),),
MyApp.controller.currentUser Text(MyApp().controller.currentUser.Discovery[reversedIndex].artist,style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),),
.discovery[reversedIndex].name,
style: TextStyle(
fontFamily: 'DMSans',
color: Colors.white.withOpacity(1),
fontSize: 20,
fontWeight: FontWeight.w800),
),
Text(
MyApp.controller.currentUser
.discovery[reversedIndex].artist,
style: TextStyle(
fontFamily: 'DMSans',
color: Colors.white.withOpacity(0.6),
fontSize: 16,
fontWeight: FontWeight.w400),
),
], ],
), ),),
),
], ],
), ),
), ),
], ],
)), )
);
}), ), onDismissed: (direction) {
); if(direction == DismissDirection.startToEnd)
MyApp().controller.currentUser.Discovery.removeAt(reversedIndex);
},
background: Container(decoration: BoxDecoration(
image: DecorationImage(image: AssetImage("assets/images/delete_background.png"), fit: BoxFit.cover),
)),);
}
), onRefresh: () async {
refreshList();
}, key: refreshKey,);
} }
} }

@ -14,25 +14,29 @@ class _MessagesWidgetState extends State<MessagesWidget> {
int indexSectedButton = 0; int indexSectedButton = 0;
Widget currentList = const ListConfirmedWidget(); Widget currentList = const ListConfirmedWidget();
var colorConfirm = const Color(0xFFFFFFFF);
var colorWaiting = const Color(0xFFA8A8A8);
void changeSelected(int num) { var colorConfirm = Color(0xFFFFFFFF);
if (indexSectedButton == num) { var colorWaiting = Color(0xFFA8A8A8);
void changeSelected(int num){
if(indexSectedButton == num){
return; return;
} else { }
if (num == 0) { else{
setState(() { if(num == 0){
colorConfirm = const Color(0xFFFFFFFF); setState((){
colorWaiting = const Color(0xFFA8A8A8); colorConfirm = Color(0xFFFFFFFF);
currentList = const ListConfirmedWidget(); colorWaiting = Color(0xFFA8A8A8);
listeActuelle = ListConfirmedWidget();
indexSectedButton = num; indexSectedButton = num;
}); });
} else {
setState(() {
colorConfirm = const Color(0xFFA8A8A8); }
colorWaiting = const Color(0xFFFFFFFF); else{
currentList = const ListWaitingWidget(); setState((){
colorConfirm = Color(0xFFA8A8A8);
colorWaiting = Color(0xFFFFFFFF);
listeActuelle = ListWaitingWidget();
indexSectedButton = num; indexSectedButton = num;
}); });
} }
@ -44,124 +48,105 @@ class _MessagesWidgetState extends State<MessagesWidget> {
double height = MediaQuery.of(context).size.height; double height = MediaQuery.of(context).size.height;
double width = MediaQuery.of(context).size.width; double width = MediaQuery.of(context).size.width;
return Container( return Container(
color: const Color(0xFF141414), color: Color(0xFF141414),
child: Padding(
padding: const EdgeInsets.fromLTRB(30, 50, 30, 0), child: Padding(padding: EdgeInsets.fromLTRB(30, 50, 30, 0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Column( Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
const Text('Messages', Text('Messages', style: TextStyle(color: Colors.white, fontWeight: FontWeight.w500, fontSize: 25)),
style: TextStyle( Padding(padding: EdgeInsets.fromLTRB(0, 5, 0, 0)),
color: Colors.white, Text('Retrouvez ici vos discussions.', style: TextStyle(color: Colors.grey.withOpacity(0.4), fontSize: 15),),
fontWeight: FontWeight.w500,
fontSize: 25)),
const 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(
padding: EdgeInsets.fromLTRB(0, height * 0.01, 0, 0), padding: EdgeInsets.fromLTRB(0, height*0.01, 0, 0),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround, mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [ children: [
SizedBox( SizedBox(
height: 35, height: 35,
width: width * 0.35, width: width*0.35,
child: ElevatedButton( child: ElevatedButton(
style: ElevatedButton.styleFrom( style: ElevatedButton.styleFrom(
backgroundColor: colorConfirm, backgroundColor: colorConfirm,
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15.0), borderRadius: BorderRadius.circular(15.0),
), // background// foreground ),// background// foreground
), ),
onPressed: () { onPressed: () {
changeSelected(0); changeSelected(0);
}, },
child: const Text( child: Text("Validées",
"Validées", style: TextStyle(color: Colors.black ,fontSize: 17, fontWeight: FontWeight.bold),
style: TextStyle(
color: Colors.black,
fontSize: 17,
fontWeight: FontWeight.bold),
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
), ),),
),
SizedBox( SizedBox(
height: 35, height: 35,
width: width * 0.35, width: width*0.35,
child: ElevatedButton( child: ElevatedButton(
style: ElevatedButton.styleFrom( style: ElevatedButton.styleFrom(
backgroundColor: colorWaiting, backgroundColor: colorWaiting,
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15.0), borderRadius: BorderRadius.circular(15.0),
), // background// foreground ),// background// foreground
), ),
onPressed: () { onPressed: () {
changeSelected(1); changeSelected(1);
}, },
child: const Text( child: Text("En attente",
"En attente", style: TextStyle(color: Colors.black ,fontSize: 17, fontWeight: FontWeight.bold),
style: TextStyle(
color: Colors.black,
fontSize: 17,
fontWeight: FontWeight.bold),
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
), ),),
),
], ],
), ),),
),
], ],
), ),
),
Expanded( Expanded(
child: currentList, child:
listeActuelle,
), ),
], ],
), ),),
),
); );
} }
} }
class MessagesButtonWidget extends StatelessWidget { class MessagesButtonWidget extends StatelessWidget{
const MessagesButtonWidget({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double height = MediaQuery.of(context).size.height;
double width = MediaQuery.of(context).size.width; double width = MediaQuery.of(context).size.width;
return Container( return Container(
margin: const EdgeInsets.fromLTRB(0, 0, 0, 10), margin: EdgeInsets.fromLTRB(0, 0, 0, 10),
child: Column( child: Column(
children: [ children: [
Container( Container(
color: Colors.transparent, color: Colors.transparent,
margin: const EdgeInsets.fromLTRB(0, 0, 0, 0), margin: EdgeInsets.fromLTRB(0, 0, 0, 0),
child: Row( child: Row(
children: [ children: [
Container( Container(
height: 60, height: 60,
width: 60, width: 60,
decoration: BoxDecoration( decoration: BoxDecoration(
image: const DecorationImage( image: DecorationImage(
image: NetworkImage( image: NetworkImage('https://www.goutemesdisques.com/uploads/tx_gmdchron/pi1/L_Etrange_Histoire_de_Mr_Anderson.jpg'),
'https://www.goutemesdisques.com/uploads/tx_gmdchron/pi1/L_Etrange_Histoire_de_Mr_Anderson.jpg'),
fit: BoxFit.cover, fit: BoxFit.cover,
), ),
border: Border.all( border: Border.all(width: 0, color: Colors.grey.withOpacity(0)),
width: 0, color: Colors.grey.withOpacity(0)), borderRadius: BorderRadius.all(Radius.circular(30)),
borderRadius: const BorderRadius.all(Radius.circular(30)), ),),
),
),
Container( Container(
width: width - 160, width: width-160,
margin: const EdgeInsets.fromLTRB(20, 0, 20, 0), margin: EdgeInsets.fromLTRB(20, 0, 20, 0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
@ -170,53 +155,34 @@ class MessagesButtonWidget extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Text( Text('Max',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),),
'Max', Text('1 jour(s)',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.8) ,fontSize: 15, fontWeight: FontWeight.w400),),
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( Text('A envoyé une musique.',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),),
'A envoyé un musique.',
style: TextStyle(
fontFamily: 'DMSans',
color: Colors.white.withOpacity(0.6),
fontSize: 16,
fontWeight: FontWeight.w400),
),
], ],
), ),),
),
], ],
), ),
), ),
], ],
)); )
);
} }
} }
class ListConfirmedWidget extends StatelessWidget { class ListConfirmedWidget extends StatelessWidget{
const ListConfirmedWidget({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double height = MediaQuery.of(context).size.height;
double width = MediaQuery.of(context).size.width;
return ListView( return ListView(
children: const [
SizedBox( children: [
height: 40,
),
MessagesButtonWidget(), MessagesButtonWidget(),
MessagesButtonWidget(), MessagesButtonWidget(),
MessagesButtonWidget(), MessagesButtonWidget(),
@ -226,25 +192,28 @@ class ListConfirmedWidget extends StatelessWidget {
} }
} }
class ListWaitingWidget extends StatelessWidget { class ListWaitingWidget extends StatelessWidget{
const ListWaitingWidget({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ListView(children: [ double height = MediaQuery.of(context).size.height;
const SizedBox( double width = MediaQuery.of(context).size.width;
height: 40, return ListView(
),
children: [
GestureDetector( GestureDetector(
onTap: () { onTap: () {
Navigator.of(context).push(PageTransition( Navigator.of(context).push(PageTransition(
duration: const Duration(milliseconds: 200), duration: Duration(milliseconds: 200),
reverseDuration: const Duration(milliseconds: 200), reverseDuration: Duration(milliseconds: 200),
type: PageTransitionType.rightToLeftWithFade, type: PageTransitionType.rightToLeftWithFade,
childCurrent: context.widget, childCurrent: context.widget,
child: const ConversationPage())); child: ConversationPage()));
}, },
child: const MessagesButtonWidget()) child: MessagesButtonWidget(),
]); ),
],
);
} }
} }

@ -17,12 +17,26 @@ class _ProfileWidgetState extends State<ProfileWidget> {
} }
} }
class MainPageProfil extends StatelessWidget { class MainPageProfil extends StatefulWidget {
const MainPageProfil({super.key}); const MainPageProfil({Key? key}) : super(key: key);
@override
State<MainPageProfil> createState() => _MainPageProfilState();
}
class _MainPageProfilState extends State<MainPageProfil> {
String? username = MyApp().controller.currentUser.usernameDafl;
@override
void initState() {
super.initState();
String username = MyApp().controller.currentUser.usernameDafl ?? "default";
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double height = MediaQuery.of(context).size.height; double height = MediaQuery.of(context).size.height;
double width = MediaQuery.of(context).size.width;
return Container( return Container(
color: const Color(0xFF141414), color: const Color(0xFF141414),
child: SizedBox( child: SizedBox(
@ -39,7 +53,7 @@ class MainPageProfil extends StatelessWidget {
style: TextStyle( style: TextStyle(
fontSize: 25, fontSize: 25,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: Colors.white), color: Colors.white), fontFamily: "DMSans")
), ),
), ),
Container( Container(
@ -60,22 +74,14 @@ class MainPageProfil extends StatelessWidget {
], ],
), ),
child: Center( child: Center(
child: Text( child: Text(username![0],
MyApp.controller.currentUser.usernameDafl[0], style: TextStyle(color: Colors.white ,fontSize: 60, fontWeight: FontWeight.w500),
style: const TextStyle(
color: Colors.white,
fontSize: 60,
fontWeight: FontWeight.w500),
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
), ),
), ),
Text( Text(username!,
MyApp.controller.currentUser.usernameDafl, style: TextStyle(color: Colors.white ,fontSize: 17, fontWeight: FontWeight.w400),
style: const TextStyle(
color: Colors.white,
fontSize: 17,
fontWeight: FontWeight.w400),
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
Container( Container(
@ -278,10 +284,9 @@ class MainPageProfil extends StatelessWidget {
), // background// foreground ), // background// foreground
), ),
onPressed: () { onPressed: () {
Navigator.push( Navigator.push(context,MaterialPageRoute(builder: (context)=> SettingsWidget())).then((value) => setState(() {
context, username = MyApp.controller.currentUser.usernameDafl!;
MaterialPageRoute( }));
builder: (context) => const SettingsWidget()));
}, },
child: Row( child: Row(
children: [ children: [
@ -317,3 +322,4 @@ class MainPageProfil extends StatelessWidget {
); );
} }
} }

@ -10,11 +10,8 @@ class SettingsWidget extends StatefulWidget {
} }
class _SettingsWidgetState extends State<SettingsWidget> { class _SettingsWidgetState extends State<SettingsWidget> {
final userNameTextField = final userNameTextField = TextEditingController(text: MyApp().controller.currentUser.usernameDafl);
TextEditingController(text: MyApp.controller.currentUser.usernameDafl); final passwordTextField = TextEditingController(text: MyApp().controller.currentUser.passwDafl);
final passwordTextField =
TextEditingController(text: MyApp.controller.currentUser.passwDafl);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double height = MediaQuery.of(context).size.height; double height = MediaQuery.of(context).size.height;
@ -65,6 +62,7 @@ class _SettingsWidgetState extends State<SettingsWidget> {
SizedBox( SizedBox(
width: 230, width: 230,
child: TextField( child: TextField(
keyboardAppearance: Brightness.dark,
controller: userNameTextField, controller: userNameTextField,
style: const TextStyle(color: Colors.white), style: const TextStyle(color: Colors.white),
decoration: InputDecoration( decoration: InputDecoration(
@ -123,6 +121,7 @@ class _SettingsWidgetState extends State<SettingsWidget> {
SizedBox( SizedBox(
width: 230, width: 230,
child: TextField( child: TextField(
keyboardAppearance: Brightness.dark,
controller: passwordTextField, controller: passwordTextField,
obscureText: true, obscureText: true,
style: const TextStyle(color: Colors.white), style: const TextStyle(color: Colors.white),

@ -65,6 +65,8 @@ class TopWidget extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double height = MediaQuery.of(context).size.height;
double width = MediaQuery.of(context).size.width;
return Container( return Container(
padding: const EdgeInsets.fromLTRB(30, 0, 30, 0), padding: const EdgeInsets.fromLTRB(30, 0, 30, 0),
width: double.infinity, width: double.infinity,
@ -126,10 +128,12 @@ class TopWidget extends StatelessWidget {
'https://images.genius.com/ef4849be3da5fdb22ea9e656679be3a3.600x600x1.jpg'), 'https://images.genius.com/ef4849be3da5fdb22ea9e656679be3a3.600x600x1.jpg'),
), ),
), ),
Stack( Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.end,
children: [ children: [
Container( Container(
margin: const EdgeInsets.fromLTRB(12, 5, 80, 60), margin: EdgeInsets.fromLTRB(12, 5, 0, 0),
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@ -151,15 +155,9 @@ class TopWidget extends StatelessWidget {
], ],
), ),
), ),
Positioned(
bottom: 0,
right: 0,
child: Row(
children: const [
GradientText( GradientText(
'7,2%', '7,2%',
style: TextStyle( style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 40),
fontSize: 60, fontWeight: FontWeight.bold),
gradient: LinearGradient(colors: [ gradient: LinearGradient(colors: [
Colors.orange, Colors.orange,
Colors.red, Colors.red,
@ -168,9 +166,6 @@ class TopWidget extends StatelessWidget {
), ),
], ],
), ),
),
],
),
], ],
), ),
], ],

@ -58,31 +58,30 @@ class _SignInPageState extends State<SignInPage> {
), ),
Container( Container(
width: 500, width: 500,
padding: const EdgeInsets.fromLTRB(45, 0, 45, 0), padding: EdgeInsets.fromLTRB(45, 0, 45, 0),
child: Stack( child: Stack(
children: [ children: [
Container( Container(
height: 43, height: 43,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: borderRadius: BorderRadius.all(
const BorderRadius.all(Radius.circular(50)), Radius.circular(50)),
boxShadow: [ boxShadow: [
BoxShadow( BoxShadow(
color: Colors.black.withOpacity(0.3), color: Colors.black.withOpacity(0.3),
spreadRadius: 5, spreadRadius: 5,
blurRadius: 7, blurRadius: 7,
offset: const Offset( offset: Offset(0, 3), // changes position of shadow
0, 3), // changes position of shadow
), ),
], ],
), ),
), ),
Padding( Padding(padding: EdgeInsets.fromLTRB(50, 0, 20, 0),
padding: const EdgeInsets.fromLTRB(50, 0, 20, 0),
child: TextField( child: TextField(
keyboardAppearance: Brightness.dark,
controller: userNameTextField, controller: userNameTextField,
decoration: const InputDecoration( decoration: InputDecoration(
border: InputBorder.none, border: InputBorder.none,
), ),
cursorColor: Colors.purple, cursorColor: Colors.purple,
@ -90,7 +89,7 @@ class _SignInPageState extends State<SignInPage> {
), ),
), ),
Container( Container(
margin: const EdgeInsets.fromLTRB(15, 12, 0, 0), margin: EdgeInsets.fromLTRB(15, 12, 0, 0),
child: Image.asset( child: Image.asset(
'assets/images/profil_logo.png', 'assets/images/profil_logo.png',
height: 16, height: 16,
@ -99,7 +98,8 @@ class _SignInPageState extends State<SignInPage> {
), ),
), ),
], ],
)), )
),
Container( Container(
width: 500, width: 500,
padding: const EdgeInsets.fromLTRB(45, 10, 45, 0), padding: const EdgeInsets.fromLTRB(45, 10, 45, 0),
@ -125,6 +125,7 @@ class _SignInPageState extends State<SignInPage> {
Padding( Padding(
padding: const EdgeInsets.fromLTRB(50, 0, 20, 0), padding: const EdgeInsets.fromLTRB(50, 0, 20, 0),
child: TextField( child: TextField(
keyboardAppearance: Brightness.dark,
controller: passwordTextField, controller: passwordTextField,
obscureText: true, obscureText: true,
decoration: const InputDecoration( decoration: const InputDecoration(

@ -39,52 +39,44 @@ class _SignUpPageState extends State<SignUpPage> {
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: [ children: [
Image.asset( Image.asset(
'assets/images/Logo.png', 'assets/images/Logo.png',
width: 250, width: 250,
), ),
const SizedBox( SizedBox(height: 45,),
height: 45, Text(
),
const Text(
"S'INSCRIRE", "S'INSCRIRE",
style: TextStyle( style: TextStyle(fontFamily: 'DMSans', color: Colors.white ,fontSize: 23, fontWeight: FontWeight.w700),
fontFamily: 'DMSans',
color: Colors.white,
fontSize: 23,
fontWeight: FontWeight.w700),
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
const SizedBox( SizedBox(height: 10,),
height: 10,
),
Container( Container(
width: 500, width: 500,
padding: const EdgeInsets.fromLTRB(45, 0, 45, 0), padding: EdgeInsets.fromLTRB(45, 0, 45, 0),
child: Stack( child: Stack(
children: [ children: [
Container( Container(
height: 43, height: 43,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: borderRadius: BorderRadius.all(
const BorderRadius.all(Radius.circular(50)), Radius.circular(50)),
boxShadow: [ boxShadow: [
BoxShadow( BoxShadow(
color: Colors.black.withOpacity(0.3), color: Colors.black.withOpacity(0.3),
spreadRadius: 5, spreadRadius: 5,
blurRadius: 7, blurRadius: 7,
offset: const Offset( offset: Offset(0, 3), // changes position of shadow
0, 3), // changes position of shadow
), ),
], ],
), ),
), ),
Padding( Padding(padding: EdgeInsets.fromLTRB(50, 0, 20, 0),
padding: const EdgeInsets.fromLTRB(50, 0, 20, 0),
child: TextField( child: TextField(
keyboardAppearance: Brightness.dark,
controller: userNameTextField, controller: userNameTextField,
decoration: const InputDecoration( decoration: InputDecoration(
border: InputBorder.none, border: InputBorder.none,
), ),
cursorColor: Colors.purple, cursorColor: Colors.purple,
@ -92,7 +84,7 @@ class _SignUpPageState extends State<SignUpPage> {
), ),
), ),
Container( Container(
margin: const EdgeInsets.fromLTRB(15, 12, 0, 0), margin: EdgeInsets.fromLTRB(15, 12, 0, 0),
child: Image.asset( child: Image.asset(
'assets/images/profil_logo.png', 'assets/images/profil_logo.png',
height: 16, height: 16,
@ -101,35 +93,36 @@ class _SignUpPageState extends State<SignUpPage> {
), ),
), ),
], ],
)), )
),
Container( Container(
width: 500, width: 500,
padding: const EdgeInsets.fromLTRB(45, 10, 45, 0), padding: EdgeInsets.fromLTRB(45, 10, 45, 0),
child: Stack( child: Stack(
children: [ children: [
Container( Container(
height: 43, height: 43,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: borderRadius: BorderRadius.all(
const BorderRadius.all(Radius.circular(50)), Radius.circular(50)),
boxShadow: [ boxShadow: [
BoxShadow( BoxShadow(
color: Colors.black.withOpacity(0.3), color: Colors.black.withOpacity(0.3),
spreadRadius: 5, spreadRadius: 5,
blurRadius: 7, blurRadius: 7,
offset: const Offset( offset: Offset(0, 3), // changes position of shadow
0, 3), // changes position of shadow
), ),
], ],
), ),
),
Padding( ),Padding(padding: EdgeInsets.fromLTRB(50, 0, 20, 0),
padding: const EdgeInsets.fromLTRB(50, 0, 20, 0),
child: TextField( child: TextField(
keyboardAppearance: Brightness.dark,
controller: passwordTextField, controller: passwordTextField,
obscureText: true, obscureText: true,
decoration: const InputDecoration( decoration: InputDecoration(
border: InputBorder.none, border: InputBorder.none,
), ),
cursorColor: Colors.purple, cursorColor: Colors.purple,
@ -137,7 +130,7 @@ class _SignUpPageState extends State<SignUpPage> {
), ),
), ),
Container( Container(
margin: const EdgeInsets.fromLTRB(15, 12, 0, 0), margin: EdgeInsets.fromLTRB(15, 12, 0, 0),
child: Image.asset( child: Image.asset(
'assets/images/password_logo.png', 'assets/images/password_logo.png',
height: 16, height: 16,
@ -146,28 +139,28 @@ class _SignUpPageState extends State<SignUpPage> {
), ),
), ),
], ],
)), )
),
Container( Container(
width: 500, width: 500,
padding: const EdgeInsets.fromLTRB(45, 10, 45, 0), padding: EdgeInsets.fromLTRB(45, 10, 45, 0),
child: Stack( child: Stack(
children: [ children: [
Container( Container(
height: 43, height: 43,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: borderRadius: BorderRadius.all(
const BorderRadius.all(Radius.circular(50)), Radius.circular(50)),
boxShadow: [ boxShadow: [
BoxShadow( BoxShadow(
color: Colors.black.withOpacity(0.3), color: Colors.black.withOpacity(0.3),
spreadRadius: 5, spreadRadius: 5,
blurRadius: 7, blurRadius: 7,
offset: const Offset( offset: Offset(0, 3), // changes position of shadow
0, 3), // changes position of shadow
), ),
], ],
),
), ),
Padding( Padding(
padding: const EdgeInsets.fromLTRB(50, 0, 20, 0), padding: const EdgeInsets.fromLTRB(50, 0, 20, 0),

@ -240,6 +240,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0" version: "2.1.0"
home_indicator:
dependency: "direct main"
description:
name: home_indicator
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2"
html: html:
dependency: transitive dependency: transitive
description: description:

@ -26,6 +26,7 @@ dependencies:
postgresql2: ^1.0.3 postgresql2: ^1.0.3
path_provider: ^2.0.11 path_provider: ^2.0.11
font_awesome_flutter: ^10.2.1 font_awesome_flutter: ^10.2.1
home_indicator: ^2.0.2
geolocator: ^9.0.2 geolocator: ^9.0.2
dev_dependencies: dev_dependencies:

Loading…
Cancel
Save