From 4598b51c90c695c9ccbe5350a84e4a46b9d8e587 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期三, 22 五月 2024 20:19:02 +0800 Subject: [PATCH] 2024年05月22日20:18:54 --- app/src/main/java/com/hdl/photovoltaic/ui/me/PersonalDataActivity.java | 225 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 212 insertions(+), 13 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..8884874 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,23 @@ 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.text.TextUtils; +import android.view.Gravity; import android.view.View; + +import androidx.activity.result.ActivityResultLauncher; + + 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; @@ -14,8 +26,14 @@ import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.other.HdlAccountLogic; 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; /** @@ -23,8 +41,12 @@ */ public class PersonalDataActivity extends CustomBaseActivity { private ActivityPersonalDataBinding viewBinding; + + private CameraAlbumPopWindow cameraAlbumPopWindow; //澶村儚鍦板潃 - private String mMemberHeadIcon; + private String mMemberHeadIconUrl; + private ActivityResultLauncher<String[]> generalPermission; + @Override public Object getContentView() { @@ -36,7 +58,7 @@ public void onBindView(Bundle savedInstanceState) { setNotificationBarBackgroundColor(CustomColor.white); setStatusBarTextColor(); - mMemberHeadIcon = getIntent().getStringExtra("memberHeadIcon"); + mMemberHeadIconUrl = UserConfigManage.getInstance().getUserImageUrl(); //鍒濆鍖� initView(); //鍒濆鍖栫晫闈㈢洃鍚櫒 @@ -46,16 +68,57 @@ } private void initData() { - viewBinding.toolbarTopFragmentMeRl.topBackBtn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); +// 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.topBackLl.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 @@ -64,19 +127,70 @@ } }); + } private void initView() { viewBinding.toolbarTopFragmentMeRl.topTitleTv.setText(R.string.me_personal_data); - viewBinding.toolbarTopFragmentMeRl.topBackBtn.setVisibility(View.VISIBLE); + viewBinding.toolbarTopFragmentMeRl.topBackLl.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); - 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()); + //涓婁紶澶村儚鍦板潃 + 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); + } + } @@ -86,6 +200,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)); @@ -94,7 +209,7 @@ confirmationInputDialog.setYesOnclickListener(new ConfirmationInputDialog.onYesOnclickListener() { @Override public void Confirm(String str) { - HdlAccountLogic.getInstance().updateMemberInfo_C("", str, "", "", "", "", new CloudCallBeak<Boolean>() { + HdlAccountLogic.getInstance().updateMemberName_C(str, new CloudCallBeak<Boolean>() { @Override public void onSuccess(Boolean obj) { UserConfigManage.getInstance().setUserName(str); @@ -102,11 +217,12 @@ 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.getMessage(), e.getCode()); + HdlThreadLogic.tipFlashingBox(_mActivity, false, e.getMsg(), e.getCode()); } }); @@ -121,4 +237,87 @@ } } + + /** + * 鏄剧ず鐢ㄦ埛澶村儚 + */ + 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); + } + } + + } \ No newline at end of file -- Gitblit v1.8.0