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