chore: prevent UI block on save activity

This commit is contained in:
ggurdin 2026-01-23 13:16:32 -05:00
parent aa29473fbb
commit 28cde38fff
No known key found for this signature in database
GPG key ID: A01CB41737CBB478
2 changed files with 23 additions and 18 deletions

View file

@ -7,8 +7,8 @@ import 'package:fluffychat/l10n/l10n.dart';
import 'package:fluffychat/pages/chat/chat.dart';
import 'package:fluffychat/pangea/activity_sessions/activity_room_extension.dart';
import 'package:fluffychat/pangea/activity_summary/activity_summary_model.dart';
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
import 'package:fluffychat/pangea/common/widgets/error_indicator.dart';
import 'package:fluffychat/widgets/future_loading_dialog.dart';
import 'package:fluffychat/widgets/matrix.dart';
class ActivityFinishedStatusMessage extends StatelessWidget {
@ -19,25 +19,28 @@ class ActivityFinishedStatusMessage extends StatelessWidget {
required this.controller,
});
Future<void> _onArchive(BuildContext context) async {
final resp = await showFutureLoadingDialog(
context: context,
future: () => _archiveToAnalytics(context),
void _onArchive(BuildContext context) {
_archiveToAnalytics();
context.go(
"/rooms/spaces/${controller.room.courseParent!.id}/details?tab=course",
);
if (!resp.isError) {
context.go(
"/rooms/spaces/${controller.room.courseParent!.id}/details?tab=course",
);
}
}
Future<void> _archiveToAnalytics(BuildContext context) async {
await controller.room.archiveActivity();
await Matrix.of(context)
.analyticsDataService
.updateService
.sendActivityAnalytics(controller.room.id);
Future<void> _archiveToAnalytics() async {
try {
await controller.room.archiveActivity();
await MatrixState
.pangeaController.matrixState.analyticsDataService.updateService
.sendActivityAnalytics(controller.room.id);
} catch (e, s) {
ErrorHandler.logError(
e: e,
s: s,
data: {
'roomId': controller.room.id,
},
);
}
}
ActivitySummaryModel? get summary => controller.room.activitySummary;

View file

@ -58,7 +58,9 @@ class UserDialog extends StatelessWidget {
client: Matrix.of(context).client,
builder: (context, presence) {
if (presence == null) return const SizedBox.shrink();
final statusMsg = presence.statusMsg;
// #Pangea
// final statusMsg = presence.statusMsg;
// Pangea#
final lastActiveTimestamp = presence.lastActiveTimestamp;
final presenceText = presence.currentlyActive == true
? L10n.of(context).currentlyActive