From 4c367854616746fc224f5939a35494237a55f2f5 Mon Sep 17 00:00:00 2001 From: jarnedemeulemeester Date: Sun, 3 Oct 2021 15:37:29 +0200 Subject: [PATCH] Add more shape styles + switch to material dialogs --- .../jellyfin/dialogs/DeleteServerDialogFragment.kt | 4 ++-- .../dialogs/TrackSelectionDialogFragment.kt | 14 ++++++++------ .../jellyfin/dialogs/VideoVersionDialogFragment.kt | 4 ++-- app/src/main/res/values/shape.xml | 8 ++++++++ app/src/main/res/values/themes.xml | 2 ++ 5 files changed, 22 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/dev/jdtech/jellyfin/dialogs/DeleteServerDialogFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/dialogs/DeleteServerDialogFragment.kt index 53bedbd5..73dfb56e 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/dialogs/DeleteServerDialogFragment.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/dialogs/DeleteServerDialogFragment.kt @@ -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)) { _, _ -> diff --git a/app/src/main/java/dev/jdtech/jellyfin/dialogs/TrackSelectionDialogFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/dialogs/TrackSelectionDialogFragment.kt index be2edf9a..b5b871d4 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/dialogs/TrackSelectionDialogFragment.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/dialogs/TrackSelectionDialogFragment.kt @@ -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() diff --git a/app/src/main/java/dev/jdtech/jellyfin/dialogs/VideoVersionDialogFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/dialogs/VideoVersionDialogFragment.kt index 84caf7bf..fc38e1b6 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/dialogs/VideoVersionDialogFragment.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/dialogs/VideoVersionDialogFragment.kt @@ -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) diff --git a/app/src/main/res/values/shape.xml b/app/src/main/res/values/shape.xml index 8481dc05..f9a2ce4f 100644 --- a/app/src/main/res/values/shape.xml +++ b/app/src/main/res/values/shape.xml @@ -4,6 +4,14 @@ 10dp + + + + diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 87171b08..5b6bf1c5 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -30,6 +30,8 @@ @style/ShapeAppearance.Findroid.SmallComponent + @style/ShapeAppearance.Findroid.MediumComponent + @style/ShapeAppearance.Findroid.LargeComponent @style/Widget.MaterialComponents.Toolbar.Surface