视频删除功能
This commit is contained in:
@@ -22,7 +22,10 @@ import com.shuyu.gsyvideoplayer.utils.OrientationUtils
|
||||
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer
|
||||
import com.bigkoo.pickerview.builder.TimePickerBuilder
|
||||
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.showDefenseDialog
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import com.shuyu.gsyvideoplayer.GSYVideoManager
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -44,6 +47,7 @@ class AlarmLogActivity : AppCompatActivity() {
|
||||
private var isMute = false
|
||||
private lateinit var audioManager: AudioManager
|
||||
private var isRightMenuVisible = false
|
||||
private var currentAlarmItem: DeviceAlarmBean? = null
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
@@ -137,8 +141,10 @@ class AlarmLogActivity : AppCompatActivity() {
|
||||
}
|
||||
private fun initRecyclerView() {
|
||||
adapter = AlarmLogAdapter(alarmList) { item ->
|
||||
currentAlarmItem = item
|
||||
if (!item.video.isNullOrEmpty()) {
|
||||
Toast.makeText(this, "该告警记录有视频", Toast.LENGTH_SHORT).show()
|
||||
binding.exoPlayContextId.setUp(item.video, true, item.categoryName)
|
||||
binding.exoPlayContextId.startPlayLogic()
|
||||
} else {
|
||||
Toast.makeText(this, "该告警记录没有视频", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
@@ -170,6 +176,7 @@ class AlarmLogActivity : AppCompatActivity() {
|
||||
originalAlarmList.clear()
|
||||
originalAlarmList.addAll(newData)
|
||||
filterAlarmListByDate(calendar)
|
||||
currentAlarmItem = alarmList.firstOrNull()
|
||||
Log.d("AlarmLogActivity", "已获取 ${newData.size} 条数据")
|
||||
|
||||
} catch (e: Exception) {
|
||||
@@ -207,8 +214,10 @@ class AlarmLogActivity : AppCompatActivity() {
|
||||
|
||||
if (alarmList.isEmpty()) {
|
||||
showEmptyView()
|
||||
currentAlarmItem = null
|
||||
} else {
|
||||
hideEmptyView()
|
||||
currentAlarmItem = alarmList.firstOrNull()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -225,10 +234,21 @@ class AlarmLogActivity : AppCompatActivity() {
|
||||
}
|
||||
|
||||
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 {
|
||||
|
||||
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 {
|
||||
isMute = !isMute
|
||||
@@ -277,6 +297,40 @@ class AlarmLogActivity : AppCompatActivity() {
|
||||
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() {
|
||||
super.onDestroy()
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ import com.example.defenseapplication.bean.UserInfoBean
|
||||
import com.example.defenseapplication.bean.VerifyOptionPasswordRequest
|
||||
import okhttp3.MultipartBody
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.DELETE
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.Multipart
|
||||
import retrofit2.http.POST
|
||||
@@ -236,8 +237,15 @@ interface ApiService {
|
||||
/**
|
||||
* 查看告警消息
|
||||
*/
|
||||
//@GET("/app/appMessageInfo/{id}")
|
||||
//suspend fun getMessageInfo(@retrofit2.http.Path("id") id: String): GetCodeBean<MessageBean>
|
||||
@GET("/app/appMessageInfo/{id}")
|
||||
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>
|
||||
|
||||
<!-- 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="operation_success">Operation successful</string>
|
||||
<string name="operation_failed">Operation failed</string>
|
||||
|
||||
Reference in New Issue
Block a user