From 58c49258aee5af6ce40adeefbd16617bdc5c088d Mon Sep 17 00:00:00 2001 From: TwistedUmbrellaX Date: Fri, 11 Oct 2024 11:30:25 -0400 Subject: [PATCH] Remove the need to override `icon()` --- .../overlay/action/SelectSkipAction.kt | 12 ++++++++-- .../ui/playback/segments/SegmentSkipModes.kt | 24 +++++++++---------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/jellyfin/androidtv/ui/playback/overlay/action/SelectSkipAction.kt b/app/src/main/java/org/jellyfin/androidtv/ui/playback/overlay/action/SelectSkipAction.kt index c94acc99db..bf8dcab9c0 100644 --- a/app/src/main/java/org/jellyfin/androidtv/ui/playback/overlay/action/SelectSkipAction.kt +++ b/app/src/main/java/org/jellyfin/androidtv/ui/playback/overlay/action/SelectSkipAction.kt @@ -4,6 +4,7 @@ import android.content.Context import android.view.Gravity import android.view.View import android.widget.PopupMenu +import org.jellyfin.androidtv.R import org.jellyfin.androidtv.preference.UserPreferences import org.jellyfin.androidtv.ui.playback.PlaybackController import org.jellyfin.androidtv.ui.playback.overlay.CustomPlaybackTransportControlGlue @@ -18,8 +19,15 @@ class SelectSkipAction( private val preferences = userPreferences private val customPlaybackTransportControlGlue1 = customPlaybackTransportControlGlue + private val SegmentMode.icon: Int + get() = when (this) { + SegmentMode.SHOW_SKIP_BUTTON -> R.drawable.ic_select_skip_show_button + SegmentMode.AUTO_SKIP -> R.drawable.ic_select_skip_auto_skip + SegmentMode.HIDE_SKIP_BUTTON -> R.drawable.ic_select_skip_hide_button + } + init { - initializeWithIcon(preferences[UserPreferences.skipMode].icon()) + initializeWithIcon(preferences[UserPreferences.skipMode].icon) } override fun handleClickAction( @@ -44,7 +52,7 @@ class SelectSkipAction( setOnMenuItemClickListener { item -> preferences[UserPreferences.skipMode] = SegmentMode.entries[item.itemId] - initializeWithIcon(preferences[UserPreferences.skipMode].icon()) + initializeWithIcon(preferences[UserPreferences.skipMode].icon) customPlaybackTransportControlGlue1.notifyActionChanged(this@SelectSkipAction) true } diff --git a/app/src/main/java/org/jellyfin/androidtv/ui/playback/segments/SegmentSkipModes.kt b/app/src/main/java/org/jellyfin/androidtv/ui/playback/segments/SegmentSkipModes.kt index 966ec1256d..37c780ec56 100644 --- a/app/src/main/java/org/jellyfin/androidtv/ui/playback/segments/SegmentSkipModes.kt +++ b/app/src/main/java/org/jellyfin/androidtv/ui/playback/segments/SegmentSkipModes.kt @@ -6,16 +6,16 @@ import org.jellyfin.preference.PreferenceEnum enum class SegmentMode( override val nameRes: Int, ) : PreferenceEnum { - - SHOW_SKIP_BUTTON(R.string.lbl_show_skip_button) { - override fun icon(): Int = R.drawable.ic_select_skip_show_button - }, - AUTO_SKIP(R.string.lbl_auto_skip) { - override fun icon(): Int = R.drawable.ic_select_skip_auto_skip - }, - HIDE_SKIP_BUTTON(R.string.lbl_hide_skip_button) { - override fun icon(): Int = R.drawable.ic_select_skip_hide_button - }; - - abstract fun icon(): Int + /** + * Show a skip button + */ + SHOW_SKIP_BUTTON(R.string.lbl_show_skip_button), + /** + * Automatically skip + */ + AUTO_SKIP(R.string.lbl_auto_skip), + /** + * No action is taken + */ + HIDE_SKIP_BUTTON(R.string.lbl_hide_skip_button), }