desc:首页检测内存容量

main
xiaowusky 2 years ago
parent 760378730a
commit 24b578f082

@ -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.constant.DELAY_TIME_OPEN_CAMERA
import com.yinuo.safetywatcher.watcher.port.GasUtils import com.yinuo.safetywatcher.watcher.port.GasUtils
import com.yinuo.safetywatcher.watcher.services.HeartbeatService 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.BatteryHelper
import com.yinuo.safetywatcher.watcher.utils.LztekUtil
import com.yinuo.safetywatcher.watcher.utils.SimHelper import com.yinuo.safetywatcher.watcher.utils.SimHelper
import com.yinuo.safetywatcher.watcher.utils.WifiHelper import com.yinuo.safetywatcher.watcher.utils.WifiHelper
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import java.io.File
class HomeActivity : NoOptionsActivity() { class HomeActivity : NoOptionsActivity() {
private var warnDialog: ConfirmDialog? = null
private val mBinding: ActivityHomeBinding by lazy { private val mBinding: ActivityHomeBinding by lazy {
ActivityHomeBinding.inflate(layoutInflater) ActivityHomeBinding.inflate(layoutInflater)
} }
@ -78,6 +83,16 @@ class HomeActivity : NoOptionsActivity() {
itemSetting.requestFocus() 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) 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() { override fun onDestroy() {
super.onDestroy() super.onDestroy()
BatteryHelper.release(this@HomeActivity) BatteryHelper.release(this@HomeActivity)
@ -217,6 +246,7 @@ class HomeActivity : NoOptionsActivity() {
SimHelper.release(this@HomeActivity) SimHelper.release(this@HomeActivity)
mBinding.root?.removeCallbacks(reStartCamera) mBinding.root?.removeCallbacks(reStartCamera)
mRender?.onDestoryed() mRender?.onDestoryed()
warnDialog?.dismiss()
Process.killProcess(Process.myPid()) Process.killProcess(Process.myPid())
} }

@ -1,7 +1,7 @@
package com.yinuo.safetywatcher.watcher.utils package com.yinuo.safetywatcher.watcher.utils
import android.os.StatFs
import com.lztek.toolkit.Lztek import com.lztek.toolkit.Lztek
import com.yinuo.library.vlc.PushHelper
import java.math.BigInteger import java.math.BigInteger
import java.security.MessageDigest import java.security.MessageDigest
@ -52,4 +52,22 @@ object LztekUtil {
this.rtspUrl = str this.rtspUrl = str
rtspUrl?.let { PushHelper.setPushUrl(it) } 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
}
} }

@ -15,6 +15,9 @@ interface VideoDao {
@Query("SELECT * FROM video WHERE time BETWEEN :startTime AND :endTime") @Query("SELECT * FROM video WHERE time BETWEEN :startTime AND :endTime")
suspend fun getAllByTime(startTime: Long, endTime: Long): List<Video> suspend fun getAllByTime(startTime: Long, endTime: Long): List<Video>
@Query("SELECT * FROM video LIMIT 50")
suspend fun getOldVideo(): List<Video>
@Insert @Insert
suspend fun insert(video: Video) suspend fun insert(video: Video)

Loading…
Cancel
Save