summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/view/PlayButton.java
diff options
context:
space:
mode:
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.java28
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();
+ }
}
}
}