Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion app/phone/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,11 @@ android {

flavorDimensions += "variant"
productFlavors {
register("libre") {
register("proprietary") {
dimension = "variant"
isDefault = true
}
register("libre") { dimension = "variant" }
}

splits {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package dev.jdtech.jellyfin.cast

import dev.jdtech.jellyfin.player.core.domain.CastManager
import dev.jdtech.jellyfin.settings.domain.AppPreferences
import javax.inject.Inject
import javax.inject.Singleton

@Singleton
class DefaultCastManager @Inject constructor(private val appPreferences: AppPreferences) :
CastManager {
override val isCastingEnabled: Boolean
get() = appPreferences.getValue(appPreferences.playerCastEnabled)

override fun setCastingEnabled(enabled: Boolean) {
appPreferences.setValue(appPreferences.playerCastEnabled, enabled)
}
}
17 changes: 17 additions & 0 deletions app/phone/src/main/java/dev/jdtech/jellyfin/di/CastModule.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package dev.jdtech.jellyfin.di

import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import dev.jdtech.jellyfin.cast.DefaultCastManager
import dev.jdtech.jellyfin.player.core.domain.CastManager
import javax.inject.Singleton

@Module
@InstallIn(SingletonComponent::class)
abstract class CastModule {
@Binds
@Singleton
abstract fun bindCastManager(impl: DefaultCastManager): CastManager
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package dev.jdtech.jellyfin.player.core.domain

interface CastManager {
val isCastingEnabled: Boolean

fun setCastingEnabled(enabled: Boolean)
}
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,9 @@ class AppPreferences @Inject constructor(val sharedPreferences: SharedPreference
// Player - PiP
val playerPipGesture = Preference("pref_player_picture_in_picture_gesture", false)

// Player - cast
val playerCastEnabled = Preference("pref_player_cast_enabled", true)

// Downloads
val downloadOverMobileData = Preference("pref_downloads_mobile_data", false)
val downloadWhenRoaming = Preference("pref_downloads_roaming", false)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,23 @@ class SettingsViewModel @Inject constructor(private val appPreferences: AppPrefe
)
)
),
PreferenceGroup(
nameStringResource = R.string.casting,
preferences =
listOf(
PreferenceSwitch(
nameStringResource =
R.string.pref_player_cast_enabled,
descriptionStringRes =
R.string
.pref_player_cast_enabled_summary,
iconDrawableId = R.drawable.ic_play,
supportedDeviceTypes = listOf(DeviceType.PHONE),
backendPreference =
appPreferences.playerCastEnabled,
)
),
),
PreferenceGroup(
nameStringResource = R.string.mpv_player,
preferences =
Expand Down
5 changes: 4 additions & 1 deletion settings/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@
<string name="picture_in_picture">Picture-in-picture</string>
<string name="picture_in_picture_gesture">Picture-in-picture home gesture</string>
<string name="picture_in_picture_gesture_summary">Use home button or gesture to enter picture-in-picture while the video is playing</string>
<string name="casting">Casting</string>
<string name="pref_player_cast_enabled">Enable casting</string>
<string name="pref_player_cast_enabled_summary">Show cast controls and allow playback on supported devices</string>
<string name="offline_mode">Offline Mode</string>
<string name="offline_mode_summary">Watch movies and series without a connection to the server</string>
<string name="theme">Theme</string>
Expand Down Expand Up @@ -100,4 +103,4 @@
<string name="media_segments_type_outro">Outro</string>
<string name="media_segments_type_intro">Intro</string>
<string name="none">None</string>
</resources>
</resources>
Loading