package com.llf.common.ui.mine.presenter;
import android.content.Context;
import com.llf.common.db.JcodeDao;
import com.llf.common.entity.JcodeEntity;
import com.llf.common.ui.mine.contact.TrackContract;
import java.util.List;
import rx.Observable;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
/**
* Created by llf on 2017/3/31.
*
*/
public class TrackPresenter implements TrackContract.Presenter {
private TrackContract.View mView;
private JcodeDao mJcodeDao;
public TrackPresenter(TrackContract.View view) {
this.mView = view;
}
@Override
public void start() {
}
@Override
public void loadData(Context context) {
mJcodeDao = new JcodeDao(context);
Observable.create(new Observable.OnSubscribe<List<JcodeEntity>>() {
@Override
public void call(Subscriber<? super List<JcodeEntity>> subscriber) {
subscriber.onNext(mJcodeDao.queryRecords());
subscriber.onCompleted();
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<List<JcodeEntity>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
mView.showErrorTip(e.getMessage());
}
@Override
public void onNext(List<JcodeEntity> jcodeEntities) {
mView.returnData(jcodeEntities);
}
});
}
@Override
public void deleteData(Context context, final String title) {
mJcodeDao = new JcodeDao(context);
Observable.create(new Observable.OnSubscribe<Boolean>() {
@Override
public void call(Subscriber<? super Boolean> subscriber) {
subscriber.onNext(mJcodeDao.deleteRecord(title) == -1 ? false : true);
subscriber.onCompleted();
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<Boolean>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
mView.showErrorTip(e.getMessage());
}
@Override
public void onNext(Boolean result) {
mView.retureResult(result);
}
});
}
}