Pārlūkot izejas kodu

西班牙语A133门口机熄屏优化

weizhengliang 9 mēneši atpakaļ
vecāks
revīzija
4d0c9d0a5c

+ 78 - 86
android_door/src/main/h10_a133_chile/java/com/wdkl/app/ncs/callingdoor/activity/CallingdoorActivity.kt

@@ -84,6 +84,8 @@ import serialporttest.utils.SerialPortUtil
 import java.io.*
 import java.lang.Process
 import java.util.*
+import java.util.concurrent.Executors
+import java.util.concurrent.ScheduledExecutorService
 import java.util.concurrent.TimeUnit
 import kotlin.collections.ArrayList
 
@@ -146,7 +148,9 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
     //网络异常计数
     private var netErrCount : Int = 0
 
-    private var sleepCountdown = false
+    private var executor: ScheduledExecutorService? = null
+
+    /*private var sleepCountdown = false
     private val updateHandler: Handler = object : Handler(Looper.getMainLooper()) {
         override fun handleMessage(msg: Message) {
             //熄屏时间到,当前是夜晚且亮度为0则切换到黑屏界面
@@ -176,7 +180,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
 
     fun turnScreenOff() {
         black_view.visibility = View.VISIBLE
-    }
+    }*/
 
     override fun onCreate(savedInstanceState: Bundle?) {
         //志合A133平台sdk
@@ -299,6 +303,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
             SerialPortHelper.setDoorLight(0, "000")
         }
 
+        BaseApplication.userTouchTime = System.currentTimeMillis()
 
         app_version.text = "V" + CommonUtils.getAppVersionName(BaseApplication.appContext)
 
@@ -351,6 +356,36 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
         //去掉呼叫床位和取消呼叫菜单
         room_action_call_bed.visibility = View.GONE
         room_cancel_call.visibility = View.GONE
+
+        startScheduledExecutor()
+    }
+
+    /*
+    ** 启动一个定时任务执行检测
+    */
+    private fun startScheduledExecutor() {
+        executor = Executors.newSingleThreadScheduledExecutor()
+        executor!!.scheduleAtFixedRate({
+            try {
+                runOnUiThread {
+                    updateNetState()
+                    if (initialized) {
+                        updateSettings(false)
+                        updateTcpState()
+
+                        /*if (SettingConfig.getDoorLightAlwaysOn(activity) == 0) {
+                            checkHandleCall()
+                        }*/
+
+                        if (Constant.LATER_RESTART && Constant.CALL_STATE == Constant.CALL_STANDBY) {
+                            AppUpdateHelper.restartApp()
+                        }
+                    }
+                }
+            } catch (e: Exception) {
+
+            }
+        }, 100, 60, TimeUnit.SECONDS)
     }
 
     private fun checkAppExist() : Boolean {
@@ -544,8 +579,6 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
     }
 
     fun switchFragment(id: Int, fragment: Fragment, tag: String) {
-        resetSleepTime()
-
         supportFragmentManager.beginTransaction()
                 .replace(id, fragment, tag)
                 .commitAllowingStateLoss()
@@ -553,8 +586,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
     }
 
     fun addCallFragment(fragment: Fragment) {
-        cancelSleep()
-        black_view.visibility = View.GONE
+        screenOn()
 
         skyCallFragment = fragment
         supportFragmentManager.beginTransaction()
@@ -613,16 +645,12 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
 
     override fun bindEvent() {
         black_view.setOnClickListener {
-            resetSleepTime()
-            black_view.visibility = View.GONE
+            screenOn()
             return@setOnClickListener
         }
 
         //护理按钮
         room_action_nurse.setOnLongClickListener {
-            //重置黑屏时间
-            resetSleepTime()
-
             if (!Constant.TCP_CONNECTED) {
                 showMessage(R.string.net_error)
                 return@setOnLongClickListener true
@@ -679,17 +707,11 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
         }
 
         room_action_nurse.setOnClickListener {
-            //重置黑屏时间
-            resetSleepTime()
-
             showMessage(R.string.enter_nursing_tips)
         }
 
         //增援按钮
         room_action_support.setOnClickListener {
-            //重置黑屏时间
-            resetSleepTime()
-
             if (Constant.TCP_CONNECTED) {
                 if (Constant.DEVICE_ID != -1) {
                     OtherUtil.sendReinforce(Constant.DEVICE_ID)
@@ -709,9 +731,6 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
 
         //呼叫按钮
         room_action_call.setOnClickListener {
-            //重置黑屏时间
-            resetSleepTime()
-
             val time = System.currentTimeMillis()
             if (time - clickTime > 2000) {
                 //防止重复点击
@@ -738,9 +757,6 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
         }
 
         room_action_call_bed.setOnClickListener {
-            //重置黑屏时间
-            resetSleepTime()
-
             if (Utils.getInBedVOS().size > 0) {
                 CallbedDialogHelper.showDialog(activity, object : CallbedDialogHelper.ClickListener {
                     override fun onVideoClick(bedVO: FrameBedVO?) {
@@ -766,9 +782,6 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
 
         //门口机取消分机呼叫
         room_cancel_call.setOnClickListener {
-            //重置黑屏时间
-            resetSleepTime()
-
             if (Constant.TCP_CONNECTED) {
                 if (Constant.DEVICE_ID != -1) {
                     VoiceUtil.cancelCallByDoor(Constant.DEVICE_ID)
@@ -784,9 +797,6 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
         }
 
         app_version.setOnLongClickListener {
-            //重置黑屏时间
-            resetSleepTime()
-
             AppInfoDialogHelper.showAppDialog(activity,
                 { dialog, which -> AppUpdateHelper.reboot(activity) },
                 { dialog, which ->
@@ -802,9 +812,6 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
 
         //if ("rk3288".equals(Build.MODEL)) {
             app_version.setOnClickListener {
-                //重置黑屏时间
-                resetSleepTime()
-
                 if (System.currentTimeMillis() - clickVersionTime < 1500) {
                     clickCount++
                 } else {
@@ -844,9 +851,6 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
         }
 
         room_action_blue_code.setOnClickListener {
-            //重置黑屏时间
-            resetSleepTime()
-
             if (Constant.TCP_CONNECTED) {
                 if (Constant.DEVICE_ID != -1) {
                     if (Constant.inBlueCode) {
@@ -913,12 +917,6 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
         handler.removeCallbacksAndMessages(null)
     }
 
-    override fun onResume() {
-        super.onResume()
-        //重置黑屏时间
-        resetSleepTime()
-    }
-
     override fun destory() {
         SoundPoolManager.getInstance().release()
         unRegReceiver()
@@ -932,7 +930,9 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
             SerialPortUtil.getInstance().closeSerialPort()
         //}
 
-        cancelSleep()
+        if (executor != null) {
+            executor!!.shutdownNow()
+        }
     }
 
     //数据加载错误
@@ -1166,9 +1166,6 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
 
             Constant.SLEEP_MINUTE = partSetting.sleepSecondsDoor
             Constant.NIGHT_BRIGHTNESS = partSetting.nightLight
-            if (sleepCountdown) {
-                resetSleepTime()
-            }
 
             var mic1 = zhylManager.sys_getMic1gain(BaseApplication.appContext)
             var yl2 = zhylManager.sys_getDacVolume(BaseApplication.appContext)
@@ -1213,8 +1210,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
         showMessage("current version: " + versionName + "_" + versionCode + ", new version: " + newAppVersion + "_" + appInfo.versionNo)
 
         if (versionCode < appInfo.versionNo) {
-            cancelSleep()
-            black_view.visibility = View.GONE
+            screenOn()
 
             if (Constant.silentUpdate) {
                 Constant.APP_UPDATING = true
@@ -1249,7 +1245,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
     private fun regReceiver() {
         receiver = TimeReceiver()
         val intentFilter = IntentFilter()
-        intentFilter.addAction(Intent.ACTION_TIME_TICK)
+        //intentFilter.addAction(Intent.ACTION_TIME_TICK)
         intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION)
         registerReceiver(receiver, intentFilter)
     }
@@ -1266,7 +1262,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
         Log.d("serialPortBedOnclick", "按键: buffer[0]=" + buffer[0] + ", buffer[9]=" + buffer[9]
                 + ", buffer[10]=" + buffer[10] + ", buffer[11]=" + buffer[11])
         //如果是黑屏状态则先切换到正常界面
-        if (black_view.visibility == View.VISIBLE) {
+        //if (black_view.visibility == View.VISIBLE) {
             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
@@ -1275,12 +1271,14 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
                 || buffer[10].toInt() == 1 || buffer[10].toInt() == 2
                 || buffer[11].toInt() == 1 || buffer[11].toInt() == 2) {
 
+                //记录用户按键时间
+                BaseApplication.userTouchTime = System.currentTimeMillis()
+
                 runOnUiThread {
-                    cancelSleep()
-                    black_view.visibility = View.GONE
+                    screenOn()
                 }
             }
-        }
+        //}
 
         //测试模式
         if (testFragment == curFragment) {
@@ -1369,16 +1367,14 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
         //插簧按键为H1
         Log.d("forkSpringData", "插簧状态: $data")
         //如果是黑屏状态则先切换到正常界面
-        if (black_view.visibility == View.VISIBLE) {
+        //if (black_view.visibility == View.VISIBLE) {
             //插簧手柄放下
             if (data == 0) {
                 runOnUiThread {
-                    cancelSleep()
-                    black_view.visibility = View.GONE
+                    screenOn()
                 }
-                //return
             }
-        }
+        //}
 
         //测试模式
         if (testFragment == curFragment) {
@@ -1569,9 +1565,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
                     if (tcpModel.type == TcpType.VOICE) {
                         val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
                         if (tcpModel.action == TcpAction.VoiceAction.CALL) {
-                            if (black_view.visibility == View.VISIBLE) {
-                                black_view.visibility = View.GONE
-                            }
+                            screenOn()
 
                             Constant.fromId = tcpModel.fromId
                             Constant.TARGET_SIP = interactionVO.fromSipId
@@ -1599,9 +1593,8 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
                             if (Constant.CALL_STATE == Constant.CALL_STANDBY) {
                                 RingPlayHelper.stopRingTone()
                             }
-                            if (black_view.visibility == View.VISIBLE) {
-                                black_view.visibility = View.GONE
-                            }
+
+                            screenOn()
                             SoundPoolManager.getInstance().playSound(6, 1.0f, 1.0f, 0)
                             Utils.showToastWithImage("Responded")
                         } else if (tcpModel.action == TcpAction.VoiceAction.SUCCESS) {
@@ -2028,15 +2021,13 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
         //Log.w(TAG, "Constant.day_state: ${Constant.day_state}, night brightness: ${Constant.NIGHT_BRIGHTNESS}")
         if (Constant.day_state == 1) {
             //夜晚
-            if (!Constant.IS_RECORDING && !sleepCountdown && skyCallFragment == null && black_view.visibility == View.GONE) {
-                black_view.visibility = View.VISIBLE
+            if (!Constant.IS_RECORDING && skyCallFragment == null && (System.currentTimeMillis() - BaseApplication.userTouchTime > 60*1000)) {
+                screenOff()
             }
             //Log.w(TAG, "sleepCountdown: $sleepCountdown")
         } else {
             //白天
-            if (black_view.visibility == View.VISIBLE) {
-                black_view.visibility = View.GONE
-            }
+            screenOn()
         }
     }
 
@@ -2068,26 +2059,27 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
         }
     }
 
-    inner class TimeReceiver: BroadcastReceiver() {
-        override fun onReceive(context: Context, intent: Intent) {
-            if (intent.action == Intent.ACTION_TIME_TICK) {
-                updateNetState()
-                if (initialized) {
-                    updateSettings(false)
-                    updateTcpState()
+    fun screenOn() {
+        try {
+            val zhylManager = ZhylManager.getInstance(BaseApplication.appContext)
+            zhylManager.disp_setScreenWakeUp()
+        } catch (e: Exception) {
+            //
+        }
+    }
 
-                    /*if (SettingConfig.getDoorLightAlwaysOn(activity) == 0) {
-                        checkHandleCall()
-                    }*/
+    fun screenOff() {
+        try {
+            val zhylManager = ZhylManager.getInstance(BaseApplication.appContext)
+            zhylManager.disp_setScreenSleep()
+        } catch (e: Exception) {
+            //
+        }
+    }
 
-                    if (Constant.LATER_RESTART && Constant.CALL_STATE == Constant.CALL_STANDBY) {
-                        AppUpdateHelper.restartApp()
-                    }
-                } else if (TextUtils.isEmpty(Constant.TCP_SERVER_URL)) {
-                    //还未连接tcp服务器
-                    //presenter.loadTcpServerHost()
-                }
-            } else if (intent.action == ConnectivityManager.CONNECTIVITY_ACTION) {
+    inner class TimeReceiver: BroadcastReceiver() {
+        override fun onReceive(context: Context, intent: Intent) {
+            if (intent.action == ConnectivityManager.CONNECTIVITY_ACTION) {
                 updateNetState()
             }
         }

+ 0 - 7
android_door/src/main/h10_a133_chile/java/com/wdkl/app/ncs/callingdoor/agreement/CallingdoorAgreement.kt

@@ -1,7 +1,5 @@
 package com.wdkl.app.ncs.callingdoor.agreement
 
-import com.wdkl.ncs.android.middleware.model.dto.NurseConfigDto
-
 interface CallingdoorAgreement {
 
     //检查APP版本
@@ -9,9 +7,4 @@ interface CallingdoorAgreement {
 
     fun cancelRestart()
 
-    fun startCountDownSleep()
-
-    fun cancelSleep()
-
-    fun resetSleepTime()
 }

+ 4 - 5
android_door/src/main/h10_a133_chile/java/com/wdkl/app/ncs/callingdoor/fragment/QrCodeFragment.kt

@@ -89,7 +89,6 @@ class QrCodeFragment : BaseFragment<QrCodeFragmentPresenter, QrCodeLayBinding>()
         }
 
         tv_btn_update_app.setOnClickListener {
-            (activity as CallingdoorActivity).resetSleepTime()
             (activity as CallingdoorActivity).checkAppVersion()
         }
 
@@ -99,7 +98,6 @@ class QrCodeFragment : BaseFragment<QrCodeFragmentPresenter, QrCodeLayBinding>()
         }
 
         tv_btn_server_config.setOnClickListener {
-            (activity as CallingdoorActivity).resetSleepTime()
             (activity as CallingdoorActivity).cancelRestart()
             ServerConfigDialogHelper.showPasswordDialog(activity)
         }
@@ -109,14 +107,12 @@ class QrCodeFragment : BaseFragment<QrCodeFragmentPresenter, QrCodeLayBinding>()
 //            ZhylManager.getInstance(BaseApplication.appContext).sys_setTimeFormat("America/Houston")
 //            ZhylManager.getInstance(BaseApplication.appContext).sys_setTime(getActivity(),Integer.parseInt("2022"), Integer.parseInt("08"), Integer.parseInt("11"), Integer.parseInt("10"), Integer.parseInt("11"));
 
-            (activity as CallingdoorActivity).resetSleepTime()
             PasswordDialogHelper.showPasswordDialog(activity) {
                 (activity as CallingdoorActivity).startTestMode()
             }
         }
 
         tv_device_call.setOnClickListener {
-            (activity as CallingdoorActivity).resetSleepTime()
             CallConfigDialogHelper.showDialog(activity)
         }
 
@@ -143,11 +139,14 @@ class QrCodeFragment : BaseFragment<QrCodeFragmentPresenter, QrCodeLayBinding>()
         }
 
         tv_btn_netcfg.setOnClickListener {
-            (activity as CallingdoorActivity).resetSleepTime()
             PasswordDialogHelper.showPasswordDialog(activity) {
                 NetworkDialogHelper.showDialog(activity)
             }
         }
+
+        tv_btn_screen_off.setOnClickListener {
+            (activity as CallingdoorActivity).screenOff()
+        }
     }
 
     private fun showQRCodeImg(id: Int) {

+ 0 - 6
android_door/src/main/h10_a133_chile/java/com/wdkl/app/ncs/callingdoor/fragment/SkyCallFragment.kt

@@ -77,9 +77,6 @@ class SkyCallFragment: BaseCallFragment(), CallSessionCallback {
     }
 
     override fun init() {
-        //取消黑屏
-        (activity as CallingdoorActivity).cancelSleep()
-
         //初始化计时器
         initCountDownTimer(sky_voice_call_timeout)
 
@@ -341,9 +338,6 @@ class SkyCallFragment: BaseCallFragment(), CallSessionCallback {
                 DoorLightHelper.resetDoorLight()
             }
         }
-
-        //恢复黑屏
-        (activity as CallingdoorActivity).startCountDownSleep()
     }
 
     private fun voiceAccept() {

+ 14 - 0
android_door/src/main/h10_a133_chile/res/layout/qr_code_lay.xml

@@ -189,9 +189,23 @@
                 android:orientation="vertical">
 
                 <TextView
+                    android:id="@+id/tv_btn_screen_off"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:padding="10dp"
+                    android:background="@color/main_color"
+                    android:gravity="center_horizontal"
+                    android:singleLine="true"
+                    android:text="@string/screen_off"
+                    android:textColor="@drawable/selector_bottom_btn_text_color"
+                    android:textSize="24sp" />
+
+                <TextView
                     android:id="@+id/tv_btn_netcfg"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
                     android:padding="10dp"
                     android:background="@color/main_color"
                     android:gravity="center_horizontal"

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

@@ -3,6 +3,7 @@ package com.wdkl.ncs.android.lib.base
 import android.content.Context
 import android.content.Intent
 import android.os.Bundle
+import android.view.MotionEvent
 import android.view.View
 import android.view.Window
 import android.view.WindowManager
@@ -102,6 +103,13 @@ abstract class BaseActivity<PresenterType : BaseContract.BasePresenter, DataBind
         bindEvent()
     }
 
+    override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
+        //记录用户点击时间
+        BaseApplication.userTouchTime = System.currentTimeMillis()
+
+        return super.dispatchTouchEvent(ev)
+    }
+
     /**
      * @author LDD
      * @From   BaseActivity

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

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

+ 1 - 0
resource/src/main/res/values-es/strings.xml

@@ -213,6 +213,7 @@
     <string name="click_twice_start_settings">Clickear dos veces para abrir configuración</string>
     <string name="low_power">Energia baja</string>
 
+    <string name="screen_off">Pantalla apagada</string>
     <string name="net_config_title">Net config</string>
     <string name="net_config_tip">Please select network mode</string>
     <string name="language_set_title">Configuracion de idioma</string>

+ 2 - 0
resource/src/main/res/values-ru/strings.xml

@@ -200,6 +200,8 @@
     <string name="device_user_not_register">Пользователь не зарегистрирован</string>
     <string name="click_twice_start_settings">Дважды нажмите, чтобы открыть настройки</string>
     <string name="low_power">Низкое энергопотребление</string>
+
+    <string name="screen_off">Screen off</string>
     <string name="net_config_title">Net config</string>
     <string name="net_config_tip">Please select network mode</string>
     <string name="language_set_title">Язык</string>

+ 1 - 0
resource/src/main/res/values-zh/strings.xml

@@ -213,6 +213,7 @@
     <string name="click_twice_start_settings">再点一次进入设置</string>
     <string name="low_power">电量低</string>
 
+    <string name="screen_off">熄屏</string>
     <string name="net_config_title">网络设置</string>
     <string name="net_config_tip">请选择要设置的网络类型</string>
     <string name="language_set_title">语言设置</string>

+ 1 - 0
resource/src/main/res/values/strings.xml

@@ -212,6 +212,7 @@
     <string name="click_twice_start_settings">Click twice open settings</string>
     <string name="low_power">Low power</string>
 
+    <string name="screen_off">Screen off</string>
     <string name="net_config_title">Net config</string>
     <string name="net_config_tip">Please select network mode</string>
     <string name="language_set_title">Language setting</string>