fix percentage showing
This commit is contained in:
parent
7bac9f8a85
commit
314ab88551
|
|
@ -650,7 +650,7 @@ code + .copy-button {
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
function configurationCacheProblems() { return (
|
function configurationCacheProblems() { return (
|
||||||
// begin-report-data
|
// begin-report-data
|
||||||
{"diagnostics":[{"problem":[{"text":"Executing Gradle on JVM versions 16 and lower has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This will fail with an error in Gradle 9.0."}],"contextualLabel":"Executing Gradle on JVM versions 16 and lower has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#minimum_daemon_jvm_version","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"executing-gradle-on-jvm-versions-and-lower","displayName":"Executing Gradle on JVM versions 16 and lower has been deprecated."}],"solutions":[[{"text":"Use JVM 17 or greater to execute Gradle. Projects can continue to use older JVM versions via toolchains."}]]}],"problemsReport":{"totalProblemCount":1,"requestedTasks":"","documentationLink":"https://docs.gradle.org/8.13/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[]}}
|
{"diagnostics":[{"problem":[{"text":"Executing Gradle on JVM versions 16 and lower has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This will fail with an error in Gradle 9.0."}],"contextualLabel":"Executing Gradle on JVM versions 16 and lower has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#minimum_daemon_jvm_version","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"executing-gradle-on-jvm-versions-and-lower","displayName":"Executing Gradle on JVM versions 16 and lower has been deprecated."}],"solutions":[[{"text":"Use JVM 17 or greater to execute Gradle. Projects can continue to use older JVM versions via toolchains."}]]},{"problem":[{"text":"No variants exist that would match the request"}],"severity":"ERROR","contextualLabel":"Dependency requires at least JVM runtime version 11. This build uses a Java 8 JVM.","documentationLink":"https://docs.gradle.org/8.13/userguide/variant_model.html#sec:variant-select-errors","problemId":[{"name":"dependency-variant-resolution","displayName":"Variant resolution"},{"name":"no-compatible-variants","displayName":"No variants exist that would match the request"}]}],"problemsReport":{"totalProblemCount":2,"requestedTasks":"","documentationLink":"https://docs.gradle.org/8.13/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[]}}
|
||||||
// end-report-data
|
// end-report-data
|
||||||
);}
|
);}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -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"}]}]
|
[{"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"}]}]
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -223,6 +223,12 @@ abstract class L10n {
|
||||||
/// **'Resume'**
|
/// **'Resume'**
|
||||||
String get 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.
|
/// No description provided for @anonymousPoll.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nAr extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nBe extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nBn extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nBo extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nCa extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nCs extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nDe extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nEl extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nEn extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nEo extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nEs extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nEt extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nEu extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nFa extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nFi extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nFil extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nFr extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nGa extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nGl extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nHe extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nHi extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nHr extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nHu extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nIa extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nId extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nIe extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nIt extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nJa extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nKa extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nKo extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nLt extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nLv extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nNb extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nNl extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nPl extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nPt extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nRo extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nRu extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Продолжить';
|
String get resume => 'Продолжить';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'Завершить опрос';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Анонимный';
|
String get anonymousPoll => 'Анонимный';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nSk extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nSl extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nSr extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nSv extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nTa extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nTe extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nTh extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nTr extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nUk extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nVi extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class L10nZh extends L10n {
|
||||||
@override
|
@override
|
||||||
String get resume => 'Resume';
|
String get resume => 'Resume';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get endPoll => 'End poll';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get anonymousPoll => 'Anonymous';
|
String get anonymousPoll => 'Anonymous';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import 'package:extera_next/generated/l10n/l10n.dart';
|
import 'package:extera_next/generated/l10n/l10n.dart';
|
||||||
import 'package:extera_next/utils/poll_events.dart';
|
import 'package:extera_next/utils/poll_events.dart';
|
||||||
|
import 'package:extera_next/widgets/matrix.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:matrix/matrix.dart';
|
import 'package:matrix/matrix.dart';
|
||||||
|
|
||||||
|
|
@ -29,6 +30,7 @@ class PollWidgetState extends State<PollWidget> {
|
||||||
Map<String, int>? pollResults;
|
Map<String, int>? pollResults;
|
||||||
bool hasVoted = false;
|
bool hasVoted = false;
|
||||||
bool isLoading = false;
|
bool isLoading = false;
|
||||||
|
bool hasEnded = false;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
|
|
@ -38,8 +40,7 @@ class PollWidgetState extends State<PollWidget> {
|
||||||
|
|
||||||
void _loadPollData() {
|
void _loadPollData() {
|
||||||
final event = widget.event;
|
final event = widget.event;
|
||||||
final content =
|
final content = event.content[PollEvents.PollStart] as Map<String, dynamic>;
|
||||||
event.content[PollEvents.PollStart] as Map<String, dynamic>;
|
|
||||||
|
|
||||||
// Check if user has already voted
|
// Check if user has already voted
|
||||||
_checkExistingVote();
|
_checkExistingVote();
|
||||||
|
|
@ -51,47 +52,49 @@ class PollWidgetState extends State<PollWidget> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _checkExistingVote() {
|
void _checkExistingVote() async {
|
||||||
final room = widget.event.room;
|
final room = widget.event.room;
|
||||||
final currentUserId = room.client.userID;
|
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
|
// Get all poll response events for this poll
|
||||||
final responses = widget.timeline!.events.where((e) {
|
final responses = rel.chunk;
|
||||||
return e.type == 'org.matrix.msc3381.poll.response' &&
|
|
||||||
e.senderId == currentUserId &&
|
|
||||||
e.relationshipEventId == widget.event.eventId;
|
|
||||||
}).toList();
|
|
||||||
|
|
||||||
if (responses.isNotEmpty) {
|
if (responses.isNotEmpty) {
|
||||||
// Use the latest response
|
// Use the latest response
|
||||||
final latestResponse = responses.last;
|
for (final response in responses) {
|
||||||
final responseContent = latestResponse
|
final responseContent =
|
||||||
.content['org.matrix.msc3381.poll.response'] as Map<String, dynamic>;
|
response.content['org.matrix.msc3381.poll.response']
|
||||||
if (responseContent != null) {
|
as Map<String, dynamic>;
|
||||||
final List<dynamic> answers = responseContent['answers'];
|
if (responseContent != null && response.senderId == currentUserId) {
|
||||||
setState(() {
|
final List<dynamic> answers = responseContent['answers'];
|
||||||
selectedAnswers = answers.cast<String>();
|
setState(() {
|
||||||
originalVote = List.from(answers.cast<String>()); // Store original vote
|
selectedAnswers = answers.cast<String>();
|
||||||
hasVoted = true;
|
originalVote =
|
||||||
});
|
List.from(answers.cast<String>()); // Store original vote
|
||||||
|
hasVoted = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _calculateResults() {
|
void _calculateResults() async {
|
||||||
final room = widget.event.room;
|
final room = widget.event.room;
|
||||||
final pollEventId = widget.event.eventId;
|
final pollEventId = widget.event.eventId;
|
||||||
final results = <String, int>{};
|
final results = <String, int>{};
|
||||||
|
|
||||||
|
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
|
// Get all poll response events for this poll
|
||||||
final responses = widget.timeline!.events.where((e) {
|
final responses = rel.chunk;
|
||||||
return e.type == 'org.matrix.msc3381.poll.response' &&
|
|
||||||
e.relationshipEventId == pollEventId;
|
|
||||||
}).toList();
|
|
||||||
|
|
||||||
// Count votes for each answer
|
// Count votes for each answer
|
||||||
for (final response in responses) {
|
for (final response in responses) {
|
||||||
|
|
@ -121,18 +124,15 @@ class PollWidgetState extends State<PollWidget> {
|
||||||
final room = widget.event.room;
|
final room = widget.event.room;
|
||||||
|
|
||||||
// Send poll response event
|
// Send poll response event
|
||||||
await room.sendEvent(
|
await room.sendEvent({
|
||||||
{
|
'm.relates_to': {
|
||||||
'm.relates_to': {
|
'rel_type': 'm.reference',
|
||||||
'rel_type': 'm.reference',
|
'event_id': widget.event.eventId,
|
||||||
'event_id': widget.event.eventId,
|
|
||||||
},
|
|
||||||
'org.matrix.msc3381.poll.response': {
|
|
||||||
'answers': answers,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
type: 'org.matrix.msc3381.poll.response'
|
'org.matrix.msc3381.poll.response': {
|
||||||
);
|
'answers': answers,
|
||||||
|
},
|
||||||
|
}, type: 'org.matrix.msc3381.poll.response');
|
||||||
|
|
||||||
setState(() {
|
setState(() {
|
||||||
selectedAnswers = answers;
|
selectedAnswers = answers;
|
||||||
|
|
@ -206,30 +206,35 @@ class PollWidgetState extends State<PollWidget> {
|
||||||
final isDisclosed = kind == 'org.matrix.msc3381.disclosed';
|
final isDisclosed = kind == 'org.matrix.msc3381.disclosed';
|
||||||
final isEnded = _isPollEnded();
|
final isEnded = _isPollEnded();
|
||||||
|
|
||||||
return isDisclosed || isEnded || hasVoted;
|
return isDisclosed ? (isEnded || hasVoted) : isEnded;
|
||||||
}
|
}
|
||||||
|
|
||||||
double _getAnswerPercentage(String answerId) {
|
double _getAnswerPercentage(String answerId) {
|
||||||
if (pollResults == null || pollResults!.isEmpty) return 0.0;
|
if (pollResults == null || pollResults!.isEmpty) return 0.0;
|
||||||
|
|
||||||
final totalVotes = pollResults!.values.reduce((a, b) => a + b);
|
final totalVotes = pollResults!.values.reduce((a, b) => a + b);
|
||||||
if (totalVotes == 0) return 0.0;
|
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
|
// Check if the current selection is different from the original vote
|
||||||
bool _hasSelectionChanged() {
|
bool _hasSelectionChanged() {
|
||||||
if (selectedAnswers.length != originalVote.length) return true;
|
if (selectedAnswers.length != originalVote.length) return true;
|
||||||
|
|
||||||
// Sort both lists to compare regardless of order
|
// Sort both lists to compare regardless of order
|
||||||
final sortedSelected = List.from(selectedAnswers)..sort();
|
final sortedSelected = List.from(selectedAnswers)..sort();
|
||||||
final sortedOriginal = List.from(originalVote)..sort();
|
final sortedOriginal = List.from(originalVote)..sort();
|
||||||
|
|
||||||
for (int i = 0; i < sortedSelected.length; i++) {
|
for (int i = 0; i < sortedSelected.length; i++) {
|
||||||
if (sortedSelected[i] != sortedOriginal[i]) return true;
|
if (sortedSelected[i] != sortedOriginal[i]) return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -364,7 +369,9 @@ class PollWidgetState extends State<PollWidget> {
|
||||||
height: 16,
|
height: 16,
|
||||||
child: CircularProgressIndicator(strokeWidth: 2),
|
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(),
|
const Spacer(),
|
||||||
|
|
@ -386,7 +393,8 @@ class PollWidgetState extends State<PollWidget> {
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.only(top: 8),
|
padding: const EdgeInsets.only(top: 8),
|
||||||
child: Text(
|
child: Text(
|
||||||
L10n.of(context).choicesSelected(selectedAnswers.length, maxSelections),
|
L10n.of(context)
|
||||||
|
.choicesSelected(selectedAnswers.length, maxSelections),
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: widget.fontSize - 2,
|
fontSize: widget.fontSize - 2,
|
||||||
color: widget.color.withOpacity(0.6),
|
color: widget.color.withOpacity(0.6),
|
||||||
|
|
@ -397,4 +405,4 @@ class PollWidgetState extends State<PollWidget> {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue