package com.itbox.grzl.activity;
import handmark.pulltorefresh.library.PullToRefreshBase.Mode;
import handmark.pulltorefresh.library.PullToRefreshListView;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.content.Loader;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RatingBar;
import android.widget.TextView;
import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
import com.activeandroid.query.Delete;
import com.activeandroid.query.Update;
import com.itbox.fx.net.GsonResponseHandler;
import com.itbox.grzl.AppContext;
import com.itbox.grzl.adapter.ProblemMsgAdapter;
import com.itbox.grzl.bean.Account;
import com.itbox.grzl.bean.ProblemMsg;
import com.itbox.grzl.bean.RespResult;
import com.itbox.grzl.bean.UserProblem;
import com.itbox.grzl.engine.ConsultationEngine;
import com.itbox.grzl.engine.UserEngine;
import com.itbox.grzl.engine.ConsultationEngine.UserProblemDetailItem;
import com.zhaoliewang.grzl.R;
/**
* 我的详情页面
*
* @author baoboy
* @date 2014-5-26下午11:59:32
*/
public class MyProblemDetailActivity extends BaseLoadActivity<ProblemMsg> {
@InjectView(R.id.lv_list)
protected PullToRefreshListView mListView;
@InjectView(R.id.et_content)
protected EditText mContentEt;
@InjectView(R.id.text_right)
protected TextView mRightTv;
@InjectView(R.id.tv_finish)
protected TextView mFinishTv;
@InjectView(R.id.ll_edit)
protected View mEditView;
@InjectView(R.id.bt_send)
protected Button mSendBt;
@InjectView(R.id.rb_score)
protected RatingBar mScoreRb;
private ProblemMsgAdapter mAdapter;
private UserProblem mBean;
private Account mAccount;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_problem_detail);
mBean = getIntent().getParcelableExtra("bean");
if (mBean == null) {
finish();
return;
}
ButterKnife.inject(this);
// 清空评论数据库,防止显示别的评论
new Delete().from(ProblemMsg.class).execute();
initView();
}
private void initView() {
setTitle("咨询详情");
showLeftBackButton();
mAccount = AppContext.getInstance().getAccount();
if (mBean.isSelf()) {
mRightTv.setVisibility(View.VISIBLE);
mRightTv.setText("完成对话");
}
mAdapter = new ProblemMsgAdapter(getContext(), null);
initLoad(mListView, mAdapter, ProblemMsg.class);
mListView.setMode(Mode.PULL_FROM_START);
initStatus();
}
@Override
public void onLoadFinished(Loader<Cursor> loder, Cursor cursor) {
super.onLoadFinished(loder, cursor);
mListView.scrollBottom();
}
@OnClick(R.id.text_right)
public void onFinishClick(View v) {
showProgressDialog("正在结束对话...");
ConsultationEngine.finishConsulation(mBean.getProblemId() + "",
new GsonResponseHandler<RespResult>(RespResult.class) {
@Override
public void onFinish() {
dismissProgressDialog();
}
@Override
public void onSuccess(RespResult resp) {
if (resp.isSuccess()) {
showToast("结束对话成功");
mBean.setFinish();
new Update(UserProblem.class)
.set(UserProblem.STATUS + "=?", "1")
.where(UserProblem.UP_ID + "=?",
mBean.getProblemId()).execute();
initStatus();
} else {
showToast("结束对话失败");
}
}
});
}
private void initStatus() {
if (mBean.isFinish()) {
mEditView.setVisibility(View.GONE);
mFinishTv.setVisibility(View.VISIBLE);
mRightTv.setVisibility(View.GONE);
mScoreRb.setVisibility(View.GONE);
if (mBean.isSelf() && !mBean.isRemark()) {
mScoreRb.setVisibility(View.VISIBLE);
mEditView.setVisibility(View.VISIBLE);
mSendBt.setText("评价");
}
}
}
@OnClick(R.id.bt_send)
public void onClick(View v) {
String content = mContentEt.getText().toString();
if (TextUtils.isEmpty(content)) {
showToast("请输入内容");
return;
}
showProgressDialog("正在提交...");
if (mBean.isFinish()) {
// 评价
ConsultationEngine.comment(mBean.getTeacherid(), content,
mScoreRb.getProgress() + "", mBean.getProblemId() + "",
new GsonResponseHandler<RespResult>(RespResult.class) {
@Override
public void onFinish() {
super.onFinish();
dismissProgressDialog();
}
@Override
public void onSuccess(RespResult result) {
super.onSuccess(result);
if (result.isSuccess()) {
showToast("评论成功");
mContentEt.setText("");
mBean.setRemark();
initStatus();
} else {
showToast("评论失败");
}
}
@Override
public void onFailure(Throwable error, String content) {
super.onFailure(error, content);
showToast(content);
}
});
return;
}
// 发送消息
ConsultationEngine.sendMsg(mBean.getProblemId() + "", content,
new GsonResponseHandler<RespResult>(RespResult.class) {
@Override
public void onFinish() {
super.onFinish();
dismissProgressDialog();
}
@Override
public void onSuccess(RespResult result) {
super.onSuccess(result);
if (result.isSuccess()) {
showToast("发送成功");
mContentEt.setText("");
loadFirstData();
} else {
showToast("发送失败");
}
}
@Override
public void onFailure(Throwable error, String content) {
super.onFailure(error, content);
showToast(content);
}
});
}
/**
* 从网络加载数据
*/
protected void loadData(final int page) {
ConsultationEngine.getMsgList(mBean.getProblemId() + "", page,
new LoadResponseHandler<UserProblemDetailItem>(this,
UserProblemDetailItem.class) {
@Override
public void onSuccess(UserProblemDetailItem item) {
saveData(page, item.getUserProblemDetailItem());
}
});
}
}