diff --git a/.idea/misc.xml b/.idea/misc.xml index 75ae27f..ac873f3 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -20,6 +20,7 @@ + diff --git a/.idea/misc.xml b/.idea/misc.xml index 75ae27f..ac873f3 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -20,6 +20,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index aacd4da..4280e7e 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -554,16 +554,18 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 - val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - if (isOpenWarning) { + val isOpen = SaveKeyValues.getValue( + LocaleConstant.SINGLE_OPEN_WARNING, false + ) as Boolean + if (isOpen) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) - val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean - if (isAutoRecord) { + val isRecord = SaveKeyValues.getValue( + LocaleConstant.SINGLE_AUTO_RECORD, false + ) as Boolean + if (isRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ if (alarmCount >= 10) { @@ -583,6 +585,7 @@ return } isGeneratingTask = true + Log.d(kTag, "generateAlarmTask => 自动记录报警") DataBaseManager.get.addEvent( taskId = UUID.randomUUID().toString(), @@ -596,9 +599,9 @@ images = "", description = "自动报警记录" ) - isGeneratingTask = false - alarmCount = 0 "保存成功".show(requireContext()) + alarmCount = 0 + isGeneratingTask = false } /***以下是地图生命周期管理************************************************************************/ diff --git a/.idea/misc.xml b/.idea/misc.xml index 75ae27f..ac873f3 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -20,6 +20,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index aacd4da..4280e7e 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -554,16 +554,18 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 - val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - if (isOpenWarning) { + val isOpen = SaveKeyValues.getValue( + LocaleConstant.SINGLE_OPEN_WARNING, false + ) as Boolean + if (isOpen) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) - val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean - if (isAutoRecord) { + val isRecord = SaveKeyValues.getValue( + LocaleConstant.SINGLE_AUTO_RECORD, false + ) as Boolean + if (isRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ if (alarmCount >= 10) { @@ -583,6 +585,7 @@ return } isGeneratingTask = true + Log.d(kTag, "generateAlarmTask => 自动记录报警") DataBaseManager.get.addEvent( taskId = UUID.randomUUID().toString(), @@ -596,9 +599,9 @@ images = "", description = "自动报警记录" ) - isGeneratingTask = false - alarmCount = 0 "保存成功".show(requireContext()) + alarmCount = 0 + isGeneratingTask = false } /***以下是地图生命周期管理************************************************************************/ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index d15a473..531cdad 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -32,6 +32,7 @@ override fun handleMessage(msg: Message): Boolean { if (msg.what == LocaleConstant.LOAD_EVENT) { dataBeans = DataBaseManager.get.loadEvent() + weakReferenceHandler.sendEmptyMessage(2023081101) } else if (msg.what == 2023081101) { if (dataBeans.size == 0) { emptyView.show("抱歉,无法查询到相关记录", null) diff --git a/.idea/misc.xml b/.idea/misc.xml index 75ae27f..ac873f3 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -20,6 +20,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index aacd4da..4280e7e 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -554,16 +554,18 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 - val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - if (isOpenWarning) { + val isOpen = SaveKeyValues.getValue( + LocaleConstant.SINGLE_OPEN_WARNING, false + ) as Boolean + if (isOpen) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) - val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean - if (isAutoRecord) { + val isRecord = SaveKeyValues.getValue( + LocaleConstant.SINGLE_AUTO_RECORD, false + ) as Boolean + if (isRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ if (alarmCount >= 10) { @@ -583,6 +585,7 @@ return } isGeneratingTask = true + Log.d(kTag, "generateAlarmTask => 自动记录报警") DataBaseManager.get.addEvent( taskId = UUID.randomUUID().toString(), @@ -596,9 +599,9 @@ images = "", description = "自动报警记录" ) - isGeneratingTask = false - alarmCount = 0 "保存成功".show(requireContext()) + alarmCount = 0 + isGeneratingTask = false } /***以下是地图生命周期管理************************************************************************/ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index d15a473..531cdad 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -32,6 +32,7 @@ override fun handleMessage(msg: Message): Boolean { if (msg.what == LocaleConstant.LOAD_EVENT) { dataBeans = DataBaseManager.get.loadEvent() + weakReferenceHandler.sendEmptyMessage(2023081101) } else if (msg.what == 2023081101) { if (dataBeans.size == 0) { emptyView.show("抱歉,无法查询到相关记录", null) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt index 4230e7a..1c61d14 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt @@ -2,6 +2,7 @@ import android.os.Handler import android.os.Message +import androidx.lifecycle.lifecycleScope import com.casic.birmm.inspect.R import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.single.view.InspectionRouteActivity @@ -12,8 +13,12 @@ import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_inspect.* +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext class QueryInspectionFragment : KotlinBaseFragment(), Handler.Callback { @@ -26,6 +31,7 @@ override fun handleMessage(msg: Message): Boolean { if (msg.what == LocaleConstant.LOAD_INSPECTION) { dataBeans = DataBaseManager.get.loadInspection() + weakReferenceHandler.sendEmptyMessage(2023081201) } else if (msg.what == 2023081201) { if (dataBeans.size == 0) { emptyView.show("抱歉,无法查询到相关记录", null) @@ -43,6 +49,36 @@ .setText(R.id.endTimeView, item.endTime) .setText(R.id.endLocationView, item.endAddress) .setText(R.id.distanceView, item.distance.toString()) + .setOnClickListener(R.id.deleteView) { + AlertControlDialog.Builder() + .setContext(requireContext()) + .setTitle("提示") + .setMessage("确定删除此条巡检记录吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + + } + + override fun onConfirmClick() { + lifecycleScope.launch(Dispatchers.Main) { + withContext(Dispatchers.IO) { + DataBaseManager.get.deleteEventByInspectionId( + item.inspectionId + ) + } + DataBaseManager.get.deleteInspectionById(item.inspectionId) + dataBeans.remove(item) + notifyItemRemoved(position) + notifyItemRangeChanged( + position, dataBeans.size - position + ) + } + } + }).build().show() + } } } inspectRecyclerView.adapter = inspectListAdapter diff --git a/.idea/misc.xml b/.idea/misc.xml index 75ae27f..ac873f3 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -20,6 +20,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index aacd4da..4280e7e 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -554,16 +554,18 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 - val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - if (isOpenWarning) { + val isOpen = SaveKeyValues.getValue( + LocaleConstant.SINGLE_OPEN_WARNING, false + ) as Boolean + if (isOpen) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) - val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean - if (isAutoRecord) { + val isRecord = SaveKeyValues.getValue( + LocaleConstant.SINGLE_AUTO_RECORD, false + ) as Boolean + if (isRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ if (alarmCount >= 10) { @@ -583,6 +585,7 @@ return } isGeneratingTask = true + Log.d(kTag, "generateAlarmTask => 自动记录报警") DataBaseManager.get.addEvent( taskId = UUID.randomUUID().toString(), @@ -596,9 +599,9 @@ images = "", description = "自动报警记录" ) - isGeneratingTask = false - alarmCount = 0 "保存成功".show(requireContext()) + alarmCount = 0 + isGeneratingTask = false } /***以下是地图生命周期管理************************************************************************/ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index d15a473..531cdad 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -32,6 +32,7 @@ override fun handleMessage(msg: Message): Boolean { if (msg.what == LocaleConstant.LOAD_EVENT) { dataBeans = DataBaseManager.get.loadEvent() + weakReferenceHandler.sendEmptyMessage(2023081101) } else if (msg.what == 2023081101) { if (dataBeans.size == 0) { emptyView.show("抱歉,无法查询到相关记录", null) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt index 4230e7a..1c61d14 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt @@ -2,6 +2,7 @@ import android.os.Handler import android.os.Message +import androidx.lifecycle.lifecycleScope import com.casic.birmm.inspect.R import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.single.view.InspectionRouteActivity @@ -12,8 +13,12 @@ import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_inspect.* +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext class QueryInspectionFragment : KotlinBaseFragment(), Handler.Callback { @@ -26,6 +31,7 @@ override fun handleMessage(msg: Message): Boolean { if (msg.what == LocaleConstant.LOAD_INSPECTION) { dataBeans = DataBaseManager.get.loadInspection() + weakReferenceHandler.sendEmptyMessage(2023081201) } else if (msg.what == 2023081201) { if (dataBeans.size == 0) { emptyView.show("抱歉,无法查询到相关记录", null) @@ -43,6 +49,36 @@ .setText(R.id.endTimeView, item.endTime) .setText(R.id.endLocationView, item.endAddress) .setText(R.id.distanceView, item.distance.toString()) + .setOnClickListener(R.id.deleteView) { + AlertControlDialog.Builder() + .setContext(requireContext()) + .setTitle("提示") + .setMessage("确定删除此条巡检记录吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + + } + + override fun onConfirmClick() { + lifecycleScope.launch(Dispatchers.Main) { + withContext(Dispatchers.IO) { + DataBaseManager.get.deleteEventByInspectionId( + item.inspectionId + ) + } + DataBaseManager.get.deleteInspectionById(item.inspectionId) + dataBeans.remove(item) + notifyItemRemoved(position) + notifyItemRangeChanged( + position, dataBeans.size - position + ) + } + } + }).build().show() + } } } inspectRecyclerView.adapter = inspectListAdapter diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt index 7c2b6e0..f88a07c 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt @@ -224,6 +224,23 @@ } /** + * 删除事件记录 + * */ + fun deleteEventByInspectionId(inspectionId: String) { + val result = taskEventDao.queryBuilder().where( + TaskEventLocalBeanDao.Properties.InspectionId.eq(inspectionId) + ).list() + if (!result.isNullOrEmpty()) { + result.forEach { + taskEventDao.delete(it) + } + //通知列表刷新 + QueryEventFragment.weakReferenceHandler.sendEmptyMessage(LocaleConstant.LOAD_EVENT) + } + } + + + /** * 删除全部事件数据 */ fun deleteAllEvent() { diff --git a/.idea/misc.xml b/.idea/misc.xml index 75ae27f..ac873f3 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -20,6 +20,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index aacd4da..4280e7e 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -554,16 +554,18 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 - val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - if (isOpenWarning) { + val isOpen = SaveKeyValues.getValue( + LocaleConstant.SINGLE_OPEN_WARNING, false + ) as Boolean + if (isOpen) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) - val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean - if (isAutoRecord) { + val isRecord = SaveKeyValues.getValue( + LocaleConstant.SINGLE_AUTO_RECORD, false + ) as Boolean + if (isRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ if (alarmCount >= 10) { @@ -583,6 +585,7 @@ return } isGeneratingTask = true + Log.d(kTag, "generateAlarmTask => 自动记录报警") DataBaseManager.get.addEvent( taskId = UUID.randomUUID().toString(), @@ -596,9 +599,9 @@ images = "", description = "自动报警记录" ) - isGeneratingTask = false - alarmCount = 0 "保存成功".show(requireContext()) + alarmCount = 0 + isGeneratingTask = false } /***以下是地图生命周期管理************************************************************************/ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index d15a473..531cdad 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -32,6 +32,7 @@ override fun handleMessage(msg: Message): Boolean { if (msg.what == LocaleConstant.LOAD_EVENT) { dataBeans = DataBaseManager.get.loadEvent() + weakReferenceHandler.sendEmptyMessage(2023081101) } else if (msg.what == 2023081101) { if (dataBeans.size == 0) { emptyView.show("抱歉,无法查询到相关记录", null) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt index 4230e7a..1c61d14 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt @@ -2,6 +2,7 @@ import android.os.Handler import android.os.Message +import androidx.lifecycle.lifecycleScope import com.casic.birmm.inspect.R import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.single.view.InspectionRouteActivity @@ -12,8 +13,12 @@ import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_inspect.* +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext class QueryInspectionFragment : KotlinBaseFragment(), Handler.Callback { @@ -26,6 +31,7 @@ override fun handleMessage(msg: Message): Boolean { if (msg.what == LocaleConstant.LOAD_INSPECTION) { dataBeans = DataBaseManager.get.loadInspection() + weakReferenceHandler.sendEmptyMessage(2023081201) } else if (msg.what == 2023081201) { if (dataBeans.size == 0) { emptyView.show("抱歉,无法查询到相关记录", null) @@ -43,6 +49,36 @@ .setText(R.id.endTimeView, item.endTime) .setText(R.id.endLocationView, item.endAddress) .setText(R.id.distanceView, item.distance.toString()) + .setOnClickListener(R.id.deleteView) { + AlertControlDialog.Builder() + .setContext(requireContext()) + .setTitle("提示") + .setMessage("确定删除此条巡检记录吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + + } + + override fun onConfirmClick() { + lifecycleScope.launch(Dispatchers.Main) { + withContext(Dispatchers.IO) { + DataBaseManager.get.deleteEventByInspectionId( + item.inspectionId + ) + } + DataBaseManager.get.deleteInspectionById(item.inspectionId) + dataBeans.remove(item) + notifyItemRemoved(position) + notifyItemRangeChanged( + position, dataBeans.size - position + ) + } + } + }).build().show() + } } } inspectRecyclerView.adapter = inspectListAdapter diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt index 7c2b6e0..f88a07c 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt @@ -224,6 +224,23 @@ } /** + * 删除事件记录 + * */ + fun deleteEventByInspectionId(inspectionId: String) { + val result = taskEventDao.queryBuilder().where( + TaskEventLocalBeanDao.Properties.InspectionId.eq(inspectionId) + ).list() + if (!result.isNullOrEmpty()) { + result.forEach { + taskEventDao.delete(it) + } + //通知列表刷新 + QueryEventFragment.weakReferenceHandler.sendEmptyMessage(LocaleConstant.LOAD_EVENT) + } + } + + + /** * 删除全部事件数据 */ fun deleteAllEvent() { diff --git a/app/src/main/res/drawable/ic_delete.xml b/app/src/main/res/drawable/ic_delete.xml new file mode 100644 index 0000000..f5e1824 --- /dev/null +++ b/app/src/main/res/drawable/ic_delete.xml @@ -0,0 +1,12 @@ + + + + diff --git a/.idea/misc.xml b/.idea/misc.xml index 75ae27f..ac873f3 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -20,6 +20,7 @@ + diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index aacd4da..4280e7e 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -554,16 +554,18 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 - val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - if (isOpenWarning) { + val isOpen = SaveKeyValues.getValue( + LocaleConstant.SINGLE_OPEN_WARNING, false + ) as Boolean + if (isOpen) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) - val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean - if (isAutoRecord) { + val isRecord = SaveKeyValues.getValue( + LocaleConstant.SINGLE_AUTO_RECORD, false + ) as Boolean + if (isRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ if (alarmCount >= 10) { @@ -583,6 +585,7 @@ return } isGeneratingTask = true + Log.d(kTag, "generateAlarmTask => 自动记录报警") DataBaseManager.get.addEvent( taskId = UUID.randomUUID().toString(), @@ -596,9 +599,9 @@ images = "", description = "自动报警记录" ) - isGeneratingTask = false - alarmCount = 0 "保存成功".show(requireContext()) + alarmCount = 0 + isGeneratingTask = false } /***以下是地图生命周期管理************************************************************************/ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index d15a473..531cdad 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -32,6 +32,7 @@ override fun handleMessage(msg: Message): Boolean { if (msg.what == LocaleConstant.LOAD_EVENT) { dataBeans = DataBaseManager.get.loadEvent() + weakReferenceHandler.sendEmptyMessage(2023081101) } else if (msg.what == 2023081101) { if (dataBeans.size == 0) { emptyView.show("抱歉,无法查询到相关记录", null) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt index 4230e7a..1c61d14 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt @@ -2,6 +2,7 @@ import android.os.Handler import android.os.Message +import androidx.lifecycle.lifecycleScope import com.casic.birmm.inspect.R import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.single.view.InspectionRouteActivity @@ -12,8 +13,12 @@ import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_inspect.* +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext class QueryInspectionFragment : KotlinBaseFragment(), Handler.Callback { @@ -26,6 +31,7 @@ override fun handleMessage(msg: Message): Boolean { if (msg.what == LocaleConstant.LOAD_INSPECTION) { dataBeans = DataBaseManager.get.loadInspection() + weakReferenceHandler.sendEmptyMessage(2023081201) } else if (msg.what == 2023081201) { if (dataBeans.size == 0) { emptyView.show("抱歉,无法查询到相关记录", null) @@ -43,6 +49,36 @@ .setText(R.id.endTimeView, item.endTime) .setText(R.id.endLocationView, item.endAddress) .setText(R.id.distanceView, item.distance.toString()) + .setOnClickListener(R.id.deleteView) { + AlertControlDialog.Builder() + .setContext(requireContext()) + .setTitle("提示") + .setMessage("确定删除此条巡检记录吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + + } + + override fun onConfirmClick() { + lifecycleScope.launch(Dispatchers.Main) { + withContext(Dispatchers.IO) { + DataBaseManager.get.deleteEventByInspectionId( + item.inspectionId + ) + } + DataBaseManager.get.deleteInspectionById(item.inspectionId) + dataBeans.remove(item) + notifyItemRemoved(position) + notifyItemRangeChanged( + position, dataBeans.size - position + ) + } + } + }).build().show() + } } } inspectRecyclerView.adapter = inspectListAdapter diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt index 7c2b6e0..f88a07c 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt @@ -224,6 +224,23 @@ } /** + * 删除事件记录 + * */ + fun deleteEventByInspectionId(inspectionId: String) { + val result = taskEventDao.queryBuilder().where( + TaskEventLocalBeanDao.Properties.InspectionId.eq(inspectionId) + ).list() + if (!result.isNullOrEmpty()) { + result.forEach { + taskEventDao.delete(it) + } + //通知列表刷新 + QueryEventFragment.weakReferenceHandler.sendEmptyMessage(LocaleConstant.LOAD_EVENT) + } + } + + + /** * 删除全部事件数据 */ fun deleteAllEvent() { diff --git a/app/src/main/res/drawable/ic_delete.xml b/app/src/main/res/drawable/ic_delete.xml new file mode 100644 index 0000000..f5e1824 --- /dev/null +++ b/app/src/main/res/drawable/ic_delete.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/layout/item_inspect_rv_l.xml b/app/src/main/res/layout/item_inspect_rv_l.xml index f28fc1f..d42b8cf 100644 --- a/app/src/main/res/layout/item_inspect_rv_l.xml +++ b/app/src/main/res/layout/item_inspect_rv_l.xml @@ -8,14 +8,29 @@ android:orientation="vertical" android:padding="@dimen/dp_5"> - + android:gravity="center_vertical" + android:orientation="horizontal"> + + + + + + diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt index aacd4da..4280e7e 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/HomePageFragment.kt @@ -554,16 +554,18 @@ homeView.settingsValueView.text = dataModel.alarmValue.toString() homeView.maxValueView.text = dataModel.maxPotency.toString() //判断是否需要报警 - val isOpenWarning = - SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean - if (isOpenWarning) { + val isOpen = SaveKeyValues.getValue( + LocaleConstant.SINGLE_OPEN_WARNING, false + ) as Boolean + if (isOpen) { if (dataModel.potency >= dataModel.alarmValue) { //当前值大于设置值,需要报警 SoundPoolHelper.playSound(requireContext(), R.raw.alarm) vibrator.vibrate(1000) - val isAutoRecord = - SaveKeyValues.getValue(LocaleConstant.SINGLE_AUTO_RECORD, false) as Boolean - if (isAutoRecord) { + val isRecord = SaveKeyValues.getValue( + LocaleConstant.SINGLE_AUTO_RECORD, false + ) as Boolean + if (isRecord) { //如果连续超过10个报警,自动生成报警事件 alarmCount++ if (alarmCount >= 10) { @@ -583,6 +585,7 @@ return } isGeneratingTask = true + Log.d(kTag, "generateAlarmTask => 自动记录报警") DataBaseManager.get.addEvent( taskId = UUID.randomUUID().toString(), @@ -596,9 +599,9 @@ images = "", description = "自动报警记录" ) - isGeneratingTask = false - alarmCount = 0 "保存成功".show(requireContext()) + alarmCount = 0 + isGeneratingTask = false } /***以下是地图生命周期管理************************************************************************/ diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index d15a473..531cdad 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -32,6 +32,7 @@ override fun handleMessage(msg: Message): Boolean { if (msg.what == LocaleConstant.LOAD_EVENT) { dataBeans = DataBaseManager.get.loadEvent() + weakReferenceHandler.sendEmptyMessage(2023081101) } else if (msg.what == 2023081101) { if (dataBeans.size == 0) { emptyView.show("抱歉,无法查询到相关记录", null) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt index 4230e7a..1c61d14 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt @@ -2,6 +2,7 @@ import android.os.Handler import android.os.Message +import androidx.lifecycle.lifecycleScope import com.casic.birmm.inspect.R import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.single.view.InspectionRouteActivity @@ -12,8 +13,12 @@ import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.include_empty_view.* import kotlinx.android.synthetic.main.single_fragment_query_inspect.* +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext class QueryInspectionFragment : KotlinBaseFragment(), Handler.Callback { @@ -26,6 +31,7 @@ override fun handleMessage(msg: Message): Boolean { if (msg.what == LocaleConstant.LOAD_INSPECTION) { dataBeans = DataBaseManager.get.loadInspection() + weakReferenceHandler.sendEmptyMessage(2023081201) } else if (msg.what == 2023081201) { if (dataBeans.size == 0) { emptyView.show("抱歉,无法查询到相关记录", null) @@ -43,6 +49,36 @@ .setText(R.id.endTimeView, item.endTime) .setText(R.id.endLocationView, item.endAddress) .setText(R.id.distanceView, item.distance.toString()) + .setOnClickListener(R.id.deleteView) { + AlertControlDialog.Builder() + .setContext(requireContext()) + .setTitle("提示") + .setMessage("确定删除此条巡检记录吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + + } + + override fun onConfirmClick() { + lifecycleScope.launch(Dispatchers.Main) { + withContext(Dispatchers.IO) { + DataBaseManager.get.deleteEventByInspectionId( + item.inspectionId + ) + } + DataBaseManager.get.deleteInspectionById(item.inspectionId) + dataBeans.remove(item) + notifyItemRemoved(position) + notifyItemRangeChanged( + position, dataBeans.size - position + ) + } + } + }).build().show() + } } } inspectRecyclerView.adapter = inspectListAdapter diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt index 7c2b6e0..f88a07c 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt @@ -224,6 +224,23 @@ } /** + * 删除事件记录 + * */ + fun deleteEventByInspectionId(inspectionId: String) { + val result = taskEventDao.queryBuilder().where( + TaskEventLocalBeanDao.Properties.InspectionId.eq(inspectionId) + ).list() + if (!result.isNullOrEmpty()) { + result.forEach { + taskEventDao.delete(it) + } + //通知列表刷新 + QueryEventFragment.weakReferenceHandler.sendEmptyMessage(LocaleConstant.LOAD_EVENT) + } + } + + + /** * 删除全部事件数据 */ fun deleteAllEvent() { diff --git a/app/src/main/res/drawable/ic_delete.xml b/app/src/main/res/drawable/ic_delete.xml new file mode 100644 index 0000000..f5e1824 --- /dev/null +++ b/app/src/main/res/drawable/ic_delete.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/layout/item_inspect_rv_l.xml b/app/src/main/res/layout/item_inspect_rv_l.xml index f28fc1f..d42b8cf 100644 --- a/app/src/main/res/layout/item_inspect_rv_l.xml +++ b/app/src/main/res/layout/item_inspect_rv_l.xml @@ -8,14 +8,29 @@ android:orientation="vertical" android:padding="@dimen/dp_5"> - + android:gravity="center_vertical" + android:orientation="horizontal"> + + + + + \ No newline at end of file