diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/App.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/App.kt index 0d702e9..2b131ba 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/App.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/App.kt @@ -9,7 +9,9 @@ import com.common.commonlib.db.entity.Warning import com.yinuo.safetywatcher.watcher.utils.LztekUtil import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.async import kotlinx.coroutines.launch +import java.io.File @OptIn(DelicateCoroutinesApi::class) class App : CommonApplication() { @@ -28,19 +30,35 @@ class App : CommonApplication() { private fun tryFixDbData() { GlobalScope.launch { - val warningDao = DBUtils.warningDao() - val warningList = warningDao.queryWarningsNoEndTime() - warningList?.apply { - forEach { warning -> - warning.endTime = tryAssignment(warningDao, warning) + // 修复告警数据 + async { + val warningDao = DBUtils.warningDao() + val warningList = warningDao.queryWarningsNoEndTime() + warningList?.apply { + forEach { warning -> + warning.endTime = tryAssignment(warningDao, warning) + } + warningDao.updateAll(warningList) } - warningDao.updateAll(warningList) - } + }.await() + + // 修复视频数据 + async { + val videoDao = DBUtils.videoDao() + val videoList = videoDao.getAll() + videoList.apply { + forEach { video -> + if (!File(video.path).exists()) { + videoDao.delete(video) + } + } + } + }.await() } } private suspend fun tryAssignment(warningDao: WarningDao, warning: Warning): Long { val latest = warningDao.findLatestByName(warning.gasName) - return latest?.endTime ?: System.currentTimeMillis() + return if (latest?.endTime!! > 0L) latest?.endTime else System.currentTimeMillis() } } \ No newline at end of file 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 index fd7d7b5..c22587f 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HistoryVideoActivity.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HistoryVideoActivity.kt @@ -101,12 +101,11 @@ class HistoryVideoActivity : BaseActivity() { val videos = videoDao.getAllByTime(startTime, endTime) launch(Dispatchers.Main) { - val sortList = mutableListOf