From cf6a23bdcb387c04ff3454f1eeaf6c2d223bed85 Mon Sep 17 00:00:00 2001 From: xiaowusky Date: Fri, 1 Mar 2024 14:28:14 +0800 Subject: [PATCH] =?UTF-8?q?desc:=E6=95=B0=E6=8D=AE=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B7=A8=E7=BA=A7=E8=BF=94=E5=9B=9E=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../watcher/ui/HistoryVideoActivity.kt | 11 +++++++++-- .../watcher/ui/QueryDataActivity.kt | 5 ++++- .../watcher/ui/WarnDataActivity.kt | 4 +++- .../watcher/ui/adapter/HistoryDataAdapter.kt | 19 +++++++++++++++---- .../watcher/ui/adapter/HistoryVideoAdapter.kt | 17 ++++++++++++++--- .../watcher/ui/adapter/WarnDataAdapter.kt | 16 +++++++++++++--- 6 files changed, 58 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HistoryVideoActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HistoryVideoActivity.kt index ed41c14..ce8913e 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HistoryVideoActivity.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HistoryVideoActivity.kt @@ -30,7 +30,9 @@ class HistoryVideoActivity : BaseActivity() { ActivityHistoryVideoBinding.inflate(layoutInflater) } - private val mAdapter = HistoryVideoAdapter().apply { + private val mAdapter = HistoryVideoAdapter { + tryFocusBackArea() + }.apply { mItemClickListener = object : HistoryVideoAdapter.OnItemClickListener { override fun onItemClick(data: Video) { gotoPlayVideo(data.path) @@ -132,7 +134,12 @@ class HistoryVideoActivity : BaseActivity() { } showLoadingDialog(R.string.export_data_tip) GlobalScope.launch(Dispatchers.IO) { - ExportUtils.testCopyVideo(this@HistoryVideoActivity, usbPath, mAdapter._data, loadingDialog) + ExportUtils.testCopyVideo( + this@HistoryVideoActivity, + usbPath, + mAdapter._data, + loadingDialog + ) launch(Dispatchers.Main) { showToast(getString(R.string.export_success)) } diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/QueryDataActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/QueryDataActivity.kt index 80e877a..6743d87 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/QueryDataActivity.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/QueryDataActivity.kt @@ -3,6 +3,7 @@ package com.yinuo.safetywatcher.watcher.ui import android.annotation.SuppressLint import android.content.Intent import android.text.TextUtils +import android.view.KeyEvent import android.view.View import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.lifecycleScope @@ -71,7 +72,9 @@ class QueryDataActivity : BaseActivity() { private var startTime = -1L private var endTime = -1L private var timeStep = TimeStep.SECOND_30 - private val mAdapter = HistoryDataAdapter() + private val mAdapter = HistoryDataAdapter{ + tryFocusBackArea() + } private val paramsLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/WarnDataActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/WarnDataActivity.kt index e344371..8a68820 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/WarnDataActivity.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/WarnDataActivity.kt @@ -51,7 +51,9 @@ class WarnDataActivity : BaseActivity() { private var startTime = -1L private var endTime = -1L - private val mAdapter = WarnDataAdapter() + private val mAdapter = WarnDataAdapter { + tryFocusBackArea() + } private val paramsLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/HistoryDataAdapter.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/HistoryDataAdapter.kt index 66b01a3..08cf871 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/HistoryDataAdapter.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/HistoryDataAdapter.kt @@ -1,5 +1,6 @@ package com.yinuo.safetywatcher.watcher.ui.adapter +import android.view.KeyEvent import android.view.LayoutInflater import android.view.ViewGroup import com.common.commonlib.db.entity.Gas @@ -9,14 +10,24 @@ import com.yinuo.safetywatcher.databinding.LayoutItemHistoryBinding import com.yinuo.safetywatcher.watcher.base.BaseRvAdapter import com.yinuo.safetywatcher.watcher.utils.DateUtils -class HistoryDataAdapter : +class HistoryDataAdapter(private val leftRightClick: (() -> Unit?)? = null) : BaseRvAdapter() { - class HViewHolder(val binding: LayoutItemHistoryBinding) : + class HViewHolder(val binding: LayoutItemHistoryBinding, val leftRightClick: (() -> Unit?)? = null) : BaseRvAdapter.BaseViewHolder(binding) { override fun bindView(data: Gas) { binding.tvTime.text = formatTime(data.time) - binding.tvSensor.text = "${data.gasName.getGasShowName()} : ${data.gasValue.forShowStr()} ${data.unit}" + binding.tvSensor.text = + "${data.gasName.getGasShowName()} : ${data.gasValue.forShowStr()} ${data.unit}" + binding.root.setOnKeyListener { v, keyCode, event -> + if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT || keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { + if (event.action == KeyEvent.ACTION_DOWN) { + leftRightClick?.let { it() } + return@setOnKeyListener true + } + } + return@setOnKeyListener false + } } private fun formatTime(time: Long): CharSequence? { @@ -27,6 +38,6 @@ class HistoryDataAdapter : override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HViewHolder { val binding = LayoutItemHistoryBinding.inflate(LayoutInflater.from(parent.context), parent, false) - return HViewHolder(binding) + return HViewHolder(binding, leftRightClick) } } \ No newline at end of file diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/HistoryVideoAdapter.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/HistoryVideoAdapter.kt index e055b2a..582f75e 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/HistoryVideoAdapter.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/HistoryVideoAdapter.kt @@ -1,5 +1,6 @@ package com.yinuo.safetywatcher.watcher.ui.adapter +import android.view.KeyEvent import android.view.LayoutInflater import android.view.ViewGroup import com.yinuo.safetywatcher.databinding.LayoutItemHistoryBinding @@ -7,18 +8,28 @@ import com.yinuo.safetywatcher.watcher.base.BaseRvAdapter import com.common.commonlib.db.entity.Video import com.yinuo.safetywatcher.watcher.utils.DateUtils -class HistoryVideoAdapter : +class HistoryVideoAdapter(private val leftRightClick: (() -> Unit?)? = null) : BaseRvAdapter() { class HViewHolder( val binding: LayoutItemHistoryBinding, - val mItemClickListener: OnItemClickListener? + val mItemClickListener: OnItemClickListener?, + val leftRightClick: (() -> Unit?)? = null ) : BaseRvAdapter.BaseViewHolder(binding) { override fun bindView(data: Video) { binding.tvTime.text = formatTime(data.time) binding.tvSensor.text = data.name + binding.root.setOnKeyListener { v, keyCode, event -> + if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT || keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { + if (event.action == KeyEvent.ACTION_DOWN) { + leftRightClick?.let { it() } + return@setOnKeyListener true + } + } + return@setOnKeyListener false + } binding.root.setOnClickListener { mItemClickListener?.onItemClick(data) } @@ -32,7 +43,7 @@ class HistoryVideoAdapter : override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HViewHolder { val binding = LayoutItemHistoryBinding.inflate(LayoutInflater.from(parent.context), parent, false) - return HViewHolder(binding, mItemClickListener) + return HViewHolder(binding, mItemClickListener, leftRightClick) } var mItemClickListener: OnItemClickListener? = null diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/WarnDataAdapter.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/WarnDataAdapter.kt index 42419c0..104ba16 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/WarnDataAdapter.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/adapter/WarnDataAdapter.kt @@ -1,5 +1,6 @@ package com.yinuo.safetywatcher.watcher.ui.adapter +import android.view.KeyEvent import android.view.LayoutInflater import android.view.ViewGroup import com.common.commonlib.db.entity.Warning @@ -8,14 +9,23 @@ import com.yinuo.safetywatcher.watcher.base.BaseRvAdapter import com.yinuo.safetywatcher.watcher.port.getShowWarnTxt import com.yinuo.safetywatcher.watcher.utils.DateUtils -class WarnDataAdapter : +class WarnDataAdapter(private val leftRightClick: (() -> Unit?)? = null) : BaseRvAdapter() { - class WViewHolder(private val binding: LayoutItemWarnBinding) : + class WViewHolder(private val binding: LayoutItemWarnBinding, val leftRightClick: (() -> Unit?)? = null) : BaseRvAdapter.BaseViewHolder(binding) { override fun bindView(data: Warning) { binding.tvTime.text = formatTime(data.startTime) binding.tvSensor.text = getShowWarnTxt(data) + binding.root.setOnKeyListener { v, keyCode, event -> + if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT || keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { + if (event.action == KeyEvent.ACTION_DOWN) { + leftRightClick?.let { it() } + return@setOnKeyListener true + } + } + return@setOnKeyListener false + } } private fun formatTime(time: Long): CharSequence? { @@ -26,6 +36,6 @@ class WarnDataAdapter : override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): WViewHolder { val binding = LayoutItemWarnBinding.inflate(LayoutInflater.from(parent.context), parent, false) - return WViewHolder(binding) + return WViewHolder(binding, leftRightClick) } } \ No newline at end of file