|
|
@@ -1,36 +1,79 @@
|
|
|
package com.xzjmyk.pm.activity.ui.erp.activity;
|
|
|
|
|
|
+import android.app.Activity;
|
|
|
+import android.app.AlertDialog;
|
|
|
+import android.app.DatePickerDialog;
|
|
|
+import android.app.ProgressDialog;
|
|
|
+import android.content.Context;
|
|
|
+import android.content.DialogInterface;
|
|
|
import android.content.Intent;
|
|
|
+import android.net.Uri;
|
|
|
import android.os.Bundle;
|
|
|
-import android.os.Handler;
|
|
|
-import android.os.Message;
|
|
|
+import android.text.TextUtils;
|
|
|
+import android.util.Log;
|
|
|
+import android.view.Gravity;
|
|
|
import android.view.View;
|
|
|
+import android.view.WindowManager;
|
|
|
+import android.widget.DatePicker;
|
|
|
import android.widget.ImageView;
|
|
|
+import android.widget.LinearLayout;
|
|
|
+import android.widget.PopupWindow;
|
|
|
+import android.widget.RelativeLayout;
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.android.volley.Response;
|
|
|
+import com.android.volley.VolleyError;
|
|
|
import com.lidroid.xutils.ViewUtils;
|
|
|
import com.lidroid.xutils.view.annotation.ViewInject;
|
|
|
+import com.loopj.android.http.AsyncHttpClient;
|
|
|
+import com.loopj.android.http.AsyncHttpResponseHandler;
|
|
|
+import com.loopj.android.http.RequestParams;
|
|
|
+import com.nostra13.universalimageloader.core.ImageLoader;
|
|
|
import com.xzjmyk.pm.activity.AppConstant;
|
|
|
import com.xzjmyk.pm.activity.MyApplication;
|
|
|
import com.xzjmyk.pm.activity.R;
|
|
|
import com.xzjmyk.pm.activity.bean.Area;
|
|
|
import com.xzjmyk.pm.activity.bean.User;
|
|
|
+import com.xzjmyk.pm.activity.db.dao.UserDao;
|
|
|
import com.xzjmyk.pm.activity.helper.AvatarHelper;
|
|
|
import com.xzjmyk.pm.activity.helper.LoginHelper;
|
|
|
import com.xzjmyk.pm.activity.ui.base.BaseActivity;
|
|
|
import com.xzjmyk.pm.activity.ui.cardcast.CardcastActivity;
|
|
|
import com.xzjmyk.pm.activity.ui.circle.BusinessCircleActivity;
|
|
|
+import com.xzjmyk.pm.activity.ui.erp.activity.me.UpdateSexActivity;
|
|
|
+import com.xzjmyk.pm.activity.ui.erp.activity.me.UpdateSingleTextActivity;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.entity.EmployeesEntity;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
|
|
|
import com.xzjmyk.pm.activity.ui.me.BasicInfoEditActivity;
|
|
|
import com.xzjmyk.pm.activity.ui.me.LocalVideoActivity;
|
|
|
+import com.xzjmyk.pm.activity.ui.tool.SelectAreaActivity;
|
|
|
+import com.xzjmyk.pm.activity.util.CameraUtil;
|
|
|
+import com.xzjmyk.pm.activity.util.DisplayUtil;
|
|
|
+import com.xzjmyk.pm.activity.util.ProgressDialogUtil;
|
|
|
+import com.xzjmyk.pm.activity.util.StringUtils;
|
|
|
import com.xzjmyk.pm.activity.util.TimeUtils;
|
|
|
+import com.xzjmyk.pm.activity.util.ToastUtil;
|
|
|
+import com.xzjmyk.pm.activity.view.crouton.Crouton;
|
|
|
+import com.xzjmyk.pm.activity.view.crouton.LifecycleCallback;
|
|
|
+import com.xzjmyk.pm.activity.volley.ObjectResult;
|
|
|
+import com.xzjmyk.pm.activity.volley.Result;
|
|
|
+import com.xzjmyk.pm.activity.volley.StringJsonObjectRequest;
|
|
|
+
|
|
|
+import org.apache.http.Header;
|
|
|
|
|
|
import java.io.File;
|
|
|
+import java.io.FileNotFoundException;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.GregorianCalendar;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
|
|
|
+/**
|
|
|
+ * 个人资料页面
|
|
|
+ */
|
|
|
public class BaseInfoActivity extends BaseActivity implements View.OnClickListener {
|
|
|
|
|
|
@ViewInject(R.id.me_heard_tv)
|
|
|
@@ -51,6 +94,16 @@ public class BaseInfoActivity extends BaseActivity implements View.OnClickListen
|
|
|
private TextView tv_depart;
|
|
|
@ViewInject(R.id.tv_position_value)
|
|
|
private TextView tv_position;
|
|
|
+ @ViewInject(R.id.me_heard)
|
|
|
+ private RelativeLayout rl_me_heard;
|
|
|
+ @ViewInject(R.id.me_nickname)
|
|
|
+ private RelativeLayout rl_me_nickname;
|
|
|
+ @ViewInject(R.id.me_sex)
|
|
|
+ private RelativeLayout rl_me_sex;
|
|
|
+ @ViewInject(R.id.me_birthday)
|
|
|
+ private RelativeLayout rl_me_birthday;
|
|
|
+ @ViewInject(R.id.me_address)
|
|
|
+ private RelativeLayout rl_me_address;
|
|
|
|
|
|
private User mUser;
|
|
|
// Temp
|
|
|
@@ -58,25 +111,15 @@ public class BaseInfoActivity extends BaseActivity implements View.OnClickListen
|
|
|
// 选择头像的数据
|
|
|
private File mCurrentFile;
|
|
|
private boolean isError = false;
|
|
|
-
|
|
|
+
|
|
|
private final int update_brithday=0;
|
|
|
private final int update_address=1;
|
|
|
-
|
|
|
-
|
|
|
- private Handler mHandler=new Handler(){
|
|
|
- @Override
|
|
|
- public void handleMessage(Message msg) {
|
|
|
- switch (msg.what){
|
|
|
- case update_brithday:
|
|
|
-
|
|
|
- break;
|
|
|
- case update_address:
|
|
|
-
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
+
|
|
|
+ private PopupWindow mHeadPopupWindow;
|
|
|
+ private String mNickname,mSex;
|
|
|
+
|
|
|
+ private ProgressDialog mProgressDialog;
|
|
|
+ public static final String UPHEAD = "UPHEAD";
|
|
|
|
|
|
@Override
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
@@ -88,20 +131,30 @@ public class BaseInfoActivity extends BaseActivity implements View.OnClickListen
|
|
|
findViewById(R.id.my_space_rl).setOnClickListener(this);
|
|
|
findViewById(R.id.local_video_rl).setOnClickListener(this);
|
|
|
ViewUtils.inject(this);
|
|
|
-
|
|
|
+
|
|
|
initView();
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
private void initView(){
|
|
|
+ mProgressDialog = ProgressDialogUtil.init(mContext, null, getString(R.string.please_wait));
|
|
|
mUser = MyApplication.getInstance().mLoginUser;
|
|
|
if (!LoginHelper.isUserValidation(mUser)) {
|
|
|
isError = true;
|
|
|
return;
|
|
|
}
|
|
|
+ initEvent();
|
|
|
initData();
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ private void initEvent() {
|
|
|
+ rl_me_heard.setOnClickListener(this);
|
|
|
+ rl_me_nickname.setOnClickListener(this);
|
|
|
+ rl_me_sex.setOnClickListener(this);
|
|
|
+ rl_me_birthday.setOnClickListener(this);
|
|
|
+ rl_me_address.setOnClickListener(this);
|
|
|
+ }
|
|
|
+
|
|
|
public void initData(){
|
|
|
// clone一份临时数据,用来存数变化的值,返回的时候对比有无变化
|
|
|
try {
|
|
|
@@ -111,10 +164,11 @@ public class BaseInfoActivity extends BaseActivity implements View.OnClickListen
|
|
|
}
|
|
|
if (mTempData.getSex() == 1) {
|
|
|
// rbBoy.setChecked(true);
|
|
|
- tv_sex.setText("男");
|
|
|
-
|
|
|
+ tv_sex.setText("男");
|
|
|
+ mSex = "男";
|
|
|
} else {
|
|
|
tv_sex.setText("女");
|
|
|
+ mSex = "女";
|
|
|
// rbGrid.setChecked(true);
|
|
|
}
|
|
|
tv_birthday.setText(TimeUtils.sk_time_s_long_2_str(mTempData.getBirthday()));
|
|
|
@@ -125,14 +179,14 @@ public class BaseInfoActivity extends BaseActivity implements View.OnClickListen
|
|
|
List<EmployeesEntity> entities= dbManager.select_getEmployee(new String[]{userId, whichsys}, "em_imid=? and whichsys=?");
|
|
|
if (ListUtils.isEmpty(entities)){
|
|
|
tv_nickname.setText(mTempData.getNickName());
|
|
|
-
|
|
|
+ mNickname = mTempData.getNickName();
|
|
|
}else{
|
|
|
tv_nickname.setText(entities.get(0).getEM_NAME());
|
|
|
tv_name.setText(entities.get(0).getEM_NAME());
|
|
|
tv_tel.setText(mTempData.getTelephone());
|
|
|
tv_depart.setText(entities.get(0).getEM_DEFAULTORNAME());
|
|
|
tv_position.setText(entities.get(0).getEM_POSITION());
|
|
|
-
|
|
|
+ mNickname = entities.get(0).getEM_NAME();
|
|
|
}
|
|
|
// mNameEdit.setText(mTempData.getNickName());
|
|
|
tv_address.setText(Area.getProvinceCityString(mTempData.getProvinceId(), mTempData.getCityId()));
|
|
|
@@ -157,7 +211,424 @@ public class BaseInfoActivity extends BaseActivity implements View.OnClickListen
|
|
|
case R.id.local_video_rl:// 本地视频
|
|
|
startActivity(new Intent(this, LocalVideoActivity.class));
|
|
|
break;
|
|
|
+ case R.id.me_heard://切换头像
|
|
|
+ WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
|
|
|
+ View headSelectView = View.inflate(BaseInfoActivity.this,R.layout.layout_select_head,null);
|
|
|
+
|
|
|
+ mHeadPopupWindow = new PopupWindow(headSelectView,
|
|
|
+ LinearLayout.LayoutParams.MATCH_PARENT,
|
|
|
+ LinearLayout.LayoutParams.WRAP_CONTENT);
|
|
|
+ mHeadPopupWindow.setAnimationStyle(R.style.Animation_CustomPopup);
|
|
|
+ mHeadPopupWindow.setFocusable(true);
|
|
|
+ mHeadPopupWindow.setOutsideTouchable(true);
|
|
|
+ DisplayUtil.backgroundAlpha(this, 0.5f);
|
|
|
+ mHeadPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
|
|
|
+ @Override
|
|
|
+ public void onDismiss() {
|
|
|
+ closePopupWindow();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ mHeadPopupWindow.showAtLocation(View.inflate(this, R.layout.activity_base_info, null), Gravity.BOTTOM, 0, 0);
|
|
|
+ TextView takePicTv = (TextView) headSelectView.findViewById(R.id.head_take_picture);
|
|
|
+ TextView selectPicTv = (TextView) headSelectView.findViewById(R.id.head_select_photos);
|
|
|
+ TextView cancelTv = (TextView) headSelectView.findViewById(R.id.head_cancel);
|
|
|
+
|
|
|
+ takePicTv.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ takePhoto();
|
|
|
+ closePopupWindow();
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ selectPicTv.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ selectPhoto();
|
|
|
+ closePopupWindow();
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ cancelTv.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ closePopupWindow();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ case R.id.me_nickname://修改昵称
|
|
|
+ intent = new Intent(BaseInfoActivity.this, UpdateSingleTextActivity.class);
|
|
|
+ intent.putExtra("nickname",tv_nickname.getText().toString().trim());
|
|
|
+ startActivityForResult(intent, UPDATE_NICKNAME);
|
|
|
+ break;
|
|
|
+ case R.id.me_sex://切换性别
|
|
|
+ intent = new Intent(BaseInfoActivity.this, UpdateSexActivity.class);
|
|
|
+ intent.putExtra("sex",tv_sex.getText().toString().trim());
|
|
|
+ startActivityForResult(intent,UPDATE_SEX);
|
|
|
+ break;
|
|
|
+ case R.id.me_birthday://修改生日
|
|
|
+ showSelectBirthdayDialog();
|
|
|
+ break;
|
|
|
+ case R.id.me_address://修改地区
|
|
|
+ intent = new Intent(BaseInfoActivity.this, SelectAreaActivity.class);
|
|
|
+ intent.putExtra(SelectAreaActivity.EXTRA_AREA_TYPE, Area.AREA_TYPE_PROVINCE);
|
|
|
+ intent.putExtra(SelectAreaActivity.EXTRA_AREA_PARENT_ID, Area.AREA_DATA_CHINA_ID);// 直接选择中国,
|
|
|
+ intent.putExtra(SelectAreaActivity.EXTRA_AREA_DEEP, Area.AREA_TYPE_COUNTY);
|
|
|
+ startActivityForResult(intent, SELECT_ADDRESS);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void closePopupWindow(){
|
|
|
+ if (mHeadPopupWindow != null){
|
|
|
+ mHeadPopupWindow.dismiss();
|
|
|
+ mHeadPopupWindow = null;
|
|
|
+ DisplayUtil.backgroundAlpha(this,1f);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @SuppressWarnings("deprecation")
|
|
|
+ private void showSelectBirthdayDialog() {
|
|
|
+ Date date = new Date(mTempData.getBirthday() * 1000);
|
|
|
+ DatePickerDialog dialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
|
|
|
+ @Override
|
|
|
+ public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
|
|
|
+ GregorianCalendar calendar = new GregorianCalendar(year, monthOfYear, dayOfMonth);
|
|
|
+ mTempData.setBirthday(TimeUtils.getSpecialBeginTime(tv_birthday, calendar.getTime().getTime() / 1000));
|
|
|
+ long currentTime = System.currentTimeMillis() / 1000;
|
|
|
+ long birthdayTime = calendar.getTime().getTime() / 1000;
|
|
|
+ if (birthdayTime > currentTime) {
|
|
|
+ ToastUtil.showToast(mContext, "亲!您的出生日期已经超过现在了哦!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, date.getYear() + 1900, date.getMonth(), date.getDate());
|
|
|
+ dialog.show();
|
|
|
+ }
|
|
|
+
|
|
|
+ private static final int REQUEST_CODE_CAPTURE_CROP_PHOTO = 1;
|
|
|
+ private static final int REQUEST_CODE_PICK_CROP_PHOTO = 2;
|
|
|
+ private static final int REQUEST_CODE_CROP_PHOTO = 3;
|
|
|
+ private static final int SELECT_ADDRESS = 4;
|
|
|
+ private static final int UPDATE_NICKNAME = 5;
|
|
|
+ private static final int UPDATE_SEX = 6;
|
|
|
+ private Uri mNewPhotoUri;
|
|
|
+
|
|
|
+ private void takePhoto() {
|
|
|
+ mNewPhotoUri = CameraUtil.getOutputMediaFileUri(this, CameraUtil.MEDIA_TYPE_IMAGE);
|
|
|
+ CameraUtil.captureImage(this, mNewPhotoUri, REQUEST_CODE_CAPTURE_CROP_PHOTO);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private void selectPhoto() {
|
|
|
+ CameraUtil.pickImageSimple(this, REQUEST_CODE_PICK_CROP_PHOTO);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
|
+ if (requestCode == REQUEST_CODE_CAPTURE_CROP_PHOTO) {// 拍照返回再去裁减
|
|
|
+ if (resultCode == Activity.RESULT_OK) {
|
|
|
+ if (mNewPhotoUri != null) {
|
|
|
+ Uri o = mNewPhotoUri;
|
|
|
+ mNewPhotoUri = CameraUtil.getOutputMediaFileUri(this, CameraUtil.MEDIA_TYPE_IMAGE);
|
|
|
+ mCurrentFile = new File(mNewPhotoUri.getPath());
|
|
|
+ CameraUtil.cropImage(this, o, mNewPhotoUri, REQUEST_CODE_CROP_PHOTO, 1, 1, 300, 300);
|
|
|
+ } else {
|
|
|
+ ToastUtil.showToast(this, R.string.c_photo_album_failed);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (requestCode == REQUEST_CODE_PICK_CROP_PHOTO) {// 选择一张图片,然后立即调用裁减
|
|
|
+ if (resultCode == Activity.RESULT_OK) {
|
|
|
+ if (data != null && data.getData() != null) {
|
|
|
+ String path = CameraUtil.getImagePathFromUri(this, data.getData());
|
|
|
+ Uri o = Uri.fromFile(new File(path));
|
|
|
+ mNewPhotoUri = CameraUtil.getOutputMediaFileUri(this, CameraUtil.MEDIA_TYPE_IMAGE);
|
|
|
+ mCurrentFile = new File(mNewPhotoUri.getPath());
|
|
|
+ CameraUtil.cropImage(this, o, mNewPhotoUri, REQUEST_CODE_CROP_PHOTO, 1, 1, 300, 300);
|
|
|
+ } else {
|
|
|
+ ToastUtil.showToast(this, R.string.c_photo_album_failed);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (requestCode == REQUEST_CODE_CROP_PHOTO) {
|
|
|
+ if (resultCode == Activity.RESULT_OK) {
|
|
|
+ if (mNewPhotoUri != null) {
|
|
|
+ mCurrentFile = new File(mNewPhotoUri.getPath());
|
|
|
+ ImageLoader.getInstance().displayImage(mNewPhotoUri.toString(), iv_headImage);
|
|
|
+ } else {
|
|
|
+ ToastUtil.showToast(this, R.string.c_crop_failed);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (requestCode == SELECT_ADDRESS) {// 选择城市
|
|
|
+ if (resultCode == RESULT_OK && data != null) {
|
|
|
+ int countryId = data.getIntExtra(SelectAreaActivity.EXTRA_COUNTRY_ID, 0);
|
|
|
+ int provinceId = data.getIntExtra(SelectAreaActivity.EXTRA_PROVINCE_ID, 0);
|
|
|
+ int cityId = data.getIntExtra(SelectAreaActivity.EXTRA_CITY_ID, 0);
|
|
|
+ int countyId = data.getIntExtra(SelectAreaActivity.EXTRA_COUNTY_ID, 0);
|
|
|
+
|
|
|
+ // String country_name = data.getStringExtra(Constant.EXTRA_COUNTRY_NAME);
|
|
|
+ String province_name = data.getStringExtra(SelectAreaActivity.EXTRA_PROVINCE_NAME);
|
|
|
+ String city_name = data.getStringExtra(SelectAreaActivity.EXTRA_CITY_NAME);
|
|
|
+ tv_address.setText(province_name + "-" + city_name);
|
|
|
+
|
|
|
+ mTempData.setCountryId(countryId);
|
|
|
+ mTempData.setProvinceId(provinceId);
|
|
|
+ mTempData.setCityId(cityId);
|
|
|
+ mTempData.setAreaId(countyId);
|
|
|
+ }
|
|
|
+ } else if (requestCode == UPDATE_NICKNAME && data != null){
|
|
|
+ mNickname = data.getStringExtra("newnickname");
|
|
|
+ if (mNickname != null){
|
|
|
+ tv_nickname.setText(mNickname);
|
|
|
+// mTempData.setNickName(mNickname);
|
|
|
+ }
|
|
|
+ } else if (requestCode == UPDATE_SEX && data != null){
|
|
|
+ mSex = data.getStringExtra("newsex");
|
|
|
+ if (mSex != null){
|
|
|
+ tv_sex.setText(mSex);
|
|
|
+ if (mSex.equals("男")){
|
|
|
+ mTempData.setSex(1);
|
|
|
+ }else if (mSex.equals("女")){
|
|
|
+ mTempData.setSex(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onDestroy() {
|
|
|
+ super.onDestroy();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onPause() {
|
|
|
+ super.onPause();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateData() {
|
|
|
+ HashMap<String, String> params = new HashMap<String, String>();
|
|
|
+ params.put("access_token", MyApplication.getInstance().mAccessToken);
|
|
|
+ if (!mUser.getNickName().equals(mTempData.getNickName())) {
|
|
|
+ params.put("nickname", mTempData.getNickName());
|
|
|
+
|
|
|
+ }
|
|
|
+ if (mUser.getSex() != mTempData.getSex()) {
|
|
|
+ params.put("sex", String.valueOf(mTempData.getSex()));
|
|
|
+ }
|
|
|
+ if (mUser.getBirthday() != mTempData.getBirthday()) {
|
|
|
+ params.put("birthday", String.valueOf(mTempData.getBirthday()));
|
|
|
+ }
|
|
|
+ if (mUser.getCountryId() != mTempData.getCountryId()) {
|
|
|
+ params.put("countryId", String.valueOf(mTempData.getCountryId()));
|
|
|
+ }
|
|
|
+ if (mUser.getProvinceId() != mTempData.getProvinceId()) {
|
|
|
+ params.put("provinceId", String.valueOf(mTempData.getProvinceId()));
|
|
|
}
|
|
|
+ if (mUser.getCityId() != mTempData.getCityId()) {
|
|
|
+ params.put("cityId", String.valueOf(mTempData.getCityId()));
|
|
|
+ }
|
|
|
+ if (mUser.getAreaId() != mTempData.getAreaId()) {
|
|
|
+ params.put("areaId", String.valueOf(mTempData.getAreaId()));
|
|
|
+ }
|
|
|
+ ProgressDialogUtil.show(mProgressDialog);
|
|
|
+ StringJsonObjectRequest<Void> request = new StringJsonObjectRequest<Void>(mConfig.USER_UPDATE, new Response.ErrorListener() {
|
|
|
+ @Override
|
|
|
+ public void onErrorResponse(VolleyError arg0) {
|
|
|
+ ProgressDialogUtil.dismiss(mProgressDialog);
|
|
|
+ ToastUtil.showErrorNet(BaseInfoActivity.this);
|
|
|
+ }
|
|
|
+ }, new StringJsonObjectRequest.Listener<Void>() {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onResponse(ObjectResult<Void> result) {
|
|
|
+ boolean success = Result.defaultParser(mContext, result, true);
|
|
|
+ if (success) {
|
|
|
+ saveData();
|
|
|
+
|
|
|
+ } else {
|
|
|
+ ProgressDialogUtil.dismiss(mProgressDialog);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, Void.class, params);
|
|
|
+ addDefaultRequest(request);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void saveData() {
|
|
|
+ if (!mUser.getNickName().equals(mTempData.getNickName())) {
|
|
|
+ Log.d("wang", "更新数据库" + mTempData.getNickName());
|
|
|
+ MyApplication.getInstance().mLoginUser.setNickName(mTempData.getNickName());
|
|
|
+ UserDao.getInstance().updateNickName(mTempData.getUserId(), mTempData.getNickName());// 更新数据库
|
|
|
+ }
|
|
|
+ if (mUser.getSex() != mTempData.getSex()) {
|
|
|
+ MyApplication.getInstance().mLoginUser.setSex(mTempData.getSex());
|
|
|
+ UserDao.getInstance().updateSex(mTempData.getUserId(), mTempData.getSex() + "");// 更新数据库
|
|
|
+ }
|
|
|
+ if (mUser.getBirthday() != mTempData.getBirthday()) {
|
|
|
+ MyApplication.getInstance().mLoginUser.setBirthday(mTempData.getBirthday());
|
|
|
+ UserDao.getInstance().updateBirthday(mTempData.getUserId(), mTempData.getBirthday() + "");// 更新数据库
|
|
|
+ }
|
|
|
+
|
|
|
+ if (mUser.getCountryId() != mTempData.getCountryId()) {
|
|
|
+ MyApplication.getInstance().mLoginUser.setCountryId(mTempData.getCountryId());
|
|
|
+ UserDao.getInstance().updateCountryId(mTempData.getUserId(), mTempData.getCountryId());
|
|
|
+ }
|
|
|
+ if (mUser.getProvinceId() != mTempData.getProvinceId()) {
|
|
|
+ MyApplication.getInstance().mLoginUser.setProvinceId(mTempData.getProvinceId());
|
|
|
+ UserDao.getInstance().updateProvinceId(mTempData.getUserId(), mTempData.getProvinceId());
|
|
|
+ }
|
|
|
+ if (mUser.getCityId() != mTempData.getCityId()) {
|
|
|
+ MyApplication.getInstance().mLoginUser.setCityId(mTempData.getCityId());
|
|
|
+ UserDao.getInstance().updateCityId(mTempData.getUserId(), mTempData.getCityId());
|
|
|
+ }
|
|
|
+ if (mUser.getAreaId() != mTempData.getAreaId()) {
|
|
|
+ MyApplication.getInstance().mLoginUser.setAreaId(mTempData.getAreaId());
|
|
|
+ UserDao.getInstance().updateAreaId(mTempData.getUserId(), mTempData.getAreaId());
|
|
|
+ }
|
|
|
+ if (mCurrentFile != null && mCurrentFile.exists()) {
|
|
|
+ uploadAvatar(mCurrentFile);
|
|
|
+ } else {
|
|
|
+ ProgressDialogUtil.dismiss(mProgressDialog);
|
|
|
+ Crouton crouton = Crouton.makeText(this, "保存成功", 0xffff4444, 1000);
|
|
|
+ crouton.setLifecycleCallback(new LifecycleCallback() {
|
|
|
+ @Override
|
|
|
+ public void onDisplayed() {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onRemoved() {
|
|
|
+ finish();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ crouton.show();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private void uploadAvatar(File file) {
|
|
|
+ if (!file.exists()) {// 文件不存在
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 显示正在上传的ProgressDialog
|
|
|
+ ProgressDialogUtil.show(mProgressDialog, getString(R.string.upload_avataring));
|
|
|
+ RequestParams params = new RequestParams();
|
|
|
+ final String loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
|
|
|
+ params.put("userId", loginUserId);
|
|
|
+ try {
|
|
|
+ params.put("file1", file);
|
|
|
+ } catch (FileNotFoundException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ AsyncHttpClient client = new AsyncHttpClient();
|
|
|
+
|
|
|
+ client.post(mConfig.AVATAR_UPLOAD_URL, params, new AsyncHttpResponseHandler() {
|
|
|
+ @Override
|
|
|
+ public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
|
|
|
+ boolean success = false;
|
|
|
+ if (arg0 == 200) {
|
|
|
+ Result result = null;
|
|
|
+ try {
|
|
|
+ result = JSON.parseObject(new String(arg2), Result.class);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ if (result != null && result.getResultCode() == Result.CODE_SUCCESS) {
|
|
|
+ success = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ ProgressDialogUtil.dismiss(mProgressDialog);
|
|
|
+ if (success) {
|
|
|
+ Intent intent = new Intent(UPHEAD);
|
|
|
+ intent.putExtra(UPHEAD, "updata");
|
|
|
+ BaseInfoActivity.this.sendBroadcast(intent);
|
|
|
+ AvatarHelper.getInstance().deleteAvatar(loginUserId);
|
|
|
+ ToastUtil.showToast(BaseInfoActivity.this, R.string.upload_avatar_success);
|
|
|
+
|
|
|
+ } else {
|
|
|
+ ToastUtil.showToast(BaseInfoActivity.this, R.string.upload_avatar_failed);
|
|
|
+ }
|
|
|
+
|
|
|
+ finish();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
|
|
|
+ ProgressDialogUtil.dismiss(mProgressDialog);
|
|
|
+ ToastUtil.showToast(BaseInfoActivity.this, R.string.upload_avatar_failed);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onBackPressed() {
|
|
|
+ doBack();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected boolean onHomeAsUp() {
|
|
|
+ doBack();
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void doBack() {
|
|
|
+ if (isError) {
|
|
|
+ super.onBackPressed();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ loadPageData();
|
|
|
+ Log.d("raomeng",mUser.toString());
|
|
|
+ Log.d("raomeng",mTempData.toString());
|
|
|
+
|
|
|
+ if ((mUser != null && !mUser.equals(mTempData)) || (mCurrentFile != null && mCurrentFile.exists())) {
|
|
|
+ showBackDialog();
|
|
|
+ } else {
|
|
|
+ finish();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ private void loadPageData() {
|
|
|
+ mTempData.setNickName(tv_nickname.getText().toString().trim());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private void showBackDialog() {
|
|
|
+ AlertDialog.Builder builder = new AlertDialog.Builder(this).setTitle(R.string.prompt_title).setMessage("确定保存当前内容吗?")
|
|
|
+ .setNegativeButton(getString(R.string.no), null).setPositiveButton(getString(R.string.yes), new DialogInterface.OnClickListener() {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onClick(DialogInterface dialog, int which) {
|
|
|
+ if (!MyApplication.getInstance().isNetworkActive()) {
|
|
|
+ ToastUtil.showToast(BaseInfoActivity.this, "网络异常,更新失败");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ loadPageData();
|
|
|
+ if (TextUtils.isEmpty(mTempData.getNickName())) {
|
|
|
+ tv_nickname.requestFocus();
|
|
|
+ tv_nickname.setError(StringUtils.editTextHtmlErrorTip(BaseInfoActivity.this, R.string.name_empty_error));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (mTempData.getCityId() <= 0) {
|
|
|
+ ToastUtil.showToast(mContext, R.string.live_address_empty_error);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (mUser != null && !mUser.equals(mTempData)) {// 数据改变了,提交数据
|
|
|
+ Log.d("wang", "数据改变了,提交数据");
|
|
|
+ updateData();
|
|
|
+ }
|
|
|
+ if (mCurrentFile != null && mCurrentFile.exists()) {
|
|
|
+ Log.d("wang", "uploadAvatar");
|
|
|
+ uploadAvatar(mCurrentFile);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ builder.create().show();
|
|
|
}
|
|
|
|
|
|
}
|