Files
Android-WaterProject/app/src/main/java/com/ckkj/water/mine/MineCenterFragment.java
fengjignqi fa44e0edbd 优化
2026-07-06 10:35:56 +08:00

220 lines
6.9 KiB
Java

package com.ckkj.water.mine;
import static android.view.View.INVISIBLE;
import static android.view.View.VISIBLE;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import com.bumptech.glide.Glide;
import com.ckkj.water.AppConfig;
import com.ckkj.water.ConstantUtil;
import com.ckkj.water.R;
import com.ckkj.water.base.BaseFragment;
import com.ckkj.water.main.entity.CheckVersionEntity;
import com.ckkj.water.mine.entity.MineUserInfoBean;
import com.ckkj.water.databinding.MineFragmentLayoutBinding;
import com.ckkj.water.login.LoginActivity;
import com.ckkj.water.mine.mvp.MineContract;
import com.ckkj.water.mine.mvp.MineImpl;
import com.ckkj.water.mine.mvp.MinePresenter;
import com.ckkj.water.network.BaseBean;
import com.ckkj.water.utils.dataUtil.SharePreUtil;
import com.ckkj.water.utils.manager.ActivityManager;
import com.ckkj.water.utils.manager.LanguageManager;
import com.ckkj.water.utils.manager.ThemeManager;
import com.ckkj.water.utils.manager.WaterUserInfoManager;
import com.google.gson.Gson;
import com.gyf.immersionbar.ImmersionBar;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.interfaces.OnSelectListener;
/**
* @author fengxiaoyang
* @date 2026/5/16
* @description TODO: 个人中心页面dev
*/
public class MineCenterFragment extends BaseFragment<MineFragmentLayoutBinding, MinePresenter>
implements MineContract.MineView {
private MineUserInfoBean mUserBean;
@Override
public void initData(Bundle state) {
ImmersionBar.with(mContext)
.statusBarColor(R.color.mainBackgroundColor)
.statusBarDarkFont(ThemeManager.isAppThemeLight(mContext))
.titleBar(viewBinding.rlTitle)
.init();
viewBinding.includedTitle.imgBack.setVisibility(INVISIBLE);
viewBinding.includedTitle.imgSetting.setVisibility(VISIBLE);
viewBinding.includedTitle.tvTitle.setText(getString(R.string.mine_center_title));
initListener();
}
@Override
protected void onResumeInitData() {
super.onResumeInitData();
if(AppConfig.USER_LOGIN){
mPresenter.getUserinfo();
}
}
private void initListener() {
setClick(viewBinding.linearInfo);
setClick(viewBinding.linearLanguage);
setClick(viewBinding.linearPsdManage);
setClick(viewBinding.linearTheme);
setClick(viewBinding.btnDelete);
setClick(viewBinding.includedTitle.imgSetting);
}
private void setClick(View view) {
view.setOnClickListener(this::onClick);
}
public void onClick(View v){
switch (v.getId()){
case R.id.img_setting:
goTo(mContext, SettingsActivity.class,null);
break;
case R.id.linear_info:
Bundle bundle = new Bundle();
bundle.putSerializable(ConstantUtil.USER_INFO_JSON_CONTENT,mUserBean);
goTo(mContext, MineInfomationActivity.class,bundle);
break;
case R.id.linear_theme:
goTo(mContext, AppThemActivity.class,null);
break;
case R.id.linear_language:
new XPopup.Builder(mContext)
.isDestroyOnDismiss(true)
.dismissOnBackPressed(true)
.dismissOnTouchOutside(true)
.asBottomList(
getString(R.string.change_language),
LanguageManager.getLanguageDisplayNames(mContext),
LanguageManager.getLanguageIcons(),
LanguageManager.getCurrentLanguageIndex(),
new OnSelectListener() {
@Override
public void onSelect(int position, String text) {
LanguageManager.switchLanguageByIndex(position, getActivity());
}
},
R.layout.select_language_layout,
R.layout.select_language_item
).show();
break;
case R.id.linear_psd_manage:
goTo(mContext, PsdManageActivity.class,null);
break;
case R.id.btn_delete:
showDialogtext(null,
false,
false,
getString(R.string.tip_text),
getString(R.string.logout_tips),
getString(R.string.cancel_text),
getString(R.string.confirm_text),
new OnDialogClick() {
@Override
public void onCancelClick() {
}
@Override
public void onConfirmClick() {
mPresenter.logout();
}
});
break;
}
}
/**
* 获取个人信息
* @param bean
*/
@Override
public void getUserInfoSuccess(MineUserInfoBean bean) {
Gson gson = new Gson();
String userInfoJson = gson.toJson(bean);
SharePreUtil.putString(ConstantUtil.SHARE_PRE_NAME,mContext,ConstantUtil.USER_INFO_JSON_CONTENT,userInfoJson);
WaterUserInfoManager.getInstance().setUserInfo(bean);
mUserBean = bean;
viewBinding.tvUserName.setText(bean.getUser().getNickName());
if(TextUtils.isEmpty(bean.getUser().getPhonenumber())){
viewBinding.tvUserAccount.setText(bean.getUser().getEmail());
}else{
viewBinding.tvUserAccount.setText(bean.getUser().getPhonenumber());
}
if(!TextUtils.isEmpty(bean.getUser().getAvatar())){
// 刷新头像显示
Glide.with(mContext)
.load(bean.getUser().getAvatar())
.error(mContext.getDrawable(R.mipmap.icon_mine_user_head_defaul))
.into(viewBinding.imgAvatar);
}
}
/**
* 退出登录
* @param bean
*/
@Override
public void logOutSuccess(BaseBean bean) {
WaterUserInfoManager.getInstance().clearUser(mContext);
ActivityManager.removeAllActivity();
goTo(mContext, LoginActivity.class,null);
}
@Override
public void uploadImageSuccess(MineUserInfoBean bean) {
}
@Override
public void getAppVersionSuccess(CheckVersionEntity bean) {
}
@Override
public void updateUserInfoSuccess(BaseBean bean) {
}
@Override
public void updateUserPasswordSuccess(BaseBean bean) {
}
@Override
public MinePresenter createPresenter() {
return new MinePresenter(new MineImpl());
}
@Override
public void onNetChange(int netModel) {
}
@Override
public void showError(String message) {
}
@Override
public void logOut(BaseBean bean) {
}
}