diff options
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/view/PlayButton.java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/view/PlayButton.java | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/view/PlayButton.java b/app/src/main/java/de/danoeh/antennapod/view/PlayButton.java index b8ee667f7..691a15ca2 100644 --- a/app/src/main/java/de/danoeh/antennapod/view/PlayButton.java +++ b/app/src/main/java/de/danoeh/antennapod/view/PlayButton.java @@ -5,11 +5,13 @@ import android.util.AttributeSet; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.widget.AppCompatImageButton; +import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat; import de.danoeh.antennapod.R; import de.danoeh.antennapod.ui.common.ThemeUtils; public class PlayButton extends AppCompatImageButton { - private boolean isVideoScreen; + private boolean isShowPlay = true; + private boolean isVideoScreen = false; public PlayButton(@NonNull Context context) { super(context); @@ -28,11 +30,25 @@ public class PlayButton extends AppCompatImageButton { } public void setIsShowPlay(boolean showPlay) { - setContentDescription(getContext().getString(showPlay ? R.string.play_label : R.string.pause_label)); - if (isVideoScreen) { - setImageResource(showPlay ? R.drawable.ic_av_play_white_80dp : R.drawable.ic_av_pause_white_80dp); - } else { - setImageResource(ThemeUtils.getDrawableFromAttr(getContext(), showPlay ? R.attr.av_play : R.attr.av_pause)); + if (this.isShowPlay != showPlay) { + this.isShowPlay = showPlay; + setContentDescription(getContext().getString(showPlay ? R.string.play_label : R.string.pause_label)); + if (isVideoScreen) { + setImageResource(showPlay ? R.drawable.ic_av_play_white_80dp : R.drawable.ic_av_pause_white_80dp); + } else if (!isShown()) { + setImageResource(ThemeUtils.getDrawableFromAttr(getContext(), + showPlay ? R.attr.av_play : R.attr.av_pause)); + } else if (showPlay) { + AnimatedVectorDrawableCompat drawable = AnimatedVectorDrawableCompat.create( + getContext(), R.drawable.ic_animate_pause_play); + setImageDrawable(drawable); + drawable.start(); + } else { + AnimatedVectorDrawableCompat drawable = AnimatedVectorDrawableCompat.create( + getContext(), R.drawable.ic_animate_play_pause); + setImageDrawable(drawable); + drawable.start(); + } } } } |