From 4bf7cb9f4b4b461c4dc0800351f21d1dfb6331b7 Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Thu, 2 Apr 2020 13:14:39 +0200 Subject: [PATCH] Update to version 0.11.0 --- CHANGELOG.md | 4 ++++ lib/views/chat.dart | 28 ++++++++++++++++++++-------- lib/views/chat_details.dart | 1 + lib/views/invitation_selection.dart | 13 +++++++++---- pubspec.lock | 4 ++-- pubspec.yaml | 2 +- 6 files changed, 37 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0070ceb..1cb8172 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# Version 0.11.0 - 2020-04-02 +### Fixes: +- Minor bugfixes + # Version 0.10.1 - 2020-03-29 ### Fixes: - Fix a lazy loading bug diff --git a/lib/views/chat.dart b/lib/views/chat.dart index 4ea506c..eb95c9b 100644 --- a/lib/views/chat.dart +++ b/lib/views/chat.dart @@ -67,7 +67,7 @@ class _ChatState extends State<_Chat> { Timer typingTimeout; bool currentlyTyping = false; - Set selectedEvents = {}; + List selectedEvents = []; Event replyEvent; @@ -261,6 +261,9 @@ class _ChatState extends State<_Chat> { String _getSelectedEventString(BuildContext context) { String copyString = ""; + if (selectedEvents.length == 1) { + return selectedEvents.first.getLocalizedBody(context); + } for (Event event in selectedEvents) { if (copyString.isNotEmpty) copyString += "\n\n"; copyString += event.getLocalizedBody(context, withSenderNamePrefix: true); @@ -488,13 +491,22 @@ class _ChatState extends State<_Chat> { ), ) : Message(timeline.events[i - 1], - onSelect: (Event event) => event.redacted - ? null - : selectedEvents.contains(event) - ? setState(() => - selectedEvents.remove(event)) - : setState(() => - selectedEvents.add(event)), + onSelect: (Event event) { + if (!event.redacted) { + if (selectedEvents.contains(event)) { + setState( + () => selectedEvents.remove(event), + ); + } else { + setState( + () => selectedEvents.add(event), + ); + } + selectedEvents.sort( + (a, b) => a.time.compareTo(b.time), + ); + } + }, longPressSelect: selectedEvents.isEmpty, selected: selectedEvents .contains(timeline.events[i - 1]), diff --git a/lib/views/chat_details.dart b/lib/views/chat_details.dart index a94cba6..dda7ec9 100644 --- a/lib/views/chat_details.dart +++ b/lib/views/chat_details.dart @@ -174,6 +174,7 @@ class _ChatDetailsState extends State { ); } members ??= widget.room.getParticipants(); + members.removeWhere((u) => u.membership == Membership.leave); final int actualMembersCount = widget.room.mInvitedMemberCount + widget.room.mJoinedMemberCount; final bool canRequestMoreMembers = members.length < actualMembersCount; diff --git a/lib/views/invitation_selection.dart b/lib/views/invitation_selection.dart index 1fda12d..d697eba 100644 --- a/lib/views/invitation_selection.dart +++ b/lib/views/invitation_selection.dart @@ -27,10 +27,14 @@ class _InvitationSelectionState extends State { Future> getContacts(BuildContext context) async { final Client client = Matrix.of(context).client; List participants = await widget.room.requestParticipants(); + participants.removeWhere( + (u) => ![Membership.join, Membership.invite].contains(u.membership), + ); List contacts = []; Map userMap = {}; for (int i = 0; i < client.rooms.length; i++) { List roomUsers = client.rooms[i].getParticipants(); + for (int j = 0; j < roomUsers.length; j++) { if (userMap[roomUsers[j].id] != true && participants.indexWhere((u) => u.id == roomUsers[j].id) == -1) { @@ -39,10 +43,11 @@ class _InvitationSelectionState extends State { userMap[roomUsers[j].id] = true; } } - contacts.sort((a, b) => a - .calcDisplayname() - .toLowerCase() - .compareTo(b.calcDisplayname().toLowerCase())); + contacts.sort( + (a, b) => a.calcDisplayname().toLowerCase().compareTo( + b.calcDisplayname().toLowerCase(), + ), + ); return contacts; } diff --git a/pubspec.lock b/pubspec.lock index 7576511..0fbccef 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -124,8 +124,8 @@ packages: dependency: "direct main" description: path: "." - ref: eb66ec79d431c73d5d752cb237b94da56b92f10f - resolved-ref: eb66ec79d431c73d5d752cb237b94da56b92f10f + ref: "63a5d5dba37bdf3d1106fdf6f11760bfd7d2904c" + resolved-ref: "63a5d5dba37bdf3d1106fdf6f11760bfd7d2904c" url: "https://gitlab.com/famedly/famedlysdk.git" source: git version: "0.0.1" diff --git a/pubspec.yaml b/pubspec.yaml index 8f1c858..715a672 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,7 +11,7 @@ description: Chat with your friends. # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 0.10.0+30 +version: 0.11.0+31 environment: sdk: ">=2.6.0 <3.0.0"