desc:数据查询。告警数据。历史视频。

main
xiaowusky 2 years ago
parent 888ef2a590
commit 5e4009205b

@ -85,6 +85,10 @@
android:name=".watcher.ui.SensorThresholdSetActivity" android:name=".watcher.ui.SensorThresholdSetActivity"
android:exported="false" android:exported="false"
android:screenOrientation="landscape" /> android:screenOrientation="landscape" />
<activity
android:name=".watcher.ui.HistoryVideoActivity"
android:exported="false"
android:screenOrientation="landscape" />
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"

@ -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() {
}
}

@ -1,9 +1,12 @@
package com.yinuo.safetywatcher.watcher.ui package com.yinuo.safetywatcher.watcher.ui
import android.view.View import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
import com.yinuo.safetywatcher.R import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.ActivityQueryDataBinding import com.yinuo.safetywatcher.databinding.ActivityQueryDataBinding
import com.yinuo.safetywatcher.watcher.adapter.HistoryDataAdapter
import com.yinuo.safetywatcher.watcher.base.BaseActivity import com.yinuo.safetywatcher.watcher.base.BaseActivity
import com.yinuo.safetywatcher.watcher.bean.HistoryData
import com.yinuo.safetywatcher.watcher.view.CommonTopBar import com.yinuo.safetywatcher.watcher.view.CommonTopBar
class QueryDataActivity : BaseActivity() { class QueryDataActivity : BaseActivity() {
@ -36,5 +39,13 @@ class QueryDataActivity : BaseActivity() {
} }
override fun initView() { override fun initView() {
mBinding.rvData.layoutManager = LinearLayoutManager(this@QueryDataActivity)
val adapter = HistoryDataAdapter()
val datas = mutableListOf<HistoryData>()
datas.add(HistoryData(0, "气体传感器"))
datas.add(HistoryData(0, "温度传感器"))
adapter.setData(datas)
mBinding.rvData.adapter = adapter
} }
} }

@ -34,6 +34,9 @@ class SettingActivity : NoOptionsActivity() {
itemWraning.setOnClickListener { itemWraning.setOnClickListener {
startActivity(Intent(this@SettingActivity, WarnDataActivity::class.java)) startActivity(Intent(this@SettingActivity, WarnDataActivity::class.java))
} }
itemVideo.setOnClickListener {
startActivity(Intent(this@SettingActivity, HistoryVideoActivity::class.java))
}
itemSensor.setOnClickListener { itemSensor.setOnClickListener {
startActivity(Intent(this@SettingActivity, SensorActivity::class.java)) startActivity(Intent(this@SettingActivity, SensorActivity::class.java))
} }

@ -1,9 +1,14 @@
package com.yinuo.safetywatcher.watcher.ui package com.yinuo.safetywatcher.watcher.ui
import android.view.View import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
import com.yinuo.safetywatcher.R import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.ActivityWarndataBinding 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.base.BaseActivity
import com.yinuo.safetywatcher.watcher.bean.HistoryData
import com.yinuo.safetywatcher.watcher.bean.WarnData
import com.yinuo.safetywatcher.watcher.view.CommonTopBar import com.yinuo.safetywatcher.watcher.view.CommonTopBar
class WarnDataActivity : BaseActivity() { class WarnDataActivity : BaseActivity() {
@ -36,5 +41,13 @@ class WarnDataActivity : BaseActivity() {
} }
override fun initView() { override fun initView() {
mBinding.rvData.layoutManager = LinearLayoutManager(this@WarnDataActivity)
val adapter = WarnDataAdapter()
val datas = mutableListOf<WarnData>()
datas.add(WarnData(0, "二氧化碳浓度过高"))
datas.add(WarnData(0, "温度超标"))
adapter.setData(datas)
mBinding.rvData.adapter = adapter
} }
} }

@ -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>

@ -3,4 +3,8 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="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> </LinearLayout>

@ -109,6 +109,33 @@
android:textSize="@dimen/_36dp" /> android:textSize="@dimen/_36dp" />
</LinearLayout> </LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/_2dp"
android:background="@color/_242f4d" />
<LinearLayout
android:id="@+id/item_video"
android:layout_width="match_parent"
android:layout_height="@dimen/_108dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="@dimen/_121dp">
<ImageView
android:layout_width="@dimen/_32dp"
android:layout_height="@dimen/_32dp"
android:src="@mipmap/ic_wraning" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_21dp"
android:text="@string/history_video"
android:textColor="@color/white"
android:textSize="@dimen/_36dp" />
</LinearLayout>
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/_2dp" android:layout_height="@dimen/_2dp"

@ -3,4 +3,8 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="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> </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>

@ -9,6 +9,7 @@
<string name="light_setting">背光设置</string> <string name="light_setting">背光设置</string>
<string name="query_data">查询数据</string> <string name="query_data">查询数据</string>
<string name="warn_data">报警数据</string> <string name="warn_data">报警数据</string>
<string name="history_video">历史视频</string>
<string name="sensor">传感器</string> <string name="sensor">传感器</string>
<string name="sensor_data">传感器数据详情</string> <string name="sensor_data">传感器数据详情</string>
<string name="sensor_setting">传感器设置</string> <string name="sensor_setting">传感器设置</string>

Loading…
Cancel
Save