diff --git a/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/VideoPlayerGlue.java b/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/VideoPlayerGlue.java index 4084d06cd..8d0092e65 100644 --- a/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/VideoPlayerGlue.java +++ b/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/VideoPlayerGlue.java @@ -9,8 +9,10 @@ import androidx.leanback.widget.Action; import androidx.leanback.widget.ArrayObjectAdapter; import androidx.leanback.widget.ObjectAdapter; import androidx.leanback.widget.PlaybackControlsRow; -import androidx.leanback.widget.PlaybackControlsRow.ThumbsAction; import com.liskovsoft.smartyoutubetv2.tv.ui.mod.leanback.playerglue.FixedVideoPlayerGlue; +import com.liskovsoft.smartyoutubetv2.tv.ui.playback.actions.ThumbsAction; +import com.liskovsoft.smartyoutubetv2.tv.ui.playback.actions.ThumbsDownAction; +import com.liskovsoft.smartyoutubetv2.tv.ui.playback.actions.ThumbsUpAction; import com.liskovsoft.smartyoutubetv2.tv.ui.playback.actions.VideoStatsAction; import com.liskovsoft.smartyoutubetv2.tv.ui.playback.actions.ChannelAction; import com.liskovsoft.smartyoutubetv2.tv.ui.playback.actions.ClosedCaptioningAction; @@ -77,8 +79,8 @@ public class VideoPlayerGlue extends FixedVideoPlayerGlue { private final OnActionClickedListener mActionListener; - private final PlaybackControlsRow.ThumbsUpAction mThumbsUpAction; - private final PlaybackControlsRow.ThumbsDownAction mThumbsDownAction; + private final ThumbsUpAction mThumbsUpAction; + private final ThumbsDownAction mThumbsDownAction; private final PlaybackControlsRow.SkipPreviousAction mSkipPreviousAction; private final PlaybackControlsRow.SkipNextAction mSkipNextAction; private final PlaybackControlsRow.FastForwardAction mFastForwardAction; @@ -104,10 +106,10 @@ public class VideoPlayerGlue extends FixedVideoPlayerGlue { mFastForwardAction = new PlaybackControlsRow.FastForwardAction(context); mRewindAction = new PlaybackControlsRow.RewindAction(context); - mThumbsUpAction = new PlaybackControlsRow.ThumbsUpAction(context); - mThumbsUpAction.setIndex(PlaybackControlsRow.ThumbsUpAction.INDEX_OUTLINE); - mThumbsDownAction = new PlaybackControlsRow.ThumbsDownAction(context); - mThumbsDownAction.setIndex(PlaybackControlsRow.ThumbsDownAction.INDEX_OUTLINE); + mThumbsUpAction = new ThumbsUpAction(context); + mThumbsUpAction.setIndex(ThumbsAction.INDEX_OUTLINE); + mThumbsDownAction = new ThumbsDownAction(context); + mThumbsDownAction.setIndex(ThumbsAction.INDEX_OUTLINE); mRepeatAction = new RepeatAction(context); mHighQualityAction = new HighQualityAction(context); mClosedCaptioningAction = new ClosedCaptioningAction(context); diff --git a/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/actions/ThumbsAction.java b/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/actions/ThumbsAction.java new file mode 100644 index 000000000..8d201a0f9 --- /dev/null +++ b/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/actions/ThumbsAction.java @@ -0,0 +1,46 @@ +package com.liskovsoft.smartyoutubetv2.tv.ui.playback.actions; + +import android.content.Context; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import androidx.core.content.ContextCompat; +import androidx.leanback.widget.PlaybackControlsRow.MultiAction; + +public abstract class ThumbsAction extends MultiAction { + /** + * Action index for the solid thumb icon. + */ + public static final int INDEX_SOLID = 0; + + /** + * Action index for the outline thumb icon. + */ + public static final int INDEX_OUTLINE = 1; + + public ThumbsAction(int id, Context context, int solidIconResId, int outlineIconResId) { + this(id, context, solidIconResId, outlineIconResId, ActionHelpers.getIconHighlightColor(context)); + } + + /** + * Constructor + * @param context Context used for loading resources. + */ + public ThumbsAction(int id, Context context, int solidIconResId, int outlineIconResId, int highlightColor) { + super(id); + Drawable[] drawables = new Drawable[2]; + + BitmapDrawable solidDrawable = (BitmapDrawable) ContextCompat.getDrawable(context, solidIconResId); + BitmapDrawable outlineDrawable = (BitmapDrawable) ContextCompat.getDrawable(context, outlineIconResId); + drawables[INDEX_SOLID] = solidDrawable == null ? null + : new BitmapDrawable(context.getResources(), + ActionHelpers.createBitmap(solidDrawable.getBitmap(), highlightColor)); + drawables[INDEX_OUTLINE] = solidDrawable; + setDrawables(drawables); + + //String[] labels = new String[drawables.length]; + //// Note, labels denote the action taken when clicked + //labels[INDEX_OUTLINE] = context.getString(R.string.action_thumbs_off); + //labels[INDEX_SOLID] = context.getString(R.string.action_thumbs_on); + //setLabels(labels); + } +} diff --git a/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/actions/ThumbsDownAction.java b/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/actions/ThumbsDownAction.java new file mode 100644 index 000000000..8e24b21ee --- /dev/null +++ b/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/actions/ThumbsDownAction.java @@ -0,0 +1,10 @@ +package com.liskovsoft.smartyoutubetv2.tv.ui.playback.actions; + +import android.content.Context; +import com.liskovsoft.smartyoutubetv2.tv.R; + +public class ThumbsDownAction extends ThumbsAction { + public ThumbsDownAction(Context context) { + super(R.id.action_thumbs_down, context, R.drawable.lb_ic_thumb_down, R.drawable.lb_ic_thumb_down_outline); + } +} diff --git a/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/actions/ThumbsUpAction.java b/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/actions/ThumbsUpAction.java new file mode 100644 index 000000000..6d32d6ad9 --- /dev/null +++ b/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/actions/ThumbsUpAction.java @@ -0,0 +1,10 @@ +package com.liskovsoft.smartyoutubetv2.tv.ui.playback.actions; + +import android.content.Context; +import com.liskovsoft.smartyoutubetv2.tv.R; + +public class ThumbsUpAction extends ThumbsAction { + public ThumbsUpAction(Context context) { + super(R.id.action_thumbs_up, context, R.drawable.lb_ic_thumb_up, R.drawable.lb_ic_thumb_up_outline); + } +} diff --git a/smartyoutubetv2/src/main/res/values/ids.xml b/smartyoutubetv2/src/main/res/values/ids.xml index 39ca1125b..e0c7c7b2e 100644 --- a/smartyoutubetv2/src/main/res/values/ids.xml +++ b/smartyoutubetv2/src/main/res/values/ids.xml @@ -1,5 +1,7 @@ + +