diff --git a/android/build/reports/problems/problems-report.html b/android/build/reports/problems/problems-report.html index f85479d..e923c4a 100644 --- a/android/build/reports/problems/problems-report.html +++ b/android/build/reports/problems/problems-report.html @@ -650,7 +650,7 @@ code + .copy-button { diff --git a/appimage/Extera.AppDir/bundle/data/flutter_assets/FontManifest.json b/appimage/Extera.AppDir/bundle/data/flutter_assets/FontManifest.json index 0a1b110..9899cce 100644 --- a/appimage/Extera.AppDir/bundle/data/flutter_assets/FontManifest.json +++ b/appimage/Extera.AppDir/bundle/data/flutter_assets/FontManifest.json @@ -1 +1 @@ -[{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]},{"family":"packages/material/Material","fonts":[{"asset":"packages/material/lib/fonts/material.ttf"}]}] \ No newline at end of file +[{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]},{"family":"packages/material/Material","fonts":[{"asset":"packages/material/lib/fonts/material.ttf"}]},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]}] \ No newline at end of file diff --git a/appimage/Extera.AppDir/bundle/data/flutter_assets/NOTICES.Z b/appimage/Extera.AppDir/bundle/data/flutter_assets/NOTICES.Z index 9eb1e49..51c691b 100644 Binary files a/appimage/Extera.AppDir/bundle/data/flutter_assets/NOTICES.Z and b/appimage/Extera.AppDir/bundle/data/flutter_assets/NOTICES.Z differ diff --git a/appimage/Extera.AppDir/bundle/extera_next b/appimage/Extera.AppDir/bundle/extera_next index 79c7c71..fcc8c70 100755 Binary files a/appimage/Extera.AppDir/bundle/extera_next and b/appimage/Extera.AppDir/bundle/extera_next differ diff --git a/appimage/Extera.AppDir/bundle/lib/libapp.so b/appimage/Extera.AppDir/bundle/lib/libapp.so index cda5f16..d398166 100644 Binary files a/appimage/Extera.AppDir/bundle/lib/libapp.so and b/appimage/Extera.AppDir/bundle/lib/libapp.so differ diff --git a/appimage/Extera.AppDir/bundle/lib/libdesktop_drop_plugin.so b/appimage/Extera.AppDir/bundle/lib/libdesktop_drop_plugin.so index 361d4c5..0cfdc62 100644 Binary files a/appimage/Extera.AppDir/bundle/lib/libdesktop_drop_plugin.so and b/appimage/Extera.AppDir/bundle/lib/libdesktop_drop_plugin.so differ diff --git a/appimage/Extera.AppDir/bundle/lib/libdynamic_color_plugin.so b/appimage/Extera.AppDir/bundle/lib/libdynamic_color_plugin.so index d8d05af..0fd22d8 100644 Binary files a/appimage/Extera.AppDir/bundle/lib/libdynamic_color_plugin.so and b/appimage/Extera.AppDir/bundle/lib/libdynamic_color_plugin.so differ diff --git a/appimage/Extera.AppDir/bundle/lib/libemoji_picker_flutter_plugin.so b/appimage/Extera.AppDir/bundle/lib/libemoji_picker_flutter_plugin.so index 9e528a7..bebd365 100644 Binary files a/appimage/Extera.AppDir/bundle/lib/libemoji_picker_flutter_plugin.so and b/appimage/Extera.AppDir/bundle/lib/libemoji_picker_flutter_plugin.so differ diff --git a/appimage/Extera.AppDir/bundle/lib/libfile_selector_linux_plugin.so b/appimage/Extera.AppDir/bundle/lib/libfile_selector_linux_plugin.so index 852f7a4..5e78878 100644 Binary files a/appimage/Extera.AppDir/bundle/lib/libfile_selector_linux_plugin.so and b/appimage/Extera.AppDir/bundle/lib/libfile_selector_linux_plugin.so differ diff --git a/appimage/Extera.AppDir/bundle/lib/libflutter_linux_gtk.so b/appimage/Extera.AppDir/bundle/lib/libflutter_linux_gtk.so index 912e1c9..00bb1a8 100644 Binary files a/appimage/Extera.AppDir/bundle/lib/libflutter_linux_gtk.so and b/appimage/Extera.AppDir/bundle/lib/libflutter_linux_gtk.so differ diff --git a/appimage/Extera.AppDir/bundle/lib/libflutter_secure_storage_linux_plugin.so b/appimage/Extera.AppDir/bundle/lib/libflutter_secure_storage_linux_plugin.so index 43a82a1..4759d19 100644 Binary files a/appimage/Extera.AppDir/bundle/lib/libflutter_secure_storage_linux_plugin.so and b/appimage/Extera.AppDir/bundle/lib/libflutter_secure_storage_linux_plugin.so differ diff --git a/appimage/Extera.AppDir/bundle/lib/libflutter_webrtc_plugin.so b/appimage/Extera.AppDir/bundle/lib/libflutter_webrtc_plugin.so index 73de264..0135e10 100644 Binary files a/appimage/Extera.AppDir/bundle/lib/libflutter_webrtc_plugin.so and b/appimage/Extera.AppDir/bundle/lib/libflutter_webrtc_plugin.so differ diff --git a/appimage/Extera.AppDir/bundle/lib/libgtk_plugin.so b/appimage/Extera.AppDir/bundle/lib/libgtk_plugin.so index da7928f..da9a983 100644 Binary files a/appimage/Extera.AppDir/bundle/lib/libgtk_plugin.so and b/appimage/Extera.AppDir/bundle/lib/libgtk_plugin.so differ diff --git a/appimage/Extera.AppDir/bundle/lib/libhandy_flutter.so b/appimage/Extera.AppDir/bundle/lib/libhandy_flutter.so index 3007d5f..e783d91 100644 Binary files a/appimage/Extera.AppDir/bundle/lib/libhandy_flutter.so and b/appimage/Extera.AppDir/bundle/lib/libhandy_flutter.so differ diff --git a/appimage/Extera.AppDir/bundle/lib/libhandy_window_plugin.so b/appimage/Extera.AppDir/bundle/lib/libhandy_window_plugin.so index 3831f43..d20758a 100644 Binary files a/appimage/Extera.AppDir/bundle/lib/libhandy_window_plugin.so and b/appimage/Extera.AppDir/bundle/lib/libhandy_window_plugin.so differ diff --git a/appimage/Extera.AppDir/bundle/lib/libpasteboard_plugin.so b/appimage/Extera.AppDir/bundle/lib/libpasteboard_plugin.so index 55b7b3f..7f9781a 100644 Binary files a/appimage/Extera.AppDir/bundle/lib/libpasteboard_plugin.so and b/appimage/Extera.AppDir/bundle/lib/libpasteboard_plugin.so differ diff --git a/appimage/Extera.AppDir/bundle/lib/librecord_linux_plugin.so b/appimage/Extera.AppDir/bundle/lib/librecord_linux_plugin.so index e0b7a31..c1e1ee2 100644 Binary files a/appimage/Extera.AppDir/bundle/lib/librecord_linux_plugin.so and b/appimage/Extera.AppDir/bundle/lib/librecord_linux_plugin.so differ diff --git a/appimage/Extera.AppDir/bundle/lib/libsqlcipher_flutter_libs_plugin.so b/appimage/Extera.AppDir/bundle/lib/libsqlcipher_flutter_libs_plugin.so index b3a71ed..84df94e 100644 Binary files a/appimage/Extera.AppDir/bundle/lib/libsqlcipher_flutter_libs_plugin.so and b/appimage/Extera.AppDir/bundle/lib/libsqlcipher_flutter_libs_plugin.so differ diff --git a/appimage/Extera.AppDir/bundle/lib/liburl_launcher_linux_plugin.so b/appimage/Extera.AppDir/bundle/lib/liburl_launcher_linux_plugin.so index 91280f2..7137a19 100644 Binary files a/appimage/Extera.AppDir/bundle/lib/liburl_launcher_linux_plugin.so and b/appimage/Extera.AppDir/bundle/lib/liburl_launcher_linux_plugin.so differ diff --git a/appimage/Extera.AppDir/bundle/lib/libvodozemac_bindings_dart.so b/appimage/Extera.AppDir/bundle/lib/libvodozemac_bindings_dart.so index 7ba00d6..2c547ec 100644 Binary files a/appimage/Extera.AppDir/bundle/lib/libvodozemac_bindings_dart.so and b/appimage/Extera.AppDir/bundle/lib/libvodozemac_bindings_dart.so differ diff --git a/appimage/Extera.AppDir/bundle/lib/libwindow_to_front_plugin.so b/appimage/Extera.AppDir/bundle/lib/libwindow_to_front_plugin.so index dcb6f34..f535034 100644 Binary files a/appimage/Extera.AppDir/bundle/lib/libwindow_to_front_plugin.so and b/appimage/Extera.AppDir/bundle/lib/libwindow_to_front_plugin.so differ diff --git a/lib/generated/l10n/l10n.dart b/lib/generated/l10n/l10n.dart index d2d6978..0e28925 100644 --- a/lib/generated/l10n/l10n.dart +++ b/lib/generated/l10n/l10n.dart @@ -223,6 +223,12 @@ abstract class L10n { /// **'Resume'** String get resume; + /// No description provided for @endPoll. + /// + /// In en, this message translates to: + /// **'End poll'** + String get endPoll; + /// No description provided for @anonymousPoll. /// /// In en, this message translates to: diff --git a/lib/generated/l10n/l10n_ar.dart b/lib/generated/l10n/l10n_ar.dart index a260522..6080152 100644 --- a/lib/generated/l10n/l10n_ar.dart +++ b/lib/generated/l10n/l10n_ar.dart @@ -24,6 +24,9 @@ class L10nAr extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_be.dart b/lib/generated/l10n/l10n_be.dart index 1989195..a58e901 100644 --- a/lib/generated/l10n/l10n_be.dart +++ b/lib/generated/l10n/l10n_be.dart @@ -24,6 +24,9 @@ class L10nBe extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_bn.dart b/lib/generated/l10n/l10n_bn.dart index ccf7ee8..28883f5 100644 --- a/lib/generated/l10n/l10n_bn.dart +++ b/lib/generated/l10n/l10n_bn.dart @@ -24,6 +24,9 @@ class L10nBn extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_bo.dart b/lib/generated/l10n/l10n_bo.dart index 8674eba..df8ca51 100644 --- a/lib/generated/l10n/l10n_bo.dart +++ b/lib/generated/l10n/l10n_bo.dart @@ -24,6 +24,9 @@ class L10nBo extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_ca.dart b/lib/generated/l10n/l10n_ca.dart index 739e2a2..7a202db 100644 --- a/lib/generated/l10n/l10n_ca.dart +++ b/lib/generated/l10n/l10n_ca.dart @@ -24,6 +24,9 @@ class L10nCa extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_cs.dart b/lib/generated/l10n/l10n_cs.dart index d3c52c7..3fc13e6 100644 --- a/lib/generated/l10n/l10n_cs.dart +++ b/lib/generated/l10n/l10n_cs.dart @@ -24,6 +24,9 @@ class L10nCs extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_de.dart b/lib/generated/l10n/l10n_de.dart index 35350fb..0dfe099 100644 --- a/lib/generated/l10n/l10n_de.dart +++ b/lib/generated/l10n/l10n_de.dart @@ -24,6 +24,9 @@ class L10nDe extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_el.dart b/lib/generated/l10n/l10n_el.dart index 53b4c07..e62f767 100644 --- a/lib/generated/l10n/l10n_el.dart +++ b/lib/generated/l10n/l10n_el.dart @@ -24,6 +24,9 @@ class L10nEl extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_en.dart b/lib/generated/l10n/l10n_en.dart index b9b592d..f6b2d1f 100644 --- a/lib/generated/l10n/l10n_en.dart +++ b/lib/generated/l10n/l10n_en.dart @@ -24,6 +24,9 @@ class L10nEn extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_eo.dart b/lib/generated/l10n/l10n_eo.dart index fa30748..f9194f8 100644 --- a/lib/generated/l10n/l10n_eo.dart +++ b/lib/generated/l10n/l10n_eo.dart @@ -24,6 +24,9 @@ class L10nEo extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_es.dart b/lib/generated/l10n/l10n_es.dart index 2870ed1..330336c 100644 --- a/lib/generated/l10n/l10n_es.dart +++ b/lib/generated/l10n/l10n_es.dart @@ -24,6 +24,9 @@ class L10nEs extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_et.dart b/lib/generated/l10n/l10n_et.dart index a98a50b..1f69070 100644 --- a/lib/generated/l10n/l10n_et.dart +++ b/lib/generated/l10n/l10n_et.dart @@ -24,6 +24,9 @@ class L10nEt extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_eu.dart b/lib/generated/l10n/l10n_eu.dart index 0f853ce..52e8d1d 100644 --- a/lib/generated/l10n/l10n_eu.dart +++ b/lib/generated/l10n/l10n_eu.dart @@ -24,6 +24,9 @@ class L10nEu extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_fa.dart b/lib/generated/l10n/l10n_fa.dart index 045c48b..afb64a9 100644 --- a/lib/generated/l10n/l10n_fa.dart +++ b/lib/generated/l10n/l10n_fa.dart @@ -24,6 +24,9 @@ class L10nFa extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_fi.dart b/lib/generated/l10n/l10n_fi.dart index c7b1f8c..c71cbe5 100644 --- a/lib/generated/l10n/l10n_fi.dart +++ b/lib/generated/l10n/l10n_fi.dart @@ -24,6 +24,9 @@ class L10nFi extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_fil.dart b/lib/generated/l10n/l10n_fil.dart index b656f3f..1429a9c 100644 --- a/lib/generated/l10n/l10n_fil.dart +++ b/lib/generated/l10n/l10n_fil.dart @@ -24,6 +24,9 @@ class L10nFil extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_fr.dart b/lib/generated/l10n/l10n_fr.dart index dbf78eb..5602fbf 100644 --- a/lib/generated/l10n/l10n_fr.dart +++ b/lib/generated/l10n/l10n_fr.dart @@ -24,6 +24,9 @@ class L10nFr extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_ga.dart b/lib/generated/l10n/l10n_ga.dart index b0af7e2..131fcd2 100644 --- a/lib/generated/l10n/l10n_ga.dart +++ b/lib/generated/l10n/l10n_ga.dart @@ -24,6 +24,9 @@ class L10nGa extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_gl.dart b/lib/generated/l10n/l10n_gl.dart index 0b2348d..01ae489 100644 --- a/lib/generated/l10n/l10n_gl.dart +++ b/lib/generated/l10n/l10n_gl.dart @@ -24,6 +24,9 @@ class L10nGl extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_he.dart b/lib/generated/l10n/l10n_he.dart index bc07521..7db68b8 100644 --- a/lib/generated/l10n/l10n_he.dart +++ b/lib/generated/l10n/l10n_he.dart @@ -24,6 +24,9 @@ class L10nHe extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_hi.dart b/lib/generated/l10n/l10n_hi.dart index 32aee05..bf68016 100644 --- a/lib/generated/l10n/l10n_hi.dart +++ b/lib/generated/l10n/l10n_hi.dart @@ -24,6 +24,9 @@ class L10nHi extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_hr.dart b/lib/generated/l10n/l10n_hr.dart index f34a661..1e8145d 100644 --- a/lib/generated/l10n/l10n_hr.dart +++ b/lib/generated/l10n/l10n_hr.dart @@ -24,6 +24,9 @@ class L10nHr extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_hu.dart b/lib/generated/l10n/l10n_hu.dart index c25d3f7..410e9e0 100644 --- a/lib/generated/l10n/l10n_hu.dart +++ b/lib/generated/l10n/l10n_hu.dart @@ -24,6 +24,9 @@ class L10nHu extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_ia.dart b/lib/generated/l10n/l10n_ia.dart index 12ed28b..5be8d93 100644 --- a/lib/generated/l10n/l10n_ia.dart +++ b/lib/generated/l10n/l10n_ia.dart @@ -24,6 +24,9 @@ class L10nIa extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_id.dart b/lib/generated/l10n/l10n_id.dart index f945a2d..7075f65 100644 --- a/lib/generated/l10n/l10n_id.dart +++ b/lib/generated/l10n/l10n_id.dart @@ -24,6 +24,9 @@ class L10nId extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_ie.dart b/lib/generated/l10n/l10n_ie.dart index e16c06c..e455c13 100644 --- a/lib/generated/l10n/l10n_ie.dart +++ b/lib/generated/l10n/l10n_ie.dart @@ -24,6 +24,9 @@ class L10nIe extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_it.dart b/lib/generated/l10n/l10n_it.dart index b36a90d..3edf595 100644 --- a/lib/generated/l10n/l10n_it.dart +++ b/lib/generated/l10n/l10n_it.dart @@ -24,6 +24,9 @@ class L10nIt extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_ja.dart b/lib/generated/l10n/l10n_ja.dart index 1419431..5c0b0b9 100644 --- a/lib/generated/l10n/l10n_ja.dart +++ b/lib/generated/l10n/l10n_ja.dart @@ -24,6 +24,9 @@ class L10nJa extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_ka.dart b/lib/generated/l10n/l10n_ka.dart index cd929d1..b14cf51 100644 --- a/lib/generated/l10n/l10n_ka.dart +++ b/lib/generated/l10n/l10n_ka.dart @@ -24,6 +24,9 @@ class L10nKa extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_ko.dart b/lib/generated/l10n/l10n_ko.dart index 65859ff..987d15b 100644 --- a/lib/generated/l10n/l10n_ko.dart +++ b/lib/generated/l10n/l10n_ko.dart @@ -24,6 +24,9 @@ class L10nKo extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_lt.dart b/lib/generated/l10n/l10n_lt.dart index 7b19433..ac83bb7 100644 --- a/lib/generated/l10n/l10n_lt.dart +++ b/lib/generated/l10n/l10n_lt.dart @@ -24,6 +24,9 @@ class L10nLt extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_lv.dart b/lib/generated/l10n/l10n_lv.dart index 085978b..1c846be 100644 --- a/lib/generated/l10n/l10n_lv.dart +++ b/lib/generated/l10n/l10n_lv.dart @@ -24,6 +24,9 @@ class L10nLv extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_nb.dart b/lib/generated/l10n/l10n_nb.dart index c686acf..46d562b 100644 --- a/lib/generated/l10n/l10n_nb.dart +++ b/lib/generated/l10n/l10n_nb.dart @@ -24,6 +24,9 @@ class L10nNb extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_nl.dart b/lib/generated/l10n/l10n_nl.dart index 596e4df..515d851 100644 --- a/lib/generated/l10n/l10n_nl.dart +++ b/lib/generated/l10n/l10n_nl.dart @@ -24,6 +24,9 @@ class L10nNl extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_pl.dart b/lib/generated/l10n/l10n_pl.dart index f8b0cd6..bd7c434 100644 --- a/lib/generated/l10n/l10n_pl.dart +++ b/lib/generated/l10n/l10n_pl.dart @@ -24,6 +24,9 @@ class L10nPl extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_pt.dart b/lib/generated/l10n/l10n_pt.dart index df06a56..dec34b1 100644 --- a/lib/generated/l10n/l10n_pt.dart +++ b/lib/generated/l10n/l10n_pt.dart @@ -24,6 +24,9 @@ class L10nPt extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_ro.dart b/lib/generated/l10n/l10n_ro.dart index 5faa460..bee47b5 100644 --- a/lib/generated/l10n/l10n_ro.dart +++ b/lib/generated/l10n/l10n_ro.dart @@ -24,6 +24,9 @@ class L10nRo extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_ru.dart b/lib/generated/l10n/l10n_ru.dart index 3b8ca56..6185935 100644 --- a/lib/generated/l10n/l10n_ru.dart +++ b/lib/generated/l10n/l10n_ru.dart @@ -24,6 +24,9 @@ class L10nRu extends L10n { @override String get resume => 'Продолжить'; + @override + String get endPoll => 'Завершить опрос'; + @override String get anonymousPoll => 'Анонимный'; diff --git a/lib/generated/l10n/l10n_sk.dart b/lib/generated/l10n/l10n_sk.dart index dddf31b..ccf70fd 100644 --- a/lib/generated/l10n/l10n_sk.dart +++ b/lib/generated/l10n/l10n_sk.dart @@ -24,6 +24,9 @@ class L10nSk extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_sl.dart b/lib/generated/l10n/l10n_sl.dart index 62c43a3..77b0bb6 100644 --- a/lib/generated/l10n/l10n_sl.dart +++ b/lib/generated/l10n/l10n_sl.dart @@ -24,6 +24,9 @@ class L10nSl extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_sr.dart b/lib/generated/l10n/l10n_sr.dart index aef4655..9dcd3ed 100644 --- a/lib/generated/l10n/l10n_sr.dart +++ b/lib/generated/l10n/l10n_sr.dart @@ -24,6 +24,9 @@ class L10nSr extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_sv.dart b/lib/generated/l10n/l10n_sv.dart index 2e2bdc0..114a14c 100644 --- a/lib/generated/l10n/l10n_sv.dart +++ b/lib/generated/l10n/l10n_sv.dart @@ -24,6 +24,9 @@ class L10nSv extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_ta.dart b/lib/generated/l10n/l10n_ta.dart index 9ab887d..23b7602 100644 --- a/lib/generated/l10n/l10n_ta.dart +++ b/lib/generated/l10n/l10n_ta.dart @@ -24,6 +24,9 @@ class L10nTa extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_te.dart b/lib/generated/l10n/l10n_te.dart index 380552f..394e118 100644 --- a/lib/generated/l10n/l10n_te.dart +++ b/lib/generated/l10n/l10n_te.dart @@ -24,6 +24,9 @@ class L10nTe extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_th.dart b/lib/generated/l10n/l10n_th.dart index 252d7d1..60b3fb7 100644 --- a/lib/generated/l10n/l10n_th.dart +++ b/lib/generated/l10n/l10n_th.dart @@ -24,6 +24,9 @@ class L10nTh extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_tr.dart b/lib/generated/l10n/l10n_tr.dart index f85d2fb..b3672ae 100644 --- a/lib/generated/l10n/l10n_tr.dart +++ b/lib/generated/l10n/l10n_tr.dart @@ -24,6 +24,9 @@ class L10nTr extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_uk.dart b/lib/generated/l10n/l10n_uk.dart index edc438f..94f5d9d 100644 --- a/lib/generated/l10n/l10n_uk.dart +++ b/lib/generated/l10n/l10n_uk.dart @@ -24,6 +24,9 @@ class L10nUk extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_vi.dart b/lib/generated/l10n/l10n_vi.dart index 91a6dab..be90270 100644 --- a/lib/generated/l10n/l10n_vi.dart +++ b/lib/generated/l10n/l10n_vi.dart @@ -24,6 +24,9 @@ class L10nVi extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/generated/l10n/l10n_zh.dart b/lib/generated/l10n/l10n_zh.dart index daa16c6..3bdf92f 100644 --- a/lib/generated/l10n/l10n_zh.dart +++ b/lib/generated/l10n/l10n_zh.dart @@ -24,6 +24,9 @@ class L10nZh extends L10n { @override String get resume => 'Resume'; + @override + String get endPoll => 'End poll'; + @override String get anonymousPoll => 'Anonymous'; diff --git a/lib/pages/chat/events/poll_content.dart b/lib/pages/chat/events/poll_content.dart index bfe9ff9..579f63e 100644 --- a/lib/pages/chat/events/poll_content.dart +++ b/lib/pages/chat/events/poll_content.dart @@ -1,5 +1,6 @@ import 'package:extera_next/generated/l10n/l10n.dart'; import 'package:extera_next/utils/poll_events.dart'; +import 'package:extera_next/widgets/matrix.dart'; import 'package:flutter/material.dart'; import 'package:matrix/matrix.dart'; @@ -29,6 +30,7 @@ class PollWidgetState extends State { Map? pollResults; bool hasVoted = false; bool isLoading = false; + bool hasEnded = false; @override void initState() { @@ -38,8 +40,7 @@ class PollWidgetState extends State { void _loadPollData() { final event = widget.event; - final content = - event.content[PollEvents.PollStart] as Map; + final content = event.content[PollEvents.PollStart] as Map; // Check if user has already voted _checkExistingVote(); @@ -51,47 +52,49 @@ class PollWidgetState extends State { } } - void _checkExistingVote() { + void _checkExistingVote() async { final room = widget.event.room; final currentUserId = room.client.userID; - + final rel = await Matrix.of(context) + .client + .getRelatingEventsWithRelTypeAndEventType(room.id, widget.event.eventId, + "m.reference", "org.matrix.msc3381.poll.response"); - // Find existing poll response events from current user - final responses = widget.timeline!.events.where((e) { - return e.type == 'org.matrix.msc3381.poll.response' && - e.senderId == currentUserId && - e.relationshipEventId == widget.event.eventId; - }).toList(); + // Get all poll response events for this poll + final responses = rel.chunk; if (responses.isNotEmpty) { // Use the latest response - final latestResponse = responses.last; - final responseContent = latestResponse - .content['org.matrix.msc3381.poll.response'] as Map; - if (responseContent != null) { - final List answers = responseContent['answers']; - setState(() { - selectedAnswers = answers.cast(); - originalVote = List.from(answers.cast()); // Store original vote - hasVoted = true; - }); + for (final response in responses) { + final responseContent = + response.content['org.matrix.msc3381.poll.response'] + as Map; + if (responseContent != null && response.senderId == currentUserId) { + final List answers = responseContent['answers']; + setState(() { + selectedAnswers = answers.cast(); + originalVote = + List.from(answers.cast()); // Store original vote + hasVoted = true; + }); + } } } } - void _calculateResults() { + void _calculateResults() async { final room = widget.event.room; final pollEventId = widget.event.eventId; final results = {}; - + final rel = await Matrix.of(context) + .client + .getRelatingEventsWithRelTypeAndEventType(room.id, pollEventId, + "m.reference", "org.matrix.msc3381.poll.response"); // Get all poll response events for this poll - final responses = widget.timeline!.events.where((e) { - return e.type == 'org.matrix.msc3381.poll.response' && - e.relationshipEventId == pollEventId; - }).toList(); + final responses = rel.chunk; // Count votes for each answer for (final response in responses) { @@ -121,18 +124,15 @@ class PollWidgetState extends State { final room = widget.event.room; // Send poll response event - await room.sendEvent( - { - 'm.relates_to': { - 'rel_type': 'm.reference', - 'event_id': widget.event.eventId, - }, - 'org.matrix.msc3381.poll.response': { - 'answers': answers, - }, + await room.sendEvent({ + 'm.relates_to': { + 'rel_type': 'm.reference', + 'event_id': widget.event.eventId, }, - type: 'org.matrix.msc3381.poll.response' - ); + 'org.matrix.msc3381.poll.response': { + 'answers': answers, + }, + }, type: 'org.matrix.msc3381.poll.response'); setState(() { selectedAnswers = answers; @@ -206,30 +206,35 @@ class PollWidgetState extends State { final isDisclosed = kind == 'org.matrix.msc3381.disclosed'; final isEnded = _isPollEnded(); - return isDisclosed || isEnded || hasVoted; + return isDisclosed ? (isEnded || hasVoted) : isEnded; } double _getAnswerPercentage(String answerId) { if (pollResults == null || pollResults!.isEmpty) return 0.0; - final totalVotes = pollResults!.values.reduce((a, b) => a + b); if (totalVotes == 0) return 0.0; - return pollResults![answerId]?.toDouble() ?? 0 / totalVotes.toDouble(); + // if (_shouldShowResults()) { + // Logs().w("Get answer percentage for $answerId"); + // Logs().w(pollResults.toString()); + // Logs().w("${pollResults![answerId]?.toDouble() ?? 0} / $totalVotes"); + // } + + return (pollResults![answerId]?.toDouble() ?? 0) / totalVotes.toDouble(); } // Check if the current selection is different from the original vote bool _hasSelectionChanged() { if (selectedAnswers.length != originalVote.length) return true; - + // Sort both lists to compare regardless of order final sortedSelected = List.from(selectedAnswers)..sort(); final sortedOriginal = List.from(originalVote)..sort(); - + for (int i = 0; i < sortedSelected.length; i++) { if (sortedSelected[i] != sortedOriginal[i]) return true; } - + return false; } @@ -364,7 +369,9 @@ class PollWidgetState extends State { height: 16, child: CircularProgressIndicator(strokeWidth: 2), ) - : Text(hasVoted ? L10n.of(context).changeVote : L10n.of(context).vote), + : Text(hasVoted + ? L10n.of(context).changeVote + : L10n.of(context).vote), ), const Spacer(), @@ -386,7 +393,8 @@ class PollWidgetState extends State { Padding( padding: const EdgeInsets.only(top: 8), child: Text( - L10n.of(context).choicesSelected(selectedAnswers.length, maxSelections), + L10n.of(context) + .choicesSelected(selectedAnswers.length, maxSelections), style: TextStyle( fontSize: widget.fontSize - 2, color: widget.color.withOpacity(0.6), @@ -397,4 +405,4 @@ class PollWidgetState extends State { ), ); } -} \ No newline at end of file +}