package com.ckkj.water.mine; import android.Manifest; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.alibaba.sdk.android.oss.ClientException; import com.alibaba.sdk.android.oss.ServiceException; import com.bumptech.glide.Glide; import com.ckkj.water.R; import com.ckkj.water.base.BaseActivity; import com.ckkj.water.base.entity.MineUserInfoBean; import com.ckkj.water.databinding.MineInformationLayoutBinding; 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.LubanCompressUtil; import com.ckkj.water.utils.PreviewFileUtil; import com.ckkj.water.utils.dataUtil.FileUtil; import com.ckkj.water.utils.manager.MingDengUserInfoManager; import com.ckkj.water.utils.show.ToastUtil; import com.esafirm.imagepicker.features.ImagePicker; import com.esafirm.imagepicker.model.Image; import com.gyf.immersionbar.ImmersionBar; import com.lxj.xpopup.XPopup; import com.lxj.xpopup.interfaces.OnSelectListener; import java.io.File; import java.util.ArrayList; import java.util.List; import pub.devrel.easypermissions.EasyPermissions; /** * @author fengxiaoyang * @date 2026/5/16 * @description TODO: 个人信息详情页面 */ public class MineInfomationActivity extends BaseActivity implements MineContract.MineView, EasyPermissions.PermissionCallbacks{ @Override public MinePresenter createPresenter() { return new MinePresenter(new MineImpl()); } @Override public void initData(Bundle savedInstanceState) { super.initData(savedInstanceState); ImmersionBar.with(this) .statusBarColor(R.color.white) // 设置状态栏颜色 .statusBarDarkFont(true) // 设置状态栏字体为黑色 .titleBar(viewBinding.rlTitle) .init(); viewBinding.includedTitle.tvTitle.setText(R.string.mine_infomation_title); initListener(); } private void initListener() { setClick(viewBinding.includedTitle.imgBack); setClick(viewBinding.imgAvatar); setClick(viewBinding.imgCamera); } private void setClick(View view) { view.setOnClickListener(this::onClick); } public void onClick(View v){ switch (v.getId()){ case R.id.img_back: finish(); break; case R.id.img_avatar: case R.id.img_camera: new XPopup.Builder(mContext).asBottomList("选择头像", new String[]{"上传头像", "查看大图"}, new OnSelectListener() { @Override public void onSelect(int position, String text) { switch (position) { case 0: String readPermission = Manifest.permission.READ_EXTERNAL_STORAGE; if (!hasRecordPermission(readPermission)) { // 没有权限,只在ACTION_DOWN时去申请 getPermissionRequst(readPermission,"相册权限申请", "智能浇水需要您的授权,获取相册修改头像",REQUEST_EVENT_CODE_10001); return; }else{ imagePicker(1,PICK_IMAGE_REQUEST_100); } break; case 1: String suffix = FileUtil.getFileSuffixWithQuestion(MingDengUserInfoManager.getInstance().getUserInfo().getAvatar()); PreviewFileUtil.previewFiles(mContext, suffix, MingDengUserInfoManager.getInstance().getUserInfo().getAvatar()); break; } } }).show(); break; } } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if(data != null){ Bundle bundle = data.getExtras(); if(resultCode == RESULT_OK){ switch (requestCode){ case PICK_IMAGE_REQUEST_100: showLoadingDialog(); List images = ImagePicker.getImages(data); if (images != null && !images.isEmpty()) { Image image = images.get(0); File file = new File(image.getPath()); getCompressFile(file); } break; } } } } private void getCompressFile(File file) { LubanCompressUtil.getInstance().getCompressFile(mContext, file, new LubanCompressUtil.CompressCallback() { @Override public void success(File file) { if (file != null) { if (file.exists()) { long fileSizeInBytes = file.length(); // 获取文件大小(字节) long fileSizeInMB = fileSizeInBytes / (1024 * 1024); // 转换为MB String fileName = file.getName(); if (fileSizeInMB > 5) { hideDialogLoading(); ToastUtil.showShort(mContext, "文件大小超出5M"); return; } if (!fileName.toLowerCase().endsWith(".png") && !fileName.toLowerCase().endsWith(".jpg") && !fileName.toLowerCase().endsWith(".jpeg")) { ToastUtil.showShort(mContext, "文件格式不正确"); hideDialogLoading(); return; } hideDialogLoading(); ToastUtil.showShort(mContext,"头像修改成功"); Glide.with(mContext) .load(file) .error(mContext.getDrawable(R.mipmap.icon_mine_user_head_defaul)) .into(viewBinding.imgAvatar); } else { ToastUtil.showShort(mContext, "文件不存在"); } } } @Override public void fail(String failMsg) { } }); } @Override public int getLayoutResId(Bundle savedInstanceState) { return 0; } @Override public void showError(String message) { } @Override public void logOut(BaseBean bean) { } @Override public void onPermissionsGranted(int requestCode, @NonNull List perms) { } @Override public void onPermissionsDenied(int requestCode, @NonNull List perms) { } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this); hidePermissionDialog(); if(requestCode == REQUEST_EVENT_CODE_10001){ if(grantResults[0] == 0){ imagePicker(1,PICK_IMAGE_REQUEST_100); } } } }