desc:数据查询。告警数据。历史视频。
parent
888ef2a590
commit
5e4009205b
@ -0,0 +1,30 @@
|
|||||||
|
package com.yinuo.safetywatcher.watcher.adapter
|
||||||
|
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import com.yinuo.safetywatcher.databinding.LayoutItemHistoryBinding
|
||||||
|
import com.yinuo.safetywatcher.watcher.base.BaseRvAdapter
|
||||||
|
import com.yinuo.safetywatcher.watcher.bean.HistoryData
|
||||||
|
import com.yinuo.safetywatcher.watcher.utils.DateUtils
|
||||||
|
|
||||||
|
class HistoryDataAdapter :
|
||||||
|
BaseRvAdapter<HistoryData, LayoutItemHistoryBinding, HistoryDataAdapter.HViewHolder>() {
|
||||||
|
|
||||||
|
class HViewHolder(val binding: LayoutItemHistoryBinding) :
|
||||||
|
BaseRvAdapter.BaseViewHolder<HistoryData, LayoutItemHistoryBinding>(binding) {
|
||||||
|
override fun bindView(data: HistoryData) {
|
||||||
|
binding.tvTime.text = formatTime(data.time)
|
||||||
|
binding.tvSensor.text = data.sensor
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun formatTime(time: Long): CharSequence? {
|
||||||
|
return DateUtils.formatHistoryTime(time)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HViewHolder {
|
||||||
|
val binding =
|
||||||
|
LayoutItemHistoryBinding.inflate(LayoutInflater.from(parent.context), parent, false)
|
||||||
|
return HViewHolder(binding)
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
package com.yinuo.safetywatcher.watcher.adapter
|
||||||
|
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import com.yinuo.safetywatcher.databinding.LayoutItemHistoryBinding
|
||||||
|
import com.yinuo.safetywatcher.databinding.LayoutItemWarnBinding
|
||||||
|
import com.yinuo.safetywatcher.watcher.base.BaseRvAdapter
|
||||||
|
import com.yinuo.safetywatcher.watcher.bean.HistoryData
|
||||||
|
import com.yinuo.safetywatcher.watcher.bean.WarnData
|
||||||
|
import com.yinuo.safetywatcher.watcher.utils.DateUtils
|
||||||
|
|
||||||
|
class WarnDataAdapter :
|
||||||
|
BaseRvAdapter<WarnData, LayoutItemWarnBinding, WarnDataAdapter.WViewHolder>() {
|
||||||
|
|
||||||
|
class WViewHolder(val binding: LayoutItemWarnBinding) :
|
||||||
|
BaseRvAdapter.BaseViewHolder<WarnData, LayoutItemWarnBinding>(binding) {
|
||||||
|
override fun bindView(data: WarnData) {
|
||||||
|
binding.tvTime.text = formatTime(data.time)
|
||||||
|
binding.tvSensor.text = data.error
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun formatTime(time: Long): CharSequence? {
|
||||||
|
return DateUtils.formatHistoryTime(time)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): WViewHolder {
|
||||||
|
val binding =
|
||||||
|
LayoutItemWarnBinding.inflate(LayoutInflater.from(parent.context), parent, false)
|
||||||
|
return WViewHolder(binding)
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
package com.yinuo.safetywatcher.watcher.bean
|
||||||
|
|
||||||
|
data class HistoryData(val time:Long, val sensor:String)
|
@ -0,0 +1,3 @@
|
|||||||
|
package com.yinuo.safetywatcher.watcher.bean
|
||||||
|
|
||||||
|
data class WarnData(val time:Long, val error:String)
|
@ -0,0 +1,46 @@
|
|||||||
|
package com.yinuo.safetywatcher.watcher.ui
|
||||||
|
|
||||||
|
import android.view.View
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
|
import com.yinuo.safetywatcher.R
|
||||||
|
import com.yinuo.safetywatcher.databinding.ActivityHistoryVideoBinding
|
||||||
|
import com.yinuo.safetywatcher.databinding.ActivityWarndataBinding
|
||||||
|
import com.yinuo.safetywatcher.watcher.adapter.HistoryDataAdapter
|
||||||
|
import com.yinuo.safetywatcher.watcher.adapter.WarnDataAdapter
|
||||||
|
import com.yinuo.safetywatcher.watcher.base.BaseActivity
|
||||||
|
import com.yinuo.safetywatcher.watcher.bean.HistoryData
|
||||||
|
import com.yinuo.safetywatcher.watcher.bean.WarnData
|
||||||
|
import com.yinuo.safetywatcher.watcher.view.CommonTopBar
|
||||||
|
|
||||||
|
class HistoryVideoActivity : BaseActivity() {
|
||||||
|
|
||||||
|
private val mBinding: ActivityHistoryVideoBinding by lazy {
|
||||||
|
ActivityHistoryVideoBinding.inflate(layoutInflater)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onOptionClick(type: Int, target: View) {
|
||||||
|
if (0 == type) {
|
||||||
|
|
||||||
|
} else if (1 == type) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getOptions(): List<CommonTopBar.Option>? {
|
||||||
|
val ops = mutableListOf<CommonTopBar.Option>()
|
||||||
|
ops.add(CommonTopBar.Option(0, getString(R.string.search)))
|
||||||
|
ops.add(CommonTopBar.Option(1, getString(R.string.export)))
|
||||||
|
return ops
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getTopBarTitle(): String? {
|
||||||
|
return getString(R.string.history_video)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun generateContentView(): View {
|
||||||
|
return mBinding.root
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun initView() {
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
package com.yinuo.safetywatcher.watcher.utils
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat
|
||||||
|
import java.util.Locale
|
||||||
|
|
||||||
|
object DateUtils {
|
||||||
|
private val dataFormat = SimpleDateFormat("yyyy/MM/dd HH:mm:ss", Locale.ROOT)
|
||||||
|
|
||||||
|
fun formatHistoryTime(time: Long): String? {
|
||||||
|
return dataFormat.format(time)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun formatTime(pattern: String, time: Long): String? {
|
||||||
|
return SimpleDateFormat(pattern, Locale.ROOT).format(time)
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/rv_data"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"/>
|
||||||
|
</LinearLayout>
|
@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:layout_height="@dimen/_108dp"
|
||||||
|
android:paddingStart="@dimen/_172dp">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_time"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="@dimen/_30dp"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_sensor"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="@dimen/_201dp"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="@dimen/_30dp"/>
|
||||||
|
</LinearLayout>
|
@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:layout_height="@dimen/_108dp"
|
||||||
|
android:paddingStart="@dimen/_172dp">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_time"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="@color/color_error"
|
||||||
|
android:textSize="@dimen/_30dp"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_sensor"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="@dimen/_201dp"
|
||||||
|
android:textColor="@color/color_error"
|
||||||
|
android:textSize="@dimen/_30dp"/>
|
||||||
|
</LinearLayout>
|
Loading…
Reference in New Issue