Przeglądaj źródła

熄屏和亮屏逻辑优化

weizhengliang 1 rok temu
rodzic
commit
392279891b

+ 13 - 8
android_bed/src/main/h7_3128/java/com/wdkl/app/ncs/callingbed/activity/CallingbedActivity.kt

@@ -223,6 +223,7 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
         //保持屏幕常亮
         AppTool.Setting.setScreenOffTimeOut2(applicationContext, 2147483647)
 
+        BaseApplication.userTouchTime = System.currentTimeMillis()
         //亮屏
         //AppUtil.wakeUp(activity)
         //setScreenOffTime(Constant.day_state)
@@ -335,7 +336,7 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
                             }
                         }
 
-                        if (Constant.CUSTOM_ID == -1) {
+                        /*if (Constant.CUSTOM_ID == -1) {
                             //床位未入住,设备休眠
                             //AppUtil.goToSleep(activity)
                             screenOff()
@@ -343,7 +344,7 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
                             //当前为夜晚熄屏模式,设备休眠
                             //AppUtil.goToSleep(activity)
                             screenOff()
-                        }
+                        }*/
                     }
                 } catch (e: Exception) {
                     //
@@ -496,8 +497,8 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
 
     override fun bindEvent() {
         black_view.setOnClickListener {
-            //resetSleepTime()
-            //black_view.visibility = View.GONE
+            //亮屏
+            screenOn()
             return@setOnClickListener
         }
 
@@ -1021,7 +1022,8 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
             if (buffer[0].toInt() == 1 || buffer[0].toInt() == 2
                 || buffer[5].toInt() == 1 || buffer[5].toInt() == 2
                 || buffer[6].toInt() == 1 || buffer[6].toInt() == 2) {
-
+                //记录用户按键时间
+                BaseApplication.userTouchTime = System.currentTimeMillis()
                 //AppUtil.wakeUp(activity)
                 screenOn()
 
@@ -1030,6 +1032,8 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
                     black_view.visibility = View.GONE
                 }*/
             } else if (buffer[8].toInt() == 1 || buffer[8].toInt() == 2) {
+                //记录用户按键时间
+                BaseApplication.userTouchTime = System.currentTimeMillis()
                 //AppUtil.wakeUp(activity)
                 screenOn()
 
@@ -1713,15 +1717,16 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
         }*/
 
         if (Constant.day_state == 1 && Constant.NIGHT_BRIGHTNESS == 0) {
-            if (!Constant.IS_RECORDING && skyCallFragment == null) {
-                //夜晚熄屏
+            //夜晚模式,再判断是否在通话或距离上次点击屏幕时间来确定是否灭屏
+            if (!Constant.IS_RECORDING && skyCallFragment == null && (System.currentTimeMillis() - BaseApplication.userTouchTime > 60*1000)) {
+                //灭屏
                 screenOff()
             }
         } else {
             //白天有人入住亮屏,无人入住则熄屏
             if (Constant.CUSTOM_ID != -1) {
                 screenOn()
-            } else {
+            } else if ((System.currentTimeMillis() - BaseApplication.userTouchTime > 60*1000)) {
                 screenOff()
             }
         }

+ 3 - 3
android_bed/src/main/h7_3128/java/com/wdkl/app/ncs/callingbed/helper/AppUtil.java

@@ -171,7 +171,7 @@ public class AppUtil {
             if (brightness > 0) {
                 setBrightness(brightness);
             } else {
-                setBrightness(200);
+                setBrightness(100);
             }
             success = true;
         } catch (Settings.SettingNotFoundException e) {
@@ -179,7 +179,7 @@ public class AppUtil {
         }
 
         if (!success) {
-            setBrightness(200);
+            setBrightness(100);
         }
     }
 
@@ -193,7 +193,7 @@ public class AppUtil {
             Log.d("screen","Write brightness success! " + value);
             return true;
         } catch (Exception e) {
-            Log.d("screen","Write brightness failed! " + value);
+            Log.e("screen","Write brightness failed! " + value);
             e.printStackTrace();
         }
 

+ 8 - 0
common/src/main/code/com/wdkl/ncs/android/lib/base/BaseActivity.kt

@@ -5,6 +5,7 @@ import android.content.Intent
 import android.databinding.DataBindingUtil
 import android.databinding.ViewDataBinding
 import android.os.Bundle
+import android.view.MotionEvent
 import android.view.View
 import android.view.Window
 import android.view.WindowManager
@@ -162,6 +163,13 @@ abstract class BaseActivity<PresenterType : BaseContract.BasePresenter, DataBind
         errorLog("PageDestory","页面销毁======>$localClassName")
     }
 
+    override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
+        //记录用户点击时间
+        BaseApplication.userTouchTime = System.currentTimeMillis()
+
+        return super.dispatchTouchEvent(ev)
+    }
+
     protected abstract fun keepScreenOn(): Boolean
 
     /**

+ 1 - 0
common/src/main/code/com/wdkl/ncs/android/lib/base/BaseApplication.kt

@@ -34,6 +34,7 @@ open class BaseApplication : MultiDexApplication() {
         @SuppressLint("StaticFieldLeak")
         lateinit var appContext: Application
 
+        var userTouchTime: Long = 0
     }
 
     /**