package me.weyye.todaynews.ui.activity;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.helper.ItemTouchHelper;
import android.view.View;
import com.chad.library.adapter.base.BaseViewHolder;
import com.orhanobut.logger.Logger;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import me.weyye.todaynews.R;
import me.weyye.todaynews.base.BaseActivity;
import me.weyye.todaynews.listener.ItemDragHelperCallBack;
import me.weyye.todaynews.listener.OnChannelDragListener;
import me.weyye.todaynews.model.Channel;
import me.weyye.todaynews.ui.adapter.ChannelAdapter;
import me.weyye.todaynews.utils.ConstanceValue;
import static me.weyye.todaynews.model.Channel.TYPE_MY_CHANNEL;
public class ChannelActivity extends BaseActivity implements OnChannelDragListener {
@BindView(R.id.recyclerView)
RecyclerView mRecyclerView;
private List<Channel> mDatas = new ArrayList<>();
private ChannelAdapter mAdapter;
private final String[] titles = new String[]{"推荐", "视频", "热点", "社会", "娱乐", "科技", "汽车", "体育", "财经", "军事", "国际", "时尚", "游戏", "旅游", "历史", "探索", "美食", "育儿", "养生", "故事", "美文"};
private ItemTouchHelper mHelper;
@Override
protected void loadViewLayout() {
setContentView(R.layout.activity_channel);
ButterKnife.bind(this);
}
public static void start(Context context, List<Channel> list) {
start(context, list, -1);
}
public static void start(Context context, List<Channel> list, int requestCode) {
Intent intent = new Intent(context, ChannelActivity.class);
intent.putExtra(ConstanceValue.DATA, (Serializable) list);
if (context instanceof Activity) {
Activity activity = (Activity) context;
activity.startActivityForResult(intent, requestCode);
}
}
@Override
protected void bindViews() {
}
@Override
protected void processLogic(Bundle savedInstanceState) {
mAdapter = new ChannelAdapter(mDatas);
GridLayoutManager manager = new GridLayoutManager(this, 4);
mRecyclerView.setLayoutManager(manager);
mRecyclerView.setAdapter(mAdapter);
manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
int itemViewType = mAdapter.getItemViewType(position);
return itemViewType == TYPE_MY_CHANNEL || itemViewType == Channel.TYPE_OTHER_CHANNEL ? 1 : 4;
}
});
ItemDragHelperCallBack callBack = new ItemDragHelperCallBack(this);
mHelper = new ItemTouchHelper(callBack);
mAdapter.setOnChannelDragListener(this);
//attachRecyclerView
mHelper.attachToRecyclerView(mRecyclerView);
}
@Override
protected void setListener() {
}
@OnClick(R.id.icon_collapse)
public void onClick(View v) {
Iterator<Channel> iterator = mDatas.iterator();
while (iterator.hasNext()) {
Channel next = iterator.next();
if (next.getItemType() != TYPE_MY_CHANNEL)
iterator.remove();
}
Intent data = new Intent();
data.putExtra(ConstanceValue.DATA, (Serializable) mDatas);
setResult(RESULT_OK, data);
finish();
}
@Override
public void onStarDrag(BaseViewHolder baseViewHolder) {
//开始拖动
Logger.i("开始拖动");
mHelper.startDrag(baseViewHolder);
}
@Override
public void onItemMove(int starPos, int endPos) {
// if (starPos < 0||endPos<0) return;
Channel startChannel = mDatas.get(starPos);
//先删除之前的位置
mDatas.remove(starPos);
//添加到现在的位置
mDatas.add(endPos, startChannel);
mAdapter.notifyItemMoved(starPos, endPos);
}
@Override
public void onMoveToMyChannel(int starPos, int endPos) {
}
@Override
public void onMoveToOtherChannel(int starPos, int endPos) {
}
}