feat:优化用户修改昵称、简介体验(在当前页完成网络请求)

This commit is contained in:
Max
2024-01-25 15:08:45 +08:00
parent 53820a23c7
commit a8335e915c
2 changed files with 42 additions and 43 deletions

View File

@@ -1,5 +1,6 @@
package com.nnbc123.app.ui.login;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
@@ -20,9 +21,11 @@ import com.netease.nim.uikit.StatusBarUtil;
import com.nnbc123.app.R;
import com.nnbc123.app.base.BaseActivity;
import com.nnbc123.app.base.TitleBar;
import com.nnbc123.core.auth.AuthModel;
import com.nnbc123.core.user.UserModel;
import com.nnbc123.core.user.bean.UserInfo;
/**
* Created by zhouxiangfeng on 2017/5/13.
*/
@@ -41,8 +44,7 @@ public class ModifyInfoActivity extends BaseActivity implements View.OnClickList
private TextView tvCountDown;
public static final String CONTENT = "content";
public static final String CONTENT_NICK = "contentNick";
public static final String USER_INFO = "user_info";
private CoordinatorLayout layout_coordinator;
TextWatcher textWatcher = new TextWatcher() {
@@ -117,19 +119,17 @@ public class ModifyInfoActivity extends BaseActivity implements View.OnClickList
// 个人简介允许为空nick不能为空
if (modifyType == CONTENT_MODIFY) {
String content = etEditText.getText().toString();
Intent intent = new Intent();
intent.putExtra(CONTENT, content);
setResult(RESULT_OK, intent);
finish();
UserInfo info = new UserInfo();
info.setUid(AuthModel.get().getCurrentUid());
info.setUserDesc(content);
updateUserInfo(info);
} else if (modifyType == NICK_MODIFY) {
String contentNick = etEditTextNick.getText().toString();
if (!contentNick.trim().isEmpty()) {
Intent intent = new Intent();
intent.putExtra(CONTENT_NICK, contentNick);
setResult(RESULT_OK, intent);
finish();
UserInfo info = new UserInfo();
info.setUid(AuthModel.get().getCurrentUid());
info.setNick(contentNick);
updateUserInfo(info);
} else {
Snackbar.make(layout_coordinator, "所填内容为空!", Snackbar.LENGTH_SHORT).show();
}
@@ -189,4 +189,20 @@ public class ModifyInfoActivity extends BaseActivity implements View.OnClickList
StatusBarUtil.StatusBarLightMode(this);
}
@SuppressLint("CheckResult")
private void updateUserInfo(UserInfo userInfo){
getDialogManager().showProgressDialog(this, "请稍后");
UserModel.get().requestUpdateUserInfo(userInfo)
.compose(bindToLifecycle())
.subscribe(userInfo1 -> {
getDialogManager().dismissDialog();
Intent intent = new Intent();
intent.putExtra(USER_INFO, userInfo1);
setResult(RESULT_OK, intent);
finish();
}, throwable -> {
getDialogManager().dismissDialog();
toast(throwable.getMessage());
});
}
}

View File

@@ -351,34 +351,13 @@ class UserInfoModifyActivity : BaseViewBindingActivity<ActivityUserInfoModifyBin
checkStoragePermission()
} else if (resultCode == RESULT_OK) {
when (requestCode) {
Method.NICK -> {
Method.NICK, Method.DESC -> {
data?.let {
dialogManager.showProgressDialog(
this@UserInfoModifyActivity,
"请稍后"
)
val stringExtra = it.getStringExtra(ModifyInfoActivity.CONTENT_NICK)
binding.tvNick.text = stringExtra
val user = UserInfo()
user.uid = AuthModel.get().currentUid
user.nick = stringExtra
UserModel.get().requestUpdateUserInfo(user)
.subscribe(userInfoUpdateObserver)
}
}
Method.DESC -> {
data?.let {
dialogManager.showProgressDialog(
this@UserInfoModifyActivity,
"请稍后"
)
val stringExtra = it.getStringExtra(ModifyInfoActivity.CONTENT)
setTvDesc(stringExtra)
val user = UserInfo()
user.uid = AuthModel.get().currentUid
user.userDesc = stringExtra
UserModel.get().requestUpdateUserInfo(user)
.subscribe(userInfoUpdateObserver)
val newUserInfo =
it.getSerializableExtra(ModifyInfoActivity.USER_INFO) as? UserInfo
if (newUserInfo != null) {
loadUserInfo(newUserInfo)
}
}
}
Method.AUDIO -> {
@@ -527,10 +506,7 @@ class UserInfoModifyActivity : BaseViewBindingActivity<ActivityUserInfoModifyBin
}
override fun onSuccess(info: UserInfo) {
if (info.uid == userId) {
mUserInfo = info
initData(mUserInfo)
}
loadUserInfo(info)
dialogManager.dismissDialog()
if (showAvatarAuditing) {
showAvatarAuditing = false
@@ -544,6 +520,13 @@ class UserInfoModifyActivity : BaseViewBindingActivity<ActivityUserInfoModifyBin
}
}
private fun loadUserInfo(userInfo: UserInfo) {
if (userInfo.uid == userId) {
mUserInfo = userInfo
initData(mUserInfo)
}
}
private fun showAvatarAuditingDialog() {
toast(R.string.avatar_auditing)
//延迟3秒重新获取用户信息更新状态