Skip to content

Commit 497f7ce

Browse files
sentinelwebsentinelweb
authored andcommitted
#496 - rewrite local-> local_network ids for launch player
1 parent eec5e3d commit 497f7ce

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

net/src/commonMain/kotlin/uk/co/sentinelweb/cuer/net/di/NetModule.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ object NetModule {
108108
service = get(),
109109
log = get(),
110110
coroutines = get(),
111+
localRepository = get(),
111112
)
112113
}
113114
factory<RemoteFilesInteractor> {

net/src/commonMain/kotlin/uk/co/sentinelweb/cuer/net/remote/RemotePlayerKtorInteractor.kt

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,25 @@
11
package uk.co.sentinelweb.cuer.net.remote
22

33
import kotlinx.coroutines.withContext
4+
import rewriteIdsToSource
45
import uk.co.sentinelweb.cuer.app.orchestrator.OrchestratorContract.Identifier.Locator
6+
import uk.co.sentinelweb.cuer.app.orchestrator.OrchestratorContract.Source.*
57
import uk.co.sentinelweb.cuer.core.providers.CoroutineContextProvider
68
import uk.co.sentinelweb.cuer.core.wrapper.LogWrapper
79
import uk.co.sentinelweb.cuer.domain.PlayerNodeDomain
810
import uk.co.sentinelweb.cuer.domain.PlaylistItemDomain
911
import uk.co.sentinelweb.cuer.net.NetResult
1012
import uk.co.sentinelweb.cuer.net.client.RequestFailureException
13+
import uk.co.sentinelweb.cuer.remote.server.LocalRepository
14+
import uk.co.sentinelweb.cuer.remote.server.locator
1115
import uk.co.sentinelweb.cuer.remote.server.player.PlayerSessionContract.PlayerCommandMessage
1216
import uk.co.sentinelweb.cuer.remote.server.player.PlayerSessionContract.PlayerStatusMessage
1317

1418
internal class RemotePlayerKtorInteractor(
1519
private val service: RemotePlayerService,
1620
private val log: LogWrapper,
17-
private val coroutines: CoroutineContextProvider
21+
private val coroutines: CoroutineContextProvider,
22+
private val localRepository: LocalRepository,
1823
) : RemotePlayerInteractor {
1924

2025
init {
@@ -65,7 +70,15 @@ internal class RemotePlayerKtorInteractor(
6570
screenIndex: Int
6671
): NetResult<Boolean> = withContext(coroutines.IO) {
6772
try {
68-
service.executeLaunchVideo(locator, item, screenIndex)
73+
item
74+
.let {
75+
it
76+
.takeIf { it.id?.source == LOCAL || it.id?.source == MEMORY }
77+
?.rewriteIdsToSource(LOCAL_NETWORK, localRepository.localNode.locator())
78+
?: it
79+
}
80+
.also { service.executeLaunchVideo(locator, it, screenIndex) }
81+
6982
NetResult.Data(true)
7083
} catch (failure: RequestFailureException) {
7184
log.e("player launch failed", failure)

0 commit comments

Comments
 (0)