package com.quark.company.function;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import com.android.volley.DefaultRetryPolicy;
import com.android.volley.Request.Method;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.carson.constant.ConstantForSaveList;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.qingmu.jianzhidaren.R;
import com.quark.adapter.SignAdapter;
import com.quark.common.JsonUtil;
import com.quark.common.ToastUtil;
import com.quark.common.Url;
import com.quark.guanli.QianDaoListActivity;
import com.quark.jianzhidaren.BaseActivity;
import com.parttime.main.MainTabActivity;
import com.quark.model.RosterModel;
import com.quark.model.SignPersonList;
import com.quark.ui.widget.CustomDialog;
import com.quark.ui.widget.ListViewForScrollView;
import com.quark.utils.NetWorkCheck;
/**
* 管理员:活动人员列表
*
* @author Administrator
*
*/
public class FullStarffedActivity extends BaseActivity {
private ImageView im;
// 参数
SignAdapter allAdapter;
SignAdapter nosignAdapter;
SignAdapter signAdapter;
private ListViewForScrollView list_allView;
private ListViewForScrollView list_nosignView;
private ListViewForScrollView list_signView;
private String activity_id;
private String company_id;
private String url, sign_url, signUpList_url, company_cancel_required_url;
private String activity_name, total;
ArrayList<RosterModel> list_all = new ArrayList<RosterModel>();
ArrayList<RosterModel> list_sign = new ArrayList<RosterModel>();
ArrayList<RosterModel> list_nosign = new ArrayList<RosterModel>();
private boolean havedPSign = false; // 是否有人签到 签到显示不同的页面
private int signPerson = 0;// 签到的人生
private int nosignPerson = 0;// 未签到人生
private int manNumber = 0;
private int womanNumber = 0;
ArrayList<SignPersonList> signPersonList = new ArrayList<SignPersonList>();
public int status = 0;
@ViewInject(R.id.sign)
ScrollView signView;
@ViewInject(R.id.nosign)
ScrollView nosignView;
@ViewInject(R.id.men_num)
TextView men_num;
@ViewInject(R.id.woman_num)
TextView woman_num;
@ViewInject(R.id.total_num)
TextView total_num;
@ViewInject(R.id.total_nosign)
TextView total_nosign;
@ViewInject(R.id.total_sign)
TextView total_sign;
LinearLayout codeLayout;
LinearLayout penLayout;
SharedPreferences sp;
private Button qiandaoRecordBtn;
private String sign_msg;// 发起签到时弹出的提示...当前是第n次刷新。。。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.company_person);
ViewUtils.inject(this);
activity_id = getIntent().getStringExtra("activity_id");
activity_name = getIntent().getStringExtra("activity_name");
sp = getSharedPreferences("jrdr.setting", Activity.MODE_PRIVATE);
company_id = sp.getString("userId", "");
RelativeLayout topLayout = (RelativeLayout) findViewById(R.id.top_title_layout);
topLayout.setBackgroundColor(getResources().getColor(
R.color.guanli_common_color));
setBackButton();
url = Url.COMPANY_activityFaceBook + "?token="
+ MainTabActivity.token;
sign_url = Url.COMPANY_sign + "?token=" + MainTabActivity.token;
signUpList_url = Url.COMPANY_signUpList + "?token="
+ MainTabActivity.token;
company_cancel_required_url = Url.COMPANY_CANCEL_REQUIRED + "?token="
+ MainTabActivity.token;
setRightImage(R.id.right, listener);
// 处理数据
//
im = (ImageView) findViewById(R.id.right);
Resources res = this.getResources();
Drawable btnDrawable = res.getDrawable(R.drawable.nav_btn_refresh);
im.setBackgroundDrawable(btnDrawable);
setTopTitle(activity_name);
// carson 取消onresume 中刷新数据
getData();
qiandaoRecordBtn = (Button) findViewById(R.id.preview_qiandao_record_btn);
qiandaoRecordBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(FullStarffedActivity.this,
QianDaoListActivity.class);
intent.putExtra("activity_id", activity_id);
startActivity(intent);
}
});
}
private void getData() {
list_all.clear();
list_sign.clear();
list_nosign.clear();
havedPSign = false;
signPerson = 0;
nosignPerson = 0;
manNumber = 0;
womanNumber = 0;
showWait(true);
StringRequest stringRequest = new StringRequest(Method.POST,
signUpList_url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
showWait(false);
try {
JSONObject js = new JSONObject(response);
JSONObject jss = js
.getJSONObject("ActivitySignList");
sign_msg = jss.getString("msg");// 获取签到提示
JSONArray jsss = jss.getJSONArray("list");
if (jsss.length() > 0) {
for (int i = 0; i < jsss.length(); i++) {
RosterModel rt = new RosterModel();
rt = (RosterModel) JsonUtil.jsonToBean(
jsss.getJSONObject(i),
RosterModel.class);
list_all.add(rt);
if (rt.getSex() == 1) {
manNumber++;
} else if (rt.getSex() == 0) {
womanNumber++;
}
if (rt.getSign() == 1) { // 签到
havedPSign = true;
list_sign.add(rt);
signPerson++;
} else {
list_nosign.add(rt);
nosignPerson++;
}
if (havedPSign) {// 显示有人签到页面
initSignView();
} else {
initNoSignView();
}
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
showWait(false);
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> map = new HashMap<String, String>();
map.put("activity_id", activity_id);
return map;
}
};
queue.add(stringRequest);
}
protected void initNoSignView() {
// 显示nosign scrollView
signView.setVisibility(View.GONE);
nosignView.setVisibility(View.VISIBLE);
men_num.setText(manNumber + "人");
woman_num.setText(womanNumber + "人");
total_num.setText(list_all.size() + "人");
list_allView = (ListViewForScrollView) findViewById(R.id.list_view1);
allAdapter = new SignAdapter(this, list_all);
list_allView.setAdapter(allAdapter);
registerForContextMenu(list_allView);// 注册listview长按监听
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if (v == list_allView) {
// 取消录取人员
getMenuInflater().inflate(R.menu.cancel_luqu, menu);
}
}
@Override
public boolean onContextItemSelected(final MenuItem item) {
if (item.getItemId() == R.id.cancel_luqu) {
// 取消录取人员
if (list_all != null && list_all.size() > 0) {
showWait(true);
StringRequest stringRequest = new StringRequest(Method.POST,
company_cancel_required_url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
showWait(false);
try {
JSONObject js = new JSONObject(response);
JSONObject jss = js
.getJSONObject("ResponseStatus");
int status = jss.getInt("status");
final String msg = jss.getString("msg");
if (status == 1) {
// 取消成功
runOnUiThread(new Runnable() {
@Override
public void run() {
showToast(msg);
list_all.remove(((AdapterContextMenuInfo) item
.getMenuInfo()).position);
allAdapter = new SignAdapter(
FullStarffedActivity.this,
list_all);
list_allView
.setAdapter(allAdapter);
}
});
} else if (status == 2) {
// 取消失败
showToast(msg);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
showWait(false);
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> map = new HashMap<String, String>();
int c_user_id = list_all
.get(((AdapterContextMenuInfo) item
.getMenuInfo()).position).getUser_id();
map.put("user_id", String.valueOf(c_user_id));
map.put("activity_id", activity_id);
return map;
}
};
queue.add(stringRequest);
stringRequest.setRetryPolicy(new DefaultRetryPolicy(
ConstantForSaveList.DEFAULTRETRYTIME * 1000, 1, 1.0f));
}
}
return super.onContextItemSelected(item);
}
protected void initSignView() {
// 显示sign scrollView
signView.setVisibility(View.VISIBLE);
nosignView.setVisibility(View.GONE);
total_nosign.setText(nosignPerson + "人");
total_sign.setText(signPerson + "人");
list_nosignView = (ListViewForScrollView) findViewById(R.id.list_view2);
nosignAdapter = new SignAdapter(this, list_nosign);
list_nosignView.setAdapter(nosignAdapter);
list_signView = (ListViewForScrollView) findViewById(R.id.list_view3);
signAdapter = new SignAdapter(this, list_sign);
list_signView.setAdapter(signAdapter);
}
/*
* 点击头顶刷新
*/
OnClickListener listener = new OnClickListener() {
@Override
public void onClick(View v) {
if (havedPSign) {
if (NetWorkCheck.isOpenNetwork(FullStarffedActivity.this)) {
if (sign_msg != null && !"".equals(sign_msg.trim())) {
showAlertDialog(sign_msg, "温馨提示");
} else {
showAlertDialog("当前是第3次签到,保存后将执行下次签到。确认进行下次签到?", "温馨提示");
}
} else {
ToastUtil.showShortToast("当前网络不好,请稍后尝试。");
}
} else {
ToastUtil.showShortToast("当前无人签到,无需刷新");
// getData();
}
}
};
// 二维码签到刷新
protected void Refresh() {
showWait(true);
StringRequest stringRequest = new StringRequest(Method.POST, sign_url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
showWait(false);
getData();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
showWait(false);
showToast("刷新失败,请重试");
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> map = new HashMap<String, String>();
map.put("activity_id", activity_id);
map.put("company_id", company_id);
return map;
}
};
queue.add(stringRequest);
}
public void showAlertDialog(String str, final String str2) {
CustomDialog.Builder builder = new CustomDialog.Builder(this);
builder.setMessage(str);
builder.setTitle(str2);
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
Refresh();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
}
@Override
protected void onResume() {
super.onResume();
// carson
// getData();//获取数据后判断显示哪个界面
}
}