Add more shape styles + switch to material dialogs

This commit is contained in:
jarnedemeulemeester 2021-10-03 15:37:29 +02:00
parent da39db03d0
commit 4c36785461
No known key found for this signature in database
GPG key ID: 60884A0C1EBA43E5
5 changed files with 22 additions and 10 deletions

View file

@ -1,9 +1,9 @@
package dev.jdtech.jellyfin.dialogs
import android.app.AlertDialog
import android.app.Dialog
import android.os.Bundle
import androidx.fragment.app.DialogFragment
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dev.jdtech.jellyfin.R
import dev.jdtech.jellyfin.database.Server
import dev.jdtech.jellyfin.viewmodels.ServerSelectViewModel
@ -12,7 +12,7 @@ import java.lang.IllegalStateException
class DeleteServerDialogFragment(private val viewModel: ServerSelectViewModel, val server: Server) : DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return activity?.let {
val builder = AlertDialog.Builder(it)
val builder = MaterialAlertDialogBuilder(it)
builder.setTitle(getString(R.string.remove_server))
.setMessage(getString(R.string.remove_server_dialog_text, server.name))
.setPositiveButton(getString(R.string.remove)) { _, _ ->

View file

@ -1,9 +1,9 @@
package dev.jdtech.jellyfin.dialogs
import android.app.AlertDialog
import android.app.Dialog
import android.os.Bundle
import androidx.fragment.app.DialogFragment
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dev.jdtech.jellyfin.mpv.TrackType
import dev.jdtech.jellyfin.viewmodels.PlayerActivityViewModel
import java.lang.IllegalStateException
@ -24,15 +24,16 @@ class TrackSelectionDialogFragment(
}
}
return activity?.let { activity ->
val builder = AlertDialog.Builder(activity)
val builder = MaterialAlertDialogBuilder(activity)
builder.setTitle("Select audio track")
.setSingleChoiceItems(
trackNames.toTypedArray(),
viewModel.currentAudioTracks.indexOfFirst { it.selected }) { _, which ->
viewModel.currentAudioTracks.indexOfFirst { it.selected }) { dialog, which ->
viewModel.switchToTrack(
TrackType.AUDIO,
viewModel.currentAudioTracks[which]
)
dialog.dismiss()
}
builder.create()
} ?: throw IllegalStateException("Activity cannot be null")
@ -46,15 +47,16 @@ class TrackSelectionDialogFragment(
}
}
return activity?.let { activity ->
val builder = AlertDialog.Builder(activity)
val builder = MaterialAlertDialogBuilder(activity)
builder.setTitle("Select subtitle track")
.setSingleChoiceItems(
trackNames.toTypedArray(),
viewModel.currentSubtitleTracks.indexOfFirst { it.selected }) { _, which ->
viewModel.currentSubtitleTracks.indexOfFirst { it.selected }) { dialog, which ->
viewModel.switchToTrack(
TrackType.SUBTITLE,
viewModel.currentSubtitleTracks[which]
)
dialog.dismiss()
}
builder.create()
} ?: throw IllegalStateException("Activity cannot be null")
@ -62,7 +64,7 @@ class TrackSelectionDialogFragment(
else -> {
trackNames = listOf()
return activity?.let {
val builder = AlertDialog.Builder(it)
val builder = MaterialAlertDialogBuilder(it)
builder.setTitle("Select ? track")
.setMessage("Unknown track type")
builder.create()

View file

@ -1,9 +1,9 @@
package dev.jdtech.jellyfin.dialogs
import android.app.AlertDialog
import android.app.Dialog
import android.os.Bundle
import androidx.fragment.app.DialogFragment
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dev.jdtech.jellyfin.viewmodels.MediaInfoViewModel
import java.lang.IllegalStateException
@ -13,7 +13,7 @@ class VideoVersionDialogFragment(
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val items = viewModel.item.value?.mediaSources?.map { it.name }
return activity?.let {
val builder = AlertDialog.Builder(it)
val builder = MaterialAlertDialogBuilder(it)
builder.setTitle("Select a version")
.setItems(items?.toTypedArray()) { _, which ->
viewModel.preparePlayerItems(which)

View file

@ -4,6 +4,14 @@
<item name="cornerSize">10dp</item>
</style>
<style name="ShapeAppearance.Findroid.MediumComponent" parent="ShapeAppearance.MaterialComponents.MediumComponent">
<item name="cornerSize">10dp</item>
</style>
<style name="ShapeAppearance.Findroid.LargeComponent" parent="ShapeAppearance.MaterialComponents.LargeComponent">
<item name="cornerSize">10dp</item>
</style>
<style name="ShapeAppearanceOverlay.Findroid.Image" parent="">
<item name="cornerSize">10dp</item>
</style>

View file

@ -30,6 +30,8 @@
<!-- Shapes -->
<item name="shapeAppearanceSmallComponent">@style/ShapeAppearance.Findroid.SmallComponent</item>
<item name="shapeAppearanceMediumComponent">@style/ShapeAppearance.Findroid.MediumComponent</item>
<item name="shapeAppearanceLargeComponent">@style/ShapeAppearance.Findroid.LargeComponent</item>
<!-- Toolbar -->
<item name="toolbarStyle">@style/Widget.MaterialComponents.Toolbar.Surface</item>