package com.bw.com.zuoye0316.activity;
import android.os.Handler;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.widget.Toast;
import com.bw.com.zuoye0316.IsNetConnection;
import com.bw.com.zuoye0316.R;
import com.bw.com.zuoye0316.adapter.MyAdapter;
import com.bw.com.zuoye0316.adapter.OnLoadMoreListener;
import com.bw.com.zuoye0316.app.MyApplication;
import com.bw.com.zuoye0316.bean.DataBean;
import com.bw.com.zuoye0316.gen.DataBeanDao;
import com.bw.com.zuoye0316.presenter.ShowPresenter;
import com.bw.com.zuoye0316.view.ShowView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements ShowView {
private RecyclerView rlv;
private ShowPresenter showPresenter;
int page=1;
private DataBeanDao db;
private SwipeRefreshLayout srl;
private Handler handler=new Handler();
private boolean a;
private List<DataBean> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找控件
rlv = findViewById(R.id.rlv);
srl = findViewById(R.id.srl);
//布局管理器
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
rlv.setLayoutManager(layoutManager);
//实例化P
showPresenter = new ShowPresenter(this);
showPresenter.attachView(this);
//得到数据库
db = MyApplication.getInstance().getDaoSession().getDataBeanDao();
//判断网络状态
a = IsNetConnection.getNetWork(this);
if (a){
db.deleteAll();
//联系P
showPresenter.relected(page);
}else {
List<DataBean> dataBeans = db.loadAll();
if (dataBeans.size()!=0){
MyAdapter myAdapter = new MyAdapter(this,dataBeans);
rlv.setAdapter(myAdapter);
}
}
//下拉
srl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
if (a){
page=1;
showPresenter.relected(page);
}else {
Toast.makeText(MainActivity.this, "网络未连接", Toast.LENGTH_SHORT).show();
}
handler.postDelayed(new Runnable() {
@Override
public void run() {
srl.setRefreshing(false);
}
},2000);
}
});
//上啦
rlv.addOnScrollListener(new OnLoadMoreListener() {
@Override
protected void onLoading(int countItem, int lastItem) {
if (a){
page++;
showPresenter.relected(page);
}else {
Toast.makeText(MainActivity.this, "没开网络", Toast.LENGTH_SHORT).show();
}
handler.postDelayed(new Runnable() {
@Override
public void run() {
srl.setRefreshing(false);
}
},2000);
}
});
}
@Override
public void show(List<DataBean> data) {
Log.i("ttt",data.size()+"");
//把数据存进数据库里
if (page==1){
for (int i=0;i<data.size();i++){
DataBean dataBean = data.get(i);
db.insert(dataBean);
}
list = new ArrayList<>();
}
list.addAll(data);
//适配器
MyAdapter myAdapter = new MyAdapter(this,list);
rlv.setAdapter(myAdapter);
rlv.scrollToPosition(myAdapter.getItemCount()-data.size()-1);
}
@Override
protected void onDestroy() {
super.onDestroy();
showPresenter.deachView();
}
}