diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index 95567db..bd136e7 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index 95567db..bd136e7 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 001943c..46b3524 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -13,19 +13,26 @@ import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory import com.amap.api.maps.CoordinateConverter -import com.amap.api.maps.model.* +import com.amap.api.maps.model.CameraPosition +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Marker +import com.amap.api.maps.model.MarkerOptions import com.casic.smarttube.R import com.casic.smarttube.adapter.GroupListAdapter import com.casic.smarttube.model.MapDeviceModel import com.casic.smarttube.model.ProjectGroupModel import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant +import com.casic.smarttube.utils.RouteOnMap import com.casic.smarttube.view.AddDeviceActivity import com.casic.smarttube.vm.DeviceViewModel import com.casic.smarttube.vm.ProjectGroupViewModel import com.casic.smarttube.widgets.GaoDeClusterMarkerView import com.google.android.material.bottomsheet.BottomSheetBehavior -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.obtainScreenHeight +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.EasyPopupWindow import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -176,6 +183,8 @@ aMap.addOnMarkerClickListener(this) // 点击marker弹出自定义popup aMap.setInfoWindowAdapter(this) + // 点击popup + aMap.setOnInfoWindowClickListener(this) } private fun bindRecyclerView(dataBeans: MutableList) { @@ -370,8 +379,8 @@ "窨井经纬度异常,无法开启导航".show(requireContext()) return } - Poi(p0.snippet, LatLng(lat.toDouble(), lng.toDouble()), "").showRouteOnMap( - requireContext() + RouteOnMap.startNavigation( + requireContext(), p0.snippet, LatLng(lat.toDouble(), lng.toDouble()) ) } diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index 95567db..bd136e7 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 001943c..46b3524 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -13,19 +13,26 @@ import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory import com.amap.api.maps.CoordinateConverter -import com.amap.api.maps.model.* +import com.amap.api.maps.model.CameraPosition +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Marker +import com.amap.api.maps.model.MarkerOptions import com.casic.smarttube.R import com.casic.smarttube.adapter.GroupListAdapter import com.casic.smarttube.model.MapDeviceModel import com.casic.smarttube.model.ProjectGroupModel import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant +import com.casic.smarttube.utils.RouteOnMap import com.casic.smarttube.view.AddDeviceActivity import com.casic.smarttube.vm.DeviceViewModel import com.casic.smarttube.vm.ProjectGroupViewModel import com.casic.smarttube.widgets.GaoDeClusterMarkerView import com.google.android.material.bottomsheet.BottomSheetBehavior -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.obtainScreenHeight +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.EasyPopupWindow import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -176,6 +183,8 @@ aMap.addOnMarkerClickListener(this) // 点击marker弹出自定义popup aMap.setInfoWindowAdapter(this) + // 点击popup + aMap.setOnInfoWindowClickListener(this) } private fun bindRecyclerView(dataBeans: MutableList) { @@ -370,8 +379,8 @@ "窨井经纬度异常,无法开启导航".show(requireContext()) return } - Poi(p0.snippet, LatLng(lat.toDouble(), lng.toDouble()), "").showRouteOnMap( - requireContext() + RouteOnMap.startNavigation( + requireContext(), p0.snippet, LatLng(lat.toDouble(), lng.toDouble()) ) } diff --git a/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java b/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java index c19899a..30f7f7a 100644 --- a/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java +++ b/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java @@ -45,7 +45,7 @@ private String bfztName; private String coordinateX; private String coordinateY; - private int deep; + private String deep; private String deptName; private String deptid; private String deviceCount; @@ -110,11 +110,11 @@ this.coordinateY = coordinateY; } - public int getDeep() { + public String getDeep() { return deep; } - public void setDeep(int deep) { + public void setDeep(String deep) { this.deep = deep; } diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index 95567db..bd136e7 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 001943c..46b3524 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -13,19 +13,26 @@ import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory import com.amap.api.maps.CoordinateConverter -import com.amap.api.maps.model.* +import com.amap.api.maps.model.CameraPosition +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Marker +import com.amap.api.maps.model.MarkerOptions import com.casic.smarttube.R import com.casic.smarttube.adapter.GroupListAdapter import com.casic.smarttube.model.MapDeviceModel import com.casic.smarttube.model.ProjectGroupModel import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant +import com.casic.smarttube.utils.RouteOnMap import com.casic.smarttube.view.AddDeviceActivity import com.casic.smarttube.vm.DeviceViewModel import com.casic.smarttube.vm.ProjectGroupViewModel import com.casic.smarttube.widgets.GaoDeClusterMarkerView import com.google.android.material.bottomsheet.BottomSheetBehavior -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.obtainScreenHeight +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.EasyPopupWindow import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -176,6 +183,8 @@ aMap.addOnMarkerClickListener(this) // 点击marker弹出自定义popup aMap.setInfoWindowAdapter(this) + // 点击popup + aMap.setOnInfoWindowClickListener(this) } private fun bindRecyclerView(dataBeans: MutableList) { @@ -370,8 +379,8 @@ "窨井经纬度异常,无法开启导航".show(requireContext()) return } - Poi(p0.snippet, LatLng(lat.toDouble(), lng.toDouble()), "").showRouteOnMap( - requireContext() + RouteOnMap.startNavigation( + requireContext(), p0.snippet, LatLng(lat.toDouble(), lng.toDouble()) ) } diff --git a/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java b/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java index c19899a..30f7f7a 100644 --- a/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java +++ b/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java @@ -45,7 +45,7 @@ private String bfztName; private String coordinateX; private String coordinateY; - private int deep; + private String deep; private String deptName; private String deptid; private String deviceCount; @@ -110,11 +110,11 @@ this.coordinateY = coordinateY; } - public int getDeep() { + public String getDeep() { return deep; } - public void setDeep(int deep) { + public void setDeep(String deep) { this.deep = deep; } diff --git a/app/src/main/java/com/casic/smarttube/utils/RouteOnMap.kt b/app/src/main/java/com/casic/smarttube/utils/RouteOnMap.kt new file mode 100644 index 0000000..e424721 --- /dev/null +++ b/app/src/main/java/com/casic/smarttube/utils/RouteOnMap.kt @@ -0,0 +1,27 @@ +package com.casic.smarttube.utils + +import android.content.Context +import android.graphics.Color +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Poi +import com.pengxh.kt.lite.extensions.showBusRouteOnMap +import com.pengxh.kt.lite.extensions.showRouteOnMap +import com.pengxh.kt.lite.widget.dialog.BottomActionSheet + +object RouteOnMap { + fun startNavigation(context: Context, s: String, latlng: LatLng) { + BottomActionSheet.Builder() + .setContext(context) + .setItemTextColor(Color.BLUE) + .setActionItemTitle(arrayListOf("步行导航", "驾驶模式")) + .setOnActionSheetListener(object : + BottomActionSheet.OnActionSheetListener { + override fun onActionItemClick(position: Int) { + when (position) { + 0 -> Poi(s, latlng, "").showRouteOnMap(context) + 1 -> Poi(s, latlng, "").showBusRouteOnMap(context) + } + } + }).build().show() + } +} \ No newline at end of file diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index 95567db..bd136e7 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 001943c..46b3524 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -13,19 +13,26 @@ import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory import com.amap.api.maps.CoordinateConverter -import com.amap.api.maps.model.* +import com.amap.api.maps.model.CameraPosition +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Marker +import com.amap.api.maps.model.MarkerOptions import com.casic.smarttube.R import com.casic.smarttube.adapter.GroupListAdapter import com.casic.smarttube.model.MapDeviceModel import com.casic.smarttube.model.ProjectGroupModel import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant +import com.casic.smarttube.utils.RouteOnMap import com.casic.smarttube.view.AddDeviceActivity import com.casic.smarttube.vm.DeviceViewModel import com.casic.smarttube.vm.ProjectGroupViewModel import com.casic.smarttube.widgets.GaoDeClusterMarkerView import com.google.android.material.bottomsheet.BottomSheetBehavior -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.obtainScreenHeight +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.EasyPopupWindow import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -176,6 +183,8 @@ aMap.addOnMarkerClickListener(this) // 点击marker弹出自定义popup aMap.setInfoWindowAdapter(this) + // 点击popup + aMap.setOnInfoWindowClickListener(this) } private fun bindRecyclerView(dataBeans: MutableList) { @@ -370,8 +379,8 @@ "窨井经纬度异常,无法开启导航".show(requireContext()) return } - Poi(p0.snippet, LatLng(lat.toDouble(), lng.toDouble()), "").showRouteOnMap( - requireContext() + RouteOnMap.startNavigation( + requireContext(), p0.snippet, LatLng(lat.toDouble(), lng.toDouble()) ) } diff --git a/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java b/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java index c19899a..30f7f7a 100644 --- a/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java +++ b/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java @@ -45,7 +45,7 @@ private String bfztName; private String coordinateX; private String coordinateY; - private int deep; + private String deep; private String deptName; private String deptid; private String deviceCount; @@ -110,11 +110,11 @@ this.coordinateY = coordinateY; } - public int getDeep() { + public String getDeep() { return deep; } - public void setDeep(int deep) { + public void setDeep(String deep) { this.deep = deep; } diff --git a/app/src/main/java/com/casic/smarttube/utils/RouteOnMap.kt b/app/src/main/java/com/casic/smarttube/utils/RouteOnMap.kt new file mode 100644 index 0000000..e424721 --- /dev/null +++ b/app/src/main/java/com/casic/smarttube/utils/RouteOnMap.kt @@ -0,0 +1,27 @@ +package com.casic.smarttube.utils + +import android.content.Context +import android.graphics.Color +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Poi +import com.pengxh.kt.lite.extensions.showBusRouteOnMap +import com.pengxh.kt.lite.extensions.showRouteOnMap +import com.pengxh.kt.lite.widget.dialog.BottomActionSheet + +object RouteOnMap { + fun startNavigation(context: Context, s: String, latlng: LatLng) { + BottomActionSheet.Builder() + .setContext(context) + .setItemTextColor(Color.BLUE) + .setActionItemTitle(arrayListOf("步行导航", "驾驶模式")) + .setOnActionSheetListener(object : + BottomActionSheet.OnActionSheetListener { + override fun onActionItemClick(position: Int) { + when (position) { + 0 -> Poi(s, latlng, "").showRouteOnMap(context) + 1 -> Poi(s, latlng, "").showBusRouteOnMap(context) + } + } + }).build().show() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt index 8063afd..1b1d8b9 100644 --- a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt @@ -11,7 +11,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.SaveKeyValues -import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_login.* class LoginActivity : KotlinBaseActivity() { @@ -80,17 +79,13 @@ finish() } }) - loginViewModel.loadState.observe(this, { loginState -> - when (loginState) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("登录中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } + loginViewModel.loadState.observe(this, { + dialogManager.dismissLoadingDialog() }) } }) + authenticateViewModel.loadState.observe(this, { + dialogManager.showLoadingDialog("登录中,请稍后") + }) } } \ No newline at end of file diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index 95567db..bd136e7 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 001943c..46b3524 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -13,19 +13,26 @@ import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory import com.amap.api.maps.CoordinateConverter -import com.amap.api.maps.model.* +import com.amap.api.maps.model.CameraPosition +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Marker +import com.amap.api.maps.model.MarkerOptions import com.casic.smarttube.R import com.casic.smarttube.adapter.GroupListAdapter import com.casic.smarttube.model.MapDeviceModel import com.casic.smarttube.model.ProjectGroupModel import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant +import com.casic.smarttube.utils.RouteOnMap import com.casic.smarttube.view.AddDeviceActivity import com.casic.smarttube.vm.DeviceViewModel import com.casic.smarttube.vm.ProjectGroupViewModel import com.casic.smarttube.widgets.GaoDeClusterMarkerView import com.google.android.material.bottomsheet.BottomSheetBehavior -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.obtainScreenHeight +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.EasyPopupWindow import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -176,6 +183,8 @@ aMap.addOnMarkerClickListener(this) // 点击marker弹出自定义popup aMap.setInfoWindowAdapter(this) + // 点击popup + aMap.setOnInfoWindowClickListener(this) } private fun bindRecyclerView(dataBeans: MutableList) { @@ -370,8 +379,8 @@ "窨井经纬度异常,无法开启导航".show(requireContext()) return } - Poi(p0.snippet, LatLng(lat.toDouble(), lng.toDouble()), "").showRouteOnMap( - requireContext() + RouteOnMap.startNavigation( + requireContext(), p0.snippet, LatLng(lat.toDouble(), lng.toDouble()) ) } diff --git a/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java b/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java index c19899a..30f7f7a 100644 --- a/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java +++ b/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java @@ -45,7 +45,7 @@ private String bfztName; private String coordinateX; private String coordinateY; - private int deep; + private String deep; private String deptName; private String deptid; private String deviceCount; @@ -110,11 +110,11 @@ this.coordinateY = coordinateY; } - public int getDeep() { + public String getDeep() { return deep; } - public void setDeep(int deep) { + public void setDeep(String deep) { this.deep = deep; } diff --git a/app/src/main/java/com/casic/smarttube/utils/RouteOnMap.kt b/app/src/main/java/com/casic/smarttube/utils/RouteOnMap.kt new file mode 100644 index 0000000..e424721 --- /dev/null +++ b/app/src/main/java/com/casic/smarttube/utils/RouteOnMap.kt @@ -0,0 +1,27 @@ +package com.casic.smarttube.utils + +import android.content.Context +import android.graphics.Color +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Poi +import com.pengxh.kt.lite.extensions.showBusRouteOnMap +import com.pengxh.kt.lite.extensions.showRouteOnMap +import com.pengxh.kt.lite.widget.dialog.BottomActionSheet + +object RouteOnMap { + fun startNavigation(context: Context, s: String, latlng: LatLng) { + BottomActionSheet.Builder() + .setContext(context) + .setItemTextColor(Color.BLUE) + .setActionItemTitle(arrayListOf("步行导航", "驾驶模式")) + .setOnActionSheetListener(object : + BottomActionSheet.OnActionSheetListener { + override fun onActionItemClick(position: Int) { + when (position) { + 0 -> Poi(s, latlng, "").showRouteOnMap(context) + 1 -> Poi(s, latlng, "").showBusRouteOnMap(context) + } + } + }).build().show() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt index 8063afd..1b1d8b9 100644 --- a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt @@ -11,7 +11,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.SaveKeyValues -import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_login.* class LoginActivity : KotlinBaseActivity() { @@ -80,17 +79,13 @@ finish() } }) - loginViewModel.loadState.observe(this, { loginState -> - when (loginState) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("登录中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } + loginViewModel.loadState.observe(this, { + dialogManager.dismissLoadingDialog() }) } }) + authenticateViewModel.loadState.observe(this, { + dialogManager.showLoadingDialog("登录中,请稍后") + }) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt index a3a2b85..1dad93e 100644 --- a/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt @@ -8,13 +8,13 @@ import com.amap.api.maps.model.* import com.casic.smarttube.R import com.casic.smarttube.utils.DialogManager +import com.casic.smarttube.utils.RouteOnMap import com.casic.smarttube.vm.AuthenticateViewModel import com.casic.smarttube.vm.WellViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.showRouteOnMap import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState @@ -76,9 +76,11 @@ "窨井经纬度异常,无法开启导航".show(this@WellDetailActivity) return } - Poi( - marker.snippet, LatLng(lat.toDouble(), lng.toDouble()), "" - ).showRouteOnMap(this@WellDetailActivity) + RouteOnMap.startNavigation( + this@WellDetailActivity, + marker.snippet, + LatLng(lat.toDouble(), lng.toDouble()) + ) } override fun onCancelClick() { @@ -99,19 +101,20 @@ wellCodeView.text = wellDetail.wellCode ownerShipView.text = wellDetail.deptName wellStateView.text = wellDetail.bfztName - wellDepthView.text = wellDetail.deep.toString() + wellDepthView.text = wellDetail.deep //绑定窨井位置 if (wellDetail.latGaode.isBlank() || wellDetail.lngGaode.isBlank()) { wellLocationView.text = wellDetail.position return@observe } val latLng = LatLng(wellDetail.latGaode.toDouble(), wellDetail.lngGaode.toDouble()) - val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) + val cameraPosition = CameraPosition(latLng, 10f, 0f, 0f) val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition) aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback { override fun onFinish() { //添加Marker val markerOptions = MarkerOptions() + .snippet(wellDetail.position) .position(latLng) .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location)) .draggable(true) diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index 95567db..bd136e7 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 001943c..46b3524 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -13,19 +13,26 @@ import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory import com.amap.api.maps.CoordinateConverter -import com.amap.api.maps.model.* +import com.amap.api.maps.model.CameraPosition +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Marker +import com.amap.api.maps.model.MarkerOptions import com.casic.smarttube.R import com.casic.smarttube.adapter.GroupListAdapter import com.casic.smarttube.model.MapDeviceModel import com.casic.smarttube.model.ProjectGroupModel import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant +import com.casic.smarttube.utils.RouteOnMap import com.casic.smarttube.view.AddDeviceActivity import com.casic.smarttube.vm.DeviceViewModel import com.casic.smarttube.vm.ProjectGroupViewModel import com.casic.smarttube.widgets.GaoDeClusterMarkerView import com.google.android.material.bottomsheet.BottomSheetBehavior -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.obtainScreenHeight +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.EasyPopupWindow import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -176,6 +183,8 @@ aMap.addOnMarkerClickListener(this) // 点击marker弹出自定义popup aMap.setInfoWindowAdapter(this) + // 点击popup + aMap.setOnInfoWindowClickListener(this) } private fun bindRecyclerView(dataBeans: MutableList) { @@ -370,8 +379,8 @@ "窨井经纬度异常,无法开启导航".show(requireContext()) return } - Poi(p0.snippet, LatLng(lat.toDouble(), lng.toDouble()), "").showRouteOnMap( - requireContext() + RouteOnMap.startNavigation( + requireContext(), p0.snippet, LatLng(lat.toDouble(), lng.toDouble()) ) } diff --git a/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java b/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java index c19899a..30f7f7a 100644 --- a/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java +++ b/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java @@ -45,7 +45,7 @@ private String bfztName; private String coordinateX; private String coordinateY; - private int deep; + private String deep; private String deptName; private String deptid; private String deviceCount; @@ -110,11 +110,11 @@ this.coordinateY = coordinateY; } - public int getDeep() { + public String getDeep() { return deep; } - public void setDeep(int deep) { + public void setDeep(String deep) { this.deep = deep; } diff --git a/app/src/main/java/com/casic/smarttube/utils/RouteOnMap.kt b/app/src/main/java/com/casic/smarttube/utils/RouteOnMap.kt new file mode 100644 index 0000000..e424721 --- /dev/null +++ b/app/src/main/java/com/casic/smarttube/utils/RouteOnMap.kt @@ -0,0 +1,27 @@ +package com.casic.smarttube.utils + +import android.content.Context +import android.graphics.Color +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Poi +import com.pengxh.kt.lite.extensions.showBusRouteOnMap +import com.pengxh.kt.lite.extensions.showRouteOnMap +import com.pengxh.kt.lite.widget.dialog.BottomActionSheet + +object RouteOnMap { + fun startNavigation(context: Context, s: String, latlng: LatLng) { + BottomActionSheet.Builder() + .setContext(context) + .setItemTextColor(Color.BLUE) + .setActionItemTitle(arrayListOf("步行导航", "驾驶模式")) + .setOnActionSheetListener(object : + BottomActionSheet.OnActionSheetListener { + override fun onActionItemClick(position: Int) { + when (position) { + 0 -> Poi(s, latlng, "").showRouteOnMap(context) + 1 -> Poi(s, latlng, "").showBusRouteOnMap(context) + } + } + }).build().show() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt index 8063afd..1b1d8b9 100644 --- a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt @@ -11,7 +11,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.SaveKeyValues -import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_login.* class LoginActivity : KotlinBaseActivity() { @@ -80,17 +79,13 @@ finish() } }) - loginViewModel.loadState.observe(this, { loginState -> - when (loginState) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("登录中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } + loginViewModel.loadState.observe(this, { + dialogManager.dismissLoadingDialog() }) } }) + authenticateViewModel.loadState.observe(this, { + dialogManager.showLoadingDialog("登录中,请稍后") + }) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt index a3a2b85..1dad93e 100644 --- a/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt @@ -8,13 +8,13 @@ import com.amap.api.maps.model.* import com.casic.smarttube.R import com.casic.smarttube.utils.DialogManager +import com.casic.smarttube.utils.RouteOnMap import com.casic.smarttube.vm.AuthenticateViewModel import com.casic.smarttube.vm.WellViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.showRouteOnMap import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState @@ -76,9 +76,11 @@ "窨井经纬度异常,无法开启导航".show(this@WellDetailActivity) return } - Poi( - marker.snippet, LatLng(lat.toDouble(), lng.toDouble()), "" - ).showRouteOnMap(this@WellDetailActivity) + RouteOnMap.startNavigation( + this@WellDetailActivity, + marker.snippet, + LatLng(lat.toDouble(), lng.toDouble()) + ) } override fun onCancelClick() { @@ -99,19 +101,20 @@ wellCodeView.text = wellDetail.wellCode ownerShipView.text = wellDetail.deptName wellStateView.text = wellDetail.bfztName - wellDepthView.text = wellDetail.deep.toString() + wellDepthView.text = wellDetail.deep //绑定窨井位置 if (wellDetail.latGaode.isBlank() || wellDetail.lngGaode.isBlank()) { wellLocationView.text = wellDetail.position return@observe } val latLng = LatLng(wellDetail.latGaode.toDouble(), wellDetail.lngGaode.toDouble()) - val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) + val cameraPosition = CameraPosition(latLng, 10f, 0f, 0f) val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition) aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback { override fun onFinish() { //添加Marker val markerOptions = MarkerOptions() + .snippet(wellDetail.position) .position(latLng) .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location)) .draggable(true) diff --git a/app/src/main/java/com/casic/smarttube/vm/AuthenticateViewModel.kt b/app/src/main/java/com/casic/smarttube/vm/AuthenticateViewModel.kt index 882fea2..7ef773f 100644 --- a/app/src/main/java/com/casic/smarttube/vm/AuthenticateViewModel.kt +++ b/app/src/main/java/com/casic/smarttube/vm/AuthenticateViewModel.kt @@ -14,6 +14,7 @@ import com.pengxh.kt.lite.extensions.launch import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.BaseViewModel +import com.pengxh.kt.lite.vm.LoadState class AuthenticateViewModel : BaseViewModel() { @@ -24,6 +25,7 @@ val streetModel = MutableLiveData() fun obtainPublicKey() = launch({ + loadState.value = LoadState.Loading val response = RetrofitServiceManager.authenticate() val responseCode = response.separateResponseCode() if (responseCode == 200) { diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index 95567db..bd136e7 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 001943c..46b3524 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -13,19 +13,26 @@ import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory import com.amap.api.maps.CoordinateConverter -import com.amap.api.maps.model.* +import com.amap.api.maps.model.CameraPosition +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Marker +import com.amap.api.maps.model.MarkerOptions import com.casic.smarttube.R import com.casic.smarttube.adapter.GroupListAdapter import com.casic.smarttube.model.MapDeviceModel import com.casic.smarttube.model.ProjectGroupModel import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant +import com.casic.smarttube.utils.RouteOnMap import com.casic.smarttube.view.AddDeviceActivity import com.casic.smarttube.vm.DeviceViewModel import com.casic.smarttube.vm.ProjectGroupViewModel import com.casic.smarttube.widgets.GaoDeClusterMarkerView import com.google.android.material.bottomsheet.BottomSheetBehavior -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.dp2px +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.obtainScreenHeight +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.EasyPopupWindow import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -176,6 +183,8 @@ aMap.addOnMarkerClickListener(this) // 点击marker弹出自定义popup aMap.setInfoWindowAdapter(this) + // 点击popup + aMap.setOnInfoWindowClickListener(this) } private fun bindRecyclerView(dataBeans: MutableList) { @@ -370,8 +379,8 @@ "窨井经纬度异常,无法开启导航".show(requireContext()) return } - Poi(p0.snippet, LatLng(lat.toDouble(), lng.toDouble()), "").showRouteOnMap( - requireContext() + RouteOnMap.startNavigation( + requireContext(), p0.snippet, LatLng(lat.toDouble(), lng.toDouble()) ) } diff --git a/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java b/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java index c19899a..30f7f7a 100644 --- a/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java +++ b/app/src/main/java/com/casic/smarttube/model/WellDetailModel.java @@ -45,7 +45,7 @@ private String bfztName; private String coordinateX; private String coordinateY; - private int deep; + private String deep; private String deptName; private String deptid; private String deviceCount; @@ -110,11 +110,11 @@ this.coordinateY = coordinateY; } - public int getDeep() { + public String getDeep() { return deep; } - public void setDeep(int deep) { + public void setDeep(String deep) { this.deep = deep; } diff --git a/app/src/main/java/com/casic/smarttube/utils/RouteOnMap.kt b/app/src/main/java/com/casic/smarttube/utils/RouteOnMap.kt new file mode 100644 index 0000000..e424721 --- /dev/null +++ b/app/src/main/java/com/casic/smarttube/utils/RouteOnMap.kt @@ -0,0 +1,27 @@ +package com.casic.smarttube.utils + +import android.content.Context +import android.graphics.Color +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Poi +import com.pengxh.kt.lite.extensions.showBusRouteOnMap +import com.pengxh.kt.lite.extensions.showRouteOnMap +import com.pengxh.kt.lite.widget.dialog.BottomActionSheet + +object RouteOnMap { + fun startNavigation(context: Context, s: String, latlng: LatLng) { + BottomActionSheet.Builder() + .setContext(context) + .setItemTextColor(Color.BLUE) + .setActionItemTitle(arrayListOf("步行导航", "驾驶模式")) + .setOnActionSheetListener(object : + BottomActionSheet.OnActionSheetListener { + override fun onActionItemClick(position: Int) { + when (position) { + 0 -> Poi(s, latlng, "").showRouteOnMap(context) + 1 -> Poi(s, latlng, "").showBusRouteOnMap(context) + } + } + }).build().show() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt index 8063afd..1b1d8b9 100644 --- a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt @@ -11,7 +11,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.SaveKeyValues -import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_login.* class LoginActivity : KotlinBaseActivity() { @@ -80,17 +79,13 @@ finish() } }) - loginViewModel.loadState.observe(this, { loginState -> - when (loginState) { - is LoadState.Loading -> { - dialogManager.showLoadingDialog("登录中,请稍后") - } - else -> { - dialogManager.dismissLoadingDialog() - } - } + loginViewModel.loadState.observe(this, { + dialogManager.dismissLoadingDialog() }) } }) + authenticateViewModel.loadState.observe(this, { + dialogManager.showLoadingDialog("登录中,请稍后") + }) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt index a3a2b85..1dad93e 100644 --- a/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt @@ -8,13 +8,13 @@ import com.amap.api.maps.model.* import com.casic.smarttube.R import com.casic.smarttube.utils.DialogManager +import com.casic.smarttube.utils.RouteOnMap import com.casic.smarttube.vm.AuthenticateViewModel import com.casic.smarttube.vm.WellViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.extensions.showRouteOnMap import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState @@ -76,9 +76,11 @@ "窨井经纬度异常,无法开启导航".show(this@WellDetailActivity) return } - Poi( - marker.snippet, LatLng(lat.toDouble(), lng.toDouble()), "" - ).showRouteOnMap(this@WellDetailActivity) + RouteOnMap.startNavigation( + this@WellDetailActivity, + marker.snippet, + LatLng(lat.toDouble(), lng.toDouble()) + ) } override fun onCancelClick() { @@ -99,19 +101,20 @@ wellCodeView.text = wellDetail.wellCode ownerShipView.text = wellDetail.deptName wellStateView.text = wellDetail.bfztName - wellDepthView.text = wellDetail.deep.toString() + wellDepthView.text = wellDetail.deep //绑定窨井位置 if (wellDetail.latGaode.isBlank() || wellDetail.lngGaode.isBlank()) { wellLocationView.text = wellDetail.position return@observe } val latLng = LatLng(wellDetail.latGaode.toDouble(), wellDetail.lngGaode.toDouble()) - val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) + val cameraPosition = CameraPosition(latLng, 10f, 0f, 0f) val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition) aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback { override fun onFinish() { //添加Marker val markerOptions = MarkerOptions() + .snippet(wellDetail.position) .position(latLng) .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location)) .draggable(true) diff --git a/app/src/main/java/com/casic/smarttube/vm/AuthenticateViewModel.kt b/app/src/main/java/com/casic/smarttube/vm/AuthenticateViewModel.kt index 882fea2..7ef773f 100644 --- a/app/src/main/java/com/casic/smarttube/vm/AuthenticateViewModel.kt +++ b/app/src/main/java/com/casic/smarttube/vm/AuthenticateViewModel.kt @@ -14,6 +14,7 @@ import com.pengxh.kt.lite.extensions.launch import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.BaseViewModel +import com.pengxh.kt.lite.vm.LoadState class AuthenticateViewModel : BaseViewModel() { @@ -24,6 +25,7 @@ val streetModel = MutableLiveData() fun obtainPublicKey() = launch({ + loadState.value = LoadState.Loading val response = RetrofitServiceManager.authenticate() val responseCode = response.separateResponseCode() if (responseCode == 200) { diff --git a/app/src/main/java/com/casic/smarttube/vm/LoginViewModel.kt b/app/src/main/java/com/casic/smarttube/vm/LoginViewModel.kt index 5211816..2a50736 100644 --- a/app/src/main/java/com/casic/smarttube/vm/LoginViewModel.kt +++ b/app/src/main/java/com/casic/smarttube/vm/LoginViewModel.kt @@ -21,7 +21,6 @@ val outResultModel = MutableLiveData() fun enter(sid: String, account: String, secretKey: String) = launch({ - loadState.value = LoadState.Loading val response = RetrofitServiceManager.login(sid, account, secretKey) val responseCode = response.separateResponseCode() if (responseCode == 200) {