package com.ckkj.water.mine; import static android.view.View.INVISIBLE; import android.os.Bundle; import android.text.TextUtils; import android.view.View; 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.base.entity.MineUserInfoBean; import com.ckkj.water.databinding.MineFragmentBinding; import com.ckkj.water.databinding.MineFragmentLayoutBinding; import com.ckkj.water.login.LoginActivity; import com.ckkj.water.main.entity.CheckVersionEntity; import com.ckkj.water.mine.entity.MemberComboEntity; 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.ThemeManager; import com.ckkj.water.utils.manager.WaterUserInfoManager; import com.ckkj.water.utils.show.ToastUtil; import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import com.lxj.xpopup.XPopup; import com.lxj.xpopup.interfaces.OnSelectListener; import java.util.List; import de.greenrobot.event.EventBus; /** * @author fengxiaoyang * @date 2026/5/16 * @description TODO: 个人中心页面dev */ public class MineCenterFragment extends BaseFragment 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.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); } private void setClick(View view) { view.setOnClickListener(this::onClick); } public void onClick(View v){ switch (v.getId()){ 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( "选择语言", new String[]{"中文", "English"}, new int[]{R.mipmap.icon_langage_chinese, R.mipmap.icon_langage_eng}, 0, new OnSelectListener() { @Override public void onSelect(int position, String text) { ToastUtil.showShort(mContext,text); } }, 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()); } } /** * 退出登录 * @param bean */ @Override public void logOutSuccess(BaseBean bean) { WaterUserInfoManager.getInstance().clearUser(mContext); ActivityManager.removeAllActivity(); goTo(mContext, LoginActivity.class,null); } @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) { } }