feat: Display indicator for unread muted rooms

This commit is contained in:
Christian Pauly 2022-02-14 11:22:36 +01:00
parent be34303609
commit 3d7287993f
5 changed files with 16 additions and 13 deletions

View File

@ -224,7 +224,7 @@ class ChatController extends State<Chat> {
}
filteredEvents = timeline!.getFilteredEvents(unfolded: unfolded);
timeline!.requestKeys();
if (room!.notificationCount > 0 &&
if (room!.hasNewMessages &&
timeline != null &&
timeline!.events.isNotEmpty &&
Matrix.of(context).webHasFocus) {

View File

@ -150,7 +150,7 @@ class ChatListItem extends StatelessWidget {
final ownMessage =
room.lastEvent?.senderId == Matrix.of(context).client.userID;
final unread = room.isUnread || room.membership == Membership.invite;
final unreadBubbleSize = unread
final unreadBubbleSize = unread || room.hasNewMessages
? room.notificationCount > 0
? 20.0
: 14.0
@ -291,15 +291,18 @@ class ChatListItem extends StatelessWidget {
curve: Curves.bounceInOut,
padding: const EdgeInsets.symmetric(horizontal: 7),
height: unreadBubbleSize,
width: room.notificationCount == 0 && !unread
? 0
: (unreadBubbleSize - 9) *
room.notificationCount.toString().length +
9,
width:
room.notificationCount == 0 && !unread && !room.hasNewMessages
? 0
: (unreadBubbleSize - 9) *
room.notificationCount.toString().length +
9,
decoration: BoxDecoration(
color: room.highlightCount > 0
? Colors.red
: Theme.of(context).primaryColor,
: room.notificationCount > 0
? Theme.of(context).primaryColor
: Theme.of(context).primaryColor.withAlpha(100),
borderRadius: BorderRadius.circular(AppConfig.borderRadius),
),
child: Center(

View File

@ -132,8 +132,8 @@ class StoriesHeader extends StatelessWidget {
size: 100,
fontSize: 24,
),
unread: room.notificationCount > 0 ||
room.membership == Membership.invite,
unread: room.membership == Membership.invite ||
room.hasNewMessages,
onPressed: () => _goToStoryAction(context, room.id),
onLongPressed: () => _contextualActions(context, room),
),

View File

@ -832,7 +832,7 @@ packages:
name: matrix
url: "https://pub.dartlang.org"
source: hosted
version: "0.8.5"
version: "0.8.6"
matrix_api_lite:
dependency: transitive
description:

View File

@ -51,7 +51,7 @@ dependencies:
intl: any
localstorage: ^4.0.0+1
lottie: ^1.2.1
matrix: ^0.8.5
matrix: ^0.8.6
matrix_link_text: ^1.0.2
open_noti_settings: ^0.4.0
package_info_plus: ^1.2.1
@ -119,4 +119,4 @@ dependency_overrides:
hosted:
name: geolocator_android
url: https://hanntech-gmbh.gitlab.io/free2pass/flutter-geolocator-floss
provider: 5.0.0
provider: 5.0.0