.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" /> 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; } /** * 开始Loading */ protected void showLoading() { getLoadingDialog().start(); } /** * 开始Loading * * @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(); } 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; } *//** /** * 开始Loading *//* public void showLoading() { */ protected void showLoading() { getLoadingDialog().start(); } *//** /** * 开始Loading *//* public void showDeviceLoading() { getDeviceLoadingDialog().start(); } *//** * 开始Loading *//* * * @param mes 自定义文本 */ protected void showLoading(String mes) { getLoadingDialog().start(); getLoadingDialog().setText(mes); } *//** * 开始Loading *//* protected void showGetDataLoading(String mes) { getLoadingGetDataDialog().startTouchNotGone(); getLoadingGetDataDialog().setText(mes); } *//** * 开始Loading *//* 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(); app/src/main/java/com/hdl/photovoltaic/enums/ShowMsgType.java
New file @@ -0,0 +1,12 @@ package com.hdl.photovoltaic.enums; /** * 信息显示的类型 */ public enum ShowMsgType { Normal,//普通提示类型 Confirm,//确认类型 Error,//错误类型 Tip,//Tip类型 Remind, //提醒类型 } app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java
New file @@ -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; } } 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); } }); app/src/main/java/com/hdl/photovoltaic/widget/LoadingDialog.java
New file @@ -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(); } } app/src/main/res/drawable/bg_load_dialog.xml
New file @@ -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> app/src/main/res/drawable/loading.png
app/src/main/res/drawable/progress_small.xml
New file @@ -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> app/src/main/res/layout/loading_alert.xml
New file @@ -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> 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> 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> <!--我的--> 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> <!--是否去除标题 指dialog弹框标题--> <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> <!--是否浮现在activity之上--> <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>