package com.partynetwork.iparty.site; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.view.View; import android.widget.TextView; import com.openfire.manager.XmppConnection; import com.partynetwork.dataprovider.DataProvider.IJsonResultListener; import com.partynetwork.dataprovider.json.NetworkEntity; import com.partynetwork.dataprovider.json.struct.FileRequest; import com.partynetwork.dataprovider.json.struct.FileResponse; import com.partynetwork.dataprovider.json.struct.Personal_setUserInfoByKeyRequest; import com.partynetwork.dataprovider.json.struct.Personal_setUserInfoByKeyResponse; import com.partynetwork.dataprovider.util.IPartyUtil; import com.partynetwork.dataprovider.util.StringUtil; import com.partynetwork.dataprovider.util.Util; import com.partynetwork.iparty.R; import com.partynetwork.iparty.app.AppContext; import com.partynetwork.iparty.app.AppManager; import com.partynetwork.iparty.app.bean.BLogin; import com.partynetwork.iparty.app.common.BitmapManager; import com.partynetwork.iparty.app.common.UIHelper; import com.partynetwork.iparty.app.ui.BaseActivity; import com.partynetwork.iparty.login.ProvinceActivity; import com.partynetwork.myview.myimageview.CircularImage; import com.partynetwork.myview.myimageview.ImagePicker; import com.partynetwork.myview.wheelview.ArrayWheelAdapter; import com.partynetwork.myview.wheelview.NumericWheelAdapter; import com.partynetwork.myview.wheelview.WheelAdapter; import com.partynetwork.myview.wheelview.WheelPicker; import com.partynetwork.myview.wheelview.WheelView; import com.partynetwork.myview.wheelview.WheelPicker.WheelListener; import com.amap.api.mapcore.r; import com.baidu.mobstat.StatService; import com.lidroid.xutils.ViewUtils; import com.lidroid.xutils.view.annotation.ViewInject; import com.lidroid.xutils.view.annotation.event.OnClick; import eu.inmite.android.lib.dialogs.ISimpleDialogListener; import eu.inmite.android.lib.dialogs.SimpleDialogFragment; public class SiteUserInfoActivity extends BaseActivity implements IJsonResultListener { public static final int NAME_CODE = 10; public static final int CITY_CODE = 20; public static final int STATE_CODE = 30; /** * 头像 */ private CircularImage head; /** * 姓名 */ private TextView name; /** * 性别 */ private TextView sex; /** * 状态 */ private TextView state; /** * 年龄 */ private TextView age; /** * 城市 */ private TextView city; /** 当前登陆用户 */ private BLogin user; /** * 照片选择对象 */ private ImagePicker imagePicker; /** 滚轮弹窗 */ private WheelPicker agePicker; private WheelPicker sexPicker; private BitmapManager bitmapManager; private AppContext appContext; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.site_info); setBehindContentView(R.layout.site_info); ViewUtils.inject(this); bitmapManager = new BitmapManager(); appContext=(AppContext) getApplication(); initView(); init(); } private void initView() { head=(CircularImage) findViewById(R.id.head_ci); name=(TextView) findViewById(R.id.name_tv); sex=(TextView) findViewById(R.id.sex_tv); state=(TextView) findViewById(R.id.state_tv); age=(TextView) findViewById(R.id.age_tv); city=(TextView) findViewById(R.id.city_tv); name=(TextView) findViewById(R.id.name_tv); } /** * 初始化 */ private void init() { initData(); imagePicker = new ImagePicker(this, true); agePicker = new WheelPicker(this,1, new NumericWheelAdapter(18, 100), ageWheelListener); sexPicker=new WheelPicker(this,1, new ArrayWheelAdapter<String>( new String[] { "男", "女", "其他" }), sexWheelListener); } /** * 初始化数据 */ private void initData() { AppContext context = (AppContext) this.getApplication(); user = context.getLoginInfo(); // 头像 bitmapManager.loadBitmap(user.getFace(), head); // 姓名 StringUtil.setText(name, user.getName()); // 性别 IPartyUtil.getInstance().addSexImg(this, this.sex, user.getSex()); // 状态 StringUtil.setText(state, user.getState()); // 年龄 this.age.setText(user.getAge() + ""); // 城市 StringUtil.setText(city, user.getLocation()); } /** * 事件监听 * * @param view */ @OnClick({ R.id.menu_head_left, R.id.user_qr_rl, R.id.head_rl, R.id.name_rl, R.id.sex_rl, R.id.state_rl, R.id.age_rl, R.id.city_rl, R.id.account_rl ,R.id.exit_info }) public void onClick(View view) { switch (view.getId()) { case R.id.menu_head_left: // 关闭 finish(); break; case R.id.user_qr_rl: // 二维码 Intent intent = new Intent(this, SiteUserInfoQRActivity.class); startActivity(intent); break; case R.id.head_rl: // 头像 imagePicker.show(view); break; case R.id.name_rl: // 姓名 Intent intent2 = new Intent(this, SiteUserInfoNameActivity.class); startActivityForResult(intent2, NAME_CODE); break; case R.id.sex_rl: // 性别 sexPicker.showAt(view); break; case R.id.state_rl: // 状态 Intent intent4 = new Intent(this, SiteUserInfoStateActivity.class); startActivityForResult(intent4, STATE_CODE); break; case R.id.age_rl: // 年龄 agePicker.showAt(view); break; case R.id.city_rl: // 城市 Intent intent3 = new Intent(this, ProvinceActivity.class); startActivityForResult(intent3, CITY_CODE); // 设置界面出现动画 overridePendingTransition(R.anim.animation_enterfromright, R.anim.animation_fadefromleft); break; case R.id.account_rl: // 账户 Intent accountIntent = new Intent(this, SiteUserInfoAccountActivity.class); startActivity(accountIntent); break; case R.id.exit_info: // 退出登陆 SimpleDialogFragment .createBuilder(this.getBaseContext(), this.getSupportFragmentManager()) .setTitle("退出登陆").setMessage("是否确认退出登陆?") .setPositiveButtonText("取消").setNegativeButtonText("确定") .setRequestCode(42).setTag("custom-tag").show(); break; default: break; } } /** * 覆盖方法 * * @see android.app.Activity#onActivityResult(int, int, * android.content.Intent) */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (data == null) { return; } switch (requestCode) { case NAME_CODE: // 用户名 String name = data .getStringExtra(SiteUserInfoNameActivity.RESULT_NAME); this.name.setText(name); appContext.setProperty("user.name", name); break; case STATE_CODE: // 用户状态 String state = data .getStringExtra(SiteUserInfoStateActivity.RESULT_STATE); this.state.setText(state); appContext.setProperty("user.state", state); break; case CITY_CODE: // 城市 int cityId = data.getIntExtra(ProvinceActivity.CITY_ID, ProvinceActivity.DEFAULT_CITY_ID); Personal_setUserInfoByKeyRequest request = new Personal_setUserInfoByKeyRequest(); request.setUserId(user.getUid()); request.setKey("userCity"); request.setValue(cityId + ""); AppContext.getInstance().getmDataProvider() .getJsonFromNetwork(request, this); break; case ImagePicker.SELECT_CAMER: case ImagePicker.SELECT_PICTURE: case ImagePicker.SELECT_CAMER_CLIPPING: String file = imagePicker.onActivityResult(requestCode, resultCode, data); if (file != null && !file.equals("")) { FileRequest fileRequest = new FileRequest(); fileRequest.setFilePath(new String[] { file }); AppContext.getInstance().getmDataProvider() .getJsonFromNetwork(fileRequest, this); } break; default: break; } } public void onNetworkRequest() { // TODO 自动生成的方法存根 } public void onResultSuccess(NetworkEntity entity) { if (entity.getRequest().getAction() .equals(new FileRequest().getAction())) { FileResponse fResponse = (FileResponse) entity.getResponse(); String[] strArray = fResponse.getDetails(); if (strArray != null && strArray.length > 0) { Personal_setUserInfoByKeyRequest request = new Personal_setUserInfoByKeyRequest(); request.setUserId(user.getUid()); request.setKey("userHeadUrl"); request.setValue(strArray[0]); AppContext.getInstance().getmDataProvider() .getJsonFromNetwork(request, this); } } if (entity.getRequest().getAction() .equals(new Personal_setUserInfoByKeyRequest().getAction())) { Personal_setUserInfoByKeyResponse sResponse = (Personal_setUserInfoByKeyResponse) entity .getResponse(); AppContext ac = (AppContext) getApplication(); ac.saveUserInfo(sResponse.getDetails()); initData(); } } public void onResultFail(String result) { Util.showMsg(this, result); } /** * 性别监听对象 */ private WheelListener sexWheelListener = new WheelListener() { public WheelAdapter onChange(WheelView wheel, int oldValue, int newValue) { return null; } public void confirm(String str) { int sex = 0; if (str.equals("男")) { sex = 0; } else if (str.equals("女")) { sex = 1; } else { sex = 2; } // 发送修改性别请求 Personal_setUserInfoByKeyRequest request = new Personal_setUserInfoByKeyRequest(); request.setUserId(user.getUid()); request.setKey("userSex"); request.setValue(sex + ""); AppContext.getInstance().getmDataProvider() .getJsonFromNetwork(request, SiteUserInfoActivity.this); } public void cancel() { } }; /** * 年龄监听对象 */ private WheelListener ageWheelListener = new WheelListener() { public WheelAdapter onChange(WheelView wheel, int oldValue, int newValue) { return null; } public void confirm(String str) { // 发送用户年龄请求 Personal_setUserInfoByKeyRequest request = new Personal_setUserInfoByKeyRequest(); request.setUserId(user.getUid()); request.setKey("userAge"); request.setValue(str); AppContext.getInstance().getmDataProvider() .getJsonFromNetwork(request, SiteUserInfoActivity.this); } public void cancel() { } }; @Override protected void onResume() { StatService.onResume(this); super.onResume(); } @Override protected void onPause() { StatService.onPause(this); super.onPause(); } }