Merge branch 'master' of gitlab.navinfo.com:CollectVehicle/OneMapQS
This commit is contained in:
commit
e9735ee4d8
2
.gitmodules
vendored
2
.gitmodules
vendored
@ -1,3 +1,5 @@
|
|||||||
[submodule "vtm"]
|
[submodule "vtm"]
|
||||||
path = vtm
|
path = vtm
|
||||||
url = git@github.com:xiaoyan159/vtm.git
|
url = git@github.com:xiaoyan159/vtm.git
|
||||||
|
branch = master
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ data class EvaluationInfo(
|
|||||||
val linkPid: String = "",//Link号
|
val linkPid: String = "",//Link号
|
||||||
|
|
||||||
@SerializedName("linkStatus")
|
@SerializedName("linkStatus")
|
||||||
val linkStatus: String = "",//Link状态
|
val linkStatus: Int = 0,//Link状态
|
||||||
|
|
||||||
@SerializedName("markId")
|
@SerializedName("markId")
|
||||||
val markId: String = "",//Link状态
|
val markId: String = "",//Link状态
|
||||||
@ -27,7 +27,7 @@ data class EvaluationInfo(
|
|||||||
val featureName: String = "",//问题类型
|
val featureName: String = "",//问题类型
|
||||||
|
|
||||||
@SerializedName("problemType")
|
@SerializedName("problemType")
|
||||||
val problemType: String = "",//问题现象
|
val problemType: String = "",//问题现象 0错误 1多余 2遗漏 服务字段定义为Integer,使用包装类,对应无值情况为空
|
||||||
|
|
||||||
@SerializedName("problemPhenomenon")
|
@SerializedName("problemPhenomenon")
|
||||||
val problemPhenomenon: String = "",//问题现象
|
val problemPhenomenon: String = "",//问题现象
|
||||||
@ -48,6 +48,24 @@ data class EvaluationInfo(
|
|||||||
val evaluationDate: String = "",//测评日期(yyyy-mm-dd)
|
val evaluationDate: String = "",//测评日期(yyyy-mm-dd)
|
||||||
|
|
||||||
@SerializedName("evaluationWay")
|
@SerializedName("evaluationWay")
|
||||||
val evaluationWay: String = "现场测评"//测评方式
|
val evaluationWay: String = "2",//测评方式 1生产测评 2现场测评 服务字段定义为Integer,使用包装类,对应无值情况为空
|
||||||
|
|
||||||
|
@SerializedName("roadClassfcation")
|
||||||
|
val roadClassfcation: String = "",//道路种别
|
||||||
|
|
||||||
|
@SerializedName("roadFunctionGrade")
|
||||||
|
val roadFunctionGrade: String = "",//道路功能等级
|
||||||
|
|
||||||
|
@SerializedName("noEvaluationreason")
|
||||||
|
val noEvaluationreason: String = "",//未测评原因
|
||||||
|
|
||||||
|
@SerializedName("linkLength")
|
||||||
|
val linkLength: Double = 0.0,//link长度(m 保留3位小数)
|
||||||
|
|
||||||
|
@SerializedName("dataLevel")
|
||||||
|
val dataLevel: String = "",//数据级别
|
||||||
|
|
||||||
|
@SerializedName("linstringLength")
|
||||||
|
val linstringLength: Double = 0.0,//错误要素长度(m)
|
||||||
) : Parcelable
|
) : Parcelable
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.navinfo.omqs.bean
|
package com.navinfo.omqs.bean
|
||||||
|
|
||||||
data class LoginUserBean(
|
data class LoginUserBean(
|
||||||
var username: String = "",
|
var userCode: String = "",
|
||||||
var password: String = ""
|
var passWord: String = ""
|
||||||
)
|
)
|
8
app/src/main/java/com/navinfo/omqs/bean/SysUserBean.kt
Normal file
8
app/src/main/java/com/navinfo/omqs/bean/SysUserBean.kt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
package com.navinfo.omqs.bean
|
||||||
|
|
||||||
|
data class SysUserBean(
|
||||||
|
var userName: String = "",
|
||||||
|
var passWord: String = "",
|
||||||
|
var userCode: String = "",
|
||||||
|
var roleId: Int = 0,
|
||||||
|
)
|
@ -0,0 +1,7 @@
|
|||||||
|
package com.navinfo.omqs.http
|
||||||
|
|
||||||
|
class DefaultUserResponse<T> {
|
||||||
|
var success: Boolean = false
|
||||||
|
var msg: String = ""
|
||||||
|
var obj: T? = null
|
||||||
|
}
|
@ -31,8 +31,8 @@ package com.navinfo.omqs.http
|
|||||||
sealed class NetResult<out R> {
|
sealed class NetResult<out R> {
|
||||||
|
|
||||||
data class Success<out T>(val data: T?) : NetResult<T>()
|
data class Success<out T>(val data: T?) : NetResult<T>()
|
||||||
data class Failure(val code: Int, val msg: String) : NetResult<Nothing>()
|
data class Failure<T>(val code: Int, val msg: String) : NetResult<Nothing>()
|
||||||
data class Error(val exception: Exception) : NetResult<Nothing>()
|
data class Error<T>(val exception: Exception) : NetResult<Nothing>()
|
||||||
object Loading : NetResult<Nothing>()
|
object Loading : NetResult<Nothing>()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -42,8 +42,8 @@ sealed class NetResult<out R> {
|
|||||||
override fun toString(): String {
|
override fun toString(): String {
|
||||||
return when (this) {
|
return when (this) {
|
||||||
is Success<*> -> "网络访问成功,返回正确结果Success[data=$data]"
|
is Success<*> -> "网络访问成功,返回正确结果Success[data=$data]"
|
||||||
is Failure -> "网络访问成功,返回错误结果Failure[$msg]"
|
is Failure<*> -> "网络访问成功,返回错误结果Failure[$msg]"
|
||||||
is Error -> "网络访问出错 Error[exception=$exception]"
|
is Error<*> -> "网络访问出错 Error[exception=$exception]"
|
||||||
is Loading -> "网络访问中 Loading"
|
is Loading -> "网络访问中 Loading"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,10 @@ package com.navinfo.omqs.http
|
|||||||
|
|
||||||
import com.navinfo.omqs.bean.OfflineMapCityBean
|
import com.navinfo.omqs.bean.OfflineMapCityBean
|
||||||
import com.navinfo.collect.library.data.entity.TaskBean
|
import com.navinfo.collect.library.data.entity.TaskBean
|
||||||
|
import com.navinfo.omqs.bean.LoginUserBean
|
||||||
|
import com.navinfo.omqs.bean.SysUserBean
|
||||||
|
import okhttp3.ResponseBody
|
||||||
|
import retrofit2.Response
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -16,4 +20,9 @@ interface NetworkService {
|
|||||||
* 获取任务列表
|
* 获取任务列表
|
||||||
*/
|
*/
|
||||||
suspend fun getTaskList(evaluatorNo:String): NetResult<DefaultTaskResponse<List<TaskBean>>>
|
suspend fun getTaskList(evaluatorNo:String): NetResult<DefaultTaskResponse<List<TaskBean>>>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录接口
|
||||||
|
*/
|
||||||
|
suspend fun loginUser(loginUserBean: LoginUserBean): NetResult<DefaultUserResponse<SysUserBean>>
|
||||||
}
|
}
|
@ -2,8 +2,12 @@ package com.navinfo.omqs.http
|
|||||||
|
|
||||||
import com.navinfo.omqs.bean.OfflineMapCityBean
|
import com.navinfo.omqs.bean.OfflineMapCityBean
|
||||||
import com.navinfo.collect.library.data.entity.TaskBean
|
import com.navinfo.collect.library.data.entity.TaskBean
|
||||||
|
import com.navinfo.omqs.bean.LoginUserBean
|
||||||
|
import com.navinfo.omqs.bean.SysUserBean
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
|
import okhttp3.ResponseBody
|
||||||
|
import retrofit2.Response
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -24,13 +28,13 @@ class NetworkServiceImpl @Inject constructor(
|
|||||||
if (result.code() == 200) {
|
if (result.code() == 200) {
|
||||||
NetResult.Success(result.body())
|
NetResult.Success(result.body())
|
||||||
} else {
|
} else {
|
||||||
NetResult.Failure(result.code(), result.message())
|
NetResult.Failure<Any>(result.code(), result.message())
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
NetResult.Failure(result.code(), result.message())
|
NetResult.Failure<Any>(result.code(), result.message())
|
||||||
}
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
NetResult.Error(e)
|
NetResult.Error<Any>(e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,13 +47,32 @@ class NetworkServiceImpl @Inject constructor(
|
|||||||
if (result.code() == 200) {
|
if (result.code() == 200) {
|
||||||
NetResult.Success(result.body())
|
NetResult.Success(result.body())
|
||||||
} else {
|
} else {
|
||||||
NetResult.Failure(result.code(), result.message())
|
NetResult.Failure<Any>(result.code(), result.message())
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
NetResult.Failure(result.code(), result.message())
|
NetResult.Failure<Any>(result.code(), result.message())
|
||||||
}
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
NetResult.Error(e)
|
NetResult.Error<Any>(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun loginUser(loginUserBean: LoginUserBean): NetResult<DefaultUserResponse<SysUserBean>> =
|
||||||
|
//在IO线程中运行
|
||||||
|
withContext(Dispatchers.IO) {
|
||||||
|
return@withContext try {
|
||||||
|
val result = netApi.retrofitLoginUser(loginUserBean)
|
||||||
|
if (result.isSuccessful) {
|
||||||
|
if (result.code() == 200) {
|
||||||
|
NetResult.Success(result.body())
|
||||||
|
} else {
|
||||||
|
NetResult.Failure<Any>(result.code(), result.message())
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
NetResult.Failure<Any>(result.code(), result.message())
|
||||||
|
}
|
||||||
|
} catch (e: Exception) {
|
||||||
|
NetResult.Error<Any>(e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -3,6 +3,8 @@ package com.navinfo.omqs.http
|
|||||||
import com.navinfo.omqs.bean.EvaluationInfo
|
import com.navinfo.omqs.bean.EvaluationInfo
|
||||||
import com.navinfo.omqs.bean.OfflineMapCityBean
|
import com.navinfo.omqs.bean.OfflineMapCityBean
|
||||||
import com.navinfo.collect.library.data.entity.TaskBean
|
import com.navinfo.collect.library.data.entity.TaskBean
|
||||||
|
import com.navinfo.omqs.bean.LoginUserBean
|
||||||
|
import com.navinfo.omqs.bean.SysUserBean
|
||||||
import okhttp3.ResponseBody
|
import okhttp3.ResponseBody
|
||||||
import retrofit2.Response
|
import retrofit2.Response
|
||||||
import retrofit2.http.*
|
import retrofit2.http.*
|
||||||
@ -40,6 +42,13 @@ interface RetrofitNetworkServiceAPI {
|
|||||||
@GET("/drdc/MapDownload/maplist")
|
@GET("/drdc/MapDownload/maplist")
|
||||||
suspend fun retrofitGetOfflineMapCityList(): Response<List<OfflineMapCityBean>>
|
suspend fun retrofitGetOfflineMapCityList(): Response<List<OfflineMapCityBean>>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录接口
|
||||||
|
*/
|
||||||
|
@Headers("Content-Type: application/json")
|
||||||
|
@POST("/devcp/loginUser")
|
||||||
|
suspend fun retrofitLoginUser(@Body loginUserBean: LoginUserBean): Response<DefaultUserResponse<SysUserBean>>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下载文件
|
* 下载文件
|
||||||
*/
|
*/
|
||||||
|
@ -121,26 +121,71 @@ class TaskUploadScope(
|
|||||||
if (objects != null&&objects.size>0) {
|
if (objects != null&&objects.size>0) {
|
||||||
val copyList = realm.copyFromRealm(objects)
|
val copyList = realm.copyFromRealm(objects)
|
||||||
copyList.forEach {
|
copyList.forEach {
|
||||||
|
var problemType = "0"
|
||||||
|
if(it.problemType=="错误"){
|
||||||
|
problemType = "0"
|
||||||
|
}else if(it.problemType=="多余"){
|
||||||
|
problemType = "1"
|
||||||
|
}else if(it.problemType=="遗漏"){
|
||||||
|
problemType = "2"
|
||||||
|
}
|
||||||
|
var evaluationWay = "2";
|
||||||
|
/* if(it.evaluationWay=="生产测评"){
|
||||||
|
evaluationWay = "1"
|
||||||
|
}else if(it.evaluationWay=="现场测评"){
|
||||||
|
evaluationWay = "2"
|
||||||
|
}*/
|
||||||
val evaluationInfo = EvaluationInfo(
|
val evaluationInfo = EvaluationInfo(
|
||||||
evaluationTaskId = taskBean.id.toString(),
|
evaluationTaskId = taskBean.id.toString(),
|
||||||
linkPid = hadLinkDvoBean.linkPid,//"84207223282277331"
|
linkPid = hadLinkDvoBean.linkPid,//"84207223282277331"
|
||||||
linkStatus = "已测评",
|
linkStatus = 1,
|
||||||
markId = hadLinkDvoBean.mesh,//"20065597"
|
markId = hadLinkDvoBean.mesh,//"20065597"
|
||||||
trackPhotoNumber = "",
|
trackPhotoNumber = "",
|
||||||
markGeometry = it.geometry,
|
markGeometry = it.geometry,
|
||||||
featureName = it.classType,
|
featureName = it.classType,
|
||||||
problemType = it.problemType,
|
problemType = problemType,
|
||||||
problemPhenomenon = it.phenomenon,
|
problemPhenomenon = it.phenomenon,
|
||||||
problemDesc = it.description,
|
problemDesc = it.description,
|
||||||
problemLink = it.problemLink,
|
problemLink = it.problemLink,
|
||||||
problemReason = it.cause,
|
problemReason = it.cause,
|
||||||
evaluatorName = it.checkUserId,
|
evaluatorName = it.checkUserId,
|
||||||
evaluationDate = it.checkTime,
|
evaluationDate = it.checkTime,
|
||||||
evaluationWay = "现场测评"
|
evaluationWay = evaluationWay,
|
||||||
|
roadClassfcation = "",
|
||||||
|
roadFunctionGrade = "",
|
||||||
|
noEvaluationreason = "",
|
||||||
|
linkLength = 0.0,
|
||||||
|
dataLevel = "",
|
||||||
|
linstringLength = 0.0,
|
||||||
)
|
)
|
||||||
|
|
||||||
bodyList.add(evaluationInfo)
|
bodyList.add(evaluationInfo)
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
val evaluationInfo = EvaluationInfo(
|
||||||
|
evaluationTaskId = taskBean.id.toString(),
|
||||||
|
linkPid = hadLinkDvoBean.linkPid,//"84207223282277331"
|
||||||
|
linkStatus = 0,
|
||||||
|
markId = hadLinkDvoBean.mesh,//"20065597"
|
||||||
|
trackPhotoNumber = "",
|
||||||
|
markGeometry = "",
|
||||||
|
featureName = "",
|
||||||
|
problemType = "",
|
||||||
|
problemPhenomenon = "",
|
||||||
|
problemDesc = "",
|
||||||
|
problemLink = "",
|
||||||
|
problemReason = "",
|
||||||
|
evaluatorName = "",
|
||||||
|
evaluationDate = "",
|
||||||
|
evaluationWay = "",
|
||||||
|
roadClassfcation = "",
|
||||||
|
roadFunctionGrade = "",
|
||||||
|
noEvaluationreason = "",
|
||||||
|
linkLength = 0.0,
|
||||||
|
dataLevel = "",
|
||||||
|
linstringLength = 0.0,
|
||||||
|
)
|
||||||
|
bodyList.add(evaluationInfo)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,8 +10,9 @@ import androidx.lifecycle.viewModelScope
|
|||||||
import com.blankj.utilcode.util.ResourceUtils
|
import com.blankj.utilcode.util.ResourceUtils
|
||||||
import com.navinfo.omqs.Constant
|
import com.navinfo.omqs.Constant
|
||||||
import com.navinfo.omqs.bean.LoginUserBean
|
import com.navinfo.omqs.bean.LoginUserBean
|
||||||
import com.navinfo.omqs.db.MyRealmModule
|
import com.navinfo.omqs.bean.SysUserBean
|
||||||
import com.navinfo.omqs.db.RoomAppDatabase
|
import com.navinfo.omqs.db.RoomAppDatabase
|
||||||
|
import com.navinfo.omqs.http.DefaultUserResponse
|
||||||
import com.navinfo.omqs.http.NetResult
|
import com.navinfo.omqs.http.NetResult
|
||||||
import com.navinfo.omqs.http.NetworkService
|
import com.navinfo.omqs.http.NetworkService
|
||||||
import com.navinfo.omqs.tools.FileManager
|
import com.navinfo.omqs.tools.FileManager
|
||||||
@ -19,6 +20,7 @@ import dagger.hilt.android.lifecycle.HiltViewModel
|
|||||||
import io.realm.Realm
|
import io.realm.Realm
|
||||||
import io.realm.RealmConfiguration
|
import io.realm.RealmConfiguration
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
|
import retrofit2.Response
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@ -74,7 +76,7 @@ class LoginViewModel @Inject constructor(
|
|||||||
var jobLogin: Job? = null;
|
var jobLogin: Job? = null;
|
||||||
|
|
||||||
init {
|
init {
|
||||||
loginUser.value = LoginUserBean(username = "admin", password = "123456")
|
loginUser.value = LoginUserBean(userCode = "02911", passWord = "123456")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -82,7 +84,7 @@ class LoginViewModel @Inject constructor(
|
|||||||
* 处理注册按钮
|
* 处理注册按钮
|
||||||
*/
|
*/
|
||||||
fun onClick(view: View) {
|
fun onClick(view: View) {
|
||||||
loginUser.value!!.username = "admin2"
|
loginUser.value!!.userCode = "admin2"
|
||||||
loginUser.value = loginUser.value
|
loginUser.value = loginUser.value
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,12 +113,61 @@ class LoginViewModel @Inject constructor(
|
|||||||
// withContext(Dispatchers.IO) {
|
// withContext(Dispatchers.IO) {
|
||||||
//网络访问
|
//网络访问
|
||||||
loginStatus.postValue(LoginStatus.LOGIN_STATUS_NET_LOADING)
|
loginStatus.postValue(LoginStatus.LOGIN_STATUS_NET_LOADING)
|
||||||
//假装网络访问,等待2秒
|
var userCode = "99999";
|
||||||
delay(1000)
|
//登录访问
|
||||||
|
when (val result = networkService.loginUser(LoginUserBean(userName,password))) {
|
||||||
|
is NetResult.Success<*> ->{
|
||||||
|
if (result.data!=null) {
|
||||||
|
try {
|
||||||
|
val defaultUserResponse = result.data as DefaultUserResponse<SysUserBean>
|
||||||
|
if(defaultUserResponse.success){
|
||||||
|
if(defaultUserResponse.obj==null|| defaultUserResponse.obj!!.userCode==null){
|
||||||
|
withContext(Dispatchers.Main) {
|
||||||
|
Toast.makeText(context, "服务返回用户Code信息错误", Toast.LENGTH_SHORT)
|
||||||
|
.show()
|
||||||
|
}
|
||||||
|
loginStatus.postValue(LoginStatus.LOGIN_STATUS_CANCEL)
|
||||||
|
return
|
||||||
|
}else{
|
||||||
|
userCode = defaultUserResponse.obj?.userCode.toString()
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
withContext(Dispatchers.Main) {
|
||||||
|
Toast.makeText(context, "${defaultUserResponse.msg}", Toast.LENGTH_SHORT)
|
||||||
|
.show()
|
||||||
|
}
|
||||||
|
loginStatus.postValue(LoginStatus.LOGIN_STATUS_CANCEL)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (e: IOException) {
|
||||||
|
loginStatus.postValue(LoginStatus.LOGIN_STATUS_FOLDER_FAILURE)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
is NetResult.Error<*> ->{
|
||||||
|
withContext(Dispatchers.Main) {
|
||||||
|
Toast.makeText(context, "${result.exception.message}", Toast.LENGTH_SHORT)
|
||||||
|
.show()
|
||||||
|
}
|
||||||
|
loginStatus.postValue(LoginStatus.LOGIN_STATUS_CANCEL)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
is NetResult.Failure<*> ->{
|
||||||
|
withContext(Dispatchers.Main) {
|
||||||
|
Toast.makeText(context, "${result.code}:${result.msg}", Toast.LENGTH_SHORT)
|
||||||
|
.show()
|
||||||
|
}
|
||||||
|
loginStatus.postValue(LoginStatus.LOGIN_STATUS_CANCEL)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
else -> {}
|
||||||
|
}
|
||||||
|
|
||||||
//文件夹初始化
|
//文件夹初始化
|
||||||
try {
|
try {
|
||||||
loginStatus.postValue(LoginStatus.LOGIN_STATUS_FOLDER_INIT)
|
loginStatus.postValue(LoginStatus.LOGIN_STATUS_FOLDER_INIT)
|
||||||
createUserFolder(context, "02911")
|
createUserFolder(context, userCode)
|
||||||
} catch (e: IOException) {
|
} catch (e: IOException) {
|
||||||
loginStatus.postValue(LoginStatus.LOGIN_STATUS_FOLDER_FAILURE)
|
loginStatus.postValue(LoginStatus.LOGIN_STATUS_FOLDER_FAILURE)
|
||||||
}
|
}
|
||||||
@ -134,13 +185,13 @@ class LoginViewModel @Inject constructor(
|
|||||||
roomAppDatabase.getOfflineMapDao().insertOrUpdate(result.data)
|
roomAppDatabase.getOfflineMapDao().insertOrUpdate(result.data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
is NetResult.Error -> {
|
is NetResult.Error<*> -> {
|
||||||
withContext(Dispatchers.Main) {
|
withContext(Dispatchers.Main) {
|
||||||
Toast.makeText(context, "${result.exception.message}", Toast.LENGTH_SHORT)
|
Toast.makeText(context, "${result.exception.message}", Toast.LENGTH_SHORT)
|
||||||
.show()
|
.show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
is NetResult.Failure -> {
|
is NetResult.Failure<*> -> {
|
||||||
withContext(Dispatchers.Main) {
|
withContext(Dispatchers.Main) {
|
||||||
Toast.makeText(context, "${result.code}:${result.msg}", Toast.LENGTH_SHORT)
|
Toast.makeText(context, "${result.code}:${result.msg}", Toast.LENGTH_SHORT)
|
||||||
.show()
|
.show()
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.navinfo.omqs.ui.fragment.evaluationresult
|
package com.navinfo.omqs.ui.fragment.evaluationresult
|
||||||
|
|
||||||
|
import android.app.Dialog
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
@ -19,6 +20,7 @@ import com.navinfo.omqs.ui.fragment.BaseFragment
|
|||||||
import com.navinfo.omqs.ui.other.shareViewModels
|
import com.navinfo.omqs.ui.other.shareViewModels
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import androidx.navigation.findNavController
|
import androidx.navigation.findNavController
|
||||||
|
import com.navinfo.omqs.ui.dialog.FirstDialog
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
|
class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
|
||||||
@ -65,7 +67,17 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
|
|||||||
}
|
}
|
||||||
//返回按钮点击
|
//返回按钮点击
|
||||||
binding.evaluationBar.setOnClickListener() {
|
binding.evaluationBar.setOnClickListener() {
|
||||||
onBackPressed()
|
val mDialog = FirstDialog(context)
|
||||||
|
mDialog.setTitle("提示?")
|
||||||
|
mDialog.setMessage("是否退出,请确认!")
|
||||||
|
mDialog.setPositiveButton("确定", object : FirstDialog.OnClickListener {
|
||||||
|
override fun onClick(dialog: Dialog?, which: Int) {
|
||||||
|
mDialog.dismiss()
|
||||||
|
onBackPressed()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
mDialog.setNegativeButton("取消", null)
|
||||||
|
mDialog.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
//保存事件
|
//保存事件
|
||||||
@ -76,7 +88,7 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
|
|||||||
//删除事件
|
//删除事件
|
||||||
binding.evaluationBarDelete.setOnClickListener() {
|
binding.evaluationBarDelete.setOnClickListener() {
|
||||||
|
|
||||||
viewModel.deleteData()
|
viewModel.deleteData(requireContext())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.navinfo.omqs.ui.fragment.evaluationresult
|
package com.navinfo.omqs.ui.fragment.evaluationresult
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
|
import android.app.Dialog
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.graphics.drawable.AnimationDrawable
|
import android.graphics.drawable.AnimationDrawable
|
||||||
import android.graphics.drawable.BitmapDrawable
|
import android.graphics.drawable.BitmapDrawable
|
||||||
@ -22,12 +23,13 @@ import com.navinfo.collect.library.data.entity.QsRecordBean
|
|||||||
import com.navinfo.collect.library.data.entity.RenderEntity.Companion.LinkTable
|
import com.navinfo.collect.library.data.entity.RenderEntity.Companion.LinkTable
|
||||||
import com.navinfo.collect.library.map.NIMapController
|
import com.navinfo.collect.library.map.NIMapController
|
||||||
import com.navinfo.collect.library.utils.GeometryTools
|
import com.navinfo.collect.library.utils.GeometryTools
|
||||||
import com.navinfo.omqs.bean.SignBean
|
|
||||||
import com.navinfo.omqs.Constant
|
import com.navinfo.omqs.Constant
|
||||||
import com.navinfo.omqs.R
|
import com.navinfo.omqs.R
|
||||||
import com.navinfo.omqs.bean.ChatMsgEntity
|
import com.navinfo.omqs.bean.ChatMsgEntity
|
||||||
|
import com.navinfo.omqs.bean.SignBean
|
||||||
import com.navinfo.omqs.db.RealmOperateHelper
|
import com.navinfo.omqs.db.RealmOperateHelper
|
||||||
import com.navinfo.omqs.db.RoomAppDatabase
|
import com.navinfo.omqs.db.RoomAppDatabase
|
||||||
|
import com.navinfo.omqs.ui.dialog.FirstDialog
|
||||||
import com.navinfo.omqs.util.DateTimeUtil
|
import com.navinfo.omqs.util.DateTimeUtil
|
||||||
import com.navinfo.omqs.util.SoundMeter
|
import com.navinfo.omqs.util.SoundMeter
|
||||||
import com.navinfo.omqs.util.SpeakMode
|
import com.navinfo.omqs.util.SpeakMode
|
||||||
@ -326,22 +328,29 @@ class EvaluationResultViewModel @Inject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun deleteData() {
|
fun deleteData(context: Context) {
|
||||||
viewModelScope.launch(Dispatchers.IO) {
|
val mDialog = FirstDialog(context)
|
||||||
|
mDialog.setTitle("提示?")
|
||||||
val realm = Realm.getDefaultInstance()
|
mDialog.setMessage("是否删除Mark,请确认!")
|
||||||
Log.e("jingo", "realm hashCOde ${realm.hashCode()}")
|
mDialog.setPositiveButton("确定", object : FirstDialog.OnClickListener {
|
||||||
realm.executeTransaction {
|
override fun onClick(dialog: Dialog?, which: Int) {
|
||||||
val objects =
|
mDialog.dismiss()
|
||||||
it.where(QsRecordBean::class.java).equalTo("id", liveDataQsRecordBean.value?.id)
|
viewModelScope.launch(Dispatchers.IO) {
|
||||||
.findFirst()
|
val realm = Realm.getDefaultInstance()
|
||||||
objects?.deleteFromRealm()
|
Log.e("jingo", "realm hashCOde ${realm.hashCode()}")
|
||||||
|
realm.executeTransaction {
|
||||||
|
val objects = it.where(QsRecordBean::class.java)
|
||||||
|
.equalTo("id", liveDataQsRecordBean.value?.id).findFirst()
|
||||||
|
objects?.deleteFromRealm()
|
||||||
|
}
|
||||||
|
mapController.markerHandle.removeQsRecordMark(liveDataQsRecordBean.value!!)
|
||||||
|
mapController.mMapView.vtmMap.updateMap(true)
|
||||||
|
liveDataFinish.postValue(true)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// realm.close()
|
})
|
||||||
mapController.markerHandle.removeQsRecordMark(liveDataQsRecordBean.value!!)
|
mDialog.setNegativeButton("取消", null)
|
||||||
mapController.mMapView.vtmMap.updateMap(true)
|
mDialog.show()
|
||||||
liveDataFinish.postValue(true)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -91,13 +91,13 @@ class TaskViewModel @Inject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
is NetResult.Error -> {
|
is NetResult.Error<*> -> {
|
||||||
withContext(Dispatchers.Main) {
|
withContext(Dispatchers.Main) {
|
||||||
Toast.makeText(context, "${result.exception.message}", Toast.LENGTH_SHORT)
|
Toast.makeText(context, "${result.exception.message}", Toast.LENGTH_SHORT)
|
||||||
.show()
|
.show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
is NetResult.Failure -> {
|
is NetResult.Failure<*> -> {
|
||||||
withContext(Dispatchers.Main) {
|
withContext(Dispatchers.Main) {
|
||||||
Toast.makeText(context, "${result.code}:${result.msg}", Toast.LENGTH_SHORT)
|
Toast.makeText(context, "${result.code}:${result.msg}", Toast.LENGTH_SHORT)
|
||||||
.show()
|
.show()
|
||||||
|
@ -92,7 +92,7 @@
|
|||||||
android:hint="@string/input_user_name"
|
android:hint="@string/input_user_name"
|
||||||
android:lines="1"
|
android:lines="1"
|
||||||
android:background="@drawable/shape_login_inputlayout_bg"
|
android:background="@drawable/shape_login_inputlayout_bg"
|
||||||
android:text="@{loginUserModel.loginUser.username}"
|
android:text="@{loginUserModel.loginUser.userCode}"
|
||||||
tools:ignore="TouchTargetSizeCheck" />
|
tools:ignore="TouchTargetSizeCheck" />
|
||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
@ -113,7 +113,7 @@
|
|||||||
android:lines="1"
|
android:lines="1"
|
||||||
android:inputType="textPassword"
|
android:inputType="textPassword"
|
||||||
android:background="@drawable/shape_login_inputlayout_bg"
|
android:background="@drawable/shape_login_inputlayout_bg"
|
||||||
android:text="@{loginUserModel.loginUser.password}"
|
android:text="@{loginUserModel.loginUser.passWord}"
|
||||||
tools:ignore="TouchTargetSizeCheck" />
|
tools:ignore="TouchTargetSizeCheck" />
|
||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@
|
|||||||
style="?android:attr/progressBarStyleHorizontal"
|
style="?android:attr/progressBarStyleHorizontal"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="16dp"
|
android:layout_height="16dp"
|
||||||
android:layout_below="@id/offline_map_download_btn"
|
android:layout_below="@id/offline_map_city_size"
|
||||||
android:paddingTop="10dp"
|
android:paddingTop="10dp"
|
||||||
android:progressDrawable="@drawable/progress_bg"
|
android:progressDrawable="@drawable/progress_bg"
|
||||||
android:visibility="invisible" />
|
android:visibility="invisible" />
|
||||||
|
@ -72,7 +72,8 @@
|
|||||||
style="@style/btn_default_stroke_horizontal_round"
|
style="@style/btn_default_stroke_horizontal_round"
|
||||||
android:layout_width="72dp"
|
android:layout_width="72dp"
|
||||||
android:layout_alignParentRight="true"
|
android:layout_alignParentRight="true"
|
||||||
android:layout_alignParentBottom="true"
|
android:layout_below="@id/task_data_version"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="下载"
|
android:text="下载"
|
||||||
android:textSize="@dimen/card_title_font_2size" />
|
android:textSize="@dimen/card_title_font_2size" />
|
||||||
@ -108,7 +109,7 @@
|
|||||||
style="?android:attr/progressBarStyleHorizontal"
|
style="?android:attr/progressBarStyleHorizontal"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="16dp"
|
android:layout_height="16dp"
|
||||||
android:layout_below="@id/task_color"
|
android:layout_below="@id/task_download_btn"
|
||||||
android:paddingTop="10dp"
|
android:paddingTop="10dp"
|
||||||
android:progressDrawable="@drawable/progress_bg"
|
android:progressDrawable="@drawable/progress_bg"
|
||||||
android:visibility="invisible" />
|
android:visibility="invisible" />
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
android:id="@+id/evaluation_bar"
|
android:id="@+id/evaluation_bar"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:drawableLeft="@drawable/selector_btn_back_xml"
|
||||||
android:layout_marginLeft="12dp"
|
android:layout_marginLeft="12dp"
|
||||||
android:layout_marginTop="14dp"
|
android:layout_marginTop="14dp"
|
||||||
android:text="Mark"
|
android:text="Mark"
|
||||||
@ -48,6 +49,7 @@
|
|||||||
android:id="@+id/evaluation_bar_cancel"
|
android:id="@+id/evaluation_bar_cancel"
|
||||||
android:layout_width="40dp"
|
android:layout_width="40dp"
|
||||||
android:layout_height="40dp"
|
android:layout_height="40dp"
|
||||||
|
android:visibility="gone"
|
||||||
android:layout_marginRight="10dp"
|
android:layout_marginRight="10dp"
|
||||||
android:background="@color/transparent"
|
android:background="@color/transparent"
|
||||||
android:src="@drawable/icon_fragment_close"
|
android:src="@drawable/icon_fragment_close"
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
style="@style/left_pannel_title_layout">
|
style="@style/left_pannel_title_layout">
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
android:id="@+id/offline_map_back"
|
android:id="@+id/offline_map_back"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
@ -24,7 +25,9 @@
|
|||||||
android:background="@drawable/selector_bg_round_button"
|
android:background="@drawable/selector_bg_round_button"
|
||||||
android:foreground="@drawable/ripple_btn_press"
|
android:foreground="@drawable/ripple_btn_press"
|
||||||
style="@style/btn_round"
|
style="@style/btn_round"
|
||||||
android:src="@drawable/ic_baseline_keyboard_arrow_left_24"></androidx.appcompat.widget.AppCompatImageView>
|
android:src="@drawable/ic_baseline_keyboard_arrow_left_24">
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.AppCompatImageView>
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/tv_title"
|
android:id="@+id/tv_title"
|
||||||
@ -36,19 +39,24 @@
|
|||||||
app:layout_constraintLeft_toLeftOf="parent"
|
app:layout_constraintLeft_toLeftOf="parent"
|
||||||
app:layout_constraintRight_toRightOf="parent"
|
app:layout_constraintRight_toRightOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"></androidx.appcompat.widget.AppCompatTextView>
|
app:layout_constraintBottom_toBottomOf="parent">
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.AppCompatTextView>
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
<androidx.cardview.widget.CardView
|
<androidx.cardview.widget.CardView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
app:layout_constraintTop_toBottomOf="@id/title_layout"
|
app:layout_constraintTop_toBottomOf="@id/title_layout"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
style="@style/default_card_view">
|
style="@style/default_card_view">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<com.google.android.material.tabs.TabLayout
|
<com.google.android.material.tabs.TabLayout
|
||||||
android:id="@+id/offline_map_tab_layout"
|
android:id="@+id/offline_map_tab_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@ -60,22 +68,22 @@
|
|||||||
app:tabPadding="0dp"
|
app:tabPadding="0dp"
|
||||||
app:tabIndicator="@null"
|
app:tabIndicator="@null"
|
||||||
app:tabMode="scrollable"
|
app:tabMode="scrollable"
|
||||||
|
app:tabMinWidth="120dp"
|
||||||
app:tabIndicatorHeight="0dp"
|
app:tabIndicatorHeight="0dp"
|
||||||
app:tabSelectedTextColor="@color/white"
|
app:tabSelectedTextColor="@color/white"
|
||||||
app:layout_constraintLeft_toLeftOf="parent"
|
app:layout_constraintLeft_toLeftOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/title_layout">
|
app:layout_constraintTop_toBottomOf="@id/title_layout">
|
||||||
|
|
||||||
<com.google.android.material.tabs.TabItem
|
<com.google.android.material.tabs.TabItem
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="@dimen/default_widget_padding"
|
|
||||||
android:text="下载管理" />
|
android:text="下载管理" />
|
||||||
|
|
||||||
<com.google.android.material.tabs.TabItem
|
<com.google.android.material.tabs.TabItem
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="@dimen/default_widget_padding"
|
|
||||||
android:text="城市列表" />
|
android:text="城市列表" />
|
||||||
|
|
||||||
</com.google.android.material.tabs.TabLayout>
|
</com.google.android.material.tabs.TabLayout>
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,12 +10,11 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="4dp"
|
android:layout_margin="4dp"
|
||||||
|
android:drawableLeft="@drawable/selector_text_drawable_left_white_blue"
|
||||||
|
android:drawablePadding="10dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:padding="4dp"
|
android:padding="4dp"
|
||||||
android:drawablePadding="10dp"
|
|
||||||
android:drawableLeft="@drawable/selector_text_drawable_left_white_blue"
|
|
||||||
android:textColor="@color/selector_black_blue_color"
|
android:textColor="@color/selector_black_blue_color"
|
||||||
android:textSize="14sp"/>
|
android:textSize="14sp" />
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
</RelativeLayout>
|
|
||||||
|
@ -1878,6 +1878,7 @@
|
|||||||
<!-- <line stroke="#14582c" width="0.1"/>-->
|
<!-- <line stroke="#14582c" width="0.1"/>-->
|
||||||
<!-- <caption k="angle" fill="#000000" priority="0" size="14" stroke="#ffffff"-->
|
<!-- <caption k="angle" fill="#000000" priority="0" size="14" stroke="#ffffff"-->
|
||||||
<!-- stroke-width="1.0"></caption>-->
|
<!-- stroke-width="1.0"></caption>-->
|
||||||
|
|
||||||
</m>
|
</m>
|
||||||
</m>
|
</m>
|
||||||
</rendertheme>
|
</rendertheme>
|
1
vtm
1
vtm
@ -1 +0,0 @@
|
|||||||
Subproject commit 1ee201a41f78f169873848209a3f3bdac36f185a
|
|
Loading…
x
Reference in New Issue
Block a user