From 7a4d1a386ee2f01487b77577fe13b108a677bbed Mon Sep 17 00:00:00 2001 From: WilsonLe Date: Thu, 17 Oct 2024 21:35:45 +1100 Subject: [PATCH 1/4] fix direct chat constants value to match bot config --- lib/pangea/constants/bot_mode.dart | 2 +- .../pangea_room_extension/room_information_extension.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/pangea/constants/bot_mode.dart b/lib/pangea/constants/bot_mode.dart index fbdd24b6f..ae96ec36d 100644 --- a/lib/pangea/constants/bot_mode.dart +++ b/lib/pangea/constants/bot_mode.dart @@ -1,5 +1,5 @@ class BotMode { - static const direct = "direct"; + static const directChat = "direct_chat"; static const discussion = "discussion"; static const custom = "custom"; static const storyGame = "story_game"; diff --git a/lib/pangea/extensions/pangea_room_extension/room_information_extension.dart b/lib/pangea/extensions/pangea_room_extension/room_information_extension.dart index a88551336..69494ac4f 100644 --- a/lib/pangea/extensions/pangea_room_extension/room_information_extension.dart +++ b/lib/pangea/extensions/pangea_room_extension/room_information_extension.dart @@ -56,7 +56,7 @@ extension RoomInformationRoomExtension on Room { ); } - Future get _isBotDM async => botOptions?.mode == BotMode.direct; + Future get _isBotDM async => botOptions?.mode == BotMode.directChat; bool get _isLocked { if (isDirectChat) return false; From 17613f4a853f536ec831e25f174abce02adedaba Mon Sep 17 00:00:00 2001 From: ggurdin Date: Thu, 17 Oct 2024 12:34:50 -0400 Subject: [PATCH 2/4] added onTap to version number in settings to copy on click --- lib/pages/settings/settings_view.dart | 35 ++++++++++++++++++--------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/lib/pages/settings/settings_view.dart b/lib/pages/settings/settings_view.dart index 286b5d8e9..d63776272 100644 --- a/lib/pages/settings/settings_view.dart +++ b/lib/pages/settings/settings_view.dart @@ -4,6 +4,7 @@ import 'package:fluffychat/utils/fluffy_share.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:go_router/go_router.dart'; @@ -18,14 +19,6 @@ class SettingsView extends StatelessWidget { const SettingsView(this.controller, {super.key}); - // #Pangea - Future getAppVersion(BuildContext context) async { - final packageInfo = await PackageInfo.fromPlatform(); - return L10n.of(context)! - .versionText(packageInfo.version, packageInfo.buildNumber); - } - // Pangea# - @override Widget build(BuildContext context) { final theme = Theme.of(context); @@ -218,14 +211,34 @@ class SettingsView extends StatelessWidget { onTap: () => launchUrlString(AppConfig.termsOfServiceUrl), trailing: const Icon(Icons.open_in_new_outlined), ), - FutureBuilder( - future: getAppVersion(context), + FutureBuilder( + future: PackageInfo.fromPlatform(), builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.done) { return ListTile( leading: const Icon(Icons.info_outline), + trailing: const Icon(Icons.copy_outlined), + onTap: () async { + if (snapshot.data == null) return; + await Clipboard.setData( + ClipboardData( + text: + "${snapshot.data!.version}+${snapshot.data!.buildNumber}", + ), + ); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(L10n.of(context)!.copiedToClipboard), + ), + ); + }, title: Text( - snapshot.data ?? L10n.of(context)!.versionNotFound, + snapshot.data != null + ? L10n.of(context)!.versionText( + snapshot.data!.version, + snapshot.data!.buildNumber, + ) + : L10n.of(context)!.versionNotFound, ), ); } else if (snapshot.hasError) { From 4b346df27f56cc62e354c0c52c767e6d7db35580 Mon Sep 17 00:00:00 2001 From: ggurdin Date: Thu, 17 Oct 2024 12:42:32 -0400 Subject: [PATCH 3/4] updated flutter_secure_storage package, don't set currentActivity to null if no error in submitFeedback --- .../widgets/practice_activity/practice_activity_card.dart | 4 ---- pubspec.yaml | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/pangea/widgets/practice_activity/practice_activity_card.dart b/lib/pangea/widgets/practice_activity/practice_activity_card.dart index 442b1cf64..7e80e2aaa 100644 --- a/lib/pangea/widgets/practice_activity/practice_activity_card.dart +++ b/lib/pangea/widgets/practice_activity/practice_activity_card.dart @@ -231,10 +231,6 @@ class MessagePracticeActivityCardState extends State { return; } - // clear the current activity and record - currentActivity = null; - currentCompletionRecord = null; - _fetchNewActivity( ActivityQualityFeedback( feedbackText: feedback, diff --git a/pubspec.yaml b/pubspec.yaml index 72b2b9b00..39a7e9700 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -49,7 +49,7 @@ dependencies: flutter_olm: 1.3.2 # Keep in sync with scripts/prepare-web.sh ! 1.4.0 does currently not build on Android flutter_openssl_crypto: ^0.3.0 flutter_ringtone_player: ^4.0.0+2 - flutter_secure_storage: ^9.0.0 + flutter_secure_storage: ^9.2.2 flutter_shortcuts: git: https://github.com/krille-chan/flutter_shortcuts.git flutter_typeahead: ^5.2.0 From c7bb3c71a21e797b46efaca68404637aeae12ea7 Mon Sep 17 00:00:00 2001 From: ggurdin Date: Thu, 17 Oct 2024 13:42:53 -0400 Subject: [PATCH 4/4] Make content issue dialog scrollable to prevent overflow --- lib/pangea/widgets/content_issue_button.dart | 33 ++++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/lib/pangea/widgets/content_issue_button.dart b/lib/pangea/widgets/content_issue_button.dart index 7df2565c0..053d05f75 100644 --- a/lib/pangea/widgets/content_issue_button.dart +++ b/lib/pangea/widgets/content_issue_button.dart @@ -36,21 +36,20 @@ class ContentIssueButton extends StatelessWidget { L10n.of(context)!.reportContentIssueTitle, textAlign: TextAlign.center, ), - content: Container( - constraints: const BoxConstraints(maxWidth: 300), - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - const BotFace( - width: 60, - expression: BotExpression.addled, - ), - const SizedBox(height: 10), - Text(L10n.of(context)!.reportContentIssueDescription), - const SizedBox(height: 10), - SizedBox( - width: double.infinity, - child: TextField( + content: SingleChildScrollView( + child: Container( + constraints: const BoxConstraints(maxWidth: 300), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const BotFace( + width: 60, + expression: BotExpression.addled, + ), + const SizedBox(height: 10), + Text(L10n.of(context)!.reportContentIssueDescription), + const SizedBox(height: 10), + TextField( controller: feedbackController, decoration: InputDecoration( labelText: L10n.of(context)!.feedback, @@ -58,8 +57,8 @@ class ContentIssueButton extends StatelessWidget { ), maxLines: 4, ), - ), - ], + ], + ), ), ), actions: [