mirror of
https://github.com/jellyfin/jellyfin-android.git
synced 2026-10-26 16:45:26 +00:00
Inject DeviceProfileBuilder instead of DeviceProfile itself
Consumers of the device profile can create and cache it themselves
This commit is contained in:
1 parent
807fed61cf
commit
480c1e9b2b
3 files changed
+7
-8
No files matched your search
@@ -19,7 +19,6 @@ import okhttp3.OkHttpClient
|
||||
import org.chromium.net.CronetEngine
|
||||
import org.chromium.net.CronetProvider
|
||||
import org.jellyfin.mobile.MainViewModel
|
||||
import org.jellyfin.mobile.bridge.ExternalPlayer
|
||||
import org.jellyfin.mobile.player.audio.car.LibraryBrowser
|
||||
import org.jellyfin.mobile.player.deviceprofile.DeviceProfileBuilder
|
||||
import org.jellyfin.mobile.player.interaction.PlayerEvent
|
||||
@@ -67,8 +66,6 @@ val applicationModule = module {
|
||||
// Media player helpers
|
||||
single { MediaSourceResolver(get()) }
|
||||
single { DeviceProfileBuilder() }
|
||||
single { get<DeviceProfileBuilder>().getDeviceProfile() }
|
||||
single(named(ExternalPlayer.DEVICE_PROFILE_NAME)) { get<DeviceProfileBuilder>().getExternalPlayerProfile() }
|
||||
|
||||
// ExoPlayer factories
|
||||
single<DataSource.Factory> {
|
||||
|
||||
@@ -15,6 +15,7 @@ import kotlinx.coroutines.launch
|
||||
import org.jellyfin.mobile.R
|
||||
import org.jellyfin.mobile.app.AppPreferences
|
||||
import org.jellyfin.mobile.player.PlayerException
|
||||
import org.jellyfin.mobile.player.deviceprofile.DeviceProfileBuilder
|
||||
import org.jellyfin.mobile.player.interaction.PlayOptions
|
||||
import org.jellyfin.mobile.player.source.ExternalSubtitleStream
|
||||
import org.jellyfin.mobile.player.source.JellyfinMediaSource
|
||||
@@ -36,7 +37,6 @@ import org.json.JSONObject
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.get
|
||||
import org.koin.core.component.inject
|
||||
import org.koin.core.qualifier.named
|
||||
import timber.log.Timber
|
||||
|
||||
class ExternalPlayer(
|
||||
@@ -49,7 +49,8 @@ class ExternalPlayer(
|
||||
private val appPreferences: AppPreferences by inject()
|
||||
private val webappFunctionChannel: WebappFunctionChannel by inject()
|
||||
private val mediaSourceResolver: MediaSourceResolver by inject()
|
||||
private val externalPlayerProfile: DeviceProfile by inject(named(DEVICE_PROFILE_NAME))
|
||||
private val deviceProfileBuilder: DeviceProfileBuilder by inject()
|
||||
private val externalPlayerProfile: DeviceProfile = deviceProfileBuilder.getExternalPlayerProfile()
|
||||
private val apiClient: ApiClient = get()
|
||||
private val videosApi: VideosApi = apiClient.videosApi
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.google.android.exoplayer2.source.hls.HlsMediaSource
|
||||
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector
|
||||
import org.jellyfin.mobile.player.PlayerException
|
||||
import org.jellyfin.mobile.player.PlayerViewModel
|
||||
import org.jellyfin.mobile.player.deviceprofile.DeviceProfileBuilder
|
||||
import org.jellyfin.mobile.player.interaction.PlayOptions
|
||||
import org.jellyfin.mobile.player.source.JellyfinMediaSource
|
||||
import org.jellyfin.mobile.player.source.MediaSourceResolver
|
||||
@@ -23,26 +24,26 @@ import org.jellyfin.mobile.utils.selectTrackByTypeAndGroup
|
||||
import org.jellyfin.sdk.api.client.ApiClient
|
||||
import org.jellyfin.sdk.api.client.extensions.videosApi
|
||||
import org.jellyfin.sdk.api.operations.VideosApi
|
||||
import org.jellyfin.sdk.model.api.DeviceProfile
|
||||
import org.jellyfin.sdk.model.api.MediaProtocol
|
||||
import org.jellyfin.sdk.model.api.MediaStream
|
||||
import org.jellyfin.sdk.model.api.PlayMethod
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.get
|
||||
import org.koin.core.component.inject
|
||||
import java.util.*
|
||||
import java.util.UUID
|
||||
|
||||
class QueueManager(
|
||||
private val viewModel: PlayerViewModel,
|
||||
) : KoinComponent {
|
||||
private val apiClient: ApiClient = get()
|
||||
private val mediaSourceResolver: MediaSourceResolver by inject()
|
||||
private val deviceProfile: DeviceProfile by inject()
|
||||
private val deviceProfileBuilder: DeviceProfileBuilder by inject()
|
||||
private val videosApi: VideosApi = apiClient.videosApi
|
||||
val trackSelector = DefaultTrackSelector(viewModel.getApplication<Application>())
|
||||
private val _mediaQueue: MutableLiveData<QueueItem.Loaded> = MutableLiveData()
|
||||
val mediaQueue: LiveData<QueueItem.Loaded> get() = _mediaQueue
|
||||
|
||||
private var deviceProfile = deviceProfileBuilder.getDeviceProfile()
|
||||
private var currentPlayOptions: PlayOptions? = null
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user