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