From f10cda784bede39a861566850898747c38e6c94f Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 21 一月 2025 15:32:54 +0800
Subject: [PATCH] 2025年01月21日15:31:52

---
 app/src/main/res/values/strings.xml                                          |    6 
 app/src/main/AndroidManifest.xml                                             |   54 ++---
 app/src/main/res/layout/activity_account_and_security.xml                    |   39 ++-
 app/src/main/res/layout/activity_unregister.xml                              |  159 +++++++++++++++++
 app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java             |    3 
 app/src/main/res/values-zh/strings.xml                                       |    7 
 countrypicker/src/main/java/com/sahooz/library/countrypicker/Country.java    |   33 ++-
 app/src/main/java/com/hdl/photovoltaic/ui/me/UnregisterActivity.java         |  125 +++++++++++++
 app/src/main/res/values-en/strings.xml                                       |    6 
 app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java    |    4 
 app/src/main/java/com/hdl/photovoltaic/ui/me/AccountAndSecurityActivity.java |   10 
 app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java            |   30 +++
 countrypicker/src/main/java/com/sahooz/library/countrypicker/Adapter.java    |   10 
 13 files changed, 416 insertions(+), 70 deletions(-)

diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 54f1017..0ad6a98 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -5,33 +5,32 @@
 
     <uses-permission
         android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
-        tools:ignore="ProtectedPermissions" />
-
-
-<!--    &lt;!&ndash;Android13 鐓х墖&ndash;&gt;-->
-<!--    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />-->
-<!--    &lt;!&ndash;Android13 瑙嗛&ndash;&gt;-->
-<!--    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />-->
-    <!--Android13 闊抽-->
-    <!--    <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />-->
+        tools:ignore="ProtectedPermissions" /> <!-- &lt;!&ndash;Android13 鐓х墖&ndash;&gt; -->
+    <!-- <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> -->
+    <!-- &lt;!&ndash;Android13 瑙嗛&ndash;&gt; -->
+    <!-- <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> -->
+    <!-- Android13 闊抽 -->
+    <!-- <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /> -->
+    <uses-permission android:name="android.permission.VIBRATE" /> <!-- honor 瑙掓爣 -->
     <uses-permission android:name="android.permission.VIBRATE" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
-    <!--    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />&lt;!&ndash;澶栭儴瀛樺偍鐩綍璁块棶鏉冮檺 璋锋瓕play涓婃灦涓嶄簡&ndash;&gt;-->
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />&lt;!&ndash;澶栭儴瀛樺偍鐩綍璁块棶鏉冮檺 璋锋瓕play涓婃灦涓嶄簡&ndash;&gt; -->
     <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <!-- wifi鐘舵�佹潈闄� -->
     <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
     <uses-permission android:name="android.permission.INTERNET" /> <!-- 寮�鍚綉缁滄潈闄� -->
     <!-- 浣嶇疆淇℃伅 -->
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 濡傛灉鏄畨鍗�10.0锛岄渶瑕佸悗鍙拌幏鍙栬繛鎺ョ殑wifi鍚嶇О鍒欐坊鍔犺繘绋嬭幏鍙栦綅缃俊鎭潈闄� -->
+    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- android 10.0浣跨敤wifi api鏂版坊鍔犵殑鏉冮檺 -->
     <uses-permission android:name="android.permission.CAMERA" />
-    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
-    <!-- UNI鐩告満鍜屽瓨鍌ㄧ殑鏉冮檺 -->
+    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- UNI鐩告満鍜屽瓨鍌ㄧ殑鏉冮檺 -->
     <uses-feature android:name="android.hardware.camera" />
     <uses-feature android:name="android.hardware.camera.autofocus" />
 
     <uses-permission android:name="android.permission.RECORD_AUDIO" /> <!-- 璁块棶闂厜鐏� -->
+    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- Optional. Required for location feature -->
+    <!-- 涓轰簡鎻愰珮sdk璇嗗埆鍞竴鐢ㄦ埛鐨勮兘鍔涳紝淇濊瘉娑堟伅鎺ㄩ�佺殑绮惧噯閫佽揪锛屽缓璁泦鎴愪互涓嬫潈闄愶紙鍙�夛級 -->
     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
     <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
     <uses-permission android:name="android.permission.GET_TASKS" />
@@ -40,18 +39,13 @@
     <uses-permission android:name="android.permission.WAKE_LOCK" />
     <uses-permission android:name="android.permission.CALL_PHONE" />
     <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
-    <uses-permission android:name="android.permission.BLUETOOTH" /> <!-- Optional. Required for location feature -->
-    <!-- 涓轰簡鎻愰珮sdk璇嗗埆鍞竴鐢ㄦ埛鐨勮兘鍔涳紝淇濊瘉娑堟伅鎺ㄩ�佺殑绮惧噯閫佽揪锛屽缓璁泦鎴愪互涓嬫潈闄愶紙鍙�夛級 -->
-    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
-    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
-    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 濡傛偍闇�瑕佹帴鍏ュ湴鐞嗗洿鏍忎笟鍔★紝寤鸿闆嗘垚浠ヤ笅鏉冮檺锛堝彲閫夛級 -->
+    <uses-permission android:name="android.permission.BLUETOOTH" />
+    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" /> <!-- 濡傛偍闇�瑕佹帴鍏ュ湴鐞嗗洿鏍忎笟鍔★紝寤鸿闆嗘垚浠ヤ笅鏉冮檺锛堝彲閫夛級 -->
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
-    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
-<!--    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> &lt;!&ndash; 濡傛偍闇�瑕佸搴旇澶囬�氱煡鐩稿叧鐨勮兘鍔涳紝寤鸿闆嗘垚浠ヤ笅鏉冮檺锛堝彲閫夛級 &ndash;&gt;-->
+    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> &lt;!&ndash; 濡傛偍闇�瑕佸搴旇澶囬�氱煡鐩稿叧鐨勮兘鍔涳紝寤鸿闆嗘垚浠ヤ笅鏉冮檺锛堝彲閫夛級 &ndash;&gt; -->
     <uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" /> <!-- 鍗庝负瑙掓爣 -->
     <uses-permission android:name="com.vivo.notification.permission.BADGE_ICON" /> <!-- VIVO瑙掓爣鏉冮檺 -->
-    <uses-permission android:name="com.hihonor.android.launcher.permission.CHANGE_BADGE" /> <!-- honor 瑙掓爣 -->
-    <uses-permission android:name="android.permission.VIBRATE" /> <!-- 鎸姩鍣ㄦ潈闄愶紝JPUSH鏀寔閫氱煡寮�鍚尟鍔ㄥ姛鑳斤紝灏忕背鎺ㄩ�佸繀椤� -->
+    <uses-permission android:name="com.hihonor.android.launcher.permission.CHANGE_BADGE" /> <!-- 鎸姩鍣ㄦ潈闄愶紝JPUSH鏀寔閫氱煡寮�鍚尟鍔ㄥ姛鑳斤紝灏忕背鎺ㄩ�佸繀椤� -->
     <!-- 鎵╁睍澶囩敤鏉冮檺锛堝彲閫夛級 -->
     <permission
         android:name="${applicationId}.permission.JOPERATE_MESSAGE"
@@ -65,6 +59,10 @@
     <uses-permission android:name="com.hdl.photovoltaic.permission.JPUSH_MESSAGE" /> <!-- 閫傞厤Android13锛屽脊鍑洪�氱煡蹇呴』鏉冮檺 -->
     <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
 
+    <queries>
+        <package android:name="com.hdl.photovoltaic.services" />
+    </queries>
+
     <application
         android:name=".HDLApp"
         android:allowBackup="true"
@@ -74,6 +72,9 @@
         android:requestLegacyExternalStorage="true"
         android:supportsRtl="true"
         android:theme="@style/Theme.PhotovoltaicDebug">
+        <activity
+            android:name=".ui.me.UnregisterActivity"
+            android:exported="false" />
         <activity
             android:name=".ui.newC.PowerStationsMoveActivity"
             android:exported="false" />
@@ -186,10 +187,8 @@
                 android:name="android.support.FILE_PROVIDER_PATHS"
                 android:resource="@xml/provider_paths"
                 tools:replace="android:resource" />
-        </provider>
-        <!-- 娉ㄥ唽鏈嶅姟 -->
+        </provider> <!-- 娉ㄥ唽鏈嶅姟 -->
         <service android:name=".internet.HttpServer.MyNanoHttpService" /> <!-- 鍔犲畠uniapp鎵嶈兘鍞よ捣鐩告満 -->
-
         <provider
             android:name="io.dcloud.common.util.DCloud_FileProvider"
             android:authorities="com.hdl.photovoltaic.dc.fileprovider"
@@ -226,7 +225,6 @@
         <service
             android:name="org.eclipse.paho.android.service.MqttService"
             android:exported="false" />
-
         <service
             android:name=".services.UniappService"
             android:enabled="true"
@@ -246,7 +244,5 @@
             android:name="ScopedStorage"
             android:value="true" />
     </application>
-    <queries>
-        <package android:name="com.hdl.photovoltaic.services" />
-    </queries>
+
 </manifest>
\ No newline at end of file
diff --git a/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java b/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
index 5540907..598e528 100644
--- a/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
+++ b/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
@@ -198,7 +198,8 @@
     public static final String C_POST_HOME_UPDATEDEBUGPERM = "/home-wisdom/app/home/updateDebugPerm";
     //涓嬭浇瀛愯处鍙峰ご鍍�
     public static final String C_POST_HOME_GETHEADP脧ORTRAIT = "/home-wisdom/app/child/account/getHeadP脧ortrait";
-
+    //娉ㄩ攢璐﹀彿
+    public static final String C_POST_MEMBER_UNREGISTER = "/basis-footstone/member/unregister";
 
     //endregion
     //endregion
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java
index 46274d9..f9ab16a 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java
@@ -687,6 +687,36 @@
     }
 
     /**
+     * 娉ㄩ攢璐﹀彿(C绔处鍙�)
+     *
+     * @param pwd           璐﹀彿瀵嗙爜
+     * @param cloudCallBeak -
+     */
+    public void accountUnregisterC(String pwd, CloudCallBeak<Boolean> cloudCallBeak) {
+        String requestUrl = HttpApi.C_POST_MEMBER_UNREGISTER;
+        JsonObject json = new JsonObject();
+        json.addProperty("userId", UserConfigManage.getInstance().getUserId());
+        json.addProperty("pwd", pwd);
+        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
+            @Override
+            public void onSuccess(String jsonStr) {
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onSuccess(true);
+                }
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onFailure(e);
+                }
+            }
+        });
+
+
+    }
+
+    /**
      * 鐧诲綍鎴愬姛淇濆瓨鐧诲綍淇℃伅
      */
     private void saveUserData(HDLLoginBean obj) {
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/me/AccountAndSecurityActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/me/AccountAndSecurityActivity.java
index b17834e..7b0f20b 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/me/AccountAndSecurityActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/me/AccountAndSecurityActivity.java
@@ -28,7 +28,7 @@
 
     @Override
     public void onBindView(Bundle savedInstanceState) {
-       setStatusBarTranslucent();
+        setStatusBarTranslucent();
         getWindow().setNavigationBarColor(getColor(R.color.text_FF000000));
         //鍒濆鍖�
         initView();
@@ -70,10 +70,10 @@
             }
         });
 
-        viewBinding.setAccountClose.setOnClickListener(new View.OnClickListener() {
+        viewBinding.setAccountCloseIl.getRoot().setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-
+                startActivity(UnregisterActivity.class);
             }
         });
 
@@ -88,6 +88,7 @@
             //浜戠鎺ュ彛涓嶆敮鎸�
             viewBinding.setAccountPhoneIl.parentCl.setVisibility(View.GONE);
             viewBinding.setAccountMailIl.parentCl.setVisibility(View.GONE);
+            viewBinding.setAccountCloseIl.parentCl.setVisibility(View.GONE);
         } else {
             viewBinding.setAccountPhoneIl.parentCl.setVisibility(View.VISIBLE);
             viewBinding.setAccountMailIl.parentCl.setVisibility(View.VISIBLE);
@@ -98,6 +99,9 @@
 
             viewBinding.setAccountMailIl.sllLlRlNameTv.setText(R.string.set_email_address);
             viewBinding.setAccountMailIl.sllLlRlRightContentTv.setVisibility(View.VISIBLE);
+
+            viewBinding.setAccountCloseIl.sllLlRlNameTv.setText(R.string.set_close_account);
+            viewBinding.setAccountCloseIl.sllLlRlRightContentTv.setVisibility(View.VISIBLE);
         }
 
         viewBinding.setChangePswIl.sllLlRlNameTv.setText(R.string.home_login_change_password);
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/me/UnregisterActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/me/UnregisterActivity.java
new file mode 100644
index 0000000..4fac92c
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/me/UnregisterActivity.java
@@ -0,0 +1,125 @@
+package com.hdl.photovoltaic.ui.me;
+
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.text.method.HideReturnsTransformationMethod;
+import android.text.method.PasswordTransformationMethod;
+import android.view.View;
+
+import androidx.appcompat.content.res.AppCompatResources;
+
+import com.hdl.linkpm.sdk.core.exception.HDLException;
+import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
+import com.hdl.photovoltaic.R;
+import com.hdl.photovoltaic.base.CustomBaseActivity;
+import com.hdl.photovoltaic.config.UserConfigManage;
+import com.hdl.photovoltaic.databinding.ActivityUnregisterBinding;
+import com.hdl.photovoltaic.listener.CloudCallBeak;
+import com.hdl.photovoltaic.other.HdlAccountLogic;
+import com.hdl.photovoltaic.other.HdlThreadLogic;
+import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
+
+/**
+ * 娉ㄩ攢璐﹀彿鐨勭晫闈�
+ */
+public class UnregisterActivity extends CustomBaseActivity {
+    private ActivityUnregisterBinding viewBinding;
+
+    @Override
+    public Object getContentView() {
+        viewBinding = ActivityUnregisterBinding.inflate(getLayoutInflater());
+        return viewBinding.getRoot();
+    }
+
+    @Override
+    public void onBindView(Bundle savedInstanceState) {
+        setStatusBarTranslucent();
+        getWindow().setNavigationBarColor(getColor(R.color.text_FF000000));
+        //鍒濆鍖�
+        initView();
+        //鍒濆鍖栫晫闈㈢洃鍚櫒
+        initEvent();
+    }
+
+    private void initEvent() {
+        viewBinding.toolbarTopRl.topBackLl.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+
+                finish();
+            }
+        });
+        //瀵嗙爜闅愯棌鎸夐挳
+        viewBinding.pswHideIv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (v.isSelected()) {
+                    v.setSelected(false);
+                    viewBinding.pswHideIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.hide));
+                    viewBinding.pswEt.setTransformationMethod(PasswordTransformationMethod.getInstance());
+                } else {
+                    v.setSelected(true);
+                    viewBinding.pswHideIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.show));
+                    viewBinding.pswEt.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
+
+
+                }
+                if (!TextUtils.isEmpty(viewBinding.pswEt.getText())) {
+                    viewBinding.pswEt.setSelection(viewBinding.pswEt.getText().length());
+                }
+            }
+        });
+        viewBinding.immediateCancellationTv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                String pswStr = viewBinding.pswEt.getText().toString();
+                if (TextUtils.isEmpty(pswStr)) {
+                    HdlThreadLogic.tipFlashingBox(_mActivity, false, getString(R.string.home_login_error_password_null), -1);
+                    return;
+                }
+                HdlAccountLogic.getInstance().accountUnregisterC(pswStr, new CloudCallBeak<Boolean>() {
+                    @Override
+                    public void onSuccess(Boolean obj) {
+                        logoutRequest();
+                    }
+
+                    @Override
+                    public void onFailure(HDLException e) {
+                        HdlThreadLogic.tipFlashingBox(_mActivity, false, e.getMsg(), e.getCode());
+                    }
+                });
+            }
+        });
+    }
+
+    private void initView() {
+        viewBinding.toolbarTopRl.topTitleTv.setText(R.string.immediate_cancellation);
+        viewBinding.toolbarTopRl.topBackLl.setVisibility(View.VISIBLE);
+        viewBinding.accEt.setText(UserConfigManage.getInstance().getAccount());
+    }
+
+    /**
+     * 閫�鍑虹櫥褰曡姹傜殑鏂规硶
+     */
+    private void logoutRequest() {
+        // 浜屾纭鎻愮ず妗�
+        ConfirmationCancelDialog dialog = new ConfirmationCancelDialog(this);
+        dialog.show();
+        dialog.setContent(getString(R.string.confirm_account));
+        dialog.isHideTitle(true);
+        dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
+            @Override
+            public void Confirm() {
+                dialog.dismiss();
+                HDLLinkPMUser.getInstance().logout(0);
+            }
+        });
+        dialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() {
+            @Override
+            public void Cancel() {
+                dialog.dismiss();
+            }
+        });
+
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java b/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java
index d7decc0..b48aa9d 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java
@@ -126,11 +126,11 @@
             public void onClick(View v) {
 
                 // 鏈巿鏉� 濡傛灉搴旂敤绋嬪簭娌℃湁鎵�闇�鐨勬潈闄愶紝鍒欐樉绀鸿В閲婅鏄�
-//                PermissionExplanationDialog.getInstance().showPortConflictPdDialog(_mActivity, getString(R.string.camera_storage_instructions), getString(R.string.camera_storage_purpose));
+                PermissionExplanationDialog.getInstance().showPortConflictPdDialog(_mActivity, getString(R.string.camera_storage_instructions), getString(R.string.camera_storage_purpose));
                 PermissionUtils.requestPermissionsResultCallback(_mActivity, Manifest.permission.CAMERA, new PermissionUtils.PermissionState() {
                     @Override
                     public void Success(int value) {
-//                        PermissionExplanationDialog.getInstance().dismiss();
+                        PermissionExplanationDialog.getInstance().dismiss();
                         if (value == PermissionUtils.STATUS_REFUSE_PERMANENT | value == PermissionUtils.STATUS_REFUSE) {
 //                            HdlThreadLogic.toast(_mActivity, R.string.permission_open);
                             return;
diff --git a/app/src/main/res/layout/activity_account_and_security.xml b/app/src/main/res/layout/activity_account_and_security.xml
index c6ad23b..ad7d46a 100644
--- a/app/src/main/res/layout/activity_account_and_security.xml
+++ b/app/src/main/res/layout/activity_account_and_security.xml
@@ -47,25 +47,34 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/set_account_mail_il" />
 
-    <!--鏆傛椂闅愯棌娉ㄩ攢璐﹀彿缁勪欢-->
-    <TextView
-        android:id="@+id/set_account_close"
+    <include
+        android:id="@+id/set_account_close_il"
+        layout="@layout/set_line"
         android:layout_width="match_parent"
-        android:layout_height="@dimen/dp_52"
-        android:layout_marginStart="@dimen/dp_20"
-        android:layout_marginEnd="@dimen/dp_20"
-        android:layout_marginBottom="@dimen/dp_55"
-        android:background="@drawable/backgruond_ff6b6b"
-        android:gravity="center"
-        android:text="@string/set_close_account"
-        android:textColor="@color/text_FFFFFFFF"
-        android:textSize="@dimen/text_18"
-        android:visibility="gone"
-        app:layout_constraintBottom_toBottomOf="parent"
+        android:layout_height="@dimen/dp_57"
+        android:layout_marginTop="@dimen/dp_10"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/set_change_psw_il" />
 
-        />
+<!--    &lt;!&ndash;鏆傛椂闅愯棌娉ㄩ攢璐﹀彿缁勪欢&ndash;&gt;-->
+<!--    <TextView-->
+<!--        android:id="@+id/set_account_close"-->
+<!--        android:layout_width="match_parent"-->
+<!--        android:layout_height="@dimen/dp_52"-->
+<!--        android:layout_marginStart="@dimen/dp_20"-->
+<!--        android:layout_marginEnd="@dimen/dp_20"-->
+<!--        android:layout_marginBottom="@dimen/dp_55"-->
+<!--        android:background="@drawable/backgruond_ff6b6b"-->
+<!--        android:gravity="center"-->
+<!--        android:text="@string/set_close_account"-->
+<!--        android:textColor="@color/text_FFFFFFFF"-->
+<!--        android:textSize="@dimen/text_18"-->
+<!--        app:layout_constraintBottom_toBottomOf="parent"-->
+<!--        app:layout_constraintEnd_toEndOf="parent"-->
+<!--        app:layout_constraintStart_toStartOf="parent"-->
+
+<!--        />-->
 
 
 </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_unregister.xml b/app/src/main/res/layout/activity_unregister.xml
new file mode 100644
index 0000000..fa3e1ae
--- /dev/null
+++ b/app/src/main/res/layout/activity_unregister.xml
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/main"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/text_FF000000"
+    tools:context=".ui.me.UnregisterActivity">
+
+    <include
+        android:id="@+id/toolbar_top_rl"
+        layout="@layout/toolbar_top_view_44"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/dp_44"
+        android:layout_marginTop="@dimen/dp_38"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <TextView
+        android:id="@+id/title_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/dp_10"
+        android:lineSpacingExtra="2dp"
+        android:paddingStart="@dimen/dp_20"
+        android:paddingEnd="@dimen/dp_20"
+        android:text="@string/account_not_recoverable"
+        android:textColor="@color/text_66FFFFFF"
+        android:textSize="@dimen/text_14"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/toolbar_top_rl" />
+
+    <RelativeLayout
+        android:id="@+id/acc_parent_rl"
+        android:layout_width="match_parent"
+        android:layout_height="78dp"
+        android:layout_marginTop="@dimen/dp_25"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/title_tv">
+
+        <TextView
+            android:id="@+id/acc_title_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/dp_20"
+            android:layout_marginStart="@dimen/dp_20"
+            android:text="@string/account"
+            android:textColor="@color/text_E6FFFFFF"
+            android:textSize="@dimen/text_14" />
+
+        <RelativeLayout
+            android:id="@+id/bind_phone_rl"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/dp_50"
+            android:layout_below="@+id/acc_title_tv"
+            android:layout_marginStart="@dimen/dp_20"
+            android:layout_marginTop="@dimen/dp_8"
+            android:layout_marginEnd="@dimen/dp_20"
+            android:background="@drawable/me_change_psw_bj">
+
+            <EditText
+                android:id="@+id/acc_et"
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/dp_23"
+                android:layout_centerVertical="true"
+                android:layout_marginStart="@dimen/dp_16"
+                android:layout_marginEnd="@dimen/dp_60"
+                android:background="@null"
+                android:enabled="false"
+                android:inputType="phone"
+                android:lines="1"
+                android:maxLines="1"
+                android:textColor="@color/text_66FFFFFF"
+                android:textSize="@dimen/text_14" />
+
+        </RelativeLayout>
+    </RelativeLayout>
+
+    <RelativeLayout
+        android:id="@+id/psw_parent_rl"
+        android:layout_width="match_parent"
+        android:layout_height="78dp"
+        android:layout_marginTop="@dimen/dp_25"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/acc_parent_rl">
+
+        <TextView
+            android:id="@+id/psw_title_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/dp_20"
+            android:layout_marginStart="@dimen/dp_20"
+            android:text="@string/psw"
+            android:textColor="@color/text_E6FFFFFF"
+            android:textSize="@dimen/text_14" />
+
+        <!--杈撳叆鐧诲綍瀵嗙爜-->
+        <RelativeLayout
+            android:id="@+id/psw_rl"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/dp_50"
+            android:layout_below="@+id/psw_title_tv"
+            android:layout_marginStart="@dimen/dp_20"
+            android:layout_marginTop="@dimen/dp_8"
+            android:layout_marginEnd="@dimen/dp_20"
+            android:background="@drawable/me_change_psw_bj">
+
+
+            <EditText
+                android:id="@+id/psw_et"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_alignParentStart="true"
+                android:layout_marginStart="@dimen/dp_20"
+                android:layout_marginEnd="72dp"
+                android:background="@null"
+                android:hint="@string/home_login_input_psw"
+                android:inputType="textPassword"
+                android:lines="1"
+                android:maxLines="1"
+                android:textColor="@color/text_E6FFFFFF"
+                android:textColorHint="@color/text_66FFFFFF"
+                android:textSize="@dimen/text_14" />
+
+            <ImageView
+                android:id="@+id/psw_hide_iv"
+                android:layout_width="@dimen/dp_20"
+                android:layout_height="@dimen/dp_20"
+                android:layout_alignParentEnd="true"
+                android:layout_centerVertical="true"
+                android:layout_marginEnd="@dimen/dp_20"
+                android:src="@drawable/hide" />
+
+
+        </RelativeLayout>
+    </RelativeLayout>
+
+
+    <!--绔嬪嵆娉ㄩ攢-->
+    <TextView
+        android:id="@+id/immediate_cancellation__tv"
+        android:layout_width="match_parent"
+        android:layout_height="52dp"
+        android:layout_marginStart="@dimen/dp_20"
+        android:layout_marginTop="50dp"
+        android:layout_marginEnd="@dimen/dp_20"
+        android:background="@drawable/bj_ff39383d"
+        android:gravity="center"
+        android:text="@string/immediate_cancellation"
+        android:textColor="@color/text_E6FFFFFF"
+        android:textSize="14sp"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/psw_parent_rl" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml
index d0044ef..422aebd 100644
--- a/app/src/main/res/values-en/strings.xml
+++ b/app/src/main/res/values-en/strings.xml
@@ -339,5 +339,9 @@
     <string name="agree">Agree</string>
     <string name="user_agreement_and_privacy_agreement">User Agreement and Privacy Agreement</string>
     <string name="thank_you_for_using">Thank you for using Xenterra Solar. During your use, we may collect and use some of your personal information. Please read carefully, and ensure that you fully understand our rules for handling your personal information. If you agree to the 銆奤ser Agreement銆� and 銆奝rivacy Agreement銆�, please click "Agree" to start using Xenterra Solar.</string>
-
+    <string name="confirm_account">Are you sure to cancel this account?</string>
+    <string name="immediate_cancellation">Cancel immediately</string>
+    <string name="account_not_recoverable">Cancelling an account is an irreversible operation. After account cancellation, all account data (including nickname, avatar, QR code photo, etc.) on your app will be deleted and cannot be retrieved.</string>
+    <string name="account">Account</string>
+    <string name="psw">Password</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml
index 3c80b20..9bb0a76 100644
--- a/app/src/main/res/values-zh/strings.xml
+++ b/app/src/main/res/values-zh/strings.xml
@@ -336,6 +336,9 @@
     <string name="agree">鍚屾剰</string>
     <string name="user_agreement_and_privacy_agreement">鐢ㄦ埛鍗忚鍜岄殣绉佸崗璁�</string>
     <string name="thank_you_for_using">鎰熻阿鎮ㄤ娇鐢ㄦ柊鐗归攼鑳� App锛屽湪鎮ㄤ娇鐢ㄨ繃绋嬩腑锛屾垜浠彲鑳戒細瀵规偍鐨勯儴鍒嗕釜浜轰俊鎭繘琛屾敹闆嗐�佷娇鐢�,璇锋偍浠旂粏闃呰銆婄敤鎴峰崗璁�嬪拰銆婇殣绉佸崗璁�嬶紝骞剁‘瀹氬畬鍏ㄤ簡瑙f垜浠鎮ㄤ釜浜轰俊鎭殑澶勭悊瑙勫垯銆傚鎮ㄥ悓鎰忕敤鎴峰崗璁拰闅愮鍗忚锛岃鐐瑰嚮鈥滃悓鎰忊�濓紝寮�濮嬩娇鐢ㄦ柊鐗归攼鑳� App銆�</string>
-
-
+    <string name="confirm_account">纭娉ㄩ攢鏀硅处鍙峰悧锛�</string>
+    <string name="immediate_cancellation">绔嬪嵆娉ㄩ攢</string>
+    <string name="account_not_recoverable">娉ㄩ攢璐︽埛鏄笉鍙仮澶嶇殑鎿嶄綔锛屾敞閿�璐︽埛涔嬪悗锛屾偍APP鎵�鏈夎处鎴锋暟鎹紙鍖呮嫭鏄电О銆佸ご鍍忋�佷簩缁寸爜鐓х墖绛夛級閮戒細琚垹闄わ紝涓旀棤娉曞啀鎵惧洖銆�</string>
+    <string name="account">璐﹀彿</string>
+    <string name="psw">瀵嗙爜</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ee51300..406c9b5 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -336,6 +336,10 @@
     <string name="agree">鍚屾剰</string>
     <string name="user_agreement_and_privacy_agreement">鐢ㄦ埛鍗忚鍜岄殣绉佸崗璁�</string>
     <string name="thank_you_for_using">鎰熻阿鎮ㄤ娇鐢ㄦ柊鐗归攼鑳� App锛屽湪鎮ㄤ娇鐢ㄨ繃绋嬩腑锛屾垜浠彲鑳戒細瀵规偍鐨勯儴鍒嗕釜浜轰俊鎭繘琛屾敹闆嗐�佷娇鐢�,璇锋偍浠旂粏闃呰銆婄敤鎴峰崗璁�嬪拰銆婇殣绉佸崗璁�嬶紝骞剁‘瀹氬畬鍏ㄤ簡瑙f垜浠鎮ㄤ釜浜轰俊鎭殑澶勭悊瑙勫垯銆傚鎮ㄥ悓鎰忕敤鎴峰崗璁拰闅愮鍗忚锛岃鐐瑰嚮鈥滃悓鎰忊�濓紝寮�濮嬩娇鐢ㄦ柊鐗归攼鑳� App銆�</string>
-
+    <string name="confirm_account">纭娉ㄩ攢鏀硅处鍙峰悧锛�</string>
+    <string name="immediate_cancellation">绔嬪嵆娉ㄩ攢</string>
+    <string name="account_not_recoverable">娉ㄩ攢璐︽埛鏄笉鍙仮澶嶇殑鎿嶄綔锛屾敞閿�璐︽埛涔嬪悗锛屾偍APP鎵�鏈夎处鎴锋暟鎹紙鍖呮嫭鏄电О銆佸ご鍍忋�佷簩缁寸爜鐓х墖绛夛級閮戒細琚垹闄わ紝涓旀棤娉曞啀鎵惧洖銆�</string>
+    <string name="account">璐﹀彿</string>
+    <string name="psw">瀵嗙爜</string>
 
 </resources>
\ No newline at end of file
diff --git a/countrypicker/src/main/java/com/sahooz/library/countrypicker/Adapter.java b/countrypicker/src/main/java/com/sahooz/library/countrypicker/Adapter.java
index 9d4ab2b..78e7381 100644
--- a/countrypicker/src/main/java/com/sahooz/library/countrypicker/Adapter.java
+++ b/countrypicker/src/main/java/com/sahooz/library/countrypicker/Adapter.java
@@ -5,6 +5,7 @@
 
 import androidx.annotation.NonNull;
 import androidx.recyclerview.widget.RecyclerView;
+
 import android.util.TypedValue;
 import android.view.LayoutInflater;
 import android.view.ViewGroup;
@@ -17,6 +18,7 @@
     private final LayoutInflater inflater;
     private PickCountryCallback callback = null;
     private final Context context;
+
     public Adapter(Context ctx) {
         inflater = LayoutInflater.from(ctx);
         context = ctx;
@@ -25,6 +27,7 @@
     public void setSelectedCountries(ArrayList<Country> selectedCountries) {
         this.selectedCountries = selectedCountries;
         notifyDataSetChanged();
+
     }
 
     public void setCallback(PickCountryCallback callback) {
@@ -38,8 +41,9 @@
     }
 
     private int itemHeight = -1;
+
     public void setItemHeight(float dp) {
-        itemHeight = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, dp, context.getResources().getDisplayMetrics());
+        itemHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, dp, context.getResources().getDisplayMetrics());
     }
 
     @SuppressLint("SetTextI18n")
@@ -49,13 +53,13 @@
         holder.ivFlag.setImageResource(country.flag);
         holder.tvName.setText(country.translate);
         holder.tvCode.setText("+" + country.code);
-        if(itemHeight != -1) {
+        if (itemHeight != -1) {
             ViewGroup.LayoutParams params = holder.itemView.getLayoutParams();
             params.height = itemHeight;
             holder.itemView.setLayoutParams(params);
         }
         holder.itemView.setOnClickListener(v -> {
-            if(callback != null) callback.onPick(country);
+            if (callback != null) callback.onPick(country);
         });
     }
 
diff --git a/countrypicker/src/main/java/com/sahooz/library/countrypicker/Country.java b/countrypicker/src/main/java/com/sahooz/library/countrypicker/Country.java
index a4d9f4b..cd57984 100644
--- a/countrypicker/src/main/java/com/sahooz/library/countrypicker/Country.java
+++ b/countrypicker/src/main/java/com/sahooz/library/countrypicker/Country.java
@@ -1,6 +1,7 @@
 package com.sahooz.library.countrypicker;
 
 import android.content.Context;
+
 import androidx.annotation.NonNull;
 
 import android.text.TextUtils;
@@ -50,12 +51,12 @@
                 '}';
     }
 
-    public static ArrayList<Country> getAll(){
+    public static ArrayList<Country> getAll() {
         return new ArrayList<>(countries);
     }
 
-    public static Country fromJson(String json){
-        if(TextUtils.isEmpty(json)) return null;
+    public static Country fromJson(String json) {
+        if (TextUtils.isEmpty(json)) return null;
         try {
             JSONObject jo = new JSONObject(json);
             return new Country(
@@ -99,25 +100,30 @@
         JSONArray ja = new JSONArray(sb.toString());
         for (int i = 0; i < ja.length(); i++) {
             JSONObject jo = ja.getJSONObject(i);
+            if (jo.getInt("code") == 886) {
+                //杩囨护鎺夊彴婀剧渷
+                continue;
+            }
             int flag = 0;
             String translate = "";
             String locale = jo.getString("locale");
-            if(!TextUtils.isEmpty(locale)) {
+            if (!TextUtils.isEmpty(locale)) {
                 flag = ctx.getResources().getIdentifier("flag_" + locale.toLowerCase(), "drawable", ctx.getPackageName());
                 translate = ctx.getString(ctx.getResources().getIdentifier("name_" + locale.toLowerCase(), "string", ctx.getPackageName()));
             }
             String name = jo.getString("name");
             Locale defaultLoc = Locale.getDefault();
             boolean inChina = "zh".equalsIgnoreCase(defaultLoc.getLanguage());
+
             countries.add(
-                new Country(
-                    jo.getInt("code"),
-                    name,
-                    translate,
-                    inChina ? jo.getString("pinyin") : name,
-                    locale,
-                    flag
-                )
+                    new Country(
+                            jo.getInt("code"),
+                            name,
+                            translate,
+                            inChina ? jo.getString("pinyin") : name,
+                            locale,
+                            flag
+                    )
             );
         }
 
@@ -133,7 +139,8 @@
         return code;
     }
 
-    @NonNull @Override
+    @NonNull
+    @Override
     public String getPinyin() {
         return pinyin;
     }

--
Gitblit v1.8.0