@@ -14,8 +14,7 @@ import uk.co.sentinelweb.cuer.core.wrapper.LogWrapper
14
14
import uk.co.sentinelweb.cuer.domain.GUID
15
15
import uk.co.sentinelweb.cuer.domain.PlaylistDomain
16
16
import uk.co.sentinelweb.cuer.domain.TransferDomain
17
- import uk.co.sentinelweb.cuer.domain.TransferDomain.Status.Confirmed
18
- import uk.co.sentinelweb.cuer.domain.TransferDomain.Status.Pending
17
+ import uk.co.sentinelweb.cuer.domain.TransferDomain.Status.*
19
18
import uk.co.sentinelweb.cuer.domain.creator.GuidCreator
20
19
import uk.co.sentinelweb.cuer.net.remote.RemoteFilesInteractor
21
20
import uk.co.sentinelweb.cuer.remote.server.LocalRepository
@@ -133,13 +132,24 @@ class MemoryTransfersService(
133
132
134
133
private fun checkConfirmedTransfers () {
135
134
scope.launch {
135
+ // send remote transfers to parget
136
136
queue
137
137
.filter { it.status == Confirmed }
138
- .also { log.d(" checkConfirmedTransfers: ${it.size} " ) }
138
+ .filter { it.target?.node?.ipport() != localRepository.localNode.ipport() }
139
+ .also { log.d(" checkConfirmedTransfers.remote: ${it.size} " ) }
139
140
.forEach {
140
141
startTransfersUsecase.execute(it)
141
142
?.also { addReplaceTransfer(it) }
142
143
}
144
+
145
+ // set local confirmed to Pending
146
+ queue
147
+ .filter { it.status == Confirmed }
148
+ .filter { it.target?.node?.ipport() == localRepository.localNode.ipport() }
149
+ .also { log.d(" checkConfirmedTransfers.local: ${it.size} " ) }
150
+ .forEach {
151
+ addReplaceTransfer(it.copy(status = Pending ))
152
+ }
143
153
}
144
154
}
145
155
@@ -151,14 +161,15 @@ class MemoryTransfersService(
151
161
.filter { it.target?.node?.ipport() == localRepository.localNode.ipport() }
152
162
.also { log.d(" checkPendingTransfers.local: ${it.size} " ) }
153
163
.forEach {
164
+ addReplaceTransfer(it.copy(status = InProgress ))
154
165
executeTransferUseCase.execute(it)
155
166
}
156
167
}
157
168
}
158
169
159
170
private fun update (state : TransfersContract .Service .State ) {
160
171
val remoteItemsToUpdate = queue
161
- .filter { it.status == Pending || it.status == TransferDomain . Status . InProgress }
172
+ .filter { it.status == Pending || it.status == InProgress }
162
173
.takeIf { it.isNotEmpty() }
163
174
?.also { log.d(" update items: ${it.map { it.id to it.status }} " ) }
164
175
? : return
0 commit comments