diff options
author | ByteHamster <info@bytehamster.com> | 2021-04-14 22:22:58 +0200 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2021-04-15 20:54:53 +0200 |
commit | f1cba8042f18c2a138ca3af6df1005b9983e491e (patch) | |
tree | 56c0ecb7a7450408bca4de3385ca4a30c4dab1bd /app/src/main/java/de/danoeh/antennapod | |
parent | 8768144c9107945cfaf56ed4db771c3def8d00de (diff) | |
download | AntennaPod-f1cba8042f18c2a138ca3af6df1005b9983e491e.zip |
Added animated play button
Drawables need to be defined in the app module, which has the vector
compat library enabled. When enabling the library for the core module,
the app breaks on API 19.
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java | 1 | ||||
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/view/PlayButton.java | 28 |
2 files changed, 22 insertions, 7 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java index d1c34a434..37f372383 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java @@ -6,7 +6,6 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.ImageButton; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; 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(); + } } } } |