Merge branch 'dev_robotaxi-d-app-module_280_taxi_passenger' into dev_robotaxi-d-app-module_280_220608_2.8.0

This commit is contained in:
yangyakun
2022-06-28 17:28:04 +08:00
16 changed files with 120 additions and 76 deletions

View File

@@ -124,7 +124,7 @@ public class TaxiPassengerBaseFragment extends MvpFragment<TaxiPassengerBaseFrag
});
findViewById(R.id.iv_temp).setOnClickListener(view -> {
//OverlayLeftViewUtils.INSTANCE.showOverlayView(getActivity());
OverlayLeftViewUtils.INSTANCE.showOverlayView(getActivity());
//showOrHideArrivedEndLayout(true, "北京北京北京", "1527481606997577728");
//showOrHidePressengerCheckPager(true, "开始站点开", "开始站点开始站点开始", "2", "京A888888", "18811539480");
//OCHFloatWindowManager.getInstance().ShowFloatWindow(getContext());

View File

@@ -224,15 +224,15 @@ object OverlayLeftViewUtils {
if (!isShowing) {
return
}
FullVideoUtils.dismissOverlayView(true)
// 管理的要关闭都得关闭
closeConsult()
closeMovice()
subscribe?.let {
if (!it.isDisposed) {
it.dispose()
}
}
FullVideoUtils.dismissOverlayView(true)
// 管理的要关闭都得关闭
closeConsult()
closeMovice()
subscribe = null
try {
if (windowManager != null && overlayView != null) {

View File

@@ -82,6 +82,7 @@ object FullVideoUtils {
it.setVideoAllCallBack(null)
it.smalllPlayer?.clearFullscreenLayout(it)
}
consultVideoPlayer.removeAllViews()
}
try {
if (windowManager != null) {

View File

@@ -77,8 +77,7 @@ class TaxiPassengerMogoConsultView :RelativeLayout {
var prePlayerPosition = 0
override fun pageSelect(recyclerView: RecyclerView?, newState: Int) {
//播放视频
val centerItemPosition: Int = carouselLayoutManager.centerItemPosition
val player = carouselLayoutManager.findViewByPosition(centerItemPosition)
val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager)
indicatorView.onPageSelected(centerItemPosition)
if(player is ConsultVideoPlayer){
if(prePlayerPosition!=centerItemPosition) {
@@ -86,8 +85,8 @@ class TaxiPassengerMogoConsultView :RelativeLayout {
player.onVideoReset()
}else{
}
val prePlayer =
carouselLayoutManager.findViewByPosition(prePlayerPosition)
val playerHolder = carouselLayoutManager.findViewByPosition(prePlayerPosition)
val prePlayer = playerHolder?.findViewById<ConsultVideoPlayer>(R.id.video_item_player)
prePlayer?.let {
if(it is ConsultVideoPlayer){
it.onVideoReset()
@@ -105,8 +104,7 @@ class TaxiPassengerMogoConsultView :RelativeLayout {
}
override fun pageStop() {
val centerItemPosition: Int = carouselLayoutManager.getCenterItemPosition()
val player = carouselLayoutManager.findViewByPosition(centerItemPosition)
val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager)
if(player is ConsultVideoPlayer){
player.onVideoPause()
}
@@ -126,8 +124,7 @@ class TaxiPassengerMogoConsultView :RelativeLayout {
indicatorView.onPageScrolled(currentIndex, fl, 0)
}
recyclerVideoAdapter.setOnThumbImageClilckListener {
val centerItemPosition: Int = carouselLayoutManager.centerItemPosition
val player = carouselLayoutManager.findViewByPosition(centerItemPosition)
val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager)
if(player is ConsultVideoPlayer) {
player.onVideoReset()
player.thumbImageViewLayout.visibility = View.VISIBLE
@@ -149,11 +146,7 @@ class TaxiPassengerMogoConsultView :RelativeLayout {
.load(taxiPassengerVideoPlay.imageUrl)
.apply(
RequestOptions().transform(
GlideBlurTransform(
context,
taxiPassengerVideoPlay.imageUrl,
5
)
GlideBlurTransform(context, taxiPassengerVideoPlay.imageUrl, 5)
)
)
.into(object : SimpleTarget<Bitmap?>() {
@@ -200,8 +193,7 @@ class TaxiPassengerMogoConsultView :RelativeLayout {
override fun onWindowFocusChanged(hasWindowFocus: Boolean) {
super.onWindowFocusChanged(hasWindowFocus)
val carouselLayoutManager = rvVideoPlaylist.layoutManager as CarouselLayoutManager
val centerItemPosition: Int = carouselLayoutManager.centerItemPosition
val player = carouselLayoutManager.findViewByPosition(centerItemPosition)
val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager)
player?.let {
if (player is ConsultVideoPlayer) {
if(hasWindowFocus){// 获取焦点两种情况
@@ -241,11 +233,17 @@ class TaxiPassengerMogoConsultView :RelativeLayout {
}
private fun getPlayer(carouselLayoutManager: CarouselLayoutManager): Pair<Int, ConsultVideoPlayer?> {
val centerItemPosition: Int = carouselLayoutManager.centerItemPosition
val playerHolder = carouselLayoutManager.findViewByPosition(centerItemPosition)
val player = playerHolder?.findViewById<ConsultVideoPlayer>(R.id.video_item_player)
return Pair(centerItemPosition, player)
}
override fun onDetachedFromWindow() {
val carouselLayoutManager = rvVideoPlaylist.layoutManager as CarouselLayoutManager
val centerItemPosition: Int = carouselLayoutManager.centerItemPosition
val player = carouselLayoutManager.findViewByPosition(centerItemPosition)
val (_: Int, player) = getPlayer(carouselLayoutManager)
player?.let {
if(player is ConsultVideoPlayer){
player.currentPlayer.release()

View File

@@ -77,8 +77,7 @@ class TaxiPassengerMogoMoviesView :RelativeLayout {
var prePlayerPosition = 0
override fun pageSelect(recyclerView: RecyclerView?, newState: Int) {
//播放视频
val centerItemPosition: Int = carouselLayoutManager.centerItemPosition
val player = carouselLayoutManager.findViewByPosition(centerItemPosition)
val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager)
indicatorView.onPageSelected(centerItemPosition)
if(player is ConsultVideoPlayer){
if(prePlayerPosition!=centerItemPosition) {
@@ -86,8 +85,8 @@ class TaxiPassengerMogoMoviesView :RelativeLayout {
player.onVideoReset()
}else{
}
val prePlayer =
carouselLayoutManager.findViewByPosition(prePlayerPosition)
val playerHolder = carouselLayoutManager.findViewByPosition(prePlayerPosition)
val prePlayer = playerHolder?.findViewById<ConsultVideoPlayer>(R.id.video_item_player)
prePlayer?.let {
if(it is ConsultVideoPlayer){
it.onVideoReset()
@@ -105,8 +104,7 @@ class TaxiPassengerMogoMoviesView :RelativeLayout {
}
override fun pageStop() {
val centerItemPosition: Int = carouselLayoutManager.getCenterItemPosition()
val player = carouselLayoutManager.findViewByPosition(centerItemPosition)
val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager)
if(player is ConsultVideoPlayer){
player.onVideoPause()
}
@@ -126,8 +124,7 @@ class TaxiPassengerMogoMoviesView :RelativeLayout {
indicatorView.onPageScrolled(currentIndex, fl, 0)
}
recyclerVideoAdapter.setOnThumbImageClilckListener {
val centerItemPosition: Int = carouselLayoutManager.centerItemPosition
val player = carouselLayoutManager.findViewByPosition(centerItemPosition)
val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager)
if(player is ConsultVideoPlayer) {
player.onVideoReset()
player.thumbImageViewLayout.visibility = View.VISIBLE
@@ -200,8 +197,7 @@ class TaxiPassengerMogoMoviesView :RelativeLayout {
override fun onWindowFocusChanged(hasWindowFocus: Boolean) {
super.onWindowFocusChanged(hasWindowFocus)
val carouselLayoutManager = rvVideoPlaylist.layoutManager as CarouselLayoutManager
val centerItemPosition: Int = carouselLayoutManager.centerItemPosition
val player = carouselLayoutManager.findViewByPosition(centerItemPosition)
val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager)
player?.let {
if (player is ConsultVideoPlayer) {
if(hasWindowFocus){// 获取焦点两种情况
@@ -241,11 +237,17 @@ class TaxiPassengerMogoMoviesView :RelativeLayout {
}
private fun getPlayer(carouselLayoutManager: CarouselLayoutManager): Pair<Int, ConsultVideoPlayer?> {
val centerItemPosition: Int = carouselLayoutManager.centerItemPosition
val playerHolder = carouselLayoutManager.findViewByPosition(centerItemPosition)
val player = playerHolder?.findViewById<ConsultVideoPlayer>(R.id.video_item_player)
return Pair(centerItemPosition, player)
}
override fun onDetachedFromWindow() {
val carouselLayoutManager = rvVideoPlaylist.layoutManager as CarouselLayoutManager
val centerItemPosition: Int = carouselLayoutManager.centerItemPosition
val player = carouselLayoutManager.findViewByPosition(centerItemPosition)
val (_: Int, player) = getPlayer(carouselLayoutManager)
player?.let {
if(player is ConsultVideoPlayer){
player.currentPlayer.release()

View File

@@ -24,7 +24,11 @@ public class GlideBlurTransform extends BitmapTransformation {
@Override
protected Bitmap transform( @NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, int outHeight ) {
Bitmap bitmap = FastBlurUtil.doBlur( toTransform, 1, blurRadius );
Bitmap lruBitmap = DiskLruCacheManager.getInstance(context).get(key);
if(lruBitmap!=null){
return lruBitmap;
}
Bitmap bitmap = FastBlurUtil.doBlur( toTransform, 8, blurRadius );
// 缓存高斯模糊图片
DiskLruCacheManager.getInstance( context ).put( key, bitmap );
return bitmap;

View File

@@ -4,24 +4,29 @@ import android.app.Activity
import android.content.Context
import android.graphics.Color
import android.util.AttributeSet
import android.view.*
import android.view.Gravity
import android.view.Surface
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.ImageView
import android.widget.TextView
import androidx.appcompat.widget.AppCompatImageView
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.view.marginTop
import com.mogo.eagle.core.utilcode.util.BarUtils
import com.mogo.eagle.core.utilcode.util.TimeTransformUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider
import com.mogo.och.taxi.passenger.R
import com.mogo.och.taxi.passenger.ui.video.FullVideoUtils
import com.shuyu.gsyvideoplayer.listener.VideoAllCallBack
import com.shuyu.gsyvideoplayer.utils.Debuger
import com.shuyu.gsyvideoplayer.utils.GSYVideoType
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer
import com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer
import com.shuyu.gsyvideoplayer.video.base.GSYVideoPlayer
import com.shuyu.gsyvideoplayer.video.base.GSYVideoView
import kotlinx.android.synthetic.main.taxi_p_video_show.view.*
import java.lang.reflect.Constructor
/**
@@ -64,7 +69,7 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer {
) {
mThumbImageViewLayout.visibility = View.VISIBLE
}
GSYVideoType.setShowType(GSYVideoType.SCREEN_TYPE_16_9)
GSYVideoType.setShowType(GSYVideoType.SCREEN_TYPE_FULL)
}
override fun getLayoutId(): Int {
@@ -190,6 +195,15 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer {
}
}
fun fullMarainTop(){
if(mIfCurrentIsFullscreen&&smalllPlayer!=null) {
if(mTopContainer.marginTop==0) {
val layoutParams = mTopContainer.layoutParams as ConstraintLayout.LayoutParams
layoutParams.setMargins(0, getStatusBarHeight(), 0, 0)
}
}
}
override fun setViewShowState(view: View?, visibility: Int) {
if (view === mThumbImageViewLayout && visibility != View.VISIBLE) {
return
@@ -199,6 +213,7 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer {
override fun onSurfaceAvailable(surface: Surface) {
super.onSurfaceAvailable(surface)
fullMarainTop()
if (GSYVideoType.getRenderType() != GSYVideoType.TEXTURE) {
if (mThumbImageViewLayout != null && mThumbImageViewLayout.visibility == View.VISIBLE) {
mThumbImageViewLayout.visibility = View.INVISIBLE
@@ -209,10 +224,10 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer {
override fun onAutoCompletion() {
super.onAutoCompletion()
if(mIfCurrentIsFullscreen){
FullVideoUtils.dismissOverlayView(false)
fullVideoPlayer?.let {
clearFullscreenLayout(it)
if(smalllPlayer!=null){
smalllPlayer?.clearFullscreenLayout(this)
}
FullVideoUtils.dismissOverlayView(false)
}
}
@@ -335,9 +350,9 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer {
frameLayout: FrameLayout) {
val lp = gsyVideoPlayer.layoutParams as LayoutParams
lp.setMargins(0, 0, 0, 0)
lp.height = ViewGroup.LayoutParams.MATCH_PARENT
lp.height = ViewGroup.LayoutParams.WRAP_CONTENT
lp.width = ViewGroup.LayoutParams.MATCH_PARENT
lp.gravity = Gravity.CENTER
lp.gravity = Gravity.BOTTOM
gsyVideoPlayer.layoutParams = lp
gsyVideoPlayer.isIfCurrentIsFullscreen = true
val isVertical = isVerticalFullByVideoSize
@@ -365,6 +380,12 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer {
checkAutoFullWithSizeAndAdaptation(gsyVideoPlayer)
}
fun getStatusBarHeight(): Int{
return Math.ceil((25 * context.resources.displayMetrics.density).toDouble()).toInt()
}
fun clearFullscreenLayout(gsyVideoPlayer:ConsultVideoPlayer) {
mIfCurrentIsFullscreen = false
val delay = 100

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

View File

@@ -2,5 +2,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#314F85"/>
<corners android:radius="@dimen/dp_46"/>
<corners android:radius="@dimen/dp_50"/>
</shape>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#3397FC"/>
<corners android:radius="@dimen/dp_46"/>
<gradient android:startColor="#3397FC" android:endColor="#3397FC"/>
<corners android:radius="@dimen/dp_50"/>
</shape>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="#22e5aa" android:endColor="#038f7e"/>
<corners android:radius="@dimen/dp_46"/>
<gradient android:startColor="#23FAB3" android:endColor="#009882"/>
<corners android:radius="@dimen/dp_60"/>
</shape>

View File

@@ -4,16 +4,16 @@
android:id="@+id/tv_comment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20px"
android:layout_marginBottom="20px"
android:layout_marginStart="10px"
android:layout_marginEnd="10px"
android:layout_marginTop="30px"
android:layout_marginBottom="30px"
android:layout_marginStart="16px"
android:layout_marginEnd="16px"
android:background="@drawable/taxi_p_comment_select"
android:button="@null"
android:paddingStart="40px"
android:paddingTop="8px"
android:paddingEnd="40px"
android:paddingBottom="8px"
android:paddingStart="45px"
android:paddingTop="15px"
android:paddingEnd="45px"
android:paddingBottom="15px"
android:textColor="@color/taxi_order_status_textColor"
android:textSize="40px"
android:textSize="46px"
tools:text="非常好" />

View File

@@ -1,5 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<com.mogo.och.taxi.passenger.widget.ConsultVideoPlayer xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/video_item_player"
android:layout_width="1734px"
android:layout_height="973px" />
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/taxi_p_video_shadow11"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.mogo.och.taxi.passenger.widget.ConsultVideoPlayer
android:id="@+id/video_item_player"
android:layout_gravity="center"
android:layout_width="1734px"
android:layout_height="973px" />
</FrameLayout>

View File

@@ -126,6 +126,7 @@
android:id="@+id/iv_star_first"
android:layout_marginTop="@dimen/dp_44"
android:layout_marginStart="@dimen/dp_34"
android:layout_marginEnd="3px"
app:layout_constraintTop_toBottomOf="@+id/tv_please_score"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/iv_star_second"
@@ -135,6 +136,7 @@
<ImageView
android:id="@+id/iv_star_second"
android:layout_marginEnd="3px"
app:layout_constraintTop_toTopOf="@+id/iv_star_first"
app:layout_constraintStart_toEndOf="@+id/iv_star_first"
app:layout_constraintEnd_toStartOf="@+id/iv_star_third"
@@ -144,6 +146,7 @@
<ImageView
android:id="@+id/iv_star_third"
android:layout_marginEnd="3px"
app:layout_constraintTop_toTopOf="@+id/iv_star_second"
app:layout_constraintStart_toEndOf="@+id/iv_star_second"
app:layout_constraintEnd_toStartOf="@+id/iv_star_fourth"
@@ -153,6 +156,7 @@
<ImageView
android:id="@+id/iv_star_fourth"
android:layout_marginEnd="3px"
app:layout_constraintTop_toTopOf="@+id/iv_star_third"
app:layout_constraintStart_toEndOf="@+id/iv_star_third"
app:layout_constraintEnd_toStartOf="@+id/iv_star_fifth"
@@ -162,6 +166,7 @@
<ImageView
android:id="@+id/iv_star_fifth"
android:layout_marginEnd="3px"
app:layout_constraintTop_toTopOf="@+id/iv_star_fourth"
app:layout_constraintStart_toEndOf="@+id/iv_star_fourth"
android:src="@drawable/taxi_p_passenger_star"
@@ -170,6 +175,7 @@
<ImageView
android:id="@+id/iv_star_hide"
android:layout_marginEnd="3px"
app:layout_constraintTop_toTopOf="@+id/iv_star_fourth"
app:layout_constraintStart_toEndOf="@+id/iv_star_fourth"
android:src="@drawable/taxi_p_passenger_star"
@@ -181,11 +187,11 @@
android:id="@+id/tv_feel"
app:layout_constraintTop_toTopOf="@+id/iv_star_hide"
app:layout_constraintBottom_toBottomOf="@+id/iv_star_hide"
app:layout_constraintStart_toEndOf="@+id/iv_star_fifth"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="@dimen/dp_53"
android:textColor="#FFD868"
android:textSize="46px"
tools:text="太差了"
android:layout_marginStart="@dimen/dp_35"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
@@ -210,10 +216,12 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:background="@drawable/taxi_p_comment_submit"
android:textSize="@dimen/sp_46"
android:layout_marginTop="60px"
android:layout_width="400px"
android:layout_marginBottom="80px"
android:textSize="@dimen/sp_42"
android:layout_marginTop="66px"
android:layout_marginBottom="109px"
android:paddingTop="31px"
android:paddingBottom="31px"
android:layout_width="450px"
android:layout_height="wrap_content"/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -8,6 +8,11 @@
android:background="@color/cardview_dark_background"
tools:ignore="MissingDefaultResource">
<View
android:background="#4C000000"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/aciv_title_icon"
android:src="@drawable/taxi_p_mogo_consult_title_icon"
@@ -33,9 +38,8 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_video_playlist"
android:layout_width="match_parent"
android:layout_height="973px"
android:layout_height="1294px"
android:orientation="horizontal"
android:layout_marginTop="@dimen/dp_130"
android:layout_marginStart="156px"
android:layout_marginEnd="156px"
app:layout_constraintEnd_toEndOf="parent"
@@ -48,8 +52,8 @@
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rv_video_playlist"
android:layout_marginTop="95px"
app:layout_constraintBottom_toBottomOf="@+id/rv_video_playlist"
android:layout_marginBottom="50px"
app:vpi_orientation="horizontal"
app:vpi_slide_mode="scale"
app:vpi_slider_checked_color="@color/taxi_p_traffic_light_red_color_up"

View File

@@ -18,7 +18,6 @@
<ImageView
android:id="@+id/thumbImage"
android:scaleType="fitXY"
android:background="@drawable/taxi_p_video_holder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true" />
@@ -44,10 +43,9 @@
android:id="@+id/fullscreen"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="60px"
android:layout_marginEnd="60px"
android:layout_width="66px"
android:layout_height="66px"
android:padding="40px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/taxi_p_change_full" />
<TextView