From 7a8e14c3be75779235684d0678378fac112b3f3b Mon Sep 17 00:00:00 2001 From: otsmr Date: Tue, 11 Feb 2025 11:22:18 +0100 Subject: [PATCH] fix non updating timer --- lib/src/views/chats/chat_list_view.dart | 33 ++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/lib/src/views/chats/chat_list_view.dart b/lib/src/views/chats/chat_list_view.dart index 00a0ef6..3dca278 100644 --- a/lib/src/views/chats/chat_list_view.dart +++ b/lib/src/views/chats/chat_list_view.dart @@ -1,3 +1,5 @@ +import 'dart:async'; + import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import 'package:twonly/src/components/flame.dart'; @@ -155,13 +157,35 @@ class _UserListItem extends State { bool isDownloading = false; List token = []; + Timer? updateTime; + + @override + void initState() { + super.initState(); + lastUpdateTime(); + } + + void lastUpdateTime() { + // Change the color every 200 milliseconds + updateTime = Timer.periodic(Duration(milliseconds: 200), (timer) { + setState(() { + lastMessageInSeconds = + calculateTimeDifference(DateTime.now(), widget.lastMessage!.sendAt) + .inSeconds; + setState(() {}); + }); + }); + } + + @override + void dispose() { + updateTime?.cancel(); + super.dispose(); + } + @override Widget build(BuildContext context) { if (widget.lastMessage != null) { - lastMessageInSeconds = - calculateTimeDifference(DateTime.now(), widget.lastMessage!.sendAt) - .inSeconds; - state = widget.lastMessage!.getSendState(); final content = widget.lastMessage!.messageContent; @@ -175,6 +199,7 @@ class _UserListItem extends State { .contains(token.toString()); } } + int flameCounter = context .watch() .flamesCounter[widget.user.userId.toInt()] ??