package com.king.tv.mvp.fragment; import android.os.Bundle; import android.support.annotation.Nullable; import android.text.Layout; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.Button; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.king.base.util.LogUtils; import com.king.base.util.ToastUtils; import com.king.tv.R; import com.king.tv.bean.Room; import com.king.tv.mvp.base.BaseFragment; import com.king.tv.mvp.presenter.RoomPresenter; import com.king.tv.mvp.view.IRoomView; import com.king.view.flutteringlayout.FlutteringLayout; import butterknife.BindView; import butterknife.OnClick; import jp.wasabeef.glide.transformations.BlurTransformation; /** * @author Jenly <a href="mailto:jenly1314@gmail.com">Jenly</a> * @since 2017/5/2 */ public class FullRoomFragment extends BaseFragment<IRoomView, RoomPresenter> implements IRoomView { @BindView(R.id.rlAnchorInfo) View rlAnchorInfo; @BindView(R.id.civAvatar) ImageView civAvatar; @BindView(R.id.tvName) TextView tvName; @BindView(R.id.tvFans) TextView tvFans; @BindView(R.id.ivCover) ImageView ivCover; @BindView(R.id.frameVideo) FrameLayout frameVideo; @BindView(R.id.ivBack) ImageView ivBack; @BindView(R.id.tvAccount) TextView tvAccount; @BindView(R.id.ivInput) ImageView ivInput; @BindView(R.id.ivFollow) ImageView ivFollow; @BindView(R.id.ivGift) ImageView ivGift; @BindView(R.id.ivShare) ImageView ivShare; @BindView(R.id.ivMessage) ImageView ivMessage; @BindView(R.id.rlRoomInfo) LinearLayout rlRoomInfo; @BindView(R.id.videoContent) RelativeLayout videoContent; @BindView(R.id.flutteringLayout) FlutteringLayout flutteringLayout; @BindView(R.id.btnHeart) Button btnHeart; private String uid; private String coverUrl; private VideoFragment videoFragment; public static FullRoomFragment newInstance(String uid,String coverUrl) { Bundle args = new Bundle(); FullRoomFragment fragment = new FullRoomFragment(); fragment.uid = uid; fragment.coverUrl = coverUrl; fragment.setArguments(args); return fragment; } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); return super.onCreateView(inflater, container, savedInstanceState); } @Override public int getRootViewId() { return R.layout.fragment_full_room; } @Override public void initUI() { tvAccount.setText(String.format(getString(R.string.qm_account),uid)); Glide.with(this).load(coverUrl).centerCrop().bitmapTransform(new BlurTransformation(context,18,3)).diskCacheStrategy(DiskCacheStrategy.SOURCE).into(ivCover); } @Override public void initData() { getPresenter().enterRoom(uid,true); } @Override public RoomPresenter createPresenter() { return new RoomPresenter(getApp()); } @Override public void showProgress() { } @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void enterRoom(Room room) { LogUtils.d("enterRoom:" + room.getUid()); updateAnchorInfo(room); } @Override public void playUrl(String url) { LogUtils.d("playUrl:" + url); if (videoFragment == null) { videoFragment = VideoFragment.newInstance(url,true); } replaceChildFragment(R.id.frameVideo, videoFragment); clickHeart(); } private void updateAnchorInfo(Room room){ if(room!=null){ rlAnchorInfo.setVisibility(View.VISIBLE); Glide.with(this).load(room.getAvatar()).placeholder(R.drawable.mine_default_avatar).error(R.drawable.mine_default_avatar).centerCrop().crossFade().diskCacheStrategy(DiskCacheStrategy.SOURCE).into(civAvatar); tvName.setText(room.getNick()); tvFans.setText(String.format(getString(R.string.fans_num),room.getFollow())); } } private void clickInput(){ } private void clickFollow(){ startLogin(); } private void clickGift(){ } private void clickShare(){ } private void clickMessage(){ startLogin(); } private void clickHeart(){ flutteringLayout.addHeart(); } @OnClick({R.id.ivBack, R.id.ivInput, R.id.ivFollow, R.id.ivGift, R.id.ivShare, R.id.ivMessage,R.id.btnHeart}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.ivBack: finish(); break; case R.id.ivInput: clickInput(); break; case R.id.ivFollow: clickFollow(); break; case R.id.ivGift: clickGift(); break; case R.id.ivShare: clickShare(); break; case R.id.ivMessage: clickMessage(); break; case R.id.btnHeart: clickHeart(); break; } } }