diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/TaxiPassengerBaseFragment.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/TaxiPassengerBaseFragment.kt index 06eeed44f7..cf6e37f301 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/TaxiPassengerBaseFragment.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/TaxiPassengerBaseFragment.kt @@ -40,13 +40,11 @@ import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.cb_setting_voice import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.chekAndStartAutopilotView import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.infoVideoView import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.itinerary -import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.lbv_go2_center import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.light_setting import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.mHomeView import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.musicBarView import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.mv_music_info import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.overMapView -import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.speedView import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.voice_setting /** @@ -114,25 +112,7 @@ class TaxiPassengerBaseFragment : } } } - lbv_go2_center.setOrderIdCallback(object : LeftBarView.LeftBarCallback{ - override fun setGo2CenterClick() { - when (bottom.getCurrentPage()) { - BottomBar.SelectView.PRECISIONMAP -> { - //切换到地图中间 -// mapBizView.getUI()?.let { -// val wgs02Location = OchLocationManager.getWgs02Location() -// it.moveToCenter(MogoLatLng(wgs02Location.latitude,wgs02Location.longitude)) -// } - } - BottomBar.SelectView.OVERMAPVIEW -> { - //overMapView.displayCustomOverView() - } - else -> {} - } - } - - }) } private fun initListener() { @@ -156,9 +136,6 @@ class TaxiPassengerBaseFragment : overMapView.visibility = View.GONE mHomeView.visibility = View.VISIBLE presenter?.setItineraryVisibility() - speedView.visibility = View.VISIBLE - lbv_go2_center.visibility = View.VISIBLE - lbv_go2_center.showAngle() CallerHmiManager.showTrafficLightView() infoVideoView.visibility = View.GONE mv_music_info.visibility = View.GONE @@ -169,8 +146,6 @@ class TaxiPassengerBaseFragment : overMapView.visibility = View.VISIBLE mHomeView.visibility = View.GONE presenter?.setItineraryVisibility() - speedView.visibility = View.VISIBLE - lbv_go2_center.visibility = View.GONE //lbv_go2_center.showOnlyCenter() CallerHmiManager.showTrafficLightView() infoVideoView.visibility = View.GONE @@ -182,8 +157,6 @@ class TaxiPassengerBaseFragment : overMapView.visibility = View.GONE mHomeView.visibility = View.GONE presenter?.setItineraryVisibility() - speedView.visibility = View.GONE - lbv_go2_center.visibility = View.GONE CallerHmiManager.hideTrafficLightView() infoVideoView.visibility = View.VISIBLE mv_music_info.visibility = View.GONE @@ -194,8 +167,6 @@ class TaxiPassengerBaseFragment : overMapView.visibility = View.GONE mHomeView.visibility = View.GONE presenter?.setItineraryVisibility() - speedView.visibility = View.GONE - lbv_go2_center.visibility = View.GONE CallerHmiManager.hideTrafficLightView() infoVideoView.visibility = View.GONE mv_music_info.visibility = View.VISIBLE @@ -394,7 +365,7 @@ class TaxiPassengerBaseFragment : allAnimator.addAll(aniStatusBar(isShow)) allAnimator.addAll(aniBottomBar(isShow)) - allAnimator.addAll(aniSpeedSettingRow(isShow,speedView)) + //allAnimator.addAll(aniSpeedSettingRow(isShow,speedView)) allAnimator.addAll(aniOrderInfo(isShow)) animatorSet.playTogether(allAnimator) diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/homepage/HomeView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/homepage/HomeView.kt index 765fe1c97f..7bc001f0d4 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/homepage/HomeView.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/homepage/HomeView.kt @@ -1,12 +1,26 @@ package com.mogo.och.unmanned.passenger.ui.homepage +import android.animation.Animator +import android.animation.ObjectAnimator +import android.animation.ValueAnimator import android.content.Context import android.os.Bundle import android.util.AttributeSet import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout +import androidx.constraintlayout.widget.Guideline +import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.och.unmanned.passenger.ui.bar.LeftBarView import com.mogo.och.unmanned.taxi.passenger.R +import kotlinx.android.synthetic.main.taxi_p_home.view.acbtn_show_all +import kotlinx.android.synthetic.main.taxi_p_home.view.acbtn_show_hdmap import kotlinx.android.synthetic.main.taxi_p_home.view.hdMapView +import kotlinx.android.synthetic.main.taxi_p_home.view.lbv_go2_center +import kotlinx.android.synthetic.main.taxi_p_home.view.leftContainer +import kotlinx.android.synthetic.main.taxi_p_home.view.leftEndGuideline +import kotlinx.android.synthetic.main.taxi_p_home.view.midContainer +import kotlinx.android.synthetic.main.taxi_p_home.view.midStartGuideline class HomeView @JvmOverloads constructor( context: Context, @@ -15,9 +29,47 @@ class HomeView @JvmOverloads constructor( ) : ConstraintLayout(context, attrs, defStyleAttr){ + private var isAMapShow = true + private var isHDMapShow = false + private var isReadyForShowHDMap = false + private var currentAnimator: ValueAnimator? = null + + private var TAG = "HomeView" + + private fun initView() { LayoutInflater.from(context).inflate(R.layout.taxi_p_home, this, true) + initlistener() + } + + private fun initlistener() { + lbv_go2_center.setOrderIdCallback(object : LeftBarView.LeftBarCallback{ + override fun setGo2CenterClick() { + //切换到地图中间 +// mapBizView.getUI()?.let { +// val wgs02Location = OchLocationManager.getWgs02Location() +// it.moveToCenter(MogoLatLng(wgs02Location.latitude,wgs02Location.longitude)) +// } + //overMapView.displayCustomOverView() + } + + }) + + acbtn_show_hdmap.onClick { + showHdMap() + } + acbtn_show_all.onClick { + showAmapAndHdMap() + } + } + + fun showHdMap(){ + updateViewState(true,false,true) + } + + fun showAmapAndHdMap(){ + updateViewState(true,true,false) } fun onCreate(savedInstanceState: Bundle?) { @@ -45,6 +97,111 @@ class HomeView @JvmOverloads constructor( } + private fun updateViewState( + showHDMapView: Boolean, + showAMapView: Boolean, + animate: Boolean = true + ) { + // 展示高德地图和高精地图 + if (showHDMapView && showAMapView) { + CallerLogger.d(TAG,"展示高德地图和高精地图${showHDMapView}_$showAMapView") + midStartGuideline.setGuidelinePercent(0.333f) + if (animate) { + animateGuidelinePercent( + leftEndGuideline, + 0.333f, + 1000 + ) { + lbv_go2_center.visibility = GONE + } + } else { + leftEndGuideline.setGuidelinePercent(0.333f) + lbv_go2_center.visibility = GONE + } + } + // 不展示高德 展示高精 + if (showHDMapView && !showAMapView) { + CallerLogger.d(TAG,"展示高德 不展示高精${showHDMapView}_$showAMapView") + if (animate) { + animateGuidelinePercent( + leftEndGuideline, + 0.666f, + 1000, + end = { + lbv_go2_center.visibility = VISIBLE + } + ) + } else { + leftEndGuideline.setGuidelinePercent(0.666f) + lbv_go2_center.visibility = VISIBLE + } + } + // 不展示高精 展示高德 + if (!showHDMapView && showAMapView) { + CallerLogger.d(TAG,"展示高精 不展示高德${showHDMapView}_$showAMapView") + if (animate) { + midStartGuideline.setGuidelinePercent(0.0f) + animateGuidelinePercent( + leftEndGuideline, + 0.0f, + 1000 + ) { + lbv_go2_center.visibility = GONE + } + } + else { + leftEndGuideline.setGuidelinePercent(0.0f) + midStartGuideline.setGuidelinePercent(0.0f) + lbv_go2_center.visibility = GONE + } + } + } + + private fun animateGuidelinePercent( + guideline: Guideline, + endPercent: Float, + duration: Long, + start: (() -> Unit)? = null, + end: (() -> Unit)? = null + ) { + // 如果当前已有动画在运行,先取消它 + if (currentAnimator?.isRunning == true) { + currentAnimator?.cancel() + } + + val startPercent = (guideline.layoutParams as ConstraintLayout.LayoutParams).guidePercent + // 创建新的 ObjectAnimator + currentAnimator = ObjectAnimator.ofFloat( + guideline, + "guidelinePercent", + startPercent, + endPercent + ) + // 设置动画时长 + currentAnimator?.setDuration(duration) + + // 设置动画回调监听器 + currentAnimator?.addListener(object : Animator.AnimatorListener { + override fun onAnimationStart(animation: Animator) { + start?.invoke() + } + + override fun onAnimationEnd(animation: Animator) { + end?.invoke() + } + + override fun onAnimationCancel(animation: Animator) { + } + + override fun onAnimationRepeat(animation: Animator) { + } + }) + + // 启动新的动画 + currentAnimator?.start() + } + + init { try { initView() diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/taxi_p_home_middle_bottom_bg.9.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/taxi_p_home_middle_bottom_bg.9.png new file mode 100644 index 0000000000..c164452548 Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/taxi_p_home_middle_bottom_bg.9.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/taxi_p_home_middle_top_bg.9.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/taxi_p_home_middle_top_bg.9.png new file mode 100644 index 0000000000..21c2f9f74b Binary files /dev/null and b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/taxi_p_home_middle_top_bg.9.png differ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxi_p_home.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxi_p_home.xml index 346611b025..bc0d779395 100644 --- a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxi_p_home.xml +++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxi_p_home.xml @@ -6,27 +6,6 @@ android:layout_height="match_parent" tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"> - - - - - - - - + android:layout_marginBottom="@dimen/dp_10" + app:layout_constraintTop_toTopOf="parent" + android:layout_marginStart="-6.5dp" + android:layout_marginEnd="-6.5dp" + app:layout_constraintStart_toEndOf="@+id/midStartGuideline" + app:layout_constraintEnd_toStartOf="@id/rightStartGuideline"> + + + + + + + + - + + + + + + + + + + + + + + + + + + + + app:layout_constraintStart_toEndOf="@id/rightStartGuideline"> - - - - + + \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml index 889782b12f..5181385308 100644 --- a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml +++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml @@ -40,15 +40,6 @@ android:layout_width="match_parent" android:layout_height="match_parent"/> - - - - - - - - + \ No newline at end of file