From c6e503f9c7b46d9df78242222949dd7cb200cdc2 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期四, 30 十一月 2023 14:45:45 +0800 Subject: [PATCH] 2023年11月30日14:45:39 --- app/src/main/java/com/hdl/photovoltaic/ui/me/PersonalDataActivity.java | 148 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 138 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/me/PersonalDataActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/me/PersonalDataActivity.java index 1aa9e85..ab42849 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/me/PersonalDataActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/me/PersonalDataActivity.java @@ -1,11 +1,19 @@ package com.hdl.photovoltaic.ui.me; -import android.app.AppComponentFactory; +import android.Manifest; +import android.content.Intent; +import android.os.Build; import android.os.Bundle; +import android.view.Gravity; import android.view.View; import com.bumptech.glide.load.resource.bitmap.RoundedCorners; +import com.google.gson.JsonObject; +import com.hdl.linkpm.sdk.core.callback.IDefaultCallBack; +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; @@ -13,9 +21,14 @@ 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.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; /** @@ -23,8 +36,11 @@ */ public class PersonalDataActivity extends CustomBaseActivity { private ActivityPersonalDataBinding viewBinding; + + private CameraAlbumPopWindow cameraAlbumPopWindow; //澶村儚鍦板潃 - private String mMemberHeadIcon; + private String mMemberHeadIconUrl; + @Override public Object getContentView() { @@ -36,7 +52,7 @@ public void onBindView(Bundle savedInstanceState) { setNotificationBarBackgroundColor(CustomColor.white); setStatusBarTextColor(); - mMemberHeadIcon = getIntent().getStringExtra("memberHeadIcon"); + mMemberHeadIconUrl = getIntent().getStringExtra("memberHeadIcon"); //鍒濆鍖� initView(); //鍒濆鍖栫晫闈㈢洃鍚櫒 @@ -46,16 +62,40 @@ } private void initData() { - viewBinding.toolbarTopFragmentMeRl.topBackBtn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); + } private void initEvent() { + viewBinding.toolbarTopFragmentMeRl.topBackBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + //鏁版嵁鏄娇鐢↖ntent杩斿洖 + Intent intent = new Intent(); + //鎶婅繑鍥炴暟鎹瓨鍏ntent + intent.putExtra("memberHeadIcon", mMemberHeadIconUrl); + //璁剧疆杩斿洖鏁版嵁 + setResult(10, intent); + finish(); + } + }); + viewBinding.personalDataUserPortraitIl.getRoot().setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + //Manifest.permission.WRITE_EXTERNAL_STORAGE 璇诲啓璁惧涓婄殑鐓х墖浠ュ強鏂囦欢 + PermissionUtils.applyForRight(_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(); + } + }); + + } + }); viewBinding.personalDataUserNameIl.getRoot().setOnClickListener(new View.OnClickListener() { @Override @@ -63,6 +103,7 @@ changedNickname(); } }); + } @@ -74,9 +115,53 @@ 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); - GlideUtils.getRoundedCornersImage(_mActivity, this.mMemberHeadIcon, viewBinding.personalDataUserPortraitIl.sllLlRlRightContentIv, new RoundedCorners(4)); 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()); + HDLLinkPMUser.getInstance().updateMemberInfo(imageInfo, new IDefaultCallBack() { + @Override + public void onSuccess() { + mMemberHeadIconUrl = imageKey.getUrl(); + setMemberHeadIcon(); + } + + @Override + public void onFailure(HDLException error) { + HdlLogLogic.print("uploadUserHeadImage error:" + error.getMsg()); +// hideLoading(); + } + }); + } + + @Override + public void onFailure(HDLException error) { + HdlLogLogic.print("uploadUserHeadImage error:" + error.getMsg()); + } + }); + } + }); + cameraAlbumPopWindow.show(viewBinding.getRoot(), Gravity.BOTTOM, 0, 0); + } + } @@ -86,6 +171,7 @@ 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)); @@ -121,4 +207,46 @@ } } + + /** + * 鏄剧ず鐢ㄦ埛澶村儚 + */ + private void setMemberHeadIcon() { + GlideUtils.getRoundedCornersImage(_mActivity, mMemberHeadIconUrl, viewBinding.personalDataUserPortraitIl.sllLlRlRightContentIv, new RoundedCorners(4)); + } + + + @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; + } + } + } + } \ No newline at end of file -- Gitblit v1.8.0