From b2d2e6dcf6ec38a2f24721f2bc925d634a6eb78d Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期二, 05 十二月 2023 18:31:01 +0800
Subject: [PATCH] 2023年12月05日18:30:40

---
 app/src/main/java/com/hdl/photovoltaic/ui/me/PersonalDataActivity.java |  149 ++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 138 insertions(+), 11 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..a06881c 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,18 @@
 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.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 +20,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 +35,11 @@
  */
 public class PersonalDataActivity extends CustomBaseActivity {
     private ActivityPersonalDataBinding viewBinding;
+
+    private CameraAlbumPopWindow cameraAlbumPopWindow;
     //澶村儚鍦板潃
-    private String mMemberHeadIcon;
+    private String mMemberHeadIconUrl;
+
 
     @Override
     public Object getContentView() {
@@ -36,7 +51,7 @@
     public void onBindView(Bundle savedInstanceState) {
         setNotificationBarBackgroundColor(CustomColor.white);
         setStatusBarTextColor();
-        mMemberHeadIcon = getIntent().getStringExtra("memberHeadIcon");
+        mMemberHeadIconUrl = getIntent().getStringExtra("memberHeadIcon");
         //鍒濆鍖�
         initView();
         //鍒濆鍖栫晫闈㈢洃鍚櫒
@@ -46,16 +61,38 @@
     }
 
     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) {
+                Intent intent = new Intent();
+                intent.putExtra("memberHeadIcon", mMemberHeadIconUrl);
+                intent.putExtra("memberName", UserConfigManage.getInstance().getUserName());
+                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 +100,7 @@
                 changedNickname();
             }
         });
+
 
     }
 
@@ -74,9 +112,55 @@
         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();
+                                }
+
+                                @Override
+                                public void onFailure(HDLException e) {
+                                    HdlLogLogic.print("uploadUserHeadImage error:" + e.getMsg());
+//                                    hideLoading();
+                                }
+                            });
+                        }
+
+                        @Override
+                        public void onFailure(HDLException error) {
+                            HdlLogLogic.print("uploadUserHeadImage error:" + error.getMsg());
+                        }
+                    });
+                }
+            });
+            cameraAlbumPopWindow.show(viewBinding.getRoot(), Gravity.BOTTOM, 0, 0);
+        }
+
     }
 
 
@@ -86,6 +170,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 +179,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);
@@ -121,4 +206,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