From 25057408ed0390c4bd7b343a5c20d1bc8f31bcaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ku=C3=9Fowski?= Date: Thu, 25 Sep 2025 15:25:37 +0200 Subject: [PATCH 1/8] chore: Add ActionsPadding in column mode --- lib/config/themes.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/config/themes.dart b/lib/config/themes.dart index 6b20af645..4541b4a15 100644 --- a/lib/config/themes.dart +++ b/lib/config/themes.dart @@ -94,6 +94,8 @@ abstract class FluffyThemes { isColumnMode ? colorScheme.surfaceContainer.withAlpha(128) : null, surfaceTintColor: isColumnMode ? colorScheme.surface : null, backgroundColor: isColumnMode ? colorScheme.surface : null, + actionsPadding: + isColumnMode ? const EdgeInsets.symmetric(horizontal: 16.0) : null, systemOverlayStyle: SystemUiOverlayStyle( statusBarColor: Colors.transparent, statusBarIconBrightness: brightness.reversed, From 8e5613e05741e1804750207e16b15799f8d92384 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ku=C3=9Fowski?= Date: Thu, 25 Sep 2025 15:27:50 +0200 Subject: [PATCH 2/8] chore: Improve chat details icon color design --- lib/pages/chat_details/chat_details_view.dart | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/pages/chat_details/chat_details_view.dart b/lib/pages/chat_details/chat_details_view.dart index 1bcb4d564..69c44984d 100644 --- a/lib/pages/chat_details/chat_details_view.dart +++ b/lib/pages/chat_details/chat_details_view.dart @@ -262,9 +262,12 @@ class ChatDetailsView extends StatelessWidget { Divider(color: theme.dividerColor), ListTile( leading: CircleAvatar( - backgroundColor: theme.scaffoldBackgroundColor, + backgroundColor: + theme.colorScheme.surfaceContainer, foregroundColor: iconColor, - child: const Icon(Icons.shield_outlined), + child: const Icon( + Icons.admin_panel_settings_outlined, + ), ), title: Text( L10n.of(context).accessAndVisibility, @@ -282,10 +285,11 @@ class ChatDetailsView extends StatelessWidget { L10n.of(context).whoCanPerformWhichAction, ), leading: CircleAvatar( - backgroundColor: theme.scaffoldBackgroundColor, + backgroundColor: + theme.colorScheme.surfaceContainer, foregroundColor: iconColor, child: const Icon( - Icons.edit_attributes_outlined, + Icons.tune_outlined, ), ), trailing: const Icon(Icons.chevron_right_outlined), From 916d66ca7bf8fd245feb4673347a7bc826205bf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ku=C3=9Fowski?= Date: Thu, 25 Sep 2025 15:33:15 +0200 Subject: [PATCH 3/8] chore: Follow up input row design --- lib/pages/chat/chat_input_row.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/pages/chat/chat_input_row.dart b/lib/pages/chat/chat_input_row.dart index cc971e80e..9c086d9dd 100644 --- a/lib/pages/chat/chat_input_row.dart +++ b/lib/pages/chat/chat_input_row.dart @@ -117,7 +117,7 @@ class ChatInputRow extends StatelessWidget { AnimatedContainer( duration: FluffyThemes.animationDuration, curve: FluffyThemes.animationCurve, - width: controller.sendController.text.isNotEmpty ? 0 : height, + width: controller.sendController.text.isNotEmpty ? 0 : 40, height: height, alignment: Alignment.center, decoration: const BoxDecoration(), @@ -265,7 +265,6 @@ class ChatInputRow extends StatelessWidget { Matrix.of(context).hasComplexBundles && Matrix.of(context).currentBundle!.length > 1) Container( - width: height, height: height, alignment: Alignment.center, child: _ChatAccountPicker(controller), From 2c40e15dc789c1b0c20ba4a5c5e94ae46e9c684a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ku=C3=9Fowski?= Date: Thu, 25 Sep 2025 16:46:27 +0200 Subject: [PATCH 4/8] chore: Follow up move encryption button --- lib/pages/chat/chat_input_row.dart | 5 ----- lib/pages/chat/chat_view.dart | 2 ++ 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/pages/chat/chat_input_row.dart b/lib/pages/chat/chat_input_row.dart index 9c086d9dd..62f737f73 100644 --- a/lib/pages/chat/chat_input_row.dart +++ b/lib/pages/chat/chat_input_row.dart @@ -256,11 +256,6 @@ class ChatInputRow extends StatelessWidget { onPressed: controller.emojiPickerAction, ), ), - Container( - height: height, - alignment: Alignment.center, - child: EncryptionButton(controller.room), - ), if (Matrix.of(context).isMultiAccount && Matrix.of(context).hasComplexBundles && Matrix.of(context).currentBundle!.length > 1) diff --git a/lib/pages/chat/chat_view.dart b/lib/pages/chat/chat_view.dart index d62cb4bd6..2fd8e20ac 100644 --- a/lib/pages/chat/chat_view.dart +++ b/lib/pages/chat/chat_view.dart @@ -1,5 +1,6 @@ import 'dart:ui' as ui; +import 'package:fluffychat/pages/chat/encryption_button.dart'; import 'package:flutter/material.dart'; import 'package:badges/badges.dart'; @@ -126,6 +127,7 @@ class ChatView extends StatelessWidget { icon: const Icon(Icons.call_outlined), tooltip: L10n.of(context).placeCall, ), + EncryptionButton(controller.room), ChatSettingsPopupMenu(controller.room, true), ]; } From 87704700cb58305f98a7a7c132f99ecbfbc64164 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ku=C3=9Fowski?= Date: Thu, 25 Sep 2025 17:01:19 +0200 Subject: [PATCH 5/8] chore: Add close icon to snackbar in column mode --- lib/config/themes.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/config/themes.dart b/lib/config/themes.dart index 4541b4a15..8b6fb38cf 100644 --- a/lib/config/themes.dart +++ b/lib/config/themes.dart @@ -118,6 +118,7 @@ abstract class FluffyThemes { ), snackBarTheme: isColumnMode ? const SnackBarThemeData( + showCloseIcon: true, behavior: SnackBarBehavior.floating, width: FluffyThemes.columnWidth * 1.5, ) From 07a26563a0c5872e2d455fd48845ee3ef4027aad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ku=C3=9Fowski?= Date: Thu, 25 Sep 2025 17:01:31 +0200 Subject: [PATCH 6/8] chore: Adjust padding for status msg list --- lib/pages/chat/chat_input_row.dart | 1 - lib/pages/chat/chat_view.dart | 2 +- lib/pages/chat_list/status_msg_list.dart | 9 +++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/pages/chat/chat_input_row.dart b/lib/pages/chat/chat_input_row.dart index 62f737f73..db58beda7 100644 --- a/lib/pages/chat/chat_input_row.dart +++ b/lib/pages/chat/chat_input_row.dart @@ -5,7 +5,6 @@ import 'package:matrix/matrix.dart'; import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/l10n/l10n.dart'; -import 'package:fluffychat/pages/chat/encryption_button.dart'; import 'package:fluffychat/utils/other_party_can_receive.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/avatar.dart'; diff --git a/lib/pages/chat/chat_view.dart b/lib/pages/chat/chat_view.dart index 2fd8e20ac..eb9b0e234 100644 --- a/lib/pages/chat/chat_view.dart +++ b/lib/pages/chat/chat_view.dart @@ -1,6 +1,5 @@ import 'dart:ui' as ui; -import 'package:fluffychat/pages/chat/encryption_button.dart'; import 'package:flutter/material.dart'; import 'package:badges/badges.dart'; @@ -14,6 +13,7 @@ import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pages/chat/chat_app_bar_list_tile.dart'; import 'package:fluffychat/pages/chat/chat_app_bar_title.dart'; import 'package:fluffychat/pages/chat/chat_event_list.dart'; +import 'package:fluffychat/pages/chat/encryption_button.dart'; import 'package:fluffychat/pages/chat/pinned_events.dart'; import 'package:fluffychat/pages/chat/reply_display.dart'; import 'package:fluffychat/utils/account_config.dart'; diff --git a/lib/pages/chat_list/status_msg_list.dart b/lib/pages/chat_list/status_msg_list.dart index 474f899e0..f49da939d 100644 --- a/lib/pages/chat_list/status_msg_list.dart +++ b/lib/pages/chat_list/status_msg_list.dart @@ -76,7 +76,12 @@ class StatusMessageList extends StatelessWidget { return SizedBox( height: StatusMessageList.height, child: ListView.builder( - padding: const EdgeInsets.all(8), + padding: const EdgeInsets.only( + left: 8.0, + right: 8.0, + top: 8.0, + bottom: 6.0, + ), scrollDirection: Axis.horizontal, itemCount: presences.length, itemBuilder: (context, i) => PresenceAvatar( @@ -108,7 +113,7 @@ class PresenceAvatar extends StatelessWidget { @override Widget build(BuildContext context) { - final avatarSize = height - 16 - 16 - 8; + final avatarSize = height - 16 - 16 - 6; final client = Matrix.of(context).client; return FutureBuilder( future: client.getProfileFromUserId(presence.userid), From f5b9c3dd8d22965c8d56bea0935f6b1f7a8549b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ku=C3=9Fowski?= Date: Thu, 25 Sep 2025 17:02:44 +0200 Subject: [PATCH 7/8] chore: Adjust input bar button design --- lib/pages/chat/chat_input_row.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/pages/chat/chat_input_row.dart b/lib/pages/chat/chat_input_row.dart index db58beda7..24364a5a6 100644 --- a/lib/pages/chat/chat_input_row.dart +++ b/lib/pages/chat/chat_input_row.dart @@ -52,12 +52,12 @@ class ChatInputRow extends StatelessWidget { height: height, child: TextButton( style: TextButton.styleFrom( - foregroundColor: Colors.orange, + foregroundColor: theme.colorScheme.error, ), onPressed: controller.deleteErrorEventsAction, child: Row( children: [ - const Icon(Icons.delete), + const Icon(Icons.delete_forever_outlined), Text(L10n.of(context).delete), ], ), From 4482b37feb95673c69906a72e27b2fcbe37b2e38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ku=C3=9Fowski?= Date: Thu, 25 Sep 2025 17:04:06 +0200 Subject: [PATCH 8/8] chore: Follow up input bar design --- lib/pages/chat/chat_input_row.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/pages/chat/chat_input_row.dart b/lib/pages/chat/chat_input_row.dart index 24364a5a6..d9ffbd253 100644 --- a/lib/pages/chat/chat_input_row.dart +++ b/lib/pages/chat/chat_input_row.dart @@ -116,7 +116,7 @@ class ChatInputRow extends StatelessWidget { AnimatedContainer( duration: FluffyThemes.animationDuration, curve: FluffyThemes.animationCurve, - width: controller.sendController.text.isNotEmpty ? 0 : 40, + width: controller.sendController.text.isNotEmpty ? 0 : height, height: height, alignment: Alignment.center, decoration: const BoxDecoration(), @@ -227,6 +227,7 @@ class ChatInputRow extends StatelessWidget { ), Container( height: height, + width: height, alignment: Alignment.center, child: IconButton( tooltip: L10n.of(context).emojis, @@ -260,6 +261,7 @@ class ChatInputRow extends StatelessWidget { Matrix.of(context).currentBundle!.length > 1) Container( height: height, + width: height, alignment: Alignment.center, child: _ChatAccountPicker(controller), ),