fix: don't delete archived activities on delete space (#4414)
* fix: don't delete archived activities on delete space * use one list of futures in delete space function
This commit is contained in:
parent
d3e1da20df
commit
68bb85e521
1 changed files with 12 additions and 3 deletions
|
|
@ -4,6 +4,7 @@ import 'package:matrix/matrix.dart';
|
|||
|
||||
import 'package:fluffychat/config/themes.dart';
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/activity_sessions/activity_room_extension.dart';
|
||||
import 'package:fluffychat/pangea/chat_settings/utils/delete_room.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/error_indicator.dart';
|
||||
|
|
@ -105,14 +106,22 @@ class DeleteSpaceDialogState extends State<DeleteSpaceDialog> {
|
|||
});
|
||||
|
||||
try {
|
||||
final List<Future<void>> deleteFutures = [];
|
||||
final List<Future<void>> futures = [];
|
||||
for (final room in _roomsToDelete) {
|
||||
final roomInstance = widget.space.client.getRoomById(room.roomId);
|
||||
if (roomInstance != null) {
|
||||
deleteFutures.add(roomInstance.delete());
|
||||
// Niether delete not leave activities the user has archived,
|
||||
// since they're hidden in the main chat UI.
|
||||
if (roomInstance.isActivitySession) {
|
||||
if (!roomInstance.hasArchivedActivity) {
|
||||
futures.add(roomInstance.leave());
|
||||
}
|
||||
} else {
|
||||
futures.add(roomInstance.delete());
|
||||
}
|
||||
}
|
||||
}
|
||||
await Future.wait(deleteFutures);
|
||||
await Future.wait(futures);
|
||||
await widget.space.delete();
|
||||
Navigator.of(context).pop(true);
|
||||
} catch (e, s) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue