|
|
@@ -1,26 +1,26 @@
|
|
|
package com.sheishuo.app.core_module.mine.view.ui.activity;
|
|
|
|
|
|
import android.content.Context;
|
|
|
+import android.content.DialogInterface;
|
|
|
import android.content.Intent;
|
|
|
import android.os.Bundle;
|
|
|
+import android.support.v7.app.AlertDialog;
|
|
|
import android.util.Log;
|
|
|
import android.view.View;
|
|
|
import android.widget.CompoundButton;
|
|
|
-import android.widget.ImageView;
|
|
|
import android.widget.LinearLayout;
|
|
|
import android.widget.Switch;
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
import com.bumptech.glide.Glide;
|
|
|
import com.netease.nim.uikit.common.ui.imageview.HeadImageView;
|
|
|
-import com.netease.nim.uikit.common.ui.widget.SwitchButton;
|
|
|
import com.netease.nimlib.sdk.NIMClient;
|
|
|
+import com.netease.nimlib.sdk.uinfo.UserInfoProvider;
|
|
|
import com.netease.nimlib.sdk.uinfo.UserService;
|
|
|
import com.netease.nimlib.sdk.uinfo.constant.UserInfoFieldEnum;
|
|
|
import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
|
|
|
import com.sheishuo.app.R;
|
|
|
import com.sheishuo.app.cache.AccountCache;
|
|
|
-import com.sheishuo.app.cache.MineSocialCache;
|
|
|
import com.sheishuo.app.cache.SocialInfoCache;
|
|
|
import com.sheishuo.app.common.beans.SocialInfoBean;
|
|
|
import com.sheishuo.app.common.util.net.INet;
|
|
|
@@ -33,6 +33,7 @@ import com.sheishuo.app.impl.SheishuoUI;
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
import static com.sheishuo.app.core_module.location.LocationSelectActivity.LOCATION_AREA;
|
|
|
import static com.sheishuo.app.core_module.location.LocationSelectActivity.LOCATION_CITY;
|
|
|
@@ -52,31 +53,15 @@ public class PersonalSettingsActivity extends SheishuoUI {
|
|
|
public static final int REQUEST_IDNUM = 5403;
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
private String TAG = this.getClass().getSimpleName();
|
|
|
private Context context = this;
|
|
|
|
|
|
|
|
|
private BaseToolbar toolbar;
|
|
|
|
|
|
- private LinearLayout avatarLayout
|
|
|
- ,nicknameLayout
|
|
|
- ,genderLayout
|
|
|
- ,locationLayout
|
|
|
- ,ageLayout
|
|
|
- ,hobbyLayout
|
|
|
- ,realNameLayout
|
|
|
- ,idNumLayout;
|
|
|
-
|
|
|
- private TextView nicknameTV
|
|
|
- ,genderTV
|
|
|
- ,locationTV
|
|
|
- ,ageTV
|
|
|
- ,hobbyTV
|
|
|
- ,realNameTV
|
|
|
- ,idNumTV;
|
|
|
+ private LinearLayout avatarLayout, nicknameLayout, genderLayout, locationLayout, ageLayout, hobbyLayout, realNameLayout, idNumLayout;
|
|
|
+
|
|
|
+ private TextView nicknameTV, genderTV, locationTV, ageTV, hobbyTV, realNameTV, idNumTV;
|
|
|
|
|
|
private HeadImageView avatarImg;
|
|
|
|
|
|
@@ -89,11 +74,11 @@ public class PersonalSettingsActivity extends SheishuoUI {
|
|
|
private ResponseCallback callback;
|
|
|
|
|
|
|
|
|
- public static void start(Context context){
|
|
|
- start(context,null);
|
|
|
+ public static void start(Context context) {
|
|
|
+ start(context, null);
|
|
|
}
|
|
|
|
|
|
- public static void start(Context context , Intent data){
|
|
|
+ public static void start(Context context, Intent data) {
|
|
|
Intent intent = new Intent();
|
|
|
intent.setClass(context, PersonalSettingsActivity.class);
|
|
|
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
|
|
@@ -113,8 +98,7 @@ public class PersonalSettingsActivity extends SheishuoUI {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
- void findViews(){
|
|
|
+ void findViews() {
|
|
|
toolbar = findView(R.id.toolbar);
|
|
|
|
|
|
avatarLayout = findView(R.id.personal_settings_avatar_layout);
|
|
|
@@ -157,7 +141,7 @@ public class PersonalSettingsActivity extends SheishuoUI {
|
|
|
|
|
|
@Override
|
|
|
public void onFailed() {
|
|
|
- showToast(context,"更新设置失败,请重试");
|
|
|
+ showToast(context, "更新设置失败,请重试");
|
|
|
}
|
|
|
};
|
|
|
|
|
|
@@ -167,12 +151,12 @@ public class PersonalSettingsActivity extends SheishuoUI {
|
|
|
}
|
|
|
|
|
|
|
|
|
- private void initSettings(){
|
|
|
+ private void initSettings() {
|
|
|
bean = SocialInfoCache.get(AccountCache.getAccount().getId());
|
|
|
NimUserInfo userInfo = NIMClient.getService(UserService.class)
|
|
|
.getUserInfo(AccountCache.getAccount().getId());
|
|
|
|
|
|
- if (!userInfo.getAvatar().isEmpty()){
|
|
|
+ if (!userInfo.getAvatar().isEmpty()) {
|
|
|
Glide.with(context)
|
|
|
.load(userInfo.getAvatar())
|
|
|
.into(avatarImg);
|
|
|
@@ -180,30 +164,62 @@ public class PersonalSettingsActivity extends SheishuoUI {
|
|
|
|
|
|
nicknameTV.setText(getName(AccountCache.getAccount().getId()));
|
|
|
|
|
|
- //暂无性别
|
|
|
+
|
|
|
+
|
|
|
+ switch (userInfo.getGenderEnum().getValue()) {
|
|
|
+ case 0:
|
|
|
+ genderTV.setText("保密");
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ genderTV.setText("男");
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ genderTV.setText("女");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
locationTV.setText(bean.getCity() + " " + bean.getDistrict());
|
|
|
|
|
|
- if (bean.getShow_age().equals("1")){
|
|
|
+ if (bean.getShow_age().equals("1")) {
|
|
|
ageIsPublicSwitch.setChecked(true);
|
|
|
}
|
|
|
|
|
|
if (!bean.getAge().isEmpty()) ageTV.setText(bean.getAge());
|
|
|
|
|
|
- if (!bean.getHobby().isEmpty()) hobbyTV.setText(bean.getHobby().substring(0,6));
|
|
|
+ if (!bean.getHobby().isEmpty()) hobbyTV.setText(bean.getHobby().substring(0, 6));
|
|
|
|
|
|
- if (!bean.getReal_name().isEmpty()) realNameTV.setText(bean.getReal_name());
|
|
|
|
|
|
- if (!bean.getId_number().isEmpty()) idNumTV.setText(bean.getId_number());
|
|
|
+ //隐藏真实姓名
|
|
|
+ if (!bean.getReal_name().isEmpty()){
|
|
|
+ String realName = bean.getReal_name();
|
|
|
+ String hideRealName = "";
|
|
|
+ for (int i = 0;i < realName.length() - 1;i++){
|
|
|
+ hideRealName += "*";
|
|
|
+ }
|
|
|
+ realName = hideRealName + realName.charAt(realName.length() - 1);
|
|
|
+ realNameTV.setText(realName);
|
|
|
+ }
|
|
|
+
|
|
|
+ //隐藏身份证号
|
|
|
+ if (!bean.getId_number().isEmpty()){
|
|
|
+ String idNum = bean.getId_number();
|
|
|
+ String hideIdNum = "";
|
|
|
+ for (int i = 0;i < idNum.length() - 4;i++){
|
|
|
+ hideIdNum += "*";
|
|
|
+ }
|
|
|
+ idNum = hideIdNum + idNum.substring(idNum.length() - 4,idNum.length());
|
|
|
+ idNumTV.setText(idNum);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
//公开年龄Switch监听
|
|
|
ageIsPublicSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
|
|
@Override
|
|
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
|
|
- if (isChecked){
|
|
|
+ if (isChecked) {
|
|
|
bean.setShow_age("1");
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
bean.setShow_age("0");
|
|
|
}
|
|
|
|
|
|
@@ -213,15 +229,23 @@ public class PersonalSettingsActivity extends SheishuoUI {
|
|
|
});
|
|
|
|
|
|
|
|
|
+ //性别修改
|
|
|
+ genderLayout.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ selectGender(NIMClient.getService(UserService.class));
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
|
|
|
//昵称修改
|
|
|
nicknameLayout.setOnClickListener(new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
Intent intent = new Intent(context, SettingTextEditActivity.class);
|
|
|
- intent.putExtra(SettingTextEditActivity.SETTING_CONTENT_TITLE,"修改昵称");
|
|
|
- intent.putExtra(SettingTextEditActivity.SETTING_CONTENT,nicknameTV.getText().toString());
|
|
|
- startActivityForResult(intent,REQUEST_NICKNAME);
|
|
|
+ intent.putExtra(SettingTextEditActivity.SETTING_CONTENT_TITLE, "修改昵称");
|
|
|
+ intent.putExtra(SettingTextEditActivity.SETTING_CONTENT, nicknameTV.getText().toString());
|
|
|
+ startActivityForResult(intent, REQUEST_NICKNAME);
|
|
|
|
|
|
}
|
|
|
});
|
|
|
@@ -232,9 +256,9 @@ public class PersonalSettingsActivity extends SheishuoUI {
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
Intent intent = new Intent(context, SettingTextEditActivity.class);
|
|
|
- intent.putExtra(SettingTextEditActivity.SETTING_CONTENT_TITLE,"修改年龄");
|
|
|
- intent.putExtra(SettingTextEditActivity.SETTING_CONTENT,ageTV.getText().toString());
|
|
|
- startActivityForResult(intent,REQUEST_AGE);
|
|
|
+ intent.putExtra(SettingTextEditActivity.SETTING_CONTENT_TITLE, "修改年龄");
|
|
|
+ intent.putExtra(SettingTextEditActivity.SETTING_CONTENT, ageTV.getText().toString());
|
|
|
+ startActivityForResult(intent, REQUEST_AGE);
|
|
|
|
|
|
}
|
|
|
});
|
|
|
@@ -244,9 +268,9 @@ public class PersonalSettingsActivity extends SheishuoUI {
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
Intent intent = new Intent(context, SettingTextEditActivity.class);
|
|
|
- intent.putExtra(SettingTextEditActivity.SETTING_CONTENT_TITLE,"修改真实姓名");
|
|
|
- intent.putExtra(SettingTextEditActivity.SETTING_CONTENT,realNameTV.getText().toString());
|
|
|
- startActivityForResult(intent,REQUEST_REALNAME);
|
|
|
+ intent.putExtra(SettingTextEditActivity.SETTING_CONTENT_TITLE, "修改真实姓名");
|
|
|
+ intent.putExtra(SettingTextEditActivity.SETTING_CONTENT, bean.getReal_name());
|
|
|
+ startActivityForResult(intent, REQUEST_REALNAME);
|
|
|
|
|
|
}
|
|
|
});
|
|
|
@@ -257,9 +281,9 @@ public class PersonalSettingsActivity extends SheishuoUI {
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
Intent intent = new Intent(context, SettingTextEditActivity.class);
|
|
|
- intent.putExtra(SettingTextEditActivity.SETTING_CONTENT_TITLE,"修改身份证号码");
|
|
|
- intent.putExtra(SettingTextEditActivity.SETTING_CONTENT,idNumTV.getText().toString());
|
|
|
- startActivityForResult(intent,REQUEST_IDNUM);
|
|
|
+ intent.putExtra(SettingTextEditActivity.SETTING_CONTENT_TITLE, "修改身份证号码");
|
|
|
+ intent.putExtra(SettingTextEditActivity.SETTING_CONTENT, bean.getId_number());
|
|
|
+ startActivityForResult(intent, REQUEST_IDNUM);
|
|
|
|
|
|
}
|
|
|
});
|
|
|
@@ -268,7 +292,7 @@ public class PersonalSettingsActivity extends SheishuoUI {
|
|
|
locationLayout.setOnClickListener(new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
- startActivityForResult(new Intent(context,LocationSelectActivity.class),0);
|
|
|
+ startActivityForResult(new Intent(context, LocationSelectActivity.class), 0);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -277,7 +301,7 @@ public class PersonalSettingsActivity extends SheishuoUI {
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
|
|
|
- startActivityForResult(new Intent(context,HobbySelectActivity.class),0);
|
|
|
+ startActivityForResult(new Intent(context, HobbySelectActivity.class), 0);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -287,47 +311,79 @@ public class PersonalSettingsActivity extends SheishuoUI {
|
|
|
@Override
|
|
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
|
super.onActivityResult(requestCode, resultCode, data);
|
|
|
- if (SettingTextEditActivity.SETTING_CONTENT_RESULT_CODE == resultCode){
|
|
|
+ if (SettingTextEditActivity.SETTING_CONTENT_RESULT_CODE == resultCode) {
|
|
|
String resultStr = data.getStringExtra(SettingTextEditActivity.SETTING_CONTENT_RESULT);
|
|
|
- switch (requestCode){
|
|
|
- case REQUEST_NICKNAME:
|
|
|
- nicknameTV.setText(resultStr);
|
|
|
- Map<UserInfoFieldEnum,Object> fieldMap = new HashMap<>();
|
|
|
- fieldMap.put(UserInfoFieldEnum.Name,resultStr);
|
|
|
- NIMClient.getService(UserService.class).updateUserInfo(fieldMap);
|
|
|
- bean.setNick(resultStr);
|
|
|
- net.updateSocialInfo(bean,callback);
|
|
|
- break;
|
|
|
- case REQUEST_AGE:
|
|
|
- ageTV.setText(resultStr);
|
|
|
- bean.setAge(resultStr);
|
|
|
- net.updateSocialInfo(bean,callback);
|
|
|
- break;
|
|
|
- case REQUEST_REALNAME:
|
|
|
- realNameTV.setText(resultStr);
|
|
|
- bean.setReal_name(resultStr);
|
|
|
- net.updateSocialInfo(bean,callback);
|
|
|
- break;
|
|
|
- case REQUEST_IDNUM:
|
|
|
- idNumTV.setText(resultStr);
|
|
|
- bean.setId_number(resultStr);
|
|
|
- net.updateSocialInfo(bean,callback);
|
|
|
- break;
|
|
|
- }
|
|
|
- }else if (resultCode == LOCATION_SELECTED_RESULT_CODE){
|
|
|
+ switch (requestCode) {
|
|
|
+ case REQUEST_NICKNAME:
|
|
|
+ nicknameTV.setText(resultStr);
|
|
|
+ Map<UserInfoFieldEnum, Object> fieldMap = new HashMap<>();
|
|
|
+ fieldMap.put(UserInfoFieldEnum.Name, resultStr);
|
|
|
+ NIMClient.getService(UserService.class).updateUserInfo(fieldMap);
|
|
|
+ bean.setNick(resultStr);
|
|
|
+ net.updateSocialInfo(bean, callback);
|
|
|
+ break;
|
|
|
+ case REQUEST_AGE:
|
|
|
+ ageTV.setText(resultStr);
|
|
|
+ bean.setAge(resultStr);
|
|
|
+ net.updateSocialInfo(bean, callback);
|
|
|
+ break;
|
|
|
+ case REQUEST_REALNAME:
|
|
|
+ realNameTV.setText(resultStr);
|
|
|
+ bean.setReal_name(resultStr);
|
|
|
+ net.updateSocialInfo(bean, callback);
|
|
|
+ break;
|
|
|
+ case REQUEST_IDNUM:
|
|
|
+ idNumTV.setText(resultStr);
|
|
|
+ bean.setId_number(resultStr);
|
|
|
+ net.updateSocialInfo(bean, callback);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ } else if (resultCode == LOCATION_SELECTED_RESULT_CODE) {
|
|
|
|
|
|
//更新地理位置
|
|
|
bean.setProvince(data.getStringExtra(LOCATION_PROVINCE));
|
|
|
bean.setCity(data.getStringExtra(LOCATION_CITY));
|
|
|
bean.setDistrict(data.getStringExtra(LOCATION_AREA));
|
|
|
|
|
|
- locationTV.setText(data.getStringExtra(LOCATION_CITY) +" "+ data.getStringExtra(LOCATION_AREA));
|
|
|
+ locationTV.setText(data.getStringExtra(LOCATION_CITY) + " " + data.getStringExtra(LOCATION_AREA));
|
|
|
|
|
|
- net.updateLocation(bean.getProvince(),bean.getCity(),bean.getDistrict(),callback);
|
|
|
+ net.updateLocation(bean.getProvince(), bean.getCity(), bean.getDistrict(), callback);
|
|
|
|
|
|
- }else if (HobbySelectActivity.HOBBY_RESULT_CODE == resultCode){
|
|
|
+ } else if (HobbySelectActivity.HOBBY_RESULT_CODE == resultCode) {
|
|
|
String hobby = data.getStringExtra(HobbySelectActivity.RESULT_HOBBY);
|
|
|
hobbyTV.setText(hobby);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ private void selectGender(final UserService userService) {
|
|
|
+ final int[] yourChoice = new int[1];
|
|
|
+ final String[] items = {"保密", "男", "女"};
|
|
|
+ yourChoice[0] = -1;
|
|
|
+ AlertDialog.Builder singleChoiceDialog =
|
|
|
+ new AlertDialog.Builder(context);
|
|
|
+ singleChoiceDialog.setTitle("请选择性别");
|
|
|
+ // 第二个参数是默认选项,此处设置为0
|
|
|
+ singleChoiceDialog.setSingleChoiceItems(items, 0,
|
|
|
+ new DialogInterface.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(DialogInterface dialog, int which) {
|
|
|
+ yourChoice[0] = which;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ singleChoiceDialog.setPositiveButton("确定",
|
|
|
+ new DialogInterface.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(DialogInterface dialog, int which) {
|
|
|
+ if (yourChoice[0] != -1) {
|
|
|
+ Map<UserInfoFieldEnum,Object> fieldMap = new HashMap<>();
|
|
|
+ fieldMap.put(UserInfoFieldEnum.GENDER,yourChoice[0]);
|
|
|
+ userService.updateUserInfo(fieldMap);
|
|
|
+ init();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ singleChoiceDialog.show();
|
|
|
+
|
|
|
+ }
|
|
|
}
|