package cn.scau.scautreasure.ui;
import android.widget.AbsListView;
import com.devspark.appmsg.AppMsg;
import org.androidannotations.annotations.AfterInject;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.Background;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.Extra;
import org.androidannotations.annotations.UiThread;
import org.androidannotations.annotations.rest.RestService;
import org.springframework.web.client.HttpStatusCodeException;
import cn.scau.scautreasure.AppContext;
import cn.scau.scautreasure.R;
import cn.scau.scautreasure.adapter.BorrowedBookAdapter_;
import cn.scau.scautreasure.api.LibraryApi;
import cn.scau.scautreasure.helper.UIHelper;
import static cn.scau.scautreasure.helper.UIHelper.LISTVIEW_EFFECT_MODE.ALPHA;
/**
* 当前借阅书籍记录及过去借阅记录
* User: special
* Date: 13-8-20
* Time: 上午11:36
* Mail: specialcyci@gmail.com
*/
@EActivity( R.layout.borrowedbook )
public class BorrowedBook extends CommonQueryActivity {
@RestService
LibraryApi api;
@Extra("target")
int target;
@AfterInject
void initAfterInject(){
setQueryTarget(QUERY_FOR_LIBRARY);
}
@AfterViews
void init(){
setTitle(R.string.title_borrowedbook);
setDataEmptyTips(R.string.tips_borrowedbook_null);
cacheHelper.setCacheKey("borrowedBook_" + target);
list = cacheHelper.loadListFromCache();
buildAndShowListViewAdapter();
}
@UiThread
void showReNewResult(){
AppMsg.makeText(getSherlockActivity(), R.string.tips_renew_success, AppMsg.STYLE_INFO).show();
}
/**
* 续借网络请求;
* @param barCode
* @param checkCode
*/
@Background
public void reNew(String barCode,String checkCode){
try{
api.reNewBook( app.userName, app.getEncodeLibPassword(), barCode, checkCode );
showReNewResult();
}catch (HttpStatusCodeException e){
showErrorResult(getSherlockActivity(), e.getStatusCode().value());
}
}
@Background( id = UIHelper.CANCEL_FLAG )
void loadData(Object... params) {
beforeLoadData();
try{
if ( target == UIHelper.TARGET_FOR_PAST_BORROW ) {
list = api.getHistoryBorrowedBooks(AppContext.userName, app.getEncodeLibPassword()).getBooks();
}else{
list = api.getNowBorrowedBooks(AppContext.userName, app.getEncodeLibPassword()).getBooks();
}
cacheHelper.writeListToCache(list);
buildAndShowListViewAdapter();
}catch ( HttpStatusCodeException e ){
showErrorResult(getSherlockActivity(), e.getStatusCode().value());
}catch ( Exception e){
handleNoNetWorkError(getSherlockActivity());
}
afterLoadData();
}
private void buildAndShowListViewAdapter(){
if (list == null)
return;
BorrowedBookAdapter_ bookadapter = BorrowedBookAdapter_.getInstance_(getSherlockActivity());
bookadapter.setParent(this);
bookadapter.addAll(list);
adapter = UIHelper.buildEffectAdapter(bookadapter, (AbsListView) listView,ALPHA);
showSuccessResult();
}
}