[Android] Animate playlist/cover switch
Geoffrey Métais
git at videolan.org
Wed Mar 15 17:50:20 CET 2017
vlc-android | branch: master | Geoffrey Métais <geoffrey.metais at gmail.com> | Wed Mar 15 16:21:32 2017 +0100| [15276398e349911bbfc14d1d2c8b61ccc951535a] | committer: Geoffrey Métais
Animate playlist/cover switch
> https://code.videolan.org/videolan/vlc-android/commit/15276398e349911bbfc14d1d2c8b61ccc951535a
---
vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.java | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.java b/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.java
index e2a9ea1..17deaab 100644
--- a/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.java
+++ b/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.java
@@ -36,8 +36,10 @@ import android.os.Message;
import android.preference.PreferenceManager;
import android.support.annotation.Nullable;
import android.support.annotation.RequiresPermission;
+import android.support.constraint.ConstraintSet;
import android.support.design.widget.BottomSheetBehavior;
import android.support.design.widget.Snackbar;
+import android.support.transition.TransitionManager;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v7.widget.LinearLayoutManager;
@@ -96,6 +98,8 @@ public class AudioPlayer extends PlaybackServiceFragment implements PlaybackServ
private boolean mHeaderTimeVisible;
private int mPlayerState;
private String mCurrentCoverArt;
+ private final ConstraintSet coverConstraintSet = new ConstraintSet();
+ private final ConstraintSet playlistConstraintSet = new ConstraintSet();
// Tips
private static final String PREF_PLAYLIST_TIPS_SHOWN = "playlist_tips_shown";
@@ -138,6 +142,10 @@ public class AudioPlayer extends PlaybackServiceFragment implements PlaybackServ
registerForContextMenu(mBinding.songsList);
getActivity().setVolumeControlStream(AudioManager.STREAM_MUSIC);
setUserVisibleHint(true);
+ playlistConstraintSet.clone(mBinding.contentLayout);
+ coverConstraintSet.clone(mBinding.contentLayout);
+ coverConstraintSet.setVisibility(R.id.songs_list, View.GONE);
+ coverConstraintSet.setVisibility(R.id.cover_media_switcher, View.VISIBLE);
}
public void onPopupMenu(View anchor, final int position) {
@@ -408,10 +416,11 @@ public class AudioPlayer extends PlaybackServiceFragment implements PlaybackServ
public void onPlaylistSwitchClick(View view) {
boolean showCover = mBinding.songsList.getVisibility() == View.VISIBLE;
+ TransitionManager.beginDelayedTransition(mBinding.contentLayout);
+ ConstraintSet cs = showCover ? coverConstraintSet : playlistConstraintSet;
+ cs.applyTo(mBinding.contentLayout);
mBinding.playlistSwitch.setImageResource(UiTools.getResourceFromAttribute(view.getContext(),
showCover ? R.attr.ic_playlist : R.attr.ic_playlist_on));
- mBinding.songsList.setVisibility(showCover ? View.GONE : View.VISIBLE);
- mBinding.coverMediaSwitcher.setVisibility(showCover ? View.VISIBLE : View.GONE);
}
public void onShuffleClick(View view) {
More information about the Android
mailing list