Added search for existing chats

This commit is contained in:
Elias Müller 2023-06-06 21:37:56 +02:00
parent 2b64426c1a
commit dc2af8e825
6 changed files with 95 additions and 112 deletions

View File

@ -138,7 +138,7 @@
<entry key="build_runner_core"> <entry key="build_runner_core">
<value> <value>
<list> <list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/build_runner_core-7.2.8/lib" /> <option value="$USER_HOME$/.pub-cache/hosted/pub.dev/build_runner_core-7.2.9/lib" />
</list> </list>
</value> </value>
</entry> </entry>
@ -152,7 +152,7 @@
<entry key="built_value"> <entry key="built_value">
<value> <value>
<list> <list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/built_value-8.5.0/lib" /> <option value="$USER_HOME$/.pub-cache/hosted/pub.dev/built_value-8.6.0/lib" />
</list> </list>
</value> </value>
</entry> </entry>
@ -257,7 +257,7 @@
<entry key="csslib"> <entry key="csslib">
<value> <value>
<list> <list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/csslib-0.17.2/lib" /> <option value="$USER_HOME$/.pub-cache/hosted/pub.dev/csslib-0.17.3/lib" />
</list> </list>
</value> </value>
</entry> </entry>
@ -299,7 +299,7 @@
<entry key="dynamite_runtime"> <entry key="dynamite_runtime">
<value> <value>
<list> <list>
<option value="$USER_HOME$/.pub-cache/git/nextcloud-neon-35eb2d65799f3e6a5f53b62da8cac868d3e52f86/packages/dynamite/dynamite_runtime/lib" /> <option value="$USER_HOME$/.pub-cache/git/nextcloud-neon-3f80f9f6ded0a077464e825cd3c1c60aa797c743/packages/dynamite/dynamite_runtime/lib" />
</list> </list>
</value> </value>
</entry> </entry>
@ -327,7 +327,7 @@
<entry key="file_picker"> <entry key="file_picker">
<value> <value>
<list> <list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/file_picker-5.3.0/lib" /> <option value="$USER_HOME$/.pub-cache/hosted/pub.dev/file_picker-5.3.1/lib" />
</list> </list>
</value> </value>
</entry> </entry>
@ -460,7 +460,7 @@
<entry key="graphs"> <entry key="graphs">
<value> <value>
<list> <list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/graphs-2.3.0/lib" /> <option value="$USER_HOME$/.pub-cache/hosted/pub.dev/graphs-2.3.1/lib" />
</list> </list>
</value> </value>
</entry> </entry>
@ -509,7 +509,7 @@
<entry key="image_picker_android"> <entry key="image_picker_android">
<value> <value>
<list> <list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/image_picker_android-0.8.6+16/lib" /> <option value="$USER_HOME$/.pub-cache/hosted/pub.dev/image_picker_android-0.8.6+17/lib" />
</list> </list>
</value> </value>
</entry> </entry>
@ -551,7 +551,7 @@
<entry key="jiffy"> <entry key="jiffy">
<value> <value>
<list> <list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/jiffy-6.2.1/lib" /> <option value="$USER_HOME$/.pub-cache/hosted/pub.dev/jiffy-6.1.0/lib" />
</list> </list>
</value> </value>
</entry> </entry>
@ -607,7 +607,7 @@
<entry key="logging"> <entry key="logging">
<value> <value>
<list> <list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/logging-1.1.1/lib" /> <option value="$USER_HOME$/.pub-cache/hosted/pub.dev/logging-1.2.0/lib" />
</list> </list>
</value> </value>
</entry> </entry>
@ -649,7 +649,7 @@
<entry key="nextcloud"> <entry key="nextcloud">
<value> <value>
<list> <list>
<option value="$USER_HOME$/.pub-cache/git/nextcloud-neon-35eb2d65799f3e6a5f53b62da8cac868d3e52f86/packages/nextcloud/lib" /> <option value="$USER_HOME$/.pub-cache/git/nextcloud-neon-3f80f9f6ded0a077464e825cd3c1c60aa797c743/packages/nextcloud/lib" />
</list> </list>
</value> </value>
</entry> </entry>
@ -705,7 +705,7 @@
<entry key="path_provider_linux"> <entry key="path_provider_linux">
<value> <value>
<list> <list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.10/lib" /> <option value="$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.11/lib" />
</list> </list>
</value> </value>
</entry> </entry>
@ -971,7 +971,7 @@
<entry key="syncfusion_flutter_calendar"> <entry key="syncfusion_flutter_calendar">
<value> <value>
<list> <list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_flutter_calendar-21.2.5/lib" /> <option value="$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_flutter_calendar-21.2.8/lib" />
</list> </list>
</value> </value>
</entry> </entry>
@ -985,7 +985,7 @@
<entry key="syncfusion_flutter_datepicker"> <entry key="syncfusion_flutter_datepicker">
<value> <value>
<list> <list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_flutter_datepicker-21.2.5/lib" /> <option value="$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_flutter_datepicker-21.2.8/lib" />
</list> </list>
</value> </value>
</entry> </entry>
@ -1055,7 +1055,7 @@
<entry key="timezone"> <entry key="timezone">
<value> <value>
<list> <list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/timezone-0.9.1/lib" /> <option value="$USER_HOME$/.pub-cache/hosted/pub.dev/timezone-0.9.2/lib" />
</list> </list>
</value> </value>
</entry> </entry>
@ -1090,7 +1090,7 @@
<entry key="url_launcher_android"> <entry key="url_launcher_android">
<value> <value>
<list> <list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_android-6.0.34/lib" /> <option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_android-6.0.35/lib" />
</list> </list>
</value> </value>
</entry> </entry>
@ -1125,7 +1125,7 @@
<entry key="url_launcher_web"> <entry key="url_launcher_web">
<value> <value>
<list> <list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.16/lib" /> <option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.17/lib" />
</list> </list>
</value> </value>
</entry> </entry>
@ -1210,8 +1210,8 @@
</properties> </properties>
<CLASSES> <CLASSES>
<root url="file://$USER_HOME$/.pub-cache/git/flowder-1ddd171a763c4f1ba09b95e34e35e2e5cf0d1bba//lib" /> <root url="file://$USER_HOME$/.pub-cache/git/flowder-1ddd171a763c4f1ba09b95e34e35e2e5cf0d1bba//lib" />
<root url="file://$USER_HOME$/.pub-cache/git/nextcloud-neon-35eb2d65799f3e6a5f53b62da8cac868d3e52f86/packages/dynamite/dynamite_runtime/lib" /> <root url="file://$USER_HOME$/.pub-cache/git/nextcloud-neon-3f80f9f6ded0a077464e825cd3c1c60aa797c743/packages/dynamite/dynamite_runtime/lib" />
<root url="file://$USER_HOME$/.pub-cache/git/nextcloud-neon-35eb2d65799f3e6a5f53b62da8cac868d3e52f86/packages/nextcloud/lib" /> <root url="file://$USER_HOME$/.pub-cache/git/nextcloud-neon-3f80f9f6ded0a077464e825cd3c1c60aa797c743/packages/nextcloud/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-61.0.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-61.0.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/analyzer-5.13.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/analyzer-5.13.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/animated_digit-3.2.1/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/animated_digit-3.2.1/lib" />
@ -1231,9 +1231,9 @@
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/build_daemon-4.0.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/build_daemon-4.0.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/build_resolvers-2.2.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/build_resolvers-2.2.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/build_runner-2.4.4/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/build_runner-2.4.4/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/build_runner_core-7.2.8/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/build_runner_core-7.2.9/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/built_collection-5.1.1/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/built_collection-5.1.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/built_value-8.5.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/built_value-8.6.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/cached_network_image-3.2.3/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/cached_network_image-3.2.3/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/cached_network_image_platform_interface-2.0.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/cached_network_image_platform_interface-2.0.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/cached_network_image_web-1.0.2/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/cached_network_image_web-1.0.2/lib" />
@ -1248,7 +1248,7 @@
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/cross_file-0.3.3+4/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/cross_file-0.3.3+4/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/crypto-3.0.3/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/crypto-3.0.3/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/crypton-2.1.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/crypton-2.1.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/csslib-0.17.2/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/csslib-0.17.3/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.5/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.5/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/dart_style-2.3.1/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/dart_style-2.3.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/device_info_plus-8.2.2/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/device_info_plus-8.2.2/lib" />
@ -1257,7 +1257,7 @@
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/fake_async-1.3.1/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/fake_async-1.3.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/ffi-2.0.2/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/ffi-2.0.2/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/file-6.1.4/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/file-6.1.4/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/file_picker-5.3.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/file_picker-5.3.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/filesize-2.0.1/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/filesize-2.0.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/fixnum-1.1.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/fixnum-1.1.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_blurhash-0.7.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_blurhash-0.7.0/lib" />
@ -1271,20 +1271,20 @@
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/font_awesome_flutter-10.4.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/font_awesome_flutter-10.4.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/frontend_server_client-3.2.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/frontend_server_client-3.2.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/glob-2.1.2/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/glob-2.1.2/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/graphs-2.3.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/graphs-2.3.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/html-0.15.3/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/html-0.15.3/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/http-0.13.6/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/http-0.13.6/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/http_multi_server-3.2.1/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/http_multi_server-3.2.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/http_parser-4.0.2/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/http_parser-4.0.2/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/image-4.0.17/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/image-4.0.17/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/image_picker-0.8.7+5/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/image_picker-0.8.7+5/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/image_picker_android-0.8.6+16/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/image_picker_android-0.8.6+17/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/image_picker_for_web-2.1.12/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/image_picker_for_web-2.1.12/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.7+4/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.7+4/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/image_picker_platform_interface-2.6.3/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/image_picker_platform_interface-2.6.3/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/intl-0.18.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/intl-0.18.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/io-1.0.4/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/io-1.0.4/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/jiffy-6.2.1/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/jiffy-6.1.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/js-0.6.7/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/js-0.6.7/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/json_annotation-4.8.1/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/json_annotation-4.8.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/json_serializable-6.7.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/json_serializable-6.7.0/lib" />
@ -1292,7 +1292,7 @@
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/lints-2.1.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/lints-2.1.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/loader_overlay-2.2.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/loader_overlay-2.2.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/localstore-1.3.5/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/localstore-1.3.5/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/logging-1.1.1/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/logging-1.2.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/matcher-0.12.15/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/matcher-0.12.15/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/material_color_utilities-0.2.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/material_color_utilities-0.2.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/meta-1.9.1/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/meta-1.9.1/lib" />
@ -1305,7 +1305,7 @@
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider-2.0.15/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider-2.0.15/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_android-2.0.27/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_android-2.0.27/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_foundation-2.2.3/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_foundation-2.2.3/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.10/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.11/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.0.6/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.0.6/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_windows-2.1.6/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_windows-2.1.6/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/pedantic-1.11.1/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/pedantic-1.11.1/lib" />
@ -1342,9 +1342,9 @@
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/stream_channel-2.1.1/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/stream_channel-2.1.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/stream_transform-2.1.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/stream_transform-2.1.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/string_scanner-1.2.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/string_scanner-1.2.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_flutter_calendar-21.2.5/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_flutter_calendar-21.2.8/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_flutter_core-21.2.8/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_flutter_core-21.2.8/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_flutter_datepicker-21.2.5/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_flutter_datepicker-21.2.8/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_flutter_pdf-21.2.8/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_flutter_pdf-21.2.8/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_flutter_pdfviewer-21.2.8/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_flutter_pdfviewer-21.2.8/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_pdfviewer_macos-21.2.8/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_pdfviewer_macos-21.2.8/lib" />
@ -1354,17 +1354,17 @@
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/synchronized-3.1.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/synchronized-3.1.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/term_glyph-1.2.1/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/term_glyph-1.2.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/test_api-0.5.1/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/test_api-0.5.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/timezone-0.9.1/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/timezone-0.9.2/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/timing-1.0.1/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/timing-1.0.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/typed_data-1.3.2/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/typed_data-1.3.2/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/universal_io-2.2.0/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/universal_io-2.2.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher-6.1.11/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher-6.1.11/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_android-6.0.34/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_android-6.0.35/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_ios-6.1.4/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_ios-6.1.4/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_linux-3.0.5/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_linux-3.0.5/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_macos-3.0.5/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_macos-3.0.5/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.1.2/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.1.2/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.16/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.17/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_windows-3.0.6/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_windows-3.0.6/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/uuid-3.0.7/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/uuid-3.0.7/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/vector_math-2.1.4/lib" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/vector_math-2.1.4/lib" />

View File

@ -23,14 +23,14 @@
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.7+4" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.7+4" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_windows-2.1.6" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_windows-2.1.6" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/better_open_file-3.6.4" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/better_open_file-3.6.4" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.16" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_android-6.0.34" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/image_picker_android-0.8.6+16" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.10" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/file_picker-5.3.0" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/device_info_plus-8.2.2" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/device_info_plus-8.2.2" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_pdfviewer_web-21.2.8" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_pdfviewer_web-21.2.8" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_flutter_pdfviewer-21.2.8" /> <root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/syncfusion_flutter_pdfviewer-21.2.8" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.17" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_android-6.0.35" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/image_picker_android-0.8.6+17" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.11" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/file_picker-5.3.1" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />

View File

@ -151,6 +151,7 @@ class _FilesState extends State<Files> {
], ],
), ),
floatingActionButton: FloatingActionButton( floatingActionButton: FloatingActionButton(
heroTag: "uploadFile",
backgroundColor: Theme.of(context).primaryColor, backgroundColor: Theme.of(context).primaryColor,
onPressed: () { onPressed: () {
showDialog(context: context, builder: (context) { showDialog(context: context, builder: (context) {

View File

@ -1,20 +1,12 @@
import 'dart:async'; import 'dart:async';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:jiffy/jiffy.dart';
import 'package:marianum_mobile/api/marianumcloud/talk/room/getRoom.dart';
import 'package:marianum_mobile/api/marianumcloud/talk/room/getRoomParams.dart';
import 'package:marianum_mobile/view/pages/talk/chatTile.dart';
import 'package:marianum_mobile/view/pages/talk/searchChat.dart';
import 'package:persistent_bottom_nav_bar/persistent_tab_view.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../../../model/chatList/chatListProps.dart'; import '../../../model/chatList/chatListProps.dart';
import '../../../widget/confirmDialog.dart'; import 'chatTile.dart';
import '../../../widget/unimplementedDialog.dart';
import 'chatView.dart';
import 'joinChat.dart'; import 'joinChat.dart';
import 'searchChat.dart';
class ChatList extends StatefulWidget { class ChatList extends StatefulWidget {
const ChatList({Key? key}) : super(key: key); const ChatList({Key? key}) : super(key: key);
@ -40,6 +32,7 @@ class _ChatListState extends State<ChatList> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
ChatListProps? latestData;
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
@ -48,12 +41,14 @@ class _ChatListState extends State<ChatList> {
IconButton( IconButton(
icon: const Icon(Icons.search), icon: const Icon(Icons.search),
onPressed: () async { onPressed: () async {
showSearch(context: context, delegate: SearchChat((await GetRoom(GetRoomParams(includeStatus: true)).run()).data.toList())); if(latestData == null) return;
showSearch(context: context, delegate: SearchChat(latestData!.getRoomsResponse.data.toList()));
}, },
) )
], ],
), ),
floatingActionButton: FloatingActionButton( floatingActionButton: FloatingActionButton(
heroTag: "createChat",
backgroundColor: Theme.of(context).primaryColor, backgroundColor: Theme.of(context).primaryColor,
onPressed: () { onPressed: () {
showSearch(context: context, delegate: JoinChat()); showSearch(context: context, delegate: JoinChat());
@ -67,8 +62,9 @@ class _ChatListState extends State<ChatList> {
return const Center(child: CircularProgressIndicator()); return const Center(child: CircularProgressIndicator());
} }
List<ChatTile> chats = List<ChatTile>.empty(growable: true); latestData = data;
List<ChatTile> chats = [];
for (var chatRoom in data.getRoomsResponse.sortByLastActivity()) { for (var chatRoom in data.getRoomsResponse.sortByLastActivity()) {
chats.add(ChatTile(data: chatRoom, query: _query)); chats.add(ChatTile(data: chatRoom, query: _query));
} }

View File

@ -12,8 +12,40 @@ import '../../../api/marianumcloud/talk/setReadMarker/setReadMarkerParams.dart';
import '../../../widget/confirmDialog.dart'; import '../../../widget/confirmDialog.dart';
import 'chatView.dart'; import 'chatView.dart';
class ChatTile { class ChatTile extends StatefulWidget {
ListTile getTile(GetRoomResponseObject data, void Function({bool renew}) query) async { final GetRoomResponseObject data;
final void Function({bool renew}) query;
final bool disableContextActions;
const ChatTile({Key? key, required this.data, required this.query, this.disableContextActions = false}) : super(key: key);
@override
State<ChatTile> createState() => _ChatTileState();
}
class _ChatTileState extends State<ChatTile> {
late String username;
@override
void initState() {
super.initState();
SharedPreferences.getInstance().then((value) => {
username = value.getString("username")!
});
}
void setCurrentAsRead() {
SetReadMarker(
widget.data.token,
true,
setReadMarkerParams: SetReadMarkerParams(
lastReadMessage: widget.data.lastMessage.id
)
).run().then((value) => widget.query(renew: true));
}
@override
Widget build(BuildContext context) {
CircleAvatar circleAvatar = CircleAvatar( CircleAvatar circleAvatar = CircleAvatar(
foregroundImage: widget.data.type == GetRoomResponseObjectConversationType.oneToOne ? Image.network("https://cloud.marianum-fulda.de/avatar/${widget.data.name}/128").image : null, foregroundImage: widget.data.type == GetRoomResponseObjectConversationType.oneToOne ? Image.network("https://cloud.marianum-fulda.de/avatar/${widget.data.name}/128").image : null,
backgroundColor: Theme.of(context).primaryColor, backgroundColor: Theme.of(context).primaryColor,
@ -21,22 +53,12 @@ class ChatTile {
child: widget.data.type == GetRoomResponseObjectConversationType.group ? const Icon(Icons.group) : const Icon(Icons.person), child: widget.data.type == GetRoomResponseObjectConversationType.group ? const Icon(Icons.group) : const Icon(Icons.person),
); );
String username = (await SharedPreferences.getInstance()).getString("username")!;
void setCurrentAsRead() {
SetReadMarker(
data.token,
true,
setReadMarkerParams: SetReadMarkerParams(
lastReadMessage: data.lastMessage.id
)
).run().then((value) => query(renew: true));
}
return ListTile( return ListTile(
leading: Stack( leading: Stack(
children: [ children: [
circleAvatar, circleAvatar,
Visibility( Visibility(
visible: data.isFavorite, visible: widget.data.isFavorite,
child: Positioned( child: Positioned(
right: 0, right: 0,
bottom: 0, bottom: 0,
@ -52,13 +74,13 @@ class ChatTile {
) )
], ],
), ),
title: Text(data.displayName), title: Text(widget.data.displayName),
subtitle: Text("${Jiffy.parseFromMillisecondsSinceEpoch(data.lastMessage.timestamp * 1000).fromNow()}: ${RichObjectStringProcessor.parseToString(data.lastMessage.message.replaceAll("\n", " "), data.lastMessage.messageParameters)}", overflow: TextOverflow.ellipsis), subtitle: Text("${Jiffy.parseFromMillisecondsSinceEpoch(widget.data.lastMessage.timestamp * 1000).fromNow()}: ${RichObjectStringProcessor.parseToString(widget.data.lastMessage.message.replaceAll("\n", " "), widget.data.lastMessage.messageParameters)}", overflow: TextOverflow.ellipsis),
trailing: Row( trailing: Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
Visibility( Visibility(
visible: data.unreadMessages > 0, visible: widget.data.unreadMessages > 0,
child: Container( child: Container(
padding: const EdgeInsets.all(1), padding: const EdgeInsets.all(1),
decoration: BoxDecoration( decoration: BoxDecoration(
@ -70,7 +92,7 @@ class ChatTile {
minHeight: 20, minHeight: 20,
), ),
child: Text( child: Text(
"${data.unreadMessages}", "${widget.data.unreadMessages}",
style: const TextStyle( style: const TextStyle(
color: Colors.white, color: Colors.white,
fontSize: 15, fontSize: 15,
@ -85,20 +107,21 @@ class ChatTile {
setCurrentAsRead(); setCurrentAsRead();
PersistentNavBarNavigator.pushNewScreen( PersistentNavBarNavigator.pushNewScreen(
context, context,
screen: ChatView(room: data, selfId: username, avatar: circleAvatar), screen: ChatView(room: widget.data, selfId: username, avatar: circleAvatar),
withNavBar: false withNavBar: false
); );
}, },
onLongPress: () { onLongPress: () {
if(widget.disableContextActions) return;
showDialog(context: context, builder: (context) => SimpleDialog( showDialog(context: context, builder: (context) => SimpleDialog(
children: [ children: [
Visibility( Visibility(
visible: data.unreadMessages > 0, visible: widget.data.unreadMessages > 0,
replacement: ListTile( replacement: ListTile(
leading: const Icon(Icons.mark_chat_unread_outlined), leading: const Icon(Icons.mark_chat_unread_outlined),
title: const Text("Als ungelesen markieren"), title: const Text("Als ungelesen markieren"),
onTap: () { onTap: () {
SetReadMarker(data.token, false).run().then((value) => query(renew: true)); SetReadMarker(widget.data.token, false).run().then((value) => widget.query(renew: true));
Navigator.of(context).pop(); Navigator.of(context).pop();
}, },
), ),
@ -112,12 +135,12 @@ class ChatTile {
), ),
), ),
Visibility( Visibility(
visible: data.isFavorite, visible: widget.data.isFavorite,
replacement: ListTile( replacement: ListTile(
leading: const Icon(Icons.star_outline), leading: const Icon(Icons.star_outline),
title: const Text("Zu favoriten hinzufügen"), title: const Text("Zu favoriten hinzufügen"),
onTap: () { onTap: () {
SetFavorite(data.token, true).run().then((value) => query(renew: true)); SetFavorite(widget.data.token, true).run().then((value) => widget.query(renew: true));
Navigator.of(context).pop(); Navigator.of(context).pop();
}, },
), ),
@ -125,7 +148,7 @@ class ChatTile {
leading: const Icon(Icons.stars_outlined), leading: const Icon(Icons.stars_outlined),
title: const Text("Von favoriten entfernen"), title: const Text("Von favoriten entfernen"),
onTap: () { onTap: () {
SetFavorite(data.token, false).run().then((value) => query(renew: true)); SetFavorite(widget.data.token, false).run().then((value) => widget.query(renew: true));
Navigator.of(context).pop(); Navigator.of(context).pop();
}, },
), ),
@ -139,7 +162,7 @@ class ChatTile {
content: "Du benötigst ggf. eine Einladung um erneut beizutreten.", content: "Du benötigst ggf. eine Einladung um erneut beizutreten.",
confirmButton: "Löschen", confirmButton: "Löschen",
onConfirm: () { onConfirm: () {
LeaveRoom(data.token).run().then((value) => query(renew: true)); LeaveRoom(widget.data.token).run().then((value) => widget.query(renew: true));
Navigator.of(context).pop(); Navigator.of(context).pop();
}, },
).asDialog(context); ).asDialog(context);
@ -151,40 +174,3 @@ class ChatTile {
); );
} }
} }
class ChatTile extends StatefulWidget {
final GetRoomResponseObject data;
final void Function({bool renew}) query;
const ChatTile({Key? key, required this.data, required this.query}) : super(key: key);
@override
State<ChatTile> createState() => _ChatTileState();
}
class _ChatTileState extends State<ChatTile> {
late CircleAvatar circleAvatar;
late String username;
@override
void initState() {
SharedPreferences.getInstance().then((value) => {
username = value.getString("username")!
});
circleAvatar = CircleAvatar(
foregroundImage: data.type == GetRoomResponseObjectConversationType.oneToOne ? Image.network("https://cloud.marianum-fulda.de/avatar/${data.name}/128").image : null,
backgroundColor: Theme.of(context).primaryColor,
foregroundColor: Colors.white,
child: data.type == GetRoomResponseObjectConversationType.group ? const Icon(Icons.group) : const Icon(Icons.person),
);
}
@override
Widget build(BuildContext context) {
}
}

View File

@ -1,7 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:marianum_mobile/view/pages/talk/chatTile.dart';
import '../../../api/marianumcloud/talk/room/getRoomResponse.dart'; import '../../../api/marianumcloud/talk/room/getRoomResponse.dart';
import 'chatTile.dart';
class SearchChat extends SearchDelegate { class SearchChat extends SearchDelegate {
List<GetRoomResponseObject> chats; List<GetRoomResponseObject> chats;
@ -29,7 +29,7 @@ class SearchChat extends SearchDelegate {
itemCount: items.length, itemCount: items.length,
itemBuilder: (context, index) { itemBuilder: (context, index) {
var item = items.elementAt(index); var item = items.elementAt(index);
return ChatTile(data: item, query: ({bool renew = true}) {}); return ChatTile(data: item, disableContextActions: true, query: ({bool renew = true}) {});
}, },
); );
} }