package com.hdl.photovoltaic.ui.me;
|
|
import android.Manifest;
|
import android.content.Intent;
|
import android.os.Build;
|
import android.os.Bundle;
|
import android.text.TextUtils;
|
import android.view.Gravity;
|
import android.view.View;
|
|
|
import androidx.activity.result.ActivityResultLauncher;
|
import androidx.core.app.ActivityCompat;
|
|
|
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
import com.google.gson.JsonObject;
|
import com.hdl.linkpm.sdk.core.callback.IResponseCallBack;
|
import com.hdl.linkpm.sdk.core.exception.HDLException;
|
import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
|
import com.hdl.linkpm.sdk.user.bean.ImageSubmitInfo;
|
import com.hdl.photovoltaic.R;
|
import com.hdl.photovoltaic.base.CustomBaseActivity;
|
|
import com.hdl.photovoltaic.config.UserConfigManage;
|
import com.hdl.photovoltaic.databinding.ActivityPersonalDataBinding;
|
import com.hdl.photovoltaic.listener.CloudCallBeak;
|
import com.hdl.photovoltaic.other.HdlAccountLogic;
|
import com.hdl.photovoltaic.other.HdlLogLogic;
|
import com.hdl.photovoltaic.other.HdlThreadLogic;
|
import com.hdl.photovoltaic.other.HdlUniLogic;
|
import com.hdl.photovoltaic.uni.HDLUniMP;
|
import com.hdl.photovoltaic.utils.GlideUtils;
|
import com.hdl.photovoltaic.utils.PermissionUtils;
|
import com.hdl.photovoltaic.widget.ConfirmationInputDialog;
|
import com.hdl.photovoltaic.widget.popupview.CameraAlbumPopWindow;
|
|
import java.io.File;
|
|
|
/**
|
* 个人资料的界面
|
*/
|
public class PersonalDataActivity extends CustomBaseActivity {
|
private ActivityPersonalDataBinding viewBinding;
|
|
private CameraAlbumPopWindow cameraAlbumPopWindow;
|
//头像地址
|
private String mMemberHeadIconUrl;
|
private ActivityResultLauncher<String[]> generalPermission;
|
|
|
@Override
|
public Object getContentView() {
|
viewBinding = ActivityPersonalDataBinding.inflate(getLayoutInflater());
|
return viewBinding.getRoot();
|
}
|
|
@Override
|
public void onBindView(Bundle savedInstanceState) {
|
setNotificationBarBackgroundColor(CustomColor.white);
|
setStatusBarTextColor();
|
mMemberHeadIconUrl = UserConfigManage.getInstance().getUserImageUrl();
|
//初始化
|
initView();
|
//初始化界面监听器
|
initEvent();
|
//初始化数据
|
initData();
|
}
|
|
private void initData() {
|
// generalPermission = registerForActivityResult(new ActivityResultContracts.RequestMultiplePermissions(), new ActivityResultCallback<Map<String, Boolean>>() {
|
// @Override
|
// public void onActivityResult(Map<String, Boolean> result) {
|
//
|
// }
|
// });
|
// generalPermission.launch(new String[]{});
|
|
// generalPermission = registerForActivityResult(new ActivityResultContracts.RequestMultiplePermissions(), new ActivityResultCallback<Map<String, Boolean>>() {
|
// @Override
|
// public void onActivityResult(Map<String, Boolean> result) {
|
//
|
//// if (value == PermissionUtils.STATUS_REFUSE_PERMANENT) {
|
//// HdlThreadLogic.toast(_mActivity, R.string.permission_open);
|
//// return;
|
//// }
|
// changedUserAvatar();
|
// }
|
// });
|
|
}
|
|
private void initEvent() {
|
|
viewBinding.toolbarTopFragmentMeRl.topBackBtn.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
// backPressedData();
|
finish();
|
}
|
});
|
viewBinding.personalDataUserPortraitIl.getRoot().setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
public void onClick(View v) {
|
//Manifest.permission.WRITE_EXTERNAL_STORAGE 读写设备上的照片以及文件
|
//generalPermission.launch(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE});
|
|
PermissionUtils.requestPermissionsResultCallback(_mActivity, Manifest.permission.WRITE_EXTERNAL_STORAGE, new PermissionUtils.PermissionState() {
|
@Override
|
public void Success(int value) {
|
if (value == PermissionUtils.STATUS_REFUSE_PERMANENT) {
|
// HdlThreadLogic.toast(_mActivity, R.string.permission_open);
|
return;
|
}
|
changedUserAvatar();
|
}
|
}, true);
|
|
}
|
});
|
|
viewBinding.personalDataUserNameIl.getRoot().setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
changedNickname();
|
}
|
});
|
|
|
}
|
|
private void initView() {
|
viewBinding.toolbarTopFragmentMeRl.topTitleTv.setText(R.string.me_personal_data);
|
viewBinding.toolbarTopFragmentMeRl.topBackBtn.setVisibility(View.VISIBLE);
|
viewBinding.toolbarTopFragmentMeRl.topTitleTv.setTextColor(getResources().getColor(R.color.text_030D1C, null));
|
viewBinding.toolbarTopFragmentMeRl.topBarView.setBackgroundColor(getResources().getColor(R.color.text_FFFFFFFF, null));
|
viewBinding.personalDataUserPortraitIl.sllLlRlNameTv.setText(R.string.me_personal_data_portrait);
|
viewBinding.personalDataUserNameIl.sllLlRlNameTv.setText(R.string.me_personal_data_user_name);
|
viewBinding.personalDataUserPortraitIl.sllLlRlRightContentIv.setVisibility(View.VISIBLE);
|
viewBinding.personalDataUserNameIl.sllLlRlRightContentTv.setVisibility(View.VISIBLE);
|
viewBinding.personalDataUserNameIl.sllLlRlRightContentTv.setText(UserConfigManage.getInstance().getUserName());
|
setMemberHeadIcon();
|
}
|
|
|
/**
|
* 更改用户头像;
|
*/
|
private void changedUserAvatar() {
|
if (UserConfigManage.getInstance().isBAccount()) {
|
//todo B端不支持更改昵称
|
HdlThreadLogic.toast(_mActivity, R.string.loading_not_supported);
|
} else {
|
cameraAlbumPopWindow = new CameraAlbumPopWindow(_mActivity, new CameraAlbumPopWindow.CameraAlbumListener() {
|
@Override
|
public void successCallBack(final File a) {
|
//上传头像文件
|
HDLLinkPMUser.getInstance().uploadUserHeadImage(a, new IResponseCallBack<ImageSubmitInfo>() {
|
@Override
|
public void onSuccess(ImageSubmitInfo imageKey) {
|
JsonObject imageInfo = new JsonObject();
|
imageInfo.addProperty("memberHeadIcon", imageKey.getUrl());
|
//上传头像地址
|
HdlAccountLogic.getInstance().updateMemberHeadIcon_C(imageKey.getUrl(), new CloudCallBeak<Boolean>() {
|
@Override
|
public void onSuccess(Boolean obj) {
|
mMemberHeadIconUrl = imageKey.getUrl();
|
setMemberHeadIcon();
|
backPressedData();
|
}
|
|
@Override
|
public void onFailure(HDLException e) {
|
|
HdlThreadLogic.toast(_mActivity, e);
|
// HdlLogLogic.print("uploadUserHeadImage error:" + error.getMsg());
|
// hideLoading();
|
}
|
});
|
}
|
|
@Override
|
public void onFailure(HDLException e) {
|
// HdlThreadLogic.tipFlashingBox(_mActivity, false, e.getMsg(), e.getCode());
|
HdlThreadLogic.toast(_mActivity, e);
|
}
|
});
|
}
|
});
|
cameraAlbumPopWindow.show(viewBinding.getRoot(), Gravity.BOTTOM, 0, 0);
|
}
|
|
}
|
|
|
/**
|
* 修改用户昵称
|
*/
|
private void changedNickname() {
|
if (UserConfigManage.getInstance().isBAccount()) {
|
//todo B端不支持更改昵称
|
HdlThreadLogic.toast(_mActivity, R.string.loading_not_supported);
|
} else {
|
ConfirmationInputDialog confirmationInputDialog = new ConfirmationInputDialog(_mActivity);
|
confirmationInputDialog.setTitle(getString(R.string.set_nickname_modification));
|
confirmationInputDialog.setEditContent(UserConfigManage.getInstance().getUserName());
|
confirmationInputDialog.show();
|
confirmationInputDialog.setYesOnclickListener(new ConfirmationInputDialog.onYesOnclickListener() {
|
@Override
|
public void Confirm(String str) {
|
HdlAccountLogic.getInstance().updateMemberName_C(str, new CloudCallBeak<Boolean>() {
|
@Override
|
public void onSuccess(Boolean obj) {
|
UserConfigManage.getInstance().setUserName(str);
|
UserConfigManage.getInstance().Save();
|
viewBinding.personalDataUserNameIl.sllLlRlRightContentTv.setText(UserConfigManage.getInstance().getUserName());
|
confirmationInputDialog.dismiss();
|
HdlThreadLogic.tipFlashingBox(_mActivity, true, getString(R.string.home_login_change_name_succeed), 0);
|
backPressedData();
|
}
|
|
@Override
|
public void onFailure(HDLException e) {
|
HdlThreadLogic.tipFlashingBox(_mActivity, false, e.getMsg(), e.getCode());
|
}
|
});
|
|
}
|
});
|
confirmationInputDialog.setNoOnclickListener(new ConfirmationInputDialog.onNoOnclickListener() {
|
@Override
|
public void Cancel() {
|
confirmationInputDialog.dismiss();
|
}
|
});
|
}
|
|
}
|
|
/**
|
* 显示用户头像
|
*/
|
private void setMemberHeadIcon() {
|
if (UserConfigManage.getInstance().isBAccount()) {
|
GlideUtils.getRoundedCornersImage(_mActivity, mMemberHeadIconUrl, viewBinding.personalDataUserPortraitIl.sllLlRlRightContentIv, new RoundedCorners(4), true);
|
} else {
|
GlideUtils.getCircleCropImage(_mActivity, mMemberHeadIconUrl, viewBinding.personalDataUserPortraitIl.sllLlRlRightContentIv, true);
|
|
}
|
}
|
|
|
@Override
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
super.onActivityResult(requestCode, resultCode, data);
|
if (requestCode == CameraAlbumPopWindow.TAKE_PHOTO || requestCode == CameraAlbumPopWindow.SELECT_PHOTO) {
|
if (cameraAlbumPopWindow == null) {
|
return;
|
}
|
switch (requestCode) {
|
//打开相机后返回
|
case CameraAlbumPopWindow.TAKE_PHOTO:
|
if (resultCode == RESULT_OK) {
|
//这种方法是通过内存卡的路径进行读取图片,所以的到的图片是拍摄的原图
|
cameraAlbumPopWindow.displayImage();
|
}
|
break;
|
//打开相册后返回
|
case CameraAlbumPopWindow.SELECT_PHOTO:
|
if (resultCode == RESULT_OK) {
|
//判断手机系统版本号
|
if (Build.VERSION.SDK_INT > 19) {
|
//4.4及以上系统使用这个方法处理图片
|
cameraAlbumPopWindow.handleImgeOnKitKat(data);
|
} else {
|
cameraAlbumPopWindow.handleImageBeforeKitKat(data);
|
}
|
}
|
break;
|
default:
|
break;
|
}
|
}
|
}
|
|
/**
|
* 物理按键返回事件
|
*/
|
@Override
|
public void onBackPressed() {
|
// backPressedData();
|
super.onBackPressed();
|
}
|
|
/**
|
* 返回给上一级界面数据
|
*/
|
private void backPressedData() {
|
|
if (UserConfigManage.getInstance().isBAccount()) {
|
Intent intent = new Intent();
|
intent.putExtra("memberHeadIcon", mMemberHeadIconUrl);
|
intent.putExtra("memberName", UserConfigManage.getInstance().getUserName());
|
setResult(10, intent);
|
} else {
|
//通知给小程序更新头像或者用户名
|
HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
|
JsonObject jsonObject = new JsonObject();
|
if (!TextUtils.isEmpty(mMemberHeadIconUrl)) {
|
jsonObject.addProperty("memberHeadIcon", mMemberHeadIconUrl);
|
}
|
if (!TextUtils.isEmpty(UserConfigManage.getInstance().getUserName())) {
|
jsonObject.addProperty("memberName", UserConfigManage.getInstance().getUserName());
|
}
|
uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_USERINFO);
|
uniCallBackBaseBean.setData(jsonObject);
|
HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
|
}
|
}
|
|
|
}
|