@@ -1347,32 +1347,67 @@ class MailboxDashBoardController extends ReloadableController
13471347 .where ((email) => email.id != null )
13481348 .map ((e) => MapEntry (e.id! , e.hasRead))
13491349 );
1350- if (searchController.isSearchEmailRunning ||
1351- selectedMailbox.value? .isFavorite == true ) {
1352- final Map <MailboxId ,List <EmailId >> mapListEmailSelectedByMailBoxId = {};
1353- for (var element in listEmails) {
1354- final mailbox = element.findMailboxContain (mapMailboxById);
1355- if (mailbox != null && element.id != null ) {
1356- if (mapListEmailSelectedByMailBoxId.containsKey (mailbox.id)) {
1357- mapListEmailSelectedByMailBoxId[mailbox.id]? .add (element.id! );
1358- } else {
1359- mapListEmailSelectedByMailBoxId.addAll ({mailbox.id: [element.id! ]});
1350+
1351+ if (destinationMailbox.isFavorite) {
1352+ _handleDragSelectedMultipleEmailToFavoriteFolder (listEmails);
1353+ } else {
1354+ if (searchController.isSearchEmailRunning ||
1355+ selectedMailbox.value? .isFavorite == true ) {
1356+ final Map <MailboxId ,List <EmailId >> mapListEmailSelectedByMailBoxId = {};
1357+ for (var element in listEmails) {
1358+ final mailbox = element.findMailboxContain (mapMailboxById);
1359+ if (mailbox != null && element.id != null ) {
1360+ if (mapListEmailSelectedByMailBoxId.containsKey (mailbox.id)) {
1361+ mapListEmailSelectedByMailBoxId[mailbox.id]? .add (element.id! );
1362+ } else {
1363+ mapListEmailSelectedByMailBoxId.addAll ({mailbox.id: [element.id! ]});
1364+ }
13601365 }
13611366 }
1367+ _handleDragSelectedMultipleEmailToMailboxAction (
1368+ mapListEmailSelectedByMailBoxId,
1369+ destinationMailbox,
1370+ emailIdsWithReadStatus,
1371+ );
1372+ } else if (selectedMailbox.value != null ) {
1373+ _handleDragSelectedMultipleEmailToMailboxAction (
1374+ {selectedMailbox.value! .id: listEmails.listEmailIds},
1375+ destinationMailbox,
1376+ emailIdsWithReadStatus,
1377+ );
13621378 }
1363- _handleDragSelectedMultipleEmailToMailboxAction (
1364- mapListEmailSelectedByMailBoxId,
1365- destinationMailbox,
1366- emailIdsWithReadStatus,
1379+ }
1380+ }
1381+
1382+ void _handleDragSelectedMultipleEmailToFavoriteFolder (
1383+ List <PresentationEmail > listPresentationEmail,
1384+ ) async {
1385+ if (accountId.value != null && sessionCurrent != null ) {
1386+ final listEmailIds = listPresentationEmail
1387+ .where ((email) => ! email.hasStarred)
1388+ .toList ()
1389+ .listEmailIds;
1390+
1391+ consumeState (
1392+ _markAsStarMultipleEmailInteractor.execute (
1393+ sessionCurrent! ,
1394+ accountId.value! ,
1395+ listEmailIds,
1396+ MarkStarAction .markStar,
1397+ ),
13671398 );
1368- } else if (selectedMailbox.value != null ) {
1369- _handleDragSelectedMultipleEmailToMailboxAction (
1370- {selectedMailbox.value! .id: listEmails.listEmailIds},
1371- destinationMailbox,
1372- emailIdsWithReadStatus,
1399+ } else {
1400+ consumeState (
1401+ Stream .value (Left (
1402+ MarkAsStarMultipleEmailFailure (
1403+ MarkStarAction .markStar,
1404+ NotFoundSessionException (),
1405+ ),
1406+ )),
13731407 );
13741408 }
13751409
1410+ dispatchAction (CancelSelectionAllEmailAction ());
13761411 }
13771412
13781413 void _handleDragSelectedMultipleEmailToMailboxAction (
0 commit comments