package com.c9mj.platform.live.ui;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
import com.blankj.utilcode.utils.ToastUtils;
import com.c9mj.platform.R;
import com.c9mj.platform.live.adapter.LivePlayChatAdapter;
import com.c9mj.platform.live.mvp.model.DanmuBean;
import com.c9mj.platform.widget.fragment.BaseFragment;
import com.chad.library.adapter.base.BaseQuickAdapter;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
/**
* author: LMJ
* date: 2016/10/27
* 直播播放页面(聊天室)
*/
public class LivePlayChatFragment extends BaseFragment {
private static final String KEY = "key";
private static final int DANMU_LIMIT = 30;
private final List<DanmuBean> danmuList = new ArrayList<>();
@BindView(R.id.recyclerview)
RecyclerView recyclerView;
@BindView(R.id.et_danmu)
EditText et_danmu;
@BindView(R.id.tv_send)
TextView tv_send;
private LinearLayoutManager layoutManager;
private LivePlayChatAdapter adapter;
private Context context;
private LivePlayActivity activity;
public static LivePlayChatFragment newInstance() {
return newInstance("");
}
private static LivePlayChatFragment newInstance(String game_type) {
LivePlayChatFragment fragment = new LivePlayChatFragment();
Bundle args = new Bundle();
args.putString(KEY, game_type);
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_live_play_chat_layout, container, false);
ButterKnife.bind(this, view);
context = view.getContext();
return view;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
this.activity = (LivePlayActivity) activity;
}
@Override
public void onLazyInitView(@Nullable Bundle savedInstanceState) {
super.onLazyInitView(savedInstanceState);
initView();
}
private void initView() {
//初始化MVP
//设置RefreshLayout
//设置RecyclerView
adapter = new LivePlayChatAdapter(danmuList);
adapter.openLoadAnimation(BaseQuickAdapter.SLIDEIN_LEFT);
layoutManager = new LinearLayoutManager(context);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(adapter);
/***设置其他View***/
}
@OnClick(R.id.tv_send)
public void onClick() {
String danmu = et_danmu.getText().toString();
if (TextUtils.isEmpty(danmu)) {
ToastUtils.showShortToast("发送弹幕内容不能为空");
return;
} else if (activity == null) {
ToastUtils.showShortToast("发送弹幕内容失败");
return;
}
//新建弹幕对象
DanmuBean danmuBean = new DanmuBean();
DanmuBean.DataBean dataBean = new DanmuBean.DataBean();
DanmuBean.DataBean.FromBean fromBean = new DanmuBean.DataBean.FromBean();
fromBean.setNickName(getString(R.string.chat_name));
fromBean.setUserName(getString(R.string.chat_name));
dataBean.setFrom(fromBean);
dataBean.setContent(danmu);
danmuBean.setData(dataBean);
activity.addDanmuOnDanmakuView(danmuBean, true);
this.addDanmuOnRecyclerView(danmuBean);
et_danmu.setText(null);
}
/**
* ListPlayActivity调用,添加弹幕到RecyclerView
*
* @param danmuBean
*/
public void addDanmuOnRecyclerView(DanmuBean danmuBean) {
if (adapter == null) {
return;
}
if (adapter.getData().size() >= DANMU_LIMIT) {
adapter.remove(0);
}
adapter.add(adapter.getData().size(), danmuBean);
recyclerView.scrollToPosition(adapter.getData().size() - 1);
}
}