* Add basic leanback support * Add TV home fragment Adds basic media browsing screen for TV. Shows Home screen media. * Fix double emit when loading user views * Fix bug when going back to this screen would duplicate menu items * Add basic media detail fragment * Add ability to navigate to detail fragment * Fix imports and null safe calls * Fix displaying of home item view type media files * Playback refactor * Add basic Tv player controls and split PlayerActivity * Update strings * Add progress bar to partially played items on TV home screen * Track selection dialog PoC * Update track selection WIP * Show track selection of focus change * Fix series display from home * Minor updates * Add back button to media detail * Zero effort add server and login * Fix colors * Fix back button from home going back to init fragment * Add settings button to home screen * Fix crash after goig back from media detail fragment * Show seasons and cast * Merge branch 'develop' into add_basic_tv_support # Conflicts: # app/src/main/java/dev/jdtech/jellyfin/MainActivity.kt # app/src/main/java/dev/jdtech/jellyfin/dialogs/VideoVersionDialogFragment.kt # app/src/main/res/navigation/app_navigation.xml * Fix cast title being shown with empty cast list * Remove useless method * Remove unused parameter * Fix crash due to colorOnPrimary not existing in Leanback styles * Remove unused theme * Fix home to addserver fragment navigation * Reuse home item layouts This creates some duplicate code which will probably be cleaned up later * Ignore more MissingDefaultResource * Add banner Co-authored-by: Jarne Demeulemeester <32322857+jarnedemeulemeester@users.noreply.github.com>
27 lines
No EOL
1,001 B
Kotlin
27 lines
No EOL
1,001 B
Kotlin
package dev.jdtech.jellyfin.dialogs
|
|
|
|
import android.app.Dialog
|
|
import android.os.Bundle
|
|
import androidx.fragment.app.DialogFragment
|
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
|
import java.lang.IllegalStateException
|
|
import dev.jdtech.jellyfin.R
|
|
import dev.jdtech.jellyfin.viewmodels.PlayerViewModel
|
|
import org.jellyfin.sdk.model.api.BaseItemDto
|
|
|
|
class VideoVersionDialogFragment(
|
|
private val item: BaseItemDto,
|
|
private val viewModel: PlayerViewModel
|
|
) : DialogFragment() {
|
|
|
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
|
val items = item.mediaSources?.map { it.name }?.toTypedArray()
|
|
return activity?.let { activity ->
|
|
MaterialAlertDialogBuilder(activity)
|
|
.setTitle(R.string.select_a_version)
|
|
.setItems(items) { _, which ->
|
|
viewModel.loadPlayerItems(item, which)
|
|
}.create()
|
|
} ?: throw IllegalStateException("Activity cannot be null")
|
|
}
|
|
} |