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

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

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

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

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

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

@ -1,4 +1,11 @@
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 {
const ConversationPage({Key? key}) : super(key: key);
@ -8,94 +15,194 @@ class ConversationPage extends StatefulWidget {
}
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
Widget build(BuildContext context) {
double height = MediaQuery.of(context).size.height;
double width = MediaQuery.of(context).size.width;
ScrollController listScrollController = ScrollController();
return Scaffold(
extendBodyBehindAppBar: true,
resizeToAvoidBottomInset: true,
appBar: AppBar(
backgroundColor: const Color(0xFF141414),
elevation: 20,
backgroundColor: Color(0xFF141414),
toolbarHeight: 70,
title: Row(
children: [
Container(
padding: const EdgeInsets.fromLTRB(0, 10, 0, 0),
height: 40,
width: 40,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(40),
color: Colors.blue,
),
),
const SizedBox(
width: 20,
),
const Text("Max"),
],
),
elevation: 0,
),
body: SingleChildScrollView(
child: Container(
color: const Color(0xFF141414),
height: height * 0.92,
width: double.infinity,
child: ListView(
reverse: true,
scrollDirection: Axis.vertical,
title: Container(
child: Row(
children: [
message(
'Adolescebat autem obstinatum propositum erga haec et similia multa scrutanda, stimulos admovente regina, quae abrupte mariti fortunas trudebat in exitium praeceps, cum eum potius lenitate feminea ad veritatis humanitatisque viam reducere utilia suadendo deberet, ut in Gordianorum actibus factitasse Maximini truculenti illius imperatoris rettulimus coniugem.',
0),
message(
'Claudiopolis olim Seleucia Caesar potens quidem olim interneciva enim et.',
1),
message(
'Quae quae praeceps feminea quae truculenti humanitatisque cum humanitatisque in truculenti abrupte imperatoris mariti regina regina ad lenitate veritatis veritatis.',
1),
message(
'Quae quae praeceps feminea quae truculenti humanitatisque cum humanitatisque in truculenti abrupte imperatoris mariti regina regina ad lenitate veritatis veritatis.',
0),
message(
'Quae quae praeceps feminea quae truculenti humanitatisque cum humanitatisque in truculenti abrupte imperatoris mariti regina regina ad lenitate veritatis veritatis.',
0),
message(
'Quae quae praeceps feminea quae truculenti humanitatisque cum humanitatisque in truculenti abrupte imperatoris mariti regina regina ad lenitate veritatis veritatis.',
1),
Container(
padding: EdgeInsets.fromLTRB(0, 10, 0, 0),
height: 40,
width: 40,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(40),
color: Colors.blue,
),
),
SizedBox(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,),
),
],
),
),
),
body: SingleChildScrollView(
child:
Container(
color: Color(0xFF141414),
height: height*0.92,
width: double.infinity,
child: ListView.builder(
controller: listScrollController,
physics: BouncingScrollPhysics(),
itemCount: messages.length,
itemBuilder: (context, index) {
return messages[index];
})
),
),
bottomSheet: BottomAppBar(
color: const Color(0xFF141414),
color: Color(0xFF141414),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
height: height * 0.08,
height: height*0.08,
color: Colors.transparent,
width: width * 0.8,
width: width*0.9,
child: Container(
margin: const EdgeInsets.fromLTRB(20, 10, 0, 10),
margin: EdgeInsets.fromLTRB(10, 10, 10, 10),
decoration: BoxDecoration(
border: Border.all(
width: 1,
color: const Color(0xFF2F2F2F),
color: Color(0xFF2F2F2F),
),
borderRadius: BorderRadius.circular(100),
color: const Color(0xFF141414),
color: Color(0xFF141414),
),
child: const Padding(
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
child: Padding(
padding: EdgeInsets.fromLTRB(15, 0, 15, 0),
child: TextField(
controller: messageTextField,
style: TextStyle(color: Colors.white),
decoration: InputDecoration(
hintStyle: TextStyle(color: Colors.white),
border: InputBorder.none,
hintText: "Envoyer un message...",
hintStyle: TextStyle(color: Colors.white.withOpacity(0.7)),
border: InputBorder.none,
hintText: "Votre message...",
),
cursorColor: Colors.purple,
textAlign: TextAlign.left,
@ -103,75 +210,216 @@ class _ConversationPageState extends State<ConversationPage> {
),
),
),
Container(
width: 40,
height: 40,
margin: const EdgeInsets.fromLTRB(0, 0, 0, 0),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(100),
color: Colors.blue,
),
child: const Icon(
Icons.send,
size: 20,
color: Colors.white,
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(
width: 40,
height: 40,
margin: EdgeInsets.fromLTRB(0, 0, 0, 0),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(100),
gradient: LinearGradient(
colors: [Color(0xff8e24a1), Color(0xff8163ff)],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
)
),
child: Transform.rotate(angle: -300,
child: Icon(Icons.arrow_back, size: 26, color: Colors.white,),)
),
)
],
),
),
);
}
Widget message(String message, int user) {
if (user == 0) {
return Container(
margin: const EdgeInsets.fromLTRB(40, 7, 80, 7),
Widget buildSheet(){
String dropdownValue = list.first;
final messageTextField = TextEditingController();
return SingleChildScrollView(
padding:
EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom),
child:Container(
height: 500,
width: double.infinity,
decoration: BoxDecoration(
borderRadius: const BorderRadius.only(
bottomRight: Radius.circular(20),
topLeft: Radius.circular(20),
topRight: Radius.circular(20),
bottomLeft: Radius.circular(20),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.4),
offset: const Offset(
0,
0,
),
blurRadius: 10.0,
spreadRadius: 2.0,
),
BoxShadow(
color: Colors.white.withOpacity(0.3),
offset: const Offset(0.0, 0.0),
blurRadius: 0.0,
spreadRadius: 0.0,
),//BoxShadow//BoxShadow
],
color: Color(0xFF232123),
borderRadius: BorderRadius.only(
topRight: Radius.circular(30),
topLeft: Radius.circular(30),
),
border: Border.all(
width: 1.5, color: const Color(0xFF9C9C9C).withOpacity(0.3)),
color: const Color(0xFF191919),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(15, 15, 15, 15),
child: Text(
message,
style: const TextStyle(
fontFamily: 'DMSans',
color: Colors.white,
fontSize: 15,
fontWeight: FontWeight.w400),
)),
);
} else {
return Container(
margin: const EdgeInsets.fromLTRB(80, 7, 40, 7),
decoration: const BoxDecoration(
borderRadius: BorderRadius.only(
bottomRight: Radius.circular(20),
bottomLeft: Radius.circular(20),
topLeft: Radius.circular(20),
topRight: Radius.circular(20),
padding: EdgeInsets.fromLTRB(20, 10, 20, 10),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
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,
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"),),
],
),
),
),),
],
),
color: Color(0xFF2F2F2F),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(15, 15, 15, 15),
child: Text(
message,
style: const TextStyle(
fontFamily: 'DMSans',
color: Colors.white,
fontSize: 15,
fontWeight: FontWeight.w400),
)),
);
) ,);
}
}
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(
constraints: BoxConstraints(
minHeight: height * 0.1,
minHeight: 100,
maxHeight: 100,
),
child: NavigationBar(
animationDuration: const Duration(seconds: 1),
animationDuration: Duration(microseconds: 800),
selectedIndex: index,
height: height * 0.1,
onDestinationSelected: (index) => setState(() => _index = index),

@ -90,92 +90,64 @@ class _DiscoveryListState extends State<DiscoveryList> {
@override
Widget build(BuildContext context) {
return RefreshIndicator(
onRefresh: () async {
refreshList();
},
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;
return Dismissible(
key: Key(
MyApp.controller.currentUser.discovery[reversedIndex].name),
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(
margin: const EdgeInsets.fromLTRB(0, 10, 0, 0),
padding: const EdgeInsets.fromLTRB(30, 0, 30, 0),
child: Column(
children: [
Container(
margin: const EdgeInsets.fromLTRB(0, 5, 0, 0),
width: double.infinity,
child: Row(
children: [
Container(
height: 60,
width: 60,
decoration: BoxDecoration(
border: Border.all(
width: 0,
color: Colors.grey.withOpacity(0)),
borderRadius:
const BorderRadius.all(Radius.circular(10)),
),
child: FadeInImage.assetNetwork(
placeholder:
"assets/images/loadingPlaceholder.gif",
image: MyApp.controller.currentUser
.discovery[reversedIndex].linkCover),
),
Container(
margin: const EdgeInsets.fromLTRB(20, 0, 0, 0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
MyApp.controller.currentUser
.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),
),
],
),
),
],
),
),
],
)),
);
}),
);
return RefreshIndicator(child: ListView.builder(
itemCount: MyApp().controller.currentUser.Discovery.length,
itemBuilder: (context, index){
int itemCount = MyApp().controller.currentUser.Discovery.length;
int reversedIndex = itemCount - 1 - index;
return Dismissible(
key: Key(MyApp().controller.currentUser.Discovery[reversedIndex].name),
direction: DismissDirection.startToEnd,
child: Container(
margin: EdgeInsets.fromLTRB(0, 10, 0, 0),
padding: EdgeInsets.fromLTRB(30, 0, 30, 0),
child: Column(
children: [
Container(
margin: EdgeInsets.fromLTRB(0, 5, 0, 0),
width: double.infinity,
child: Row(
children: [
Container(
height: 60,
width: 60,
decoration: BoxDecoration(
border: Border.all(width: 0, color: Colors.grey.withOpacity(0)),
borderRadius: BorderRadius.all(Radius.circular(10)),
),
child: Container(
child: FadeInImage.assetNetwork(placeholder: "assets/images/loadingPlaceholder.gif", image: MyApp().controller.currentUser.Discovery[reversedIndex].linkCover),
),),
Container(
margin: EdgeInsets.fromLTRB(20, 0, 0, 0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(MyApp().controller.currentUser.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;
Widget currentList = const ListConfirmedWidget();
var colorConfirm = const Color(0xFFFFFFFF);
var colorWaiting = const Color(0xFFA8A8A8);
void changeSelected(int num) {
if (indexSectedButton == num) {
var colorConfirm = Color(0xFFFFFFFF);
var colorWaiting = Color(0xFFA8A8A8);
void changeSelected(int num){
if(indexSectedButton == num){
return;
} else {
if (num == 0) {
setState(() {
colorConfirm = const Color(0xFFFFFFFF);
colorWaiting = const Color(0xFFA8A8A8);
currentList = const ListConfirmedWidget();
}
else{
if(num == 0){
setState((){
colorConfirm = Color(0xFFFFFFFF);
colorWaiting = Color(0xFFA8A8A8);
listeActuelle = ListConfirmedWidget();
indexSectedButton = num;
});
} else {
setState(() {
colorConfirm = const Color(0xFFA8A8A8);
colorWaiting = const Color(0xFFFFFFFF);
currentList = const ListWaitingWidget();
}
else{
setState((){
colorConfirm = Color(0xFFA8A8A8);
colorWaiting = Color(0xFFFFFFFF);
listeActuelle = ListWaitingWidget();
indexSectedButton = num;
});
}
@ -44,124 +48,105 @@ class _MessagesWidgetState extends State<MessagesWidget> {
double height = MediaQuery.of(context).size.height;
double width = MediaQuery.of(context).size.width;
return Container(
color: const Color(0xFF141414),
child: Padding(
padding: const EdgeInsets.fromLTRB(30, 50, 30, 0),
color: Color(0xFF141414),
child: Padding(padding: EdgeInsets.fromLTRB(30, 50, 30, 0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text('Messages',
style: TextStyle(
color: Colors.white,
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: EdgeInsets.fromLTRB(0, height * 0.01, 0, 0),
Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('Messages', style: TextStyle(color: Colors.white, fontWeight: FontWeight.w500, fontSize: 25)),
Padding(padding: EdgeInsets.fromLTRB(0, 5, 0, 0)),
Text('Retrouvez ici vos discussions.', style: TextStyle(color: Colors.grey.withOpacity(0.4), fontSize: 15),),
Padding(
padding: EdgeInsets.fromLTRB(0, height*0.01, 0, 0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
SizedBox(
height: 35,
width: width * 0.35,
width: width*0.35,
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: colorConfirm,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15.0),
), // background// foreground
),// background// foreground
),
onPressed: () {
changeSelected(0);
},
child: const Text(
"Validées",
style: TextStyle(
color: Colors.black,
fontSize: 17,
fontWeight: FontWeight.bold),
child: Text("Validées",
style: TextStyle(color: Colors.black ,fontSize: 17, fontWeight: FontWeight.bold),
textAlign: TextAlign.center,
),
),
),
),),
SizedBox(
height: 35,
width: width * 0.35,
width: width*0.35,
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: colorWaiting,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15.0),
), // background// foreground
),// background// foreground
),
onPressed: () {
changeSelected(1);
},
child: const Text(
"En attente",
style: TextStyle(
color: Colors.black,
fontSize: 17,
fontWeight: FontWeight.bold),
child: Text("En attente",
style: TextStyle(color: Colors.black ,fontSize: 17, fontWeight: FontWeight.bold),
textAlign: TextAlign.center,
),
),
),
),),
],
),
),
],
),),
],
),
),
Expanded(
child: currentList,
child:
listeActuelle,
),
],
),
),
),),
);
}
}
class MessagesButtonWidget extends StatelessWidget {
const MessagesButtonWidget({super.key});
class MessagesButtonWidget extends StatelessWidget{
@override
Widget build(BuildContext context) {
double height = MediaQuery.of(context).size.height;
double width = MediaQuery.of(context).size.width;
return Container(
margin: const EdgeInsets.fromLTRB(0, 0, 0, 10),
margin: EdgeInsets.fromLTRB(0, 0, 0, 10),
child: Column(
children: [
Container(
color: Colors.transparent,
margin: const EdgeInsets.fromLTRB(0, 0, 0, 0),
margin: EdgeInsets.fromLTRB(0, 0, 0, 0),
child: Row(
children: [
Container(
height: 60,
width: 60,
decoration: BoxDecoration(
image: const DecorationImage(
image: NetworkImage(
'https://www.goutemesdisques.com/uploads/tx_gmdchron/pi1/L_Etrange_Histoire_de_Mr_Anderson.jpg'),
image: DecorationImage(
image: NetworkImage('https://www.goutemesdisques.com/uploads/tx_gmdchron/pi1/L_Etrange_Histoire_de_Mr_Anderson.jpg'),
fit: BoxFit.cover,
),
border: Border.all(
width: 0, color: Colors.grey.withOpacity(0)),
borderRadius: const BorderRadius.all(Radius.circular(30)),
),
),
border: Border.all(width: 0, color: Colors.grey.withOpacity(0)),
borderRadius: BorderRadius.all(Radius.circular(30)),
),),
Container(
width: width - 160,
margin: const EdgeInsets.fromLTRB(20, 0, 20, 0),
width: width-160,
margin: EdgeInsets.fromLTRB(20, 0, 20, 0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
@ -170,53 +155,34 @@ class MessagesButtonWidget extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'Max',
style: TextStyle(
fontFamily: 'DMSans',
color: Colors.white.withOpacity(1),
fontSize: 20,
fontWeight: FontWeight.w800),
),
Text(
'1 jour(s)',
style: TextStyle(
fontFamily: 'DMSans',
color: Colors.white.withOpacity(0.8),
fontSize: 15,
fontWeight: FontWeight.w400),
),
Text('Max',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(1) ,fontSize: 20, fontWeight: FontWeight.w800),),
Text('1 jour(s)',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.8) ,fontSize: 15, fontWeight: FontWeight.w400),),
],
),
Text(
'A envoyé un musique.',
style: TextStyle(
fontFamily: 'DMSans',
color: Colors.white.withOpacity(0.6),
fontSize: 16,
fontWeight: FontWeight.w400),
),
Text('A envoyé une musique.',style: TextStyle(fontFamily: 'DMSans', color: Colors.white.withOpacity(0.6) ,fontSize: 16, fontWeight: FontWeight.w400),),
],
),
),
),),
],
),
),
],
));
)
);
}
}
class ListConfirmedWidget extends StatelessWidget {
const ListConfirmedWidget({super.key});
class ListConfirmedWidget extends StatelessWidget{
@override
Widget build(BuildContext context) {
double height = MediaQuery.of(context).size.height;
double width = MediaQuery.of(context).size.width;
return ListView(
children: const [
SizedBox(
height: 40,
),
children: [
MessagesButtonWidget(),
MessagesButtonWidget(),
MessagesButtonWidget(),
@ -226,25 +192,28 @@ class ListConfirmedWidget extends StatelessWidget {
}
}
class ListWaitingWidget extends StatelessWidget {
const ListWaitingWidget({super.key});
class ListWaitingWidget extends StatelessWidget{
@override
Widget build(BuildContext context) {
return ListView(children: [
const SizedBox(
height: 40,
),
GestureDetector(
double height = MediaQuery.of(context).size.height;
double width = MediaQuery.of(context).size.width;
return ListView(
children: [
GestureDetector(
onTap: () {
Navigator.of(context).push(PageTransition(
duration: const Duration(milliseconds: 200),
reverseDuration: const Duration(milliseconds: 200),
duration: Duration(milliseconds: 200),
reverseDuration: Duration(milliseconds: 200),
type: PageTransitionType.rightToLeftWithFade,
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 {
const MainPageProfil({super.key});
class MainPageProfil extends StatefulWidget {
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
Widget build(BuildContext context) {
double height = MediaQuery.of(context).size.height;
double width = MediaQuery.of(context).size.width;
return Container(
color: const Color(0xFF141414),
child: SizedBox(
@ -39,7 +53,7 @@ class MainPageProfil extends StatelessWidget {
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.w600,
color: Colors.white),
color: Colors.white), fontFamily: "DMSans")
),
),
Container(
@ -60,22 +74,14 @@ class MainPageProfil extends StatelessWidget {
],
),
child: Center(
child: Text(
MyApp.controller.currentUser.usernameDafl[0],
style: const TextStyle(
color: Colors.white,
fontSize: 60,
fontWeight: FontWeight.w500),
child: Text(username![0],
style: TextStyle(color: Colors.white ,fontSize: 60, fontWeight: FontWeight.w500),
textAlign: TextAlign.center,
),
),
),
Text(
MyApp.controller.currentUser.usernameDafl,
style: const TextStyle(
color: Colors.white,
fontSize: 17,
fontWeight: FontWeight.w400),
Text(username!,
style: TextStyle(color: Colors.white ,fontSize: 17, fontWeight: FontWeight.w400),
textAlign: TextAlign.center,
),
Container(
@ -278,10 +284,9 @@ class MainPageProfil extends StatelessWidget {
), // background// foreground
),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const SettingsWidget()));
Navigator.push(context,MaterialPageRoute(builder: (context)=> SettingsWidget())).then((value) => setState(() {
username = MyApp.controller.currentUser.usernameDafl!;
}));
},
child: Row(
children: [
@ -317,3 +322,4 @@ class MainPageProfil extends StatelessWidget {
);
}
}

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

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

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

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

@ -240,6 +240,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
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:
dependency: transitive
description:

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

Loading…
Cancel
Save