diff --git a/OCH/common/common/src/main/res/values/colors.xml b/OCH/common/common/src/main/res/values/colors.xml index d89d53bd4a..298610c338 100644 --- a/OCH/common/common/src/main/res/values/colors.xml +++ b/OCH/common/common/src/main/res/values/colors.xml @@ -18,6 +18,7 @@ #80000000 #80FFFFFF + #FFFFFF #1466FB #E0EFFF #B8C2D7 @@ -42,6 +43,7 @@ #FF4E41 #B3FFFFFF #CCCCCC + #284F7E #F7151D41 #3B3D44 #2E323A diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b1/com/mogo/och/shuttle/weaknet/passenger/presenter/BaseBusPassengerPresenter.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b1/com/mogo/och/shuttle/weaknet/passenger/presenter/BaseBusPassengerPresenter.kt index 827112c551..b8038726c7 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/b1/com/mogo/och/shuttle/weaknet/passenger/presenter/BaseBusPassengerPresenter.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/b1/com/mogo/och/shuttle/weaknet/passenger/presenter/BaseBusPassengerPresenter.kt @@ -37,11 +37,11 @@ class BaseBusPassengerPresenter(view: BusPassengerRouteFragment?) : } private fun initListeners() { - CommonModel.setRouteLineInfoCallback(this) + CommonModel.setRouteLineInfoCallback(TAG,this) } private fun releaseListeners() { - CommonModel.setRouteLineInfoCallback(null) + CommonModel.setRouteLineInfoCallback(TAG,null) } override fun updateSpeed(location: Int) { diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2ADASPresenter.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2ADASPresenter.kt index 19f68964c6..a6beffd111 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2ADASPresenter.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2ADASPresenter.kt @@ -1,26 +1,36 @@ package com.mogo.och.shuttle.weaknet.passenger.presenter import androidx.lifecycle.LifecycleOwner +import com.amap.api.maps.model.LatLng import com.mogo.commons.mvp.Presenter +import com.mogo.eagle.core.utilcode.util.ThreadUtils +import com.mogo.och.data.bean.BusStationBean import com.mogo.och.shuttle.weaknet.passenger.callback.ADASCallback +import com.mogo.och.shuttle.weaknet.passenger.callback.ICommonCallback import com.mogo.och.shuttle.weaknet.passenger.constant.M2Const.Companion.M2_MAP_STATION_MAKER +import com.mogo.och.shuttle.weaknet.passenger.model.CommonModel import com.mogo.och.shuttle.weaknet.passenger.model.PM2ADASModel import com.mogo.och.shuttle.weaknet.passenger.ui.PM2HPMapFragment class PM2ADASPresenter(view: PM2HPMapFragment?) : - Presenter(view), ADASCallback { + Presenter(view), ADASCallback, ICommonCallback { + + private val TAG = "PM2ADASPresenter" init { - PM2ADASModel.INSTANCE.init(context) - initListener() + PM2ADASModel.INSTANCE.init(context) + initListener() } private fun initListener() { PM2ADASModel.INSTANCE.setAdasCallback(this) + CommonModel.setRouteLineInfoCallback(TAG, this) } private fun removeListener() { PM2ADASModel.INSTANCE.setAdasCallback(null) + CommonModel.setRouteLineInfoCallback(TAG,null) + CommonModel.releaseListeners() } override fun onDestroy(owner: LifecycleOwner) { @@ -29,12 +39,63 @@ class PM2ADASPresenter(view: PM2HPMapFragment?) : } override fun updateHDMapStations(stations: MutableList>) { - for (i in stations.indices){ - mView?.setMapMaker(M2_MAP_STATION_MAKER+i,stations[i]) + for (i in stations.indices) { + mView?.setMapMaker(M2_MAP_STATION_MAKER + i, stations[i]) } } + override fun clearCustomPolyline() { + ThreadUtils.runOnUiThread { + mView?.clearCustomPolyline() + } + } + + override fun showNoTaskView(isTrue: Boolean) { + super.showNoTaskView(isTrue) + ThreadUtils.runOnUiThread { + mView?.showNoTaskView(!isTrue) + } + } + + override fun updateLineStations(stations: MutableList) { + + val stationsList = mutableListOf() + val stationsListPass = mutableListOf() + var startStation: LatLng? = null + var endStation: LatLng? = null + + for (i in stations.indices) { + val station = stations[i] + val latLng = LatLng(station.gcjLat, station.gcjLon) + if (i == 0) { + startStation = latLng + continue + } + if (i == stations.size - 1) { + endStation = latLng + continue + } + if (station.drivingStatus == 1) {//行驶信息,0初始值;1已经过;2当前站;3未到站 + stationsListPass.add(latLng) + } else if (station.drivingStatus == 2) { + if (station.isLeaving) { + stationsListPass.add(latLng) + } else { + stationsList.add(latLng) + } + } else { + stationsList.add(latLng) + } + + } + + ThreadUtils.runOnUiThread { + mView?.updateLineStations(stationsList, stationsListPass, startStation, endStation) + } + PM2ADASModel.INSTANCE.updateHDMapStations(stations) + } + override fun removeHDMapStations() { mView?.removeMapMaker(M2_MAP_STATION_MAKER) } diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2DrivingPresenter.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2DrivingPresenter.kt index b82b61eef0..1097204c50 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2DrivingPresenter.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2DrivingPresenter.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.LifecycleOwner import com.amap.api.maps.model.LatLng import com.mogo.commons.mvp.Presenter import com.mogo.eagle.core.utilcode.util.ThreadUtils +import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.shuttle.weaknet.passenger.model.PM2ADASModel import com.mogo.och.shuttle.weaknet.passenger.ui.PM2DrivingInfoFragment import com.mogo.och.data.bean.BusStationBean @@ -14,6 +15,8 @@ class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) : Presenter(view), ICommonCallback { + private val TAG = "PM2DrivingPresenter" + init { CommonModel.init(context) PM2ADASModel.INSTANCE.init(context) @@ -27,11 +30,11 @@ class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) : } private fun initListener(){ - CommonModel.setRouteLineInfoCallback(this) + CommonModel.setRouteLineInfoCallback(TAG,this) } private fun destroyListener(){ - CommonModel.setRouteLineInfoCallback(null) + CommonModel.setRouteLineInfoCallback(TAG,null) } override fun updateSpeed(speed: Int) { @@ -64,43 +67,7 @@ class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) : } } - override fun updateLineStations(stations: MutableList) { - val stationsList = mutableListOf() - val stationsListPass = mutableListOf() - var startStation: LatLng? = null - var endStation: LatLng? = null - - for (i in stations.indices){ - val station = stations[i] - val latLng = LatLng(station.gcjLat,station.gcjLon) - if(i==0){ - startStation = latLng - continue - } - if(i==stations.size-1){ - endStation = latLng - continue - } - if(station.drivingStatus==1){//行驶信息,0初始值;1已经过;2当前站;3未到站 - stationsListPass.add(latLng) - }else if(station.drivingStatus==2){ - if(station.isLeaving){ - stationsListPass.add(latLng) - }else{ - stationsList.add(latLng) - } - }else{ - stationsList.add(latLng) - } - - } - - ThreadUtils.runOnUiThread { - mView?.updateLineStations(stationsList,stationsListPass,startStation,endStation) - } - PM2ADASModel.INSTANCE.updateHDMapStations(stations) - } override fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean) { ThreadUtils.runOnUiThread { @@ -108,14 +75,8 @@ class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) : } } - override fun clearCustomPolyline() { - ThreadUtils.runOnUiThread { - mView?.clearCustomPolyline() - } - } - override fun updateAutoStatus(isOpen: Boolean) { - ThreadUtils.runOnUiThread { + BizLoopManager.runInMainThread { mView?.updateAutoStatus(isOpen) } } diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2DrivingInfoFragment.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2DrivingInfoFragment.kt index fd866061b2..115f60e834 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2DrivingInfoFragment.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2DrivingInfoFragment.kt @@ -1,36 +1,15 @@ package com.mogo.och.shuttle.weaknet.passenger.ui -import android.graphics.BitmapFactory -import android.graphics.drawable.AnimationDrawable import android.os.Bundle -import android.view.View import androidx.core.content.ContextCompat -import com.amap.api.maps.model.LatLng -import com.mogo.commons.AbsMogoApplication import com.mogo.commons.mvp.MvpFragment import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView -import com.mogo.eagle.core.function.view.SiteMarkerBean -import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider import com.mogo.och.shuttle.weaknet.passenger.R import com.mogo.och.shuttle.weaknet.passenger.presenter.PM2DrivingPresenter import com.mogo.och.common.module.utils.NumberFormatUtil -import com.mogo.och.common.module.utils.ResourcesUtils import com.mogo.och.data.bean.BusStationBean import kotlinx.android.synthetic.main.shuttle_p_m2_driving_info_fragment.auto_tv -import kotlinx.android.synthetic.main.shuttle_p_m2_driving_info_fragment.clg_distance_left_time -import kotlinx.android.synthetic.main.shuttle_p_m2_driving_info_fragment.group_not_select_line -import kotlinx.android.synthetic.main.shuttle_p_m2_driving_info_fragment.group_stationinfo -import kotlinx.android.synthetic.main.shuttle_p_m2_driving_info_fragment.iv_animal_list -import kotlinx.android.synthetic.main.shuttle_p_m2_driving_info_fragment.line_name_tv -import kotlinx.android.synthetic.main.shuttle_p_m2_driving_info_fragment.overMapView import kotlinx.android.synthetic.main.shuttle_p_m2_driving_info_fragment.speed_tv -import kotlinx.android.synthetic.main.shuttle_p_m2_driving_info_fragment.station_name_tv -import kotlinx.android.synthetic.main.shuttle_p_m2_driving_info_fragment.tv_arrived_notice -import kotlinx.android.synthetic.main.shuttle_p_m2_driving_info_fragment.tv_distance -import kotlinx.android.synthetic.main.shuttle_p_m2_driving_info_fragment.tv_left_time -import kotlinx.android.synthetic.main.shuttle_p_m2_driving_info_fragment.tv_next_station_title - -import me.jessyan.autosize.utils.AutoSizeUtils import kotlin.math.ceil import kotlin.math.roundToInt @@ -41,22 +20,7 @@ import kotlin.math.roundToInt class PM2DrivingInfoFragment : MvpFragment() { - private val stationIcon = BitmapFactory.decodeResource( - AbsMogoApplication.getApp().resources, - R.drawable.shuttle_p_m2_map_staton_icon - ) - private val stationPassIcon = BitmapFactory.decodeResource( - AbsMogoApplication.getApp().resources, - R.drawable.shuttle_p_m2_map_staton_arrived_icon - ) - private val startStationIcon = BitmapFactory.decodeResource( - AbsMogoApplication.getApp().resources, - R.drawable.shuttle_p_m2_map_start_icon - ) - private val endStationIcon = BitmapFactory.decodeResource( - AbsMogoApplication.getApp().resources, - R.drawable.shuttle_p_m2_map_end_icon - ) + override fun getLayoutId(): Int { @@ -72,39 +36,25 @@ class PM2DrivingInfoFragment : context?.let { ToggleDebugView.toggleDebugView.toggle(it) } true } - - line_name_tv.setTextColor(ResourcesUtils.getColor(R.color.shuttle_p_m2_line_name_tv_color)) - station_name_tv.setTextColor(ResourcesUtils.getColor(R.color.shuttle_p_m2_line_name_tv_color)) - speed_tv.setVertrial(true) - val intArrayOf = intArrayOf( - ResourcesUtils.getColor(R.color.shuttle_p_m2_color_43cefe), - ResourcesUtils.getColor(R.color.shuttle_p_m2_color_1466fb), - ) - speed_tv.setmColorList(intArrayOf) +// +// line_name_tv.setTextColor(ResourcesUtils.getColor(R.color.shuttle_p_m2_line_name_tv_color)) +// station_name_tv.setTextColor(ResourcesUtils.getColor(R.color.shuttle_p_m2_line_name_tv_color)) } override fun initViews(savedInstanceState: Bundle?) { super.initViews(savedInstanceState) - overMapView?.let { - it.onCreateView(savedInstanceState) - val radius = AutoSizeUtils.dp2px(requireContext(), 16f) - it.outlineProvider = TextureVideoViewOutlineProvider(radius.toFloat()) - it.clipToOutline = true - } + } override fun onResume() { super.onResume() - overMapView?.onResume() } override fun onPause() { super.onPause() - overMapView?.onPause() } override fun onDestroyView() { - overMapView?.onDestroy() mPresenter?.onDestroy(this) super.onDestroyView() } @@ -114,35 +64,26 @@ class PM2DrivingInfoFragment : } fun updateTaskName(name: String) { - line_name_tv.text = name + //line_name_tv.text = name } fun showNoTaskView(haveTask: Boolean) { - setLineInfoView(haveTask) - } - - private fun setLineInfoView(isShow: Boolean) { - if (!isShow) { + if (!haveTask) { updateNoOrderUI() } } private fun updateNoOrderUI() { - line_name_tv.text = resources.getString(R.string.shuttle_p_m2_not_select_line_content) + //line_name_tv.text = resources.getString(R.string.shuttle_p_m2_not_select_line_content) updateNoStationView() - overMapView?.clearSiteMarkers() - clearCustomPolyline() - } - fun clearCustomPolyline() { - overMapView?.clearCustomPolyline() } private fun updateNoStationView() { - station_name_tv.setTextColor(ResourcesUtils.getColor(R.color.shuttle_p_m2_next_tv_color)) - station_name_tv.text = resources.getString(R.string.shuttle_p_m2_empty_tv) - tv_distance.text = resources.getString(R.string.shuttle_p_m2_empty_remain_km) - tv_left_time.text = resources.getString(R.string.shuttle_p_m2_empty_remain_minute) +// station_name_tv.setTextColor(ResourcesUtils.getColor(R.color.shuttle_p_m2_next_tv_color)) +// station_name_tv.text = resources.getString(R.string.shuttle_p_m2_empty_tv) +// tv_distance.text = resources.getString(R.string.shuttle_p_m2_empty_remain_km) +// tv_left_time.text = resources.getString(R.string.shuttle_p_m2_empty_remain_minute) noLineShow() } @@ -151,76 +92,35 @@ class PM2DrivingInfoFragment : } fun updateAutoStatus(isAutoPilot: Boolean) { - if (isAutoPilot) { - context?.let { - auto_tv.setTextColor( - ContextCompat.getColor( - it, - R.color.shuttle_p_m2_white_color - ) - ) - } - context?.let { - auto_tv.background = - ContextCompat.getDrawable(it, R.drawable.shuttle_p_m2_auto_button_bg) - } - } else { - context?.let { - auto_tv.setTextColor( - ContextCompat.getColor( - it, - R.color.shuttle_p_m2_color_7094ad - ) - ) - } - context?.let { - auto_tv.background = - ContextCompat.getDrawable(it, R.drawable.shuttle_p_m2_bg_p_m2_auto) + context?.let { + if (isAutoPilot) { + auto_tv.setTextColor(ContextCompat.getColor(it, R.color.common_FFFFFF)) + auto_tv.background = ContextCompat.getDrawable(it, R.drawable.m2_autopilot_status_in) + } else { + auto_tv.setTextColor(ContextCompat.getColor(it, R.color.common_284F7E)) + auto_tv.background = ContextCompat.getDrawable(it, R.drawable.m2_autopilot_status_out) } } - } - fun updateLineStations( - stations: MutableList, - stationsPass: MutableList, - startStation: LatLng?, - endStation: LatLng? - ) { - overMapView?.let { - val stationsList: MutableList = mutableListOf() - startStation?.let { start -> - stationsList.add(SiteMarkerBean(start, startStationIcon, 0.5f, 0.5f)) - } - for (stationPass in stationsPass) { - stationsList.add(SiteMarkerBean(stationPass, stationPassIcon, 0.5f, 0.5f)) - } - for (stationPass in stations) { - stationsList.add(SiteMarkerBean(stationPass, stationIcon, 0.5f, 0.5f)) - } - endStation?.let { end -> - stationsList.add(SiteMarkerBean(end, endStationIcon, 0.5f, 0.5f)) - } - it.drawSiteMarkers(stationsList) - } } fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean) { if (stations.size == 0) return - if (0 <= i && i < stations.size) { - station_name_tv.setTextColor(ResourcesUtils.getColor(R.color.shuttle_p_m2_next_tv_color)) - station_name_tv.text = stations[i].name - } - if (isArrived) {//到站 - tv_distance.text = resources.getString(R.string.shuttle_p_m2_empty_remain_km) - tv_left_time.text = resources.getString(R.string.shuttle_p_m2_empty_remain_minute) - tv_next_station_title.text = - resources.getString(R.string.shuttle_p_m2_station_title_arrived_tv) - haveLineAndArrivedStation() - } else { //前往目的地中 - tv_next_station_title.text = - resources.getString(R.string.shuttle_p_m2_next_station_title) - haveLineAndArriveingStation() - } +// if (0 <= i && i < stations.size) { +// station_name_tv.setTextColor(ResourcesUtils.getColor(R.color.shuttle_p_m2_next_tv_color)) +// station_name_tv.text = stations[i].name +// } +// if (isArrived) {//到站 +// tv_distance.text = resources.getString(R.string.shuttle_p_m2_empty_remain_km) +// tv_left_time.text = resources.getString(R.string.shuttle_p_m2_empty_remain_minute) +// tv_next_station_title.text = +// resources.getString(R.string.shuttle_p_m2_station_title_arrived_tv) +// haveLineAndArrivedStation() +// } else { //前往目的地中 +// tv_next_station_title.text = +// resources.getString(R.string.shuttle_p_m2_next_station_title) +// haveLineAndArriveingStation() +// } } /** @@ -242,41 +142,41 @@ class PM2DrivingInfoFragment : val time = ceil(timeInSecond / 60f).toInt() - "$remainDis$disUnit".also { tv_distance.text = it } - "${time}分钟".also { tv_left_time.text = it } +// "$remainDis$disUnit".also { tv_distance.text = it } +// "${time}分钟".also { tv_left_time.text = it } } fun noLineShow() { // 没有线路展示 - group_not_select_line.visibility = View.VISIBLE - // 下一个站点 - group_stationinfo.visibility = View.GONE - // 距离和剩余大概时间 - clg_distance_left_time.visibility = View.GONE - // 到达站点 - tv_arrived_notice.visibility = View.GONE - - iv_animal_list.visibility = View.GONE +// group_not_select_line.visibility = View.VISIBLE +// // 下一个站点 +// group_stationinfo.visibility = View.GONE +// // 距离和剩余大概时间 +// clg_distance_left_time.visibility = View.GONE +// // 到达站点 +// tv_arrived_notice.visibility = View.GONE +// +// iv_animal_list.visibility = View.GONE } // 有线路正在到站点 fun haveLineAndArriveingStation() { - group_not_select_line.visibility = View.GONE - group_stationinfo.visibility = View.VISIBLE - clg_distance_left_time.visibility = View.VISIBLE - tv_arrived_notice.visibility = View.GONE - iv_animal_list.visibility = View.GONE +// group_not_select_line.visibility = View.GONE +// group_stationinfo.visibility = View.VISIBLE +// clg_distance_left_time.visibility = View.VISIBLE +// tv_arrived_notice.visibility = View.GONE +// iv_animal_list.visibility = View.GONE } // 有线路到达站点 private fun haveLineAndArrivedStation() { - group_not_select_line.visibility = View.GONE - group_stationinfo.visibility = View.VISIBLE - clg_distance_left_time.visibility = View.GONE - tv_arrived_notice.visibility = View.VISIBLE - iv_animal_list.visibility = View.VISIBLE - val animationDrawable = iv_animal_list.drawable as AnimationDrawable - animationDrawable.start() +// group_not_select_line.visibility = View.GONE +// group_stationinfo.visibility = View.VISIBLE +// clg_distance_left_time.visibility = View.GONE +// tv_arrived_notice.visibility = View.VISIBLE +// iv_animal_list.visibility = View.VISIBLE +// val animationDrawable = iv_animal_list.drawable as AnimationDrawable +// animationDrawable.start() } companion object { diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2HPMapFragment.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2HPMapFragment.kt index 320a50e208..cb1abc4e0f 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2HPMapFragment.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2HPMapFragment.kt @@ -1,9 +1,14 @@ package com.mogo.och.shuttle.weaknet.passenger.ui +import android.graphics.BitmapFactory import android.os.Bundle +import com.amap.api.maps.model.LatLng +import com.mogo.commons.AbsMogoApplication import com.mogo.commons.mvp.MvpFragment import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager +import com.mogo.eagle.core.function.view.SiteMarkerBean import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider import com.mogo.map.overlay.core.Level import com.mogo.map.overlay.point.Point import com.mogo.map.MapDataWrapper @@ -12,6 +17,8 @@ import com.mogo.och.shuttle.weaknet.passenger.constant.M2Const.Companion.TYPE_MA import com.mogo.och.shuttle.weaknet.passenger.presenter.PM2ADASPresenter import com.mogo.och.common.module.utils.OCHThreadPoolManager import kotlinx.android.synthetic.main.shuttle_p_m2_hpmap_fragment.mHomeView +import kotlinx.android.synthetic.main.shuttle_p_m2_hpmap_fragment.overMapView +import me.jessyan.autosize.utils.AutoSizeUtils import java.util.* @@ -21,6 +28,24 @@ import java.util.* */ class PM2HPMapFragment : MvpFragment() { + + private val stationIcon = BitmapFactory.decodeResource( + AbsMogoApplication.getApp().resources, + R.drawable.shuttle_p_m2_map_staton_icon + ) + private val stationPassIcon = BitmapFactory.decodeResource( + AbsMogoApplication.getApp().resources, + R.drawable.shuttle_p_m2_map_staton_arrived_icon + ) + private val startStationIcon = BitmapFactory.decodeResource( + AbsMogoApplication.getApp().resources, + R.drawable.shuttle_p_m2_map_start_icon + ) + private val endStationIcon = BitmapFactory.decodeResource( + AbsMogoApplication.getApp().resources, + R.drawable.shuttle_p_m2_map_end_icon + ) + /** * 改变自动驾驶状态 * @@ -35,16 +60,24 @@ class PM2HPMapFragment : } override fun initViews() { + } override fun initViews(savedInstanceState: Bundle?) { super.initViews(savedInstanceState) mHomeView.onCreate(savedInstanceState) + overMapView?.let { + it.onCreateView(savedInstanceState) + val radius = AutoSizeUtils.dp2px(requireContext(), 16f) + it.outlineProvider = TextureVideoViewOutlineProvider(radius.toFloat()) + it.clipToOutline = true + } } override fun onResume() { super.onResume() mHomeView.onResume() + overMapView?.onResume() } override fun onLowMemory() { @@ -60,10 +93,12 @@ class PM2HPMapFragment : override fun onPause() { super.onPause() mHomeView.onPause() + overMapView?.onPause() } override fun onDestroyView() { mHomeView.onDestroy() + overMapView?.onDestroy() super.onDestroyView() } @@ -75,6 +110,30 @@ class PM2HPMapFragment : private val TAG = PM2HPMapFragment::class.java.simpleName } + fun updateLineStations( + stations: MutableList, + stationsPass: MutableList, + startStation: LatLng?, + endStation: LatLng? + ) { + overMapView?.let { + val stationsList: MutableList = mutableListOf() + startStation?.let { start -> + stationsList.add(SiteMarkerBean(start, startStationIcon, 0.5f, 0.5f)) + } + for (stationPass in stationsPass) { + stationsList.add(SiteMarkerBean(stationPass, stationPassIcon, 0.5f, 0.5f)) + } + for (stationPass in stations) { + stationsList.add(SiteMarkerBean(stationPass, stationIcon, 0.5f, 0.5f)) + } + endStation?.let { end -> + stationsList.add(SiteMarkerBean(end, endStationIcon, 0.5f, 0.5f)) + } + it.drawSiteMarkers(stationsList) + } + } + fun setMapMaker( uuid: String, station: MutableList, @@ -125,4 +184,15 @@ class PM2HPMapFragment : OCHThreadPoolManager.getsInstance().execute(removeMapMarkerRunnable) } + fun showNoTaskView(b: Boolean) { + if(!b) { + overMapView?.clearSiteMarkers() + clearCustomPolyline() + } + } + + fun clearCustomPolyline() { + overMapView?.clearCustomPolyline() + } + } \ No newline at end of file diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/widget/M2TurnLightView.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/widget/M2TurnLightView.kt index 2ded804a8c..f7e54eff2c 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/widget/M2TurnLightView.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/widget/M2TurnLightView.kt @@ -43,8 +43,7 @@ class M2TurnLightView @JvmOverloads constructor( private var isDisappear: Boolean = false init { - LayoutInflater.from(context) - .inflate(R.layout.shuttle_p_m2_turn_light_status, this, true) + LayoutInflater.from(context).inflate(R.layout.shuttle_p_m2_turn_light_status, this, true) } override fun onAttachedToWindow() { @@ -126,12 +125,12 @@ class M2TurnLightView @JvmOverloads constructor( appearAnimation.duration = 300 val appearAnimationImage = AlphaAnimation(0f, 1.0f) appearAnimation.duration = 500 - turn_light_layout.startAnimation(appearAnimation) - left_nor_image.startAnimation(appearAnimationImage) +// turn_light_layout.startAnimation(appearAnimation) +// left_nor_image.startAnimation(appearAnimationImage) right_nor_image.startAnimation(appearAnimationImage) - turn_light_layout.visibility = View.VISIBLE - left_nor_image.visibility = View.VISIBLE +// turn_light_layout.visibility = View.VISIBLE +// left_nor_image.visibility = View.VISIBLE right_nor_image.visibility = View.VISIBLE } @@ -142,19 +141,15 @@ class M2TurnLightView @JvmOverloads constructor( left_select_image.clearAnimation() right_select_image.clearAnimation() - left_nor_image.clearAnimation() + //left_nor_image.clearAnimation() right_nor_image.clearAnimation() - turn_light_layout.clearAnimation() val disappearAnimationLeft = AlphaAnimation(1.0f, 0f) disappearAnimationLeft.duration = 300 - val disappearAnimationBg = AlphaAnimation(1.0f, 0f) - disappearAnimationBg.duration = 500 - - left_nor_image.startAnimation(disappearAnimationLeft) + //left_nor_image.startAnimation(disappearAnimationLeft) right_nor_image.startAnimation(disappearAnimationLeft) - turn_light_layout.startAnimation(disappearAnimationBg) + disappearAnimationLeft.setAnimationListener(object : Animation.AnimationListener { override fun onAnimationRepeat(p0: Animation?) { @@ -164,20 +159,8 @@ class M2TurnLightView @JvmOverloads constructor( } override fun onAnimationEnd(p0: Animation?) { - left_nor_image.visibility = View.GONE - right_nor_image.visibility = View.GONE - } - }) - - disappearAnimationBg.setAnimationListener(object : Animation.AnimationListener { - override fun onAnimationRepeat(p0: Animation?) { - } - - override fun onAnimationStart(p0: Animation?) { - } - - override fun onAnimationEnd(p0: Animation?) { - turn_light_layout.visibility = View.GONE +// left_nor_image.visibility = View.GONE +// right_nor_image.visibility = View.GONE } }) } diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/widget/OchMapBizPView.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/widget/OchMapBizPView.kt new file mode 100644 index 0000000000..5cf9c44760 --- /dev/null +++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/widget/OchMapBizPView.kt @@ -0,0 +1,19 @@ +package com.mogo.och.shuttle.weaknet.passenger.ui.widget + +import android.content.Context +import android.util.AttributeSet +import com.mogo.eagle.core.function.view.MapBizView +import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider +import me.jessyan.autosize.utils.AutoSizeUtils + +class OchMapBizPView(context: Context?, attrs: AttributeSet?) : MapBizView(context, attrs) { + + + override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) { + super.onSizeChanged(w, h, oldw, oldh) + this.outlineProvider = + TextureVideoViewOutlineProvider(AutoSizeUtils.dp2px(context, 36f).toFloat()) + this.clipToOutline = true + } + +} diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/callback/ICommonCallback.java b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/callback/ICommonCallback.java index 4a39fa1348..e0b6371ea9 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/callback/ICommonCallback.java +++ b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/callback/ICommonCallback.java @@ -9,16 +9,16 @@ import java.util.List; * @date: 2022/4/6 */ public interface ICommonCallback { - void updateLineInfo(String lineName); - void updateStationsInfo(List stations, int currentStationIndex, boolean isArrived); - void updateSpeed(int location); - void updateRemainMT(long meters, long timeInSecond); - void showNoTaskView(boolean isTrue); + default void updateLineInfo(String lineName){} + default void updateStationsInfo(List stations, int currentStationIndex, boolean isArrived){} + default void updateSpeed(int location){} + default void updateRemainMT(long meters, long timeInSecond){} + default void showNoTaskView(boolean isTrue){} /** * false: 未开启自驾, true : 开启自驾 */ - void updateAutoStatus(boolean isOpen); + default void updateAutoStatus(boolean isOpen){} default void updateLineStations(List stations){} diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt index b030798c80..e047c1d0f4 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt @@ -55,7 +55,7 @@ object CommonModel { var mContext: Context? = null - private var mCommonCallback: ICommonCallback? = null // bus路线信息更新 + private var mCommonCallbackList = mutableMapOf() var mStations = mutableListOf() var mNextStationIndex = 0 // A-B要到达站的index @@ -102,8 +102,12 @@ object CommonModel { } - fun setRouteLineInfoCallback(callback: ICommonCallback?) { - this.mCommonCallback = callback + fun setRouteLineInfoCallback(tag:String,callback: ICommonCallback?) { + if(callback==null){ + this.mCommonCallbackList.remove(tag) + return + } + this.mCommonCallbackList[tag] = callback } @@ -141,12 +145,18 @@ object CommonModel { mNextStationIndex >= 0 && mNextStationIndex <= mStations.size - 1 && isGoingToNextStation ){ - mCommonCallback?.updateAutoStatus(true) + mCommonCallbackList.forEach { + it.value.updateAutoStatus(true) + } }else{//非美化模式下 - mCommonCallback?.updateAutoStatus(false) + mCommonCallbackList.forEach { + it.value.updateAutoStatus(false) + } } }else{//自驾状态 2 - mCommonCallback?.updateAutoStatus(true) + mCommonCallbackList.forEach { + it.value.updateAutoStatus(true) + } } } } @@ -172,10 +182,12 @@ object CommonModel { } } } - mCommonCallback?.updateRemainMT( - distance.toLong(), - lastTime.toLong() - ) + mCommonCallbackList.forEach { + it.value.updateRemainMT( + distance.toLong(), + lastTime.toLong() + ) + } } } @@ -226,7 +238,9 @@ object CommonModel { mNextStationIndex = 0 cleanStation("queryDriverSiteByCoordinate") isGoingToNextStation = false - mCommonCallback?.showNoTaskView(true) + mCommonCallbackList.forEach { + it.value.showNoTaskView(true) + } } @@ -238,20 +252,26 @@ object CommonModel { if (routesResult != null && routesResult!!.lineId != result.lineId) { d(TAG, "lineId change= clearCustomPolyline") - mCommonCallback?.clearCustomPolyline() + mCommonCallbackList.forEach { + it.value.clearCustomPolyline() + } } d(TAG, "queryDriverSiteByCoordinate = update") routesResult = result if (result.sites != null) { - mCommonCallback?.updateLineInfo(result.name) - mCommonCallback?.showNoTaskView(false) + mCommonCallbackList.forEach { + it.value.updateLineInfo(result.name) + it.value.showNoTaskView(false) + } if (result.sites != null) { val stations = result.sites mStations.clear() mStations.addAll(stations) - mCommonCallback?.updateLineStations(mStations) + mCommonCallbackList.forEach { + it.value.updateLineStations(mStations) + } for (i in stations.indices) { val station = stations[i] if(station.drivingStatus == BusPassengerConst.STATION_STATUS_STOPPED){ @@ -259,7 +279,9 @@ object CommonModel { if (station.isLeaving && i + 1 < stations.size ) { isGoingToNextStation = true - mCommonCallback?.updateStationsInfo(stations, i + 1, false) + mCommonCallbackList.forEach { + it.value.updateStationsInfo(stations, i + 1, false) + } mNextStationIndex = i + 1 val startStation = mStations[i] val endStation = mStations[i + 1] @@ -272,7 +294,9 @@ object CommonModel { } isGoingToNextStation = false Logger.d(TAG, "order = station= arrive") - mCommonCallback?.updateStationsInfo(stations, i, true) + mCommonCallbackList.forEach { + it.value.updateStationsInfo(stations, i, true) + } return } } @@ -411,6 +435,8 @@ object CommonModel { // km/h val speedKM = (abs(mogoLocation.gnssSpeed) * 3.6f).toInt() - mCommonCallback?.updateSpeed(speedKM) + mCommonCallbackList.forEach { + it.value.updateSpeed(speedKM) + } } } \ No newline at end of file diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_autopilot_status_in.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_autopilot_status_in.png new file mode 100644 index 0000000000..15717e08b4 Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_autopilot_status_in.png differ diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_autopilot_status_out.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_autopilot_status_out.png new file mode 100644 index 0000000000..da717d8909 Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_autopilot_status_out.png differ diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_big_bg.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_big_bg.png new file mode 100644 index 0000000000..a52b9f35ca Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_big_bg.png differ diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_bottom_bg.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_bottom_bg.png new file mode 100644 index 0000000000..63185cf110 Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_bottom_bg.png differ diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_p_driver_info_right.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_p_driver_info_right.png new file mode 100644 index 0000000000..ce192601d5 Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_p_driver_info_right.png differ diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_top_bg.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_top_bg.png new file mode 100644 index 0000000000..c2bac2662b Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_top_bg.png differ diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_youzhuan_open.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_youzhuan_open.png index bbd2c12d90..2ac9526450 100644 Binary files a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_youzhuan_open.png and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_youzhuan_open.png differ diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_youzhuan_un_open.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_youzhuan_un_open.png index 7c0dcaabe1..7f585ef4b6 100644 Binary files a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_youzhuan_un_open.png and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_youzhuan_un_open.png differ diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_zuozhuan_open.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_zuozhuan_open.png index 9bbda22cb7..2c1f8c62f4 100644 Binary files a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_zuozhuan_open.png and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_zuozhuan_open.png differ diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_zuozhuan_un_open.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_zuozhuan_un_open.png index 7c33fddbd9..71643afcce 100644 Binary files a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_zuozhuan_un_open.png and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_zuozhuan_un_open.png differ diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_driving_info_fragment.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_driving_info_fragment.xml index deb56a33b6..aecf221857 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_driving_info_fragment.xml +++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_driving_info_fragment.xml @@ -2,367 +2,76 @@ - - - - - - - - - - - - - - + android:id="@+id/aciv_right_bg" + android:src="@drawable/m2_p_driver_info_right" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" + android:layout_marginTop="@dimen/dp_19" + android:layout_marginEnd="@dimen/dp_28" + android:layout_width="@dimen/dp_217" + android:layout_height="@dimen/dp_476"/> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textColor="@color/common_203555" + android:text="KM/H" + android:layout_marginTop="@dimen/dp_132" + app:layout_constraintTop_toTopOf="@+id/aciv_right_bg" + app:layout_constraintStart_toStartOf="@+id/aciv_right_bg" + app:layout_constraintEnd_toEndOf="@+id/aciv_right_bg" + /> + + - - - - - - - - - - - - - - - - + android:layout_width="@dimen/dp_142" + android:layout_height="@dimen/dp_96" + android:layout_marginBottom="@dimen/dp_51" + app:layout_constraintStart_toStartOf="@+id/aciv_right_bg" + app:layout_constraintEnd_toEndOf="@+id/aciv_right_bg" + app:layout_constraintBottom_toBottomOf="@+id/aciv_right_bg" /> + - \ No newline at end of file diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_fragment.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_fragment.xml index 8978979677..fe413aa398 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_fragment.xml +++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_fragment.xml @@ -2,7 +2,7 @@ @@ -10,93 +10,45 @@ android:id="@+id/hd_map_fragment" android:layout_width="match_parent" android:layout_height="0dp" - app:layout_constraintTop_toBottomOf="@+id/och_shadow_layout" + android:layout_marginTop="@dimen/dp_14" + app:layout_constraintTop_toBottomOf="@+id/driving_fragment" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent"/> - - - - - - + android:layout_height="@dimen/dp_630" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" /> - - + + + + + + + + + + - - + + + + + + + + + + + - - - + - - - - - - - + - + + + + + + + + + + @@ -158,38 +90,38 @@ - + + + + + + + + + - + + + + + + + + + + - - + + + + + + + + + + + + + + - + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + android:layout_width="@dimen/dp_996" + android:layout_height="@dimen/dp_650"/> \ No newline at end of file diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_turn_light_status.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_turn_light_status.xml index a1699ac360..ca710e82b1 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_turn_light_status.xml +++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_turn_light_status.xml @@ -1,16 +1,17 @@ 暂无路线 MOGO BUS + AUTO \ No newline at end of file