package com.metis.meishuquan.activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TextView;
import com.metis.base.ActivityDispatcher;
import com.metis.base.activity.TitleBarActivity;
import com.metis.base.manager.AccountManager;
import com.metis.base.manager.RequestCallback;
import com.metis.base.manager.WeChatPayManager;
import com.metis.base.module.SimpleProvince;
import com.metis.base.module.User;
import com.metis.meishuquan.R;
import com.metis.meishuquan.manager.DiscoveryManager;
import com.metis.msnetworklib.contract.ReturnInfo;
import java.util.List;
public class DiscoveryExamActivity extends TitleBarActivity {
private RecyclerView mExamRv = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_discovery_exam);
mExamRv = (RecyclerView)findViewById(R.id.exam_recycler_view);
mExamRv.setLayoutManager(new LinearLayoutManager(this));
mExamRv.addItemDecoration(new ExamDecoration());
}
@Override
public void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
/*UserManager.getInstance(this).getProvince(new RequestCallback<List<SimpleProvince>>() {
@Override
public void callback(ReturnInfo<List<SimpleProvince>> returnInfo, String callbackId) {
if (returnInfo.isSuccess()) {
mExamRv.setAdapter(new ExamAdapter(DiscoveryExamActivity.this, returnInfo.getData()));
} else {
}
}
});*/
DiscoveryManager.getInstance(this).getAvailableAreaList(new RequestCallback<List<SimpleProvince>>() {
@Override
public void callback(ReturnInfo<List<SimpleProvince>> returnInfo, String callbackId) {
if (returnInfo.isSuccess()) {
mExamRv.setAdapter(new ExamAdapter(DiscoveryExamActivity.this, returnInfo.getData()));
} else {
}
}
});
WeChatPayManager.getInstance(this).registerToWechat();
}
@Override
protected void onDestroy() {
super.onDestroy();
WeChatPayManager.getInstance(this).unregisterFromWechat();
}
@Override
public boolean showAsUpEnable() {
return true;
}
@Override
public CharSequence getTitleCenter() {
return getString(R.string.text_exam);
}
private class ExamHolder extends RecyclerView.ViewHolder {
public TextView areaTv;
public FrameLayout notifyTv, joinTv, getScoreTv, highScoresTv;
public ExamHolder(View itemView) {
super(itemView);
areaTv = (TextView)itemView.findViewById(R.id.exam_area);
notifyTv = (FrameLayout)itemView.findViewById(R.id.exam_notify);
joinTv = (FrameLayout)itemView.findViewById(R.id.exam_join);
getScoreTv = (FrameLayout)itemView.findViewById(R.id.exam_get_score);
highScoresTv = (FrameLayout)itemView.findViewById(R.id.exam_high_scores);
}
}
private class ExamAdapter extends RecyclerView.Adapter<ExamHolder> {
private Context mContext = null;
private List<SimpleProvince> mProvinceList = null;
public ExamAdapter (Context context, List<SimpleProvince> list) {
mContext = context;
mProvinceList = list;
}
@Override
public ExamHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ExamHolder(LayoutInflater.from(DiscoveryExamActivity.this).inflate(R.layout.layout_exam_item, null));
}
@Override
public void onBindViewHolder(ExamHolder holder, int position) {
final SimpleProvince province = mProvinceList.get(position);
holder.areaTv.setText(province.name);
holder.joinTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
User me = AccountManager.getInstance(DiscoveryExamActivity.this).getMe();
if (me != null) {
ActivityDispatcher.innerBrowserActivity(
DiscoveryExamActivity.this,
"http://www.meishuquan.net/mobile/mockexams/signup.aspx?aid=" + province.provinceId + "&uid=" + me.userId);
}
}
});
holder.notifyTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
User me = AccountManager.getInstance(DiscoveryExamActivity.this).getMe();
if (me != null) {
ActivityDispatcher.innerBrowserActivity(
DiscoveryExamActivity.this,
"http://www.meishuquan.net/mobile/mockexams/notificationcenter.aspx?uid=" + me.userId);
}
}
});
holder.highScoresTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//TODO
}
});
holder.getScoreTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//TODO
}
});
}
@Override
public int getItemCount() {
return mProvinceList.size();
}
}
private class ExamDecoration extends RecyclerView.ItemDecoration {
private Paint mPaint = new Paint();
public ExamDecoration () {
mPaint.setAntiAlias(true);
mPaint.setColor(getResources().getColor(android.R.color.darker_gray));
mPaint.setStyle(Paint.Style.STROKE);
}
@Override
public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {
super.onDrawOver(c, parent, state);
final int count = parent.getChildCount();
for (int i = 0; i < count - 1; i++) {
View child = parent.getChildAt(i);
c.drawLine(0, child.getBottom(), child.getRight(), child.getBottom(), mPaint);
}
}
}
}