告警日志

This commit is contained in:
2026-05-29 11:50:26 +08:00
parent b2d3046560
commit 9186cd00aa
23 changed files with 874 additions and 175 deletions

View File

@@ -1,10 +1,8 @@
package com.example.defenseapplication.liveVideo
import android.content.Intent
import android.content.res.Configuration
import android.graphics.Color
import android.os.Bundle
import android.util.Log
import android.view.View
import android.view.ViewGroup
@@ -13,15 +11,20 @@ import android.widget.Toast
import androidx.activity.OnBackPressedCallback
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.lifecycle.lifecycleScope
import chuangyuan.ycj.videolibrary.listener.VideoInfoListener
import chuangyuan.ycj.videolibrary.video.ExoUserPlayer
import chuangyuan.ycj.videolibrary.video.VideoPlayerManager
import com.google.android.exoplayer2.ui.PlayerView
import com.example.defenseapplication.R
import com.example.defenseapplication.adapter.AlarmLogAdapter
import com.example.defenseapplication.bean.DeviceAlarmBean
import com.example.defenseapplication.bean.DeviceAlarmResponse
import com.example.defenseapplication.databinding.AlarmLogActivityBinding
import com.example.defenseapplication.utils.ActivityManager
import com.example.defenseapplication.utils.RetrofitNetwork
import com.gyf.immersionbar.ImmersionBar
import kotlinx.coroutines.launch
import java.text.SimpleDateFormat
import java.util.*
import com.bigkoo.pickerview.builder.TimePickerBuilder
import com.bigkoo.pickerview.listener.OnTimeSelectListener
@@ -31,11 +34,14 @@ class AlarmLogActivity : AppCompatActivity() {
private lateinit var binding: AlarmLogActivityBinding
private lateinit var calendar: Calendar
private var adapter: AlarmLogAdapter? = null
private val alarmList = mutableListOf<String>()
private val alarmList = mutableListOf<DeviceAlarmBean>()
private val originalAlarmList = mutableListOf<DeviceAlarmBean>()
private lateinit var exoPlayerManager: ExoUserPlayer
private var isMuted = false
private var isVoiceEnabled = false
private var isLightOn = false
private var deviceId: String? = null
private var isLoading = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -46,11 +52,12 @@ class AlarmLogActivity : AppCompatActivity() {
.titleBar(binding.exoPlayContextId)
.init()
deviceId = intent.getStringExtra("device_id")
calendar = Calendar.getInstance()
updateDateDisplay()
initVideoPlayer()
initRecyclerView()
loadAlarmList()
fetchAlarmList()
initListener()
onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
@@ -143,14 +150,53 @@ class AlarmLogActivity : AppCompatActivity() {
binding.alarmListRecyclerView.adapter = adapter
}
private fun loadAlarmList() {
private fun fetchAlarmList() {
val currentDeviceId = deviceId ?: return
Log.d("AlarmLogActivity", "=== 开始请求设备告警日志 ===")
Log.d("AlarmLogActivity", "请求参数 - deviceId: $currentDeviceId")
isLoading = true
lifecycleScope.launch {
try {
Log.d("AlarmLogActivity", "正在发送网络请求...")
val response = RetrofitNetwork.getNetworkService().getDeviceAlarmList(
deviceId = currentDeviceId,
pageNum = "1",
pageSize = "100"
)
Log.d("AlarmLogActivity", "请求完成")
Log.d("AlarmLogActivity", "总条数: ${response.total}, 当前页数据条数: ${response.rows.size}")
val newData = response.rows
originalAlarmList.clear()
originalAlarmList.addAll(newData)
filterAlarmListByDate(calendar)
Log.d("AlarmLogActivity", "已获取 ${newData.size} 条数据")
} catch (e: Exception) {
Log.e("AlarmLogActivity", "请求异常: ${e.message}", e)
} finally {
isLoading = false
Log.d("AlarmLogActivity", "请求结束")
}
}
}
private fun filterAlarmListByDate(selectedDate: Calendar) {
val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault())
val selectedDateStr = dateFormat.format(selectedDate.time)
alarmList.clear()
alarmList.add("入侵告警 - 10:30")
alarmList.add("入侵告警 - 09:15")
alarmList.add("入侵告警 - 08:45")
alarmList.add("入侵告警 - 07:20")
alarmList.add("入侵告警 - 06:50")
originalAlarmList.forEach { item ->
val itemDateStr = item.createTime.substring(0, 10)
if (itemDateStr == selectedDateStr) {
alarmList.add(item)
}
}
adapter?.notifyDataSetChanged()
Log.d("AlarmLogActivity", "日期筛选完成,筛选后条数: ${alarmList.size}")
}
private fun updateDateDisplay() {
@@ -241,7 +287,7 @@ class AlarmLogActivity : AppCompatActivity() {
val timePicker = TimePickerBuilder(this, OnTimeSelectListener { date, _ ->
calendar.time = date
updateDateDisplay()
loadAlarmList()
filterAlarmListByDate(calendar)
})
.setType(booleanArrayOf(true, true, true, false, false, false)) // 年月日
.setTitleText(getString(R.string.select_date))