like button upd

This commit is contained in:
Yuriy Liskov
2020-09-28 02:42:49 +03:00
parent 9cf49ff7fc
commit a61acc8564
3 changed files with 38 additions and 11 deletions

View File

@@ -107,9 +107,11 @@ public class VideoPlayerGlue extends FixedVideoPlayerGlue<PlayerAdapter> {
mRewindAction = new PlaybackControlsRow.RewindAction(context);
mThumbsUpAction = new ThumbsUpAction(context);
mThumbsUpAction.setIndex(ThumbsAction.INDEX_OUTLINE);
mThumbsUpAction.setIndex(ThumbsAction.INDEX_OFF);
mThumbsDownAction = new ThumbsDownAction(context);
mThumbsDownAction.setIndex(ThumbsAction.INDEX_OUTLINE);
mThumbsDownAction.setIndex(ThumbsAction.INDEX_OFF);
mThumbsUpAction.setBoundAction(mThumbsDownAction);
mThumbsDownAction.setBoundAction(mThumbsUpAction);
mRepeatAction = new RepeatAction(context);
mHighQualityAction = new HighQualityAction(context);
mClosedCaptioningAction = new ClosedCaptioningAction(context);
@@ -206,12 +208,14 @@ public class VideoPlayerGlue extends FixedVideoPlayerGlue<PlayerAdapter> {
}
public void setThumbsUpActionState(boolean thumbsUp) {
mThumbsUpAction.setIndex(thumbsUp ? ThumbsAction.INDEX_SOLID : ThumbsAction.INDEX_OUTLINE);
mThumbsUpAction.setIndex(thumbsUp ? ThumbsAction.INDEX_ON : ThumbsAction.INDEX_OFF);
invalidateUi(mThumbsUpAction);
}
public void setThumbsDownActionState(boolean thumbsDown) {
mThumbsDownAction.setIndex(thumbsDown ? ThumbsAction.INDEX_SOLID : ThumbsAction.INDEX_OUTLINE);
mThumbsDownAction.setIndex(thumbsDown ? ThumbsAction.INDEX_ON : ThumbsAction.INDEX_OFF);
invalidateUi(mThumbsDownAction);
}
@@ -261,11 +265,11 @@ public class VideoPlayerGlue extends FixedVideoPlayerGlue<PlayerAdapter> {
handled = true;
} else if (action == mThumbsDownAction) {
incrementActionIndex(action);
mActionListener.onThumbsDown(getActionIndex(action) == ThumbsAction.INDEX_SOLID);
mActionListener.onThumbsDown(getActionIndex(action) == ThumbsAction.INDEX_ON);
handled = true;
} else if (action == mThumbsUpAction) {
incrementActionIndex(action);
mActionListener.onThumbsUp(getActionIndex(action) == ThumbsAction.INDEX_SOLID);
mActionListener.onThumbsUp(getActionIndex(action) == ThumbsAction.INDEX_ON);
handled = true;
} else if (action == mChannelAction) {
mActionListener.onChannel();
@@ -283,6 +287,10 @@ public class VideoPlayerGlue extends FixedVideoPlayerGlue<PlayerAdapter> {
if (handled) {
invalidateUi(action);
if (action instanceof ThumbsAction) {
invalidateUi(((ThumbsAction) action).getBoundAction());
}
}
return handled;

View File

@@ -10,12 +10,14 @@ public abstract class ThumbsAction extends MultiAction {
/**
* Action index for the solid thumb icon.
*/
public static final int INDEX_SOLID = 0;
public static final int INDEX_ON = 0;
/**
* Action index for the outline thumb icon.
*/
public static final int INDEX_OUTLINE = 1;
public static final int INDEX_OFF = 1;
private ThumbsAction mBoundAction;
public ThumbsAction(int id, Context context, int solidIconResId, int outlineIconResId) {
this(id, context, solidIconResId, outlineIconResId, ActionHelpers.getIconHighlightColor(context));
@@ -31,10 +33,10 @@ public abstract class ThumbsAction extends MultiAction {
BitmapDrawable solidDrawable = (BitmapDrawable) ContextCompat.getDrawable(context, solidIconResId);
BitmapDrawable outlineDrawable = (BitmapDrawable) ContextCompat.getDrawable(context, outlineIconResId);
drawables[INDEX_SOLID] = solidDrawable == null ? null
drawables[INDEX_ON] = solidDrawable == null ? null
: new BitmapDrawable(context.getResources(),
ActionHelpers.createBitmap(solidDrawable.getBitmap(), highlightColor));
drawables[INDEX_OUTLINE] = solidDrawable;
drawables[INDEX_OFF] = solidDrawable;
setDrawables(drawables);
//String[] labels = new String[drawables.length];
@@ -43,4 +45,21 @@ public abstract class ThumbsAction extends MultiAction {
//labels[INDEX_SOLID] = context.getString(R.string.action_thumbs_on);
//setLabels(labels);
}
@Override
public void setIndex(int index) {
super.setIndex(index);
if (index == INDEX_ON && mBoundAction != null) {
mBoundAction.setIndex(INDEX_OFF);
}
}
public ThumbsAction getBoundAction() {
return mBoundAction;
}
public void setBoundAction(ThumbsAction boundAction) {
mBoundAction = boundAction;
}
}