diff --git a/lib/pages/chat/chat_view.dart b/lib/pages/chat/chat_view.dart index 077613559..f2d9f68fe 100644 --- a/lib/pages/chat/chat_view.dart +++ b/lib/pages/chat/chat_view.dart @@ -269,9 +269,6 @@ class ChatView extends StatelessWidget { // ), // ) // : null, - floatingActionButton: ChatFloatingActionButton( - controller: controller, - ), // Pangea# body: // #Pangea @@ -399,10 +396,25 @@ class ChatView extends StatelessWidget { ), ], ) + // #Pangea + // : Column( + // mainAxisSize: MainAxisSize.min, + // children: [ + // const ConnectionStatusHeader(), + // ITBar( + // choreographer: + // controller.choreographer, + // ), + // ReactionsPicker(controller), + // ReplyDisplay(controller), + // ChatInputRow(controller), + // ChatEmojiPicker(controller), + // ], : ChatFooter( controller, key: controller.chatFooterKey, ), + // Pangea# ), ), ], @@ -421,11 +433,19 @@ class ChatView extends StatelessWidget { // ), // ), Positioned( - left: 20, - bottom: - controller.chatFooterKey.currentState?.height ?? 100, + left: 7, + bottom: 50 + + (controller.chatFooterKey.currentState?.height ?? 50), child: StartIGCButton(controller: controller), ), + Positioned( + right: 7, + bottom: 50 + + (controller.chatFooterKey.currentState?.height ?? 50), + child: ChatFloatingActionButton( + controller: controller, + ), + ), // Pangea# ], ), diff --git a/lib/pages/chat/reply_display.dart b/lib/pages/chat/reply_display.dart index 03acd269e..e5b343906 100644 --- a/lib/pages/chat/reply_display.dart +++ b/lib/pages/chat/reply_display.dart @@ -1,9 +1,8 @@ +import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:flutter/material.dart'; - import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; -import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import '../../config/themes.dart'; import 'chat.dart'; import 'events/reply_content.dart'; @@ -65,19 +64,22 @@ class _EditContent extends StatelessWidget { Icons.edit, color: Theme.of(context).colorScheme.primary, ), - Container(width: 15.0), - Text( - event.calcLocalizedBodyFallback( - MatrixLocals(L10n.of(context)!), - withSenderNamePrefix: false, - hideReply: true, - ), - overflow: TextOverflow.ellipsis, - maxLines: 1, - style: TextStyle( - color: Theme.of(context).textTheme.bodyMedium!.color, + Container(width: 8.0), + Flexible( + child: Text( + event.calcLocalizedBodyFallback( + MatrixLocals(L10n.of(context)!), + withSenderNamePrefix: false, + hideReply: true, + ), + overflow: TextOverflow.ellipsis, + maxLines: 1, + style: TextStyle( + color: Theme.of(context).textTheme.bodyMedium!.color, + ), ), ), + Container(width: 10.0), ], ); } diff --git a/lib/pangea/choreographer/widgets/language_permissions_warning_buttons.dart b/lib/pangea/choreographer/widgets/language_permissions_warning_buttons.dart index 0abe90925..fcf3b57be 100644 --- a/lib/pangea/choreographer/widgets/language_permissions_warning_buttons.dart +++ b/lib/pangea/choreographer/widgets/language_permissions_warning_buttons.dart @@ -58,13 +58,10 @@ class LanguagePermissionsButtons extends StatelessWidget { ), ); - return Padding( - padding: const EdgeInsets.only(bottom: 56.0), - child: FloatingActionButton( - mini: true, - child: const Icon(Icons.history_edu_outlined), - onPressed: () => showMessage(context, text), - ), + return FloatingActionButton( + mini: true, + child: const Icon(Icons.history_edu_outlined), + onPressed: () => showMessage(context, text), ); } diff --git a/lib/pangea/widgets/chat/chat_floating_action_button.dart b/lib/pangea/widgets/chat/chat_floating_action_button.dart index 735b51b36..35ea1c3eb 100644 --- a/lib/pangea/widgets/chat/chat_floating_action_button.dart +++ b/lib/pangea/widgets/chat/chat_floating_action_button.dart @@ -67,14 +67,11 @@ class ChatFloatingActionButtonState extends State { return const SizedBox.shrink(); } if (widget.controller.showScrollDownButton) { - return Padding( - padding: const EdgeInsets.only(bottom: 56.0), - child: FloatingActionButton( - onPressed: widget.controller.scrollDown, - heroTag: null, - mini: true, - child: const Icon(Icons.arrow_downward_outlined), - ), + return FloatingActionButton( + onPressed: widget.controller.scrollDown, + heroTag: null, + mini: true, + child: const Icon(Icons.arrow_downward_outlined), ); } if (widget.controller.choreographer.errorService.error != null) { diff --git a/lib/pangea/widgets/chat/chat_footer.dart b/lib/pangea/widgets/chat/chat_footer.dart index 3235916e1..f47ebf193 100644 --- a/lib/pangea/widgets/chat/chat_footer.dart +++ b/lib/pangea/widgets/chat/chat_footer.dart @@ -19,30 +19,41 @@ class ChatFooter extends StatefulWidget { } class ChatFooterState extends State { - final GlobalKey _widgetKey = GlobalKey(); - - double? get height => _widgetKey.currentContext?.size?.height; + double? height; @override void initState() { super.initState(); + WidgetsBinding.instance.addPostFrameCallback((_) { + setState(() { + height = context.size!.height; + }); + }); } @override Widget build(BuildContext context) { - return Column( - key: _widgetKey, - mainAxisSize: MainAxisSize.min, - children: [ - const ConnectionStatusHeader(), - ITBar( - choreographer: widget.controller.choreographer, - ), - ReactionsPicker(widget.controller), - ReplyDisplay(widget.controller), - ChatInputRow(widget.controller), - ChatEmojiPicker(widget.controller), - ], + return NotificationListener( + onNotification: (_) { + if (height != context.size!.height) { + height = context.size!.height; + widget.controller.updateView(); + } + return true; + }, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const ConnectionStatusHeader(), + ITBar( + choreographer: widget.controller.choreographer, + ), + ReactionsPicker(widget.controller), + ReplyDisplay(widget.controller), + ChatInputRow(widget.controller), + ChatEmojiPicker(widget.controller), + ], + ), ); } }