New tablet layout for now playing screen

This commit is contained in:
Karim Abou Zeid 2015-12-24 00:47:43 +01:00
commit fa79772d21
3 changed files with 199 additions and 7 deletions

View file

@ -2,7 +2,6 @@ package com.kabouzeid.gramophone.ui.fragments.player;
import android.animation.Animator;
import android.os.Bundle;
import android.support.annotation.ColorInt;
import android.support.v4.view.ViewPager;
import android.view.GestureDetector;
import android.view.LayoutInflater;
@ -90,6 +89,8 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
private void updatePlayingQueue() {
viewPager.setAdapter(new AlbumCoverPagerAdapter(getFragmentManager(), MusicPlayerRemote.getPlayingQueue()));
viewPager.setCurrentItem(MusicPlayerRemote.getPosition());
// doesn't get called automatically for some reason
onPageSelected(MusicPlayerRemote.getPosition());
}
@Override
@ -120,11 +121,6 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
}
private static class ColorHolder {
@ColorInt
public int color;
}
public void showHeartAnimation() {
favoriteIcon.clearAnimation();

View file

@ -22,6 +22,7 @@ import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.adapter.base.MediaEntryViewHolder;
import com.kabouzeid.gramophone.adapter.song.PlayingQueueAdapter;
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
import com.kabouzeid.gramophone.loader.ArtistLoader;
import com.kabouzeid.gramophone.misc.DragSortRecycler;
import com.kabouzeid.gramophone.model.Song;
import com.kabouzeid.gramophone.ui.activities.base.AbsSlidingMusicPanelActivity;
@ -30,6 +31,11 @@ import com.kabouzeid.gramophone.util.MusicUtil;
import com.kabouzeid.gramophone.util.Util;
import com.kabouzeid.gramophone.util.ViewUtil;
import com.kabouzeid.gramophone.views.WidthFitSquareLayout;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener;
import com.sothree.slidinguppanel.SlidingUpPanelLayout;
import org.solovyev.android.views.llm.LinearLayoutManager;
@ -67,7 +73,9 @@ public class PlayerFragment extends AbsPlayerFragment implements PlayerAlbumCove
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (Util.isLandscape(getResources())) {
if (Util.isTablet(getResources())) {
impl = new TabletImpl();
} else if (Util.isLandscape(getResources())) {
impl = new LandscapeImpl();
} else {
impl = new PortraitImpl();
@ -399,4 +407,44 @@ public class PlayerFragment extends AbsPlayerFragment implements PlayerAlbumCove
animatorSet.start();
}
}
@SuppressWarnings("ConstantConditions")
private static class TabletImpl extends PortraitImpl {
ImageView playerBackground;
@Override
public void init(PlayerFragment fragment) {
super.init(fragment);
playerBackground = ((ImageView) fragment.getView().findViewById(R.id.player_background));
playerBackground.setAlpha(0.5f);
}
@Override
public void animateColorChange(PlayerFragment fragment, int newColor) {
fragment.slidingUpPanelLayout.setBackgroundColor(fragment.lastColor);
AnimatorSet animatorSet = createDefaultColorChangeAnimatorSet(fragment, newColor);
animatorSet.play(ViewUtil.createBackgroundColorTransition(fragment.getView(), ColorUtil.shiftColorDown(fragment.lastColor), ColorUtil.shiftColorDown(newColor)));
animatorSet.start();
ImageLoader.getInstance().displayImage(
MusicUtil.getArtistImageLoaderString(ArtistLoader.getArtist(fragment.getActivity(), MusicPlayerRemote.getCurrentSong().artistId), false),
playerBackground,
new DisplayImageOptions.Builder()
.cacheInMemory(true)
.cacheOnDisk(true)
.resetViewBeforeLoading(true)
.showImageOnFail(R.drawable.default_artist_image)
//.postProcessor(new BlurProcessor.Builder(fragment.getActivity()).build())
.displayer(new FadeInBitmapDisplayer(ViewUtil.PHONOGRAPH_ANIM_TIME, true, true, false))
.build(),
new SimpleImageLoadingListener() {
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
FadeInBitmapDisplayer.animate(view, ViewUtil.PHONOGRAPH_ANIM_TIME);
}
}
);
}
}
}