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();
}
}