first
This commit is contained in:
@@ -0,0 +1,214 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user