From 24b578f0828793f49682cfa7b2ba70356c3a831b Mon Sep 17 00:00:00 2001 From: xiaowusky Date: Mon, 11 Sep 2023 11:40:52 +0800 Subject: [PATCH] =?UTF-8?q?desc:=E9=A6=96=E9=A1=B5=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E5=86=85=E5=AD=98=E5=AE=B9=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../safetywatcher/watcher/ui/HomeActivity.kt | 30 +++++++++++++++++++ .../safetywatcher/watcher/utils/LztekUtil.kt | 20 ++++++++++++- .../com/common/commonlib/db/dao/VideoDao.kt | 3 ++ 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HomeActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HomeActivity.kt index 24a8da3..709c139 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HomeActivity.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HomeActivity.kt @@ -22,15 +22,20 @@ import com.yinuo.safetywatcher.watcher.constant.DELAY_TIME_CHECK_SENSOR import com.yinuo.safetywatcher.watcher.constant.DELAY_TIME_OPEN_CAMERA import com.yinuo.safetywatcher.watcher.port.GasUtils import com.yinuo.safetywatcher.watcher.services.HeartbeatService +import com.yinuo.safetywatcher.watcher.ui.view.ConfirmDialog import com.yinuo.safetywatcher.watcher.utils.BatteryHelper +import com.yinuo.safetywatcher.watcher.utils.LztekUtil import com.yinuo.safetywatcher.watcher.utils.SimHelper import com.yinuo.safetywatcher.watcher.utils.WifiHelper import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch +import java.io.File class HomeActivity : NoOptionsActivity() { + private var warnDialog: ConfirmDialog? = null + private val mBinding: ActivityHomeBinding by lazy { ActivityHomeBinding.inflate(layoutInflater) } @@ -78,6 +83,16 @@ class HomeActivity : NoOptionsActivity() { itemSetting.requestFocus() } } + + val cardAvailableSize = LztekUtil.getCardAvailableSize() + if (cardAvailableSize < 30) { + warnDialog = + ConfirmDialog("检测倒系统剩余存储空间较小,将影响视频录制,是否删除部分早期录像腾出空间?") { + warnDialog?.dismiss() + delSomeVideo() + } + warnDialog?.show(supportFragmentManager, "warn") + } } /** @@ -210,6 +225,20 @@ class HomeActivity : NoOptionsActivity() { SimHelper.init(this@HomeActivity) } + private fun delSomeVideo() { + GlobalScope.launch { + val videoDao = DBUtils.videoDao() + val oldVideo = videoDao.getOldVideo() + try { + oldVideo?.forEach { + File(it.path).delete() + } + } catch (e: Exception) { + LogUtils.v("delSomeVideo error, ${e.message}") + } + } + } + override fun onDestroy() { super.onDestroy() BatteryHelper.release(this@HomeActivity) @@ -217,6 +246,7 @@ class HomeActivity : NoOptionsActivity() { SimHelper.release(this@HomeActivity) mBinding.root?.removeCallbacks(reStartCamera) mRender?.onDestoryed() + warnDialog?.dismiss() Process.killProcess(Process.myPid()) } diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/LztekUtil.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/LztekUtil.kt index 04b190b..f7b7bf1 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/LztekUtil.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/LztekUtil.kt @@ -1,7 +1,7 @@ package com.yinuo.safetywatcher.watcher.utils +import android.os.StatFs import com.lztek.toolkit.Lztek -import com.yinuo.library.vlc.PushHelper import java.math.BigInteger import java.security.MessageDigest @@ -52,4 +52,22 @@ object LztekUtil { this.rtspUrl = str rtspUrl?.let { PushHelper.setPushUrl(it) } } + + private fun getStorageCardPath(): String? { + return mLztek?.storageCardPath + } + + private const val BYTE_GB = 1024 * 1024 * 1024 + + fun getCardAvailableSize(): Int { + val storageCardPath = getStorageCardPath() + storageCardPath?.let { + val statfs = StatFs(it) + val blocSize = statfs.blockSizeLong + val availableSize = statfs.availableBlocksLong * blocSize + val totalSize = statfs.blockCountLong * blocSize + return (availableSize / BYTE_GB).toInt() + } + return 0 + } } \ No newline at end of file diff --git a/library-common/src/main/java/com/common/commonlib/db/dao/VideoDao.kt b/library-common/src/main/java/com/common/commonlib/db/dao/VideoDao.kt index 89ad3cd..49386f5 100644 --- a/library-common/src/main/java/com/common/commonlib/db/dao/VideoDao.kt +++ b/library-common/src/main/java/com/common/commonlib/db/dao/VideoDao.kt @@ -15,6 +15,9 @@ interface VideoDao { @Query("SELECT * FROM video WHERE time BETWEEN :startTime AND :endTime") suspend fun getAllByTime(startTime: Long, endTime: Long): List