package com.wb.sc.mk.personal; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import android.app.AlertDialog; import android.app.DatePickerDialog; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Paint; import android.os.Bundle; import android.view.View; import android.widget.DatePicker; import android.widget.TextView; import com.android.volley.Response.ErrorListener; import com.android.volley.Response.Listener; import com.android.volley.VolleyError; import com.common.net.volley.VolleyErrorHelper; import com.common.widget.ToastHelper; import com.google.gson.Gson; import com.wb.sc.R; import com.wb.sc.activity.base.BaseActivity; import com.wb.sc.activity.base.ReloadListener; import com.wb.sc.app.SCApp; import com.wb.sc.bean.BaseBean; import com.wb.sc.bean.PersonalInfo; import com.wb.sc.bean.User; import com.wb.sc.config.NetConfig; import com.wb.sc.config.RespCode; import com.wb.sc.db.DbHelper; import com.wb.sc.mk.main.SetCommunityActivity; import com.wb.sc.task.BaseRequest; import com.wb.sc.task.PersonalInfoRequest; import com.wb.sc.util.Constans; import com.wb.sc.util.MetaUtil; import com.wb.sc.util.ParamsUtil; public class PersonalInfoActivity extends BaseActivity implements Listener<PersonalInfo>, ErrorListener, ReloadListener { private PersonalInfoRequest mBaseRequest; private PersonalInfo mPersonalInfo; private BaseRequest baseReq; private TextView phoneNum; private TextView localCommunity; private TextView accountName; private TextView birthday; private TextView sex; private TextView mail; private TextView weixinAccount; private TextView work; private TextView hobby; private TextView userStatue; private TextView btn_exit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_personal_info); initView(); showLoading(); requestBase(getBaseRequestParams(), this, this); } @Override protected void onDestroy() { SCApp.getInstance().getList().clear(); super.onDestroy(); } public void getIntentData() { } @Override protected void onResume() { if (SCApp.getInstance().getList().size() > 3 && mPersonalInfo != null) { localCommunity.setText(SCApp.getInstance().getList().get(3).dictionaryName); mPersonalInfo.localCommunity = SCApp.getInstance().getList().get(3).id; } if ("01".equals(SCApp.getInstance().getUser().auth)) { userStatue.setText("已提交认证"); } else if ("02".equals(SCApp.getInstance().getUser().auth)) { userStatue.setText("住户已认证"); } else if ("03".equals(SCApp.getInstance().getUser().auth)){ userStatue.setText("认证失败"); } else { userStatue.setText("住户未认证"); } super.onResume(); } public void initView() { phoneNum = (TextView) findViewById(R.id.phoneNum); localCommunity = (TextView) findViewById(R.id.localCommunity); accountName = (TextView) findViewById(R.id.accountName); birthday = (TextView) findViewById(R.id.birthday); sex = (TextView) findViewById(R.id.sex); mail = (TextView) findViewById(R.id.mail); weixinAccount = (TextView) findViewById(R.id.weixinAccount); work = (TextView) findViewById(R.id.work); hobby = (TextView) findViewById(R.id.hobby); userStatue = (TextView) findViewById(R.id.userStatue); userStatue.getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG ); //下划线 userStatue.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(PersonalInfoActivity.this, SubmitAuthActivity.class); startActivity(intent); } }); btn_exit = (TextView) findViewById(R.id.btn_exit); btn_exit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { showLoading(); requestBase(getSaveInfoRequestParams()); } }); } public void back(View view) { this.finish(); } /** * 执行任务请求 * @param method * @param url * @param params * @param listenre * @param errorListener */ private void requestBase(List<String> paramsList, Listener<PersonalInfo> listenre, ErrorListener errorListener) { showLoading(); if(mBaseRequest != null) { mBaseRequest.cancel(); } String url = NetConfig.getServerBaseUrl() + NetConfig.EXTEND_URL; mBaseRequest = new PersonalInfoRequest(url, paramsList, listenre, errorListener); startRequest(mBaseRequest); } private void requestBase(List<String> paramsList) { if(baseReq != null) { baseReq.cancel(); } String url = NetConfig.getServerBaseUrl() + NetConfig.EXTEND_URL; baseReq = new BaseRequest(url, paramsList, new Listener<BaseBean>() { @Override public void onResponse(BaseBean response) { if(response.respCode.equals(RespCode.SUCCESS)) { showContent(); User user = SCApp.getInstance().getUser(); user.communityName = mPersonalInfo.communityName; user.communityId = mPersonalInfo.localCommunity; DbHelper.saveUser(user); ToastHelper.showToastInBottom(PersonalInfoActivity.this, "保存成功"); } else { showLoadError(PersonalInfoActivity.this); ToastHelper.showToastInBottom(PersonalInfoActivity.this, response.respCodeMsg); } } }, this); startRequest(baseReq); } /** * 获取请求参数,请按照接口文档列表顺序排列 * @return */ private List<String> getBaseRequestParams() { List<String> params = new ArrayList<String>(); params.add(ParamsUtil.getReqParam("FG03", 4)); params.add(ParamsUtil.getReqParam("MC_CENTERM", 16)); params.add(ParamsUtil.getReqParam(MetaUtil.readMeta(this, Constans.APP_CHANNEL), 20)); params.add(ParamsUtil.getReqParam(SCApp.getInstance().getUser().userId, 64)); return params; } /** * 获取请求参数,请按照接口文档列表顺序排列 * @return */ private List<String> getSaveInfoRequestParams() { List<String> params = new ArrayList<String>(); params.add(ParamsUtil.getReqParam("FG04", 4)); params.add(ParamsUtil.getReqParam("MC_CENTERM", 16)); params.add(ParamsUtil.getReqParam(MetaUtil.readMeta(this, Constans.APP_CHANNEL), 20)); params.add(ParamsUtil.getReqParam(SCApp.getInstance().getUser().userId, 64)); String CommunityId = mPersonalInfo.localCommunity == null ? "" : mPersonalInfo.localCommunity; params.add(ParamsUtil.getReqParam(CommunityId, 64)); //新增社区id params.add(ParamsUtil.getReqParam(mail.getText() +"", 64)); params.add(ParamsUtil.getReqParam(weixinAccount.getText() +"", 32)); params.add(ParamsUtil.getReqParam(birthday.getText() +"", 8)); String strSex = "2"; if (sex.getText().equals("男")) { strSex = "1"; } params.add(ParamsUtil.getReqParam(strSex, 64)); params.add(ParamsUtil.getReqParam(work.getText() +"", 2)); params.add(ParamsUtil.getReqParam(hobby.getText() +"", 64)); params.add(ParamsUtil.getReqParam(accountName.getText() +"", 32)); return params; } @Override public void onReload() { requestBase(getBaseRequestParams(), this, this); } @Override public void onErrorResponse(VolleyError error) { showLoadError(this); ToastHelper.showToastInBottom(getApplicationContext(), VolleyErrorHelper.getErrorMessage(this, error)); } public void setCommunity(View view) { Intent intent = new Intent(PersonalInfoActivity.this, SetCommunityActivity.class); startActivityForResult(intent, Constans.SET_COMMUNITY_REQUEST_CODE); } public void changeUserName(View view) { Intent intent = new Intent(PersonalInfoActivity.this, PersonalEditActivity.class); intent.putExtra("title", "修改用户名"); intent.putExtra("keyword", "hobby"); intent.putExtra("jsonContent", new Gson().toJson(mPersonalInfo).toString()); startActivityForResult(intent, Constans.SET_COMMUNITY_REQUEST_CODE); } public void changeWork(View view) { Intent intent = new Intent(PersonalInfoActivity.this, PersonalEditActivity.class); intent.putExtra("title", "修改职业"); intent.putExtra("keyword", "work"); intent.putExtra("jsonContent", new Gson().toJson(mPersonalInfo).toString()); startActivityForResult(intent, Constans.SET_COMMUNITY_REQUEST_CODE); } public void changeMail(View view) { Intent intent = new Intent(PersonalInfoActivity.this, PersonalEditActivity.class); intent.putExtra("title", "修改邮箱地址"); intent.putExtra("keyword", "mail"); intent.putExtra("jsonContent", new Gson().toJson(mPersonalInfo).toString()); startActivityForResult(intent, Constans.SET_COMMUNITY_REQUEST_CODE); } public void changeWeixin(View view) { Intent intent = new Intent(PersonalInfoActivity.this, PersonalEditActivity.class); intent.putExtra("title", "修改微信账号"); intent.putExtra("keyword", "weixinAccount"); intent.putExtra("jsonContent", new Gson().toJson(mPersonalInfo).toString()); startActivityForResult(intent, Constans.SET_COMMUNITY_REQUEST_CODE); } public void changeHobby(View view) { Intent intent = new Intent(PersonalInfoActivity.this, PersonalEditActivity.class); intent.putExtra("title", "修改兴趣爱好"); intent.putExtra("keyword", "hobby"); intent.putExtra("jsonContent", new Gson().toJson(mPersonalInfo).toString()); startActivityForResult(intent, Constans.SET_COMMUNITY_REQUEST_CODE); } public void changeSex(View view) { int defaultPostion =Integer.parseInt(mPersonalInfo.sex) -1; defaultPostion = defaultPostion >= 0 ? defaultPostion : 0 ; defaultPostion = defaultPostion <= 1 ? defaultPostion : 1 ; new AlertDialog.Builder(this) .setTitle("请选择性别") .setIcon(android.R.drawable.ic_dialog_info) .setSingleChoiceItems(new String[] {"男","女"}, (defaultPostion), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { mPersonalInfo.sex = (which + 1) + ""; if ("1".equals(mPersonalInfo.sex)) { sex.setText("男"); } else if ("2".equals(mPersonalInfo.sex)) { sex.setText("女"); } dialog.dismiss(); } } ) .setNegativeButton("取消", null) .show(); } public void changeBirthday(View view) { final Calendar c = Calendar.getInstance(); int anio = c.get(Calendar.YEAR); int mes = c.get(Calendar.MONTH); int dia = c.get(Calendar.DAY_OF_MONTH); DatePickerDialog dpd = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { mPersonalInfo.birthday = year + "" + monthOfYear + "" + dayOfMonth; birthday.setText(mPersonalInfo.birthday); } }, anio, mes, dia); dpd.show(); } @Override protected void onActivityResult(int arg0, int arg1, Intent intent) { // TODO Auto-generated method stub super.onActivityResult(arg0, arg1, intent); if (intent != null) { String jsonContent = intent.getStringExtra("jsonContent"); mPersonalInfo = new Gson().fromJson(jsonContent, PersonalInfo.class); User user = SCApp.getInstance().getUser(); user.communityName = mPersonalInfo.communityName; user.communityId = mPersonalInfo.localCommunity; UpdateView(mPersonalInfo); } } @Override public void onResponse(PersonalInfo response) { if(response.respCode.equals(RespCode.SUCCESS)) { mPersonalInfo = response; showContent(); UpdateView(response); } else { showLoadError(this); ToastHelper.showToastInBottom(this, response.respCodeMsg); } } private void UpdateView(PersonalInfo response) { phoneNum.setText(response.phoneNum); localCommunity.setText(SCApp.getInstance().getUser().communityName); accountName.setText(response.accountName); if (!"".equals(response.birthday)) { // SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd"); // birthday.setText(formatter.format(new Date(response.birthday))); birthday.setText(response.birthday); } if ("1".equals(response.sex)) { sex.setText("男"); } else if ("2".equals(response.sex)) { sex.setText("女"); } mail = (TextView) findViewById(R.id.mail); mail.setText(response.mail); weixinAccount = (TextView) findViewById(R.id.weixinAccount); weixinAccount.setText(response.weixinAccount); work = (TextView) findViewById(R.id.work); hobby = (TextView) findViewById(R.id.hobby); hobby.setText(response.hobby); userStatue = (TextView) findViewById(R.id.userStatue); if ("01".equals(SCApp.getInstance().getUser().auth)) { userStatue.setText("已提交认证"); } else if ("02".equals(SCApp.getInstance().getUser().auth)) { userStatue.setText("住户已认证"); } else if ("03".equals(SCApp.getInstance().getUser().auth)){ userStatue.setText("认证失败"); } else { userStatue.setText("住户未认证"); } } }