package org.cuieney.videolife.ui.fragment.video;
import android.content.res.ColorStateList;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.CollapsingToolbarLayout;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.graphics.Palette;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.SimpleTarget;
import com.konifar.fab_transformation.FabTransformation;
import org.cuieney.videolife.R;
import org.cuieney.videolife.common.image.ImageLoader;
import org.cuieney.videolife.common.utils.DateUtil;
import org.cuieney.videolife.common.utils.LogUtil;
import org.cuieney.videolife.entity.kaiyanBean.DataBean;
import org.cuieney.videolife.common.base.BaseBackFragment;
import org.cuieney.videolife.ui.video.JumpUtils;
/**
* Created by cuieney on 17/2/25.
*/
public class VideoDetailFragment extends BaseBackFragment {
ImageView mImgDetail;
Toolbar mToolbar;
ImageView bgImage;
TextView title;
TextView type;
TextView description;
FloatingActionButton mFab;
private DataBean dataBean;
private CollapsingToolbarLayout collToolBar;
public static VideoDetailFragment newInstance(DataBean dataBean) {
Bundle args = new Bundle();
args.putParcelable(ARG_ITEM, dataBean);
VideoDetailFragment fragment = new VideoDetailFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dataBean = getArguments().getParcelable(ARG_ITEM);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.video_home_detail_fragment, container, false);
initView(view);
return view;
}
private void initView(View view) {
mToolbar = ((Toolbar) view.findViewById(R.id.toolbar));
collToolBar = ((CollapsingToolbarLayout) view.findViewById(R.id.toolbar_layout));
mImgDetail = (ImageView) view.findViewById(R.id.img_detail);
bgImage = (ImageView) view.findViewById(R.id.bg_image);
title = (TextView) view.findViewById(R.id.title);
type = (TextView) view.findViewById(R.id.type);
description = (TextView) view.findViewById(R.id.description);
mFab = (FloatingActionButton) view.findViewById(R.id.fab);
mFab.setBackgroundTintList(new ColorStateList(new int[][]{new int[0]}, new int[]{0xffffcc00}));
mToolbar.setTitle("");
initToolbarNav(mToolbar);
ImageLoader.loadAll(getActivity(), dataBean.getCover().getDetail(), mImgDetail);
ImageLoader.loadAll(getActivity(), dataBean.getCover().getBlurred(), bgImage);
title.setText(dataBean.getTitle());
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("#").append(dataBean.getCategory())
.append(" ")
.append(" / ")
.append(" ")
.append(DateUtil.formatTime2(dataBean.getDuration()));
type.setText(stringBuilder.toString());
description.setText(dataBean.getDescription());
mFab.setOnClickListener(v -> {
if (mFab.getVisibility() == View.VISIBLE) {
FabTransformation.with(mFab).setListener(new FabTransformation.OnTransformListener() {
@Override
public void onStartTransform() {
}
@Override
public void onEndTransform() {
JumpUtils.goToVideoPlayer(getActivity(), mImgDetail, dataBean);
}
}).transformTo(mImgDetail);
}
});
initColor();
}
int color = 0xffffcc00;
private void initColor() {
Glide.with(getContext()).load(dataBean.getCover().getBlurred()).asBitmap().into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
Palette.from(resource).generate(palette -> {
try {
color = palette.getDarkMutedSwatch().getRgb();
} catch (Exception e) {
LogUtil.d(e.getMessage());
}
collToolBar.setContentScrimColor(color);
mFab.setBackgroundTintList(new ColorStateList(new int[][]{new int[0]}, new int[]{color}));
});
}
});
}
@Override
public void onResume() {
super.onResume();
FabTransformation.with(mFab).setListener(new FabTransformation.OnTransformListener() {
@Override
public void onStartTransform() {
}
@Override
public void onEndTransform() {
if (mImgDetail.getVisibility() == View.INVISIBLE) {
mImgDetail.setVisibility(View.VISIBLE);
}
}
}).transformFrom(mImgDetail);
}
}