diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 94266cf..77471a9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -85,6 +85,10 @@ android:name=".watcher.ui.SensorThresholdSetActivity" android:exported="false" android:screenOrientation="landscape" /> + () { + + class HViewHolder(val binding: LayoutItemHistoryBinding) : + BaseRvAdapter.BaseViewHolder(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) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/adapter/WarnDataAdapter.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/adapter/WarnDataAdapter.kt new file mode 100644 index 0000000..054902b --- /dev/null +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/adapter/WarnDataAdapter.kt @@ -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() { + + class WViewHolder(val binding: LayoutItemWarnBinding) : + BaseRvAdapter.BaseViewHolder(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) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/bean/HistoryData.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/bean/HistoryData.kt new file mode 100644 index 0000000..fad3a46 --- /dev/null +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/bean/HistoryData.kt @@ -0,0 +1,3 @@ +package com.yinuo.safetywatcher.watcher.bean + +data class HistoryData(val time:Long, val sensor:String) diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/bean/WarnData.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/bean/WarnData.kt new file mode 100644 index 0000000..559c49b --- /dev/null +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/bean/WarnData.kt @@ -0,0 +1,3 @@ +package com.yinuo.safetywatcher.watcher.bean + +data class WarnData(val time:Long, val error:String) 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 new file mode 100644 index 0000000..882aa5c --- /dev/null +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HistoryVideoActivity.kt @@ -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? { + val ops = mutableListOf() + 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() { + } +} \ No newline at end of file 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 4b31239..092d384 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 @@ -1,9 +1,12 @@ 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.ActivityQueryDataBinding +import com.yinuo.safetywatcher.watcher.adapter.HistoryDataAdapter import com.yinuo.safetywatcher.watcher.base.BaseActivity +import com.yinuo.safetywatcher.watcher.bean.HistoryData import com.yinuo.safetywatcher.watcher.view.CommonTopBar class QueryDataActivity : BaseActivity() { @@ -36,5 +39,13 @@ class QueryDataActivity : BaseActivity() { } override fun initView() { + mBinding.rvData.layoutManager = LinearLayoutManager(this@QueryDataActivity) + + val adapter = HistoryDataAdapter() + val datas = mutableListOf() + datas.add(HistoryData(0, "气体传感器")) + datas.add(HistoryData(0, "温度传感器")) + adapter.setData(datas) + mBinding.rvData.adapter = adapter } } \ No newline at end of file diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SettingActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SettingActivity.kt index 65006f7..abaeb5a 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SettingActivity.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SettingActivity.kt @@ -34,6 +34,9 @@ class SettingActivity : NoOptionsActivity() { itemWraning.setOnClickListener { startActivity(Intent(this@SettingActivity, WarnDataActivity::class.java)) } + itemVideo.setOnClickListener { + startActivity(Intent(this@SettingActivity, HistoryVideoActivity::class.java)) + } itemSensor.setOnClickListener { startActivity(Intent(this@SettingActivity, SensorActivity::class.java)) } 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 0894718..1198a41 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 @@ -1,9 +1,14 @@ 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.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 WarnDataActivity : BaseActivity() { @@ -36,5 +41,13 @@ class WarnDataActivity : BaseActivity() { } override fun initView() { + mBinding.rvData.layoutManager = LinearLayoutManager(this@WarnDataActivity) + + val adapter = WarnDataAdapter() + val datas = mutableListOf() + datas.add(WarnData(0, "二氧化碳浓度过高")) + datas.add(WarnData(0, "温度超标")) + adapter.setData(datas) + mBinding.rvData.adapter = adapter } } \ No newline at end of file diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/DateUtils.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/DateUtils.kt new file mode 100644 index 0000000..e091d63 --- /dev/null +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/DateUtils.kt @@ -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) + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_history_video.xml b/app/src/main/res/layout/activity_history_video.xml new file mode 100644 index 0000000..0994f79 --- /dev/null +++ b/app/src/main/res/layout/activity_history_video.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_query_data.xml b/app/src/main/res/layout/activity_query_data.xml index 41d2ef1..0994f79 100644 --- a/app/src/main/res/layout/activity_query_data.xml +++ b/app/src/main/res/layout/activity_query_data.xml @@ -3,4 +3,8 @@ android:layout_width="match_parent" android:layout_height="match_parent"> + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/activity_setting.xml index c6db30d..44983ad 100644 --- a/app/src/main/res/layout/activity_setting.xml +++ b/app/src/main/res/layout/activity_setting.xml @@ -109,6 +109,33 @@ android:textSize="@dimen/_36dp" /> + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_item_history.xml b/app/src/main/res/layout/layout_item_history.xml new file mode 100644 index 0000000..59b3fcb --- /dev/null +++ b/app/src/main/res/layout/layout_item_history.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_item_warn.xml b/app/src/main/res/layout/layout_item_warn.xml new file mode 100644 index 0000000..fd4674c --- /dev/null +++ b/app/src/main/res/layout/layout_item_warn.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 58ce3a5..29b9416 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -9,6 +9,7 @@ 背光设置 查询数据 报警数据 + 历史视频 传感器 传感器数据详情 传感器设置