MyInfoActivity.java 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578
  1. package com.liaobo.im.ui.me;
  2. import android.app.Activity;
  3. import android.app.AlertDialog;
  4. import android.app.DatePickerDialog;
  5. import android.content.DialogInterface;
  6. import android.content.Intent;
  7. import android.graphics.drawable.Drawable;
  8. import android.net.Uri;
  9. import android.os.Bundle;
  10. import android.support.v7.widget.SwitchCompat;
  11. import android.text.Editable;
  12. import android.text.TextUtils;
  13. import android.text.TextWatcher;
  14. import android.util.Log;
  15. import android.view.View;
  16. import android.widget.DatePicker;
  17. import android.widget.EditText;
  18. import android.widget.ImageView;
  19. import android.widget.TextView;
  20. import com.alibaba.fastjson.JSON;
  21. import com.bumptech.glide.Glide;
  22. import com.bumptech.glide.load.resource.drawable.GlideDrawable;
  23. import com.bumptech.glide.request.animation.GlideAnimation;
  24. import com.bumptech.glide.request.target.SimpleTarget;
  25. import com.bumptech.glide.signature.StringSignature;
  26. import com.liaobo.im.AppConstant;
  27. import com.liaobo.im.MyApplication;
  28. import com.liaobo.im.R;
  29. import com.liaobo.im.bean.Area;
  30. import com.liaobo.im.bean.EventAvatarUploadSuccess;
  31. import com.liaobo.im.bean.User;
  32. import com.liaobo.im.db.InternationalizationHelper;
  33. import com.liaobo.im.db.dao.UserAvatarDao;
  34. import com.liaobo.im.db.dao.UserDao;
  35. import com.liaobo.im.helper.AvatarHelper;
  36. import com.liaobo.im.helper.DialogHelper;
  37. import com.liaobo.im.helper.LoginHelper;
  38. import com.liaobo.im.ui.base.BaseActivity;
  39. import com.liaobo.im.ui.other.QRcodeActivity;
  40. import com.liaobo.im.ui.tool.SelectAreaActivity;
  41. import com.liaobo.im.util.CameraUtil;
  42. import com.liaobo.im.util.Constants;
  43. import com.liaobo.im.util.PreferenceUtils;
  44. import com.liaobo.im.util.StringUtils;
  45. import com.liaobo.im.util.TimeUtils;
  46. import com.liaobo.im.util.ToastUtil;
  47. import com.liaobo.im.volley.Result;
  48. import com.liaobo.im.xuan.xuanhttplibrary.okhttp.HttpUtils;
  49. import com.liaobo.im.xuan.xuanhttplibrary.okhttp.callback.BaseCallback;
  50. import com.liaobo.im.xuan.xuanhttplibrary.okhttp.result.ObjectResult;
  51. import com.loopj.android.http.AsyncHttpClient;
  52. import com.loopj.android.http.AsyncHttpResponseHandler;
  53. import com.loopj.android.http.RequestParams;
  54. import com.makeramen.roundedimageview.RoundedImageView;
  55. import org.apache.http.Header;
  56. import java.io.File;
  57. import java.io.FileNotFoundException;
  58. import java.util.Date;
  59. import java.util.GregorianCalendar;
  60. import java.util.HashMap;
  61. import java.util.Map;
  62. import de.greenrobot.event.EventBus;
  63. import okhttp3.Call;
  64. public class MyInfoActivity extends BaseActivity implements View.OnClickListener {
  65. private RoundedImageView ivAvatar;
  66. private TextView tvNickname, tvCommunication, tvPhone, tvBirthday, tvLocation;
  67. // private ImageView iv_modify_nickname;
  68. private EditText edtDiyName;
  69. private SwitchCompat switchSex;
  70. private static final int REQUEST_CODE_CAPTURE_CROP_PHOTO = 1108;
  71. private static final int REQUEST_CODE_PICK_CROP_PHOTO = 1109;
  72. private static final int REQUEST_CODE_SELECT_LOCATION = 1110;
  73. public static final int REQUEST_CODE_SET_ACCOUNT = 1111;
  74. private static final int REQUEST_CODE_CROP_PHOTO = 1112;
  75. private User mUser;
  76. private Uri mNewPhotoUri;
  77. private User mTempUserData;
  78. private File mCurrentFile;
  79. @Override
  80. protected void onCreate(Bundle savedInstanceState) {
  81. super.onCreate(savedInstanceState);
  82. setContentView(R.layout.activity_my_info);
  83. getSupportActionBar().hide();
  84. findViewById(R.id.iv_title_left).setOnClickListener(view -> finish());
  85. TextView tvTitle = (TextView) findViewById(R.id.tv_title_center);
  86. tvTitle.setText(R.string.my_details);
  87. mUser = coreManager.getSelf();
  88. if (LoginHelper.isUserValidation(mUser)) {
  89. }
  90. tvNickname = findViewById(R.id.tv_nickname);
  91. tvCommunication = findViewById(R.id.tv_communication);
  92. tvPhone = findViewById(R.id.tv_phone);
  93. tvBirthday = findViewById(R.id.tv_birthday);
  94. tvLocation = findViewById(R.id.tv_location);
  95. ivAvatar = findViewById(R.id.avatar_img);
  96. switchSex = findViewById(R.id.switch_sex);
  97. ivAvatar.setOnClickListener(this);
  98. findViewById(R.id.rlt_birthday).setOnClickListener(this);
  99. findViewById(R.id.rlt_user_location).setOnClickListener(this);
  100. findViewById(R.id.rlt_qr_code).setOnClickListener(this);
  101. findViewById(R.id.iv_modify_nickname).setOnClickListener(this);
  102. findViewById(R.id.tv_update).setOnClickListener(this);
  103. edtDiyName = findViewById(R.id.edt_diy_name);
  104. edtDiyName.addTextChangedListener(new TextWatcher() {
  105. @Override
  106. public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
  107. }
  108. @Override
  109. public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
  110. }
  111. @Override
  112. public void afterTextChanged(Editable editable) {
  113. mTempUserData.setDescription(editable.toString());
  114. }
  115. });
  116. switchSex.setOnCheckedChangeListener((c,b)->{
  117. if (b){
  118. mTempUserData.setSex(1);
  119. }else {
  120. mTempUserData.setSex(0);
  121. }
  122. });
  123. updateUI();
  124. }
  125. public void initView(){
  126. }
  127. @Override
  128. public void onClick(View view) {
  129. switch (view.getId()){
  130. case R.id.avatar_img:
  131. showSelectAvatarDialog();
  132. break;
  133. case R.id.rlt_birthday:
  134. showSelectBirthdayDialog();
  135. break;
  136. case R.id.rlt_user_location:
  137. Intent intent = new Intent(this, SelectAreaActivity.class);
  138. intent.putExtra(SelectAreaActivity.EXTRA_AREA_TYPE, Area.AREA_TYPE_PROVINCE);
  139. intent.putExtra(SelectAreaActivity.EXTRA_AREA_PARENT_ID, Area.AREA_DATA_CHINA_ID);
  140. intent.putExtra(SelectAreaActivity.EXTRA_AREA_DEEP, Area.AREA_TYPE_CITY);
  141. startActivityForResult(intent, REQUEST_CODE_SELECT_LOCATION);
  142. break;
  143. case R.id.rlt_qr_code:
  144. Intent intentQrCode = new Intent(this, QRcodeActivity.class);
  145. intentQrCode.putExtra("isgroup", false);
  146. if (!TextUtils.isEmpty(mUser.getAccount())) {
  147. intentQrCode.putExtra("userid", mUser.getAccount());
  148. } else {
  149. intentQrCode.putExtra("userid", mUser.getUserId());
  150. }
  151. intentQrCode.putExtra("userAvatar", mUser.getUserId());
  152. startActivity(intentQrCode);
  153. break;
  154. case R.id.iv_modify_nickname:
  155. showEditNickname();
  156. break;
  157. case R.id.tv_update:
  158. updateUserInfo();
  159. break;
  160. }
  161. }
  162. @Override
  163. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  164. if (requestCode == REQUEST_CODE_CAPTURE_CROP_PHOTO) {// 拍照返回再去裁减
  165. if (resultCode == Activity.RESULT_OK) {
  166. if (mNewPhotoUri != null) {
  167. Uri o = mNewPhotoUri;
  168. mNewPhotoUri = CameraUtil.getOutputMediaFileUri(this, CameraUtil.MEDIA_TYPE_IMAGE);
  169. mCurrentFile = new File(mNewPhotoUri.getPath());
  170. CameraUtil.cropImage(this, o, mNewPhotoUri, REQUEST_CODE_CROP_PHOTO, 1, 1, 300, 300);
  171. } else {
  172. ToastUtil.showToast(this, R.string.c_photo_album_failed);
  173. }
  174. }
  175. } else if (requestCode == REQUEST_CODE_PICK_CROP_PHOTO) {// 选择一张图片,然后立即调用裁减
  176. if (resultCode == Activity.RESULT_OK) {
  177. if (data != null && data.getData() != null) {
  178. Uri o = data.getData();
  179. mNewPhotoUri = CameraUtil.getOutputMediaFileUri(this, CameraUtil.MEDIA_TYPE_IMAGE);
  180. mCurrentFile = new File(mNewPhotoUri.getPath());
  181. CameraUtil.cropImage(this, o, mNewPhotoUri, REQUEST_CODE_CROP_PHOTO, 1, 1, 300, 300);
  182. } else {
  183. ToastUtil.showToast(this, R.string.c_photo_album_failed);
  184. }
  185. }
  186. } else if (requestCode == REQUEST_CODE_CROP_PHOTO) {
  187. if (resultCode == Activity.RESULT_OK) {
  188. if (mNewPhotoUri != null) {
  189. mCurrentFile = new File(mNewPhotoUri.getPath());
  190. AvatarHelper.getInstance().displayUrl(mNewPhotoUri.toString(), ivAvatar);
  191. // 上传头像
  192. uploadAvatar(mCurrentFile);
  193. } else {
  194. ToastUtil.showToast(this, R.string.c_crop_failed);
  195. }
  196. }
  197. } else if (requestCode == REQUEST_CODE_SELECT_LOCATION) {// 选择城市
  198. if (resultCode == RESULT_OK && data != null) {
  199. int countryId = data.getIntExtra(SelectAreaActivity.EXTRA_COUNTRY_ID, 0);
  200. int provinceId = data.getIntExtra(SelectAreaActivity.EXTRA_PROVINCE_ID, 0);
  201. int cityId = data.getIntExtra(SelectAreaActivity.EXTRA_CITY_ID, 0);
  202. int countyId = data.getIntExtra(SelectAreaActivity.EXTRA_COUNTY_ID, 0);
  203. String province_name = data.getStringExtra(SelectAreaActivity.EXTRA_PROVINCE_NAME);
  204. String city_name = data.getStringExtra(SelectAreaActivity.EXTRA_CITY_NAME);
  205. /*String county_name = data.getStringExtra(SelectAreaActivity.EXTRA_COUNTY_ID);*/
  206. tvLocation.setText(province_name + "-" + city_name);
  207. mTempUserData.setCountryId(countryId);
  208. mTempUserData.setProvinceId(provinceId);
  209. mTempUserData.setCityId(cityId);
  210. mTempUserData.setAreaId(countyId);
  211. }
  212. } else if (requestCode == REQUEST_CODE_SET_ACCOUNT) {
  213. if (resultCode == RESULT_OK && data != null) {
  214. String account = data.getStringExtra(AppConstant.EXTRA_USER_ACCOUNT);
  215. mTempUserData.setAccount(account);
  216. mTempUserData.setSetAccountCount(1);
  217. initAccount();
  218. }
  219. }
  220. }
  221. private void showEditNickname() {
  222. EditText editText = new EditText(this);
  223. final AlertDialog.Builder builder = new AlertDialog.Builder(this)
  224. .setView(editText)
  225. .setTitle(R.string.modify_nickname)
  226. .setPositiveButton(R.string.confirm, (d,i)->{
  227. String nickName = edtDiyName.getText().toString();
  228. tvNickname.setText(nickName);
  229. mTempUserData.setNickName(nickName);
  230. })
  231. .setNegativeButton(R.string.cancel,(d,i)->{
  232. });
  233. builder.show();
  234. }
  235. private void updateUserInfo() {
  236. if (!MyApplication.getInstance().isNetworkActive()) {
  237. ToastUtil.showToast(this, R.string.net_exception);
  238. return;
  239. }
  240. if (TextUtils.isEmpty(mTempUserData.getNickName())){
  241. ToastUtil.showToast(this,getString(R.string.name_empty_error));
  242. return;
  243. }
  244. if (!coreManager.getConfig().disableLocationServer) {
  245. if (mTempUserData.getCityId() <= 0) {
  246. ToastUtil.showToast(this, getString(R.string.live_address_empty_error));
  247. return;
  248. }
  249. }
  250. if (mUser != null && !mUser.equals(coreManager)) {// 数据改变了,提交数据
  251. updateData();
  252. } else {
  253. finish();
  254. }
  255. }
  256. private void showSelectAvatarDialog() {
  257. String[] items = new String[]{InternationalizationHelper.getString("PHOTOGRAPH"), InternationalizationHelper.getString("ALBUM")};
  258. AlertDialog.Builder builder = new AlertDialog.Builder(this).setTitle(InternationalizationHelper.getString("SELECT_AVATARS"))
  259. .setSingleChoiceItems(items, 0,
  260. new DialogInterface.OnClickListener() {
  261. @Override
  262. public void onClick(DialogInterface dialog, int which) {
  263. if (which == 0) {
  264. takePhoto();
  265. } else {
  266. selectPhoto();
  267. }
  268. dialog.dismiss();
  269. }
  270. });
  271. builder.show();
  272. }
  273. @SuppressWarnings("deprecation")
  274. private void showSelectBirthdayDialog() {
  275. Date date = new Date(mTempUserData.getBirthday() * 1000);
  276. DatePickerDialog dialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
  277. @Override
  278. public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
  279. GregorianCalendar calendar = new GregorianCalendar(year, monthOfYear, dayOfMonth);
  280. mTempUserData.setBirthday(TimeUtils.getSpecialBeginTime(tvBirthday, calendar.getTime().getTime() / 1000));
  281. long currentTime = System.currentTimeMillis() / 1000;
  282. long birthdayTime = calendar.getTime().getTime() / 1000;
  283. if (birthdayTime > currentTime) {
  284. ToastUtil.showToast(mContext, R.string.data_of_birth);
  285. }
  286. }
  287. }, date.getYear() + 1900, date.getMonth(), date.getDate());
  288. dialog.show();
  289. }
  290. private void takePhoto() {
  291. mNewPhotoUri = CameraUtil.getOutputMediaFileUri(this, CameraUtil.MEDIA_TYPE_IMAGE);
  292. CameraUtil.captureImage(this, mNewPhotoUri, REQUEST_CODE_CAPTURE_CROP_PHOTO);
  293. }
  294. private void selectPhoto() {
  295. CameraUtil.pickImageSimple(this, REQUEST_CODE_PICK_CROP_PHOTO);
  296. }
  297. private void updateUI() {
  298. // clone一份临时数据,用来存数变化的值,返回的时候对比有无变化
  299. try {
  300. mTempUserData = (User) mUser.clone();
  301. } catch (CloneNotSupportedException e) {
  302. e.printStackTrace();
  303. }
  304. switchSex.setChecked(mTempUserData.getSex()==1);
  305. if (mTempUserData.getDescription()!=null){
  306. edtDiyName.setText(mTempUserData.getDescription());
  307. edtDiyName.setSelection(mTempUserData.getDescription().length());
  308. }
  309. AvatarHelper.getInstance().updateAvatar(mTempUserData.getUserId());
  310. // AvatarHelper.getInstance().displayAvatar(mTempData.getUserId(), mAvatarImg, false);
  311. displayAvatar(mTempUserData.getUserId());
  312. tvNickname.setText(mTempUserData.getNickName());
  313. // if (mTempData.getSex() == 1) {
  314. // mSexTv.setText(InternationalizationHelper.getString("JX_Man"));
  315. // } else {
  316. // mSexTv.setText(InternationalizationHelper.getString("JX_Wuman"));
  317. // }
  318. tvBirthday.setText(TimeUtils.sk_time_s_long_2_str(mTempUserData.getBirthday()));
  319. tvLocation.setText(Area.getProvinceCityString(mTempUserData.getProvinceId(), mTempUserData.getCityId()));
  320. // mTvDiyName.setText(mTempUserData.getDescription());
  321. String phoneNumber = coreManager.getSelf().getTelephone();
  322. int mobilePrefix = PreferenceUtils.getInt(this, Constants.AREA_CODE_KEY, -1);
  323. String sPrefix = String.valueOf(mobilePrefix);
  324. // 删除开头的区号,
  325. if (phoneNumber.startsWith(sPrefix)) {
  326. phoneNumber = phoneNumber.substring(sPrefix.length());
  327. }
  328. tvPhone.setText(phoneNumber);
  329. initAccount();
  330. }
  331. public void displayAvatar(final String userId) {
  332. DialogHelper.showDefaulteMessageProgressDialog(this);
  333. final String mOriginalUrl = AvatarHelper.getAvatarUrl(userId, false);
  334. Log.e("zx", "displayAvatar: mOriginalUrl: " + mOriginalUrl + " uID: " + userId);
  335. if (!TextUtils.isEmpty(mOriginalUrl)) {
  336. String time = UserAvatarDao.getInstance().getUpdateTime(userId);
  337. Glide.with(MyApplication.getContext())
  338. .load(mOriginalUrl)
  339. .placeholder(R.drawable.avatar_normal)
  340. .signature(new StringSignature(time))
  341. .dontAnimate()
  342. .error(R.drawable.avatar_normal)
  343. .into(new SimpleTarget<GlideDrawable>() {
  344. @Override
  345. public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {
  346. DialogHelper.dismissProgressDialog();
  347. ivAvatar.setImageDrawable(resource);
  348. }
  349. @Override
  350. public void onLoadFailed(Exception e, Drawable errorDrawable) {
  351. DialogHelper.dismissProgressDialog();
  352. Log.e("zq", "加载原图失败:" + mOriginalUrl);// 该用户未设置头像,网页访问该URL也是404
  353. AvatarHelper.getInstance().displayAvatar(mTempUserData.getNickName(), userId, ivAvatar, true);
  354. }
  355. });
  356. } else {
  357. DialogHelper.dismissProgressDialog();
  358. Log.e("zq", "未获取到原图地址");// 基本上不会走这里
  359. }
  360. }
  361. private void initAccount() {
  362. if (mTempUserData != null) {
  363. if (mTempUserData.getSetAccountCount() == 0) {
  364. // 之前未设置过sk号 前往设置
  365. findViewById(R.id.rlt_account).setOnClickListener(v -> {
  366. Intent intent = new Intent(mContext, SetAccountActivity.class);
  367. intent.putExtra(AppConstant.EXTRA_USER_ID, mTempUserData.getUserId());
  368. intent.putExtra(AppConstant.EXTRA_NICK_NAME, mTempUserData.getNickName());
  369. startActivityForResult(intent, REQUEST_CODE_SET_ACCOUNT);
  370. });
  371. findViewById(R.id.iv_communication).setVisibility(View.VISIBLE);
  372. } else {
  373. findViewById(R.id.rlt_account).setOnClickListener(null);
  374. findViewById(R.id.iv_communication).setVisibility(View.INVISIBLE);
  375. }
  376. if (!TextUtils.isEmpty(mTempUserData.getAccount())) {
  377. tvCommunication.setText(mTempUserData.getAccount());
  378. }
  379. }
  380. }
  381. private void uploadAvatar(File file) {
  382. if (!file.exists()) {
  383. // 文件不存在
  384. return;
  385. }
  386. // 显示正在上传的ProgressDialog
  387. DialogHelper.showDefaulteMessageProgressDialog(this);
  388. RequestParams params = new RequestParams();
  389. final String loginUserId = coreManager.getSelf().getUserId();
  390. params.put("userId", loginUserId);
  391. try {
  392. params.put("file1", file);
  393. } catch (FileNotFoundException e) {
  394. e.printStackTrace();
  395. }
  396. AsyncHttpClient client = new AsyncHttpClient();
  397. client.post(coreManager.getConfig().AVATAR_UPLOAD_URL, params, new AsyncHttpResponseHandler() {
  398. @Override
  399. public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
  400. DialogHelper.dismissProgressDialog();
  401. boolean success = false;
  402. if (arg0 == 200) {
  403. Result result = null;
  404. try {
  405. result = JSON.parseObject(new String(arg2), Result.class);
  406. } catch (Exception e) {
  407. e.printStackTrace();
  408. }
  409. if (result != null && result.getResultCode() == Result.CODE_SUCCESS) {
  410. success = true;
  411. }
  412. }
  413. if (success) {
  414. ToastUtil.showToast(getBaseContext(), R.string.upload_avatar_success);
  415. AvatarHelper.getInstance().updateAvatar(loginUserId);// 更新时间
  416. EventBus.getDefault().post(new EventAvatarUploadSuccess(true));
  417. } else {
  418. ToastUtil.showToast(getBaseContext(), R.string.upload_avatar_failed);
  419. }
  420. }
  421. @Override
  422. public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
  423. DialogHelper.dismissProgressDialog();
  424. ToastUtil.showToast(getBaseContext(), R.string.upload_avatar_failed);
  425. }
  426. });
  427. }
  428. private void updateData() {
  429. Map<String, String> params = new HashMap<>();
  430. params.put("access_token", coreManager.getSelfStatus().accessToken);
  431. if (!mUser.getNickName().equals(mTempUserData.getNickName())) {
  432. params.put("nickname", mTempUserData.getNickName());
  433. }
  434. if (mUser.getSex() != mTempUserData.getSex()) {
  435. params.put("sex", String.valueOf(mTempUserData.getSex()));
  436. }
  437. if (mUser.getBirthday() != mTempUserData.getBirthday()) {
  438. params.put("birthday", String.valueOf(mTempUserData.getBirthday()));
  439. }
  440. if (mUser.getCountryId() != mTempUserData.getCountryId()) {
  441. params.put("countryId", String.valueOf(mTempUserData.getCountryId()));
  442. }
  443. if (mUser.getProvinceId() != mTempUserData.getProvinceId()) {
  444. params.put("provinceId", String.valueOf(mTempUserData.getProvinceId()));
  445. }
  446. if (mUser.getCityId() != mTempUserData.getCityId()) {
  447. params.put("cityId", String.valueOf(mTempUserData.getCityId()));
  448. }
  449. if (mUser.getAreaId() != mTempUserData.getAreaId()) {
  450. params.put("areaId", String.valueOf(mTempUserData.getAreaId()));
  451. }
  452. if (!mUser.getDescription().equals(mTempUserData.getDescription())){
  453. params.put("description", String.valueOf(mTempUserData.getDescription()));
  454. }
  455. DialogHelper.showDefaulteMessageProgressDialog(this);
  456. HttpUtils.get().url(coreManager.getConfig().USER_UPDATE)
  457. .params(params)
  458. .build()
  459. .execute(new BaseCallback<Void>(Void.class) {
  460. @Override
  461. public void onResponse(ObjectResult<Void> result) {
  462. DialogHelper.dismissProgressDialog();
  463. saveData();
  464. }
  465. @Override
  466. public void onError(Call call, Exception e) {
  467. DialogHelper.dismissProgressDialog();
  468. ToastUtil.showErrorNet(getBaseContext());
  469. }
  470. });
  471. }
  472. private void saveData() {
  473. if (!mUser.getNickName().equals(mTempUserData.getNickName())) {
  474. coreManager.getSelf().setNickName(mTempUserData.getNickName());
  475. UserDao.getInstance().updateNickName(mTempUserData.getUserId(), mTempUserData.getNickName()); // 更新数据库
  476. }
  477. if (mUser.getSex() != mTempUserData.getSex()) {
  478. coreManager.getSelf().setSex(mTempUserData.getSex());
  479. UserDao.getInstance().updateSex(mTempUserData.getUserId(), mTempUserData.getSex() + ""); // 更新数据库
  480. }
  481. if (mUser.getBirthday() != mTempUserData.getBirthday()) {
  482. coreManager.getSelf().setBirthday(mTempUserData.getBirthday());
  483. UserDao.getInstance().updateBirthday(mTempUserData.getUserId(), mTempUserData.getBirthday() + "");// 更新数据库
  484. }
  485. if (mUser.getCountryId() != mTempUserData.getCountryId()) {
  486. coreManager.getSelf().setCountryId(mTempUserData.getCountryId());
  487. UserDao.getInstance().updateCountryId(mTempUserData.getUserId(), mTempUserData.getCountryId());
  488. }
  489. if (mUser.getProvinceId() != mTempUserData.getProvinceId()) {
  490. coreManager.getSelf().setProvinceId(mTempUserData.getProvinceId());
  491. UserDao.getInstance().updateProvinceId(mTempUserData.getUserId(), mTempUserData.getProvinceId());
  492. }
  493. if (mUser.getCityId() != mTempUserData.getCityId()) {
  494. coreManager.getSelf().setCityId(mTempUserData.getCityId());
  495. UserDao.getInstance().updateCityId(mTempUserData.getUserId(), mTempUserData.getCityId());
  496. }
  497. if (mUser.getAreaId() != mTempUserData.getAreaId()) {
  498. coreManager.getSelf().setAreaId(mTempUserData.getAreaId());
  499. UserDao.getInstance().updateAreaId(mTempUserData.getUserId(), mTempUserData.getAreaId());
  500. }
  501. if (!mUser.getDescription().equals(mTempUserData.getDescription())){
  502. coreManager.getSelf().setDescription(mTempUserData.getDescription());
  503. UserDao.getInstance().updateDescription(mTempUserData.getUserId(), mTempUserData.getDescription());
  504. }
  505. setResult(RESULT_OK);
  506. finish();
  507. }
  508. }