@@ -30,11 +30,12 @@ internal class ImapSync(
3030 private val backendStorage : BackendStorage ,
3131 private val imapStore : ImapStore ,
3232) {
33- fun sync (folder : String , syncConfig : SyncConfig , listener : SyncListener ) {
33+ suspend fun sync (folder : String , syncConfig : SyncConfig , listener : SyncListener ) {
3434 synchronizeMailboxSynchronous(folder, syncConfig, listener)
3535 }
3636
37- private fun synchronizeMailboxSynchronous (folder : String , syncConfig : SyncConfig , listener : SyncListener ) {
37+ @Suppress(" CyclomaticComplexMethod" , " LongMethod" )
38+ private suspend fun synchronizeMailboxSynchronous (folder : String , syncConfig : SyncConfig , listener : SyncListener ) {
3839 Log .i(" Synchronizing folder %s:%s" , accountName, folder)
3940
4041 var remoteFolder: ImapFolder ? = null
@@ -267,7 +268,7 @@ internal class ImapSync(
267268 }
268269 }
269270
270- fun downloadMessage (syncConfig : SyncConfig , folderServerId : String , messageServerId : String ) {
271+ suspend fun downloadMessage (syncConfig : SyncConfig , folderServerId : String , messageServerId : String ) {
271272 val backendFolder = backendStorage.getFolder(folderServerId)
272273 val remoteFolder = imapStore.getFolder(folderServerId)
273274 try {
@@ -297,7 +298,8 @@ internal class ImapSync(
297298 * @param inputMessages
298299 * A list of messages objects that store the UIDs of which messages to download.
299300 */
300- private fun downloadMessages (
301+ @Suppress(" LongMethod" )
302+ private suspend fun downloadMessages (
301303 syncConfig : SyncConfig ,
302304 remoteFolder : ImapFolder ,
303305 backendFolder : BackendFolder ,
@@ -463,7 +465,7 @@ internal class ImapSync(
463465 return false
464466 }
465467
466- private fun fetchUnsyncedMessages (
468+ private suspend fun fetchUnsyncedMessages (
467469 syncConfig : SyncConfig ,
468470 remoteFolder : ImapFolder ,
469471 unsyncedMessages : List <ImapMessage >,
@@ -483,7 +485,7 @@ internal class ImapSync(
483485 messages = unsyncedMessages,
484486 fetchProfile = fetchProfile,
485487 listener = object : FetchListener {
486- override fun onFetchResponse (message : ImapMessage , isFirstResponse : Boolean ) {
488+ override suspend fun onFetchResponse (message : ImapMessage , isFirstResponse : Boolean ) {
487489 try {
488490 if (message.isSet(Flag .DELETED )) {
489491 Log .v(
@@ -519,7 +521,7 @@ internal class ImapSync(
519521 )
520522 }
521523
522- private fun downloadSmallMessages (
524+ private suspend fun downloadSmallMessages (
523525 remoteFolder : ImapFolder ,
524526 backendFolder : BackendFolder ,
525527 smallMessages : List <ImapMessage >,
@@ -540,7 +542,7 @@ internal class ImapSync(
540542 messages = smallMessages,
541543 fetchProfile = fetchProfile,
542544 listener = object : FetchListener {
543- override fun onFetchResponse (message : ImapMessage , isFirstResponse : Boolean ) {
545+ override suspend fun onFetchResponse (message : ImapMessage , isFirstResponse : Boolean ) {
544546 try {
545547 // Store the updated message locally
546548 backendFolder.saveMessage(message, MessageDownloadState .FULL )
@@ -578,7 +580,7 @@ internal class ImapSync(
578580 Log .d(" SYNC: Done fetching small messages for folder %s" , folder)
579581 }
580582
581- private fun downloadLargeMessages (
583+ private suspend fun downloadLargeMessages (
582584 remoteFolder : ImapFolder ,
583585 backendFolder : BackendFolder ,
584586 largeMessages : List <ImapMessage >,
@@ -634,7 +636,7 @@ internal class ImapSync(
634636 Log .d(" SYNC: Done fetching large messages for folder %s" , folder)
635637 }
636638
637- private fun refreshLocalMessageFlags (
639+ private suspend fun refreshLocalMessageFlags (
638640 syncConfig : SyncConfig ,
639641 remoteFolder : ImapFolder ,
640642 backendFolder : BackendFolder ,
@@ -673,7 +675,7 @@ internal class ImapSync(
673675 }
674676 }
675677
676- private fun downloadSaneBody (
678+ private suspend fun downloadSaneBody (
677679 remoteFolder : ImapFolder ,
678680 backendFolder : BackendFolder ,
679681 message : ImapMessage ,
@@ -703,7 +705,7 @@ internal class ImapSync(
703705 backendFolder.saveMessage(message, MessageDownloadState .PARTIAL )
704706 }
705707
706- private fun downloadPartial (
708+ private suspend fun downloadPartial (
707709 remoteFolder : ImapFolder ,
708710 backendFolder : BackendFolder ,
709711 message : ImapMessage ,
0 commit comments