From 00f39555ab11b07d73294f59991eb816d11744ed Mon Sep 17 00:00:00 2001 From: squallzhjch Date: Fri, 19 May 2023 17:23:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9D=A1=E4=BB=B6=E9=99=90?= =?UTF-8?q?=E9=80=9F=20=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E4=B8=8B=E8=BD=BD=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/navinfo/omqs/bean/SignBean.kt | 2 + .../omqs/http/RetrofitNetworkServiceAPI.kt | 4 +- .../omqs/ui/activity/map/MainViewModel.kt | 1 + .../omqs/ui/activity/map/SignAdapter.kt | 1 + .../com/navinfo/omqs/ui/widget/SignUtil.kt | 64 ++++++++++++++++++- app/src/main/res/layout/adapter_sign.xml | 23 +++++-- .../main/res/menu/personal_center_menu.xml | 2 +- .../collect/library/data/entity/TaskBean.kt | 2 +- 8 files changed, 89 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/navinfo/omqs/bean/SignBean.kt b/app/src/main/java/com/navinfo/omqs/bean/SignBean.kt index 6cfe78cd..597ee5bd 100644 --- a/app/src/main/java/com/navinfo/omqs/bean/SignBean.kt +++ b/app/src/main/java/com/navinfo/omqs/bean/SignBean.kt @@ -19,6 +19,8 @@ data class SignBean( val geometry: String, //底部文字 val bottomText: String, + //底部右侧文字 + val bottomRightText: String, //要素code类型 val elementCode: Int ) : Parcelable \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/http/RetrofitNetworkServiceAPI.kt b/app/src/main/java/com/navinfo/omqs/http/RetrofitNetworkServiceAPI.kt index b8f3919f..d128052d 100644 --- a/app/src/main/java/com/navinfo/omqs/http/RetrofitNetworkServiceAPI.kt +++ b/app/src/main/java/com/navinfo/omqs/http/RetrofitNetworkServiceAPI.kt @@ -50,13 +50,13 @@ interface RetrofitNetworkServiceAPI { @Url url: String ): Response - @GET("/devcp/task?evaluatType=2") + @GET("/devcp/getEvaluationTask?evaluatType=2") suspend fun retrofitGetTaskList( @Query("evaluatorNo") evaluatorNo: String, ): Response>> @Headers("Content-Type: application/json") - @POST("/devcp/upload") + @POST("/devcp/uploadSceneProblem") suspend fun postRequest(@Body listEvaluationInfo: List?): Response /** diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt index 63df1784..a3722bfd 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt @@ -216,6 +216,7 @@ class MainViewModel @Inject constructor( linkId = linkId, geometry = element.geometry, bottomText = SignUtil.getSignBottomText(element), + bottomRightText = SignUtil.getSignBottomRightText(element), elementCode = element.code ) ) diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt index 5ae873f5..1d8e4778 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt @@ -26,6 +26,7 @@ class SignAdapter(private var itemListener: ((Int, SignBean) -> Unit?)? = null) bd.signMainIcon.background = holder.viewBinding.root.context.getDrawable(item.iconId) bd.signMainIcon.text = item.iconText bd.signBottomText.text = item.bottomText + bd.signBottomRightText.text = item.bottomRightText bd.root.setOnClickListener { itemListener?.invoke(position, item) } diff --git a/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt b/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt index 265b9c8d..78735c96 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt @@ -12,7 +12,7 @@ class SignUtil { */ fun getSignIconText(data: RenderEntity): String { return when (data.code) { - //常规点限速 + //常规点限速,条件点限速 4002, 4003 -> getSpeedLimitText(data) // //道路种别 // 2008 -> getKindCodeIcon(data) @@ -26,8 +26,12 @@ class SignUtil { fun getSignBottomText(data: RenderEntity): String { return when (data.code) { + //可变点限速 + 4004 -> "可变点限速" //常规点限速 4002 -> "常规点限速" + //常点限速 + 4003 -> "条件点限速" //道路种别 2008 -> "道路种别" //道路方向 @@ -38,6 +42,64 @@ class SignUtil { } } + /** + * 右下角文字 + */ + fun getSignBottomRightText(data: RenderEntity): String { + return when (data.code) { + //常点限速 + 4003 -> getConditionLimitText(data) + else -> "" + } + } + + /** + * 条件点限速文字 + */ + + fun getConditionLimitText(data: RenderEntity): String { + var stringBuffer = StringBuffer() + try { + val dependent = data.properties["speedDependent"] + dependent?.let { + val dependentInt = it.toInt() + for (i in 31 downTo 0) { + val bit = (dependentInt shr i) and 1 + if (bit == 1) { + when (i) { + 0 -> stringBuffer.append("学校 ") + 1 -> stringBuffer.append("雾 ") + 2 -> stringBuffer.append("雨 ") + 3 -> stringBuffer.append("结冰 ") + 4 -> stringBuffer.append("其他天气 ") + 5 -> stringBuffer.append("减速带 ") + 6 -> stringBuffer.append("时间 ") + 7 -> stringBuffer.append("车辆 ") + 8 -> stringBuffer.append("建议 ") + 9 -> stringBuffer.append("雪 ") + 10 -> stringBuffer.append("其他 ") + } + } + } + } + + } catch (e: Exception) { + + } + return stringBuffer.toString() + } + + private fun isBitSet(number: Int, n: Int): Boolean { + // 创建一个二进制数,只有第 n 个 bit 位是 1,其他 bit 位是 0 + val mask = 1 shl (n - 1) + + // 将原始二进制数与上面创建的二进制数进行位运算 + val result = number and mask + + // 判断运算结果是否为 0 + return result != 0 + } + /** * 获取限速值文字 */ diff --git a/app/src/main/res/layout/adapter_sign.xml b/app/src/main/res/layout/adapter_sign.xml index efcce91b..97fc3ea1 100644 --- a/app/src/main/res/layout/adapter_sign.xml +++ b/app/src/main/res/layout/adapter_sign.xml @@ -12,20 +12,33 @@ android:layout_height="40dp" android:layout_marginLeft="19dp" android:layout_marginTop="4dp" - android:background="@drawable/shape_icon_speed_limit" + android:background="@drawable/icon_speed_limit" android:gravity="center" android:text="80" android:textColor="#2F2F2F" - android:textSize="14.67sp" /> + android:textSize="14sp" /> + + android:textSize="14sp" /> + + \ No newline at end of file diff --git a/app/src/main/res/menu/personal_center_menu.xml b/app/src/main/res/menu/personal_center_menu.xml index 9e086aa6..f0aee773 100644 --- a/app/src/main/res/menu/personal_center_menu.xml +++ b/app/src/main/res/menu/personal_center_menu.xml @@ -16,7 +16,7 @@