package com.qiwenge.android.mvp.presenter;
import android.content.Context;
import com.liuguangqiang.android.mvp.Presenter;
import com.qiwenge.android.app.ReadApplication;
import com.qiwenge.android.async.AsyncAddBook;
import com.qiwenge.android.async.AsyncRemoveBook;
import com.qiwenge.android.entity.Book;
import com.qiwenge.android.listeners.CommonHandler;
import com.qiwenge.android.mvp.model.BookDetailModel;
import com.qiwenge.android.mvp.ui.BookDetailUi;
import com.qiwenge.android.mvp.ui.BookDetailUiCallback;
import javax.inject.Inject;
/**
* Created by Eric on 15/5/7.
*/
public class BookDetailPresenter extends Presenter<BookDetailUi, BookDetailUiCallback> {
@Inject
BookDetailModel bookDetailModel;
private Context mContext;
public BookDetailPresenter(Context context, BookDetailUi ui) {
super(ui);
mContext = context;
ReadApplication.from(context).inject(this);
}
@Override
protected void populateUi(BookDetailUi bookDetailUi) {
}
@Override
protected BookDetailUiCallback createUiCallback(final BookDetailUi bookDetailUi) {
return new BookDetailUiCallback() {
@Override
public void addOrRemove(Book book) {
if (bookDetailModel.hasAdded(book)) {
remove(book, bookDetailUi);
} else {
add(book, bookDetailUi);
}
}
@Override
public void checkAdded(Book book) {
bookDetailUi.showBookStatus(bookDetailModel.hasAdded(book));
}
@Override
public void getRelatedBooks(String bookId) {
bookDetailModel.getRelatedBooks(bookId, bookDetailUi);
}
};
}
private void add(Book book, final BookDetailUi ui) {
ui.setAddBtnEnable(false);
new AsyncAddBook(mContext, new CommonHandler() {
@Override
public void onSuccess() {
ui.setAddBtnEnable(true);
ui.showBookStatus(true);
}
}).execute(book);
}
private void remove(Book book, final BookDetailUi ui) {
ui.setAddBtnEnable(false);
new AsyncRemoveBook(mContext, new CommonHandler() {
@Override
public void onSuccess() {
ui.setAddBtnEnable(true);
ui.showBookStatus(false);
}
}).execute(book);
}
}