diff --git a/app/build.gradle b/app/build.gradle index d70deb3a..decf7d32 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,6 +5,7 @@ plugins { id 'com.google.dagger.hilt.android' id 'realm-android' id 'kotlin-parcelize' // 序列化 + id 'androidx.navigation.safeargs.kotlin'//Safe Args传递数据 } android { namespace 'com.navinfo.omqs' @@ -109,6 +110,8 @@ dependencies { // 读取spatialite文件 implementation 'com.github.sevar83:android-spatialite:2.0.1' + //fragment 传递数据 + implementation "androidx.navigation:navigation-ui-ktx:2.5.3" } //允许引用生成的代码 kapt { diff --git a/app/src/main/assets/omdb.config b/app/src/main/assets/omdb.config index 1f2be43d..52fd2012 100644 --- a/app/src/main/assets/omdb.config +++ b/app/src/main/assets/omdb.config @@ -37,7 +37,7 @@ }, { "table": "OMDB_LANE_NUM", - "code": 5002, + "code": 2041, "name": "车道数" } ] diff --git a/app/src/main/java/com/navinfo/omqs/bean/SignBean.kt b/app/src/main/java/com/navinfo/omqs/bean/SignBean.kt new file mode 100644 index 00000000..30bbe143 --- /dev/null +++ b/app/src/main/java/com/navinfo/omqs/bean/SignBean.kt @@ -0,0 +1,15 @@ +package com.navinfo.omqs.bean + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +@Parcelize +data class SignBean( + //图标ID + val iconId: Int, + val distance: Int = 0, + val iconText: String = "", + val elementId: String = "", + val linkId: String, + val geometry: String, +) : Parcelable \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/bean/TaskBean.kt b/app/src/main/java/com/navinfo/omqs/bean/TaskBean.kt index d46f6a77..a31a6c12 100644 --- a/app/src/main/java/com/navinfo/omqs/bean/TaskBean.kt +++ b/app/src/main/java/com/navinfo/omqs/bean/TaskBean.kt @@ -67,6 +67,6 @@ open class TaskBean @JvmOverloads constructor( var message: String = "" ) : RealmObject() { fun getDownLoadUrl(): String { - return "${Constant.SERVER_ADDRESS}devcp/download?fileStr=26" + return "${Constant.SERVER_ADDRESS}devcp/download?fileStr=$id" } } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt b/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt index 9bb6be80..3bedd606 100644 --- a/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt +++ b/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt @@ -20,7 +20,6 @@ import org.oscim.core.MercatorProjection import javax.inject.Inject import kotlin.streams.toList -@RequiresApi(Build.VERSION_CODES.N) class RealmOperateHelper() { @Inject lateinit var niMapController: NIMapController @@ -32,6 +31,7 @@ class RealmOperateHelper() { * @param bufferType 点位外扩距离的单位: 米-Meter,像素-PIXEL * @param sort 是否需要排序 * */ + @RequiresApi(Build.VERSION_CODES.N) suspend fun queryLink( point: Point, buffer: Double = DEFAULT_BUFFER, @@ -102,6 +102,7 @@ class RealmOperateHelper() { * @param bufferType 点位外扩距离的单位: 米-Meter,像素-PIXEL * @param sort 是否需要排序 * */ + @RequiresApi(Build.VERSION_CODES.N) suspend fun queryElement( point: Point, buffer: Double = DEFAULT_BUFFER, @@ -154,12 +155,13 @@ class RealmOperateHelper() { suspend fun queryLinkByLinkPid(linkPid: String): MutableList<RenderEntity> { val result = mutableListOf<RenderEntity>() withContext(Dispatchers.IO) { - val realmList = Realm.getDefaultInstance().where(RenderEntity::class.java) + val realm = Realm.getDefaultInstance() + val realmList = realm.where(RenderEntity::class.java) .notEqualTo("table", "OMDB_RD_LINK") .and() .equalTo("properties['${LinkTable.linkPid}']", linkPid) .findAll() - result.addAll(realmList) + result.addAll(realm.copyFromRealm(realmList)) } return result } diff --git a/app/src/main/java/com/navinfo/omqs/tools/LayerConfigUtils.kt b/app/src/main/java/com/navinfo/omqs/tools/LayerConfigUtils.kt new file mode 100644 index 00000000..2349f384 --- /dev/null +++ b/app/src/main/java/com/navinfo/omqs/tools/LayerConfigUtils.kt @@ -0,0 +1,44 @@ +package com.navinfo.omqs.tools + +import com.blankj.utilcode.util.FileIOUtils +import com.blankj.utilcode.util.SPStaticUtils +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken +import com.navinfo.omqs.Constant +import com.navinfo.omqs.bean.ImportConfig +import java.io.File + +class LayerConfigUtils { + companion object { + private val omdbConfigFile = File("${Constant.USER_DATA_PATH}", Constant.OMDB_CONFIG) + private val otherConfigFile = File("${Constant.USER_DATA_PATH}", Constant.OTHER_CONFIG) + private val gson = Gson() + + fun getLayerConfigList(): List<ImportConfig> { + // 首先读取Shared文件,如果存在则直接返回,否则读取config文件 + return SPStaticUtils.getString(Constant.LAYER_MANAGER_CONFIG, null).let { + if (this!=null) { + val result: List<ImportConfig> = gson.fromJson(it, object : TypeToken<List<ImportConfig>>(){}.type) + result + } else { + LayerConfigUtils.getLayerConfigListFromAssetsFile() + } + } + } + + fun getLayerConfigListFromAssetsFile(): List<ImportConfig> { + val resultList = mutableListOf<ImportConfig>() + if (omdbConfigFile.exists()) { + val omdbConfiStr = FileIOUtils.readFile2String(omdbConfigFile) + val omdbConfig = gson.fromJson<ImportConfig>(omdbConfiStr, ImportConfig::class.java) + resultList.add(omdbConfig) + } + if (otherConfigFile.exists()) { + val otherConfiStr = FileIOUtils.readFile2String(otherConfigFile) + val otherConfig = gson.fromJson<ImportConfig>(otherConfiStr, ImportConfig::class.java) + resultList.add(otherConfig) + } + return resultList + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginActivity.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginActivity.kt index f2b37f45..2b354fb7 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginActivity.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginActivity.kt @@ -2,6 +2,7 @@ package com.navinfo.omqs.ui.activity.login import android.content.Intent import android.os.Bundle +import android.util.DisplayMetrics import android.util.Log import android.widget.Toast import androidx.activity.viewModels @@ -33,8 +34,35 @@ class LoginActivity : CheckPermissionsActivity() { binding.lifecycleOwner = this binding.activity = this initView() + Log.e("jingo", getScreenParams()) } + private fun getScreenParams(): String { + val dm = DisplayMetrics(); + windowManager.defaultDisplay.getMetrics(dm); + val heightPixels = dm.heightPixels;//高的像素 + val widthPixels = dm.widthPixels;//宽的像素 + val densityDpi = dm.densityDpi;//dpi + val xdpi = dm.xdpi;//xdpi + val ydpi = dm.ydpi;//ydpi + val density = dm.density;//density=dpi/160,密度比 + val scaledDensity = dm.scaledDensity;//scaledDensity=dpi/160 字体缩放密度比 + val heightDP = heightPixels / density;//高度的dp + val widthDP = widthPixels / density;//宽度的dp + var str = "heightPixels: " + heightPixels + "px"; + str += "\nwidthPixels: " + widthPixels + "px"; + str += "\ndensityDpi: " + densityDpi + "dpi"; + str += "\nxdpi: " + xdpi + "dpi"; + str += "\nydpi: " + ydpi + "dpi"; + str += "\ndensity: " + density; + str += "\nscaledDensity: " + scaledDensity; + str += "\nheightDP: " + heightDP + "dp"; + str += "\nwidthDP: " + widthDP + "dp"; + + return str; + } + + /** * 观察登录状态,把Observer提出来是为了防止每次数据变化都会有新的observer创建 * 还有为了方便释放(需不需要手动释放?不清楚)不需要释放,当viewmodel观察到activity/fragment 的生命周期时会自动释放 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 73e3ec2b..dc1cc16d 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 @@ -10,17 +10,24 @@ import androidx.annotation.RequiresApi import androidx.core.view.WindowCompat import androidx.databinding.DataBindingUtil import androidx.lifecycle.lifecycleScope +import androidx.navigation.findNavController import androidx.recyclerview.widget.LinearLayoutManager +import com.blankj.utilcode.util.SPStaticUtils +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.navinfo.collect.library.map.NIMapController import com.navinfo.omqs.Constant import com.navinfo.omqs.R import com.navinfo.omqs.bean.ImportConfig 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.util.FlowEventBus import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch +import com.navinfo.omqs.ui.widget.RecyclerViewSpacesItemDecoration +import org.videolan.vlc.Util import javax.inject.Inject /** @@ -39,12 +46,31 @@ class MainActivity : BaseActivity() { @Inject lateinit var offlineMapDownloadManager: OfflineMapDownloadManager - private val signAdapter by lazy { SignAdapter() } + private val rightController by lazy { + 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) { + 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) binding = DataBindingUtil.setContentView(this, R.layout.activity_main) + //初始化地图 mapController.init( this, @@ -53,6 +79,8 @@ class MainActivity : BaseActivity() { Constant.MAP_PATH, Constant.USER_DATA_PATH + "/trace.sqlite" ) + // 在mapController初始化前获取当前OMDB图层显隐 + viewModel.refreshOMDBLayer(LayerConfigUtils.getLayerConfigList()) //关联生命周期 binding.lifecycleOwner = this //给xml转递对象 @@ -63,19 +91,18 @@ class MainActivity : BaseActivity() { binding.mainActivityVoice.setOnTouchListener(object : View.OnTouchListener { @RequiresApi(Build.VERSION_CODES.Q) override fun onTouch(v: View?, event: MotionEvent?): Boolean { - Log.e("qj",event?.action.toString()) + Log.e("qj", event?.action.toString()) when (event?.action) { - MotionEvent.ACTION_DOWN ->{ + MotionEvent.ACTION_DOWN -> { voiceOnTouchStart()//Do Something - Log.e("qj","voiceOnTouchStart") + Log.e("qj", "voiceOnTouchStart") } - MotionEvent.ACTION_UP ->{ + MotionEvent.ACTION_UP -> { voiceOnTouchStop()//Do Something - Log.e("qj","voiceOnTouchStop") + Log.e("qj", "voiceOnTouchStop") } } - return v?.onTouchEvent(event) ?: true } }) @@ -86,6 +113,14 @@ class MainActivity : BaseActivity() { } binding.mainActivitySignRecyclerview.layoutManager = LinearLayoutManager(this) binding.mainActivitySignRecyclerview.adapter = signAdapter + //增加4dp的间隔 + binding.mainActivitySignRecyclerview.addItemDecoration( + RecyclerViewSpacesItemDecoration( + Util.convertDpToPx( + this, 4 + ) + ) + ) viewModel.liveDataSignList.observe(this) { signAdapter.refreshData(it) } @@ -93,17 +128,7 @@ class MainActivity : BaseActivity() { lifecycleScope.launch { // 初始化地图图层控制接收器 FlowEventBus.subscribe<List<ImportConfig>>(lifecycle, Constant.EVENT_LAYER_MANAGER_CHANGE) { - // 根据获取到的配置信息,筛选未勾选的图层名称 - val omdbVisibleList = it.filter { importConfig-> - importConfig.tableGroupName == "OMDB数据" - }.first().tables.filter { tableInfo -> - !tableInfo.checked - }.map { - tableInfo -> tableInfo.table - }.toList() - com.navinfo.collect.library.system.Constant.HAD_LAYER_INVISIABLE_ARRAY = omdbVisibleList.toTypedArray() - // 刷新地图 - mapController.mMapView.vtmMap.clearMap() + viewModel.refreshOMDBLayer(it) } } } @@ -158,14 +183,14 @@ class MainActivity : BaseActivity() { naviController.navigate(R.id.EvaluationResultFragment)*/ } - fun voiceOnTouchStart(){ - viewModel!!.startSoundMetter(this,binding.mainActivityVoice) + fun voiceOnTouchStart() { + viewModel.startSoundMetter(this, binding.mainActivityVoice) } @RequiresApi(Build.VERSION_CODES.Q) - fun voiceOnTouchStop(){ - if(Constant.IS_VIDEO_SPEED){ - viewModel!!.stopSoundMeter() + fun voiceOnTouchStop() { + if (Constant.IS_VIDEO_SPEED) { + viewModel.stopSoundMeter() } } 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 21201bf5..8f615815 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 @@ -21,7 +21,6 @@ import androidx.lifecycle.viewModelScope import androidx.navigation.findNavController import com.blankj.utilcode.util.ToastUtils import com.navinfo.collect.library.data.dao.impl.TraceDataBase -import com.navinfo.collect.library.data.entity.NiLocation import com.navinfo.collect.library.data.entity.RenderEntity import com.navinfo.collect.library.map.NIMapController import com.navinfo.collect.library.map.handler.OnQsRecordItemClickListener @@ -30,9 +29,11 @@ import com.navinfo.collect.library.utils.GeometryToolsKt import com.navinfo.omqs.Constant import com.navinfo.omqs.R import com.navinfo.omqs.bean.ImportConfig +import com.navinfo.omqs.bean.SignBean import com.navinfo.omqs.db.RealmOperateHelper import com.navinfo.omqs.ui.dialog.CommonDialog import com.navinfo.omqs.ui.manager.TakePhotoManager +import com.navinfo.omqs.ui.widget.SignUtil import com.navinfo.omqs.util.DateTimeUtil import com.navinfo.omqs.util.FlowEventBus import com.navinfo.omqs.util.SoundMeter @@ -69,6 +70,7 @@ class MainViewModel @Inject constructor( val liveDataSignList = MutableLiveData<List<SignBean>>() var testPoint = GeoPoint(0, 0) + //语音窗体 private var pop: PopupWindow? = null @@ -87,7 +89,7 @@ class MainViewModel @Inject constructor( }) initLocation() viewModelScope.launch { - mapController.onMapClickFlow.collect { + mapController.onMapClickFlow.collectLatest { testPoint = it } } @@ -156,9 +158,12 @@ class MainViewModel @Inject constructor( ) signList.add( SignBean( - iconId = R.drawable.icon_speed_limit, - iconText = element.name, + iconId = SignUtil.getSignIcon(element), + iconText = SignUtil.getSignText(element), distance = distance.toInt(), + elementId = element.id, + linkId = linkId, + geometry = element.geometry ) ) } @@ -184,6 +189,9 @@ class MainViewModel @Inject constructor( override fun onCleared() { super.onCleared() + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + mapController.lineHandler.removeLine() + } } //点击相机按钮 @@ -226,7 +234,7 @@ class MainViewModel @Inject constructor( fun startSoundMetter(context: Context, v: View) { - if(mSpeakMode==null){ + if (mSpeakMode == null) { mSpeakMode = SpeakMode(context as Activity?) } @@ -270,7 +278,8 @@ class MainViewModel @Inject constructor( } mSpeakMode!!.speakText("结束录音") //获取右侧fragment容器 - val naviController = (context as Activity).findNavController(R.id.main_activity_right_fragment) + val naviController = + (context as Activity).findNavController(R.id.main_activity_right_fragment) val bundle = Bundle() bundle.putString("filePath", filePath) naviController.navigate(R.id.EvaluationResultFragment, bundle) @@ -300,6 +309,24 @@ class MainViewModel @Inject constructor( if (pop != null && pop!!.isShowing) pop!!.dismiss() } + /** + * 刷新OMDB图层显隐 + * */ + fun refreshOMDBLayer(layerConfigList: List<ImportConfig>) { + // 根据获取到的配置信息,筛选未勾选的图层名称 + if (layerConfigList!=null && !layerConfigList.isEmpty()) { + val omdbVisibleList = layerConfigList.filter { importConfig-> + importConfig.tableGroupName == "OMDB数据" + }.first().tables.filter { tableInfo -> + !tableInfo.checked + }.map { + tableInfo -> tableInfo.table + }.toList() + com.navinfo.collect.library.system.Constant.HAD_LAYER_INVISIABLE_ARRAY = omdbVisibleList.toTypedArray() + // 刷新地图 + mapController.mMapView.vtmMap.clearMap() + } + } /** * 处理页面调转 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 03d83aac..a49d2543 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 @@ -3,11 +3,13 @@ package com.navinfo.omqs.ui.activity.map import android.view.LayoutInflater import android.view.ViewGroup import com.navinfo.omqs.R +import com.navinfo.omqs.bean.SignBean import com.navinfo.omqs.databinding.AdapterSignBinding import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter import com.navinfo.omqs.ui.other.BaseViewHolder -class SignAdapter : BaseRecyclerViewAdapter<SignBean>() { +class SignAdapter(private var itemListener: ((Int, SignBean) -> Unit?)? = null) : + BaseRecyclerViewAdapter<SignBean>() { override fun getItemViewRes(position: Int): Int { return R.layout.adapter_sign } @@ -23,5 +25,8 @@ class SignAdapter : BaseRecyclerViewAdapter<SignBean>() { val item = data[position] bd.signMainIcon.background = holder.viewBinding.root.context.getDrawable(item.iconId) bd.signMainIcon.text = item.iconText + bd.root.setOnClickListener { + itemListener?.invoke(position, item) + } } } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignBean.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignBean.kt deleted file mode 100644 index 9ee45b97..00000000 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignBean.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.navinfo.omqs.ui.activity.map - -data class SignBean( - //图标ID - val iconId: Int, - val distance: Int = 0, - val iconText: String = "" -) \ No newline at end of file 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 bdb013ec..435b15c3 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 @@ -13,6 +13,7 @@ import androidx.navigation.NavOptions import androidx.recyclerview.widget.LinearLayoutManager import com.navinfo.omqs.Constant import com.navinfo.omqs.R +import com.navinfo.omqs.bean.SignBean import com.navinfo.omqs.databinding.FragmentEvaluationResultBinding import com.navinfo.omqs.ui.fragment.BaseFragment import com.navinfo.omqs.ui.other.shareViewModels @@ -24,6 +25,7 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener { private lateinit var binding: FragmentEvaluationResultBinding private val viewModel by shareViewModels<EvaluationResultViewModel>("QsRecode") + // private val args:EmptyFragmentArgs by navArgs() override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { @@ -80,15 +82,15 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener { binding.evaluationVoice.setOnTouchListener(object : View.OnTouchListener { @RequiresApi(Build.VERSION_CODES.Q) override fun onTouch(v: View?, event: MotionEvent?): Boolean { - Log.e("qj",event?.action.toString()) + Log.e("qj", event?.action.toString()) when (event?.action) { - MotionEvent.ACTION_DOWN ->{ + MotionEvent.ACTION_DOWN -> { voiceOnTouchStart()//Do Something - Log.e("qj","voiceOnTouchStart") + Log.e("qj", "voiceOnTouchStart") } - MotionEvent.ACTION_UP ->{ + MotionEvent.ACTION_UP -> { voiceOnTouchStop()//Do Something - Log.e("qj","voiceOnTouchStop") + Log.e("qj", "voiceOnTouchStop") } } return v?.onTouchEvent(event) ?: true @@ -98,17 +100,23 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener { /** * 读取元数据 */ - if (arguments != null) { - val id = requireArguments().getString("QsId") - //语音路径 - val filePath = requireArguments().getString("filePath") - if (id != null) { - viewModel.initData(id) - } else { - viewModel.initNewData(filePath!!) +// val id = args.qsId + var id: String = "" + var signBean: SignBean? = null + var filePath: String = "" + arguments?.let { + id = it.getString("QsId", "") + filePath = it.getString("filePath", "") + try { + signBean = it.getParcelable("SignBean") + } catch (e: java.lang.Exception) { } + } + + if (id == null || id.isEmpty()) { + viewModel.initNewData(signBean, filePath) } else { - viewModel.initNewData("") + viewModel.initData(id) } // //监听大分类数据变化 // viewModel.liveDataClassTypeList.observe(viewLifecycleOwner) { @@ -271,13 +279,13 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener { } } - fun voiceOnTouchStart(){ - viewModel!!.startSoundMetter(requireActivity(),binding.evaluationVoice) + fun voiceOnTouchStart() { + viewModel!!.startSoundMetter(requireActivity(), binding.evaluationVoice) } @RequiresApi(Build.VERSION_CODES.Q) - fun voiceOnTouchStop(){ - if(Constant.IS_VIDEO_SPEED){ + fun voiceOnTouchStop() { + if (Constant.IS_VIDEO_SPEED) { 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 84f710d7..a98a769c 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 @@ -26,6 +26,7 @@ import com.navinfo.collect.library.data.entity.QsRecordBean import com.navinfo.collect.library.data.entity.RenderEntity.Companion.LinkTable import com.navinfo.collect.library.map.NIMapController import com.navinfo.collect.library.utils.GeometryTools +import com.navinfo.omqs.bean.SignBean import com.navinfo.omqs.Constant import com.navinfo.omqs.R import com.navinfo.omqs.bean.ChatMsgEntity @@ -108,7 +109,7 @@ class EvaluationResultViewModel @Inject constructor( super.onCleared() Log.e("jingo", "EvaluationResultViewModel 销毁了 ${hashCode()}") mapController.markerHandle.removeMarker(markerTitle) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { mapController.lineHandler.removeLine() } } @@ -117,25 +118,44 @@ class EvaluationResultViewModel @Inject constructor( /** * 查询数据库,获取问题分类 */ - fun initNewData(filePath: String) { + fun initNewData(bean: SignBean?,filePath: String) { viewModelScope.launch(Dispatchers.IO) { getClassTypeList() getProblemLinkList() } val geoPoint = mapController.locationLayerHandler.getCurrentGeoPoint() - geoPoint?.let { - liveDataQsRecordBean.value!!.geometry = GeometryTools.createGeometry(it).toText() - mapController.markerHandle.addMarker(geoPoint, markerTitle) - viewModelScope.launch { - captureLink(geoPoint.longitude, geoPoint.latitude) + if (bean == null) { + geoPoint?.let { + liveDataQsRecordBean.value!!.geometry = GeometryTools.createGeometry(it).toText() + mapController.markerHandle.addMarker(geoPoint, markerTitle) + viewModelScope.launch { + captureLink(geoPoint.longitude, geoPoint.latitude) + } } + } else { + liveDataQsRecordBean.value?.run { + elementId = bean.elementId + linkId = bean.linkId + if (linkId.isNotEmpty()) { + viewModelScope.launch { + val link = realmOperateHelper.queryLink(linkId) + link?.let { l -> + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + mapController.lineHandler.showLine(l.geometry) + } + } + } + } + } + val point = GeometryTools.createGeoPoint(bean.geometry) + mapController.markerHandle.addMarker(point, markerTitle) } addChatMsgEntity(filePath) } /** - * 捕捉到路 + * 捕捉道路 */ private suspend fun captureLink(longitude: Double, latitude: Double) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { @@ -364,7 +384,7 @@ class EvaluationResultViewModel @Inject constructor( fun addChatMsgEntity(filePath: String) { - if(filePath!=null){ + if(filePath.isNotEmpty()){ var chatMsgEntityList: MutableList<ChatMsgEntity> = ArrayList() if(listDataChatMsgEntityList.value?.isEmpty() == false){ chatMsgEntityList = listDataChatMsgEntityList.value!! 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 0ff2468b..467f3058 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 @@ -1,7 +1,9 @@ package com.navinfo.omqs.ui.fragment.evaluationresult +import android.os.Build import android.view.LayoutInflater import android.view.ViewGroup +import androidx.annotation.RequiresApi import com.navinfo.omqs.R import com.navinfo.omqs.databinding.TextItemSelectBinding import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter @@ -21,6 +23,7 @@ class LeftAdapter(private var itemListener: ((Int, String) -> Unit?)? = null) : return BaseViewHolder(viewBinding) } + @RequiresApi(Build.VERSION_CODES.M) override fun onBindViewHolder(holder: BaseViewHolder, position: Int) { val bd = holder.viewBinding as TextItemSelectBinding val title = data[position] diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/layermanager/LayerManagerViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/layermanager/LayerManagerViewModel.kt index 6f0ae558..82861c12 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/layermanager/LayerManagerViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/layermanager/LayerManagerViewModel.kt @@ -8,29 +8,17 @@ import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.navinfo.omqs.Constant import com.navinfo.omqs.bean.ImportConfig +import com.navinfo.omqs.tools.LayerConfigUtils import com.navinfo.omqs.util.FlowEventBus import kotlinx.coroutines.launch import java.io.File class LayerManagerViewModel(): ViewModel() { - private val omdbConfigFile = File("${Constant.USER_DATA_PATH}", Constant.OMDB_CONFIG) - private val otherConfigFile = File("${Constant.USER_DATA_PATH}", Constant.OTHER_CONFIG) private val gson = Gson() fun getLayerConfigList(): List<ImportConfig> { // 首先读取Shared文件,如果存在则直接返回,否则读取config文件 - val importConfigList: List<ImportConfig>? = SPStaticUtils.getString(Constant.LAYER_MANAGER_CONFIG, null).run { - if (this!=null) { - gson.fromJson(this, object : TypeToken<List<ImportConfig>>(){}.type) - } else { - null - } - } - if (importConfigList==null) { - return getLayerConfigListFromAssetsFile() - } else { - return importConfigList as List<ImportConfig> - } + return LayerConfigUtils.getLayerConfigList() } fun saveLayerConfigList(listData: List<ImportConfig>) { @@ -41,18 +29,4 @@ class LayerManagerViewModel(): ViewModel() { } } - private fun getLayerConfigListFromAssetsFile(): List<ImportConfig> { - val resultList = mutableListOf<ImportConfig>() - if (omdbConfigFile.exists()) { - val omdbConfiStr = FileIOUtils.readFile2String(omdbConfigFile) - val omdbConfig = gson.fromJson<ImportConfig>(omdbConfiStr, ImportConfig::class.java) - resultList.add(omdbConfig) - } - if (otherConfigFile.exists()) { - val otherConfiStr = FileIOUtils.readFile2String(otherConfigFile) - val otherConfig = gson.fromJson<ImportConfig>(otherConfiStr, ImportConfig::class.java) - resultList.add(otherConfig) - } - return resultList - } } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListFragment.kt index bb43281c..8c55ae6c 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListFragment.kt @@ -50,7 +50,7 @@ class QsRecordListFragment : BaseFragment(){ binding.qsRecyclerview.addItemDecoration(itemDecoration) viewModel.getList(requireContext()) // itemClick - adapter!!.setOnKotlinItemClickListener(object : QsRecordListAdapter.IKotlinItemClickListener { + adapter.setOnKotlinItemClickListener(object : QsRecordListAdapter.IKotlinItemClickListener { override fun onItemClickListener(position: Int) { viewModel.onItemClickListener(activity as MainActivity,position) findNavController().popBackStack() diff --git a/app/src/main/java/com/navinfo/omqs/ui/widget/MyEditeText.kt b/app/src/main/java/com/navinfo/omqs/ui/widget/MyEditeText.kt index 3d6d85cf..236db137 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/widget/MyEditeText.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/widget/MyEditeText.kt @@ -8,6 +8,10 @@ import android.widget.EditText import androidx.appcompat.widget.AppCompatEditText import com.navinfo.omqs.R +/** + * 滚动嵌套时,处理滚动的edittext + */ + class MyEditeText @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, diff --git a/app/src/main/java/com/navinfo/omqs/ui/widget/RecyclerViewSpacesItemDecoration.kt b/app/src/main/java/com/navinfo/omqs/ui/widget/RecyclerViewSpacesItemDecoration.kt new file mode 100644 index 00000000..d8b99be3 --- /dev/null +++ b/app/src/main/java/com/navinfo/omqs/ui/widget/RecyclerViewSpacesItemDecoration.kt @@ -0,0 +1,86 @@ +package com.navinfo.omqs.ui.widget + +import android.graphics.Rect +import android.view.View +import androidx.annotation.StringDef +import androidx.recyclerview.widget.RecyclerView +import androidx.recyclerview.widget.RecyclerView.ItemDecoration +import java.lang.annotation.Retention +import java.lang.annotation.RetentionPolicy + +/** + * 用来设置recyclerView 要素间的间隔 + */ +class RecyclerViewSpacesItemDecoration : ItemDecoration { + @StringDef(TOP_DECORATION, BOTTOM_DECORATION, LEFT_DECORATION, RIGHT_DECORATION) + @Retention( + RetentionPolicy.SOURCE + ) + private annotation class Decoration + + private var rightSpace = 0 //右边间距 + private var topSpace = 0 //上边边间距 + private var leftSpace = 0 //左边间距 + private var bottomSpace = 0 //下边间距 + + /** + * @param bottomSpace 下间距 + */ + constructor(bottomSpace: Int) { + this.bottomSpace = bottomSpace + } + + /** + * 指定某一个属性 + * + * @param decoration decoration + * @param space 间距 + */ + constructor(@Decoration decoration: String?, space: Int) { + when (decoration) { + RIGHT_DECORATION -> rightSpace = space + TOP_DECORATION -> topSpace = space + LEFT_DECORATION -> leftSpace = space + BOTTOM_DECORATION -> bottomSpace = space + } + } + + /** + * @param rightSpace 右间距 + * @param topSpace 上间距 + * @param leftSpace 左间距 + * @param bottomSpace 下间距 + */ + constructor(rightSpace: Int, topSpace: Int, leftSpace: Int, bottomSpace: Int) { + this.rightSpace = rightSpace + this.topSpace = topSpace + this.leftSpace = leftSpace + this.bottomSpace = bottomSpace + } + + /** + * @param outRect Item的矩边界 + * @param view ItemView + * @param parent RecyclerView + * @param state RecyclerView的状态 + */ + override fun getItemOffsets( + outRect: Rect, + view: View, + parent: RecyclerView, + state: RecyclerView.State + ) { + super.getItemOffsets(outRect, view, parent, state) + outRect.top = topSpace + outRect.left = leftSpace + outRect.right = rightSpace + outRect.bottom = bottomSpace + } + + companion object { + const val TOP_DECORATION = "top_decoration" + const val BOTTOM_DECORATION = "bottom_decoration" + const val LEFT_DECORATION = "left_decoration" + const val RIGHT_DECORATION = "right_decoration" + } +} \ No newline at end of file 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 new file mode 100644 index 00000000..e0fc12d4 --- /dev/null +++ b/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt @@ -0,0 +1,153 @@ +package com.navinfo.omqs.ui.widget + +import android.util.Log +import com.navinfo.collect.library.data.entity.RenderEntity +import com.navinfo.omqs.R + +class SignUtil { + companion object { + + /** + * 获取面板上的文字 + */ + fun getSignText(data: RenderEntity): String { + return when (data.code) { + //常规点限速 + 4002 -> getSpeedLimitText(data) +// //道路种别 +// 2008 -> getKindCodeIcon(data) +// //道路方向 +// 2010 -> getRoadDirection(data) +// //车道数 +// 2041 -> getLaneNumIcon(data) + else -> "" + } + } + + /** + * 获取限速值文字 + */ + private fun getSpeedLimitText(data: RenderEntity): String { + try { + //限速标志 0 限速开始 1 限速解除 + val maxSpeed = data.properties["max_speed"] + val minSpeed = data.properties["min_speed"] + return if (maxSpeed != "0") + maxSpeed.toString() + else + minSpeed.toString() + } catch (e: Exception) { + Log.e("jingo", "获取限速面板ICON出错1 $e") + } + return "" + } + + /** + * 限速图标 + */ + fun getSpeedLimitIcon(data: RenderEntity): Int { + try { + //限速标志 0 限速开始 1 限速解除 + val speedFlag = data.properties["speed_flag"] + return when (speedFlag) { + "1" -> return R.drawable.icon_speed_limit_off + else -> return R.drawable.icon_speed_limit + } + } catch (e: Exception) { + Log.e("jingo", "获取限速面板ICON出错2 $e") + } + return R.drawable.icon_speed_limit + } + + /** + * 获取看板图标 + */ + + fun getSignIcon(data: RenderEntity): Int { + return when (data.code) { + //道路种别 + 2008 -> getKindCodeIcon(data) + //道路方向 + 2010 -> getRoadDirection(data) + //车道数 + 2041 -> getLaneNumIcon(data) + //限速 + 4002 -> getSpeedLimitIcon(data) + else -> R.drawable.icon_speed_limit + } + + } + + + /** + * 获取种别图标 + */ + fun getKindCodeIcon(data: RenderEntity): Int { + try { + val kind = data.properties["kind"] + return when (kind!!.toInt()) { + 1 -> R.mipmap.icon_kind_code_k1 + 2 -> R.mipmap.icon_kind_code_k2 + 3 -> R.mipmap.icon_kind_code_k3 + 4 -> R.mipmap.icon_kind_code_k4 + 6 -> R.mipmap.icon_kind_code_k6 + 7 -> R.mipmap.icon_kind_code_k7 + 8 -> R.mipmap.icon_kind_code_k8 + 9 -> R.mipmap.icon_kind_code_k9 + 10 -> R.mipmap.icon_kind_code_k10 + 11 -> R.mipmap.icon_kind_code_k11 + 13 -> R.mipmap.icon_kind_code_k13 + 15 -> R.mipmap.icon_kind_code_k15 + else -> R.mipmap.icon_kind_code + } + } catch (e: Exception) { + Log.e("jingo", "获取种别面板ICON出错 $e") + } + return R.mipmap.icon_kind_code + } + + /** + * 获取到路线 + */ + fun getLaneNumIcon(data: RenderEntity): Int { + try { + val lineNum = data.properties["laneNum"] + return when (lineNum!!.toInt()) { + 1 -> R.mipmap.icon_lane_num1 + 2 -> R.mipmap.icon_lane_num2 + 3 -> R.mipmap.icon_lane_num3 + 4 -> R.mipmap.icon_lane_num4 + 5 -> R.mipmap.icon_lane_num5 + 6 -> R.mipmap.icon_lane_num6 + 7 -> R.mipmap.icon_lane_num7 + 8 -> R.mipmap.icon_lane_num8 + 9 -> R.mipmap.icon_lane_num9 + 10 -> R.mipmap.icon_lane_num10 + 11 -> R.mipmap.icon_lane_num11 + 12 -> R.mipmap.icon_lane_num12 + else -> R.mipmap.icon_lane_num1 + } + } catch (e: Exception) { + Log.e("jingo", "获取车道数面板ICON出错 $e") + } + return R.mipmap.icon_road_direction + } + + fun getRoadDirection(data: RenderEntity): Int { + try { + val direct = data.properties["direct"] + return when (direct!!.toInt()) { + 0 -> R.mipmap.icon_road_direction + 1 -> R.mipmap.icon_road_direction + 2 -> R.mipmap.icon_road_direction + 3 -> R.mipmap.icon_road_direction + -99 -> R.mipmap.icon_road_direction + else -> R.mipmap.icon_road_direction + } + } catch (e: Exception) { + Log.e("jingo", "获取道路方向面板ICON出错 $e") + } + return R.mipmap.icon_road_direction + } + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable-xhdpi/icon_add_data.png b/app/src/main/res/drawable-xhdpi/icon_add_data.png new file mode 100644 index 00000000..5461259d Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/icon_add_data.png differ diff --git a/app/src/main/res/drawable-xhdpi/icon_add_voice.png b/app/src/main/res/drawable-xhdpi/icon_add_voice.png new file mode 100644 index 00000000..82f24c24 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/icon_add_voice.png differ diff --git a/app/src/main/res/drawable-xhdpi/icon_delete.png b/app/src/main/res/drawable-xhdpi/icon_delete.png new file mode 100644 index 00000000..53f101e5 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/icon_delete.png differ diff --git a/app/src/main/res/drawable-xhdpi/icon_delete_p.png b/app/src/main/res/drawable-xhdpi/icon_delete_p.png new file mode 100644 index 00000000..2ee67fa8 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/icon_delete_p.png differ diff --git a/app/src/main/res/drawable-xhdpi/icon_location.png b/app/src/main/res/drawable-xhdpi/icon_location.png new file mode 100644 index 00000000..d8eaac08 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/icon_location.png differ diff --git a/app/src/main/res/drawable-xhdpi/icon_page_video_a1.png b/app/src/main/res/drawable-xhdpi/icon_page_video_a1.png index 221c49a7..b9efa62b 100644 Binary files a/app/src/main/res/drawable-xhdpi/icon_page_video_a1.png and b/app/src/main/res/drawable-xhdpi/icon_page_video_a1.png differ diff --git a/app/src/main/res/drawable-xxhdpi/icon_add_data.png b/app/src/main/res/drawable-xxhdpi/icon_add_data.png new file mode 100644 index 00000000..bf9a8e89 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_add_data.png differ diff --git a/app/src/main/res/drawable-xxhdpi/icon_add_voice.png b/app/src/main/res/drawable-xxhdpi/icon_add_voice.png new file mode 100644 index 00000000..8aa8f5a6 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_add_voice.png differ diff --git a/app/src/main/res/drawable-xxhdpi/icon_delete.png b/app/src/main/res/drawable-xxhdpi/icon_delete.png new file mode 100644 index 00000000..53f101e5 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_delete.png differ diff --git a/app/src/main/res/drawable-xxhdpi/icon_delete_p.png b/app/src/main/res/drawable-xxhdpi/icon_delete_p.png new file mode 100644 index 00000000..2ee67fa8 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_delete_p.png differ diff --git a/app/src/main/res/drawable-xxhdpi/icon_location.png b/app/src/main/res/drawable-xxhdpi/icon_location.png new file mode 100644 index 00000000..0105061f Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_location.png differ diff --git a/app/src/main/res/drawable-xxhdpi/icon_page_video_a1.png b/app/src/main/res/drawable-xxhdpi/icon_page_video_a1.png index 221c49a7..17427efe 100644 Binary files a/app/src/main/res/drawable-xxhdpi/icon_page_video_a1.png and b/app/src/main/res/drawable-xxhdpi/icon_page_video_a1.png differ diff --git a/app/src/main/res/drawable/btn_delete_xml.xml b/app/src/main/res/drawable/btn_delete_xml.xml new file mode 100644 index 00000000..22730a78 --- /dev/null +++ b/app/src/main/res/drawable/btn_delete_xml.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<selector xmlns:android="http://schemas.android.com/apk/res/android" > + <item android:state_enabled="true" android:state_pressed="false" android:drawable="@drawable/icon_delete"/> + <item android:state_pressed="true" android:drawable="@drawable/icon_delete_p"/> + <item android:state_enabled="false" android:drawable="@drawable/icon_delete"/> +</selector> diff --git a/app/src/main/res/drawable/icon_speed_limit_off.xml b/app/src/main/res/drawable/icon_speed_limit_off.xml new file mode 100644 index 00000000..2811d192 --- /dev/null +++ b/app/src/main/res/drawable/icon_speed_limit_off.xml @@ -0,0 +1,12 @@ +<shape xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="oval" + android:useLevel="false"> + <stroke + android:width="1.33dp" + android:color="#000000" /> + <size + android:width="24dp" + android:height="24dp" /> + <solid android:color="@color/white" /> + +</shape> \ 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 8b315075..159693fb 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -44,6 +44,7 @@ android:layout_marginTop="20dp" android:onClick="@{()->mainActivity.openMenu()}" android:src="@drawable/baseline_person_24" + android:background="@null" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -55,36 +56,42 @@ app:layout_constraintLeft_toLeftOf="@id/main_activity_person_center" app:layout_constraintTop_toBottomOf="@id/main_activity_person_center" /> - <ImageButton - android:id="@+id/main_activity_location" - android:layout_width="48dp" - android:layout_height="48dp" - android:layout_marginLeft="20dp" - android:layout_marginBottom="80dp" - android:onClick="@{()->viewModel.onClickLocationButton()}" - android:src="@drawable/baseline_my_location_24" + <LinearLayout + android:orientation="vertical" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginRight="8dp" + android:layout_marginBottom="108dp" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintLeft_toLeftOf="parent" /> + app:layout_constraintRight_toRightOf="parent" + tools:ignore="MissingConstraints"> - <ImageButton - android:id="@+id/main_activity_voice" - android:layout_width="48dp" - android:layout_height="48dp" - android:layout_marginRight="20dp" - android:layout_marginBottom="120dp" - android:src="@drawable/baseline_keyboard_voice_24" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintRight_toRightOf="parent" /> - <ImageButton - android:id="@+id/main_activity_line" - android:layout_width="48dp" - android:layout_height="48dp" - android:layout_marginBottom="10dp" - android:onClick="@{()->mainActivity.voiceOnclick()}" - android:src="@drawable/baseline_keyboard_voice_24" - app:layout_constraintBottom_toTopOf="@id/main_activity_voice" - app:layout_constraintRight_toRightOf="@id/main_activity_voice" /> + <ImageButton + android:id="@+id/main_activity_voice" + android:layout_width="48dp" + android:layout_height="48dp" + android:src="@drawable/icon_add_voice" + android:background="@null" /> + + <ImageButton + android:id="@+id/main_activity_line" + android:layout_width="48dp" + android:layout_height="48dp" + android:onClick="@{()->mainActivity.voiceOnclick()}" + android:src="@drawable/icon_add_data" + android:background="@null" /> + + <ImageButton + android:id="@+id/main_activity_location" + android:layout_width="48dp" + android:layout_height="48dp" + android:onClick="@{()->viewModel.onClickLocationButton()}" + android:src="@drawable/icon_location" + android:background="@null" /> + + </LinearLayout> + <fragment android:id="@+id/main_activity_middle_fragment" @@ -118,6 +125,7 @@ android:layout_marginTop="20dp" android:onClick="@{()->mainActivity.openCamera()}" android:src="@drawable/icon_page_video_a1" + android:background="@null" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -129,6 +137,7 @@ android:layout_marginTop="20dp" android:onClick="@{()->mainActivity.openCamera()}" android:src="@drawable/baseline_person_24" + android:background="@null" android:visibility="gone" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/layout/adapter_sign.xml b/app/src/main/res/layout/adapter_sign.xml index 8e1a9042..b77c195a 100644 --- a/app/src/main/res/layout/adapter_sign.xml +++ b/app/src/main/res/layout/adapter_sign.xml @@ -1,15 +1,15 @@ <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - android:layout_width="wrap_content" - android:layout_height="wrap_content" + android:layout_width="193dp" + android:layout_height="78dp" android:background="@mipmap/bg_sign" tools:context="com.navinfo.omqs.ui.activity.map.SignAdapter"> <TextView android:id="@+id/sign_main_icon" - android:layout_width="wrap_content" - android:layout_height="wrap_content" + android:layout_width="40dp" + android:layout_height="40dp" android:layout_marginLeft="19dp" android:layout_marginTop="4dp" android:background="@drawable/icon_speed_limit" diff --git a/app/src/main/res/layout/fragment_evaluation_result.xml b/app/src/main/res/layout/fragment_evaluation_result.xml index 3708a3de..78d85177 100644 --- a/app/src/main/res/layout/fragment_evaluation_result.xml +++ b/app/src/main/res/layout/fragment_evaluation_result.xml @@ -28,13 +28,12 @@ <com.google.android.material.appbar.MaterialToolbar android:id="@+id/evaluation_bar" - style="@style/Widget.MaterialComponents.Toolbar.Surface" + style="@style/card_title_font_default" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" - android:background="@color/default_blue" + android:background="@color/white" app:menu="@menu/evaluation_bar_mean" - app:navigationIcon="@drawable/btn_back_xml" - app:title="测评结果" /> + app:title="Mark" /> </com.google.android.material.appbar.AppBarLayout> @@ -82,7 +81,7 @@ android:layout_height="wrap_content" android:layout_marginTop="5dp" android:background="@drawable/fm_card_map_down_status_bg" - android:onClick="@{fragment.onClick}" + android:onClick="@{fragment::onClick}" android:text="@{viewModel.liveDataQsRecordBean.phenomenon}" /> <TextView @@ -91,7 +90,7 @@ android:layout_height="wrap_content" android:layout_marginTop="5dp" android:background="@drawable/fm_card_map_down_status_bg" - android:onClick="@{fragment.onClick}" + android:onClick="@{fragment::onClick}" android:text="@{viewModel.liveDataQsRecordBean.problemLink}" /> <TextView @@ -100,7 +99,7 @@ android:layout_height="wrap_content" android:layout_marginTop="5dp" android:background="@drawable/fm_card_map_down_status_bg" - android:onClick="@{fragment.onClick}" + android:onClick="@{fragment::onClick}" android:text="@{viewModel.liveDataQsRecordBean.cause}" /> <TextView @@ -128,6 +127,7 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" + style="@style/card_title_font_default" android:text="多媒体" /> <androidx.recyclerview.widget.RecyclerView diff --git a/app/src/main/res/menu/evaluation_bar_mean.xml b/app/src/main/res/menu/evaluation_bar_mean.xml index 16c99b49..0523ce75 100644 --- a/app/src/main/res/menu/evaluation_bar_mean.xml +++ b/app/src/main/res/menu/evaluation_bar_mean.xml @@ -5,7 +5,7 @@ <item android:id="@+id/delete" android:contentDescription="删除数据" - android:icon="@drawable/baseline_delete_forever_24" + android:icon="@drawable/btn_delete_xml" android:title="删除" app:showAsAction="ifRoom" /> <item diff --git a/app/src/main/res/mipmap-xxhdpi/icon_kind_code.png b/app/src/main/res/mipmap-xxhdpi/icon_kind_code.png new file mode 100644 index 00000000..1112deb0 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_kind_code.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k1.png b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k1.png new file mode 100644 index 00000000..e1f366a7 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k1.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k10.png b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k10.png new file mode 100644 index 00000000..cbd8ad6b Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k10.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k11.png b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k11.png new file mode 100644 index 00000000..380a69a4 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k11.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k13.png b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k13.png new file mode 100644 index 00000000..865ab4db Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k13.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k15.png b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k15.png new file mode 100644 index 00000000..545c19bc Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k15.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k2.png b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k2.png new file mode 100644 index 00000000..899e89bf Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k2.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k3.png b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k3.png new file mode 100644 index 00000000..39135487 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k3.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k4.png b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k4.png new file mode 100644 index 00000000..3a17c919 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k4.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k6.png b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k6.png new file mode 100644 index 00000000..c27d40a7 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k6.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k7.png b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k7.png new file mode 100644 index 00000000..510b7fb4 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k7.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k8.png b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k8.png new file mode 100644 index 00000000..5df868bc Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k8.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k9.png b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k9.png new file mode 100644 index 00000000..cc923bed Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_kind_code_k9.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_lane_num1.png b/app/src/main/res/mipmap-xxhdpi/icon_lane_num1.png new file mode 100644 index 00000000..6a98fbcd Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_lane_num1.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_lane_num10.png b/app/src/main/res/mipmap-xxhdpi/icon_lane_num10.png new file mode 100644 index 00000000..092eba2b Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_lane_num10.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_lane_num11.png b/app/src/main/res/mipmap-xxhdpi/icon_lane_num11.png new file mode 100644 index 00000000..3eebf144 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_lane_num11.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_lane_num12.png b/app/src/main/res/mipmap-xxhdpi/icon_lane_num12.png new file mode 100644 index 00000000..a7cf1dd4 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_lane_num12.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_lane_num2.png b/app/src/main/res/mipmap-xxhdpi/icon_lane_num2.png new file mode 100644 index 00000000..59bd944e Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_lane_num2.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_lane_num3.png b/app/src/main/res/mipmap-xxhdpi/icon_lane_num3.png new file mode 100644 index 00000000..bf3cddb4 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_lane_num3.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_lane_num4.png b/app/src/main/res/mipmap-xxhdpi/icon_lane_num4.png new file mode 100644 index 00000000..8e7eda9d Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_lane_num4.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_lane_num5.png b/app/src/main/res/mipmap-xxhdpi/icon_lane_num5.png new file mode 100644 index 00000000..e281281c Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_lane_num5.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_lane_num6.png b/app/src/main/res/mipmap-xxhdpi/icon_lane_num6.png new file mode 100644 index 00000000..6a974da4 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_lane_num6.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_lane_num7.png b/app/src/main/res/mipmap-xxhdpi/icon_lane_num7.png new file mode 100644 index 00000000..d0e2acab Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_lane_num7.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_lane_num8.png b/app/src/main/res/mipmap-xxhdpi/icon_lane_num8.png new file mode 100644 index 00000000..fe06e70b Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_lane_num8.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_lane_num9.png b/app/src/main/res/mipmap-xxhdpi/icon_lane_num9.png new file mode 100644 index 00000000..7fa6eaf3 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_lane_num9.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_road_direction.png b/app/src/main/res/mipmap-xxhdpi/icon_road_direction.png new file mode 100644 index 00000000..2a0ba3a7 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_road_direction.png differ diff --git a/app/src/main/res/navigation/right_fragment_nav_graph.xml b/app/src/main/res/navigation/right_fragment_nav_graph.xml index a8b5714f..698ffc4f 100644 --- a/app/src/main/res/navigation/right_fragment_nav_graph.xml +++ b/app/src/main/res/navigation/right_fragment_nav_graph.xml @@ -9,16 +9,25 @@ android:id="@+id/EmptyFragment" android:name="com.navinfo.omqs.ui.fragment.empty.EmptyFragment" android:label="空页面" - tools:layout="@layout/fragment_empty"></fragment> + tools:layout="@layout/fragment_empty"> +<!-- <action--> +<!-- android:id="@+id/EmptyFragment_to_EvaluationResultFragment"--> +<!-- app:destination="@id/EvaluationResultFragment" />--> +<!-- <argument--> +<!-- android:name="QsId"--> +<!-- app:argType="string"--> +<!-- app:nullable="true" />--> +<!-- <argument--> +<!-- android:name="SignBean"--> +<!-- app:argType="com.navinfo.omqs.ui.activity.map.SignBean"--> +<!-- />--> + </fragment> <fragment android:id="@+id/EvaluationResultFragment" android:name="com.navinfo.omqs.ui.fragment.evaluationresult.EvaluationResultFragment" android:label="评测页面" tools:layout="@layout/fragment_evaluation_result"> - <argument - android:name="QsId" - app:argType="string" - app:nullable="true" /> + </fragment> </navigation> \ 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 7eea917c..58004db6 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -163,6 +163,7 @@ <color name="cv_gray_153">#999999</color> <color name="cvm_red">#FF3B30</color> <color name="btn_blue_solid">#108ee9</color> + <color name="titleColor">#2631DD</color> <!-- 一键连接对话框背景色 --> <color name="bg_gray2">#d1d1d1</color> <!-- 一键连接时间显示区域背景色 --> diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 4ad74c4a..03822f9d 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -8,6 +8,7 @@ <dimen name="default_widget_padding">10dp</dimen> <dimen name="left_pannel_title_font" comment="左侧弹出框顶部标题字体大小">22sp</dimen> <dimen name="default_font_size" comment="默认字体大小,style中父最顶层">15sp</dimen> + <dimen name="card_title_font_size">24sp</dimen> <dimen name="card_title_font_2size">13sp</dimen> <dimen name="card_title_font_3size">10sp</dimen> <dimen name="one">1dp</dimen> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 101bdcfd..5ef5bea3 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -23,6 +23,15 @@ <item name="android:layout_height">wrap_content</item> </style> + <!-- 默认字体 --> + <style name="card_title_font_default"> + <item name="android:gravity">center_vertical</item> + <item name="android:textSize">@dimen/card_title_font_size</item> + <item name="android:textColor">@color/titleColor</item> + <item name="android:layout_width">wrap_content</item> + <item name="android:layout_height">wrap_content</item> + </style> + <!-- 默认字体 --> <style name="content_font_default_size_13sp"> <item name="android:gravity">center_vertical</item> diff --git a/build.gradle b/build.gradle index 63d6efae..0a318d80 100644 --- a/build.gradle +++ b/build.gradle @@ -4,6 +4,7 @@ buildscript { dependencies { classpath "io.realm:realm-gradle-plugin:10.11.1" + classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.5.3" } } plugins { @@ -11,4 +12,5 @@ plugins { id 'com.android.library' version '7.3.1' apply false id 'org.jetbrains.kotlin.android' version '1.8.0' apply false id 'com.google.dagger.hilt.android' version '2.44' apply false + } 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 e9c64238..60840398 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 @@ -249,7 +249,7 @@ public final class NIMapView extends RelativeLayout { // 增加比例尺图层 NaviMapScaleBar naviMapScaleBar = new NaviMapScaleBar(getVtmMap()); - naviMapScaleBar.initScaleBarLayer(GLViewport.Position.BOTTOM_LEFT, 25, 60); + naviMapScaleBar.initScaleBarLayer(GLViewport.Position.BOTTOM_LEFT, 20, 84); // if (gridLayer == null) { // gridLayer = new TileGridLayer(getVtmMap()); 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 d5d2145f..6079bfcd 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 @@ -26,7 +26,7 @@ import org.oscim.layers.vector.VectorLayer import org.oscim.layers.vector.geometries.Style import org.oscim.map.Map -@RequiresApi(Build.VERSION_CODES.N) +@RequiresApi(Build.VERSION_CODES.M) class LineHandler(context: AppCompatActivity, mapView: NIMapView) : BaseHandler(context, mapView), Map.UpdateListener { diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBDataDecoder.java b/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBDataDecoder.java index 17111dc6..65fb92fc 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBDataDecoder.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBDataDecoder.java @@ -74,7 +74,7 @@ public class OMDBDataDecoder extends TileDecoder { listResult.stream().iterator().forEachRemaining(new Consumer<RenderEntity>() { @Override public void accept(RenderEntity renderEntity) { - Log.d("RealmDBTileDataSource", renderEntity.getGeometry()); +// Log.d("RealmDBTileDataSource", renderEntity.getGeometry()); Map<String, Object> properties= new HashMap<>(renderEntity.getProperties().size()); properties.putAll(renderEntity.getProperties()); parseGeometry(renderEntity.getTable(), renderEntity.getWkt(), properties); diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBTileDataSource.java b/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBTileDataSource.java index 277c6f3c..897fb2ba 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBTileDataSource.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBTileDataSource.java @@ -54,7 +54,7 @@ public class OMDBTileDataSource implements ITileDataSource { mThreadLocalDecoders.get().decode(tile, mapDataSink, listResult); } mapDataSink.completed(QueryResult.SUCCESS); - Log.d("RealmDBTileDataSource", "tile:"+tile.getBoundingBox().toString()); +// Log.d("RealmDBTileDataSource", "tile:"+tile.getBoundingBox().toString()); } else { mapDataSink.completed(QueryResult.SUCCESS); } diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/source/RealmDBTileDataSource.java b/collect-library/src/main/java/com/navinfo/collect/library/map/source/RealmDBTileDataSource.java index f2fac328..5c91adc8 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/source/RealmDBTileDataSource.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/source/RealmDBTileDataSource.java @@ -54,7 +54,7 @@ public class RealmDBTileDataSource implements ITileDataSource { List<GeometryFeatureEntity> listResult = realmQuery.distinct("id").findAll(); mThreadLocalDecoders.get().decode(tile, mapDataSink, listResult); mapDataSink.completed(QueryResult.SUCCESS); - Log.d("RealmDBTileDataSource", "tile:"+tile.getBoundingBox().toString()); +// Log.d("RealmDBTileDataSource", "tile:"+tile.getBoundingBox().toString()); } else { mapDataSink.completed(QueryResult.SUCCESS); } diff --git a/collect-library/src/main/java/org/videolan/vlc/Util.java b/collect-library/src/main/java/org/videolan/vlc/Util.java index f5a52091..b8f24974 100644 --- a/collect-library/src/main/java/org/videolan/vlc/Util.java +++ b/collect-library/src/main/java/org/videolan/vlc/Util.java @@ -20,6 +20,7 @@ package org.videolan.vlc; +import android.app.Application; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; @@ -364,10 +365,10 @@ public class Util { return dp; } - public static int convertDpToPx(int dp) { + public static int convertDpToPx(Context context,int dp) { return Math.round( TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, - VLCApplication.getAppResources().getDisplayMetrics()) + context.getResources().getDisplayMetrics()) ); } diff --git a/collect-library/src/main/res/drawable/map_zoom_bg_xml.xml b/collect-library/src/main/res/drawable/map_zoom_bg_xml.xml new file mode 100644 index 00000000..ff7015eb --- /dev/null +++ b/collect-library/src/main/res/drawable/map_zoom_bg_xml.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:width="72dp" android:height="155dp"> + <shape android:shape="rectangle"> + <stroke android:width="3px" android:color="#FFFFF0" /> + <solid android:color="#FFFFFFFF" /> + <corners android:radius="36dp" /> + </shape> + </item> +</selector> diff --git a/collect-library/src/main/res/layout/base_map_layout.xml b/collect-library/src/main/res/layout/base_map_layout.xml index 26ddc2eb..63c866f4 100644 --- a/collect-library/src/main/res/layout/base_map_layout.xml +++ b/collect-library/src/main/res/layout/base_map_layout.xml @@ -32,6 +32,9 @@ android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentBottom="true" + android:layout_marginRight="20dp" + android:layout_marginBottom="48dp" + android:background="@drawable/map_zoom_bg_xml" android:orientation="vertical" android:padding="@dimen/nimap_defalut_padding"> @@ -39,7 +42,7 @@ android:id="@+id/navinfo_map_zoom_in" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:background="@drawable/bg_nimap_default_button" + android:background="@null" android:clickable="true" android:focusable="true" android:src="@drawable/icon_map_zoom_in" /> @@ -52,7 +55,7 @@ android:id="@+id/navinfo_map_zoom_out" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:background="@drawable/bg_nimap_default_button" + android:background="@null" android:clickable="true" android:focusable="true" android:src="@drawable/icon_map_zoom_out" /> diff --git a/collect-library/src/main/res/mipmap-hdpi/icon_zoom_in.png b/collect-library/src/main/res/mipmap-hdpi/icon_zoom_in.png index 3b1fe578..e1265264 100644 Binary files a/collect-library/src/main/res/mipmap-hdpi/icon_zoom_in.png and b/collect-library/src/main/res/mipmap-hdpi/icon_zoom_in.png differ diff --git a/collect-library/src/main/res/mipmap-hdpi/icon_zoom_in_p.png b/collect-library/src/main/res/mipmap-hdpi/icon_zoom_in_p.png index 5f3b2767..c7ad1ed7 100644 Binary files a/collect-library/src/main/res/mipmap-hdpi/icon_zoom_in_p.png and b/collect-library/src/main/res/mipmap-hdpi/icon_zoom_in_p.png differ diff --git a/collect-library/src/main/res/mipmap-hdpi/icon_zoom_out.png b/collect-library/src/main/res/mipmap-hdpi/icon_zoom_out.png index 73581b30..2cce2ea1 100644 Binary files a/collect-library/src/main/res/mipmap-hdpi/icon_zoom_out.png and b/collect-library/src/main/res/mipmap-hdpi/icon_zoom_out.png differ diff --git a/collect-library/src/main/res/mipmap-hdpi/icon_zoom_out_p.png b/collect-library/src/main/res/mipmap-hdpi/icon_zoom_out_p.png index 5b3a2c41..6ff2389a 100644 Binary files a/collect-library/src/main/res/mipmap-hdpi/icon_zoom_out_p.png and b/collect-library/src/main/res/mipmap-hdpi/icon_zoom_out_p.png differ diff --git a/collect-library/src/main/res/values/dimens.xml b/collect-library/src/main/res/values/dimens.xml index e4187507..29624066 100644 --- a/collect-library/src/main/res/values/dimens.xml +++ b/collect-library/src/main/res/values/dimens.xml @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <dimen name="nimap_defalut_padding">12dp</dimen> + <dimen name="nimap_defalut_padding">5dp</dimen> </resources> \ No newline at end of file