From 17692267eea4adb77e93363ac27f1caff5f006ae Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期一, 05 六月 2023 09:11:43 +0800
Subject: [PATCH] 2023年06月05日09:11:31

---
 app/src/main/java/com/hdl/photovoltaic/ui/home/me/MeFragment.java                  |    2 
 app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java                   |   75 ++++++++----------------
 app/src/main/java/com/hdl/photovoltaic/ui/home/powerstation/HouseListFragment.java |   16 +----
 app/src/main/java/com/hdl/photovoltaic/base/BaseActivity.java                      |    4 
 app/src/main/res/layout/activity_my_power_station.xml                              |    4 
 app/src/main/java/com/hdl/photovoltaic/utils/FlashLightUtils.java                  |   41 +++++++++++++
 app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java                      |    2 
 7 files changed, 75 insertions(+), 69 deletions(-)

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 e49c4ff..04b2ce1 100644
--- a/app/src/main/java/com/hdl/photovoltaic/base/BaseActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/base/BaseActivity.java
@@ -3,6 +3,7 @@
 import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
+import android.util.Log;
 import android.view.View;
 
 import androidx.annotation.Nullable;
@@ -19,7 +20,6 @@
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-
         _mActivity = this;
         Object content = getContentView();
         //娣诲姞Activity鍒板爢鏍�
@@ -67,7 +67,7 @@
     /**
      * 绠�鍗曠殑璺宠浆Activity
      *
-     * @param clazz
+     * @param clazz _
      */
     protected void startActivity(Class<?> clazz) {
         Intent intent = new Intent(this, clazz);
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 8854588..4a88c53 100644
--- a/app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java
@@ -3,6 +3,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -36,6 +37,7 @@
         _mActivity = getActivity();
     }
 
+
     @Nullable
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java
index 40bb756..73fe38b 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java
@@ -1,8 +1,12 @@
 package com.hdl.photovoltaic.other;
 
+import android.app.Dialog;
 import android.content.Context;
 import android.os.Handler;
 import android.os.Looper;
+import android.widget.Toast;
+
+import androidx.appcompat.app.AlertDialog;
 
 import com.hdl.photovoltaic.enums.ShowErrorMode;
 
@@ -12,29 +16,13 @@
 public class HdlThreadLogic {
     private static final Handler handler = new Handler(Looper.getMainLooper());
 
-    /**
-     * 鍒囨崲鍥炰富绾跨▼
-     *
-     * @param run 鍥炶皟
-     */
-    public static void runMainThread(Runnable run) {
-        try {
-            if (Looper.myLooper() == Looper.getMainLooper()) {
-                run.run();
-            } else {
-                handler.post(run);
-            }
-        } catch (Exception e) {
-            exception(e, ShowErrorMode.YES);
-        }
-    }
 
     /**
      * 鍒囨崲鍥炰富绾跨▼
      *
      * @param run           鍥炶皟
-     * @param context       涓婁笅鏂�
-     * @param showErrorMode 鏄惁鏄剧ず閿欒
+     * @param context       涓婁笅鏂�(涓嶉渶瑕佸脊妗嗗~null)
+     * @param showErrorMode 鏄惁鏄剧ず閿欒(涓嶉渶瑕佹樉绀洪敊璇~null)
      */
     public static void runMainThread(Runnable run, Context context, ShowErrorMode showErrorMode) {
         try {
@@ -44,36 +32,17 @@
                 handler.post(run);
             }
         } catch (Exception e) {
-            exception(e, showErrorMode);
+            exception(e, showErrorMode, context);
         }
     }
 
-    /**
-     * 瀛愮嚎绋�
-     *
-     * @param run 鍥炶皟
-     */
-    public static void runThread(Runnable run) {
-
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                try {
-                    run.run();
-                } catch (Exception e) {
-                    exception(e, ShowErrorMode.NO);
-                }
-            }
-        }).start();
-
-    }
 
     /**
      * 瀛愮嚎绋�
      *
      * @param run           鍥炶皟
-     * @param context       涓婁笅鏂�
-     * @param showErrorMode 鏄惁鏄剧ず閿欒
+     * @param context       涓婁笅鏂�(涓嶉渶瑕佸脊妗嗗~null)
+     * @param showErrorMode 鏄惁鏄剧ず閿欒(涓嶉渶瑕佸~null)
      */
     public static void runThread(Runnable run, Context context, ShowErrorMode showErrorMode) {
 
@@ -83,7 +52,7 @@
                 try {
                     run.run();
                 } catch (Exception e) {
-                    exception(e, showErrorMode);
+                    exception(e, showErrorMode, context);
                 }
             }
         }).start();
@@ -91,7 +60,15 @@
     }
 
 
-    private static void exception(Exception e, ShowErrorMode showErrorMode) {
+    /**
+     * @param e             寮傚父淇℃伅绫�
+     * @param context       涓婁笅鏂�(涓嶉渶瑕佸脊妗嗗~null)
+     * @param showErrorMode 鏄惁鏄剧ず閿欒(涓嶉渶瑕佸~null)
+     */
+    private static void exception(Exception e, ShowErrorMode showErrorMode, Context context) {
+        if (showErrorMode == null || context == null || e == null) {
+            return;
+        }
         if (showErrorMode == ShowErrorMode.NO) {
             return;
         }
@@ -99,16 +76,16 @@
         handler.post(new Runnable() {
             @Override
             public void run() {
-//                Dialog alertDialog = new AlertDialog.Builder(HDLApp.getInstance().getApplicationContext()).
-//                        setTitle("鎶辨瓑绋嬪簭鍑虹幇閿欒浜�,鐐瑰嚮\"纭\"鑾峰彇鏇村璇︾粏淇℃伅.").
-//                        setMessage(e.getMessage()).
-//                        create();
-//                alertDialog.show();
+                Dialog alertDialog = new AlertDialog.Builder(context).
+                        setTitle("鎶辨瓑绋嬪簭鍑虹幇閿欒浜�,鐐瑰嚮\"纭\"鑾峰彇鏇村璇︾粏淇℃伅.").
+                        setMessage(e.getMessage()).
+                        create();
+                alertDialog.show();
                 //鎻愮ず
-//                AlertDialog alertDialog=new AlertDialog(HDLApp.getInstance().getApplicationContext(), androidx.fragment.R.style.TextAppearance_Compat_Notification);
+//                AlertDialog alertDialog = new AlertDialog(context, androidx.fragment.R.style.TextAppearance_Compat_Notification);
 //                alertDialog.setTitle("鎶辨瓑绋嬪簭鍑虹幇閿欒浜�");
 //                alertDialog.show();
-                //Toast.makeText(HDLApp.getInstance().getApplicationContext(), "鎶辨瓑绋嬪簭鍑虹幇閿欒浜�", Toast.LENGTH_SHORT).show();
+//                Toast.makeText(context, "鎶辨瓑绋嬪簭鍑虹幇閿欒浜�", Toast.LENGTH_SHORT).show();
 
             }
         });
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/home/MeFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/home/me/MeFragment.java
similarity index 96%
rename from app/src/main/java/com/hdl/photovoltaic/ui/home/MeFragment.java
rename to app/src/main/java/com/hdl/photovoltaic/ui/home/me/MeFragment.java
index 1ad47a2..665eea6 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/home/MeFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/home/me/MeFragment.java
@@ -1,4 +1,4 @@
-package com.hdl.photovoltaic.ui.home;
+package com.hdl.photovoltaic.ui.home.me;
 
 import android.os.Bundle;
 import android.view.View;
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/home/HouseListFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/home/powerstation/HouseListFragment.java
similarity index 85%
rename from app/src/main/java/com/hdl/photovoltaic/ui/home/HouseListFragment.java
rename to app/src/main/java/com/hdl/photovoltaic/ui/home/powerstation/HouseListFragment.java
index 46139f7..dd7d69f 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/home/HouseListFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/home/powerstation/HouseListFragment.java
@@ -1,4 +1,4 @@
-package com.hdl.photovoltaic.ui.home;
+package com.hdl.photovoltaic.ui.home.powerstation;
 
 import android.content.Context;
 import android.hardware.camera2.CameraManager;
@@ -54,12 +54,7 @@
         viewBinding.toolbarTopFragmentHouseListRl.topMoreIv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-//                try {
-//                    manager.setTorchMode("0",true);
-//                } catch (CameraAccessException e) {
-//                    e.printStackTrace();
-//                }
-//                flashLightUtils.open();
+
             }
         });
         //璁剧疆涓嬫媺绠ご棰滆壊
@@ -67,12 +62,7 @@
         viewBinding.fragmentHouseSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
             @Override
             public void onRefresh() {
-//                flashLightUtils.cloes();
-//                try {
-//                    manager.setTorchMode("0",false);
-//                } catch (CameraAccessException e) {
-//                    e.printStackTrace();
-//                }
+
                 viewBinding.fragmentHouseSrl.setRefreshing(false);
                 Log.d("HouseListFragment", "涓嬫媺鍒锋柊");
             }
diff --git a/app/src/main/java/com/hdl/photovoltaic/utils/FlashLightUtils.java b/app/src/main/java/com/hdl/photovoltaic/utils/FlashLightUtils.java
index 3ff26b5..eb8b8e0 100644
--- a/app/src/main/java/com/hdl/photovoltaic/utils/FlashLightUtils.java
+++ b/app/src/main/java/com/hdl/photovoltaic/utils/FlashLightUtils.java
@@ -5,6 +5,7 @@
 import android.content.pm.FeatureInfo;
 import android.content.pm.PackageManager;
 import android.hardware.camera2.CameraAccessException;
+import android.hardware.camera2.CameraCharacteristics;
 import android.hardware.camera2.CameraManager;
 import android.os.Build;
 import android.hardware.Camera;
@@ -42,7 +43,7 @@
             FeatureInfo[] features = packageManager.getSystemAvailableFeatures();
             for (FeatureInfo featureInfo : features) {
                 // 鍒ゆ柇璁惧鏄惁鏀寔闂厜鐏�
-                if (packageManager.FEATURE_CAMERA_FLASH.equals(featureInfo.name)) {
+                if (PackageManager.FEATURE_CAMERA_FLASH.equals(featureInfo.name)) {
                     if (null == mCamera) {
                         mCamera = Camera.open();
                     }
@@ -58,7 +59,7 @@
     }
 
     // 鍏抽棴鎵嬬數绛�
-    public void cloes() {
+    public void close() {
         if (!status)    // 濡傛灉鏄凡缁忓叧闂殑鐘舵�� 涓嶉渶瑕佹墦寮�
         {
             return;
@@ -79,5 +80,41 @@
         }
         status = false; // 璁板綍鎵嬬數绛掍负鍏抽棴
     }
+
+    /**
+     * 鎵嬬數绛掓墦寮�鎴栬�呭叧闂�
+     *
+     * @param isOpen 鎵撳紑(true)鎴栬�呭叧闂�(false)
+     */
+    public void setOpenOrClose(boolean isOpen) {
+        try {
+
+            //鑾峰彇褰撳墠鎵嬫満鎵�鏈夋憚鍍忓ご璁惧ID
+            String[] ids = manager.getCameraIdList();
+            for (String id : ids) {
+                CameraCharacteristics c = manager.getCameraCharacteristics(id);
+                //鏌ヨ璇ユ憚鍍忓ご缁勪欢鏄惁鍖呭惈闂厜鐏�
+                Boolean flashAvailable = c.get(CameraCharacteristics.FLASH_INFO_AVAILABLE);
+
+                /*
+                 * 鑾峰彇鐩告満闈㈠鐨勬柟鍚�
+                 * CameraCharacteristics.LENS_FACING_FRONT 鍓嶇疆鎽勫儚澶�
+                 * CameraCharacteristics.LENS_FACING_BACK 鍚庡彧鎽勫儚澶�
+                 * CameraCharacteristics.LENS_FACING_EXTERNAL 澶栭儴鐨勬憚鍍忓ご
+                 */
+                Integer lensFacing = c.get(CameraCharacteristics.LENS_FACING);
+                if (flashAvailable != null && flashAvailable
+                        && lensFacing != null && lensFacing == CameraCharacteristics.LENS_FACING_BACK) {
+                    //鎵撳紑鎴栧叧闂墜鐢电瓛
+                    manager.setTorchMode(id, isOpen);
+                    break;
+                }
+            }
+        } catch (CameraAccessException e) {
+            e.printStackTrace();
+        }
+    }
+
+
 }
 
diff --git a/app/src/main/res/layout/activity_my_power_station.xml b/app/src/main/res/layout/activity_my_power_station.xml
index d69baa7..5410ff4 100644
--- a/app/src/main/res/layout/activity_my_power_station.xml
+++ b/app/src/main/res/layout/activity_my_power_station.xml
@@ -11,7 +11,7 @@
     <androidx.fragment.app.FragmentContainerView
 
         android:id="@+id/my_power_station_fcv1"
-        android:name="com.hdl.photovoltaic.ui.home.HouseListFragment"
+        android:name="com.hdl.photovoltaic.ui.home.powerstation.HouseListFragment"
         android:layout_width="match_parent"
         android:layout_height="0dp"
         android:visibility="gone"
@@ -22,7 +22,7 @@
     <!--鎴戠殑-Fragment-->
     <androidx.fragment.app.FragmentContainerView
         android:id="@+id/my_power_station_fcv2"
-        android:name="com.hdl.photovoltaic.ui.home.MeFragment"
+        android:name="com.hdl.photovoltaic.ui.home.me.MeFragment"
         android:layout_width="match_parent"
         android:layout_height="0dp"
         android:visibility="gone"

--
Gitblit v1.8.0