From 7a3d85fd070b9f3c07f6d17af8e6d975fb2e7fe2 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Tue, 22 Nov 2022 09:56:03 +0530 Subject: [PATCH] Add Suggestions: remove existing participants --- lib/ui/sharing/add_partipant_page.dart | 18 ++++++++++++++++-- lib/ui/sharing/share_collection_page.dart | 3 ++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/ui/sharing/add_partipant_page.dart b/lib/ui/sharing/add_partipant_page.dart index 1fd5c7fcb..6734cef99 100644 --- a/lib/ui/sharing/add_partipant_page.dart +++ b/lib/ui/sharing/add_partipant_page.dart @@ -14,7 +14,8 @@ import 'package:photos/ui/sharing/user_avator_widget.dart'; import 'package:photos/utils/toast_util.dart'; class AddParticipantPage extends StatefulWidget { - const AddParticipantPage({super.key}); + final Collection collection; + const AddParticipantPage(this.collection, {super.key}); @override State createState() => _AddParticipantPage(); @@ -35,10 +36,23 @@ class _AddParticipantPage extends State { final enteColorScheme = getEnteColorScheme(context); final enteTextTheme = getEnteTextTheme(context); final int ownerID = Configuration.instance.getUserID()!; + final Set existingUserIDs = {}; + for (final User? u in widget.collection?.sharees ?? []) { + if (u != null && u.id != null) { + existingUserIDs.add(u.id!); + } + } final List emails = []; for (final c in CollectionsService.instance.getActiveCollections()) { if (c.owner?.id == ownerID) { - c.sharees?.forEach((e) => emails.add(e!.email)); + c.sharees?.forEach( + (e) => { + if (existingUserIDs.contains(1)) + { + emails.add(e!.email), + } + }, + ); } else { emails.add(c.owner!.email); } diff --git a/lib/ui/sharing/share_collection_page.dart b/lib/ui/sharing/share_collection_page.dart index 99b175f10..b37c7aa68 100644 --- a/lib/ui/sharing/share_collection_page.dart +++ b/lib/ui/sharing/share_collection_page.dart @@ -91,7 +91,8 @@ class _ShareCollectionPageState extends State { menuItemColor: getEnteColorScheme(context).fillFaint, pressedColor: getEnteColorScheme(context).fillFaint, onTap: () async { - unawaited(routeToPage(context, AddParticipantPage())); + unawaited( + routeToPage(context, AddParticipantPage(widget.collection))); }, ), );