package cn.scau.scautreasure.ui;
import android.widget.TextView;
import com.devspark.appmsg.AppMsg;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.App;
import org.androidannotations.annotations.Background;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.Extra;
import org.androidannotations.annotations.UiThread;
import org.androidannotations.annotations.ViewById;
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.api.NoticeApi;
import cn.scau.scautreasure.helper.UIHelper;
import cn.scau.scautreasure.model.NoticeModel;
import cn.scau.scautreasure.util.CryptUtil;
/**
* 校园通知详细阅读页面:
* User: special
* Date: 13-8-27
* Time: 下午3:12
* Mail: specialcyci@gmail.com
*/
@EActivity( R.layout.notice_detail )
public class NoticeDetail extends CommonActivity {
@App
AppContext app;
@RestService
NoticeApi api;
@Extra
String url;
@Extra
String title;
@Extra
String time;
@ViewById
TextView tv_title,tv_content,tv_time;
@AfterViews
void init(){
getSupportActionBar().hide();
tv_title.setText(title);
tv_time.setText(time);
loadData();
}
@UiThread
void showSuccessResult(String content){
tv_content.setText(content);
}
/**
* 展示http请求异常结果
* @param requestCode
*/
@UiThread
void showErroResult(int requestCode){
if(requestCode == 404){
AppMsg.makeText(this, getString(R.string.tips_default_null), AppMsg.STYLE_CONFIRM).show();
}else{
app.showError(requestCode,this);
}
}
@Background( id = UIHelper.CANCEL_FLAG )
void loadData(Object... params) {
try{
url = CryptUtil.base64_url_safe(url);
NoticeModel l = api.getContent(url);
showSuccessResult(l.getContent());
}catch (HttpStatusCodeException e){
showErroResult(e.getStatusCode().value());
}catch (Exception e){
handleNoNetWorkError(getSherlockActivity());
}
}
}