From e0abee7b6ab08462f1f5a94e356ddf84f2eb3271 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 07 六月 2023 16:41:34 +0800
Subject: [PATCH] 2023年06月07日16:41:22

---
 app/src/main/res/drawable/progress_small.xml                      |   23 +++
 app/src/main/res/values/strings.xml                               |    1 
 app/src/main/res/values/themes.xml                                |   23 +++
 app/src/main/java/com/hdl/photovoltaic/base/BaseActivity.java     |   56 ++++++++
 app/src/main/java/com/hdl/photovoltaic/enums/ShowMsgType.java     |   12 +
 app/src/main/res/drawable/loading.png                             |    0 
 app/src/main/res/values/colors.xml                                |    1 
 .idea/misc.xml                                                    |    5 
 app/src/main/java/com/hdl/photovoltaic/widget/LoadingDialog.java  |   74 ++++++++++
 app/src/main/res/layout/loading_alert.xml                         |   42 ++++++
 app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java |   22 +++
 app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java  |    5 
 app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java     |  122 ++++-------------
 app/src/main/res/drawable/bg_load_dialog.xml                      |    5 
 14 files changed, 297 insertions(+), 94 deletions(-)

diff --git a/.idea/misc.xml b/.idea/misc.xml
index 613a21b..19f8f00 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -6,6 +6,9 @@
         <entry key="../../../../../layout/custom_preview.xml" value="0.22923076923076924" />
         <entry key="../../../.gradle/caches/transforms-2/files-2.1/7c2cbaa925629e10707989293f119941/jetified-zxing-android-embedded-3.4.0/res/layout/zxing_barcode_scanner.xml" value="0.20625" />
         <entry key="../../../.gradle/caches/transforms-2/files-2.1/7c2cbaa925629e10707989293f119941/jetified-zxing-android-embedded-3.4.0/res/layout/zxing_capture.xml" value="0.20625" />
+        <entry key="app/src/main/res/drawable/bg_load_dialog.xml" value="0.1275" />
+        <entry key="app/src/main/res/drawable/progress_small.xml" value="0.1275" />
+        <entry key="app/src/main/res/drawable/progress_small1.xml" value="0.1275" />
         <entry key="app/src/main/res/layout/activity_1.xml" value="0.20625" />
         <entry key="app/src/main/res/layout/activity_123.xml" value="0.20625" />
         <entry key="app/src/main/res/layout/activity_capture.xml" value="0.20625" />
@@ -16,6 +19,8 @@
         <entry key="app/src/main/res/layout/fragment_house_list.xml" value="0.20625" />
         <entry key="app/src/main/res/layout/fragment_me.xml" value="0.1" />
         <entry key="app/src/main/res/layout/frgment_house_list_line.xml" value="0.20625" />
+        <entry key="app/src/main/res/layout/loading_alert.xml" value="0.20625" />
+        <entry key="app/src/main/res/layout/loading_alert1.xml" value="0.1" />
         <entry key="app/src/main/res/layout/toolbar_top_view_52.xml" value="0.20625" />
         <entry key="app/src/main/res/layout/toolbar_top_view_53.xml" value="0.20625" />
         <entry key="third-zxing/src/main/res/drawable/transparent_divider.xml" value="0.1275" />
diff --git a/app/src/main/java/com/hdl/photovoltaic/base/BaseActivity.java b/app/src/main/java/com/hdl/photovoltaic/base/BaseActivity.java
index 04b2ce1..55f0f95 100644
--- a/app/src/main/java/com/hdl/photovoltaic/base/BaseActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/base/BaseActivity.java
@@ -1,20 +1,31 @@
 package com.hdl.photovoltaic.base;
 
 import android.app.Activity;
+import android.content.Context;
+import android.content.DialogInterface;
 import android.content.Intent;
+import android.graphics.drawable.ColorDrawable;
 import android.os.Bundle;
 import android.util.Log;
+import android.view.KeyEvent;
 import android.view.View;
+import android.view.WindowManager;
+import android.widget.TextView;
 
 import androidx.annotation.Nullable;
+import androidx.appcompat.app.AlertDialog;
 import androidx.appcompat.app.AppCompatActivity;
 
+import com.hdl.photovoltaic.R;
 import com.hdl.photovoltaic.listener.BaseView;
+import com.hdl.photovoltaic.other.HdlThreadLogic;
 import com.hdl.photovoltaic.utils.AppManagerUtils;
+import com.hdl.photovoltaic.widget.LoadingDialog;
 
 
 public abstract class BaseActivity extends AppCompatActivity implements BaseView {
 
+    private LoadingDialog loadingDialog;
     protected Activity _mActivity;
 
     @Override
@@ -35,10 +46,55 @@
 
     }
 
+    /**
+     * 鑾峰彇LoadingDialog
+     *
+     * @return LoadingDialog
+     */
+    protected LoadingDialog getLoadingDialog() {
+        if (loadingDialog == null && _mActivity != null) {
+            loadingDialog = new LoadingDialog(_mActivity, R.style.Custom_AlertDialog);
+        }
+        return loadingDialog;
+    }
+
+    /**
+     * 寮�濮婰oading
+     */
+    protected void showLoading() {
+        getLoadingDialog().start();
+    }
+
+    /**
+     * 寮�濮婰oading
+     *
+     * @param mes 鑷畾涔夋枃鏈�
+     */
+    protected void showLoading(String mes) {
+        getLoadingDialog().start();
+        getLoadingDialog().setText(mes);
+    }
+
+    /**
+     * 鍋滄闅愯棌Loading
+     */
+    protected void hideLoading() {
+        HdlThreadLogic.runMainThread(new Runnable() {
+            @Override
+            public void run() {
+                if (loadingDialog != null && loadingDialog.isShowing()) {
+                    loadingDialog.stop();
+                }
+            }
+        }, null, null);
+    }
+
 
     @Override
     protected void onDestroy() {
         super.onDestroy();
+        //闅愯棌Loading
+        hideLoading();
 
     }
 
diff --git a/app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java b/app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java
index 5598bea..7e4d36b 100644
--- a/app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java
@@ -16,7 +16,10 @@
 import androidx.fragment.app.FragmentActivity;
 import androidx.lifecycle.Lifecycle;
 
+import com.hdl.photovoltaic.R;
 import com.hdl.photovoltaic.listener.BaseView;
+import com.hdl.photovoltaic.other.HdlThreadLogic;
+import com.hdl.photovoltaic.widget.LoadingDialog;
 
 import org.greenrobot.eventbus.EventBus;
 
@@ -27,9 +30,7 @@
     private boolean isFirst = true;
     protected FragmentActivity _mActivity;
     protected View mContainerView;
-//    private LoadingDialog loadingDialog;
-//    private LoadingDialog loadingGetDataDialog;
-//    private DeviceLoadingDialog deviceLoadingDialog;
+    private LoadingDialog loadingDialog;
 
     @Override
     public void onAttach(@NonNull Context context) {
@@ -99,6 +100,8 @@
         super.onDestroyView();
         _mActivity = null;
         isFirst = true;
+        //闅愯棌Loading
+        hideLoading();
 //        unregisterEventBus();
     }
 
@@ -154,118 +157,51 @@
         }
     }
 
-    /* *//**
+
+    /**
      * 鑾峰彇LoadingDialog
      *
-     * @return
-     *//*
+     * @return LoadingDialog
+     */
     protected LoadingDialog getLoadingDialog() {
         if (loadingDialog == null && _mActivity != null) {
-            loadingDialog = new LoadingDialog(_mActivity, R.style.loading_dialog);
+            loadingDialog = new LoadingDialog(_mActivity, R.style.Custom_AlertDialog);
         }
         return loadingDialog;
     }
 
-    public LoadingDialog getLoadingGetDataDialog() {
-        if (loadingGetDataDialog == null && _mActivity != null) {
-            loadingGetDataDialog = new LoadingDialog(_mActivity, R.style.loading_dialog);
-        }
-        return loadingGetDataDialog;
-    }
-
-
-    *//**
-     * 鑾峰彇DeviceLoadingDialog
-     *
-     * @return
-     *//*
-    protected DeviceLoadingDialog getDeviceLoadingDialog() {
-        if (deviceLoadingDialog == null && _mActivity != null) {
-            deviceLoadingDialog = new DeviceLoadingDialog(_mActivity, R.style.loading_dialog);
-        }
-        return deviceLoadingDialog;
-    }
-
-    *//**
+    /**
      * 寮�濮婰oading
-     *//*
-    public void showLoading() {
+     */
+    protected void showLoading() {
         getLoadingDialog().start();
     }
 
-    *//**
+    /**
      * 寮�濮婰oading
-     *//*
-    public void showDeviceLoading() {
-        getDeviceLoadingDialog().start();
-    }
-
-
-    *//**
-     * 寮�濮婰oading
-     *//*
+     *
+     * @param mes 鑷畾涔夋枃鏈�
+     */
     protected void showLoading(String mes) {
         getLoadingDialog().start();
         getLoadingDialog().setText(mes);
     }
 
-
-    *//**
-     * 寮�濮婰oading
-     *//*
-    protected void showGetDataLoading(String mes) {
-        getLoadingGetDataDialog().startTouchNotGone();
-        getLoadingGetDataDialog().setText(mes);
-    }
-
-
-    *//**
-     * 寮�濮婰oading
-     *//*
-    protected void showDeviceLoading(String mes) {
-        getDeviceLoadingDialog().start();
-        getDeviceLoadingDialog().setText(mes);
-    }
-
-    *//**
-     * 鍋滄闅愯棌Loading
-     *//*
-    protected void hideLoading() {
-        if (loadingDialog != null && loadingDialog.isShowing()) {
-            loadingDialog.stop();
-        }
-    }
-
-    *//**
-     * 鍋滄闅愯棌Loading
-     *//*
-    protected void hideGetDataLoading() {
-        if (loadingGetDataDialog != null && loadingGetDataDialog.isShowing()) {
-            loadingGetDataDialog.stop();
-        }
-    }
-
-    */
-
     /**
      * 鍋滄闅愯棌Loading
-     *//*
-    protected void hideDeviceLoading() {
-        if (deviceLoadingDialog != null && deviceLoadingDialog.isShowing()) {
-            deviceLoadingDialog.stop();
-        }
-    }*/
-
-    //鐢ㄤ簬popwindow鏄剧ず闅愯棌鏃跺�欒儗鏅殑棰滆壊鏇存崲
-    protected void backgroundAlpha(float bgAlpha) {
-        if (_mActivity != null) {
-            WindowManager.LayoutParams lp = _mActivity.getWindow().getAttributes();
-            _mActivity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
-            lp.alpha = bgAlpha; //0.0-1.0
-            _mActivity.getWindow().setAttributes(lp);
-        }
+     */
+    protected void hideLoading() {
+        HdlThreadLogic.runMainThread(new Runnable() {
+            @Override
+            public void run() {
+                if (loadingDialog != null && loadingDialog.isShowing()) {
+                    loadingDialog.stop();
+                }
+            }
+        }, null, null);
     }
 
+
     public static boolean isZh(Context context) {
         Locale locale = context.getResources().getConfiguration().locale;
         String language = locale.getLanguage();
diff --git a/app/src/main/java/com/hdl/photovoltaic/enums/ShowMsgType.java b/app/src/main/java/com/hdl/photovoltaic/enums/ShowMsgType.java
new file mode 100644
index 0000000..1932438
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/enums/ShowMsgType.java
@@ -0,0 +1,12 @@
+package com.hdl.photovoltaic.enums;
+
+/**
+ * 淇℃伅鏄剧ず鐨勭被鍨�
+ */
+public enum ShowMsgType {
+    Normal,//鏅�氭彁绀虹被鍨�
+    Confirm,//纭绫诲瀷
+    Error,//閿欒绫诲瀷
+    Tip,//Tip绫诲瀷
+    Remind, //鎻愰啋绫诲瀷
+}
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java
new file mode 100644
index 0000000..4238242
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java
@@ -0,0 +1,22 @@
+package com.hdl.photovoltaic.other;
+
+/**
+ * 鐧婚檰鐣岄潰鐨勯�昏緫
+ */
+public class HdlAccountLogic {
+
+    private static volatile HdlAccountLogic sHdlAccountLogic;
+
+    public static synchronized HdlAccountLogic getInstance() {
+        if (sHdlAccountLogic == null) {
+            synchronized (HdlAccountLogic.class) {
+                if (sHdlAccountLogic == null) {
+                    sHdlAccountLogic = new HdlAccountLogic();
+                }
+            }
+
+        }
+        return sHdlAccountLogic;
+    }
+
+}
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java
index 591496b..6f15e08 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java
@@ -2,6 +2,7 @@
 
 
 import android.os.Bundle;
+import android.os.SystemClock;
 import android.text.Editable;
 import android.text.Spannable;
 import android.text.SpannableStringBuilder;
@@ -12,6 +13,8 @@
 import android.text.style.ForegroundColorSpan;
 import android.util.Log;
 import android.view.View;
+import android.view.animation.Animation;
+import android.view.animation.RotateAnimation;
 import android.widget.TextView;
 
 
@@ -156,7 +159,7 @@
         viewBinding.homeLoginExperienceTv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                startActivity(MyPowerStationActivity.class);
+                //startActivity(MyPowerStationActivity.class);
             }
         });
 
diff --git a/app/src/main/java/com/hdl/photovoltaic/widget/LoadingDialog.java b/app/src/main/java/com/hdl/photovoltaic/widget/LoadingDialog.java
new file mode 100644
index 0000000..2b43bf0
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/widget/LoadingDialog.java
@@ -0,0 +1,74 @@
+package com.hdl.photovoltaic.widget;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.graphics.drawable.ColorDrawable;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.WindowManager;
+import android.widget.TextView;
+
+
+import com.hdl.photovoltaic.R;
+
+public class LoadingDialog extends Dialog {
+    private TextView content;
+
+    public LoadingDialog(Context context) {
+        super(context);
+        init(context);
+    }
+
+    public LoadingDialog(Context context, int theme) {
+        super(context, theme);
+        init(context);
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+    }
+
+    private void init(Context context) {
+        setCancelable(true);//绯荤粺鍚庨��鍙互鍙栨秷
+        setCanceledOnTouchOutside(false);
+        setContentView(R.layout.loading_alert);
+        content = (TextView) findViewById(R.id.load_content_tv);
+        WindowManager.LayoutParams params = getWindow().getAttributes();
+        params.width = WindowManager.LayoutParams.WRAP_CONTENT;
+        params.height = WindowManager.LayoutParams.WRAP_CONTENT;
+        getWindow().setAttributes(params);
+//        content.setText(R.string.device_鍔犺浇涓�);
+    }
+
+    public void setText(String mes) {
+        if (content != null && !TextUtils.isEmpty(mes)) {
+            content.setText(mes);
+        }
+    }
+
+    public String getTest() {
+        return content.getText().toString().trim();
+    }
+
+    public void start() {
+        if (!this.isShowing()) {
+            this.show();
+        }
+    }
+
+    //鐐瑰嚮澶栭儴涓嶅叧闂�
+    public void startTouchNotGone() {
+        if (!this.isShowing()) {
+            this.show();
+            setCancelable(true);
+            setCanceledOnTouchOutside(false);
+        }
+    }
+
+    public void stop() {
+        this.dismiss();
+        this.cancel();
+    }
+
+}
diff --git a/app/src/main/res/drawable/bg_load_dialog.xml b/app/src/main/res/drawable/bg_load_dialog.xml
new file mode 100644
index 0000000..5590cdf
--- /dev/null
+++ b/app/src/main/res/drawable/bg_load_dialog.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/text_60000000" />
+    <corners android:radius="4dp" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/loading.png b/app/src/main/res/drawable/loading.png
new file mode 100644
index 0000000..1c79833
--- /dev/null
+++ b/app/src/main/res/drawable/loading.png
Binary files differ
diff --git a/app/src/main/res/drawable/progress_small.xml b/app/src/main/res/drawable/progress_small.xml
new file mode 100644
index 0000000..152951b
--- /dev/null
+++ b/app/src/main/res/drawable/progress_small.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<rotate xmlns:android="http://schemas.android.com/apk/res/android"
+    android:fromDegrees="0"
+    android:pivotX="50%"
+    android:pivotY="50%"
+    android:toDegrees="1440"
+
+    >
+    <shape
+        android:innerRadiusRatio="3"
+        android:shape="ring"
+        android:thicknessRatio="8"
+        android:useLevel="false">
+        <gradient
+            android:centerColor="#FFFFFF"
+            android:centerY="0.50"
+            android:endColor="#FFFFFF"
+            android:startColor="#000000"
+            android:type="sweep"
+            android:useLevel="false" />
+    </shape>
+
+</rotate>
\ No newline at end of file
diff --git a/app/src/main/res/layout/loading_alert.xml b/app/src/main/res/layout/loading_alert.xml
new file mode 100644
index 0000000..d1dec40
--- /dev/null
+++ b/app/src/main/res/layout/loading_alert.xml
@@ -0,0 +1,42 @@
+<?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"
+    android:layout_width="wrap_content"
+    android:layout_height="85dp"
+    android:layout_gravity="center_horizontal"
+    android:background="@drawable/bg_load_dialog"
+    android:maxWidth="300dp"
+    android:minWidth="@dimen/dp_100">
+
+
+    <ProgressBar
+        android:id="@+id/load_pb"
+        android:layout_width="40dp"
+        android:layout_height="40dp"
+        android:layout_centerInParent="true"
+        android:layout_marginTop="@dimen/dp_10"
+        android:indeterminateDrawable="@drawable/progress_small"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <TextView
+        android:id="@+id/load_content_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="@dimen/dp_10"
+        android:layout_marginTop="@dimen/dp_10"
+        android:layout_marginRight="@dimen/dp_10"
+        android:layout_marginBottom="@dimen/dp_10"
+        android:maxLines="1"
+        android:text="@string/device_鍔犺浇涓�"
+        android:textColor="@color/text_FFFFFFFF"
+        android:textSize="@dimen/text_12"
+        app:layout_constraintEnd_toEndOf="@+id/load_pb"
+        app:layout_constraintStart_toStartOf="@+id/load_pb"
+        app:layout_constraintTop_toBottomOf="@+id/load_pb"
+
+
+        />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 864d506..57ebb68 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -17,6 +17,7 @@
     <color name="text_25000000">#25000000</color>
     <color name="text_40000000">#40000000</color>
     <color name="text_65000000">#65000000</color>
+    <color name="text_60000000">#60000000</color>
     <color name="text_90000000">#90000000</color>
     <color name="text_FF000000">#FF000000</color>
     <color name="text_E1E1E1">#E1E1E1</color>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 750d136..8ee7c41 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -43,6 +43,7 @@
     <string name="my_power_station_鏁呴殰">鏁呴殰</string>
     <string name="my_power_station_杩愯">杩愯</string>
     <string name="device_鎵嬪姩杩炴帴">鎵嬪姩杩炴帴</string>
+    <string name="device_鍔犺浇涓�">鍔犺浇涓�...</string>
 
 
     <!--鎴戠殑-->
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 0d121ed..765e997 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -19,6 +19,7 @@
         <item name="windowNoTitle">true</item>
     </style>
 
+
     <style name="Theme.PhotovoltaicDebug.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
 
     <style name="Theme.PhotovoltaicDebug.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
@@ -27,4 +28,26 @@
         <item name="fullscreenBackgroundColor">@color/light_blue_600</item>
         <item name="fullscreenTextColor">@color/light_blue_A200</item>
     </style>
+
+    <style name="Custom_AlertDialog">
+        <!--鑳屾櫙棰滆壊鍙婂拰閫忔槑绋嬪害-->
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <!--鏄惁鍘婚櫎鏍囬 鎸嘾ialog寮规鏍囬-->
+        <item name="android:windowNoTitle">true</item>
+        <!--鏄惁鍘婚櫎杈规 -->
+        <item name="android:windowFrame">@null</item>
+        <!--鏄惁妯$硦-->
+        <item name="android:backgroundDimEnabled">true</item>
+        <!--鑳屾櫙閫忔槑搴� 鎸囩晫闈㈤�忔槑搴�-->
+        <item name="android:backgroundDimAmount">0.6</item>
+        <!--鏄惁娴幇鍦╝ctivity涔嬩笂-->
+        <item name="android:windowIsFloating">false</item>
+        <!--鏄剧ず閫氱煡鏍�-->
+        <item name="android:windowActionBar">false</item>
+
+        <!--        <item name="android:windowIsTranslucent">false</item>:鏄惁鍗婇�忔槑-->
+        <!--        <item name="android:windowNoTitle">true</item>:鏄惁鏄剧ずtitle-->
+        <!--        <item name="android:windowBackground">@drawable/dia_bg</item>:璁剧疆dialog鐨勮儗鏅�-->
+    </style>
+
 </resources>
\ No newline at end of file

--
Gitblit v1.8.0