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/app/smartwell/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
index d11f4ed..6e5e672 100644
--- a/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
@@ -11,20 +11,21 @@
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager
-import com.amap.api.location.AMapLocation
import com.amap.api.maps.AMap
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.app.smartwell.R
import com.casic.app.smartwell.adapter.HomeRecycleAdapter
import com.casic.app.smartwell.base.BaseApplication
-import com.casic.app.smartwell.callback.ILocationListener
import com.casic.app.smartwell.model.MapWellListModel
import com.casic.app.smartwell.utils.DialogHelper
import com.casic.app.smartwell.utils.LocaleConstant
-import com.casic.app.smartwell.utils.LocationHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.view.OvertimeOrderActivity
import com.casic.app.smartwell.view.WellManagementActivity
import com.casic.app.smartwell.view.WellOperationActivity
@@ -33,7 +34,10 @@
import com.casic.app.smartwell.vm.WorkOrderViewModel
import com.casic.app.smartwell.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.widget.EasyPopupWindow
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.fragment_home.view.*
@@ -144,23 +148,23 @@
}
}
- LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
- override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
- if (aMapLocation != null) {
- val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
- //移动到指定经纬度
- val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
- val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
- aMap.animateCamera(cameraUpdate, 1500, null)
- }
- }
- }, false)
+// LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
+// override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
+// if (aMapLocation != null) {
+// val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
+// //移动到指定经纬度
+// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+// aMap.animateCamera(cameraUpdate, 1500, null)
+// }
+// }
+// }, false)
//计算所有点的中心点位置
-// val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
-// //移动到指定经纬度
-// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
-// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
-// aMap.animateCamera(cameraUpdate, 1500, null)
+ val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
+ //移动到指定经纬度
+ val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+ val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+ aMap.animateCamera(cameraUpdate, 1500, null)
}
})
@@ -373,8 +377,8 @@
"窨井经纬度异常,无法开启导航".show(BaseApplication.obtainInstance())
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/app/smartwell/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
index d11f4ed..6e5e672 100644
--- a/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
@@ -11,20 +11,21 @@
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager
-import com.amap.api.location.AMapLocation
import com.amap.api.maps.AMap
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.app.smartwell.R
import com.casic.app.smartwell.adapter.HomeRecycleAdapter
import com.casic.app.smartwell.base.BaseApplication
-import com.casic.app.smartwell.callback.ILocationListener
import com.casic.app.smartwell.model.MapWellListModel
import com.casic.app.smartwell.utils.DialogHelper
import com.casic.app.smartwell.utils.LocaleConstant
-import com.casic.app.smartwell.utils.LocationHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.view.OvertimeOrderActivity
import com.casic.app.smartwell.view.WellManagementActivity
import com.casic.app.smartwell.view.WellOperationActivity
@@ -33,7 +34,10 @@
import com.casic.app.smartwell.vm.WorkOrderViewModel
import com.casic.app.smartwell.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.widget.EasyPopupWindow
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.fragment_home.view.*
@@ -144,23 +148,23 @@
}
}
- LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
- override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
- if (aMapLocation != null) {
- val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
- //移动到指定经纬度
- val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
- val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
- aMap.animateCamera(cameraUpdate, 1500, null)
- }
- }
- }, false)
+// LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
+// override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
+// if (aMapLocation != null) {
+// val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
+// //移动到指定经纬度
+// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+// aMap.animateCamera(cameraUpdate, 1500, null)
+// }
+// }
+// }, false)
//计算所有点的中心点位置
-// val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
-// //移动到指定经纬度
-// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
-// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
-// aMap.animateCamera(cameraUpdate, 1500, null)
+ val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
+ //移动到指定经纬度
+ val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+ val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+ aMap.animateCamera(cameraUpdate, 1500, null)
}
})
@@ -373,8 +377,8 @@
"窨井经纬度异常,无法开启导航".show(BaseApplication.obtainInstance())
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/app/smartwell/utils/RouteOnMap.kt b/app/src/main/java/com/casic/app/smartwell/utils/RouteOnMap.kt
new file mode 100644
index 0000000..084f475
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/utils/RouteOnMap.kt
@@ -0,0 +1,27 @@
+package com.casic.app.smartwell.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/app/smartwell/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
index d11f4ed..6e5e672 100644
--- a/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
@@ -11,20 +11,21 @@
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager
-import com.amap.api.location.AMapLocation
import com.amap.api.maps.AMap
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.app.smartwell.R
import com.casic.app.smartwell.adapter.HomeRecycleAdapter
import com.casic.app.smartwell.base.BaseApplication
-import com.casic.app.smartwell.callback.ILocationListener
import com.casic.app.smartwell.model.MapWellListModel
import com.casic.app.smartwell.utils.DialogHelper
import com.casic.app.smartwell.utils.LocaleConstant
-import com.casic.app.smartwell.utils.LocationHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.view.OvertimeOrderActivity
import com.casic.app.smartwell.view.WellManagementActivity
import com.casic.app.smartwell.view.WellOperationActivity
@@ -33,7 +34,10 @@
import com.casic.app.smartwell.vm.WorkOrderViewModel
import com.casic.app.smartwell.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.widget.EasyPopupWindow
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.fragment_home.view.*
@@ -144,23 +148,23 @@
}
}
- LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
- override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
- if (aMapLocation != null) {
- val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
- //移动到指定经纬度
- val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
- val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
- aMap.animateCamera(cameraUpdate, 1500, null)
- }
- }
- }, false)
+// LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
+// override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
+// if (aMapLocation != null) {
+// val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
+// //移动到指定经纬度
+// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+// aMap.animateCamera(cameraUpdate, 1500, null)
+// }
+// }
+// }, false)
//计算所有点的中心点位置
-// val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
-// //移动到指定经纬度
-// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
-// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
-// aMap.animateCamera(cameraUpdate, 1500, null)
+ val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
+ //移动到指定经纬度
+ val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+ val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+ aMap.animateCamera(cameraUpdate, 1500, null)
}
})
@@ -373,8 +377,8 @@
"窨井经纬度异常,无法开启导航".show(BaseApplication.obtainInstance())
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/app/smartwell/utils/RouteOnMap.kt b/app/src/main/java/com/casic/app/smartwell/utils/RouteOnMap.kt
new file mode 100644
index 0000000..084f475
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/utils/RouteOnMap.kt
@@ -0,0 +1,27 @@
+package com.casic.app.smartwell.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/app/smartwell/view/LoginActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
index c926c9b..c886d0e 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
@@ -1,21 +1,26 @@
package com.casic.app.smartwell.view
+import android.content.Context
+import android.os.CountDownTimer
import androidx.lifecycle.ViewModelProvider
import com.casic.app.smartwell.R
import com.casic.app.smartwell.utils.*
import com.casic.app.smartwell.vm.AuthenticateViewModel
import com.casic.app.smartwell.vm.LoginViewModel
import com.casic.app.smartwell.vm.UserViewModel
+import com.casic.app.smartwell.widgets.ChangeServerDialog
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
-import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_login.*
class LoginActivity : KotlinBaseActivity() {
+ private val context: Context = this@LoginActivity
+ private lateinit var dialogManager: DialogManager
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var loginViewModel: LoginViewModel
private lateinit var userViewModel: UserViewModel
@@ -30,12 +35,42 @@
// 设置默认账号密码
userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ dialogManager = DialogManager.obtainInstance(this)
authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java)
loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java)
userViewModel = ViewModelProvider(this).get(UserViewModel::class.java)
}
override fun initEvent() {
+ //修改IP和端口
+ changeServerLayout.setOnClickListener {
+ ChangeServerDialog.Builder()
+ .setContext(this)
+ .setOnDialogButtonClickListener(object :
+ ChangeServerDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick(address: String, port: String) {
+ /**
+ * 例如:http://60.208.121.150:5001
+ * */
+ val newServerConfig = "http://$address:$port"
+ SaveKeyValues.putValue(
+ LocaleConstant.DEFAULT_SERVER_CONFIG,
+ newServerConfig
+ )
+ object : CountDownTimer(2000, 1000) {
+ override fun onTick(millisUntilFinished: Long) {
+ "修改完成,请重新打开应用".show(context)
+ }
+
+ override fun onFinish() {
+ PageNavigationManager.finishAllActivity()
+ }
+ }.start()
+ }
+ })
+ .build().show()
+ }
+
loginButton.setOnClickListener {
val account = userNameView.text.toString().trim()
val userPassword = userPasswordView.text.toString().trim()
@@ -76,20 +111,13 @@
finish()
}
})
- loginViewModel.loadState.observe(this, { loginState ->
- when (loginState) {
- is LoadState.Success -> {
- DialogHelper.dismissLoadingDialog()
- }
- else -> {
- DialogHelper.dismissLoadingDialog()
- }
- }
+ loginViewModel.loadState.observe(this, {
+ dialogManager.dismissLoadingDialog()
})
}
})
authenticateViewModel.loadState.observe(this, {
- DialogHelper.showLoadingDialog(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/app/smartwell/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
index d11f4ed..6e5e672 100644
--- a/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
@@ -11,20 +11,21 @@
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager
-import com.amap.api.location.AMapLocation
import com.amap.api.maps.AMap
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.app.smartwell.R
import com.casic.app.smartwell.adapter.HomeRecycleAdapter
import com.casic.app.smartwell.base.BaseApplication
-import com.casic.app.smartwell.callback.ILocationListener
import com.casic.app.smartwell.model.MapWellListModel
import com.casic.app.smartwell.utils.DialogHelper
import com.casic.app.smartwell.utils.LocaleConstant
-import com.casic.app.smartwell.utils.LocationHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.view.OvertimeOrderActivity
import com.casic.app.smartwell.view.WellManagementActivity
import com.casic.app.smartwell.view.WellOperationActivity
@@ -33,7 +34,10 @@
import com.casic.app.smartwell.vm.WorkOrderViewModel
import com.casic.app.smartwell.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.widget.EasyPopupWindow
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.fragment_home.view.*
@@ -144,23 +148,23 @@
}
}
- LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
- override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
- if (aMapLocation != null) {
- val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
- //移动到指定经纬度
- val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
- val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
- aMap.animateCamera(cameraUpdate, 1500, null)
- }
- }
- }, false)
+// LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
+// override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
+// if (aMapLocation != null) {
+// val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
+// //移动到指定经纬度
+// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+// aMap.animateCamera(cameraUpdate, 1500, null)
+// }
+// }
+// }, false)
//计算所有点的中心点位置
-// val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
-// //移动到指定经纬度
-// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
-// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
-// aMap.animateCamera(cameraUpdate, 1500, null)
+ val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
+ //移动到指定经纬度
+ val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+ val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+ aMap.animateCamera(cameraUpdate, 1500, null)
}
})
@@ -373,8 +377,8 @@
"窨井经纬度异常,无法开启导航".show(BaseApplication.obtainInstance())
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/app/smartwell/utils/RouteOnMap.kt b/app/src/main/java/com/casic/app/smartwell/utils/RouteOnMap.kt
new file mode 100644
index 0000000..084f475
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/utils/RouteOnMap.kt
@@ -0,0 +1,27 @@
+package com.casic.app.smartwell.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/app/smartwell/view/LoginActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
index c926c9b..c886d0e 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
@@ -1,21 +1,26 @@
package com.casic.app.smartwell.view
+import android.content.Context
+import android.os.CountDownTimer
import androidx.lifecycle.ViewModelProvider
import com.casic.app.smartwell.R
import com.casic.app.smartwell.utils.*
import com.casic.app.smartwell.vm.AuthenticateViewModel
import com.casic.app.smartwell.vm.LoginViewModel
import com.casic.app.smartwell.vm.UserViewModel
+import com.casic.app.smartwell.widgets.ChangeServerDialog
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
-import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_login.*
class LoginActivity : KotlinBaseActivity() {
+ private val context: Context = this@LoginActivity
+ private lateinit var dialogManager: DialogManager
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var loginViewModel: LoginViewModel
private lateinit var userViewModel: UserViewModel
@@ -30,12 +35,42 @@
// 设置默认账号密码
userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ dialogManager = DialogManager.obtainInstance(this)
authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java)
loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java)
userViewModel = ViewModelProvider(this).get(UserViewModel::class.java)
}
override fun initEvent() {
+ //修改IP和端口
+ changeServerLayout.setOnClickListener {
+ ChangeServerDialog.Builder()
+ .setContext(this)
+ .setOnDialogButtonClickListener(object :
+ ChangeServerDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick(address: String, port: String) {
+ /**
+ * 例如:http://60.208.121.150:5001
+ * */
+ val newServerConfig = "http://$address:$port"
+ SaveKeyValues.putValue(
+ LocaleConstant.DEFAULT_SERVER_CONFIG,
+ newServerConfig
+ )
+ object : CountDownTimer(2000, 1000) {
+ override fun onTick(millisUntilFinished: Long) {
+ "修改完成,请重新打开应用".show(context)
+ }
+
+ override fun onFinish() {
+ PageNavigationManager.finishAllActivity()
+ }
+ }.start()
+ }
+ })
+ .build().show()
+ }
+
loginButton.setOnClickListener {
val account = userNameView.text.toString().trim()
val userPassword = userPasswordView.text.toString().trim()
@@ -76,20 +111,13 @@
finish()
}
})
- loginViewModel.loadState.observe(this, { loginState ->
- when (loginState) {
- is LoadState.Success -> {
- DialogHelper.dismissLoadingDialog()
- }
- else -> {
- DialogHelper.dismissLoadingDialog()
- }
- }
+ loginViewModel.loadState.observe(this, {
+ dialogManager.dismissLoadingDialog()
})
}
})
authenticateViewModel.loadState.observe(this, {
- DialogHelper.showLoadingDialog(this, "登录中,请稍后")
+ dialogManager.showLoadingDialog("登录中,请稍后")
})
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
index bacc6d3..c19928a 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
@@ -4,10 +4,10 @@
import android.view.View
import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.extensions.toChinese
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.OperationViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.vm.WorkOrderViewModel
@@ -15,7 +15,6 @@
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
@@ -134,9 +133,11 @@
if (lat.isBlank() || lng.isBlank()) {
"窨井经纬度异常,无法开启导航".show(context)
} else {
- Poi(
- orderDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(this)
+ RouteOnMap.startNavigation(
+ this,
+ orderDetail.position,
+ 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/app/smartwell/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
index d11f4ed..6e5e672 100644
--- a/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
@@ -11,20 +11,21 @@
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager
-import com.amap.api.location.AMapLocation
import com.amap.api.maps.AMap
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.app.smartwell.R
import com.casic.app.smartwell.adapter.HomeRecycleAdapter
import com.casic.app.smartwell.base.BaseApplication
-import com.casic.app.smartwell.callback.ILocationListener
import com.casic.app.smartwell.model.MapWellListModel
import com.casic.app.smartwell.utils.DialogHelper
import com.casic.app.smartwell.utils.LocaleConstant
-import com.casic.app.smartwell.utils.LocationHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.view.OvertimeOrderActivity
import com.casic.app.smartwell.view.WellManagementActivity
import com.casic.app.smartwell.view.WellOperationActivity
@@ -33,7 +34,10 @@
import com.casic.app.smartwell.vm.WorkOrderViewModel
import com.casic.app.smartwell.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.widget.EasyPopupWindow
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.fragment_home.view.*
@@ -144,23 +148,23 @@
}
}
- LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
- override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
- if (aMapLocation != null) {
- val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
- //移动到指定经纬度
- val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
- val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
- aMap.animateCamera(cameraUpdate, 1500, null)
- }
- }
- }, false)
+// LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
+// override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
+// if (aMapLocation != null) {
+// val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
+// //移动到指定经纬度
+// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+// aMap.animateCamera(cameraUpdate, 1500, null)
+// }
+// }
+// }, false)
//计算所有点的中心点位置
-// val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
-// //移动到指定经纬度
-// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
-// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
-// aMap.animateCamera(cameraUpdate, 1500, null)
+ val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
+ //移动到指定经纬度
+ val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+ val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+ aMap.animateCamera(cameraUpdate, 1500, null)
}
})
@@ -373,8 +377,8 @@
"窨井经纬度异常,无法开启导航".show(BaseApplication.obtainInstance())
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/app/smartwell/utils/RouteOnMap.kt b/app/src/main/java/com/casic/app/smartwell/utils/RouteOnMap.kt
new file mode 100644
index 0000000..084f475
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/utils/RouteOnMap.kt
@@ -0,0 +1,27 @@
+package com.casic.app.smartwell.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/app/smartwell/view/LoginActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
index c926c9b..c886d0e 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
@@ -1,21 +1,26 @@
package com.casic.app.smartwell.view
+import android.content.Context
+import android.os.CountDownTimer
import androidx.lifecycle.ViewModelProvider
import com.casic.app.smartwell.R
import com.casic.app.smartwell.utils.*
import com.casic.app.smartwell.vm.AuthenticateViewModel
import com.casic.app.smartwell.vm.LoginViewModel
import com.casic.app.smartwell.vm.UserViewModel
+import com.casic.app.smartwell.widgets.ChangeServerDialog
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
-import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_login.*
class LoginActivity : KotlinBaseActivity() {
+ private val context: Context = this@LoginActivity
+ private lateinit var dialogManager: DialogManager
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var loginViewModel: LoginViewModel
private lateinit var userViewModel: UserViewModel
@@ -30,12 +35,42 @@
// 设置默认账号密码
userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ dialogManager = DialogManager.obtainInstance(this)
authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java)
loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java)
userViewModel = ViewModelProvider(this).get(UserViewModel::class.java)
}
override fun initEvent() {
+ //修改IP和端口
+ changeServerLayout.setOnClickListener {
+ ChangeServerDialog.Builder()
+ .setContext(this)
+ .setOnDialogButtonClickListener(object :
+ ChangeServerDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick(address: String, port: String) {
+ /**
+ * 例如:http://60.208.121.150:5001
+ * */
+ val newServerConfig = "http://$address:$port"
+ SaveKeyValues.putValue(
+ LocaleConstant.DEFAULT_SERVER_CONFIG,
+ newServerConfig
+ )
+ object : CountDownTimer(2000, 1000) {
+ override fun onTick(millisUntilFinished: Long) {
+ "修改完成,请重新打开应用".show(context)
+ }
+
+ override fun onFinish() {
+ PageNavigationManager.finishAllActivity()
+ }
+ }.start()
+ }
+ })
+ .build().show()
+ }
+
loginButton.setOnClickListener {
val account = userNameView.text.toString().trim()
val userPassword = userPasswordView.text.toString().trim()
@@ -76,20 +111,13 @@
finish()
}
})
- loginViewModel.loadState.observe(this, { loginState ->
- when (loginState) {
- is LoadState.Success -> {
- DialogHelper.dismissLoadingDialog()
- }
- else -> {
- DialogHelper.dismissLoadingDialog()
- }
- }
+ loginViewModel.loadState.observe(this, {
+ dialogManager.dismissLoadingDialog()
})
}
})
authenticateViewModel.loadState.observe(this, {
- DialogHelper.showLoadingDialog(this, "登录中,请稍后")
+ dialogManager.showLoadingDialog("登录中,请稍后")
})
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
index bacc6d3..c19928a 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
@@ -4,10 +4,10 @@
import android.view.View
import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.extensions.toChinese
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.OperationViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.vm.WorkOrderViewModel
@@ -15,7 +15,6 @@
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
@@ -134,9 +133,11 @@
if (lat.isBlank() || lng.isBlank()) {
"窨井经纬度异常,无法开启导航".show(context)
} else {
- Poi(
- orderDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(this)
+ RouteOnMap.startNavigation(
+ this,
+ orderDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
index 6d08f45..816205d 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
@@ -4,10 +4,10 @@
import android.view.View
import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.extensions.combineImagePath
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.WellViewModel
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter
@@ -15,7 +15,6 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
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
@@ -120,9 +119,11 @@
"窨井经纬度异常,无法开启导航".show(this)
return@setOnClickListener
}
- Poi(
- wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(this)
+ RouteOnMap.startNavigation(
+ this,
+ wellDetail.position,
+ 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/app/smartwell/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
index d11f4ed..6e5e672 100644
--- a/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
@@ -11,20 +11,21 @@
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager
-import com.amap.api.location.AMapLocation
import com.amap.api.maps.AMap
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.app.smartwell.R
import com.casic.app.smartwell.adapter.HomeRecycleAdapter
import com.casic.app.smartwell.base.BaseApplication
-import com.casic.app.smartwell.callback.ILocationListener
import com.casic.app.smartwell.model.MapWellListModel
import com.casic.app.smartwell.utils.DialogHelper
import com.casic.app.smartwell.utils.LocaleConstant
-import com.casic.app.smartwell.utils.LocationHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.view.OvertimeOrderActivity
import com.casic.app.smartwell.view.WellManagementActivity
import com.casic.app.smartwell.view.WellOperationActivity
@@ -33,7 +34,10 @@
import com.casic.app.smartwell.vm.WorkOrderViewModel
import com.casic.app.smartwell.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.widget.EasyPopupWindow
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.fragment_home.view.*
@@ -144,23 +148,23 @@
}
}
- LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
- override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
- if (aMapLocation != null) {
- val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
- //移动到指定经纬度
- val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
- val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
- aMap.animateCamera(cameraUpdate, 1500, null)
- }
- }
- }, false)
+// LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
+// override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
+// if (aMapLocation != null) {
+// val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
+// //移动到指定经纬度
+// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+// aMap.animateCamera(cameraUpdate, 1500, null)
+// }
+// }
+// }, false)
//计算所有点的中心点位置
-// val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
-// //移动到指定经纬度
-// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
-// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
-// aMap.animateCamera(cameraUpdate, 1500, null)
+ val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
+ //移动到指定经纬度
+ val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+ val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+ aMap.animateCamera(cameraUpdate, 1500, null)
}
})
@@ -373,8 +377,8 @@
"窨井经纬度异常,无法开启导航".show(BaseApplication.obtainInstance())
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/app/smartwell/utils/RouteOnMap.kt b/app/src/main/java/com/casic/app/smartwell/utils/RouteOnMap.kt
new file mode 100644
index 0000000..084f475
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/utils/RouteOnMap.kt
@@ -0,0 +1,27 @@
+package com.casic.app.smartwell.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/app/smartwell/view/LoginActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
index c926c9b..c886d0e 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
@@ -1,21 +1,26 @@
package com.casic.app.smartwell.view
+import android.content.Context
+import android.os.CountDownTimer
import androidx.lifecycle.ViewModelProvider
import com.casic.app.smartwell.R
import com.casic.app.smartwell.utils.*
import com.casic.app.smartwell.vm.AuthenticateViewModel
import com.casic.app.smartwell.vm.LoginViewModel
import com.casic.app.smartwell.vm.UserViewModel
+import com.casic.app.smartwell.widgets.ChangeServerDialog
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
-import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_login.*
class LoginActivity : KotlinBaseActivity() {
+ private val context: Context = this@LoginActivity
+ private lateinit var dialogManager: DialogManager
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var loginViewModel: LoginViewModel
private lateinit var userViewModel: UserViewModel
@@ -30,12 +35,42 @@
// 设置默认账号密码
userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ dialogManager = DialogManager.obtainInstance(this)
authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java)
loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java)
userViewModel = ViewModelProvider(this).get(UserViewModel::class.java)
}
override fun initEvent() {
+ //修改IP和端口
+ changeServerLayout.setOnClickListener {
+ ChangeServerDialog.Builder()
+ .setContext(this)
+ .setOnDialogButtonClickListener(object :
+ ChangeServerDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick(address: String, port: String) {
+ /**
+ * 例如:http://60.208.121.150:5001
+ * */
+ val newServerConfig = "http://$address:$port"
+ SaveKeyValues.putValue(
+ LocaleConstant.DEFAULT_SERVER_CONFIG,
+ newServerConfig
+ )
+ object : CountDownTimer(2000, 1000) {
+ override fun onTick(millisUntilFinished: Long) {
+ "修改完成,请重新打开应用".show(context)
+ }
+
+ override fun onFinish() {
+ PageNavigationManager.finishAllActivity()
+ }
+ }.start()
+ }
+ })
+ .build().show()
+ }
+
loginButton.setOnClickListener {
val account = userNameView.text.toString().trim()
val userPassword = userPasswordView.text.toString().trim()
@@ -76,20 +111,13 @@
finish()
}
})
- loginViewModel.loadState.observe(this, { loginState ->
- when (loginState) {
- is LoadState.Success -> {
- DialogHelper.dismissLoadingDialog()
- }
- else -> {
- DialogHelper.dismissLoadingDialog()
- }
- }
+ loginViewModel.loadState.observe(this, {
+ dialogManager.dismissLoadingDialog()
})
}
})
authenticateViewModel.loadState.observe(this, {
- DialogHelper.showLoadingDialog(this, "登录中,请稍后")
+ dialogManager.showLoadingDialog("登录中,请稍后")
})
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
index bacc6d3..c19928a 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
@@ -4,10 +4,10 @@
import android.view.View
import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.extensions.toChinese
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.OperationViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.vm.WorkOrderViewModel
@@ -15,7 +15,6 @@
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
@@ -134,9 +133,11 @@
if (lat.isBlank() || lng.isBlank()) {
"窨井经纬度异常,无法开启导航".show(context)
} else {
- Poi(
- orderDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(this)
+ RouteOnMap.startNavigation(
+ this,
+ orderDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
index 6d08f45..816205d 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
@@ -4,10 +4,10 @@
import android.view.View
import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.extensions.combineImagePath
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.WellViewModel
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter
@@ -15,7 +15,6 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
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
@@ -120,9 +119,11 @@
"窨井经纬度异常,无法开启导航".show(this)
return@setOnClickListener
}
- Poi(
- wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(this)
+ RouteOnMap.startNavigation(
+ this,
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
index 779f59b..8f890f9 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
@@ -5,12 +5,12 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.adapter.WellListAdapter
import com.casic.app.smartwell.extensions.*
import com.casic.app.smartwell.model.WellListModel
import com.casic.app.smartwell.model.WellTypeModel
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.WellListViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.widgets.WellTypePopupWindow
@@ -19,7 +19,6 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.extensions.showRouteOnMap
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import kotlinx.android.synthetic.main.activity_well_management.*
@@ -180,9 +179,11 @@
"窨井经纬度异常,无法开启导航".show(context)
return
}
- Poi(
- wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(context)
+ RouteOnMap.startNavigation(
+ context,
+ wellDetail.position,
+ 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/app/smartwell/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
index d11f4ed..6e5e672 100644
--- a/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
@@ -11,20 +11,21 @@
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager
-import com.amap.api.location.AMapLocation
import com.amap.api.maps.AMap
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.app.smartwell.R
import com.casic.app.smartwell.adapter.HomeRecycleAdapter
import com.casic.app.smartwell.base.BaseApplication
-import com.casic.app.smartwell.callback.ILocationListener
import com.casic.app.smartwell.model.MapWellListModel
import com.casic.app.smartwell.utils.DialogHelper
import com.casic.app.smartwell.utils.LocaleConstant
-import com.casic.app.smartwell.utils.LocationHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.view.OvertimeOrderActivity
import com.casic.app.smartwell.view.WellManagementActivity
import com.casic.app.smartwell.view.WellOperationActivity
@@ -33,7 +34,10 @@
import com.casic.app.smartwell.vm.WorkOrderViewModel
import com.casic.app.smartwell.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.widget.EasyPopupWindow
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.fragment_home.view.*
@@ -144,23 +148,23 @@
}
}
- LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
- override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
- if (aMapLocation != null) {
- val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
- //移动到指定经纬度
- val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
- val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
- aMap.animateCamera(cameraUpdate, 1500, null)
- }
- }
- }, false)
+// LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
+// override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
+// if (aMapLocation != null) {
+// val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
+// //移动到指定经纬度
+// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+// aMap.animateCamera(cameraUpdate, 1500, null)
+// }
+// }
+// }, false)
//计算所有点的中心点位置
-// val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
-// //移动到指定经纬度
-// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
-// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
-// aMap.animateCamera(cameraUpdate, 1500, null)
+ val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
+ //移动到指定经纬度
+ val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+ val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+ aMap.animateCamera(cameraUpdate, 1500, null)
}
})
@@ -373,8 +377,8 @@
"窨井经纬度异常,无法开启导航".show(BaseApplication.obtainInstance())
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/app/smartwell/utils/RouteOnMap.kt b/app/src/main/java/com/casic/app/smartwell/utils/RouteOnMap.kt
new file mode 100644
index 0000000..084f475
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/utils/RouteOnMap.kt
@@ -0,0 +1,27 @@
+package com.casic.app.smartwell.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/app/smartwell/view/LoginActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
index c926c9b..c886d0e 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
@@ -1,21 +1,26 @@
package com.casic.app.smartwell.view
+import android.content.Context
+import android.os.CountDownTimer
import androidx.lifecycle.ViewModelProvider
import com.casic.app.smartwell.R
import com.casic.app.smartwell.utils.*
import com.casic.app.smartwell.vm.AuthenticateViewModel
import com.casic.app.smartwell.vm.LoginViewModel
import com.casic.app.smartwell.vm.UserViewModel
+import com.casic.app.smartwell.widgets.ChangeServerDialog
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
-import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_login.*
class LoginActivity : KotlinBaseActivity() {
+ private val context: Context = this@LoginActivity
+ private lateinit var dialogManager: DialogManager
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var loginViewModel: LoginViewModel
private lateinit var userViewModel: UserViewModel
@@ -30,12 +35,42 @@
// 设置默认账号密码
userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ dialogManager = DialogManager.obtainInstance(this)
authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java)
loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java)
userViewModel = ViewModelProvider(this).get(UserViewModel::class.java)
}
override fun initEvent() {
+ //修改IP和端口
+ changeServerLayout.setOnClickListener {
+ ChangeServerDialog.Builder()
+ .setContext(this)
+ .setOnDialogButtonClickListener(object :
+ ChangeServerDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick(address: String, port: String) {
+ /**
+ * 例如:http://60.208.121.150:5001
+ * */
+ val newServerConfig = "http://$address:$port"
+ SaveKeyValues.putValue(
+ LocaleConstant.DEFAULT_SERVER_CONFIG,
+ newServerConfig
+ )
+ object : CountDownTimer(2000, 1000) {
+ override fun onTick(millisUntilFinished: Long) {
+ "修改完成,请重新打开应用".show(context)
+ }
+
+ override fun onFinish() {
+ PageNavigationManager.finishAllActivity()
+ }
+ }.start()
+ }
+ })
+ .build().show()
+ }
+
loginButton.setOnClickListener {
val account = userNameView.text.toString().trim()
val userPassword = userPasswordView.text.toString().trim()
@@ -76,20 +111,13 @@
finish()
}
})
- loginViewModel.loadState.observe(this, { loginState ->
- when (loginState) {
- is LoadState.Success -> {
- DialogHelper.dismissLoadingDialog()
- }
- else -> {
- DialogHelper.dismissLoadingDialog()
- }
- }
+ loginViewModel.loadState.observe(this, {
+ dialogManager.dismissLoadingDialog()
})
}
})
authenticateViewModel.loadState.observe(this, {
- DialogHelper.showLoadingDialog(this, "登录中,请稍后")
+ dialogManager.showLoadingDialog("登录中,请稍后")
})
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
index bacc6d3..c19928a 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
@@ -4,10 +4,10 @@
import android.view.View
import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.extensions.toChinese
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.OperationViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.vm.WorkOrderViewModel
@@ -15,7 +15,6 @@
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
@@ -134,9 +133,11 @@
if (lat.isBlank() || lng.isBlank()) {
"窨井经纬度异常,无法开启导航".show(context)
} else {
- Poi(
- orderDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(this)
+ RouteOnMap.startNavigation(
+ this,
+ orderDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
index 6d08f45..816205d 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
@@ -4,10 +4,10 @@
import android.view.View
import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.extensions.combineImagePath
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.WellViewModel
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter
@@ -15,7 +15,6 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
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
@@ -120,9 +119,11 @@
"窨井经纬度异常,无法开启导航".show(this)
return@setOnClickListener
}
- Poi(
- wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(this)
+ RouteOnMap.startNavigation(
+ this,
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
index 779f59b..8f890f9 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
@@ -5,12 +5,12 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.adapter.WellListAdapter
import com.casic.app.smartwell.extensions.*
import com.casic.app.smartwell.model.WellListModel
import com.casic.app.smartwell.model.WellTypeModel
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.WellListViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.widgets.WellTypePopupWindow
@@ -19,7 +19,6 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.extensions.showRouteOnMap
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import kotlinx.android.synthetic.main.activity_well_management.*
@@ -180,9 +179,11 @@
"窨井经纬度异常,无法开启导航".show(context)
return
}
- Poi(
- wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(context)
+ RouteOnMap.startNavigation(
+ context,
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
})
}
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
index 847164c..39a02e6 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
@@ -5,13 +5,13 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.adapter.WellOperationAdapter
import com.casic.app.smartwell.extensions.*
import com.casic.app.smartwell.model.WellListModel
import com.casic.app.smartwell.model.WellTypeModel
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.WellListViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.widgets.WellTypePopupWindow
@@ -20,7 +20,6 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.extensions.showRouteOnMap
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.vm.LoadState
@@ -260,9 +259,11 @@
"窨井经纬度异常,无法开启导航".show(context)
return
}
- Poi(
- wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(context)
+ RouteOnMap.startNavigation(
+ context,
+ wellDetail.position,
+ 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/app/smartwell/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
index d11f4ed..6e5e672 100644
--- a/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
@@ -11,20 +11,21 @@
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager
-import com.amap.api.location.AMapLocation
import com.amap.api.maps.AMap
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.app.smartwell.R
import com.casic.app.smartwell.adapter.HomeRecycleAdapter
import com.casic.app.smartwell.base.BaseApplication
-import com.casic.app.smartwell.callback.ILocationListener
import com.casic.app.smartwell.model.MapWellListModel
import com.casic.app.smartwell.utils.DialogHelper
import com.casic.app.smartwell.utils.LocaleConstant
-import com.casic.app.smartwell.utils.LocationHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.view.OvertimeOrderActivity
import com.casic.app.smartwell.view.WellManagementActivity
import com.casic.app.smartwell.view.WellOperationActivity
@@ -33,7 +34,10 @@
import com.casic.app.smartwell.vm.WorkOrderViewModel
import com.casic.app.smartwell.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.widget.EasyPopupWindow
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.fragment_home.view.*
@@ -144,23 +148,23 @@
}
}
- LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
- override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
- if (aMapLocation != null) {
- val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
- //移动到指定经纬度
- val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
- val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
- aMap.animateCamera(cameraUpdate, 1500, null)
- }
- }
- }, false)
+// LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
+// override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
+// if (aMapLocation != null) {
+// val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
+// //移动到指定经纬度
+// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+// aMap.animateCamera(cameraUpdate, 1500, null)
+// }
+// }
+// }, false)
//计算所有点的中心点位置
-// val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
-// //移动到指定经纬度
-// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
-// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
-// aMap.animateCamera(cameraUpdate, 1500, null)
+ val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
+ //移动到指定经纬度
+ val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+ val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+ aMap.animateCamera(cameraUpdate, 1500, null)
}
})
@@ -373,8 +377,8 @@
"窨井经纬度异常,无法开启导航".show(BaseApplication.obtainInstance())
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/app/smartwell/utils/RouteOnMap.kt b/app/src/main/java/com/casic/app/smartwell/utils/RouteOnMap.kt
new file mode 100644
index 0000000..084f475
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/utils/RouteOnMap.kt
@@ -0,0 +1,27 @@
+package com.casic.app.smartwell.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/app/smartwell/view/LoginActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
index c926c9b..c886d0e 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
@@ -1,21 +1,26 @@
package com.casic.app.smartwell.view
+import android.content.Context
+import android.os.CountDownTimer
import androidx.lifecycle.ViewModelProvider
import com.casic.app.smartwell.R
import com.casic.app.smartwell.utils.*
import com.casic.app.smartwell.vm.AuthenticateViewModel
import com.casic.app.smartwell.vm.LoginViewModel
import com.casic.app.smartwell.vm.UserViewModel
+import com.casic.app.smartwell.widgets.ChangeServerDialog
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
-import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_login.*
class LoginActivity : KotlinBaseActivity() {
+ private val context: Context = this@LoginActivity
+ private lateinit var dialogManager: DialogManager
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var loginViewModel: LoginViewModel
private lateinit var userViewModel: UserViewModel
@@ -30,12 +35,42 @@
// 设置默认账号密码
userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ dialogManager = DialogManager.obtainInstance(this)
authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java)
loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java)
userViewModel = ViewModelProvider(this).get(UserViewModel::class.java)
}
override fun initEvent() {
+ //修改IP和端口
+ changeServerLayout.setOnClickListener {
+ ChangeServerDialog.Builder()
+ .setContext(this)
+ .setOnDialogButtonClickListener(object :
+ ChangeServerDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick(address: String, port: String) {
+ /**
+ * 例如:http://60.208.121.150:5001
+ * */
+ val newServerConfig = "http://$address:$port"
+ SaveKeyValues.putValue(
+ LocaleConstant.DEFAULT_SERVER_CONFIG,
+ newServerConfig
+ )
+ object : CountDownTimer(2000, 1000) {
+ override fun onTick(millisUntilFinished: Long) {
+ "修改完成,请重新打开应用".show(context)
+ }
+
+ override fun onFinish() {
+ PageNavigationManager.finishAllActivity()
+ }
+ }.start()
+ }
+ })
+ .build().show()
+ }
+
loginButton.setOnClickListener {
val account = userNameView.text.toString().trim()
val userPassword = userPasswordView.text.toString().trim()
@@ -76,20 +111,13 @@
finish()
}
})
- loginViewModel.loadState.observe(this, { loginState ->
- when (loginState) {
- is LoadState.Success -> {
- DialogHelper.dismissLoadingDialog()
- }
- else -> {
- DialogHelper.dismissLoadingDialog()
- }
- }
+ loginViewModel.loadState.observe(this, {
+ dialogManager.dismissLoadingDialog()
})
}
})
authenticateViewModel.loadState.observe(this, {
- DialogHelper.showLoadingDialog(this, "登录中,请稍后")
+ dialogManager.showLoadingDialog("登录中,请稍后")
})
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
index bacc6d3..c19928a 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
@@ -4,10 +4,10 @@
import android.view.View
import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.extensions.toChinese
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.OperationViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.vm.WorkOrderViewModel
@@ -15,7 +15,6 @@
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
@@ -134,9 +133,11 @@
if (lat.isBlank() || lng.isBlank()) {
"窨井经纬度异常,无法开启导航".show(context)
} else {
- Poi(
- orderDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(this)
+ RouteOnMap.startNavigation(
+ this,
+ orderDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
index 6d08f45..816205d 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
@@ -4,10 +4,10 @@
import android.view.View
import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.extensions.combineImagePath
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.WellViewModel
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter
@@ -15,7 +15,6 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
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
@@ -120,9 +119,11 @@
"窨井经纬度异常,无法开启导航".show(this)
return@setOnClickListener
}
- Poi(
- wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(this)
+ RouteOnMap.startNavigation(
+ this,
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
index 779f59b..8f890f9 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
@@ -5,12 +5,12 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.adapter.WellListAdapter
import com.casic.app.smartwell.extensions.*
import com.casic.app.smartwell.model.WellListModel
import com.casic.app.smartwell.model.WellTypeModel
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.WellListViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.widgets.WellTypePopupWindow
@@ -19,7 +19,6 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.extensions.showRouteOnMap
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import kotlinx.android.synthetic.main.activity_well_management.*
@@ -180,9 +179,11 @@
"窨井经纬度异常,无法开启导航".show(context)
return
}
- Poi(
- wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(context)
+ RouteOnMap.startNavigation(
+ context,
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
})
}
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
index 847164c..39a02e6 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
@@ -5,13 +5,13 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.adapter.WellOperationAdapter
import com.casic.app.smartwell.extensions.*
import com.casic.app.smartwell.model.WellListModel
import com.casic.app.smartwell.model.WellTypeModel
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.WellListViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.widgets.WellTypePopupWindow
@@ -20,7 +20,6 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.extensions.showRouteOnMap
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.vm.LoadState
@@ -260,9 +259,11 @@
"窨井经纬度异常,无法开启导航".show(context)
return
}
- Poi(
- wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(context)
+ RouteOnMap.startNavigation(
+ context,
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
})
}
diff --git a/app/src/main/java/com/casic/app/smartwell/widgets/ChangeServerDialog.kt b/app/src/main/java/com/casic/app/smartwell/widgets/ChangeServerDialog.kt
new file mode 100644
index 0000000..86c2cb3
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/widgets/ChangeServerDialog.kt
@@ -0,0 +1,63 @@
+package com.casic.app.smartwell.widgets
+
+import android.app.Dialog
+import android.content.Context
+import android.os.Bundle
+import android.view.View
+import com.casic.app.smartwell.R
+import com.pengxh.kt.lite.extensions.initDialogLayoutParams
+import com.pengxh.kt.lite.extensions.show
+import kotlinx.android.synthetic.main.dialog_server_ip.*
+
+class ChangeServerDialog private constructor(builder: Builder) : Dialog(
+ builder.context, R.style.UserDefinedDialogStyle
+) {
+ private val ctx: Context = builder.context
+ private val listener: OnDialogButtonClickListener = builder.listener
+
+ class Builder {
+ lateinit var context: Context
+ lateinit var listener: OnDialogButtonClickListener
+
+ fun setContext(context: Context): Builder {
+ this.context = context
+ return this
+ }
+
+ fun setOnDialogButtonClickListener(listener: OnDialogButtonClickListener): Builder {
+ this.listener = listener
+ return this
+ }
+
+ fun build(): ChangeServerDialog {
+ return ChangeServerDialog(this)
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ this.initDialogLayoutParams(0.85f)
+ setContentView(R.layout.dialog_server_ip)
+ setCancelable(true)
+ setCanceledOnTouchOutside(true)
+
+ confirmButton.setOnClickListener(View.OnClickListener {
+ val address = addressView.text.toString()
+ val port = portNumberView.text.toString()
+ if (address.isBlank()) {
+ "请输入服务器地址".show(ctx)
+ return@OnClickListener
+ }
+ if (port.isBlank()) {
+ "请输入服务器端口".show(ctx)
+ return@OnClickListener
+ }
+ listener.onConfirmClick(address, port)
+ dismiss()
+ })
+ }
+
+ interface OnDialogButtonClickListener {
+ fun onConfirmClick(address: String, port: String)
+ }
+}
\ 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/app/smartwell/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
index d11f4ed..6e5e672 100644
--- a/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
@@ -11,20 +11,21 @@
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager
-import com.amap.api.location.AMapLocation
import com.amap.api.maps.AMap
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.app.smartwell.R
import com.casic.app.smartwell.adapter.HomeRecycleAdapter
import com.casic.app.smartwell.base.BaseApplication
-import com.casic.app.smartwell.callback.ILocationListener
import com.casic.app.smartwell.model.MapWellListModel
import com.casic.app.smartwell.utils.DialogHelper
import com.casic.app.smartwell.utils.LocaleConstant
-import com.casic.app.smartwell.utils.LocationHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.view.OvertimeOrderActivity
import com.casic.app.smartwell.view.WellManagementActivity
import com.casic.app.smartwell.view.WellOperationActivity
@@ -33,7 +34,10 @@
import com.casic.app.smartwell.vm.WorkOrderViewModel
import com.casic.app.smartwell.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.widget.EasyPopupWindow
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.fragment_home.view.*
@@ -144,23 +148,23 @@
}
}
- LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
- override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
- if (aMapLocation != null) {
- val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
- //移动到指定经纬度
- val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
- val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
- aMap.animateCamera(cameraUpdate, 1500, null)
- }
- }
- }, false)
+// LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
+// override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
+// if (aMapLocation != null) {
+// val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
+// //移动到指定经纬度
+// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+// aMap.animateCamera(cameraUpdate, 1500, null)
+// }
+// }
+// }, false)
//计算所有点的中心点位置
-// val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
-// //移动到指定经纬度
-// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
-// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
-// aMap.animateCamera(cameraUpdate, 1500, null)
+ val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
+ //移动到指定经纬度
+ val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+ val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+ aMap.animateCamera(cameraUpdate, 1500, null)
}
})
@@ -373,8 +377,8 @@
"窨井经纬度异常,无法开启导航".show(BaseApplication.obtainInstance())
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/app/smartwell/utils/RouteOnMap.kt b/app/src/main/java/com/casic/app/smartwell/utils/RouteOnMap.kt
new file mode 100644
index 0000000..084f475
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/utils/RouteOnMap.kt
@@ -0,0 +1,27 @@
+package com.casic.app.smartwell.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/app/smartwell/view/LoginActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
index c926c9b..c886d0e 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
@@ -1,21 +1,26 @@
package com.casic.app.smartwell.view
+import android.content.Context
+import android.os.CountDownTimer
import androidx.lifecycle.ViewModelProvider
import com.casic.app.smartwell.R
import com.casic.app.smartwell.utils.*
import com.casic.app.smartwell.vm.AuthenticateViewModel
import com.casic.app.smartwell.vm.LoginViewModel
import com.casic.app.smartwell.vm.UserViewModel
+import com.casic.app.smartwell.widgets.ChangeServerDialog
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
-import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_login.*
class LoginActivity : KotlinBaseActivity() {
+ private val context: Context = this@LoginActivity
+ private lateinit var dialogManager: DialogManager
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var loginViewModel: LoginViewModel
private lateinit var userViewModel: UserViewModel
@@ -30,12 +35,42 @@
// 设置默认账号密码
userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ dialogManager = DialogManager.obtainInstance(this)
authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java)
loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java)
userViewModel = ViewModelProvider(this).get(UserViewModel::class.java)
}
override fun initEvent() {
+ //修改IP和端口
+ changeServerLayout.setOnClickListener {
+ ChangeServerDialog.Builder()
+ .setContext(this)
+ .setOnDialogButtonClickListener(object :
+ ChangeServerDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick(address: String, port: String) {
+ /**
+ * 例如:http://60.208.121.150:5001
+ * */
+ val newServerConfig = "http://$address:$port"
+ SaveKeyValues.putValue(
+ LocaleConstant.DEFAULT_SERVER_CONFIG,
+ newServerConfig
+ )
+ object : CountDownTimer(2000, 1000) {
+ override fun onTick(millisUntilFinished: Long) {
+ "修改完成,请重新打开应用".show(context)
+ }
+
+ override fun onFinish() {
+ PageNavigationManager.finishAllActivity()
+ }
+ }.start()
+ }
+ })
+ .build().show()
+ }
+
loginButton.setOnClickListener {
val account = userNameView.text.toString().trim()
val userPassword = userPasswordView.text.toString().trim()
@@ -76,20 +111,13 @@
finish()
}
})
- loginViewModel.loadState.observe(this, { loginState ->
- when (loginState) {
- is LoadState.Success -> {
- DialogHelper.dismissLoadingDialog()
- }
- else -> {
- DialogHelper.dismissLoadingDialog()
- }
- }
+ loginViewModel.loadState.observe(this, {
+ dialogManager.dismissLoadingDialog()
})
}
})
authenticateViewModel.loadState.observe(this, {
- DialogHelper.showLoadingDialog(this, "登录中,请稍后")
+ dialogManager.showLoadingDialog("登录中,请稍后")
})
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
index bacc6d3..c19928a 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
@@ -4,10 +4,10 @@
import android.view.View
import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.extensions.toChinese
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.OperationViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.vm.WorkOrderViewModel
@@ -15,7 +15,6 @@
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
@@ -134,9 +133,11 @@
if (lat.isBlank() || lng.isBlank()) {
"窨井经纬度异常,无法开启导航".show(context)
} else {
- Poi(
- orderDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(this)
+ RouteOnMap.startNavigation(
+ this,
+ orderDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
index 6d08f45..816205d 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
@@ -4,10 +4,10 @@
import android.view.View
import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.extensions.combineImagePath
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.WellViewModel
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter
@@ -15,7 +15,6 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
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
@@ -120,9 +119,11 @@
"窨井经纬度异常,无法开启导航".show(this)
return@setOnClickListener
}
- Poi(
- wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(this)
+ RouteOnMap.startNavigation(
+ this,
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
index 779f59b..8f890f9 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
@@ -5,12 +5,12 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.adapter.WellListAdapter
import com.casic.app.smartwell.extensions.*
import com.casic.app.smartwell.model.WellListModel
import com.casic.app.smartwell.model.WellTypeModel
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.WellListViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.widgets.WellTypePopupWindow
@@ -19,7 +19,6 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.extensions.showRouteOnMap
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import kotlinx.android.synthetic.main.activity_well_management.*
@@ -180,9 +179,11 @@
"窨井经纬度异常,无法开启导航".show(context)
return
}
- Poi(
- wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(context)
+ RouteOnMap.startNavigation(
+ context,
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
})
}
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
index 847164c..39a02e6 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
@@ -5,13 +5,13 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.adapter.WellOperationAdapter
import com.casic.app.smartwell.extensions.*
import com.casic.app.smartwell.model.WellListModel
import com.casic.app.smartwell.model.WellTypeModel
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.WellListViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.widgets.WellTypePopupWindow
@@ -20,7 +20,6 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.extensions.showRouteOnMap
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.vm.LoadState
@@ -260,9 +259,11 @@
"窨井经纬度异常,无法开启导航".show(context)
return
}
- Poi(
- wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(context)
+ RouteOnMap.startNavigation(
+ context,
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
})
}
diff --git a/app/src/main/java/com/casic/app/smartwell/widgets/ChangeServerDialog.kt b/app/src/main/java/com/casic/app/smartwell/widgets/ChangeServerDialog.kt
new file mode 100644
index 0000000..86c2cb3
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/widgets/ChangeServerDialog.kt
@@ -0,0 +1,63 @@
+package com.casic.app.smartwell.widgets
+
+import android.app.Dialog
+import android.content.Context
+import android.os.Bundle
+import android.view.View
+import com.casic.app.smartwell.R
+import com.pengxh.kt.lite.extensions.initDialogLayoutParams
+import com.pengxh.kt.lite.extensions.show
+import kotlinx.android.synthetic.main.dialog_server_ip.*
+
+class ChangeServerDialog private constructor(builder: Builder) : Dialog(
+ builder.context, R.style.UserDefinedDialogStyle
+) {
+ private val ctx: Context = builder.context
+ private val listener: OnDialogButtonClickListener = builder.listener
+
+ class Builder {
+ lateinit var context: Context
+ lateinit var listener: OnDialogButtonClickListener
+
+ fun setContext(context: Context): Builder {
+ this.context = context
+ return this
+ }
+
+ fun setOnDialogButtonClickListener(listener: OnDialogButtonClickListener): Builder {
+ this.listener = listener
+ return this
+ }
+
+ fun build(): ChangeServerDialog {
+ return ChangeServerDialog(this)
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ this.initDialogLayoutParams(0.85f)
+ setContentView(R.layout.dialog_server_ip)
+ setCancelable(true)
+ setCanceledOnTouchOutside(true)
+
+ confirmButton.setOnClickListener(View.OnClickListener {
+ val address = addressView.text.toString()
+ val port = portNumberView.text.toString()
+ if (address.isBlank()) {
+ "请输入服务器地址".show(ctx)
+ return@OnClickListener
+ }
+ if (port.isBlank()) {
+ "请输入服务器端口".show(ctx)
+ return@OnClickListener
+ }
+ listener.onConfirmClick(address, port)
+ dismiss()
+ })
+ }
+
+ interface OnDialogButtonClickListener {
+ fun onConfirmClick(address: String, port: String)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_right_main.xml b/app/src/main/res/drawable/ic_right_main.xml
new file mode 100644
index 0000000..ee29d4e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_right_main.xml
@@ -0,0 +1,9 @@
+
+
+
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/app/smartwell/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
index d11f4ed..6e5e672 100644
--- a/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt
@@ -11,20 +11,21 @@
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager
-import com.amap.api.location.AMapLocation
import com.amap.api.maps.AMap
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.app.smartwell.R
import com.casic.app.smartwell.adapter.HomeRecycleAdapter
import com.casic.app.smartwell.base.BaseApplication
-import com.casic.app.smartwell.callback.ILocationListener
import com.casic.app.smartwell.model.MapWellListModel
import com.casic.app.smartwell.utils.DialogHelper
import com.casic.app.smartwell.utils.LocaleConstant
-import com.casic.app.smartwell.utils.LocationHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.view.OvertimeOrderActivity
import com.casic.app.smartwell.view.WellManagementActivity
import com.casic.app.smartwell.view.WellOperationActivity
@@ -33,7 +34,10 @@
import com.casic.app.smartwell.vm.WorkOrderViewModel
import com.casic.app.smartwell.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.widget.EasyPopupWindow
import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.fragment_home.view.*
@@ -144,23 +148,23 @@
}
}
- LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
- override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
- if (aMapLocation != null) {
- val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
- //移动到指定经纬度
- val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
- val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
- aMap.animateCamera(cameraUpdate, 1500, null)
- }
- }
- }, false)
+// LocationHelper.obtainCurrentLocation(requireContext(), object : ILocationListener {
+// override fun onAMapLocationGet(aMapLocation: AMapLocation?) {
+// if (aMapLocation != null) {
+// val centerLatLng = LatLng(aMapLocation.latitude, aMapLocation.longitude)
+// //移动到指定经纬度
+// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+// aMap.animateCamera(cameraUpdate, 1500, null)
+// }
+// }
+// }, false)
//计算所有点的中心点位置
-// val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
-// //移动到指定经纬度
-// val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
-// val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
-// aMap.animateCamera(cameraUpdate, 1500, null)
+ val centerLatLng = LatLng(latitudeList.average(), longitudeList.average())
+ //移动到指定经纬度
+ val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f)
+ val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
+ aMap.animateCamera(cameraUpdate, 1500, null)
}
})
@@ -373,8 +377,8 @@
"窨井经纬度异常,无法开启导航".show(BaseApplication.obtainInstance())
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/app/smartwell/utils/RouteOnMap.kt b/app/src/main/java/com/casic/app/smartwell/utils/RouteOnMap.kt
new file mode 100644
index 0000000..084f475
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/utils/RouteOnMap.kt
@@ -0,0 +1,27 @@
+package com.casic.app.smartwell.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/app/smartwell/view/LoginActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
index c926c9b..c886d0e 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
@@ -1,21 +1,26 @@
package com.casic.app.smartwell.view
+import android.content.Context
+import android.os.CountDownTimer
import androidx.lifecycle.ViewModelProvider
import com.casic.app.smartwell.R
import com.casic.app.smartwell.utils.*
import com.casic.app.smartwell.vm.AuthenticateViewModel
import com.casic.app.smartwell.vm.LoginViewModel
import com.casic.app.smartwell.vm.UserViewModel
+import com.casic.app.smartwell.widgets.ChangeServerDialog
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
-import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_login.*
class LoginActivity : KotlinBaseActivity() {
+ private val context: Context = this@LoginActivity
+ private lateinit var dialogManager: DialogManager
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var loginViewModel: LoginViewModel
private lateinit var userViewModel: UserViewModel
@@ -30,12 +35,42 @@
// 设置默认账号密码
userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ dialogManager = DialogManager.obtainInstance(this)
authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java)
loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java)
userViewModel = ViewModelProvider(this).get(UserViewModel::class.java)
}
override fun initEvent() {
+ //修改IP和端口
+ changeServerLayout.setOnClickListener {
+ ChangeServerDialog.Builder()
+ .setContext(this)
+ .setOnDialogButtonClickListener(object :
+ ChangeServerDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick(address: String, port: String) {
+ /**
+ * 例如:http://60.208.121.150:5001
+ * */
+ val newServerConfig = "http://$address:$port"
+ SaveKeyValues.putValue(
+ LocaleConstant.DEFAULT_SERVER_CONFIG,
+ newServerConfig
+ )
+ object : CountDownTimer(2000, 1000) {
+ override fun onTick(millisUntilFinished: Long) {
+ "修改完成,请重新打开应用".show(context)
+ }
+
+ override fun onFinish() {
+ PageNavigationManager.finishAllActivity()
+ }
+ }.start()
+ }
+ })
+ .build().show()
+ }
+
loginButton.setOnClickListener {
val account = userNameView.text.toString().trim()
val userPassword = userPasswordView.text.toString().trim()
@@ -76,20 +111,13 @@
finish()
}
})
- loginViewModel.loadState.observe(this, { loginState ->
- when (loginState) {
- is LoadState.Success -> {
- DialogHelper.dismissLoadingDialog()
- }
- else -> {
- DialogHelper.dismissLoadingDialog()
- }
- }
+ loginViewModel.loadState.observe(this, {
+ dialogManager.dismissLoadingDialog()
})
}
})
authenticateViewModel.loadState.observe(this, {
- DialogHelper.showLoadingDialog(this, "登录中,请稍后")
+ dialogManager.showLoadingDialog("登录中,请稍后")
})
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
index bacc6d3..c19928a 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
@@ -4,10 +4,10 @@
import android.view.View
import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.extensions.toChinese
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.OperationViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.vm.WorkOrderViewModel
@@ -15,7 +15,6 @@
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
@@ -134,9 +133,11 @@
if (lat.isBlank() || lng.isBlank()) {
"窨井经纬度异常,无法开启导航".show(context)
} else {
- Poi(
- orderDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(this)
+ RouteOnMap.startNavigation(
+ this,
+ orderDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
index 6d08f45..816205d 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
@@ -4,10 +4,10 @@
import android.view.View
import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.extensions.combineImagePath
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.WellViewModel
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter
@@ -15,7 +15,6 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
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
@@ -120,9 +119,11 @@
"窨井经纬度异常,无法开启导航".show(this)
return@setOnClickListener
}
- Poi(
- wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(this)
+ RouteOnMap.startNavigation(
+ this,
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
index 779f59b..8f890f9 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
@@ -5,12 +5,12 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.adapter.WellListAdapter
import com.casic.app.smartwell.extensions.*
import com.casic.app.smartwell.model.WellListModel
import com.casic.app.smartwell.model.WellTypeModel
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.WellListViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.widgets.WellTypePopupWindow
@@ -19,7 +19,6 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.extensions.showRouteOnMap
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import kotlinx.android.synthetic.main.activity_well_management.*
@@ -180,9 +179,11 @@
"窨井经纬度异常,无法开启导航".show(context)
return
}
- Poi(
- wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(context)
+ RouteOnMap.startNavigation(
+ context,
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
})
}
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
index 847164c..39a02e6 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
@@ -5,13 +5,13 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.adapter.WellOperationAdapter
import com.casic.app.smartwell.extensions.*
import com.casic.app.smartwell.model.WellListModel
import com.casic.app.smartwell.model.WellTypeModel
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.WellListViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.widgets.WellTypePopupWindow
@@ -20,7 +20,6 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.extensions.showRouteOnMap
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.vm.LoadState
@@ -260,9 +259,11 @@
"窨井经纬度异常,无法开启导航".show(context)
return
}
- Poi(
- wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(context)
+ RouteOnMap.startNavigation(
+ context,
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
})
}
diff --git a/app/src/main/java/com/casic/app/smartwell/widgets/ChangeServerDialog.kt b/app/src/main/java/com/casic/app/smartwell/widgets/ChangeServerDialog.kt
new file mode 100644
index 0000000..86c2cb3
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/widgets/ChangeServerDialog.kt
@@ -0,0 +1,63 @@
+package com.casic.app.smartwell.widgets
+
+import android.app.Dialog
+import android.content.Context
+import android.os.Bundle
+import android.view.View
+import com.casic.app.smartwell.R
+import com.pengxh.kt.lite.extensions.initDialogLayoutParams
+import com.pengxh.kt.lite.extensions.show
+import kotlinx.android.synthetic.main.dialog_server_ip.*
+
+class ChangeServerDialog private constructor(builder: Builder) : Dialog(
+ builder.context, R.style.UserDefinedDialogStyle
+) {
+ private val ctx: Context = builder.context
+ private val listener: OnDialogButtonClickListener = builder.listener
+
+ class Builder {
+ lateinit var context: Context
+ lateinit var listener: OnDialogButtonClickListener
+
+ fun setContext(context: Context): Builder {
+ this.context = context
+ return this
+ }
+
+ fun setOnDialogButtonClickListener(listener: OnDialogButtonClickListener): Builder {
+ this.listener = listener
+ return this
+ }
+
+ fun build(): ChangeServerDialog {
+ return ChangeServerDialog(this)
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ this.initDialogLayoutParams(0.85f)
+ setContentView(R.layout.dialog_server_ip)
+ setCancelable(true)
+ setCanceledOnTouchOutside(true)
+
+ confirmButton.setOnClickListener(View.OnClickListener {
+ val address = addressView.text.toString()
+ val port = portNumberView.text.toString()
+ if (address.isBlank()) {
+ "请输入服务器地址".show(ctx)
+ return@OnClickListener
+ }
+ if (port.isBlank()) {
+ "请输入服务器端口".show(ctx)
+ return@OnClickListener
+ }
+ listener.onConfirmClick(address, port)
+ dismiss()
+ })
+ }
+
+ interface OnDialogButtonClickListener {
+ fun onConfirmClick(address: String, port: String)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_right_main.xml b/app/src/main/res/drawable/ic_right_main.xml
new file mode 100644
index 0000000..ee29d4e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_right_main.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index c7ac8fb..5ba7506 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -48,7 +48,7 @@
android:id="@+id/userPasswordLayout"
android:layout_width="match_parent"
android:layout_height="@dimen/titleViewHeight"
- android:layout_above="@id/anchorView"
+ android:layout_above="@id/changeServerLayout"
android:layout_marginHorizontal="@dimen/dp_50"
android:layout_marginTop="@dimen/dp_5"
android:background="@drawable/bg_solid_layout_gray_radius_5"
@@ -73,18 +73,38 @@
android:theme="@style/EditTextTheme" />
-
+
+
+
+
+
+
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/app/smartwell/view/LoginActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
index c926c9b..c886d0e 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/LoginActivity.kt
@@ -1,21 +1,26 @@
package com.casic.app.smartwell.view
+import android.content.Context
+import android.os.CountDownTimer
import androidx.lifecycle.ViewModelProvider
import com.casic.app.smartwell.R
import com.casic.app.smartwell.utils.*
import com.casic.app.smartwell.vm.AuthenticateViewModel
import com.casic.app.smartwell.vm.LoginViewModel
import com.casic.app.smartwell.vm.UserViewModel
+import com.casic.app.smartwell.widgets.ChangeServerDialog
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.PageNavigationManager
import com.pengxh.kt.lite.utils.SaveKeyValues
-import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_login.*
class LoginActivity : KotlinBaseActivity() {
+ private val context: Context = this@LoginActivity
+ private lateinit var dialogManager: DialogManager
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var loginViewModel: LoginViewModel
private lateinit var userViewModel: UserViewModel
@@ -30,12 +35,42 @@
// 设置默认账号密码
userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String)
userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String)
+ dialogManager = DialogManager.obtainInstance(this)
authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java)
loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java)
userViewModel = ViewModelProvider(this).get(UserViewModel::class.java)
}
override fun initEvent() {
+ //修改IP和端口
+ changeServerLayout.setOnClickListener {
+ ChangeServerDialog.Builder()
+ .setContext(this)
+ .setOnDialogButtonClickListener(object :
+ ChangeServerDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick(address: String, port: String) {
+ /**
+ * 例如:http://60.208.121.150:5001
+ * */
+ val newServerConfig = "http://$address:$port"
+ SaveKeyValues.putValue(
+ LocaleConstant.DEFAULT_SERVER_CONFIG,
+ newServerConfig
+ )
+ object : CountDownTimer(2000, 1000) {
+ override fun onTick(millisUntilFinished: Long) {
+ "修改完成,请重新打开应用".show(context)
+ }
+
+ override fun onFinish() {
+ PageNavigationManager.finishAllActivity()
+ }
+ }.start()
+ }
+ })
+ .build().show()
+ }
+
loginButton.setOnClickListener {
val account = userNameView.text.toString().trim()
val userPassword = userPasswordView.text.toString().trim()
@@ -76,20 +111,13 @@
finish()
}
})
- loginViewModel.loadState.observe(this, { loginState ->
- when (loginState) {
- is LoadState.Success -> {
- DialogHelper.dismissLoadingDialog()
- }
- else -> {
- DialogHelper.dismissLoadingDialog()
- }
- }
+ loginViewModel.loadState.observe(this, {
+ dialogManager.dismissLoadingDialog()
})
}
})
authenticateViewModel.loadState.observe(this, {
- DialogHelper.showLoadingDialog(this, "登录中,请稍后")
+ dialogManager.showLoadingDialog("登录中,请稍后")
})
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
index bacc6d3..c19928a 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/OrderNotProcessedDetailActivity.kt
@@ -4,10 +4,10 @@
import android.view.View
import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.extensions.toChinese
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.OperationViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.vm.WorkOrderViewModel
@@ -15,7 +15,6 @@
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
@@ -134,9 +133,11 @@
if (lat.isBlank() || lng.isBlank()) {
"窨井经纬度异常,无法开启导航".show(context)
} else {
- Poi(
- orderDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(this)
+ RouteOnMap.startNavigation(
+ this,
+ orderDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
index 6d08f45..816205d 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt
@@ -4,10 +4,10 @@
import android.view.View
import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.extensions.combineImagePath
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.WellViewModel
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter
@@ -15,7 +15,6 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
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
@@ -120,9 +119,11 @@
"窨井经纬度异常,无法开启导航".show(this)
return@setOnClickListener
}
- Poi(
- wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(this)
+ RouteOnMap.startNavigation(
+ this,
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
index 779f59b..8f890f9 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
@@ -5,12 +5,12 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.adapter.WellListAdapter
import com.casic.app.smartwell.extensions.*
import com.casic.app.smartwell.model.WellListModel
import com.casic.app.smartwell.model.WellTypeModel
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.WellListViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.widgets.WellTypePopupWindow
@@ -19,7 +19,6 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.extensions.showRouteOnMap
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import kotlinx.android.synthetic.main.activity_well_management.*
@@ -180,9 +179,11 @@
"窨井经纬度异常,无法开启导航".show(context)
return
}
- Poi(
- wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(context)
+ RouteOnMap.startNavigation(
+ context,
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
})
}
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
index 847164c..39a02e6 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
@@ -5,13 +5,13 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Poi
import com.casic.app.smartwell.R
import com.casic.app.smartwell.adapter.WellOperationAdapter
import com.casic.app.smartwell.extensions.*
import com.casic.app.smartwell.model.WellListModel
import com.casic.app.smartwell.model.WellTypeModel
import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.RouteOnMap
import com.casic.app.smartwell.vm.WellListViewModel
import com.casic.app.smartwell.vm.WellViewModel
import com.casic.app.smartwell.widgets.WellTypePopupWindow
@@ -20,7 +20,6 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.extensions.showRouteOnMap
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
import com.pengxh.kt.lite.utils.WeakReferenceHandler
import com.pengxh.kt.lite.vm.LoadState
@@ -260,9 +259,11 @@
"窨井经纬度异常,无法开启导航".show(context)
return
}
- Poi(
- wellDetail.position, LatLng(lat.toDouble(), lng.toDouble()), ""
- ).showRouteOnMap(context)
+ RouteOnMap.startNavigation(
+ context,
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble())
+ )
}
})
}
diff --git a/app/src/main/java/com/casic/app/smartwell/widgets/ChangeServerDialog.kt b/app/src/main/java/com/casic/app/smartwell/widgets/ChangeServerDialog.kt
new file mode 100644
index 0000000..86c2cb3
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/widgets/ChangeServerDialog.kt
@@ -0,0 +1,63 @@
+package com.casic.app.smartwell.widgets
+
+import android.app.Dialog
+import android.content.Context
+import android.os.Bundle
+import android.view.View
+import com.casic.app.smartwell.R
+import com.pengxh.kt.lite.extensions.initDialogLayoutParams
+import com.pengxh.kt.lite.extensions.show
+import kotlinx.android.synthetic.main.dialog_server_ip.*
+
+class ChangeServerDialog private constructor(builder: Builder) : Dialog(
+ builder.context, R.style.UserDefinedDialogStyle
+) {
+ private val ctx: Context = builder.context
+ private val listener: OnDialogButtonClickListener = builder.listener
+
+ class Builder {
+ lateinit var context: Context
+ lateinit var listener: OnDialogButtonClickListener
+
+ fun setContext(context: Context): Builder {
+ this.context = context
+ return this
+ }
+
+ fun setOnDialogButtonClickListener(listener: OnDialogButtonClickListener): Builder {
+ this.listener = listener
+ return this
+ }
+
+ fun build(): ChangeServerDialog {
+ return ChangeServerDialog(this)
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ this.initDialogLayoutParams(0.85f)
+ setContentView(R.layout.dialog_server_ip)
+ setCancelable(true)
+ setCanceledOnTouchOutside(true)
+
+ confirmButton.setOnClickListener(View.OnClickListener {
+ val address = addressView.text.toString()
+ val port = portNumberView.text.toString()
+ if (address.isBlank()) {
+ "请输入服务器地址".show(ctx)
+ return@OnClickListener
+ }
+ if (port.isBlank()) {
+ "请输入服务器端口".show(ctx)
+ return@OnClickListener
+ }
+ listener.onConfirmClick(address, port)
+ dismiss()
+ })
+ }
+
+ interface OnDialogButtonClickListener {
+ fun onConfirmClick(address: String, port: String)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_right_main.xml b/app/src/main/res/drawable/ic_right_main.xml
new file mode 100644
index 0000000..ee29d4e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_right_main.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index c7ac8fb..5ba7506 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -48,7 +48,7 @@
android:id="@+id/userPasswordLayout"
android:layout_width="match_parent"
android:layout_height="@dimen/titleViewHeight"
- android:layout_above="@id/anchorView"
+ android:layout_above="@id/changeServerLayout"
android:layout_marginHorizontal="@dimen/dp_50"
android:layout_marginTop="@dimen/dp_5"
android:background="@drawable/bg_solid_layout_gray_radius_5"
@@ -73,18 +73,38 @@
android:theme="@style/EditTextTheme" />
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file