From d8dc864616424df71ebf35c03e70248f75412362 Mon Sep 17 00:00:00 2001 From: Kelrap Date: Thu, 13 Jun 2024 14:00:15 -0400 Subject: [PATCH] Present full room error differently --- lib/pangea/controllers/class_controller.dart | 15 ++++++++++----- lib/pangea/pages/analytics/base_analytics.dart | 12 ------------ 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/lib/pangea/controllers/class_controller.dart b/lib/pangea/controllers/class_controller.dart index 0f371c54d..8febee1cb 100644 --- a/lib/pangea/controllers/class_controller.dart +++ b/lib/pangea/controllers/class_controller.dart @@ -13,6 +13,7 @@ import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; import '../../widgets/matrix.dart'; @@ -149,11 +150,15 @@ class ClassController extends BaseController { if (room == null) { return; } - if ((await room.leaveIfFull())) { - ClassCodeUtil.messageSnack( - context, - L10n.of(context)!.roomFull, - ); + final joinResult = await showFutureLoadingDialog( + context: context, + future: () async { + if (await room.leaveIfFull()) { + throw L10n.of(context)!.roomFull; + } + }, + ); + if (joinResult.error != null) { return; } diff --git a/lib/pangea/pages/analytics/base_analytics.dart b/lib/pangea/pages/analytics/base_analytics.dart index a85e76484..17fa4013a 100644 --- a/lib/pangea/pages/analytics/base_analytics.dart +++ b/lib/pangea/pages/analytics/base_analytics.dart @@ -2,11 +2,9 @@ import 'dart:async'; import 'package:fluffychat/pangea/enum/construct_type_enum.dart'; import 'package:fluffychat/pangea/extensions/client_extension/client_extension.dart'; -import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart'; import 'package:fluffychat/pangea/pages/analytics/base_analytics_view.dart'; import 'package:fluffychat/pangea/pages/analytics/student_analytics/student_analytics.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; @@ -121,16 +119,6 @@ class BaseAnalyticsController extends State { ); await Matrix.of(context).client.joinRoom(selectedParam.id); await waitForRoom; - final room = Matrix.of(context).client.getRoomById(selectedParam.id); - if (room != null && (await room.leaveIfFull())) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - duration: const Duration(seconds: 10), - content: Text(L10n.of(context)!.roomFull), - ), - ); - return; - } }, ); }