diff --git a/app/src/main/java/dev/jdtech/jellyfin/fragments/EpisodeBottomSheetFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/fragments/EpisodeBottomSheetFragment.kt index bdeaf39d..851420a5 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/fragments/EpisodeBottomSheetFragment.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/fragments/EpisodeBottomSheetFragment.kt @@ -84,11 +84,23 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() { when (viewModel.played) { true -> { viewModel.markAsUnplayed(episodeId) - binding.checkButton.setImageResource(R.drawable.ic_check) + val typedValue = TypedValue() + requireActivity().theme.resolveAttribute(R.attr.colorOnSecondaryContainer, typedValue, true) + binding.checkButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + typedValue.resourceId, + requireActivity().theme + ) + ) } false -> { viewModel.markAsPlayed(episodeId) - binding.checkButton.setImageResource(R.drawable.ic_check_filled) + binding.checkButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + R.color.red, + requireActivity().theme + ) + ) } } } @@ -98,10 +110,24 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() { true -> { viewModel.unmarkAsFavorite(episodeId) binding.favoriteButton.setImageResource(R.drawable.ic_heart) + val typedValue = TypedValue() + requireActivity().theme.resolveAttribute(R.attr.colorOnSecondaryContainer, typedValue, true) + binding.favoriteButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + typedValue.resourceId, + requireActivity().theme + ) + ) } false -> { viewModel.markAsFavorite(episodeId) binding.favoriteButton.setImageResource(R.drawable.ic_heart_filled) + binding.favoriteButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + R.color.red, + requireActivity().theme + ) + ) } } } @@ -160,11 +186,26 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() { binding.playButton.alpha = if (!available) 0.5F else 1.0F // Check icon - val checkDrawable = when (played) { - true -> R.drawable.ic_check_filled - false -> R.drawable.ic_check + when (played) { + true -> { + binding.checkButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + R.color.red, + requireActivity().theme + ) + ) + } + false -> { + val typedValue = TypedValue() + requireActivity().theme.resolveAttribute(R.attr.colorOnSecondaryContainer, typedValue, true) + binding.checkButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + typedValue.resourceId, + requireActivity().theme + ) + ) + } } - binding.checkButton.setImageResource(checkDrawable) // Favorite icon val favoriteDrawable = when (favorite) { @@ -172,6 +213,12 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() { false -> R.drawable.ic_heart } binding.favoriteButton.setImageResource(favoriteDrawable) + if (favorite) binding.favoriteButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + R.color.red, + requireActivity().theme + ) + ) when (canDownload) { true -> { diff --git a/app/src/main/java/dev/jdtech/jellyfin/fragments/MediaInfoFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/fragments/MediaInfoFragment.kt index c20cf9d4..766f61f3 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/fragments/MediaInfoFragment.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/fragments/MediaInfoFragment.kt @@ -4,6 +4,7 @@ import android.content.Intent import android.content.res.ColorStateList import android.net.Uri import android.os.Bundle +import android.util.TypedValue import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -147,11 +148,23 @@ class MediaInfoFragment : Fragment() { when (viewModel.played) { true -> { viewModel.markAsUnplayed(args.itemId) - binding.checkButton.setImageResource(R.drawable.ic_check) + val typedValue = TypedValue() + requireActivity().theme.resolveAttribute(R.attr.colorOnSecondaryContainer, typedValue, true) + binding.checkButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + typedValue.resourceId, + requireActivity().theme + ) + ) } false -> { viewModel.markAsPlayed(args.itemId) - binding.checkButton.setImageResource(R.drawable.ic_check_filled) + binding.checkButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + R.color.red, + requireActivity().theme + ) + ) } } } @@ -161,10 +174,24 @@ class MediaInfoFragment : Fragment() { true -> { viewModel.unmarkAsFavorite(args.itemId) binding.favoriteButton.setImageResource(R.drawable.ic_heart) + val typedValue = TypedValue() + requireActivity().theme.resolveAttribute(R.attr.colorOnSecondaryContainer, typedValue, true) + binding.favoriteButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + typedValue.resourceId, + requireActivity().theme + ) + ) } false -> { viewModel.markAsFavorite(args.itemId) binding.favoriteButton.setImageResource(R.drawable.ic_heart_filled) + binding.favoriteButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + R.color.red, + requireActivity().theme + ) + ) } } } @@ -206,11 +233,27 @@ class MediaInfoFragment : Fragment() { binding.playButton.alpha = if (!available) 0.5F else 1.0F // Check icon - val checkDrawable = when (played) { - true -> R.drawable.ic_check_filled - false -> R.drawable.ic_check + when (played) { + true -> { + if (played) binding.checkButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + R.color.red, + requireActivity().theme + ) + ) + } + false -> { + val typedValue = TypedValue() + requireActivity().theme.resolveAttribute(R.attr.colorOnSecondaryContainer, typedValue, true) + binding.checkButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + typedValue.resourceId, + requireActivity().theme + ) + ) + } } - binding.checkButton.setImageResource(checkDrawable) + // Favorite icon val favoriteDrawable = when (favorite) { @@ -218,6 +261,12 @@ class MediaInfoFragment : Fragment() { false -> R.drawable.ic_heart } binding.favoriteButton.setImageResource(favoriteDrawable) + if (favorite) binding.favoriteButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + R.color.red, + requireActivity().theme + ) + ) binding.downloadButton.isEnabled = !downloaded diff --git a/app/src/main/java/dev/jdtech/jellyfin/tv/ui/MediaDetailFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/tv/ui/MediaDetailFragment.kt index f12fee34..c5c79a40 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/tv/ui/MediaDetailFragment.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/tv/ui/MediaDetailFragment.kt @@ -1,8 +1,10 @@ package dev.jdtech.jellyfin.tv.ui import android.content.Intent +import android.content.res.ColorStateList import android.net.Uri import android.os.Bundle +import android.util.TypedValue import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -119,11 +121,23 @@ internal class MediaDetailFragment : Fragment() { when (viewModel.played) { true -> { viewModel.markAsUnplayed(args.itemId) - binding.checkButton.setImageResource(R.drawable.ic_check) + val typedValue = TypedValue() + requireActivity().theme.resolveAttribute(R.attr.colorOnSecondaryContainer, typedValue, true) + binding.checkButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + typedValue.resourceId, + requireActivity().theme + ) + ) } false -> { viewModel.markAsPlayed(args.itemId) - binding.checkButton.setImageResource(R.drawable.ic_check_filled) + binding.checkButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + R.color.red, + requireActivity().theme + ) + ) } } } @@ -133,10 +147,24 @@ internal class MediaDetailFragment : Fragment() { true -> { viewModel.unmarkAsFavorite(args.itemId) binding.favoriteButton.setImageResource(R.drawable.ic_heart) + val typedValue = TypedValue() + requireActivity().theme.resolveAttribute(R.attr.colorOnSecondaryContainer, typedValue, true) + binding.favoriteButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + typedValue.resourceId, + requireActivity().theme + ) + ) } false -> { viewModel.markAsFavorite(args.itemId) binding.favoriteButton.setImageResource(R.drawable.ic_heart_filled) + binding.favoriteButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + R.color.red, + requireActivity().theme + ) + ) } } } @@ -154,11 +182,26 @@ internal class MediaDetailFragment : Fragment() { actorsAdapter.submitList(actors) // Check icon - val checkDrawable = when (played) { - true -> R.drawable.ic_check_filled - false -> R.drawable.ic_check + when (played) { + true -> { + if (played) binding.checkButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + R.color.red, + requireActivity().theme + ) + ) + } + false -> { + val typedValue = TypedValue() + requireActivity().theme.resolveAttribute(R.attr.colorOnSecondaryContainer, typedValue, true) + binding.checkButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + typedValue.resourceId, + requireActivity().theme + ) + ) + } } - binding.checkButton.setImageResource(checkDrawable) // Favorite icon val favoriteDrawable = when (favorite) { @@ -166,6 +209,12 @@ internal class MediaDetailFragment : Fragment() { false -> R.drawable.ic_heart } binding.favoriteButton.setImageResource(favoriteDrawable) + if (favorite) binding.favoriteButton.imageTintList = ColorStateList.valueOf( + resources.getColor( + R.color.red, + requireActivity().theme + ) + ) binding.title.text = item.name binding.subtitle.text = item.seriesName diff --git a/app/src/main/res/drawable/ic_check_filled.xml b/app/src/main/res/drawable/ic_check_filled.xml deleted file mode 100644 index 6c19c50c..00000000 --- a/app/src/main/res/drawable/ic_check_filled.xml +++ /dev/null @@ -1,13 +0,0 @@ - - -