[6.0.0] 1、删除无用类 2、设置地图marker

This commit is contained in:
wangmingjun
2023-08-23 10:50:55 +08:00
committed by zhongchao
parent d7acb2944f
commit fabbd2c1f1
5 changed files with 112 additions and 161 deletions

View File

@@ -49,6 +49,7 @@ import com.mogo.och.taxi.model.TaxiUnmannedViewModel
import com.mogo.och.taxi.ui.base.TaxiFragment
import com.mogo.och.taxi.ui.unmanned.TaskAndOrderUiState
import com.mogo.och.taxi.ui.unmanned.UnmannedIntent
import com.mogo.och.taxi.utils.MapMakerManager
import kotlinx.android.synthetic.main.taxi_no_data_common_view.noOrderDataTv
import kotlinx.android.synthetic.main.unmanned_being_order.cancelOrder
import kotlinx.android.synthetic.main.unmanned_being_order.endPoint
@@ -83,6 +84,25 @@ class TaxiBeingTaskFragment : BaseFragment(),
private var mCurrentTaskAndOrder: QueryCurrentTaskRespBean.Result? = null
private var mCurrentUntruthTask: StartServiceRespBean.Result? = null
companion object {
const val TAG = "TaxiBeingTaskFragment"
@SuppressLint("StaticFieldLeak")
private var mActivity: Activity? = null
@SuppressLint("StaticFieldLeak")
private var mTaxiFragment: TaxiFragment? = null
fun newInstance(
activity: Activity?,
taxiFragment: TaxiFragment?
): TaxiBeingTaskFragment {
mActivity = activity
mTaxiFragment = taxiFragment
val args = Bundle()
val fragment = TaxiBeingTaskFragment()
fragment.arguments = args
return fragment
}
}
override fun getLayoutId(): Int {
return R.layout.unmanned_being_order
}
@@ -670,7 +690,7 @@ class TaxiBeingTaskFragment : BaseFragment(),
*/
private fun isHaveBeingOrder(being: Boolean) {
d(
SceneConstant.M_TAXI + TAG,
M_TAXI + TAG,
"isHaveBeingOrder = $being"
)
try {
@@ -689,7 +709,7 @@ class TaxiBeingTaskFragment : BaseFragment(),
override fun onClick(v: View) {
if (v.id == taskClickBtn.id) {
d(SceneConstant.M_TAXI + TAG, taskStatus.text.toString())
d(M_TAXI + TAG, taskStatus.text.toString())
startOrEndService()
} else if (v.id == cancelOrder.id) {
if (mCurrentTaskAndOrder!!.order != null){
@@ -805,80 +825,17 @@ class TaxiBeingTaskFragment : BaseFragment(),
* @param uuid
* @param station
*/
private fun setOrRemoveMapMaker(
isAdd: Boolean,
uuid: String,
lat: Double,
lon: Double,
resourceId: Int
) {
private fun setOrRemoveMapMaker(isAdd: Boolean, uuid: String,
lat: Double, lon: Double, resourceId: Int) {
if (isAdd) {
//开启线程执行起终点marker设置
val setMapMarkerRunnable = Runnable {
d(
SceneConstant.M_TAXI + "setMapMaker= " + Thread.currentThread()
.name,
"$uuid=latitude=$lat,longitude=$lon"
)
val builder =
Point.Options.Builder(
TYPE_MARKER_TAXI_ORDER,
Level.MAP_MARKER
)
.setId(uuid)
.anchor(0.5f, 0.5f)
.set3DMode(true)
.isUseGps(true)
.controlAngle(true)
.icon3DRes(resourceId)
.latitude(lat)
.longitude(lon)
val mapUIController =
getMapUIController()
if (mapUIController != null) {
val centerLine =
mapUIController.getCenterLineInfo(
lon, lat, -1f
)
if (null != centerLine) { // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致
val angle = centerLine.angle
if (angle != null) {
builder.rotate(angle.toFloat())
}
}
}
val overlayManager =
getOverlayManager()
overlayManager?.showOrUpdatePoint(builder.build())
}
OCHThreadPoolManager.getsInstance().execute(setMapMarkerRunnable)
MapMakerManager.addMapMaker(TYPE_MARKER_TAXI_ORDER,uuid,lat, lon, resourceId)
} else {
//开启线程移除起终点marker设置
val removeMapMarkerRunnable = Runnable {
d(
SceneConstant.M_TAXI + "RemoveMapMaker=" + Thread.currentThread()
.name,
"$uuid=latitude=$lat,longitude=$lon"
)
val overlayManager =
getOverlayManager()
overlayManager?.removePoint(uuid)
}
OCHThreadPoolManager.getsInstance().execute(removeMapMarkerRunnable)
MapMakerManager.removeMapMaker(uuid,lat,lon)
}
}
private fun removeAllMapMarker() {
//开启线程移除起终点marker设置
val removeAllMapMarkerRunnable = Runnable {
d(
SceneConstant.M_TAXI + "removeAllMapMarkerRunnable=" + Thread.currentThread()
)
val overlayManager =
getOverlayManager()
overlayManager?.removeAllLinesInOwner(TYPE_MARKER_TAXI_ORDER)
}
OCHThreadPoolManager.getsInstance().execute(removeAllMapMarkerRunnable)
MapMakerManager.removeAllMapMarkerByOwner(TYPE_MARKER_TAXI_ORDER)
}
private fun updateOrderBottomBtn(txt: String?, txtColorId: Int, bgColorId: Int, isClickable: Boolean) {
@@ -894,26 +851,4 @@ class TaxiBeingTaskFragment : BaseFragment(),
mViewModel.startOrStopOrderLoop(false)
super.onDestroy()
}
/**
* END
*/
companion object {
const val TAG = "TaxiBeingTaskFragment"
@SuppressLint("StaticFieldLeak")
private var mActivity: Activity? = null
@SuppressLint("StaticFieldLeak")
private var mTaxiFragment: TaxiFragment? = null
fun newInstance(
activity: Activity?,
taxiFragment: TaxiFragment?
): TaxiBeingTaskFragment {
mActivity = activity
mTaxiFragment = taxiFragment
val args = Bundle()
val fragment = TaxiBeingTaskFragment()
fragment.arguments = args
return fragment
}
}
}

View File

@@ -1,13 +0,0 @@
package com.mogo.och.taxi.utils
import android.content.res.Resources
/**
* @author: wangmingjun
* @date: 2022/1/21
*/
object DimenUtil{
fun dp2px(value:Float):Float{
return (0.5f + value * Resources.getSystem().displayMetrics.density)
}
}

View File

@@ -0,0 +1,85 @@
package com.mogo.och.taxi.utils
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.map.overlay.core.Level
import com.mogo.map.overlay.point.Point
import com.mogo.och.common.module.utils.OCHThreadPoolManager
/**
* @author: wangmingjun
* @date: 2023/8/23
*/
object MapMakerManager {
fun addMapMaker(owner: String, uuid: String, lat: Double, lon: Double, resourceId: Int){
val setMapMarkerRunnable = Runnable {
CallerLogger.d(
SceneConstant.M_TAXI + "setMapMaker= " + Thread.currentThread()
.name,
"$uuid=latitude=$lat,longitude=$lon"
)
val builder =
Point.Options.Builder(
owner,
Level.MAP_MARKER
)
.setId(uuid)
.anchor(0.5f, 0.5f)
.set3DMode(true)
.isUseGps(true)
.controlAngle(true)
.icon3DRes(resourceId)
.latitude(lat)
.longitude(lon)
val mapUIController =
CallerMapUIServiceManager.getMapUIController()
if (mapUIController != null) {
val centerLine =
mapUIController.getCenterLineInfo(
lon, lat, -1f
)
if (null != centerLine) { // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致
val angle = centerLine.angle
if (angle != null) {
builder.rotate(angle.toFloat())
}
}
}
val overlayManager =
CallerMapUIServiceManager.getOverlayManager()
overlayManager?.showOrUpdatePoint(builder.build())
}
OCHThreadPoolManager.getsInstance().execute(setMapMarkerRunnable)
}
fun removeMapMaker(uuid: String, lat: Double, lon: Double){
//开启线程移除起终点marker设置
val removeMapMarkerRunnable = Runnable {
CallerLogger.d(
SceneConstant.M_TAXI + "RemoveMapMaker=" + Thread.currentThread()
.name,
"$uuid=latitude=$lat,longitude=$lon"
)
val overlayManager =
CallerMapUIServiceManager.getOverlayManager()
overlayManager?.removePoint(uuid)
}
OCHThreadPoolManager.getsInstance().execute(removeMapMarkerRunnable)
}
fun removeAllMapMarkerByOwner(owner: String){
//开启线程移除起终点marker设置
val removeAllMapMarkerRunnable = Runnable {
CallerLogger.d(
SceneConstant.M_TAXI + "removeAllMapMarkerRunnable=" + Thread.currentThread()
)
val overlayManager =
CallerMapUIServiceManager.getOverlayManager()
overlayManager?.removeAllLinesInOwner(owner)
}
OCHThreadPoolManager.getsInstance().execute(removeAllMapMarkerRunnable)
}
}

View File

@@ -1,19 +0,0 @@
package com.mogo.och.taxi.utils;
import java.util.Arrays;
/**
* Created on 2021/9/11
*/
public class OrderUtil {
// 判断两个list中的订单是否相同依据orderId
// public static boolean haveSameOrders(List<OrderQueryRespBean.Result> list1,
// List<OrderQueryRespBean.Result> list2) {
// OrderQueryRespBean.Result[] arr1 = list1.toArray(new OrderQueryRespBean.Result[]{});
// OrderQueryRespBean.Result[] arr2 = list2.toArray(new OrderQueryRespBean.Result[]{});
// Arrays.sort(arr1);
// Arrays.sort(arr1);
// return Arrays.equals(arr1,arr2);
// }
}

View File

@@ -1,37 +0,0 @@
package com.mogo.och.taxi.utils;
import android.app.AppOpsManager;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.LocationManager;
import android.os.Build;
import androidx.core.content.ContextCompat;
/**
* @author: wangmingjun
* @date: 2021/12/7
*/
public class PermissionUtil {
public static boolean checkPermission(Context context,String... permissons) {
for (String permisson : permissons) {
if ((ContextCompat.checkSelfPermission(context,
permisson) != PackageManager.PERMISSION_GRANTED)) {
return false;
}
}
return true;
}
public static boolean isLocServiceEnable(Context context) {
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (gps || network) {
return true;
}
return false;
}
}