puwei/app/src/main/java/com/yinuo/safetywatcher/TestUtils.kt

103 lines
3.8 KiB
Kotlin

package com.yinuo.safetywatcher
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.provider.Settings
import com.common.commonlib.net.bean.BaseResponse
import com.common.commonlib.net.callback.RequestResultCallBack
import com.common.commonlib.db.DBUtils
import com.common.commonlib.db.entity.Gas
import com.common.commonlib.db.entity.GasType
import com.yinuo.safetywatcher.watcher.net.api.UploadFileApi
import com.yinuo.safetywatcher.watcher.ui.view.CommonDialog
import com.yinuo.safetywatcher.watcher.utils.DateUtils
import com.yinuo.safetywatcher.xls.SimpleCellValue
import com.yinuo.safetywatcher.xls.utils.ExcelUtils
import com.yinuo.safetywatcher.xls.utils.PathUtils
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
object TestUtils {
fun insertData() {
GlobalScope.launch() {
// 插入类型
val typeDao = DBUtils.gasTypeDao()
val all = typeDao.getAll()
if (all.isNotEmpty()) {
return@launch
}
val list = mutableListOf<GasType>()
list.add(GasType("CO"))
list.add(GasType("CO2"))
list.add(GasType("O2"))
typeDao.insertAll(list)
// 构造气体数据
val timeMillis = System.currentTimeMillis()
val gasDao = DBUtils.gasDao()
val gases = mutableListOf<Gas>()
gases.add(Gas(timeMillis - 90 * 1000, "CO", 1.0))
gases.add(Gas(timeMillis - 90 * 1000, "O2", 1.0))
gases.add(Gas(timeMillis - 90 * 1000, "CO2", 1.0))
gases.add(Gas(timeMillis - 60 * 1000, "CO2", 1.0))
gases.add(Gas(timeMillis - 60 * 1000, "CO", 1.0))
gases.add(Gas(timeMillis - 60 * 1000, "O2", 1.0))
gases.add(Gas(timeMillis - 30 * 1000, "O2", 1.0))
gases.add(Gas(timeMillis - 30 * 1000, "CO", 1.0))
gases.add(Gas(timeMillis - 30 * 1000, "CO2", 1.0))
gases.add(Gas(timeMillis, "CO", 1.0))
gases.add(Gas(timeMillis, "CO2", 1.0))
gases.add(Gas(timeMillis, "O2", 1.0))
gasDao.insertAll(gases)
}
}
fun requestReadNetworkStats(context: Context) {
val intent = Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
// 经过测试,只有在 Android 10 及以上加包名才有效果
// 如果在 Android 10 以下加包名会导致无法跳转
intent.data = Uri.parse("package:" + context.packageName)
}
context.startActivity(intent)
}
fun testUploadFile(uploadApi: UploadFileApi, path: String, commonDialog: CommonDialog) {
val path = PathUtils.getExternalStorageDirectory() + "/test2.mp4"
uploadApi.singleUpload(path, System.currentTimeMillis(), object :
RequestResultCallBack<BaseResponse>() {
override fun onResult(result: BaseResponse) {
commonDialog.dismiss()
}
override fun onError(error: String?) {
commonDialog.dismiss()
}
})
}
fun testExportExcel(context: Context, datas: MutableList<Gas>, commonDialog: CommonDialog) {
val allData = mutableListOf<List<SimpleCellValue>>()
datas.forEach {
val row = mutableListOf<SimpleCellValue>()
row.add(SimpleCellValue(DateUtils.formatHistoryTime(it.time) ?: ""))
row.add(SimpleCellValue(it.gasName))
row.add(SimpleCellValue(it.gasValue.toString()))
row.add(SimpleCellValue(it.unit))
allData.add(row)
}
ExcelUtils.writeStringListToExcel(allData, context);
commonDialog.dialogBinding?.root?.postDelayed({ commonDialog.dismiss() }, 1000)
}
}