Low level programming and open source enthusiast
From Calvin Lee to ~emersion/goguma-dev
--- lib/page/buffer.dart | 43 ++++--- lib/widget/composer.dart | 120 ++++++++++++++++--- lib/widget/message_item.dart | 114 ++++++++++-------- lib/widget/message_sheet.dart | 15 ++- linux/flutter/generated_plugin_registrant.cc | 4 + linux/flutter/generated_plugins.cmake | 1 + pubspec.lock | 8 ++ pubspec.yaml | 1 + 8 files changed, 217 insertions(+), 89 deletions(-) diff --git a/lib/page/buffer.dart b/lib/page/buffer.dart index 59839d9..6e63f2f 100644 --- a/lib/page/buffer.dart [message trimmed]
From Calvin Lee to ~emersion/goguma-dev
This commit allows the user to select one of several existing reactions to reply to a message. It does not allow for selecting reactions from an emoji list, or similar. --- lib/client.dart | 158 +++++++++++++---------- lib/client_controller.dart | 12 +- lib/database.dart | 6 + lib/models.dart | 7 +- lib/widget/composer.dart | 37 +++--- lib/widget/message_item.dart | 235 ++++++++++++++++++++++++++--------- 6 files changed, 298 insertions(+), 157 deletions(-) diff --git a/lib/client.dart b/lib/client.dart index fe2ad7c..4db07be 100644 [message trimmed]
From Calvin Lee to ~emersion/goguma-dev
This commit adds a minimal reaction UI to the view. Each reaction is rendered as a chip underneath the message with unread count. --- lib/models.dart | 9 +++++++ lib/widget/message_item.dart | 52 +++++++++++++++++++++++++++++++++++- 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/lib/models.dart b/lib/models.dart index a5fae6b..c13f81a 100644 --- a/lib/models.dart +++ b/lib/models.dart @@ -598,6 +598,15 @@ class MessageModel { final MessageEntry? replyTo; final List<ReactionEntry> reactions; [message trimmed]
From Calvin Lee to ~emersion/goguma-dev
This commit refactors the buffer view so that it uses semantic widgets
for its message items, instead of bundling them into one helper class.
The hierarchy is as follows: Each element in the buffer list is a
`_BufferItem`, which contains decorations (such as unread counts) and a
single `MessageItemContainer`. A `MessageItemContainer` contains at
one `ConcreteMessageItem` which renders a single message, and perhaps a
link preview. There are several posibilities for `ConcreteMessageItem`.
This commit retains as much code sharing as possible, while retaining a
separation of concerns for different kinds of Message views.
This refactor fixes several bugs, including:
* Unread counter and date flashes with the following message
* CTCP messages have different link preview behaviour in compact and
[message trimmed]
From Calvin Lee to ~emersion/goguma-dev
This commit adds support for reactions in the IRC client, and routes
them into the model. This commit does not yet allow for viewing
reactions, but it should store them correctly in the model for doing so.
This commit also fixes a bug where TAGMSGs (and other non-
PRIVMSG/NOTICE) commands were stored in the model. Instead, the model
now only accepts `PrivmsgLike` objects, which contain a PRIVMSG or
NOTICE. This should stop related bugs from happening in the future.
We allow PRIVMSG-based reacts, and assume that they are a fallback for
clients which do not support reactions. Thus we do not show the PRIVMSG,
only the reaction.
Test: sent the following message
[message trimmed]
From Calvin Lee to ~emersion/goguma-dev
This commit adds reactions to the model and database. --- lib/client_controller.dart | 28 +++++--- lib/database.dart | 128 +++++++++++++++++++++++++++++++++++++ lib/models.dart | 9 ++- pubspec.lock | 26 ++++---- 4 files changed, 165 insertions(+), 26 deletions(-) diff --git a/lib/client_controller.dart b/lib/client_controller.dart index bcadf11..025abea 100644 --- a/lib/client_controller.dart +++ b/lib/client_controller.dart @@ -1096,22 +1096,30 @@ Future<Iterable<MessageModel>> buildMessageModelList(DB db, List<MessageEntry> e return []; [message trimmed]
From Calvin Lee to ~emersion/goguma-dev
This patch includes a few improvements over v2. In particular indentation has been fixed in various places, and changes in adjacent commits have been combined in order to reduce the amount of code that has to be reviewed per commit. PRIVMSG-based reactions are now supported as well. One new commit has been added since v2 which allows for selecting an emoji through a keyboard picker.
From Calvin Lee to ~emersion/goguma-dev
This commit allows the user to select one of several existing reactions to reply to a message. It does not allow for selecting reactions from an emoji list, or similar. --- lib/client.dart | 220 ++++++++++++++++++++------------- lib/client_controller.dart | 14 +-- lib/database.dart | 6 + lib/models.dart | 7 +- lib/widget/composer.dart | 37 +++--- lib/widget/message_item.dart | 228 +++++++++++++++++++++++++---------- 6 files changed, 336 insertions(+), 176 deletions(-) diff --git a/lib/client.dart b/lib/client.dart index 212d54e..1b670c2 100644 [message trimmed]
From Calvin Lee to ~emersion/goguma-dev
This commit adds a minimal reaction UI to the view. Each reaction is rendered as a chip underneath the message with unread count. --- lib/models.dart | 9 +++++++ lib/widget/message_item.dart | 52 +++++++++++++++++++++++++++++++++++- 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/lib/models.dart b/lib/models.dart index 473411d..8b14da8 100644 --- a/lib/models.dart +++ b/lib/models.dart @@ -598,6 +598,15 @@ class MessageModel { final MessageEntry? replyTo; final List<ReactionEntry> reactions; [message trimmed]
From Calvin Lee to ~emersion/goguma-dev
This commit refactors the buffer view so that it uses semantic widgets
for its message items, instead of bundling them into one helper class.
The hierarchy is as follows: Each element in the buffer list is a
`_BufferItem`, which contains decorations (such as unread counts) and a
single `MessageItemContainer`. A `MessageItemContainer` contains at
one `ConcreteMessageItem` which renders a single message, and perhaps a
link preview. There are several posibilities for `ConcreteMessageItem`.
This commit retains as much code sharing as possible, while retaining a
separation of concerns for different kinds of Message views.
This refactor fixes several bugs, including:
* Unread counter and date flashes with the following message
* CTCP messages have different link preview behaviour in compact and
[message trimmed]