From 3a1e1bc9d661c136e156a2212ffd3a28ffd3ba0a Mon Sep 17 00:00:00 2001 From: squallzhjch Date: Fri, 5 May 2023 16:52:07 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/navinfo/omqs/bean/EvaluationInfo.kt | 5 ++- .../com/navinfo/omqs/hilt/GlobalModule.kt | 12 ++++-- .../omqs/http/RetrofitNetworkServiceAPI.kt | 2 +- .../omqs/http/taskupload/TaskUploadScope.kt | 38 ++++++++++--------- .../EvaluationResultViewModel.kt | 9 ++++- .../collect/library/map/NIMapView.java | 5 ++- .../library/map/handler/LineHandler.kt | 2 +- .../library/map/handler/MarkHandler.kt | 4 +- .../map/handler/MeasureLayerHandler.kt | 2 +- 9 files changed, 48 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/com/navinfo/omqs/bean/EvaluationInfo.kt b/app/src/main/java/com/navinfo/omqs/bean/EvaluationInfo.kt index 49800ffb..9f4a541a 100644 --- a/app/src/main/java/com/navinfo/omqs/bean/EvaluationInfo.kt +++ b/app/src/main/java/com/navinfo/omqs/bean/EvaluationInfo.kt @@ -1,7 +1,10 @@ package com.navinfo.omqs.bean +import android.os.Parcelable import com.google.gson.annotations.SerializedName +import kotlinx.android.parcel.Parcelize +@Parcelize data class EvaluationInfo( @SerializedName("evaluationTaskId") val evaluationTaskId: String = "",//测评任务id @@ -46,5 +49,5 @@ data class EvaluationInfo( @SerializedName("evaluationWay") val evaluationWay: String = ""//测评方式 -) +) : Parcelable diff --git a/app/src/main/java/com/navinfo/omqs/hilt/GlobalModule.kt b/app/src/main/java/com/navinfo/omqs/hilt/GlobalModule.kt index 9baa08c1..e68fde92 100644 --- a/app/src/main/java/com/navinfo/omqs/hilt/GlobalModule.kt +++ b/app/src/main/java/com/navinfo/omqs/hilt/GlobalModule.kt @@ -24,6 +24,7 @@ import io.realm.Realm import kotlinx.coroutines.* import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor +import retrofit2.Call import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory import java.util.concurrent.TimeUnit @@ -66,7 +67,7 @@ class GlobalModule { }.apply { level = if (Constant.DEBUG) { //坑 !!!! 下载文件时打印log 内存不足 - HttpLoggingInterceptor.Level.BASIC + HttpLoggingInterceptor.Level.BODY } else { HttpLoggingInterceptor.Level.NONE } @@ -92,9 +93,12 @@ class GlobalModule { @Singleton fun provideGson(): Gson = GsonBuilder() // 解决解析Json时将int类型自动转换为Double的问题 - .registerTypeAdapter(object : TypeToken>() {}.getType(), IntTypeAdapter()) - .registerTypeAdapter(object : TypeToken>() {}.getType(), IntTypeAdapter()) - .registerTypeAdapter(object : TypeToken>() {}.getType(), IntTypeAdapter()) + .registerTypeAdapter(object : TypeToken>() {}.type, IntTypeAdapter()) + .registerTypeAdapter(object : TypeToken>() {}.type, IntTypeAdapter()) + .registerTypeAdapter(object : TypeToken>() {}.type, IntTypeAdapter()) +// .registerTypeAdapter(Call::class.java, object : TypeToken>(){ +// +// }) .create() @Provides 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 2e542a0b..12c2a3c8 100644 --- a/app/src/main/java/com/navinfo/omqs/http/RetrofitNetworkServiceAPI.kt +++ b/app/src/main/java/com/navinfo/omqs/http/RetrofitNetworkServiceAPI.kt @@ -58,7 +58,7 @@ interface RetrofitNetworkServiceAPI { @Headers("Content-Type: application/json") @POST("/devcp/upload") - suspend fun postRequest(@Body listEvaluationInfo: List?): Call + suspend fun postRequest(@Body listEvaluationInfo: List?): Response /** * @FormUrlEncoded 请求格式注解,请求实体是一个From表单,每个键值对需要使用@Field注解 diff --git a/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadScope.kt b/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadScope.kt index d830be24..a34a6c25 100644 --- a/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadScope.kt +++ b/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadScope.kt @@ -9,6 +9,7 @@ import androidx.lifecycle.Observer import com.navinfo.collect.library.data.entity.QsRecordBean import com.navinfo.omqs.bean.EvaluationInfo import com.navinfo.omqs.bean.TaskBean +import com.navinfo.omqs.http.NetResult import com.navinfo.omqs.tools.FileManager import com.navinfo.omqs.tools.FileManager.Companion.FileUploadStatus import io.realm.Realm @@ -114,9 +115,16 @@ class TaskUploadScope( taskBean.hadLinkDvoList.forEach { hadLinkDvoBean -> val objects = realm.where(QsRecordBean::class.java) .equalTo("linkId", /*"84207223282277331"*/hadLinkDvoBean.linkPid).findAll() + if(objects.size == 0){ +// change(FileUploadStatus.NONE) + return + } + val bodyList: MutableList = ArrayList() + if (objects != null) { - objects.forEach{ + val copyList =realm.copyFromRealm(objects) + copyList.forEach { val evaluationInfo = EvaluationInfo( taskBean.id.toString(), hadLinkDvoBean.linkPid,//"84207223282277331" @@ -137,26 +145,20 @@ class TaskUploadScope( bodyList.add(evaluationInfo) } - uploadManager.netApi.postRequest(bodyList).enqueue(object : - Callback { - override fun onResponse( - call: Call, - response: Response - ) { - if (response.code() == 200) { - taskBean.syncStatus = FileUploadStatus.DONE - // handle the response - Log.e("qj", "") - change(FileUploadStatus.DONE) - } - } - - override fun onFailure(call: Call, t: Throwable) { + val result = uploadManager.netApi.postRequest(bodyList)// .enqueue(object : +// Callback { + if (result.isSuccessful) { + if (result.code() == 200) { + taskBean.syncStatus = FileUploadStatus.DONE + // handle the response + change(FileUploadStatus.DONE) + } else { // handle the failure - Log.e("qj", "") change(FileUploadStatus.ERROR) } - }) + } else { + change(FileUploadStatus.ERROR) + } } } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt index c9334af9..35b9d371 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt @@ -91,6 +91,8 @@ class EvaluationResultViewModel @Inject constructor( var mSoundMeter: SoundMeter? = null + var classTypeTemp: String = "" + init { liveDataQsRecordBean.value = QsRecordBean(id = UUID.randomUUID().toString()) Log.e("jingo", "EvaluationResultViewModel 创建了 ${hashCode()}") @@ -128,6 +130,7 @@ class EvaluationResultViewModel @Inject constructor( geoPoint?.let { liveDataQsRecordBean.value!!.geometry = GeometryTools.createGeometry(it).toText() mapController.markerHandle.addMarker(geoPoint, markerTitle) + mapController.animationHandler.animationByLonLat(geoPoint.latitude,geoPoint.longitude) viewModelScope.launch { captureLink(geoPoint.longitude, geoPoint.latitude) } @@ -148,6 +151,8 @@ class EvaluationResultViewModel @Inject constructor( } } val point = GeometryTools.createGeoPoint(bean.geometry) + liveDataQsRecordBean.value!!.geometry = GeometryTools.createGeometry(point).toText() + mapController.animationHandler.animationByLonLat(point.latitude,point.longitude) mapController.markerHandle.addMarker(point, markerTitle) } @@ -196,6 +201,7 @@ class EvaluationResultViewModel @Inject constructor( if (liveDataQsRecordBean.value!!.classType.isEmpty()) { Log.e("jingo", "getClassTypeList $classType") liveDataQsRecordBean.value!!.classType = classType + classTypeTemp = classType } getProblemList(classType) } @@ -285,12 +291,14 @@ class EvaluationResultViewModel @Inject constructor( viewModelScope.launch(Dispatchers.IO) { getProblemList(classType) } + classTypeTemp = classType } /** * 监听右侧栏的点击事件,修改数据 */ fun setPhenomenonMiddleBean(adapterBean: RightBean) { + liveDataQsRecordBean.value!!.classType = classTypeTemp liveDataQsRecordBean.value!!.phenomenon = adapterBean.text liveDataQsRecordBean.value!!.problemType = adapterBean.title liveDataQsRecordBean.postValue(liveDataQsRecordBean.value) @@ -305,7 +313,6 @@ class EvaluationResultViewModel @Inject constructor( fun saveData() { viewModelScope.launch(Dispatchers.IO) { val realm = Realm.getDefaultInstance() - Log.e("jingo", "realm hashCOde ${realm.hashCode()}") realm.executeTransaction { it.copyToRealmOrUpdate(liveDataQsRecordBean.value) } diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/NIMapView.java b/collect-library/src/main/java/com/navinfo/collect/library/map/NIMapView.java index 1e66c804..c60c3bbe 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/NIMapView.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/NIMapView.java @@ -591,8 +591,9 @@ public final class NIMapView extends RelativeLayout { BASE(0)/*底图图层组*/, VECTOR_TILE(1)/*矢量瓦片组*/, VECTOR(2)/*高亮组*/, - OPERATE(3)/*操作图层组*/, - NAVIGATION(4)/*定位导航组*/; + OPERATE_LINE(3)/*操作图层组*/, + OPERATE_MARKER(4)/*操作图层组*/, + NAVIGATION(5)/*定位导航组*/; int groupIndex; diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LineHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LineHandler.kt index 6ff737f4..970a326f 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LineHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LineHandler.kt @@ -110,7 +110,7 @@ class LineHandler(context: AppCompatActivity, mapView: NIMapView) : BaseHandler( .strokeColor(context.resources.getColor(R.color.draw_line_red_color, null)) .fixed(true).randomOffset(false).build() mDefaultPathLayer = PathLayer(mMapView.vtmMap, defaultLineStyle) - addLayer(mDefaultPathLayer, NIMapView.LAYER_GROUPS.OPERATE) + addLayer(mDefaultPathLayer, NIMapView.LAYER_GROUPS.OPERATE_LINE) mPathLayer = PathLayer(mMapView.vtmMap, lineStyle) // addLayer(mPathLayer, NIMapView.LAYER_GROUPS.OPERATE) diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MarkHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MarkHandler.kt index 2c8528c4..ca1e6a63 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MarkHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MarkHandler.kt @@ -93,7 +93,7 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) : //初始化之间数据图层 initQsRecordDataLayer() - addLayer(mDefaultMarkerLayer, NIMapView.LAYER_GROUPS.OPERATE); + addLayer(mDefaultMarkerLayer, NIMapView.LAYER_GROUPS.OPERATE_MARKER); // 设置矢量图层均在12级以上才显示 mMapView.vtmMap.events.bind(Map.UpdateListener { e, mapPosition -> if (e == Map.SCALE_EVENT) { @@ -259,7 +259,7 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) : return true } }) - addLayer(itemizedLayer, NIMapView.LAYER_GROUPS.OPERATE) + addLayer(itemizedLayer, NIMapView.LAYER_GROUPS.OPERATE_MARKER) mContext.lifecycleScope.launch(Dispatchers.IO) { var list = mutableListOf() val realm = Realm.getDefaultInstance() diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MeasureLayerHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MeasureLayerHandler.kt index e6b99078..6308fe7a 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MeasureLayerHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MeasureLayerHandler.kt @@ -116,7 +116,7 @@ open class MeasureLayerHandler(context: AppCompatActivity, mapView: NIMapView) : mPathLayer = PathLayer(mMapView.vtmMap, lineStyle) - addLayer(mPathLayer, NIMapView.LAYER_GROUPS.OPERATE) + addLayer(mPathLayer, NIMapView.LAYER_GROUPS.OPERATE_LINE) } From 6b1ac4df9b80fcc1c07412ffc2da39001a2ccd71 Mon Sep 17 00:00:00 2001 From: qiji4215 Date: Fri, 5 May 2023 16:58:03 +0800 Subject: [PATCH 2/4] merge code --- .../EvaluationResultFragment.kt | 26 ++++---- .../EvaluationResultViewModel.kt | 1 + .../drawable-v24/baseline_camera_alt_24.xml | 57 ++++++++++++++++-- .../baseline_keyboard_voice_24.xml | 37 ++++++++++-- .../main/res/drawable-xhdpi/icon_camera.png | Bin 0 -> 1391 bytes .../main/res/drawable-xhdpi/icon_sound_01.png | Bin 17868 -> 1240 bytes .../main/res/drawable-xhdpi/icon_sound_02.png | Bin 18116 -> 1158 bytes .../main/res/drawable-xhdpi/icon_voice.png | Bin 0 -> 1415 bytes .../main/res/drawable-xxhdpi/icon_camera.png | Bin 0 -> 1677 bytes .../res/drawable-xxhdpi/icon_sound_01.png | Bin 17868 -> 1240 bytes .../res/drawable-xxhdpi/icon_sound_02.png | Bin 18116 -> 1158 bytes .../res/drawable-xxhdpi/icon_sound_03.png | Bin 18642 -> 826 bytes .../main/res/drawable-xxhdpi/icon_voice.png | Bin 0 -> 1509 bytes .../res/drawable/ripple_btn_video_normal.xml | 6 ++ .../res/drawable/selector_bg_video_button.xml | 8 +++ .../res/drawable/shape_btn_video_normal.xml | 15 +++++ .../res/drawable/shape_btn_video_press.xml | 13 ++++ .../main/res/layout/adapter_sound_list.xml | 23 ++++--- .../res/layout/fragment_evaluation_result.xml | 38 +++++++++--- 19 files changed, 184 insertions(+), 40 deletions(-) create mode 100644 app/src/main/res/drawable-xhdpi/icon_camera.png create mode 100644 app/src/main/res/drawable-xhdpi/icon_voice.png create mode 100644 app/src/main/res/drawable-xxhdpi/icon_camera.png create mode 100644 app/src/main/res/drawable-xxhdpi/icon_voice.png create mode 100644 app/src/main/res/drawable/ripple_btn_video_normal.xml create mode 100644 app/src/main/res/drawable/selector_bg_video_button.xml create mode 100644 app/src/main/res/drawable/shape_btn_video_normal.xml create mode 100644 app/src/main/res/drawable/shape_btn_video_press.xml diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt index 435b15c3..f01bcb63 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt @@ -60,22 +60,20 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener { onBackPressed() } //返回按钮点击 - binding.evaluationBar.setNavigationOnClickListener { + binding.evaluationBar.setOnClickListener() { onBackPressed() } - //标题栏按钮 - binding.evaluationBar.setOnMenuItemClickListener { - when (it.itemId) { - R.id.save -> { - viewModel.saveData() - true - } - R.id.delete -> { - viewModel.deleteData() - true - } - else -> true - } + + //保存事件 + binding.evaluationBarSave.setOnClickListener() { + viewModel.saveData() + } + + //删除事件 + binding.evaluationBarDelete.setOnClickListener() { + + viewModel.deleteData() + } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt index a98a769c..9f4040d3 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt @@ -326,6 +326,7 @@ class EvaluationResultViewModel @Inject constructor( } // realm.close() mapController.markerHandle.removeQsRecordMark(liveDataQsRecordBean.value!!) + mapController.mMapView.vtmMap.updateMap(true) liveDataFinish.postValue(true) } } diff --git a/app/src/main/res/drawable-v24/baseline_camera_alt_24.xml b/app/src/main/res/drawable-v24/baseline_camera_alt_24.xml index a939a65c..9c20aa97 100644 --- a/app/src/main/res/drawable-v24/baseline_camera_alt_24.xml +++ b/app/src/main/res/drawable-v24/baseline_camera_alt_24.xml @@ -1,6 +1,53 @@ - - - + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-v24/baseline_keyboard_voice_24.xml b/app/src/main/res/drawable-v24/baseline_keyboard_voice_24.xml index 70a2cb47..09bba373 100644 --- a/app/src/main/res/drawable-v24/baseline_keyboard_voice_24.xml +++ b/app/src/main/res/drawable-v24/baseline_keyboard_voice_24.xml @@ -1,5 +1,34 @@ - - + + + + + + + + + diff --git a/app/src/main/res/drawable-xhdpi/icon_camera.png b/app/src/main/res/drawable-xhdpi/icon_camera.png new file mode 100644 index 0000000000000000000000000000000000000000..1c910fb0206dae49c8435e507a48a598f50a1ca3 GIT binary patch literal 1391 zcmV-#1(5oQP)(A^N%26MF`P`xoK|BO}Dvu=k7l4$L_uF8|S>|-1oe9?>0}HP;f5{-aF1c z?{l8#_j`WNQFL9`@jv(|8KCp5QijoaCKMS)|C5Xk4=0g`r$aMb&!GZ~1I{_)p0o7r z7belzIF7N921VBZ9i*PF9DyVzghmw2Ua{@ajppl4%Pd*++%P&zVnh8$PG$;fX z0jueFvfPWhoj&9&bo^_ua{_wy#|RF8K8pCH4g$`~CIJo#)a?Sc*5#wJX5pO!Iug<_ zbTdg`Kwr#0p^%1y`$HHXO)`K)dV@tSJ7JlB&&g5o=DU96`3S4VMh5G^;w4VxEt}9Mu47Lne4Y}E~@P7&}wO%NR6vONg?6=S~c(PQ~?hK%!#wQ1K z`&+lrbCt+y0^>4@l3L`}L;#FMow3NkTg!vgwplJq?{Q=Qcg1o*H&zc#BR7|iNhx%< zjNF`cqv1@KIN7>V4(O(;Awj;`<@PK9ic8(_2OP8}g98b4Uy30zW~h=ngdq16c6H!H zn=H`HgO)CyN$$tjW}*7!T=)x|@MO_eLo}ixIG9B9H@DDoW?XOsF1OVsxRsqaf4>}~ z&u_XRbho|Sq(3)QX5+PO`N;CxcWW%7q3OUNTAIg@jFWx1znXFz?qSsGSAVUN1G;(R z4Qg_9<7v9Jq|}97djs$-nt9@k1QYmlPe0nvO{94(cMr3)j$e=kS~`FC ze!m><1@_&Z{XZe#-rAw5_$D;Ll0qkTA1p-C-7}~6-b+y&s_#XASJWC- zEZM+Ntf}i^IYw(LdQvqi&SKG=$@A(*y?DJofP!T%I2^`Q;-6$vN3cJRV;}V4e9M?| z3t-(X$}L96#w%r#K-UqVEUpp5XI*b+{zZ4WP*$Fe6>Gfk7doLR3Wlyv;_{zi{N5bG zU{8$IpuOB;bUe~63G~IMuA1{%^gKQS*&#S^RRMBxRoY~vmZK9%ghL7FNuEvlq0_P` z--m{5;7HFSa*V#Tt{Zy7yh_+5b1|_`P5vxrrXn1RbC%@K*BFOTRRs;*l0ZLvX8>*I z!Zg@UN%i#pWF~)}eC*3(cDeb*aK&S}sQ>mpIYv9$qByW?0AnLbGx4y1VglzWo`W{i zx@C<`cU!}bj+}fa-Z)f(mF0PIKs8OrAHRlix?vchU_t=P%o#d#R=ehe5w9P{vlyD` zdQlDb?9EkCvu8P0RpdiWa}JJr)_Xms4V~h literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/icon_sound_01.png b/app/src/main/res/drawable-xhdpi/icon_sound_01.png index 2862f172c36326bbf16f2c6c4891ec6ab2cfb22b..2b08560139f0a8decfec875ace6b4e60cef9c2b3 100644 GIT binary patch literal 1240 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 CPrf1m diff --git a/app/src/main/res/drawable-xhdpi/icon_sound_02.png b/app/src/main/res/drawable-xhdpi/icon_sound_02.png index f9e67e63085f31cd6bc9398ac3cca562b2fcbd82..a13dad81c0edac3761646f3e3e8cc575e76f4940 100644 GIT binary patch literal 1158 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 CPrf1m diff --git a/app/src/main/res/drawable-xxhdpi/icon_sound_02.png b/app/src/main/res/drawable-xxhdpi/icon_sound_02.png index f9e67e63085f31cd6bc9398ac3cca562b2fcbd82..a13dad81c0edac3761646f3e3e8cc575e76f4940 100644 GIT binary patch literal 1158 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 + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/selector_bg_video_button.xml b/app/src/main/res/drawable/selector_bg_video_button.xml new file mode 100644 index 00000000..5815701e --- /dev/null +++ b/app/src/main/res/drawable/selector_bg_video_button.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/shape_btn_video_normal.xml b/app/src/main/res/drawable/shape_btn_video_normal.xml new file mode 100644 index 00000000..6dcd6f1a --- /dev/null +++ b/app/src/main/res/drawable/shape_btn_video_normal.xml @@ -0,0 +1,15 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_btn_video_press.xml b/app/src/main/res/drawable/shape_btn_video_press.xml new file mode 100644 index 00000000..14b565e9 --- /dev/null +++ b/app/src/main/res/drawable/shape_btn_video_press.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/adapter_sound_list.xml b/app/src/main/res/layout/adapter_sound_list.xml index e493ed42..ff58958d 100644 --- a/app/src/main/res/layout/adapter_sound_list.xml +++ b/app/src/main/res/layout/adapter_sound_list.xml @@ -1,21 +1,22 @@ - - - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_evaluation_result.xml b/app/src/main/res/layout/fragment_evaluation_result.xml index 201be1fa..a7ddc410 100644 --- a/app/src/main/res/layout/fragment_evaluation_result.xml +++ b/app/src/main/res/layout/fragment_evaluation_result.xml @@ -26,14 +26,38 @@ android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent"> - + android:layout_height="match_parent"> + + + + + + + + + From 0ac805302d8a4b8d33e8ce7b46009a131a5ca8f1 Mon Sep 17 00:00:00 2001 From: qiji4215 Date: Sat, 6 May 2023 10:20:16 +0800 Subject: [PATCH 3/4] =?UTF-8?q?UI=E7=BE=8E=E5=8C=96=E8=B4=A8=E6=A3=80?= =?UTF-8?q?=E6=8A=A5=E5=91=8A=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fragment/evaluationresult/LeftAdapter.kt | 6 ++- .../evaluationresult/MiddleAdapter.kt | 9 +++- .../evaluationresult/PhenomenonFragment.kt | 3 +- .../RightGroupHeaderDecoration.kt | 7 ++- .../drawable/drawable_bg_blue_bg_4_radius.xml | 2 +- .../drawable_bg_tittle_blue_bg_4_radius.xml | 14 ++++++ .../drawable_bg_white_bg_4_radius.xml | 14 ++++++ .../main/res/drawable/icon_item_high_bg.9.png | Bin 0 -> 840 bytes .../selector_bg_white_blue_bg_4_radius.xml | 9 ++++ app/src/main/res/layout/activity_main.xml | 3 +- .../main/res/layout/fragment_phenomenon.xml | 44 ++++++++---------- app/src/main/res/layout/text_item_select.xml | 25 ++++++---- app/src/main/res/values/colors.xml | 4 +- app/src/main/res/values/styles.xml | 4 +- 14 files changed, 99 insertions(+), 45 deletions(-) create mode 100644 app/src/main/res/drawable/drawable_bg_tittle_blue_bg_4_radius.xml create mode 100644 app/src/main/res/drawable/drawable_bg_white_bg_4_radius.xml create mode 100644 app/src/main/res/drawable/icon_item_high_bg.9.png create mode 100644 app/src/main/res/drawable/selector_bg_white_blue_bg_4_radius.xml diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/LeftAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/LeftAdapter.kt index 467f3058..586b7b68 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/LeftAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/LeftAdapter.kt @@ -29,9 +29,11 @@ class LeftAdapter(private var itemListener: ((Int, String) -> Unit?)? = null) : val title = data[position] bd.itemId.text = title if (selectTitle == title) { - bd.itemId.setBackgroundColor(holder.viewBinding.root.context.getColor(R.color.cv_gray_153)) + bd.itemId.setBackgroundResource(R.drawable.drawable_bg_tittle_blue_bg_4_radius) + bd.itemId.setTextColor(holder.viewBinding.root.context.getColor(R.color.highFontColor)) } else { - bd.itemId.setBackgroundColor(holder.viewBinding.root.context.getColor(R.color.white)) + bd.itemId.setBackgroundResource(R.drawable.drawable_bg_white_bg_4_radius) + bd.itemId.setTextColor(holder.viewBinding.root.context.getColor(R.color.black)) } bd.root.setOnClickListener { if (selectTitle != title) { diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/MiddleAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/MiddleAdapter.kt index 034d5787..43602e5d 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/MiddleAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/MiddleAdapter.kt @@ -28,10 +28,15 @@ class MiddleAdapter(private var itemListener: ((Int, String) -> Unit?)? = null) val bd = holder.viewBinding as TextItemSelectBinding val title = data[position] bd.itemId.text = title + val layoutParams: ViewGroup.LayoutParams = holder.viewBinding.itemLayout.layoutParams + layoutParams.width = 115 + bd.itemLayout.layoutParams = layoutParams if (selectTitle == title) { - bd.itemId.setBackgroundColor(holder.viewBinding.root.context.getColor(R.color.cv_gray_153)) + bd.itemId.setBackgroundResource(R.drawable.drawable_bg_blue_bg_4_radius) + bd.itemId.setTextColor(holder.viewBinding.root.context.getColor(R.color.white)) } else { - bd.itemId.setBackgroundColor(holder.viewBinding.root.context.getColor(R.color.white)) + bd.itemId.setBackgroundResource(R.drawable.drawable_bg_white_bg_4_radius) + bd.itemId.setTextColor(holder.viewBinding.root.context.getColor(R.color.black)) } bd.root.setOnClickListener { if (selectTitle != title) { diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/PhenomenonFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/PhenomenonFragment.kt index 042c1411..5b803b08 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/PhenomenonFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/PhenomenonFragment.kt @@ -102,7 +102,8 @@ class PhenomenonFragment : //中间菜单 binding.phenomenonMiddleRecyclerview.setHasFixedSize(true) - binding.phenomenonMiddleRecyclerview.layoutManager = LinearLayoutManager(requireContext()) + binding.phenomenonMiddleRecyclerview.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false) + binding.phenomenonMiddleRecyclerview.adapter = middleAdapter //中间侧菜单查询结果监听 viewModel.liveDataMiddleTypeList.observe(viewLifecycleOwner) { diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/RightGroupHeaderDecoration.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/RightGroupHeaderDecoration.kt index 8cf32e01..fd536bd0 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/RightGroupHeaderDecoration.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/RightGroupHeaderDecoration.kt @@ -5,15 +5,19 @@ import android.graphics.Canvas import android.graphics.Color import android.graphics.Paint import android.graphics.Rect +import android.os.Build import android.view.View +import androidx.annotation.RequiresApi import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.ItemDecoration +import com.navinfo.omqs.R /** * 自定义装饰器(实现分组+吸顶效果) */ +@RequiresApi(Build.VERSION_CODES.M) class RightGroupHeaderDecoration(context: Context) : ItemDecoration() { //头部的高 private val mItemHeaderHeight: Int @@ -31,7 +35,7 @@ class RightGroupHeaderDecoration(context: Context) : ItemDecoration() { mTextPaddingLeft = dp2px(context, 6f) mTextRect = Rect() mItemHeaderPaint = Paint(Paint.ANTI_ALIAS_FLAG) - mItemHeaderPaint.color = Color.GRAY + mItemHeaderPaint.color = context.getColor(R.color.btn_bg_blue) mTextPaint = Paint(Paint.ANTI_ALIAS_FLAG) mTextPaint.textSize = 46f mTextPaint.color = Color.WHITE @@ -84,7 +88,6 @@ class RightGroupHeaderDecoration(context: Context) : ItemDecoration() { (view.top - 1).toFloat(), right.toFloat(), view.top.toFloat(), mLinePaint ) - } } } diff --git a/app/src/main/res/drawable/drawable_bg_blue_bg_4_radius.xml b/app/src/main/res/drawable/drawable_bg_blue_bg_4_radius.xml index cf3c0fea..36bc7a06 100644 --- a/app/src/main/res/drawable/drawable_bg_blue_bg_4_radius.xml +++ b/app/src/main/res/drawable/drawable_bg_blue_bg_4_radius.xml @@ -1,6 +1,6 @@ - + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/drawable_bg_white_bg_4_radius.xml b/app/src/main/res/drawable/drawable_bg_white_bg_4_radius.xml new file mode 100644 index 00000000..c5e07a55 --- /dev/null +++ b/app/src/main/res/drawable/drawable_bg_white_bg_4_radius.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/icon_item_high_bg.9.png b/app/src/main/res/drawable/icon_item_high_bg.9.png new file mode 100644 index 0000000000000000000000000000000000000000..6dbdd625dfcbc5b362e0e0cfe04c431ecbf08978 GIT binary patch literal 840 zcmeAS@N?(olHy`uVBq!ia0vp^Pl4EtgAGU;I|hdVDaPU;cPEB*=VV?oFfcQDx;TbZ z#J#<{H)}GZMBBp}kE2T$tbO6w(f&ZoqO-eu_H4Pf?$zF}6;et!HZABl>iB`fWsVKA zqkwnahGQPqw>01L^L~4E=ljX&-S@l~zBKr>b=85QtIfv${vMXB|F6COZ}NtdB^!;U z+S;|_trZ*=xFlFg)kgf2dzY8Tci$z_DXYc7&tZzC{dJa8tS*s$SrY~g_rZOQ>62e3 zU0;6lX+W&-362h<#m}cXG&g8S2lxt6#+}nq^!(<*?(y5Tv&FA{+-MWr zc;NQm%7dqV`N;VEtGQeMKl@M3p07V%%s;00{?2bZ`~8N0%Iyz6UM_y!{qE!`TzBd} zEG~J!<+xb)#fLd&zkWVDdhJ``l=b(|#>d{1%bWkLIduQOui4U9Cx5%<^5FCI!={y! zW*wj5GkyNIxN~xE?RIV{msz@BXl3J8Ck3qs;g!1H}> zPwxn32nnPLuZd&|WDFe4TnoXc7yqxwsnXrd!m&op;14Uuv0lYB*>@iTvj&5wtDnm{ Hr-UW|RWx4~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/selector_bg_white_blue_bg_4_radius.xml b/app/src/main/res/drawable/selector_bg_white_blue_bg_4_radius.xml new file mode 100644 index 00000000..facbe9cb --- /dev/null +++ b/app/src/main/res/drawable/selector_bg_white_blue_bg_4_radius.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 071b3a81..18b5f885 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -133,7 +133,6 @@ app:layout_constraintRight_toRightOf="parent" tools:ignore="MissingConstraints"> - - - - + android:layout_height="match_parent"> + + + + + + - diff --git a/app/src/main/res/layout/text_item_select.xml b/app/src/main/res/layout/text_item_select.xml index 66dd87d4..7b161041 100644 --- a/app/src/main/res/layout/text_item_select.xml +++ b/app/src/main/res/layout/text_item_select.xml @@ -1,11 +1,20 @@ - + android:layout_height="wrap_content"> - \ No newline at end of file + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 0df40610..db336623 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -163,7 +163,8 @@ #999999 #FF3B30 #108ee9 - #2631DD + #2631DD + #FFF5F7FE #000000 #d1d1d1 @@ -171,5 +172,6 @@ #999999 #797979 #595959 + #FF3266F1 #c1c1c1 \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index cfdcea11..990c9d56 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -27,7 +27,7 @@ @@ -46,7 +46,7 @@