diff --git a/app/src/main/assets/omdb_config.json b/app/src/main/assets/omdb_config.json index a3937a5c..ce84ea34 100644 --- a/app/src/main/assets/omdb_config.json +++ b/app/src/main/assets/omdb_config.json @@ -5,6 +5,11 @@ "code": 2001, "name": "道路线" }, + "2002": { + "table": "OMDB_RD_LINK_FUNCTION_CLASS", + "code": 2002, + "name": "道路功能等级" + }, "2008": { "table": "OMDB_RD_LINK_KIND", "code": 2008, @@ -15,6 +20,51 @@ "code": 2010, "name": "道路方向" }, + "2019": { + "table": "OMDB_LINK_SPEEDLIMIT", + "code": 2019, + "name": "常规线限速" + }, + "2020": { + "table": "OMDB_LINK_SPEEDLIMIT_COND", + "code": 2020, + "name": "条件线限速" + }, + "2021": { + "table": "OMDB_LINK_SPEEDLIMIT_VAR", + "code": 2021, + "name": "可变线限速" + }, + "2022": { + "table": "OMDB_CON_ACCESS", + "code": 2022, + "name": "全封闭" + }, + "2037": { + "table": "OMDB_FORM_OF_WAY", + "code": 2037, + "name": "匝道" + }, + "2040": { + "table": "OMDB_MULTI_DIGITIZED", + "code": 2040, + "name": "上下线分离" + }, + "2041":{ + "table": "OMDB_LANE_NUM", + "code": 2041, + "name": "车道数" + }, + "2201":{ + "table": "OMDB_BRIDGE", + "code": 2201, + "name": "桥" + }, + "2202":{ + "table": "OMDB_TUNNEL", + "code": 2202, + "name": "隧道" + }, "4002": { "table": "OMDB_SPEEDLIMIT", "code": 4002, @@ -72,18 +122,36 @@ } ] }, + "4006":{ + "table": "OMDB_RESTRICTION", + "code": 4006, + "name": "普通交限", + "transformer": [ + { + "k": "geometry", + "v": "~", + "klib": "geometry", + "vlib": "translateRight()" + } + ] + }, + "4022": { + "table": "OMDB_TRAFFICLIGHT", + "code": 4022, + "name": "交通灯", + "transformer": [ + { + "k": "angle", + "v": "~", + "klib": "angle", + "vlib": "0" + } + ] + }, "5001":{ "table": "OMDB_LANE_LINK_LG", "code": 5001, "name": "车道中心线" - }, - "2041":{ - "table": "OMDB_LANE_NUM", - "code": 2041, - "name": "车道数", - "transformer": [ - - ] } } } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/Constant.kt b/app/src/main/java/com/navinfo/omqs/Constant.kt index da0dca8c..ed6d845b 100644 --- a/app/src/main/java/com/navinfo/omqs/Constant.kt +++ b/app/src/main/java/com/navinfo/omqs/Constant.kt @@ -75,7 +75,7 @@ class Constant { const val SELECT_TAKEPHOTO_OR_RECORD = "select_takephoto_or_record" const val OMDB_CONFIG = "omdb_config.json" - const val OTHER_CONFIG = "other.config" + const val OTHER_CONFIG = "other_config.json" val OMDB_LAYER_VISIBLE_LIST: MutableList = mutableListOf() // 记录OMDB数据显示的图层名称列表 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 597ee5bd..c921dde6 100644 --- a/app/src/main/java/com/navinfo/omqs/bean/SignBean.kt +++ b/app/src/main/java/com/navinfo/omqs/bean/SignBean.kt @@ -6,7 +6,7 @@ import kotlinx.parcelize.Parcelize @Parcelize data class SignBean( //图标ID - val iconId: Int, + var iconId: Int = 0, //定位点到目标距离 val distance: Int = 0, //图表中的问题 @@ -17,8 +17,8 @@ data class SignBean( val linkId: String, //坐标 val geometry: String, - //底部文字 - val bottomText: String, + //名称 + val name: String, //底部右侧文字 val bottomRightText: String, //要素code类型 diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt index bfbd5c4e..720fd20b 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt @@ -182,9 +182,9 @@ class LoginViewModel @Inject constructor( Realm.setDefaultConfiguration(config) // 拷贝配置文件到用户目录下 val omdbConfigFile = File(userFolder.absolutePath, Constant.OMDB_CONFIG); - if (!omdbConfigFile.exists()) { +// if (!omdbConfigFile.exists()) { ResourceUtils.copyFileFromAssets(Constant.OMDB_CONFIG, omdbConfigFile.absolutePath) - } +// } } /** diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt index 0fcc1677..8fe8c4f9 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt @@ -12,6 +12,7 @@ import androidx.databinding.DataBindingUtil import androidx.lifecycle.lifecycleScope import androidx.navigation.findNavController import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import com.blankj.utilcode.util.SPStaticUtils import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -23,6 +24,7 @@ import com.navinfo.omqs.databinding.ActivityMainBinding import com.navinfo.omqs.http.offlinemapdownload.OfflineMapDownloadManager import com.navinfo.omqs.tools.LayerConfigUtils import com.navinfo.omqs.ui.activity.BaseActivity +import com.navinfo.omqs.ui.widget.RecycleViewDivider import com.navinfo.omqs.util.FlowEventBus import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch @@ -52,14 +54,13 @@ class MainActivity : BaseActivity() { findNavController(R.id.main_activity_right_fragment) } + /** + * 提前显示要素看板 + */ private val signAdapter by lazy { SignAdapter { position, signBean -> -// val directions = -// EmptyFragmentDirections.emptyFragmentToEvaluationResultFragment( -// ) -// rightController.navigate(directions) rightController.currentDestination?.let { - if (it.id == R.id.EmptyFragment) { + if (it.id == R.id.RightEmptyFragment) { val bundle = Bundle() bundle.putParcelable("SignBean", signBean) rightController.navigate(R.id.EvaluationResultFragment, bundle) @@ -68,6 +69,22 @@ class MainActivity : BaseActivity() { } } + /** + * 道路信息看板 + */ + private val topSignAdapter by lazy { + TopSignAdapter { position, signBean -> + rightController.currentDestination?.let { + if (it.id == R.id.RightEmptyFragment) { + val bundle = Bundle() + bundle.putParcelable("SignBean", signBean) + rightController.navigate(R.id.EvaluationResultFragment, bundle) + } + } + } + } + + override fun onCreate(savedInstanceState: Bundle?) { WindowCompat.setDecorFitsSystemWindows(window, false) super.onCreate(savedInstanceState) @@ -125,6 +142,18 @@ class MainActivity : BaseActivity() { } + //道路属性面板 + binding.mainActivityTopSignRecyclerview.layoutManager = LinearLayoutManager( + this, + RecyclerView.HORIZONTAL, false + ) +// binding.mainActivityTopSignRecyclerview.addItemDecoration( +// RecycleViewDivider(this, LinearLayoutManager.HORIZONTAL) +// ) + binding.mainActivityTopSignRecyclerview.adapter = topSignAdapter + + + //提前显示面板 binding.mainActivitySignRecyclerview.layoutManager = LinearLayoutManager(this) binding.mainActivitySignRecyclerview.adapter = signAdapter //增加4dp的间隔 @@ -139,6 +168,10 @@ class MainActivity : BaseActivity() { signAdapter.refreshData(it) } + viewModel.liveDataTopSignList.observe(this) { + topSignAdapter.refreshData(it) + } + lifecycleScope.launch { // 初始化地图图层控制接收器 FlowEventBus.subscribe>( @@ -243,7 +276,7 @@ class MainActivity : BaseActivity() { } /** - * + *展开或收起右侧面板 */ fun onSwitchFragment() { switchFragment = !switchFragment @@ -255,6 +288,13 @@ class MainActivity : BaseActivity() { } } + /** + * 隐藏或显示右侧展开按钮 + */ + fun setRightSwitchButton(visibility: Int) { + binding.mainActivityFragmentSwitch.visibility = visibility + } + /** * 点击录音按钮 */ 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 b01a0cc3..141cae55 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 @@ -67,9 +67,12 @@ class MainViewModel @Inject constructor( //地图点击捕捉到的质检数据ID列表 val liveDataQsRecordIdList = MutableLiveData>() - //看板数据 + //左侧看板数据 val liveDataSignList = MutableLiveData>() + //顶部看板数据 + val liveDataTopSignList = MutableLiveData>() + // var testPoint = GeoPoint(0, 0) //语音窗体 @@ -150,8 +153,7 @@ class MainViewModel @Inject constructor( // location.latitude = testPoint.latitude val geometry = GeometryTools.createGeometry( GeoPoint( - location.latitude, - location.longitude + location.latitude, location.longitude ) ) val tileX = RealmSet() @@ -176,8 +178,7 @@ class MainViewModel @Inject constructor( mapController.locationLayerHandler.niLocationFlow.collectLatest { location -> // location.longitude = testPoint.longitude // location.latitude = testPoint.latitude - if (!isSelectRoad()) - captureLink(GeoPoint(location.latitude, location.longitude)) + if (!isSelectRoad()) captureLink(GeoPoint(location.latitude, location.longitude)) } } @@ -196,6 +197,8 @@ class MainViewModel @Inject constructor( ) //看板数据 val signList = mutableListOf() + val topSignList = mutableListOf() + if (linkList.isNotEmpty()) { val link = linkList[0] val linkId = link.properties[RenderEntity.Companion.LinkTable.linkPid] @@ -204,27 +207,36 @@ class MainViewModel @Inject constructor( var elementList = realmOperateHelper.queryLinkByLinkPid(it) for (element in elementList) { val distance = GeometryTools.distanceToDouble( - point, - GeometryTools.createGeoPoint(element.geometry) + point, GeometryTools.createGeoPoint(element.geometry) ) - signList.add( - SignBean( - iconId = SignUtil.getSignIcon(element), - iconText = SignUtil.getSignIconText(element), - distance = distance.toInt(), - elementId = element.id, - linkId = linkId, - geometry = element.geometry, - bottomText = SignUtil.getSignBottomText(element), - bottomRightText = SignUtil.getSignBottomRightText(element), - elementCode = element.code + + val signBean = SignBean( + iconId = SignUtil.getSignIcon(element), + iconText = SignUtil.getSignIconText(element), + distance = distance.toInt(), + elementId = element.id, + linkId = linkId, + geometry = element.geometry, + name = SignUtil.getSignNameText(element), + bottomRightText = SignUtil.getSignBottomRightText(element), + elementCode = element.code + ) + + when (element.code) { + 2041, 2008, 2010 -> topSignList.add( + signBean ) - ) + else -> signList.add( + signBean + ) + } + } } } - liveDataSignList.postValue(signList) + liveDataTopSignList.postValue(topSignList.distinctBy { it.elementCode }) + liveDataSignList.postValue(signList.distinctBy { it.elementCode }) Log.e("jingo", "自动捕捉数据 共${signList.size}条") } } @@ -374,8 +386,7 @@ class MainViewModel @Inject constructor( if (layerConfigList != null && !layerConfigList.isEmpty()) { val omdbVisibleList = layerConfigList.filter { importConfig -> importConfig.tableGroupName == "OMDB数据" - }.first().tableMap.filter { - entry -> + }.first().tableMap.filter { entry -> val tableInfo = entry.value !tableInfo.checked }.map { entry -> @@ -414,7 +425,7 @@ class MainViewModel @Inject constructor( // } // } when (navDestination.id) { - R.id.EmptyFragment -> { + R.id.RightEmptyFragment -> { if (list.size == 1) { val bundle = Bundle() bundle.putString("QsId", list[0]) 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 1d8e4778..fb78a41e 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 @@ -23,9 +23,10 @@ class SignAdapter(private var itemListener: ((Int, SignBean) -> Unit?)? = null) override fun onBindViewHolder(holder: BaseViewHolder, position: Int) { val bd = holder.viewBinding as AdapterSignBinding val item = data[position] - bd.signMainIcon.background = holder.viewBinding.root.context.getDrawable(item.iconId) + if (item.iconId != 0) + bd.signMainIcon.background = holder.viewBinding.root.context.getDrawable(item.iconId) bd.signMainIcon.text = item.iconText - bd.signBottomText.text = item.bottomText + bd.signBottomText.text = item.name bd.signBottomRightText.text = item.bottomRightText bd.root.setOnClickListener { itemListener?.invoke(position, item) diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/TopSignAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/TopSignAdapter.kt new file mode 100644 index 00000000..0ed1ba72 --- /dev/null +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/TopSignAdapter.kt @@ -0,0 +1,65 @@ +package com.navinfo.omqs.ui.activity.map + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import com.navinfo.omqs.R +import com.navinfo.omqs.bean.SignBean +import com.navinfo.omqs.databinding.AdapterTopSignBinding +import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter +import com.navinfo.omqs.ui.other.BaseViewHolder + +class TopSignAdapter(private var itemListener: ((Int, SignBean) -> Unit?)? = null) : + BaseRecyclerViewAdapter() { + override fun getItemViewRes(position: Int): Int { + return R.layout.adapter_top_sign + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseViewHolder { + val viewBinding = + AdapterTopSignBinding.inflate(LayoutInflater.from(parent.context), parent, false) + return BaseViewHolder(viewBinding) + } + + override fun onBindViewHolder(holder: BaseViewHolder, position: Int) { + val bd = holder.viewBinding as AdapterTopSignBinding + val item = data[position] + if (item.iconId != 0) + bd.topSignText.background = holder.viewBinding.root.context.getDrawable(item.iconId) + bd.topSignName.text = item.name + bd.topSignText.text = item.iconText + if (data.size == 1) { + bd.topSignLeftLine.visibility = View.GONE + bd.topSignRightLine.visibility = View.GONE + bd.topSignName.background = + holder.viewBinding.root.context.getDrawable(R.drawable.shape_road_info_top_bg) + bd.topSignText.background = + holder.viewBinding.root.context.getDrawable(R.drawable.shape_road_info_bottom_bg) + } else if (position == 0) { + bd.topSignLeftLine.visibility = View.GONE + bd.topSignRightLine.visibility = View.VISIBLE + bd.topSignName.background = + holder.viewBinding.root.context.getDrawable(R.drawable.shape_road_info_left_top_bg) + bd.topSignText.background = + holder.viewBinding.root.context.getDrawable(R.drawable.shape_road_info_left_bottom_bg) + } else if (position == data.size - 1) { + bd.topSignLeftLine.visibility = View.VISIBLE + bd.topSignRightLine.visibility = View.GONE + bd.topSignName.background = + holder.viewBinding.root.context.getDrawable(R.drawable.shape_road_info_right_top_bg) + bd.topSignText.background = + holder.viewBinding.root.context.getDrawable(R.drawable.shape_road_info_right_bottom_bg) + } else { + bd.topSignLeftLine.visibility = View.VISIBLE + bd.topSignRightLine.visibility = View.VISIBLE + bd.topSignName.background = + holder.viewBinding.root.context.getDrawable(R.drawable.shape_road_info_middle_top_bg) + bd.topSignText.background = + holder.viewBinding.root.context.getDrawable(R.drawable.shape_road_info_middle_bottom_bg) + } + + bd.root.setOnClickListener { + itemListener?.invoke(position, item) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/empty/EmptyFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/empty/EmptyFragment.kt index 9128a761..68bb7136 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/empty/EmptyFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/empty/EmptyFragment.kt @@ -5,13 +5,17 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import androidx.navigation.fragment.findNavController +import com.navinfo.omqs.R import com.navinfo.omqs.databinding.FragmentEmptyBinding +import com.navinfo.omqs.ui.activity.map.MainActivity -class EmptyFragment :Fragment(){ +class EmptyFragment : Fragment() { private var _binding: FragmentEmptyBinding? = null - + private var currentDestinationLabel = "" private val binding get() = _binding!! -// private val viewModel by lazy { viewModels().value} + + // private val viewModel by lazy { viewModels().value} override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? @@ -25,6 +29,22 @@ class EmptyFragment :Fragment(){ super.onViewCreated(view, savedInstanceState) } + override fun onStart() { + super.onStart() + val currentDestination = findNavController().currentDestination + if (currentDestination?.label == "右侧空页面") { + currentDestinationLabel = "右侧空页面" + (activity as MainActivity).setRightSwitchButton(View.GONE) + } + } + + override fun onStop() { + super.onStop() + if (currentDestinationLabel == "右侧空页面") { + (activity as MainActivity).setRightSwitchButton(View.VISIBLE) + } + } + override fun onDestroyView() { super.onDestroyView() _binding = null 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 919b088b..4e811b25 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 @@ -103,7 +103,7 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener { * 读取元数据 */ // val id = args.qsId - var id: String = "" + var id = "" var signBean: SignBean? = null var filePath: String = "" arguments?.let { @@ -235,7 +235,7 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener { val controller = findNavController(R.id.main_activity_middle_fragment) controller.currentDestination?.let { //如果之前页面是空fragment,直接打开面板 - if (it.id == R.id.EmptyFragment) { + if (it.id == R.id.MiddleEmptyFragment) { findNavController( R.id.main_activity_middle_fragment ).navigate(R.id.PhenomenonFragment) @@ -258,7 +258,7 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener { val controller = findNavController(R.id.main_activity_middle_fragment) controller.currentDestination?.let { //如果之前页面是空fragment,直接打开面板 - if (it.id == R.id.EmptyFragment) { + if (it.id == R.id.MiddleEmptyFragment) { findNavController( R.id.main_activity_middle_fragment ).navigate(R.id.ProblemLinkFragment) @@ -282,13 +282,13 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener { } fun voiceOnTouchStart() { - viewModel!!.startSoundMetter(requireActivity(), binding.evaluationVoice) + viewModel.startSoundMetter(requireActivity(), binding.evaluationVoice) } @RequiresApi(Build.VERSION_CODES.Q) fun voiceOnTouchStop() { if (Constant.IS_VIDEO_SPEED) { - viewModel!!.stopSoundMeter() + viewModel.stopSoundMeter() } } 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 29fd71db..01e93419 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 @@ -64,7 +64,7 @@ class EvaluationResultViewModel @Inject constructor( /** * 问题类型 liveData 给[MiddleAdapter]展示的数据 */ - val liveDataMiddleTypeList = MutableLiveData>() +// val liveDataMiddleTypeList = MutableLiveData>() /** * 问题现象 liveData 给[RightGroupHeaderAdapter]展示的数据 @@ -190,19 +190,22 @@ class EvaluationResultViewModel @Inject constructor( list?.let { if (list.isNotEmpty()) { //通知页面更新 + var classType = list[0] liveDataLeftTypeList.postValue(it) - var classType = it[0] if (bean != null) { val classType2 = roomAppDatabase.getScProblemTypeDao() .findClassTypeByCode(bean.elementCode) - if (classType2 != null) + if (classType2 != null) { classType = classType2 + } } //如果右侧栏没数据,给个默认值 if (liveDataQsRecordBean.value!!.classType.isEmpty()) { liveDataQsRecordBean.value!!.classType = classType classTypeTemp = classType + } else { + classType = liveDataQsRecordBean.value!!.classType } getProblemList(classType) } @@ -240,7 +243,7 @@ class EvaluationResultViewModel @Inject constructor( Log.e("jingo", "getProblemLinkList ${rightList[0].text}") } liveDataQsRecordBean.postValue(liveDataQsRecordBean.value) - liveDataMiddleTypeList.postValue(middleList) +// liveDataMiddleTypeList.postValue(middleList) liveDataRightTypeList.postValue(rightList) } } @@ -272,7 +275,7 @@ class EvaluationResultViewModel @Inject constructor( liveDataQsRecordBean.value!!.problemType = typeTitleList[0] Log.e("jingo", "getProblemList ${typeTitleList[0]}") } - liveDataMiddleTypeList.postValue(typeTitleList) +// liveDataMiddleTypeList.postValue(typeTitleList) if (liveDataQsRecordBean.value!!.phenomenon.isEmpty()) { liveDataQsRecordBean.value!!.phenomenon = phenomenonRightList[0].text Log.e("jingo", "getProblemList ${phenomenonRightList[0].text}") @@ -313,7 +316,7 @@ class EvaluationResultViewModel @Inject constructor( fun saveData() { viewModelScope.launch(Dispatchers.IO) { val realm = Realm.getDefaultInstance() - liveDataQsRecordBean.value!!.checkTime = DateTimeUtil.getDataTime() + liveDataQsRecordBean.value!!.checkTime = DateTimeUtil.getDataTime() realm.executeTransaction { it.copyToRealmOrUpdate(liveDataQsRecordBean.value) } @@ -444,7 +447,6 @@ class EvaluationResultViewModel @Inject constructor( Constant.IS_VIDEO_SPEED = true //录音动画 - //录音动画 if (pop != null) { pop!!.showAtLocation(v, Gravity.CENTER, 0, 0) } 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 4b30dd25..9235fb61 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 @@ -28,13 +28,7 @@ class LeftAdapter(private var itemListener: ((Int, String) -> Unit?)? = null) : val bd = holder.viewBinding as TextItemSelectBinding val title = data[position] bd.itemId.text = title - if (selectTitle == title) { - bd.itemId.setBackgroundResource(R.drawable.shape_rect_white_2dp_bg) - bd.itemId.setTextColor(holder.viewBinding.root.context.getColor(R.color.highFontColor)) - } else { - bd.itemId.setBackgroundResource(R.drawable.shape_rect_white_2dp_bg) - bd.itemId.setTextColor(holder.viewBinding.root.context.getColor(R.color.black)) - } + holder.viewBinding.root.isSelected = selectTitle == title bd.root.setOnClickListener { if (selectTitle != title) { selectTitle = title @@ -50,10 +44,9 @@ class LeftAdapter(private var itemListener: ((Int, String) -> Unit?)? = null) : notifyDataSetChanged() } - fun setRightTitle(title: String) { + fun setSelectTitle(title: String) { if (title != selectTitle) { selectTitle = title - notifyDataSetChanged() } } } \ No newline at end of file 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 4958f2e0..0b5c7206 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 @@ -6,9 +6,12 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.navigation.findNavController +import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.OnScrollListener +import com.navinfo.omqs.R import com.navinfo.omqs.databinding.FragmentPhenomenonBinding import com.navinfo.omqs.ui.fragment.BaseFragment import com.navinfo.omqs.ui.other.shareViewModels @@ -19,6 +22,7 @@ class PhenomenonFragment : BaseFragment() { private var _binding: FragmentPhenomenonBinding? = null private val binding get() = _binding!! + /** * 和[PhenomenonFragment],[ProblemLinkFragment],[EvaluationResultFragment]共用同一个viewModel */ @@ -50,6 +54,7 @@ class PhenomenonFragment : binding.phenomenonLeftRecyclerview.adapter = leftAdapter //左侧菜单查询结果监听 viewModel.liveDataLeftTypeList.observe(viewLifecycleOwner) { + leftAdapter.setSelectTitle(viewModel.liveDataQsRecordBean.value!!.classType) leftAdapter.refreshData(it) } @@ -63,6 +68,9 @@ class PhenomenonFragment : */ val rightAdapter = RightGroupHeaderAdapter { _, bean -> viewModel.setPhenomenonMiddleBean(bean) + if (activity != null) { + requireActivity().findNavController(R.id.main_activity_middle_fragment).navigateUp() + } } binding.phenomenonRightRecyclerview.adapter = rightAdapter //右侧菜单增加组标题 @@ -75,6 +83,7 @@ class PhenomenonFragment : } //右侧菜单查询数据监听 viewModel.liveDataRightTypeList.observe(viewLifecycleOwner) { + rightAdapter.setSelectTitle(viewModel.liveDataQsRecordBean.value!!.classType) rightAdapter.refreshData(it) } @@ -106,15 +115,15 @@ class PhenomenonFragment : }) - //中间菜单 - binding.phenomenonMiddleRecyclerview.setHasFixedSize(true) - binding.phenomenonMiddleRecyclerview.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false) - - binding.phenomenonMiddleRecyclerview.adapter = middleAdapter +// //中间菜单 +// binding.phenomenonMiddleRecyclerview.setHasFixedSize(true) +// binding.phenomenonMiddleRecyclerview.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false) +// +// binding.phenomenonMiddleRecyclerview.adapter = middleAdapter //中间侧菜单查询结果监听 - viewModel.liveDataMiddleTypeList.observe(viewLifecycleOwner) { - middleAdapter.refreshData(it) - } +// viewModel.liveDataMiddleTypeList.observe(viewLifecycleOwner) { +// middleAdapter.refreshData(it) +// } // binding.phenomenonDrawer.setOnClickListener { // when (binding.group.visibility) { // View.INVISIBLE, View.GONE -> diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/ProblemLinkFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/ProblemLinkFragment.kt index 0bdc6225..878cb446 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/ProblemLinkFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/ProblemLinkFragment.kt @@ -75,14 +75,14 @@ class ProblemLinkFragment : BaseFragment() { } }) - //中间菜单 - binding.linkMiddleRecyclerview.setHasFixedSize(true) - binding.linkMiddleRecyclerview.layoutManager = LinearLayoutManager(requireContext()) - binding.linkMiddleRecyclerview.adapter = middleAdapter +// //中间菜单 +// binding.linkMiddleRecyclerview.setHasFixedSize(true) +// binding.linkMiddleRecyclerview.layoutManager = LinearLayoutManager(requireContext()) +// binding.linkMiddleRecyclerview.adapter = middleAdapter //中间侧菜单查询结果监听 - viewModel.liveDataMiddleTypeList.observe(viewLifecycleOwner) { - middleAdapter.refreshData(it) - } +// viewModel.liveDataMiddleTypeList.observe(viewLifecycleOwner) { +// middleAdapter.refreshData(it) +// } binding.linkDrawer.setOnClickListener { when (binding.group.visibility) { View.INVISIBLE, View.GONE -> diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/RightGroupHeaderAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/RightGroupHeaderAdapter.kt index d2d77b76..d0dd4de4 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/RightGroupHeaderAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/RightGroupHeaderAdapter.kt @@ -3,27 +3,35 @@ package com.navinfo.omqs.ui.fragment.evaluationresult import android.view.LayoutInflater import android.view.ViewGroup import com.navinfo.omqs.R -import com.navinfo.omqs.databinding.TextItemSelectBinding +import com.navinfo.omqs.databinding.TextItemSelect2Binding import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter import com.navinfo.omqs.ui.other.BaseViewHolder class RightGroupHeaderAdapter(private var itemListener: ((Int, RightBean) -> Unit?)? = null) : BaseRecyclerViewAdapter() { + private var selectTitle = "" private var groupTitleList = mutableListOf() override fun getItemViewRes(position: Int): Int { - return R.layout.text_item_select + return R.layout.text_item_select2 } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseViewHolder { val viewBinding = - TextItemSelectBinding.inflate(LayoutInflater.from(parent.context), parent, false) + TextItemSelect2Binding.inflate(LayoutInflater.from(parent.context), parent, false) return BaseViewHolder(viewBinding) } override fun onBindViewHolder(holder: BaseViewHolder, position: Int) { - val bd = holder.viewBinding as TextItemSelectBinding - bd.itemId.text = data[position].text + val bd = holder.viewBinding as TextItemSelect2Binding + val title = data[position].text + bd.itemId.text = title + + holder.viewBinding.root.isSelected = selectTitle == title bd.root.setOnClickListener { + if (selectTitle != title) { + selectTitle = title + notifyDataSetChanged() + } itemListener?.invoke(position, data[position]) } } @@ -86,7 +94,6 @@ class RightGroupHeaderAdapter(private var itemListener: ((Int, RightBean) -> Uni } override fun refreshData(newData: List) { - super.refreshData(newData) groupTitleList.clear() for (item in newData) { if (groupTitleList.size > 0) { @@ -97,7 +104,15 @@ class RightGroupHeaderAdapter(private var itemListener: ((Int, RightBean) -> Uni groupTitleList.add(item.title) } } + super.refreshData(newData) } - + /** + * 设置当前选中的哪条数据 + */ + fun setSelectTitle(title: String) { + if (title != selectTitle) { + selectTitle = title + } + } } \ No newline at end of file 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 fd536bd0..13b6fad4 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 @@ -40,7 +40,7 @@ class RightGroupHeaderDecoration(context: Context) : ItemDecoration() { mTextPaint.textSize = 46f mTextPaint.color = Color.WHITE mLinePaint = Paint(Paint.ANTI_ALIAS_FLAG) - mLinePaint.color = Color.GRAY + mLinePaint.color = Color.WHITE } /** diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt index 52b16caa..1e5e5a81 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt @@ -111,7 +111,7 @@ class PersonalCenterFragment : BaseFragment(), FSAFActivityCallbacks { viewModel.readRealmData() // 定位到指定位置 niMapController.mMapView.vtmMap.animator() - .animateTo(GeoPoint(30.26491197757836, 113.8408333015833 )) + .animateTo(GeoPoint(28.724637921467508 ,115.83412668023867 )) } R.id.personal_center_menu_task_list -> { findNavController().navigate(R.id.TaskManagerFragment) 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 78735c96..e27f5868 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,32 +12,67 @@ class SignUtil { */ fun getSignIconText(data: RenderEntity): String { return when (data.code) { + //道路功能等级 + 2002 -> getLinkFunctionClassText(data) + //道路种别 + 2008 -> getKindText(data) + //道路方向 + 2010 -> getRoadDirectionText(data) + //车道数 + 2041 -> getLaneNumText(data) //常规点限速,条件点限速 4002, 4003 -> getSpeedLimitText(data) -// //道路种别 -// 2008 -> getKindCodeIcon(data) -// //道路方向 -// 2010 -> getRoadDirection(data) -// //车道数 -// 2041 -> getLaneNumIcon(data) else -> "" } } - fun getSignBottomText(data: RenderEntity): String { + /** + *获取道路功能等级文字 + */ + private fun getLinkFunctionClassText(data: RenderEntity): String { + return "等级${data.properties["functionClass"]}" + } + + /** + * 获取道路方向文字 + */ + private fun getRoadDirectionText(data: RenderEntity): String { + val direct = data.properties["direct"] + when (direct?.toInt()) { + 0 -> return "不应用" + 1 -> return "双方向" + 2 -> return "顺方向" + 3 -> return "逆方向" + } + return "" + } + + /** + * 获取车道数展示文字 + */ + private fun getLaneNumText(data: RenderEntity): String { + return "${data.properties["laneNum"]}|${data.properties["laneS2e"]}|${data.properties["laneE2s"]}" + } + + /** + * 获取要素名称 + */ + fun getSignNameText(data: RenderEntity): String { return when (data.code) { - //可变点限速 - 4004 -> "可变点限速" + //道路功能等级 + 2002 -> "功能等级" + //道路种别 + 2008 -> "种别" + //道路方向 + 2010 -> "方向" + //车道数 + 2041 -> "车道数" //常规点限速 4002 -> "常规点限速" //常点限速 4003 -> "条件点限速" - //道路种别 - 2008 -> "道路种别" - //道路方向 - 2010 -> "道路方向" - //车道数 - 2041 -> "车道数" + //可变点限速 + 4004 -> "可变点限速" else -> "" } } @@ -56,8 +91,7 @@ class SignUtil { /** * 条件点限速文字 */ - - fun getConditionLimitText(data: RenderEntity): String { + private fun getConditionLimitText(data: RenderEntity): String { var stringBuffer = StringBuffer() try { val dependent = data.properties["speedDependent"] @@ -118,10 +152,17 @@ class SignUtil { return "" } + /** + * 获取种别名称 + */ + private fun getKindText(data: RenderEntity): String { + return data.properties["kind"].toString() + } + /** * 限速图标 */ - fun getSpeedLimitIcon(data: RenderEntity): Int { + private fun getSpeedLimitIcon(data: RenderEntity): Int { try { //限速标志 0 限速开始 1 限速解除 return when (data.properties["speed_flag"]) { @@ -131,7 +172,23 @@ class SignUtil { } catch (e: Exception) { Log.e("jingo", "获取限速面板ICON出错2 $e") } - return R.drawable.icon_speed_limit + return 0 + } + + /** + * 条件限速图标 + */ + private fun getConditionalSpeedLimitIcon(data: RenderEntity): Int { + try { + //限速标志 0 限速开始 1 限速解除 + return when (data.properties["speed_flag"]) { + "1" -> return R.drawable.icon_conditional_speed_limit_off + else -> return R.drawable.icon_conditional_speed_limit + } + } catch (e: Exception) { + Log.e("jingo", "获取限速面板ICON出错2 $e") + } + return 0 } /** @@ -140,17 +197,19 @@ class SignUtil { fun getSignIcon(data: RenderEntity): Int { return when (data.code) { - //道路种别 - 2008 -> getKindCodeIcon(data) - //道路方向 - 2010 -> getRoadDirection(data) - //车道数 - 2041 -> getLaneNumIcon(data) - //限速 - 4002, 4003 -> getSpeedLimitIcon(data) +// //道路种别 +// 2008 -> getKindCodeIcon(data) +// //道路方向 +// 2010 -> getRoadDirection(data) +// //车道数 +// 2041 -> getLaneNumIcon(data) + //普通点限速 + 4002 -> getSpeedLimitIcon(data) + //条件点限速 + 4003 -> getConditionalSpeedLimitIcon(data) //可变点限速 4004 -> R.drawable.icon_change_limit - else -> R.drawable.icon_speed_limit + else -> 0 } } @@ -159,7 +218,7 @@ class SignUtil { /** * 获取种别图标 */ - fun getKindCodeIcon(data: RenderEntity): Int { + private fun getKindCodeIcon(data: RenderEntity): Int { try { val kind = data.properties["kind"] return when (kind!!.toInt()) { @@ -186,7 +245,7 @@ class SignUtil { /** * 获取到路线 */ - fun getLaneNumIcon(data: RenderEntity): Int { + private fun getLaneNumIcon(data: RenderEntity): Int { try { val lineNum = data.properties["laneNum"] return when (lineNum!!.toInt()) { @@ -210,7 +269,7 @@ class SignUtil { return R.drawable.icon_road_direction } - fun getRoadDirection(data: RenderEntity): Int { + private fun getRoadDirection(data: RenderEntity): Int { try { val direct = data.properties["direct"] return when (direct!!.toInt()) { diff --git a/app/src/main/res/color/selector_black_blue_color.xml b/app/src/main/res/color/selector_black_blue_color.xml new file mode 100644 index 00000000..aa4e0cf4 --- /dev/null +++ b/app/src/main/res/color/selector_black_blue_color.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-xxhdpi/icon_conditional_speed_limit.png b/app/src/main/res/drawable-xxhdpi/icon_conditional_speed_limit.png new file mode 100644 index 00000000..cd25b3c6 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_conditional_speed_limit.png differ diff --git a/app/src/main/res/drawable-xxhdpi/icon_conditional_speed_limit_off.png b/app/src/main/res/drawable-xxhdpi/icon_conditional_speed_limit_off.png new file mode 100644 index 00000000..8b1cc8a1 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_conditional_speed_limit_off.png differ diff --git a/app/src/main/res/drawable-xxhdpi/icon_fragment_switch_off.png b/app/src/main/res/drawable-xxhdpi/icon_fragment_switch_off.png index 269d46e0..40d208da 100644 Binary files a/app/src/main/res/drawable-xxhdpi/icon_fragment_switch_off.png and b/app/src/main/res/drawable-xxhdpi/icon_fragment_switch_off.png differ diff --git a/app/src/main/res/drawable-xxhdpi/icon_fragment_switch_on.png b/app/src/main/res/drawable-xxhdpi/icon_fragment_switch_on.png index 61e70310..494046a6 100644 Binary files a/app/src/main/res/drawable-xxhdpi/icon_fragment_switch_on.png and b/app/src/main/res/drawable-xxhdpi/icon_fragment_switch_on.png differ diff --git a/app/src/main/res/drawable-xxhdpi/icon_traffic_light.png b/app/src/main/res/drawable-xxhdpi/icon_traffic_light.png new file mode 100644 index 00000000..9dda4515 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_traffic_light.png differ diff --git a/app/src/main/res/drawable/selector_adapter_item_select_text.xml b/app/src/main/res/drawable/selector_adapter_item_select_text.xml new file mode 100644 index 00000000..7efb8886 --- /dev/null +++ b/app/src/main/res/drawable/selector_adapter_item_select_text.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/selector_text_drawable_left_white_blue.xml b/app/src/main/res/drawable/selector_text_drawable_left_white_blue.xml new file mode 100644 index 00000000..dbe0e770 --- /dev/null +++ b/app/src/main/res/drawable/selector_text_drawable_left_white_blue.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_middle_fragment_bg.xml b/app/src/main/res/drawable/shape_middle_fragment_bg.xml index 593ef0c2..fda3245c 100644 --- a/app/src/main/res/drawable/shape_middle_fragment_bg.xml +++ b/app/src/main/res/drawable/shape_middle_fragment_bg.xml @@ -1,19 +1,19 @@ - - - - - + diff --git a/app/src/main/res/drawable/shape_road_info_bottom_bg.xml b/app/src/main/res/drawable/shape_road_info_bottom_bg.xml new file mode 100644 index 00000000..3a690786 --- /dev/null +++ b/app/src/main/res/drawable/shape_road_info_bottom_bg.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_road_info_left_bottom_bg.xml b/app/src/main/res/drawable/shape_road_info_left_bottom_bg.xml new file mode 100644 index 00000000..b8db35ee --- /dev/null +++ b/app/src/main/res/drawable/shape_road_info_left_bottom_bg.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_road_info_left_top_bg.xml b/app/src/main/res/drawable/shape_road_info_left_top_bg.xml new file mode 100644 index 00000000..f0ea7f27 --- /dev/null +++ b/app/src/main/res/drawable/shape_road_info_left_top_bg.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_road_info_middle_bottom_bg.xml b/app/src/main/res/drawable/shape_road_info_middle_bottom_bg.xml new file mode 100644 index 00000000..96872836 --- /dev/null +++ b/app/src/main/res/drawable/shape_road_info_middle_bottom_bg.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_road_info_middle_top_bg.xml b/app/src/main/res/drawable/shape_road_info_middle_top_bg.xml new file mode 100644 index 00000000..84915e8e --- /dev/null +++ b/app/src/main/res/drawable/shape_road_info_middle_top_bg.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_road_info_right_bottom_bg.xml b/app/src/main/res/drawable/shape_road_info_right_bottom_bg.xml new file mode 100644 index 00000000..37def0d9 --- /dev/null +++ b/app/src/main/res/drawable/shape_road_info_right_bottom_bg.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_road_info_right_top_bg.xml b/app/src/main/res/drawable/shape_road_info_right_top_bg.xml new file mode 100644 index 00000000..e121e516 --- /dev/null +++ b/app/src/main/res/drawable/shape_road_info_right_top_bg.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_road_info_top_bg.xml b/app/src/main/res/drawable/shape_road_info_top_bg.xml new file mode 100644 index 00000000..bd4a5538 --- /dev/null +++ b/app/src/main/res/drawable/shape_road_info_top_bg.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index d61ad0ba..dbb9e2a5 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -51,6 +51,14 @@ app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> + diff --git a/app/src/main/res/layout/adapter_top_sign.xml b/app/src/main/res/layout/adapter_top_sign.xml new file mode 100644 index 00000000..e2a492ed --- /dev/null +++ b/app/src/main/res/layout/adapter_top_sign.xml @@ -0,0 +1,54 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_phenomenon.xml b/app/src/main/res/layout/fragment_phenomenon.xml index 1f936a86..50b235c1 100644 --- a/app/src/main/res/layout/fragment_phenomenon.xml +++ b/app/src/main/res/layout/fragment_phenomenon.xml @@ -18,31 +18,30 @@ - + + + + + + + + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/layout/text_item_select.xml b/app/src/main/res/layout/text_item_select.xml index 7b161041..a68151b7 100644 --- a/app/src/main/res/layout/text_item_select.xml +++ b/app/src/main/res/layout/text_item_select.xml @@ -1,20 +1,21 @@ + android:layout_height="wrap_content" + android:background="@drawable/selector_adapter_item_select_bg"> + android:padding="4dp" + android:drawablePadding="10dp" + android:drawableLeft="@drawable/selector_text_drawable_left_white_blue" + android:textColor="@color/selector_black_blue_color" + android:textSize="14sp"/> - \ No newline at end of file diff --git a/app/src/main/res/layout/text_item_select2.xml b/app/src/main/res/layout/text_item_select2.xml new file mode 100644 index 00000000..042e9008 --- /dev/null +++ b/app/src/main/res/layout/text_item_select2.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/navigation/middle_fragment_nav_graph.xml b/app/src/main/res/navigation/middle_fragment_nav_graph.xml index 8ff5bb4d..ef0d0a1d 100644 --- a/app/src/main/res/navigation/middle_fragment_nav_graph.xml +++ b/app/src/main/res/navigation/middle_fragment_nav_graph.xml @@ -2,12 +2,12 @@ + app:startDestination="@id/MiddleEmptyFragment"> + app:startDestination="@id/RightEmptyFragment"> - - - - - - - - - - - + + + + + + + + + + + 256dp 230dp 28dp - + 360dp \ No newline at end of file diff --git a/app/src/main/res/values-w600dp/dimens.xml b/app/src/main/res/values-w600dp/dimens.xml index ad9117b6..d5a61bf1 100644 --- a/app/src/main/res/values-w600dp/dimens.xml +++ b/app/src/main/res/values-w600dp/dimens.xml @@ -1,4 +1,4 @@ 48dp - 310dp + 360dp \ No newline at end of file diff --git a/collect-library/src/main/assets/editormarker.xml b/collect-library/src/main/assets/editormarker.xml index 065193c8..afc8a751 100644 --- a/collect-library/src/main/assets/editormarker.xml +++ b/collect-library/src/main/assets/editormarker.xml @@ -1860,7 +1860,7 @@ - + @@ -1868,5 +1868,13 @@ + + + + + + + + \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_4006_0.png b/collect-library/src/main/assets/omdb/icon_4006_0.png new file mode 100644 index 00000000..5c912a60 Binary files /dev/null and b/collect-library/src/main/assets/omdb/icon_4006_0.png differ diff --git a/collect-library/src/main/assets/omdb/icon_4022_0.png b/collect-library/src/main/assets/omdb/icon_4022_0.png new file mode 100644 index 00000000..a718c8e2 Binary files /dev/null and b/collect-library/src/main/assets/omdb/icon_4022_0.png differ