/* * Copyright (c) 2020 WildFireChat. All rights reserved. */ package cn.wildfire.chat.kit.user; import android.view.Menu; import android.view.MenuItem; import android.widget.EditText; import android.widget.Toast; import androidx.annotation.Nullable; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProviders; import com.afollestad.materialdialogs.MaterialDialog; import java.util.Collections; import butterknife.BindView; import butterknife.OnTextChanged; import cn.wildfire.chat.kit.WfcBaseActivity; import cn.wildfire.chat.kit.common.OperateResult; import cn.wildfire.chat.kit.R; import cn.wildfire.chat.kit.R2; import cn.wildfirechat.model.ModifyMyInfoEntry; import cn.wildfirechat.model.UserInfo; import static cn.wildfirechat.model.ModifyMyInfoType.Modify_DisplayName; public class ChangeMyNameActivity extends WfcBaseActivity { private MenuItem confirmMenuItem; @BindView(R2.id.nameEditText) EditText nameEditText; private UserViewModel userViewModel; private UserInfo userInfo; @Override protected void afterViews() { userViewModel = ViewModelProviders.of(this).get(UserViewModel.class); userInfo = userViewModel.getUserInfo(userViewModel.getUserId(), false); if (userInfo == null) { Toast.makeText(this, "用户不存在", Toast.LENGTH_SHORT).show(); finish(); } initView(); } @Override protected int contentLayout() { return R.layout.user_change_my_name_activity; } @Override protected int menu() { return R.menu.user_change_my_name; } @Override protected void afterMenus(Menu menu) { confirmMenuItem = menu.findItem(R.id.save); confirmMenuItem.setEnabled(false); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.save) { changeMyName(); return true; } return super.onOptionsItemSelected(item); } private void initView() { if (userInfo != null) { nameEditText.setText(userInfo.displayName); } nameEditText.setSelection(nameEditText.getText().toString().trim().length()); } @OnTextChanged(value = R2.id.nameEditText, callback = OnTextChanged.Callback.TEXT_CHANGED) void inputNewName(CharSequence s, int start, int before, int count) { if (confirmMenuItem != null) { if (nameEditText.getText().toString().trim().length() > 0) { confirmMenuItem.setEnabled(true); } else { confirmMenuItem.setEnabled(false); } } } private void changeMyName() { MaterialDialog dialog = new MaterialDialog.Builder(this) .content("修改中...") .progress(true, 100) .build(); dialog.show(); String nickName = nameEditText.getText().toString().trim(); ModifyMyInfoEntry entry = new ModifyMyInfoEntry(Modify_DisplayName, nickName); userViewModel.modifyMyInfo(Collections.singletonList(entry)).observe(this, new Observer>() { @Override public void onChanged(@Nullable OperateResult booleanOperateResult) { if (booleanOperateResult.isSuccess()) { Toast.makeText(ChangeMyNameActivity.this, "修改成功", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(ChangeMyNameActivity.this, "修改失败", Toast.LENGTH_SHORT).show(); } dialog.dismiss(); finish(); } }); } }