| | |
| | | |
| | | private val inspectionRepository = InspectionRepository() |
| | | private val problemRepository = ProblemRepository() |
| | | private val commonRepository = CommonRepository() |
| | | private val commonRepository = CommonRepository.instance |
| | | |
| | | //常规记录图片 |
| | | val routineRecordList = MutableLiveData<ArrayList<Mediafile>>().apply { value = ArrayList() } |
| | |
| | | val fileList = MutableLiveData<MutableList<MediaData>>().apply { value = mutableListOf() } |
| | | private var loadedCount = 0 |
| | | |
| | | private val dataSet = listOf( |
| | | Pair(MediaFileType.RoutineRecord, routineRecordList), |
| | | Pair(MediaFileType.Nameplate, nameplateList), |
| | | Pair(MediaFileType.MonitorDevice, monitorDeviceList) |
| | | ) |
| | | |
| | | /** |
| | | * 获取任意拍照图片 |
| | | */ |
| | |
| | | override fun onSuccess(types: List<MediaFileType>?) { |
| | | fileList.value?.clear() |
| | | loadedCount = 0 |
| | | types?.forEachWithIndex { i, type -> |
| | | inspectionRepository.getMediaFile(inspectionId, type.value, object : ResultCallBack<ArrayList<Mediafile>> { |
| | | types?.forEach { t -> |
| | | inspectionRepository.getMediaFile(inspectionId, t.value, object : ResultCallBack<ArrayList<Mediafile>> { |
| | | override fun onSuccess(result: ArrayList<Mediafile>?) { |
| | | commonRepository.getAlias(sceneTypeId, type, object : ResultCallBack<String> { |
| | | commonRepository.getAlias(sceneTypeId, t.value, object : ResultCallBack<String> { |
| | | override fun onSuccess(alias: String?) { |
| | | result?.let { |
| | | fileList.value?.add(MediaData().apply { |
| | | this.type = type |
| | | this.type = t |
| | | this.alias = if (alias.isNullOrBlank()) null else alias |
| | | dataList = it |
| | | dataList.add(0, Mediafile()) |
| | | }) |
| | | onMediaFileGet(types.size, sceneTypeId) |
| | | onMediaFileGet(types.size, types) |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | } |
| | | }) |
| | | |
| | | |
| | | dataSet.forEach { p -> |
| | | |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | }) |
| | | } |
| | | |
| | | private fun onMediaFileGet(total: Int, sceneTypeId: Int) { |
| | | /** |
| | | * 将任意拍的结果按照给定的分类顺序排列 |
| | | */ |
| | | private fun onMediaFileGet(total: Int, types: List<MediaFileType>) { |
| | | loadedCount++ |
| | | // 当每种类型的数据都获取完毕后,进行重排序操作 |
| | | if (loadedCount == total) { |
| | | val list = fileList.value?.sortedBy { |
| | | it.type?.value |
| | | }?.toMutableList() ?: mutableListOf() |
| | | if (sceneTypeId == SceneType.Construction.value |
| | | || sceneTypeId == SceneType.Wharf.value |
| | | || sceneTypeId == SceneType.MixingPlant.value |
| | | || sceneTypeId == SceneType.StorageYard.value) { |
| | | fileList.value?.clear() |
| | | for (i in list.indices) { |
| | | if (list[i].type == MediaFileType.RoutineRecord) { |
| | | fileList.value?.add(list[i]) |
| | | list.removeAt(i) |
| | | break |
| | | } |
| | | } |
| | | for (i in list.indices) { |
| | | if (list[i].type == MediaFileType.MonitorDevice) { |
| | | fileList.value?.add(list[i]) |
| | | list.removeAt(i) |
| | | break |
| | | } |
| | | } |
| | | for (i in list.indices) { |
| | | if (list[i].type == MediaFileType.Nameplate) { |
| | | fileList.value?.add(list[i]) |
| | | list.removeAt(i) |
| | | break |
| | | } |
| | | } |
| | | fileList.value?.addAll(list) |
| | | fileList.value = fileList.value |
| | | } else { |
| | | fileList.value = list |
| | | val tempList = mutableListOf<MediaData>() |
| | | types.forEach { t -> |
| | | fileList.value?.find { it.type?.value == t.value }?.let { tempList.add(it) } |
| | | } |
| | | fileList.value = tempList |
| | | |
| | | // val list = fileList.value?.sortedBy { |
| | | // it.type?.value |
| | | // }?.toMutableList() ?: mutableListOf() |
| | | |
| | | // if (sceneTypeId == SceneType.Construction.value |
| | | // || sceneTypeId == SceneType.Wharf.value |
| | | // || sceneTypeId == SceneType.MixingPlant.value |
| | | // || sceneTypeId == SceneType.StorageYard.value) { |
| | | // fileList.value?.clear() |
| | | // for (i in list.indices) { |
| | | // if (list[i].type == MediaFileType.RoutineRecord) { |
| | | // fileList.value?.add(list[i]) |
| | | // list.removeAt(i) |
| | | // break |
| | | // } |
| | | // } |
| | | // for (i in list.indices) { |
| | | // if (list[i].type == MediaFileType.MonitorDevice) { |
| | | // fileList.value?.add(list[i]) |
| | | // list.removeAt(i) |
| | | // break |
| | | // } |
| | | // } |
| | | // for (i in list.indices) { |
| | | // if (list[i].type == MediaFileType.Nameplate) { |
| | | // fileList.value?.add(list[i]) |
| | | // list.removeAt(i) |
| | | // break |
| | | // } |
| | | // } |
| | | // fileList.value?.addAll(list) |
| | | // fileList.value = fileList.value |
| | | // } else { |
| | | // fileList.value = list |
| | | // } |
| | | } |
| | | } |
| | | |