Added early basic media viewing in Talk

This commit is contained in:
Elias Müller 2023-02-24 23:22:04 +01:00
parent 0558be1d22
commit 37a0d5cb4a
8 changed files with 287 additions and 114 deletions

View File

@ -5,14 +5,14 @@
<entry key="_fe_analyzer_shared">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-53.0.0/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-54.0.0/lib" />
</list>
</value>
</entry>
<entry key="analyzer">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/analyzer-5.5.0/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/analyzer-5.6.0/lib" />
</list>
</value>
</entry>
@ -128,6 +128,27 @@
</list>
</value>
</entry>
<entry key="cached_network_image">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/cached_network_image-3.2.3/lib" />
</list>
</value>
</entry>
<entry key="cached_network_image_platform_interface">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/cached_network_image_platform_interface-2.0.0/lib" />
</list>
</value>
</entry>
<entry key="cached_network_image_web">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/cached_network_image_web-1.0.2/lib" />
</list>
</value>
</entry>
<entry key="characters">
<value>
<list>
@ -254,6 +275,20 @@
</list>
</value>
</entry>
<entry key="flutter_blurhash">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_blurhash-0.7.0/lib" />
</list>
</value>
</entry>
<entry key="flutter_cache_manager">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_cache_manager-3.3.0/lib" />
</list>
</value>
</entry>
<entry key="flutter_launcher_icons">
<value>
<list>
@ -464,6 +499,13 @@
</list>
</value>
</entry>
<entry key="octo_image">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/octo_image-1.0.2/lib" />
</list>
</value>
</entry>
<entry key="package_config">
<value>
<list>
@ -481,42 +523,49 @@
<entry key="path_provider">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider-2.0.12/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider-2.0.13/lib" />
</list>
</value>
</entry>
<entry key="path_provider_android">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_android-2.0.22/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_android-2.0.23/lib" />
</list>
</value>
</entry>
<entry key="path_provider_foundation">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_foundation-2.1.1/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_foundation-2.1.2/lib" />
</list>
</value>
</entry>
<entry key="path_provider_linux">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.8/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.9/lib" />
</list>
</value>
</entry>
<entry key="path_provider_platform_interface">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.0.5/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.0.6/lib" />
</list>
</value>
</entry>
<entry key="path_provider_windows">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_windows-2.1.3/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_windows-2.1.4/lib" />
</list>
</value>
</entry>
<entry key="pedantic">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/pedantic-1.11.1/lib" />
</list>
</value>
</entry>
@ -537,7 +586,7 @@
<entry key="plugin_platform_interface">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.3/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.4/lib" />
</list>
</value>
</entry>
@ -597,59 +646,59 @@
</list>
</value>
</entry>
<entry key="retry">
<entry key="rxdart">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/retry-3.1.0/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/rxdart-0.27.7/lib" />
</list>
</value>
</entry>
<entry key="shared_preferences">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences-2.0.17/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences-2.0.18/lib" />
</list>
</value>
</entry>
<entry key="shared_preferences_android">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_android-2.0.15/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_android-2.0.16/lib" />
</list>
</value>
</entry>
<entry key="shared_preferences_foundation">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.1.3/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.1.4/lib" />
</list>
</value>
</entry>
<entry key="shared_preferences_linux">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.1.3/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.1.4/lib" />
</list>
</value>
</entry>
<entry key="shared_preferences_platform_interface">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.1.0/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.1.1/lib" />
</list>
</value>
</entry>
<entry key="shared_preferences_web">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_web-2.0.4/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_web-2.0.5/lib" />
</list>
</value>
</entry>
<entry key="shared_preferences_windows">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.1.3/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.1.4/lib" />
</list>
</value>
</entry>
@ -702,6 +751,20 @@
</list>
</value>
</entry>
<entry key="sqflite">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/sqflite-2.2.4+1/lib" />
</list>
</value>
</entry>
<entry key="sqflite_common">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/sqflite_common-2.4.2+2/lib" />
</list>
</value>
</entry>
<entry key="stack_trace">
<value>
<list>
@ -730,6 +793,13 @@
</list>
</value>
</entry>
<entry key="synchronized">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/synchronized-3.0.1/lib" />
</list>
</value>
</entry>
<entry key="term_glyph">
<value>
<list>
@ -775,56 +845,63 @@
<entry key="url_launcher">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher-6.1.9/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher-6.1.10/lib" />
</list>
</value>
</entry>
<entry key="url_launcher_android">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_android-6.0.23/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_android-6.0.24/lib" />
</list>
</value>
</entry>
<entry key="url_launcher_ios">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_ios-6.1.0/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_ios-6.1.1/lib" />
</list>
</value>
</entry>
<entry key="url_launcher_linux">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_linux-3.0.2/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_linux-3.0.3/lib" />
</list>
</value>
</entry>
<entry key="url_launcher_macos">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_macos-3.0.2/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_macos-3.0.3/lib" />
</list>
</value>
</entry>
<entry key="url_launcher_platform_interface">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.1.1/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.1.2/lib" />
</list>
</value>
</entry>
<entry key="url_launcher_web">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.14/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.15/lib" />
</list>
</value>
</entry>
<entry key="url_launcher_windows">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_windows-3.0.3/lib" />
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_windows-3.0.4/lib" />
</list>
</value>
</entry>
<entry key="uuid">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/uuid-3.0.7/lib" />
</list>
</value>
</entry>
@ -856,13 +933,6 @@
</list>
</value>
</entry>
<entry key="webdav">
<value>
<list>
<option value="$USER_HOME$/.pub-cache/git/dart-webdav-1a70d3f7236484ed170f688980020b344d729d39//lib" />
</list>
</value>
</entry>
<entry key="win32">
<value>
<list>
@ -894,10 +964,9 @@
</option>
</properties>
<CLASSES>
<root url="file://$USER_HOME$/.pub-cache/git/dart-webdav-1a70d3f7236484ed170f688980020b344d729d39//lib" />
<root url="file://$USER_HOME$/.pub-cache/git/nextcloud-neon-f9deebaa06241d11567225d3556ceed80af41140/packages/nextcloud/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-53.0.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/analyzer-5.5.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-54.0.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/analyzer-5.6.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/another_flushbar-1.12.29/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/another_transformer_page_view-2.0.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/archive-3.3.6/lib" />
@ -914,6 +983,9 @@
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/build_runner_core-7.2.7/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.4.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_web-1.0.2/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/characters-1.2.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/checked_yaml-2.0.2/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/cli_util-0.3.5/lib" />
@ -931,6 +1003,8 @@
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/ffi-2.0.1/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/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_cache_manager-3.3.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_launcher_icons-0.11.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_lints-2.0.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_login-4.1.1/lib" />
@ -958,17 +1032,19 @@
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/meta-1.8.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/mime-1.0.4/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/nested-1.0.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/octo_image-1.0.2/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/package_config-2.1.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path-1.8.2/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider-2.0.12/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_android-2.0.22/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_foundation-2.1.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.8/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.0.5/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_windows-2.1.3/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider-2.0.13/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_android-2.0.23/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_foundation-2.1.2/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.9/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.4/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/petitparser-5.1.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/platform-3.1.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.3/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.4/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/pointycastle-3.6.2/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/pool-1.5.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/pretty_json-2.0.0/lib" />
@ -977,38 +1053,42 @@
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/pub_semver-2.1.3/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/pubspec_parse-1.2.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/quiver-3.2.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/retry-3.1.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences-2.0.17/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_android-2.0.15/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.1.3/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.1.3/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.1.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_web-2.0.4/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.1.3/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/rxdart-0.27.7/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences-2.0.18/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_android-2.0.16/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.1.4/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.1.4/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.1.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_web-2.0.5/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.1.4/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shelf-1.4.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shelf_web_socket-1.0.3/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/sign_in_button-3.1.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/source_gen-1.2.7/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/source_helper-1.3.3/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/source_span-1.9.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/sqflite-2.2.4+1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/sqflite_common-2.4.2+2/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/stack_trace-1.11.0/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/string_scanner-1.2.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/synchronized-3.0.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.4.16/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/timetable_view-0.3.0/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.1/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.9/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_android-6.0.23/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_ios-6.1.0/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_linux-3.0.2/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_macos-3.0.2/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.1.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.14/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_windows-3.0.3/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher-6.1.10/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_android-6.0.24/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_ios-6.1.1/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_linux-3.0.3/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_macos-3.0.3/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.15/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_windows-3.0.4/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/version-3.0.2/lib" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/watcher-1.0.2/lib" />

View File

@ -1,25 +1,26 @@
<component name="libraryTable">
<library name="Flutter Plugins" type="FlutterPluginsLibraryType">
<CLASSES>
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_macos-3.0.2" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_linux-3.0.2" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider-2.0.12" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_android-6.0.23" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences-2.0.17" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.1.3" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.14" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher-6.1.9" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_windows-3.0.3" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.8" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.1.3" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_ios-6.1.0" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_foundation-2.1.1" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_android-2.0.22" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.1.3" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_web-2.0.4" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_windows-2.1.3" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_android-2.0.15" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_native_splash-2.2.16" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.15" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_macos-3.0.3" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_android-6.0.24" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_linux-3.0.3" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences-2.0.18" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_windows-3.0.4" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.9" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.1.4" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_ios-6.1.1" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_foundation-2.1.2" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher-6.1.10" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_android-2.0.23" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_android-2.0.16" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.1.4" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_web-2.0.5" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.1.4" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider-2.0.13" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_windows-2.1.4" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.dev/sqflite-2.2.4+1" />
</CLASSES>
<JAVADOC />
<SOURCES />

View File

@ -1,7 +1,12 @@
import 'dart:convert';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:marianum_mobile/api/marianumcloud/talk/chat/getChatResponse.dart';
import 'package:shared_preferences/shared_preferences.dart';
class RichObjectStringProcessor {
static String parse(String message, Map<String, RichObjectString>? data) {
static String parseTextPreview(String message, Map<String, RichObjectString>? data) {
if(data == null) return message;
data.forEach((key, value) {
@ -10,4 +15,31 @@ class RichObjectStringProcessor {
return message;
}
static Future<Widget> parseAnyToWidget(String message, Map<String, RichObjectString>? data) async {
if(data == null) return Text(message);
if(!message.contains(RegExp("{file}"))) return Text(parseTextPreview(message, data));
SharedPreferences preferences = await SharedPreferences.getInstance();
Widget? back;
data.forEach((key, value) {
back = CachedNetworkImage(
errorWidget: (context, url, error) {
return Text("Datei: ${value.name}", style: const TextStyle(fontWeight: FontWeight.bold));
},
alignment: Alignment.center,
placeholder: (context, url) {
return const Padding(padding: EdgeInsets.all(10), child: CircularProgressIndicator());
},
fadeInDuration: const Duration(seconds: 1),
imageUrl: "https://cloud.marianum-fulda.de/core/preview?fileId=${value.id}&x=110&y=-1&a=1",
httpHeaders: {
"Authorization": "Basic ${base64.encode(utf8.encode("${preferences.getString("username")}:${preferences.getString("password")}"))}"
},
);
});
return back ?? Text("NOPE");
}
}

View File

@ -56,7 +56,7 @@ class _ChatListState extends State<ChatList> {
chats.add(ListTile(
title: Text(chatRoom.displayName),
subtitle: Text("${Jiffy.unixFromSecondsSinceEpoch(chatRoom.lastMessage.timestamp).fromNow()}: ${RichObjectStringProcessor.parse(chatRoom.lastMessage.message.replaceAll("\n", " "), chatRoom.lastMessage.messageParameters)}", overflow: TextOverflow.ellipsis),
subtitle: Text("${Jiffy.unixFromSecondsSinceEpoch(chatRoom.lastMessage.timestamp).fromNow()}: ${RichObjectStringProcessor.parseTextPreview(chatRoom.lastMessage.message.replaceAll("\n", " "), chatRoom.lastMessage.messageParameters)}", overflow: TextOverflow.ellipsis),
trailing: Visibility(
visible: chatRoom.unreadMessages > 0,
child: Container(
@ -83,7 +83,7 @@ class _ChatListState extends State<ChatList> {
onTap: () async {
Navigator.of(context).push(MaterialPageRoute(builder: (context) {
return ChatView(
user: chatRoom,
room: chatRoom,
selfId: username,
avatar: circleAvatar,
);

View File

@ -10,11 +10,11 @@ import 'package:marianum_mobile/data/chatList/chatProps.dart';
import 'package:provider/provider.dart';
class ChatView extends StatefulWidget {
final GetRoomResponseObject user;
final GetRoomResponseObject room;
final String selfId;
final CircleAvatar avatar;
const ChatView({Key? key, required this.user, required this.selfId, required this.avatar}) : super(key: key);
const ChatView({Key? key, required this.room, required this.selfId, required this.avatar}) : super(key: key);
@override
State<ChatView> createState() => _ChatViewState();
@ -56,7 +56,7 @@ class _ChatViewState extends State<ChatView> {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
Provider.of<ChatProps>(context, listen: false).setQueryToken(widget.user.token);
Provider.of<ChatProps>(context, listen: false).setQueryToken(widget.room.token);
});
}
@ -67,11 +67,13 @@ class _ChatViewState extends State<ChatView> {
List<Bubble> messages = List<Bubble>.empty(growable: true);
if(!data.primaryLoading()) {
bool showMetadata = true;
bool showActorDisplayName = true;
bool showBubbleTime = true;
data.getChatResponse.sortByTimestamp().forEach((element) {
showMetadata = element.messageType == GetRoomResponseObjectMessageType.comment;
showActorDisplayName = element.messageType == GetRoomResponseObjectMessageType.comment && widget.room.type != GetRoomResponseObjectConversationType.oneToOne;
showBubbleTime = element.messageType != GetRoomResponseObjectMessageType.system;
BubbleStyle currentStyle;
if(element.messageType == GetRoomResponseObjectMessageType.comment) {
@ -84,38 +86,85 @@ class _ChatViewState extends State<ChatView> {
currentStyle = styleSystem;
}
var _actorTextStyle = TextStyle(color: Theme.of(context).primaryColor, fontWeight: FontWeight.bold);
messages.add(Bubble(
margin: BubbleEdges.only(bottom: element == data.getChatResponse.sortByTimestamp().last ? 20 : 0),
style: currentStyle,
child: Stack(
children: [
Visibility(
visible: showMetadata,
child: Positioned(
top: 0,
left: 0,
child: Text(element.actorDisplayName, style: TextStyle(fontWeight: FontWeight.bold, color: Theme.of(context).primaryColor)),
child: Container(
constraints: BoxConstraints(
maxWidth: MediaQuery.of(context).size.width * 0.9,
minWidth: _textSize(element.actorDisplayName, _actorTextStyle).width,
),
child: Stack(
children: [
Padding(
padding: EdgeInsets.only(bottom: showBubbleTime ? 18 : 0, top: showActorDisplayName ? 18 : 0),
child: FutureBuilder(
future: RichObjectStringProcessor.parseAnyToWidget(element.message, element.messageParameters),
builder: (context, snapshot) {
if(!snapshot.hasData) return const CircularProgressIndicator();
return snapshot.data ?? const Icon(Icons.error);
},
)
),
),
Padding(
padding: EdgeInsets.symmetric(vertical: showMetadata ? 18 : 0),
child: Text(RichObjectStringProcessor.parse(element.message, element.messageParameters)),
),
Visibility(
visible: showMetadata,
child: Positioned(
bottom: 0,
right: 0,
child: Text(
"${Jiffy.unixFromSecondsSinceEpoch(element.timestamp).yMMMMd} - ${Jiffy.unixFromSecondsSinceEpoch(element.timestamp).format("HH:mm")}",
style: TextStyle(color: Theme.of(context).disabledColor),
Visibility(
visible: showActorDisplayName,
child: Positioned(
top: 0,
left: 0,
child: Text(
element.actorDisplayName,
textAlign: TextAlign.start,
style: _actorTextStyle,
),
),
),
),
],
Visibility(
visible: showBubbleTime,
child: Positioned(
bottom: 0,
right: 0,
child: Text(
Jiffy.unixFromSecondsSinceEpoch(element.timestamp).format("HH:mm"),
textAlign: TextAlign.end,
style: const TextStyle(color: Colors.grey, fontSize: 12),
),
),
),
],
),
),
// Stack(
// children: [
// Visibility(
// visible: showMetadata,
// child: Positioned(
// top: 0,
// left: 0,
// child: Expanded(child: Text(element.actorDisplayName, style: TextStyle(fontWeight: FontWeight.bold, color: Theme.of(context).primaryColor))),
// ),
// ),
// Padding(
// padding: EdgeInsets.symmetric(vertical: showMetadata ? 18 : 0),
// child: Text(RichObjectStringProcessor.parse(element.message, element.messageParameters)),
// ),
// Visibility(
// visible: showMetadata,
// child: Positioned(
// bottom: 0,
// right: 0,
// child: Text(
// "${Jiffy.unixFromSecondsSinceEpoch(element.timestamp).yMMMMd} - ${Jiffy.unixFromSecondsSinceEpoch(element.timestamp).format("HH:mm")}",
// style: TextStyle(color: Theme.of(context).disabledColor),
// ),
// ),
// ),
// ],
// ),
));
});
}
@ -127,7 +176,9 @@ class _ChatViewState extends State<ChatView> {
children: [
widget.avatar,
const SizedBox(width: 10),
Text(widget.user.displayName, overflow: TextOverflow.ellipsis, maxLines: 1),
Expanded(
child: Text(widget.room.displayName, overflow: TextOverflow.ellipsis, maxLines: 1),
)
],
),
),
@ -175,7 +226,7 @@ class _ChatViewState extends State<ChatView> {
setState(() {
sending = true;
});
SendMessage(widget.user.token, SendMessageParams(_textBoxController.text)).run().then((value) => {
SendMessage(widget.room.token, SendMessageParams(_textBoxController.text)).run().then((value) => {
Provider.of<ChatProps>(context, listen: false).run(),
_textBoxController.text = "",
setState(() {
@ -196,4 +247,13 @@ class _ChatViewState extends State<ChatView> {
},
);
}
Size _textSize(String text, TextStyle style) {
final TextPainter textPainter = TextPainter(
text: TextSpan(text: text, style: style),
maxLines: 1,
textDirection: TextDirection.ltr)
..layout(minWidth: 0, maxWidth: double.infinity);
return textPainter.size;
}
}

View File

@ -31,6 +31,7 @@ class _DebugOverviewState extends State<DebugOverview> {
leading: const Icon(Icons.delete_forever),
title: const Text("Cache löschen"),
onTap: () {
PaintingBinding.instance.imageCache.clear();
storage.collection("MarianumMobile").delete().then((value) => {
Navigator.pop(context)
});

View File

@ -7,10 +7,12 @@ import Foundation
import path_provider_foundation
import shared_preferences_foundation
import sqflite
import url_launcher_macos
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
}

View File

@ -47,16 +47,13 @@ dependencies:
json_annotation: ^4.8.0
localstore: ^1.2.3
intl: ^0.17.0
webdav: #^1.0.9
git:
url: https://github.com/timestee/dart-webdav.git
ref: 1a70d3f7236484ed170f688980020b344d729d39
nextcloud:
git:
url: https://github.com/provokateurin/nextcloud-neon
path: packages/nextcloud
flutter_launcher_icons: ^0.11.0
pretty_json: ^2.0.0
cached_network_image: ^3.2.3
dependency_overrides:
xml: ^6.2.2