diff --git a/lib/view/pages/talk/components/pollOptionsList.dart b/lib/view/pages/talk/components/pollOptionsList.dart index b3d2426..5fdb698 100644 --- a/lib/view/pages/talk/components/pollOptionsList.dart +++ b/lib/view/pages/talk/components/pollOptionsList.dart @@ -1,5 +1,4 @@ -import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_linkify/flutter_linkify.dart'; @@ -16,22 +15,20 @@ class PollOptionsList extends StatefulWidget { class _PollOptionsListState extends State { @override Widget build(BuildContext context) => Column( - mainAxisSize: MainAxisSize.min, + mainAxisSize: MainAxisSize.min, children: [ ...widget.pollData.options.map((option) { var optionId = widget.pollData.options.indexOf(option); var votedSelf = widget.pollData.votedSelf.contains(optionId); - var votes = widget.pollData.votes.runtimeType is Map - ? widget.pollData.votes['option-$optionId'] - : 0; - int numVoters = 1; - if(widget.pollData.numVoters != null && widget.pollData.numVoters != 0) { - numVoters = widget.pollData.numVoters!; - } - var portion = (votes / numVoters); + var portionsVisible = widget.pollData.votes is Map; + var votes = !portionsVisible ? 0 + : (widget.pollData.votes['option-$optionId'] as num?) ?? 0; + var numVoters = widget.pollData.numVoters ?? 0; + double portion = numVoters == 0 ? 0 : (votes / numVoters); + return ListTile( enabled: false, - isThreeLine: true, + isThreeLine: portionsVisible, title: Text( option, style: Theme.of(context).textTheme.bodyLarge, @@ -43,11 +40,11 @@ class _PollOptionsListState extends State { : Theme.of(context).colorScheme.onSurfaceVariant.withValues(alpha: 0.8), ), subtitle: Visibility( - visible: widget.pollData.numVoters != null, + visible: portionsVisible, child: Row( children: [ Expanded( - child: LinearProgressIndicator(value: portion), + child: LinearProgressIndicator(value: portion.clamp(0.0, 1.0)), ), Container( margin: const EdgeInsets.only(left: 10), @@ -60,8 +57,8 @@ class _PollOptionsListState extends State { }), ListTile( title: Linkify( - text: 'Zurzeit kann in dieser App leider nicht an Abstimmungen teilgenommen werden. ' - 'Um abzustimmen verwende die Webversion unter https://cloud.marianum-fulda.de', + text: 'Zurzeit kann in dieser App leider nicht abgestimmt werden. ' + 'Verwende dafür die Webversion unter https://cloud.marianum-fulda.de', style: Theme.of(context).textTheme.bodySmall, ), )