package com.dl7.mvp.module.news.channel; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.support.v4.content.ContextCompat; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.view.View; import com.dl7.mvp.R; import com.dl7.mvp.injector.components.DaggerManageComponent; import com.dl7.mvp.injector.modules.ChannelModule; import com.dl7.mvp.local.table.NewsTypeInfo; import com.dl7.mvp.module.base.BaseActivity; import com.dl7.recycler.adapter.BaseQuickAdapter; import com.dl7.recycler.helper.RecyclerViewHelper; import com.dl7.recycler.listener.OnItemMoveListener; import com.dl7.recycler.listener.OnRecyclerViewItemClickListener; import com.dl7.recycler.listener.OnRemoveDataListener; import java.util.List; import javax.inject.Inject; import butterknife.BindView; import jp.wasabeef.recyclerview.animators.FlipInBottomXAnimator; import jp.wasabeef.recyclerview.animators.ScaleInAnimator; /** * 新闻栏目管理界面 */ public class ChannelActivity extends BaseActivity<IChannelPresenter> implements IChannelView { @BindView(R.id.toolbar) Toolbar mToolbar; @BindView(R.id.rv_checked_list) RecyclerView mRvCheckedList; @BindView(R.id.rv_unchecked_list) RecyclerView mRvUncheckedList; @Inject BaseQuickAdapter mCheckedAdapter; @Inject BaseQuickAdapter mUncheckedAdapter; public static void launch(Context context) { Intent intent = new Intent(context, ChannelActivity.class); context.startActivity(intent); ((Activity)context).overridePendingTransition(R.anim.fade_entry, R.anim.hold); } @Override protected int attachLayoutRes() { return R.layout.activity_channel; } @Override protected void initInjector() { DaggerManageComponent.builder() .applicationComponent(getAppComponent()) .channelModule(new ChannelModule(this)) .build() .inject(this); } @Override protected void initViews() { initToolBar(mToolbar, true, "栏目管理"); RecyclerViewHelper.initRecyclerViewG(this, mRvCheckedList, mCheckedAdapter, 4); RecyclerViewHelper.initRecyclerViewG(this, mRvUncheckedList, mUncheckedAdapter, 4); RecyclerViewHelper.startDragAndSwipe(mRvCheckedList, mCheckedAdapter, 3); // 设置动画 mRvCheckedList.setItemAnimator(new ScaleInAnimator()); mRvUncheckedList.setItemAnimator(new FlipInBottomXAnimator()); // 设置拖拽背景 mCheckedAdapter.setDragDrawable(ContextCompat.getDrawable(this, R.drawable.shape_channel_drag)); // 设置移除监听器 mCheckedAdapter.setRemoveDataListener(new OnRemoveDataListener() { @Override public void onRemove(int position) { mUncheckedAdapter.addLastItem(mCheckedAdapter.getItem(position)); mPresenter.delete(mCheckedAdapter.getItem(position)); } }); // 设置移动监听器 mCheckedAdapter.setItemMoveListener(new OnItemMoveListener() { @Override public void onItemMove(int fromPosition, int toPosition) { mPresenter.update(mCheckedAdapter.getData()); mPresenter.swap(fromPosition, toPosition); } }); // 设置点击删除 mUncheckedAdapter.setOnItemClickListener(new OnRecyclerViewItemClickListener() { @Override public void onItemClick(View view, int position) { // 删除前获取数据,不然获取不到对应数据 Object data = mUncheckedAdapter.getItem(position); mUncheckedAdapter.removeItem(position); mCheckedAdapter.addLastItem(data); mPresenter.insert(data); } }); } @Override protected void updateViews(boolean isRefresh) { mPresenter.getData(isRefresh); } @Override public void loadData(List<NewsTypeInfo> checkList, List<NewsTypeInfo> uncheckList) { mCheckedAdapter.updateItems(checkList); mUncheckedAdapter.updateItems(uncheckList); } @Override public void finish() { super.finish(); overridePendingTransition(R.anim.hold, R.anim.fade_exit); } }