Fix: Status header design

This commit is contained in:
Christian Pauly 2020-08-22 11:02:08 +02:00
parent b5d849bf6f
commit 8763bbf15d
2 changed files with 140 additions and 122 deletions

View File

@ -480,6 +480,7 @@ class _ChatState extends State<_Chat> {
),
Column(
children: <Widget>[
ConnectionStatusHeader(),
Expanded(
child: FutureBuilder<bool>(
future: getTimeline(),
@ -601,7 +602,6 @@ class _ChatState extends State<_Chat> {
},
),
),
ConnectionStatusHeader(),
AnimatedContainer(
duration: Duration(milliseconds: 300),
height: editEvent != null || replyEvent != null ? 56 : 0,

View File

@ -336,7 +336,11 @@ class _ChatListState extends State<ChatList> {
context, NewPrivateChatView()),
(r) => r.isFirst),
),
body: StreamBuilder(
body: Column(
children: [
ConnectionStatusHeader(),
Expanded(
child: StreamBuilder(
stream: Matrix.of(context)
.client
.onSync
@ -352,8 +356,10 @@ class _ChatListState extends State<ChatList> {
rooms.removeWhere((Room room) =>
room.lastEvent == null ||
(searchMode &&
!room.displayname.toLowerCase().contains(
searchController.text.toLowerCase() ??
!room.displayname
.toLowerCase()
.contains(searchController.text
.toLowerCase() ??
'')));
if (rooms.isEmpty &&
(!searchMode ||
@ -378,15 +384,17 @@ class _ChatListState extends State<ChatList> {
);
}
final publicRoomsCount =
(publicRoomsResponse?.chunk?.length ?? 0);
(publicRoomsResponse?.chunk?.length ??
0);
final totalCount =
rooms.length + publicRoomsCount;
final directChats =
rooms.where((r) => r.isDirectChat).toList();
final directChats = rooms
.where((r) => r.isDirectChat)
.toList();
final presences =
Matrix.of(context).client.presences;
directChats.sort((a, b) =>
presences[b.directChatMatrixID]
directChats.sort((a, b) => presences[
b.directChatMatrixID]
?.presence
?.statusMsg !=
null
@ -400,10 +408,12 @@ class _ChatListState extends State<ChatList> {
i == totalCount - publicRoomsCount
? ListTile(
title: Text(
L10n.of(context).publicRooms +
L10n.of(context)
.publicRooms +
':',
style: TextStyle(
fontWeight: FontWeight.bold,
fontWeight:
FontWeight.bold,
color: Theme.of(context)
.primaryColor,
),
@ -411,12 +421,12 @@ class _ChatListState extends State<ChatList> {
)
: Container(),
itemCount: totalCount + 1,
itemBuilder: (BuildContext context, int i) {
itemBuilder:
(BuildContext context, int i) {
if (i == 0) {
return Column(
mainAxisSize: MainAxisSize.min,
children: [
ConnectionStatusHeader(),
(directChats.isEmpty ||
selectMode ==
SelectMode.share)
@ -426,16 +436,19 @@ class _ChatListState extends State<ChatList> {
Size.fromHeight(90),
child: Container(
height: 82,
child: ListView.builder(
child:
ListView.builder(
scrollDirection:
Axis.horizontal,
itemCount:
directChats.length,
directChats
.length,
itemBuilder: (BuildContext
context,
int i) =>
PresenceListItem(
directChats[i]),
directChats[
i]),
),
),
),
@ -446,10 +459,12 @@ class _ChatListState extends State<ChatList> {
return i < rooms.length
? ChatListItem(
rooms[i],
activeChat: widget.activeChat ==
activeChat:
widget.activeChat ==
rooms[i].id,
)
: PublicRoomListItem(publicRoomsResponse
: PublicRoomListItem(
publicRoomsResponse
.chunk[i - rooms.length]);
});
} else {
@ -460,6 +475,9 @@ class _ChatListState extends State<ChatList> {
},
);
}),
),
],
),
);
});
});