start view binding migration
This commit is contained in:
parent
61267b705f
commit
cea025e20c
5 changed files with 79 additions and 112 deletions
|
|
@ -29,6 +29,10 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
buildFeatures {
|
||||||
|
viewBinding = true
|
||||||
|
}
|
||||||
|
|
||||||
lintOptions {
|
lintOptions {
|
||||||
disable 'MissingTranslation'
|
disable 'MissingTranslation'
|
||||||
abortOnError false
|
abortOnError false
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ import android.widget.ImageView;
|
||||||
|
|
||||||
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.Glide;
|
||||||
import com.dkanada.gramophone.R;
|
import com.dkanada.gramophone.R;
|
||||||
|
import com.dkanada.gramophone.databinding.FragmentAlbumCoverBinding;
|
||||||
import com.dkanada.gramophone.glide.CustomGlideRequest;
|
import com.dkanada.gramophone.glide.CustomGlideRequest;
|
||||||
import com.dkanada.gramophone.glide.CustomPaletteTarget;
|
import com.dkanada.gramophone.glide.CustomPaletteTarget;
|
||||||
import com.dkanada.gramophone.misc.CustomFragmentStatePagerAdapter;
|
import com.dkanada.gramophone.misc.CustomFragmentStatePagerAdapter;
|
||||||
|
|
@ -71,10 +72,7 @@ public class AlbumCoverPagerAdapter extends CustomFragmentStatePagerAdapter {
|
||||||
public static class AlbumCoverFragment extends Fragment {
|
public static class AlbumCoverFragment extends Fragment {
|
||||||
private static final String SONG_ARG = "song";
|
private static final String SONG_ARG = "song";
|
||||||
|
|
||||||
private Unbinder unbinder;
|
private FragmentAlbumCoverBinding binding;
|
||||||
|
|
||||||
@BindView(R.id.player_image)
|
|
||||||
ImageView albumCover;
|
|
||||||
|
|
||||||
private boolean isColorReady;
|
private boolean isColorReady;
|
||||||
private int color;
|
private int color;
|
||||||
|
|
@ -98,9 +96,9 @@ public class AlbumCoverPagerAdapter extends CustomFragmentStatePagerAdapter {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
View view = inflater.inflate(R.layout.fragment_album_cover, container, false);
|
binding = FragmentAlbumCoverBinding.inflate(inflater);
|
||||||
unbinder = ButterKnife.bind(this, view);
|
|
||||||
return view;
|
return binding.getRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -112,7 +110,6 @@ public class AlbumCoverPagerAdapter extends CustomFragmentStatePagerAdapter {
|
||||||
@Override
|
@Override
|
||||||
public void onDestroyView() {
|
public void onDestroyView() {
|
||||||
super.onDestroyView();
|
super.onDestroyView();
|
||||||
unbinder.unbind();
|
|
||||||
colorReceiver = null;
|
colorReceiver = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -120,7 +117,7 @@ public class AlbumCoverPagerAdapter extends CustomFragmentStatePagerAdapter {
|
||||||
CustomGlideRequest.Builder
|
CustomGlideRequest.Builder
|
||||||
.from(Glide.with(getContext()), song.primary)
|
.from(Glide.with(getContext()), song.primary)
|
||||||
.generatePalette(getActivity()).build()
|
.generatePalette(getActivity()).build()
|
||||||
.into(new CustomPaletteTarget(albumCover) {
|
.into(new CustomPaletteTarget(binding.playerImage) {
|
||||||
@Override
|
@Override
|
||||||
public void onColorReady(int color) {
|
public void onColorReady(int color) {
|
||||||
setColor(color);
|
setColor(color);
|
||||||
|
|
|
||||||
|
|
@ -11,45 +11,35 @@ import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.animation.AccelerateInterpolator;
|
import android.view.animation.AccelerateInterpolator;
|
||||||
import android.view.animation.DecelerateInterpolator;
|
import android.view.animation.DecelerateInterpolator;
|
||||||
import android.widget.ImageView;
|
|
||||||
|
|
||||||
import com.dkanada.gramophone.R;
|
|
||||||
import com.dkanada.gramophone.adapter.AlbumCoverPagerAdapter;
|
import com.dkanada.gramophone.adapter.AlbumCoverPagerAdapter;
|
||||||
|
import com.dkanada.gramophone.databinding.FragmentPlayerAlbumCoverBinding;
|
||||||
import com.dkanada.gramophone.helper.MusicPlayerRemote;
|
import com.dkanada.gramophone.helper.MusicPlayerRemote;
|
||||||
import com.dkanada.gramophone.misc.SimpleAnimatorListener;
|
import com.dkanada.gramophone.misc.SimpleAnimatorListener;
|
||||||
import com.dkanada.gramophone.ui.fragments.AbsMusicServiceFragment;
|
import com.dkanada.gramophone.ui.fragments.AbsMusicServiceFragment;
|
||||||
import com.dkanada.gramophone.util.ViewUtil;
|
import com.dkanada.gramophone.util.ViewUtil;
|
||||||
|
|
||||||
import butterknife.BindView;
|
|
||||||
import butterknife.ButterKnife;
|
|
||||||
import butterknife.Unbinder;
|
|
||||||
|
|
||||||
public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements ViewPager.OnPageChangeListener {
|
public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements ViewPager.OnPageChangeListener {
|
||||||
|
|
||||||
public static final int VISIBILITY_ANIM_DURATION = 300;
|
public static final int VISIBILITY_ANIM_DURATION = 300;
|
||||||
|
|
||||||
private Unbinder unbinder;
|
FragmentPlayerAlbumCoverBinding binding;
|
||||||
|
|
||||||
@BindView(R.id.player_album_cover_viewpager)
|
|
||||||
ViewPager viewPager;
|
|
||||||
@BindView(R.id.player_favorite_icon)
|
|
||||||
ImageView favoriteIcon;
|
|
||||||
|
|
||||||
private Callbacks callbacks;
|
private Callbacks callbacks;
|
||||||
private int currentPosition;
|
private int currentPosition;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
View view = inflater.inflate(R.layout.fragment_player_album_cover, container, false);
|
binding = FragmentPlayerAlbumCoverBinding.inflate(inflater);
|
||||||
unbinder = ButterKnife.bind(this, view);
|
|
||||||
return view;
|
return binding.getRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
|
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
viewPager.addOnPageChangeListener(this);
|
binding.playerAlbumCoverViewPager.addOnPageChangeListener(this);
|
||||||
viewPager.setOnTouchListener(new View.OnTouchListener() {
|
binding.playerAlbumCoverViewPager.setOnTouchListener(new View.OnTouchListener() {
|
||||||
GestureDetector gestureDetector = new GestureDetector(getActivity(), new GestureDetector.SimpleOnGestureListener() {
|
GestureDetector gestureDetector = new GestureDetector(getActivity(), new GestureDetector.SimpleOnGestureListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onSingleTapConfirmed(MotionEvent e) {
|
public boolean onSingleTapConfirmed(MotionEvent e) {
|
||||||
|
|
@ -71,8 +61,8 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
|
||||||
@Override
|
@Override
|
||||||
public void onDestroyView() {
|
public void onDestroyView() {
|
||||||
super.onDestroyView();
|
super.onDestroyView();
|
||||||
viewPager.removeOnPageChangeListener(this);
|
|
||||||
unbinder.unbind();
|
binding.playerAlbumCoverViewPager.removeOnPageChangeListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -82,7 +72,7 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPlayMetadataChanged() {
|
public void onPlayMetadataChanged() {
|
||||||
viewPager.setCurrentItem(MusicPlayerRemote.getPosition());
|
binding.playerAlbumCoverViewPager.setCurrentItem(MusicPlayerRemote.getPosition());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -91,8 +81,8 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updatePlayingQueue() {
|
private void updatePlayingQueue() {
|
||||||
viewPager.setAdapter(new AlbumCoverPagerAdapter(getFragmentManager(), MusicPlayerRemote.getPlayingQueue()));
|
binding.playerAlbumCoverViewPager.setAdapter(new AlbumCoverPagerAdapter(getFragmentManager(), MusicPlayerRemote.getPlayingQueue()));
|
||||||
viewPager.setCurrentItem(MusicPlayerRemote.getPosition());
|
binding.playerAlbumCoverViewPager.setCurrentItem(MusicPlayerRemote.getPosition());
|
||||||
onPageSelected(MusicPlayerRemote.getPosition());
|
onPageSelected(MusicPlayerRemote.getPosition());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -103,7 +93,7 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
|
||||||
@Override
|
@Override
|
||||||
public void onPageSelected(int position) {
|
public void onPageSelected(int position) {
|
||||||
currentPosition = position;
|
currentPosition = position;
|
||||||
((AlbumCoverPagerAdapter) viewPager.getAdapter()).receiveColor(colorReceiver, position);
|
((AlbumCoverPagerAdapter) binding.playerAlbumCoverViewPager.getAdapter()).receiveColor(colorReceiver, position);
|
||||||
if (position != MusicPlayerRemote.getPosition()) {
|
if (position != MusicPlayerRemote.getPosition()) {
|
||||||
MusicPlayerRemote.playSongAt(position);
|
MusicPlayerRemote.playSongAt(position);
|
||||||
}
|
}
|
||||||
|
|
@ -123,16 +113,16 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showHeartAnimation() {
|
public void showHeartAnimation() {
|
||||||
favoriteIcon.clearAnimation();
|
binding.playerFavoriteIcon.clearAnimation();
|
||||||
|
|
||||||
favoriteIcon.setAlpha(0f);
|
binding.playerFavoriteIcon.setAlpha(0f);
|
||||||
favoriteIcon.setScaleX(0f);
|
binding.playerFavoriteIcon.setScaleX(0f);
|
||||||
favoriteIcon.setScaleY(0f);
|
binding.playerFavoriteIcon.setScaleY(0f);
|
||||||
favoriteIcon.setVisibility(View.VISIBLE);
|
binding.playerFavoriteIcon.setVisibility(View.VISIBLE);
|
||||||
favoriteIcon.setPivotX(favoriteIcon.getWidth() / 2);
|
binding.playerFavoriteIcon.setPivotX(binding.playerFavoriteIcon.getWidth() / 2);
|
||||||
favoriteIcon.setPivotY(favoriteIcon.getHeight() / 2);
|
binding.playerFavoriteIcon.setPivotY(binding.playerFavoriteIcon.getHeight() / 2);
|
||||||
|
|
||||||
favoriteIcon.animate()
|
binding.playerFavoriteIcon.animate()
|
||||||
.setDuration(ViewUtil.PHONOGRAPH_ANIM_TIME / 2)
|
.setDuration(ViewUtil.PHONOGRAPH_ANIM_TIME / 2)
|
||||||
.setInterpolator(new DecelerateInterpolator())
|
.setInterpolator(new DecelerateInterpolator())
|
||||||
.scaleX(1f)
|
.scaleX(1f)
|
||||||
|
|
@ -141,10 +131,10 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
|
||||||
.setListener(new SimpleAnimatorListener() {
|
.setListener(new SimpleAnimatorListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onAnimationCancel(Animator animation) {
|
public void onAnimationCancel(Animator animation) {
|
||||||
favoriteIcon.setVisibility(View.INVISIBLE);
|
binding.playerFavoriteIcon.setVisibility(View.INVISIBLE);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.withEndAction(() -> favoriteIcon.animate()
|
.withEndAction(() -> binding.playerFavoriteIcon.animate()
|
||||||
.setDuration(ViewUtil.PHONOGRAPH_ANIM_TIME / 2)
|
.setDuration(ViewUtil.PHONOGRAPH_ANIM_TIME / 2)
|
||||||
.setInterpolator(new AccelerateInterpolator())
|
.setInterpolator(new AccelerateInterpolator())
|
||||||
.scaleX(0f)
|
.scaleX(0f)
|
||||||
|
|
|
||||||
|
|
@ -12,10 +12,9 @@ import androidx.interpolator.view.animation.FastOutSlowInInterpolator;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.ImageButton;
|
|
||||||
import android.widget.SeekBar;
|
import android.widget.SeekBar;
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
|
import com.dkanada.gramophone.databinding.FragmentFlatPlayerPlaybackControlsBinding;
|
||||||
import com.kabouzeid.appthemehelper.util.MaterialValueHelper;
|
import com.kabouzeid.appthemehelper.util.MaterialValueHelper;
|
||||||
import com.dkanada.gramophone.R;
|
import com.dkanada.gramophone.R;
|
||||||
import com.dkanada.gramophone.helper.MusicPlayerRemote;
|
import com.dkanada.gramophone.helper.MusicPlayerRemote;
|
||||||
|
|
@ -30,31 +29,8 @@ import com.dkanada.gramophone.views.PlayPauseDrawable;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
|
|
||||||
import butterknife.BindView;
|
|
||||||
import butterknife.ButterKnife;
|
|
||||||
import butterknife.Unbinder;
|
|
||||||
|
|
||||||
public class FlatPlayerPlaybackControlsFragment extends AbsMusicServiceFragment implements MusicProgressViewUpdateHelper.Callback {
|
public class FlatPlayerPlaybackControlsFragment extends AbsMusicServiceFragment implements MusicProgressViewUpdateHelper.Callback {
|
||||||
|
FragmentFlatPlayerPlaybackControlsBinding binding;
|
||||||
private Unbinder unbinder;
|
|
||||||
|
|
||||||
@BindView(R.id.player_play_pause__button)
|
|
||||||
ImageButton playPauseButton;
|
|
||||||
@BindView(R.id.player_prev_button)
|
|
||||||
ImageButton prevButton;
|
|
||||||
@BindView(R.id.player_next_button)
|
|
||||||
ImageButton nextButton;
|
|
||||||
@BindView(R.id.player_repeat_button)
|
|
||||||
ImageButton repeatButton;
|
|
||||||
@BindView(R.id.player_shuffle_button)
|
|
||||||
ImageButton shuffleButton;
|
|
||||||
|
|
||||||
@BindView(R.id.player_progress_slider)
|
|
||||||
SeekBar progressSlider;
|
|
||||||
@BindView(R.id.player_song_total_time)
|
|
||||||
TextView songTotalTime;
|
|
||||||
@BindView(R.id.player_song_current_progress)
|
|
||||||
TextView songCurrentProgress;
|
|
||||||
|
|
||||||
private PlayPauseDrawable playPauseDrawable;
|
private PlayPauseDrawable playPauseDrawable;
|
||||||
|
|
||||||
|
|
@ -75,13 +51,14 @@ public class FlatPlayerPlaybackControlsFragment extends AbsMusicServiceFragment
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
return inflater.inflate(R.layout.fragment_flat_player_playback_controls, container, false);
|
binding = FragmentFlatPlayerPlaybackControlsBinding.inflate(inflater);
|
||||||
|
|
||||||
|
return binding.getRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
|
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
unbinder = ButterKnife.bind(this, view);
|
|
||||||
setUpMusicControllers();
|
setUpMusicControllers();
|
||||||
updateProgressTextColor();
|
updateProgressTextColor();
|
||||||
}
|
}
|
||||||
|
|
@ -89,7 +66,6 @@ public class FlatPlayerPlaybackControlsFragment extends AbsMusicServiceFragment
|
||||||
@Override
|
@Override
|
||||||
public void onDestroyView() {
|
public void onDestroyView() {
|
||||||
super.onDestroyView();
|
super.onDestroyView();
|
||||||
unbinder.unbind();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -144,13 +120,13 @@ public class FlatPlayerPlaybackControlsFragment extends AbsMusicServiceFragment
|
||||||
|
|
||||||
private void setUpPlayPauseButton() {
|
private void setUpPlayPauseButton() {
|
||||||
playPauseDrawable = new PlayPauseDrawable(getActivity());
|
playPauseDrawable = new PlayPauseDrawable(getActivity());
|
||||||
playPauseButton.setImageDrawable(playPauseDrawable);
|
binding.playerPlayPauseButton.setImageDrawable(playPauseDrawable);
|
||||||
updatePlayPauseColor();
|
updatePlayPauseColor();
|
||||||
playPauseButton.setOnClickListener(new PlayPauseButtonOnClickHandler());
|
binding.playerPlayPauseButton.setOnClickListener(new PlayPauseButtonOnClickHandler());
|
||||||
playPauseButton.post(() -> {
|
binding.playerPlayPauseButton.post(() -> {
|
||||||
if (playPauseButton != null) {
|
if (binding.playerPlayPauseButton != null) {
|
||||||
playPauseButton.setPivotX(playPauseButton.getWidth() / 2);
|
binding.playerPlayPauseButton.setPivotX(binding.playerPlayPauseButton.getWidth() / 2);
|
||||||
playPauseButton.setPivotY(playPauseButton.getHeight() / 2);
|
binding.playerPlayPauseButton.setPivotY(binding.playerPlayPauseButton.getHeight() / 2);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -173,57 +149,57 @@ public class FlatPlayerPlaybackControlsFragment extends AbsMusicServiceFragment
|
||||||
|
|
||||||
private void setUpPrevNext() {
|
private void setUpPrevNext() {
|
||||||
updatePrevNextColor();
|
updatePrevNextColor();
|
||||||
nextButton.setOnClickListener(v -> MusicPlayerRemote.playNextSong());
|
binding.playerNextButton.setOnClickListener(v -> MusicPlayerRemote.playNextSong());
|
||||||
prevButton.setOnClickListener(v -> MusicPlayerRemote.back());
|
binding.playerPrevButton.setOnClickListener(v -> MusicPlayerRemote.back());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateProgressTextColor() {
|
private void updateProgressTextColor() {
|
||||||
int color = MaterialValueHelper.getPrimaryTextColor(getContext(), false);
|
int color = MaterialValueHelper.getPrimaryTextColor(getContext(), false);
|
||||||
songTotalTime.setTextColor(color);
|
binding.playerSongTotalTime.setTextColor(color);
|
||||||
songCurrentProgress.setTextColor(color);
|
binding.playerSongCurrentProgress.setTextColor(color);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updatePrevNextColor() {
|
private void updatePrevNextColor() {
|
||||||
nextButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN);
|
binding.playerNextButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN);
|
||||||
prevButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN);
|
binding.playerPrevButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updatePlayPauseColor() {
|
private void updatePlayPauseColor() {
|
||||||
playPauseButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN);
|
binding.playerPlayPauseButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setUpShuffleButton() {
|
private void setUpShuffleButton() {
|
||||||
shuffleButton.setOnClickListener(v -> MusicPlayerRemote.toggleShuffleMode());
|
binding.playerShuffleButton.setOnClickListener(v -> MusicPlayerRemote.toggleShuffleMode());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateShuffleState() {
|
private void updateShuffleState() {
|
||||||
switch (MusicPlayerRemote.getShuffleMode()) {
|
switch (MusicPlayerRemote.getShuffleMode()) {
|
||||||
case MusicService.SHUFFLE_MODE_SHUFFLE:
|
case MusicService.SHUFFLE_MODE_SHUFFLE:
|
||||||
shuffleButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN);
|
binding.playerShuffleButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
shuffleButton.setColorFilter(lastDisabledPlaybackControlsColor, PorterDuff.Mode.SRC_IN);
|
binding.playerShuffleButton.setColorFilter(lastDisabledPlaybackControlsColor, PorterDuff.Mode.SRC_IN);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setUpRepeatButton() {
|
private void setUpRepeatButton() {
|
||||||
repeatButton.setOnClickListener(v -> MusicPlayerRemote.cycleRepeatMode());
|
binding.playerRepeatButton.setOnClickListener(v -> MusicPlayerRemote.cycleRepeatMode());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateRepeatState() {
|
private void updateRepeatState() {
|
||||||
switch (MusicPlayerRemote.getRepeatMode()) {
|
switch (MusicPlayerRemote.getRepeatMode()) {
|
||||||
case MusicService.REPEAT_MODE_NONE:
|
case MusicService.REPEAT_MODE_NONE:
|
||||||
repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp);
|
binding.playerRepeatButton.setImageResource(R.drawable.ic_repeat_white_24dp);
|
||||||
repeatButton.setColorFilter(lastDisabledPlaybackControlsColor, PorterDuff.Mode.SRC_IN);
|
binding.playerRepeatButton.setColorFilter(lastDisabledPlaybackControlsColor, PorterDuff.Mode.SRC_IN);
|
||||||
break;
|
break;
|
||||||
case MusicService.REPEAT_MODE_ALL:
|
case MusicService.REPEAT_MODE_ALL:
|
||||||
repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp);
|
binding.playerRepeatButton.setImageResource(R.drawable.ic_repeat_white_24dp);
|
||||||
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN);
|
binding.playerRepeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN);
|
||||||
break;
|
break;
|
||||||
case MusicService.REPEAT_MODE_THIS:
|
case MusicService.REPEAT_MODE_THIS:
|
||||||
repeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp);
|
binding.playerRepeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp);
|
||||||
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN);
|
binding.playerRepeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -236,11 +212,11 @@ public class FlatPlayerPlaybackControlsFragment extends AbsMusicServiceFragment
|
||||||
|
|
||||||
LinkedList<Animator> animators = new LinkedList<>();
|
LinkedList<Animator> animators = new LinkedList<>();
|
||||||
|
|
||||||
addAnimation(animators, playPauseButton, interpolator, duration, 0);
|
addAnimation(animators, binding.playerPlayPauseButton, interpolator, duration, 0);
|
||||||
addAnimation(animators, nextButton, interpolator, duration, 100);
|
addAnimation(animators, binding.playerNextButton, interpolator, duration, 100);
|
||||||
addAnimation(animators, prevButton, interpolator, duration, 100);
|
addAnimation(animators, binding.playerPrevButton, interpolator, duration, 100);
|
||||||
addAnimation(animators, shuffleButton, interpolator, duration, 200);
|
addAnimation(animators, binding.playerShuffleButton, interpolator, duration, 200);
|
||||||
addAnimation(animators, repeatButton, interpolator, duration, 200);
|
addAnimation(animators, binding.playerRepeatButton, interpolator, duration, 200);
|
||||||
|
|
||||||
musicControllerAnimationSet = new AnimatorSet();
|
musicControllerAnimationSet = new AnimatorSet();
|
||||||
musicControllerAnimationSet.playTogether(animators);
|
musicControllerAnimationSet.playTogether(animators);
|
||||||
|
|
@ -257,11 +233,11 @@ public class FlatPlayerPlaybackControlsFragment extends AbsMusicServiceFragment
|
||||||
if (musicControllerAnimationSet != null) {
|
if (musicControllerAnimationSet != null) {
|
||||||
musicControllerAnimationSet.cancel();
|
musicControllerAnimationSet.cancel();
|
||||||
}
|
}
|
||||||
prepareForAnimation(playPauseButton);
|
prepareForAnimation(binding.playerPlayPauseButton);
|
||||||
prepareForAnimation(nextButton);
|
prepareForAnimation(binding.playerNextButton);
|
||||||
prepareForAnimation(prevButton);
|
prepareForAnimation(binding.playerPrevButton);
|
||||||
prepareForAnimation(shuffleButton);
|
prepareForAnimation(binding.playerShuffleButton);
|
||||||
prepareForAnimation(repeatButton);
|
prepareForAnimation(binding.playerRepeatButton);
|
||||||
|
|
||||||
hidden = true;
|
hidden = true;
|
||||||
}
|
}
|
||||||
|
|
@ -289,10 +265,10 @@ public class FlatPlayerPlaybackControlsFragment extends AbsMusicServiceFragment
|
||||||
|
|
||||||
private void setUpProgressSlider() {
|
private void setUpProgressSlider() {
|
||||||
int color = MaterialValueHelper.getPrimaryTextColor(getContext(), false);
|
int color = MaterialValueHelper.getPrimaryTextColor(getContext(), false);
|
||||||
progressSlider.getThumb().mutate().setColorFilter(color, PorterDuff.Mode.SRC_IN);
|
binding.playerProgressSlider.getThumb().mutate().setColorFilter(color, PorterDuff.Mode.SRC_IN);
|
||||||
progressSlider.getProgressDrawable().mutate().setColorFilter(Color.TRANSPARENT, PorterDuff.Mode.SRC_IN);
|
binding.playerProgressSlider.getProgressDrawable().mutate().setColorFilter(Color.TRANSPARENT, PorterDuff.Mode.SRC_IN);
|
||||||
|
|
||||||
progressSlider.setOnSeekBarChangeListener(new SimpleOnSeekbarChangeListener() {
|
binding.playerProgressSlider.setOnSeekBarChangeListener(new SimpleOnSeekbarChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
|
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
|
||||||
if (fromUser) {
|
if (fromUser) {
|
||||||
|
|
@ -305,9 +281,9 @@ public class FlatPlayerPlaybackControlsFragment extends AbsMusicServiceFragment
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUpdateProgressViews(int progress, int total) {
|
public void onUpdateProgressViews(int progress, int total) {
|
||||||
progressSlider.setMax(total);
|
binding.playerProgressSlider.setMax(total);
|
||||||
progressSlider.setProgress(progress);
|
binding.playerProgressSlider.setProgress(progress);
|
||||||
songTotalTime.setText(MusicUtil.getReadableDurationString(total));
|
binding.playerSongTotalTime.setText(MusicUtil.getReadableDurationString(total));
|
||||||
songCurrentProgress.setText(MusicUtil.getReadableDurationString(progress));
|
binding.playerSongCurrentProgress.setText(MusicUtil.getReadableDurationString(progress));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<androidx.viewpager.widget.ViewPager
|
<androidx.viewpager.widget.ViewPager
|
||||||
android:id="@+id/player_album_cover_viewpager"
|
android:id="@+id/player_album_cover_view_pager"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent" />
|
android:layout_height="match_parent" />
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue