视频删除功能
This commit is contained in:
@@ -22,7 +22,10 @@ import com.shuyu.gsyvideoplayer.utils.OrientationUtils
|
|||||||
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer
|
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer
|
||||||
import com.bigkoo.pickerview.builder.TimePickerBuilder
|
import com.bigkoo.pickerview.builder.TimePickerBuilder
|
||||||
import com.bigkoo.pickerview.listener.OnTimeSelectListener
|
import com.bigkoo.pickerview.listener.OnTimeSelectListener
|
||||||
|
import com.example.defenseapplication.view.CustomDialogFragment
|
||||||
|
import com.example.defenseapplication.view.LoadingDialog
|
||||||
import com.example.defenseapplication.view.MyGSYVideoPlayer
|
import com.example.defenseapplication.view.MyGSYVideoPlayer
|
||||||
|
import com.example.defenseapplication.view.showDefenseDialog
|
||||||
import com.gyf.immersionbar.ImmersionBar
|
import com.gyf.immersionbar.ImmersionBar
|
||||||
import com.shuyu.gsyvideoplayer.GSYVideoManager
|
import com.shuyu.gsyvideoplayer.GSYVideoManager
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@@ -44,6 +47,7 @@ class AlarmLogActivity : AppCompatActivity() {
|
|||||||
private var isMute = false
|
private var isMute = false
|
||||||
private lateinit var audioManager: AudioManager
|
private lateinit var audioManager: AudioManager
|
||||||
private var isRightMenuVisible = false
|
private var isRightMenuVisible = false
|
||||||
|
private var currentAlarmItem: DeviceAlarmBean? = null
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
@@ -137,8 +141,10 @@ class AlarmLogActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
private fun initRecyclerView() {
|
private fun initRecyclerView() {
|
||||||
adapter = AlarmLogAdapter(alarmList) { item ->
|
adapter = AlarmLogAdapter(alarmList) { item ->
|
||||||
|
currentAlarmItem = item
|
||||||
if (!item.video.isNullOrEmpty()) {
|
if (!item.video.isNullOrEmpty()) {
|
||||||
Toast.makeText(this, "该告警记录有视频", Toast.LENGTH_SHORT).show()
|
binding.exoPlayContextId.setUp(item.video, true, item.categoryName)
|
||||||
|
binding.exoPlayContextId.startPlayLogic()
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(this, "该告警记录没有视频", Toast.LENGTH_SHORT).show()
|
Toast.makeText(this, "该告警记录没有视频", Toast.LENGTH_SHORT).show()
|
||||||
}
|
}
|
||||||
@@ -170,6 +176,7 @@ class AlarmLogActivity : AppCompatActivity() {
|
|||||||
originalAlarmList.clear()
|
originalAlarmList.clear()
|
||||||
originalAlarmList.addAll(newData)
|
originalAlarmList.addAll(newData)
|
||||||
filterAlarmListByDate(calendar)
|
filterAlarmListByDate(calendar)
|
||||||
|
currentAlarmItem = alarmList.firstOrNull()
|
||||||
Log.d("AlarmLogActivity", "已获取 ${newData.size} 条数据")
|
Log.d("AlarmLogActivity", "已获取 ${newData.size} 条数据")
|
||||||
|
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
@@ -207,8 +214,10 @@ class AlarmLogActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
if (alarmList.isEmpty()) {
|
if (alarmList.isEmpty()) {
|
||||||
showEmptyView()
|
showEmptyView()
|
||||||
|
currentAlarmItem = null
|
||||||
} else {
|
} else {
|
||||||
hideEmptyView()
|
hideEmptyView()
|
||||||
|
currentAlarmItem = alarmList.firstOrNull()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -225,10 +234,21 @@ class AlarmLogActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
binding.ivDownload.setOnClickListener {
|
binding.ivDownload.setOnClickListener {
|
||||||
Toast.makeText(this,"下载视频",Toast.LENGTH_SHORT).show()
|
showConfirmDialog(getString(R.string.tip), getString(R.string.download_alarm_video_confirm)) {
|
||||||
|
// 下载逻辑
|
||||||
|
Toast.makeText(this, getString(R.string.download_start), Toast.LENGTH_SHORT).show()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
binding.ivDelete.setOnClickListener {
|
binding.ivDelete.setOnClickListener {
|
||||||
|
val item = currentAlarmItem
|
||||||
|
if (item == null) {
|
||||||
|
Toast.makeText(this, "没有可删除的告警记录", Toast.LENGTH_SHORT).show()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
showConfirmDialog(getString(R.string.tip), getString(R.string.delete_alarm_video_confirm)) {
|
||||||
|
val loadingDialog = LoadingDialog(this).setMessage("删除中...").apply { show() }
|
||||||
|
deleteAlarmItem(item.id, loadingDialog)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
binding.ivMute.setOnClickListener {
|
binding.ivMute.setOnClickListener {
|
||||||
isMute = !isMute
|
isMute = !isMute
|
||||||
@@ -277,6 +297,40 @@ class AlarmLogActivity : AppCompatActivity() {
|
|||||||
binding.exoPlayContextId.onVideoResume()
|
binding.exoPlayContextId.onVideoResume()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun showConfirmDialog(title: String, message: String, onConfirm: () -> Unit) {
|
||||||
|
val config = CustomDialogFragment.Config(
|
||||||
|
title = title,
|
||||||
|
message = message,
|
||||||
|
positiveText = getString(R.string.confirm),
|
||||||
|
negativeText = getString(R.string.cancel)
|
||||||
|
)
|
||||||
|
showDefenseDialog(config, onPositiveClick = { onConfirm() })
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun deleteAlarmItem(id: String, loadingDialog: LoadingDialog) {
|
||||||
|
lifecycleScope.launch {
|
||||||
|
try {
|
||||||
|
val response = RetrofitNetwork.getNetworkService().deleteMessage(id)
|
||||||
|
if (response.code == 200) {
|
||||||
|
Toast.makeText(this@AlarmLogActivity, getString(R.string.delete_success), Toast.LENGTH_SHORT).show()
|
||||||
|
originalAlarmList.removeAll { it.id == id }
|
||||||
|
alarmList.removeAll { it.id == id }
|
||||||
|
adapter?.notifyDataSetChanged()
|
||||||
|
currentAlarmItem = alarmList.firstOrNull()
|
||||||
|
if (alarmList.isEmpty()) {
|
||||||
|
showEmptyView()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Toast.makeText(this@AlarmLogActivity, response.msg, Toast.LENGTH_SHORT).show()
|
||||||
|
}
|
||||||
|
} catch (e: Exception) {
|
||||||
|
Toast.makeText(this@AlarmLogActivity, "删除失败: ${e.message}", Toast.LENGTH_SHORT).show()
|
||||||
|
} finally {
|
||||||
|
loadingDialog.dismiss()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
super.onDestroy()
|
super.onDestroy()
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import com.example.defenseapplication.bean.UserInfoBean
|
|||||||
import com.example.defenseapplication.bean.VerifyOptionPasswordRequest
|
import com.example.defenseapplication.bean.VerifyOptionPasswordRequest
|
||||||
import okhttp3.MultipartBody
|
import okhttp3.MultipartBody
|
||||||
import retrofit2.http.Body
|
import retrofit2.http.Body
|
||||||
|
import retrofit2.http.DELETE
|
||||||
import retrofit2.http.GET
|
import retrofit2.http.GET
|
||||||
import retrofit2.http.Multipart
|
import retrofit2.http.Multipart
|
||||||
import retrofit2.http.POST
|
import retrofit2.http.POST
|
||||||
@@ -236,8 +237,15 @@ interface ApiService {
|
|||||||
/**
|
/**
|
||||||
* 查看告警消息
|
* 查看告警消息
|
||||||
*/
|
*/
|
||||||
//@GET("/app/appMessageInfo/{id}")
|
@GET("/app/appMessageInfo/{id}")
|
||||||
//suspend fun getMessageInfo(@retrofit2.http.Path("id") id: String): GetCodeBean<MessageBean>
|
suspend fun getMessageInfo(@retrofit2.http.Path("id") id: String): GetCodeBean<MessageBean>
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除告警消息
|
||||||
|
*/
|
||||||
|
@DELETE("/app/deleteMessage/{id}")
|
||||||
|
suspend fun deleteMessage(@retrofit2.http.Path("id") id: String): GetCodeBean<Any>
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -235,7 +235,13 @@
|
|||||||
<string name="generate_invite_code">Generate Invite Code</string>
|
<string name="generate_invite_code">Generate Invite Code</string>
|
||||||
|
|
||||||
<!-- Dialog -->
|
<!-- Dialog -->
|
||||||
<string name="tip">Tip</string>
|
<string name="tip">提示</string>
|
||||||
|
<string name="download_alarm_video_confirm">确定下载该入侵告警视频?</string>
|
||||||
|
<string name="delete_alarm_video_confirm">确定删除该入侵告警视频?</string>
|
||||||
|
<string name="download_alarm_photo_confirm">确定下载该入侵告警照片?</string>
|
||||||
|
<string name="delete_alarm_photo_confirm">确定删除该入侵告警照片?</string>
|
||||||
|
<string name="download_start">开始下载</string>
|
||||||
|
<string name="delete_success">删除成功</string>
|
||||||
<string name="please_wait">Please wait...</string>
|
<string name="please_wait">Please wait...</string>
|
||||||
<string name="operation_success">Operation successful</string>
|
<string name="operation_success">Operation successful</string>
|
||||||
<string name="operation_failed">Operation failed</string>
|
<string name="operation_failed">Operation failed</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user