215 lines
7.8 KiB
Java
215 lines
7.8 KiB
Java
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<MineInformationLayoutBinding, MinePresenter>
|
||
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<Image> 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<String> perms) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void onPermissionsDenied(int requestCode, @NonNull List<String> 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);
|
||
}
|
||
}
|
||
}
|
||
}
|