package name.caiyao.microreader.ui.activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.ActionBar;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.support.v7.widget.helper.ItemTouchHelper;
import android.view.View;
import java.util.ArrayList;
import butterknife.BindView;
import butterknife.ButterKnife;
import name.caiyao.microreader.R;
import name.caiyao.microreader.config.Config;
import name.caiyao.microreader.event.StatusBarEvent;
import name.caiyao.microreader.presenter.IChangeChannelPresenter;
import name.caiyao.microreader.presenter.impl.ChangeChannelPresenterImpl;
import name.caiyao.microreader.ui.adapter.ChannelAdapter;
import name.caiyao.microreader.ui.helper.ItemDragHelperCallback;
import name.caiyao.microreader.ui.iView.IChangeChannel;
import name.caiyao.microreader.utils.RxBus;
/**
* Created by 蔡小木 on 2016/4/26 0026.
*/
public class ChangeChannelActivity extends BaseActivity implements IChangeChannel {
@BindView(R.id.toolbar)
Toolbar mToolbar;
@BindView(R.id.rv_channel)
RecyclerView mRv;
private ArrayList<Config.Channel> savedChannel = new ArrayList<>();
private ArrayList<Config.Channel> otherChannel = new ArrayList<>();
private IChangeChannelPresenter mIChangeChannelPresenter;
private ChannelAdapter mChannelAdapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_change_channel);
ButterKnife.bind(this);
initData();
initView();
}
private void initData() {
mIChangeChannelPresenter = new ChangeChannelPresenterImpl(this, this);
}
private void initView() {
mToolbar.setTitle(getString(R.string.activity_change_channel_title));
setSupportActionBar(mToolbar);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
setToolBar(null, mToolbar, true, true, null);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
mRv.setLayoutManager(linearLayoutManager);
ItemDragHelperCallback callback = new ItemDragHelperCallback();
final ItemTouchHelper helper = new ItemTouchHelper(callback);
helper.attachToRecyclerView(mRv);
mRv.setHasFixedSize(true);
mRv.setNestedScrollingEnabled(false);
mChannelAdapter = new ChannelAdapter(this, helper, savedChannel, otherChannel);
mRv.setAdapter(mChannelAdapter);
mIChangeChannelPresenter.getChannel();
}
@Override
public void showChannel(ArrayList<Config.Channel> savedChannel, ArrayList<Config.Channel> otherChannel) {
this.savedChannel.addAll(savedChannel);
this.otherChannel.addAll(otherChannel);
mChannelAdapter.notifyDataSetChanged();
}
@Override
public void onBackPressed() {
mIChangeChannelPresenter.saveChannel(savedChannel);
RxBus.getDefault().send(new StatusBarEvent());
super.onBackPressed();
}
}