diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/TaxiPassengerMogoConsultView.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/TaxiPassengerMogoConsultView.kt deleted file mode 100644 index 4b6732a813..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/TaxiPassengerMogoConsultView.kt +++ /dev/null @@ -1,265 +0,0 @@ -package com.mogo.och.taxi.passenger.ui.video - -import android.content.Context -import android.graphics.Bitmap -import android.graphics.Color -import android.graphics.drawable.BitmapDrawable -import android.util.AttributeSet -import android.view.LayoutInflater -import android.view.View -import android.widget.RelativeLayout -import androidx.constraintlayout.widget.ConstraintLayout -import androidx.recyclerview.widget.RecyclerView -import com.bumptech.glide.Glide -import com.bumptech.glide.request.RequestOptions -import com.bumptech.glide.request.target.SimpleTarget -import com.bumptech.glide.request.transition.Transition -import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.och.taxi.passenger.R -import com.mogo.och.taxi.passenger.bean.TaxiPassengerVideoPlay -import com.mogo.och.taxi.passenger.ui.video.layoutmanage.CarouselLayoutManager -import com.mogo.och.taxi.passenger.ui.video.layoutmanage.CarouselZoomPostLayoutListener -import com.mogo.och.taxi.passenger.ui.video.layoutmanage.CenterScrollListener -import com.mogo.och.taxi.passenger.utils.blur.GlideBlurTransform -import com.mogo.och.taxi.passenger.widget.ConsultVideoPlayer -import com.mogo.och.taxi.passenger.widget.indicator.IndicatorView -import com.mogo.och.taxi.passenger.widget.indicator.enums.IndicatorOrientation -import com.mogo.och.taxi.passenger.widget.indicator.enums.IndicatorSlideMode -import com.mogo.och.taxi.passenger.widget.indicator.enums.IndicatorStyle -import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack -import com.shuyu.gsyvideoplayer.video.base.GSYVideoView -import java.util.* -import kotlin.math.floor - - -/** - * - * 蘑菇咨询 - * Created on 2022/5/16 - */ -class TaxiPassengerMogoConsultView :RelativeLayout { - - constructor(context: Context?) : super(context) - - constructor(context: Context?, attributeSet: AttributeSet) : super(context, attributeSet) - - constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr) - - constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes) - - private lateinit var rvVideoPlaylist: RecyclerView - private lateinit var indicatorView: IndicatorView - private lateinit var clContain: ConstraintLayout - - private fun initView(context: Context) { - LayoutInflater.from(context).inflate(R.layout.taxi_p_arrived_mogo_consult, this, true) - rvVideoPlaylist = findViewById(R.id.rv_video_playlist) - indicatorView = findViewById(R.id.indicatorView) - clContain = findViewById(R.id.cl_contain) - - val arrayListOf = ArrayList() - arrayListOf.add(TaxiPassengerVideoPlay("https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708409810/20210610重新排版3屏.m4v","https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969579713/三屏.png","重新排版")) - arrayListOf.add(TaxiPassengerVideoPlay("https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708499497/大运会合作解说版.m4v","https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969536177/大运会.png","大运会")) - arrayListOf.add(TaxiPassengerVideoPlay("https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708554279/红旗车队.m4v","https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969553174/红旗重新排版.png","红旗车队")) - arrayListOf.add(TaxiPassengerVideoPlay("https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708596763/全车型混剪增加红旗车队.m4v","https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969511280/车队.png","全车型混剪增加红旗车队")) - val recyclerVideoAdapter = RecyclerVideoAdapter(context, arrayListOf) - val carouselLayoutManager = CarouselLayoutManager(CarouselLayoutManager.HORIZONTAL, true) - carouselLayoutManager.setPostLayoutListener(CarouselZoomPostLayoutListener ()) - carouselLayoutManager.maxVisibleItems = 1 - indicatorView.notifyDataChanged(arrayListOf.size) - indicatorView.setSlideMode(IndicatorSlideMode.SCALE) - indicatorView.setOrientation(IndicatorOrientation.INDICATOR_HORIZONTAL) - indicatorView.setIndicatorStyle(IndicatorStyle.ROUND_RECT) - indicatorView.setSliderColor(Color.parseColor("#80FFFFFF"), Color.parseColor("#2972FF")) - indicatorView.setSliderWidth(16f, 101f) - indicatorView.setSliderHeight(16f) - indicatorView.setSliderGap(30f) - rvVideoPlaylist.addOnScrollListener(object: CenterScrollListener() { - var prePlayerPosition = 0 - override fun pageSelect(recyclerView: RecyclerView?, newState: Int) { - //播放视频 - val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager) - indicatorView.onPageSelected(centerItemPosition) - if(player is ConsultVideoPlayer){ - if(prePlayerPosition!=centerItemPosition) { - if(player.currentState==GSYVideoView.CURRENT_STATE_PAUSE){ - player.onVideoReset() - }else{ - } - val playerHolder = carouselLayoutManager.findViewByPosition(prePlayerPosition) - val prePlayer = playerHolder?.findViewById(R.id.video_item_player) - prePlayer?.let { - if(it is ConsultVideoPlayer){ - it.onVideoReset() - } - } - val taxiPassengerVideoPlay = arrayListOf[centerItemPosition] - if (player.getVideoAllCallBack()==null) { - setBackageAndPlayNext(taxiPassengerVideoPlay, player, centerItemPosition) - } - }else{ - player.onVideoResume(false) - } - } - prePlayerPosition = centerItemPosition - } - - override fun pageStop() { - val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager) - if(player is ConsultVideoPlayer){ - player.onVideoPause() - } - } - - }) - carouselLayoutManager.addOnDargAutoDiffListener { adapterPosition, currentPosition -> - val fl = adapterPosition - floor(adapterPosition) - var currentIndex = currentPosition - if(fl>0.5){ - if(currentPosition==0){ - currentIndex = rvVideoPlaylist.adapter!!.itemCount-1 - }else { - currentIndex -= 1 - } - } - indicatorView.onPageScrolled(currentIndex, fl, 0) - } - recyclerVideoAdapter.setOnThumbImageClilckListener { - val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager) - if(player is ConsultVideoPlayer) { - player.onVideoReset() - player.thumbImageViewLayout.visibility = View.VISIBLE - } - rvVideoPlaylist.smoothScrollToPosition(it) - } - rvVideoPlaylist.layoutManager = carouselLayoutManager - rvVideoPlaylist.setHasFixedSize(true) - rvVideoPlaylist.adapter = recyclerVideoAdapter - } - - private fun setBackageAndPlayNext( - taxiPassengerVideoPlay: TaxiPassengerVideoPlay, - player: ConsultVideoPlayer, - centerItemPosition: Int, - ) { - // 设置背景图片 - Glide.with(context).asBitmap() - .load(taxiPassengerVideoPlay.imageUrl) - .apply( - RequestOptions().transform( - GlideBlurTransform(context, taxiPassengerVideoPlay.imageUrl, 5) - ) - ) - .into(object : SimpleTarget() { - override fun onResourceReady( - resource: Bitmap, - transition: Transition? - ) { - clContain.background = BitmapDrawable(context.resources, resource) - } - }) - if(player.getVideoAllCallBack()==null) { - player.setVideoAllCallBack(object : GSYSampleCallBack() { - override fun onAutoComplete(url: String?, vararg objects: Any?) { - player.onVideoReset() - val itemCount = rvVideoPlaylist.adapter?.itemCount - itemCount?.let { - if (centerItemPosition == itemCount - 1) { - rvVideoPlaylist.smoothScrollToPosition(0) - } else { - rvVideoPlaylist.smoothScrollToPosition(centerItemPosition + 1) - } - } - } - - override fun onClickBlank(url: String?, vararg objects: Any?) { - super.onClickBlank(url, *objects) - rvVideoPlaylist.smoothScrollToPosition(centerItemPosition) - } - - override fun onPlayError(url: String?, vararg objects: Any?) { - super.onPlayError(url, *objects) - ToastUtils.showLong("哎呀,出错了,看看其他视频吧") - } - - override fun onClickStartError(url: String?, vararg objects: Any?) { - super.onClickStartError(url, *objects) - ToastUtils.showLong("哎呀,出错了,看看其他视频吧") - } - }) - } - } - - - override fun onWindowFocusChanged(hasWindowFocus: Boolean) { - super.onWindowFocusChanged(hasWindowFocus) - val carouselLayoutManager = rvVideoPlaylist.layoutManager as CarouselLayoutManager - val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager) - player?.let { - if (player is ConsultVideoPlayer) { - if(hasWindowFocus){// 获取焦点两种情况 - // 恢复播放和开始播放 - if(player.isIfCurrentIsFullscreen){// 全屏了 - - }else { - when (player.currentState) { - GSYVideoView.CURRENT_STATE_PAUSE -> { - player.onVideoResume(false) - } - GSYVideoView.CURRENT_STATE_PLAYING -> { - } - else -> { - val recyclerVideoAdapter = - rvVideoPlaylist.adapter as RecyclerVideoAdapter - setBackageAndPlayNext( - recyclerVideoAdapter.getItemByPosition(centerItemPosition), - player, centerItemPosition - ) - //player.startPlayLogic() - } - } - } - }else { - // 离开应用 暂停视频 - // 关闭 onDetachedFromWindow 会reset - if(player.isIfCurrentIsFullscreen){// 全屏了 - - }else { - player.onVideoPause() - } - } - } - - } - - } - - private fun getPlayer(carouselLayoutManager: CarouselLayoutManager): Pair { - val centerItemPosition: Int = carouselLayoutManager.centerItemPosition - val playerHolder = carouselLayoutManager.findViewByPosition(centerItemPosition) - val player = playerHolder?.findViewById(R.id.video_item_player) - return Pair(centerItemPosition, player) - } - - - override fun onDetachedFromWindow() { - val carouselLayoutManager = rvVideoPlaylist.layoutManager as CarouselLayoutManager - val (_: Int, player) = getPlayer(carouselLayoutManager) - player?.let { - if(player is ConsultVideoPlayer){ - player.currentPlayer.release() - player.onVideoReset() - } - } - super.onDetachedFromWindow() - } - - init { - try { - initView(context) - } catch (e: Exception) { - e.printStackTrace() - } - } - -} \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/TaxiPassengerMogoMoviesView.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/TaxiPassengerMogoMoviesView.kt deleted file mode 100644 index da3d73b419..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/TaxiPassengerMogoMoviesView.kt +++ /dev/null @@ -1,268 +0,0 @@ -package com.mogo.och.taxi.passenger.ui.video - -import android.content.Context -import android.graphics.Bitmap -import android.graphics.Color -import android.graphics.drawable.BitmapDrawable -import android.util.AttributeSet -import android.view.LayoutInflater -import android.view.View -import android.widget.RelativeLayout -import androidx.constraintlayout.widget.ConstraintLayout -import androidx.recyclerview.widget.RecyclerView -import com.bumptech.glide.Glide -import com.bumptech.glide.request.RequestOptions -import com.bumptech.glide.request.target.SimpleTarget -import com.bumptech.glide.request.transition.Transition -import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.och.taxi.passenger.R -import com.mogo.och.taxi.passenger.bean.TaxiPassengerVideoPlay -import com.mogo.och.taxi.passenger.ui.video.layoutmanage.CarouselLayoutManager -import com.mogo.och.taxi.passenger.ui.video.layoutmanage.CarouselZoomPostLayoutListener -import com.mogo.och.taxi.passenger.ui.video.layoutmanage.CenterScrollListener -import com.mogo.och.taxi.passenger.utils.blur.GlideBlurTransform -import com.mogo.och.taxi.passenger.widget.ConsultVideoPlayer -import com.mogo.och.taxi.passenger.widget.indicator.IndicatorView -import com.mogo.och.taxi.passenger.widget.indicator.enums.IndicatorOrientation -import com.mogo.och.taxi.passenger.widget.indicator.enums.IndicatorSlideMode -import com.mogo.och.taxi.passenger.widget.indicator.enums.IndicatorStyle -import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack -import com.shuyu.gsyvideoplayer.video.base.GSYVideoView -import java.util.* -import kotlin.math.floor - - -/** - * - * 蘑菇咨询 - * Created on 2022/5/16 - */ -class TaxiPassengerMogoMoviesView :RelativeLayout { - - constructor(context: Context?) : super(context) - - constructor(context: Context?, attributeSet: AttributeSet) : super(context, attributeSet) - - constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr) - - constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes) - - private lateinit var rvVideoPlaylist: RecyclerView - private lateinit var indicatorView: IndicatorView - private lateinit var clContain: ConstraintLayout - - private fun initView(context: Context) { - LayoutInflater.from(context).inflate(R.layout.taxi_p_mogo_movies, this, true) - rvVideoPlaylist = findViewById(R.id.rv_video_playlist) - indicatorView = findViewById(R.id.indicatorView) - clContain = findViewById(R.id.cl_contain) - - val arrayListOf = ArrayList() - arrayListOf.add(TaxiPassengerVideoPlay("https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708409810/20210610重新排版3屏.m4v","https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969579713/三屏.png","重新排版")) - arrayListOf.add(TaxiPassengerVideoPlay("https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708499497/大运会合作解说版.m4v","https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969536177/大运会.png","大运会")) - arrayListOf.add(TaxiPassengerVideoPlay("https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708554279/红旗车队.m4v","https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969553174/红旗重新排版.png","红旗车队")) - arrayListOf.add(TaxiPassengerVideoPlay("https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708596763/全车型混剪增加红旗车队.m4v","https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969511280/车队.png","全车型混剪增加红旗车队")) - val recyclerVideoAdapter = RecyclerVideoAdapter(context, arrayListOf) - val carouselLayoutManager = CarouselLayoutManager(CarouselLayoutManager.HORIZONTAL, true) - carouselLayoutManager.setPostLayoutListener(CarouselZoomPostLayoutListener ()) - carouselLayoutManager.maxVisibleItems = 1 - indicatorView.notifyDataChanged(arrayListOf.size) - indicatorView.setSlideMode(IndicatorSlideMode.SCALE) - indicatorView.setOrientation(IndicatorOrientation.INDICATOR_HORIZONTAL) - indicatorView.setIndicatorStyle(IndicatorStyle.ROUND_RECT) - indicatorView.setSliderColor(Color.parseColor("#80FFFFFF"), Color.parseColor("#2972FF")) - indicatorView.setSliderWidth(14f, 90f) - indicatorView.setSliderHeight(14f) - rvVideoPlaylist.addOnScrollListener(object: CenterScrollListener() { - var prePlayerPosition = 0 - override fun pageSelect(recyclerView: RecyclerView?, newState: Int) { - //播放视频 - val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager) - indicatorView.onPageSelected(centerItemPosition) - if(player is ConsultVideoPlayer){ - if(prePlayerPosition!=centerItemPosition) { - if(player.currentState==GSYVideoView.CURRENT_STATE_PAUSE){ - player.onVideoReset() - }else{ - } - val playerHolder = carouselLayoutManager.findViewByPosition(prePlayerPosition) - val prePlayer = playerHolder?.findViewById(R.id.video_item_player) - prePlayer?.let { - if(it is ConsultVideoPlayer){ - it.onVideoReset() - } - } - val taxiPassengerVideoPlay = arrayListOf[centerItemPosition] - if (player.getVideoAllCallBack()==null) { - setBackageAndPlayNext(taxiPassengerVideoPlay, player, centerItemPosition) - } - }else{ - player.onVideoResume(false) - } - } - prePlayerPosition = centerItemPosition - } - - override fun pageStop() { - val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager) - if(player is ConsultVideoPlayer){ - player.onVideoPause() - } - } - - }) - carouselLayoutManager.addOnDargAutoDiffListener { adapterPosition, currentPosition -> - val fl = adapterPosition - floor(adapterPosition) - var currentIndex = currentPosition - if(fl>0.5){ - if(currentPosition==0){ - currentIndex = rvVideoPlaylist.adapter!!.itemCount-1 - }else { - currentIndex -= 1 - } - } - indicatorView.onPageScrolled(currentIndex, fl, 0) - } - recyclerVideoAdapter.setOnThumbImageClilckListener { - val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager) - if(player is ConsultVideoPlayer) { - player.onVideoReset() - player.thumbImageViewLayout.visibility = View.VISIBLE - } - rvVideoPlaylist.smoothScrollToPosition(it) - } - rvVideoPlaylist.layoutManager = carouselLayoutManager - rvVideoPlaylist.setHasFixedSize(true) - rvVideoPlaylist.adapter = recyclerVideoAdapter - } - - private fun setBackageAndPlayNext( - taxiPassengerVideoPlay: TaxiPassengerVideoPlay, - player: ConsultVideoPlayer, - centerItemPosition: Int, - ) { - // 设置背景图片 - Glide.with(context).asBitmap() - .load(taxiPassengerVideoPlay.imageUrl) - .apply( - RequestOptions().transform( - GlideBlurTransform( - context, - taxiPassengerVideoPlay.imageUrl, - 5 - ) - ) - ) - .into(object : SimpleTarget() { - override fun onResourceReady( - resource: Bitmap, - transition: Transition? - ) { - clContain.background = BitmapDrawable(context.resources, resource) - } - }) - if(player.getVideoAllCallBack()==null) { - player.setVideoAllCallBack(object : GSYSampleCallBack() { - override fun onAutoComplete(url: String?, vararg objects: Any?) { - player.onVideoReset() - val itemCount = rvVideoPlaylist.adapter?.itemCount - itemCount?.let { - if (centerItemPosition == itemCount - 1) { - rvVideoPlaylist.smoothScrollToPosition(0) - } else { - rvVideoPlaylist.smoothScrollToPosition(centerItemPosition + 1) - } - } - } - - override fun onClickBlank(url: String?, vararg objects: Any?) { - super.onClickBlank(url, *objects) - rvVideoPlaylist.smoothScrollToPosition(centerItemPosition) - } - - override fun onPlayError(url: String?, vararg objects: Any?) { - super.onPlayError(url, *objects) - ToastUtils.showLong("哎呀,出错了,看看其他视频吧") - } - - override fun onClickStartError(url: String?, vararg objects: Any?) { - super.onClickStartError(url, *objects) - ToastUtils.showLong("哎呀,出错了,看看其他视频吧") - } - }) - } - } - - - override fun onWindowFocusChanged(hasWindowFocus: Boolean) { - super.onWindowFocusChanged(hasWindowFocus) - val carouselLayoutManager = rvVideoPlaylist.layoutManager as CarouselLayoutManager - val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager) - player?.let { - if (player is ConsultVideoPlayer) { - if(hasWindowFocus){// 获取焦点两种情况 - // 恢复播放和开始播放 - if(player.isIfCurrentIsFullscreen){// 全屏了 - - }else { - when (player.currentState) { - GSYVideoView.CURRENT_STATE_PAUSE -> { - player.onVideoResume(false) - } - GSYVideoView.CURRENT_STATE_PLAYING -> { - } - else -> { - val recyclerVideoAdapter = - rvVideoPlaylist.adapter as RecyclerVideoAdapter - setBackageAndPlayNext( - recyclerVideoAdapter.getItemByPosition(centerItemPosition), - player, centerItemPosition - ) - //player.startPlayLogic() - } - } - } - }else { - // 离开应用 暂停视频 - // 关闭 onDetachedFromWindow 会reset - if(player.isIfCurrentIsFullscreen){// 全屏了 - - }else { - player.onVideoPause() - } - } - } - - } - - } - - private fun getPlayer(carouselLayoutManager: CarouselLayoutManager): Pair { - val centerItemPosition: Int = carouselLayoutManager.centerItemPosition - val playerHolder = carouselLayoutManager.findViewByPosition(centerItemPosition) - val player = playerHolder?.findViewById(R.id.video_item_player) - return Pair(centerItemPosition, player) - } - - - override fun onDetachedFromWindow() { - val carouselLayoutManager = rvVideoPlaylist.layoutManager as CarouselLayoutManager - val (_: Int, player) = getPlayer(carouselLayoutManager) - player?.let { - if(player is ConsultVideoPlayer){ - player.currentPlayer.release() - player.onVideoReset() - } - } - super.onDetachedFromWindow() - } - - init { - try { - initView(context) - } catch (e: Exception) { - e.printStackTrace() - } - } - -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 2cac4ecb5e..5e7d53898b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,7 +7,6 @@ apply plugin: 'kotlin-android-extensions' apply plugin: 'android-aspectjx' apply plugin: 'bugly' - //apply ByteX宿主 if (!isAndroidTestBuild()) { apply plugin: 'bytex' diff --git a/config.gradle b/config.gradle index 1a20da06b1..a80b233aee 100644 --- a/config.gradle +++ b/config.gradle @@ -233,7 +233,7 @@ ext { androidx_espresso_core : "androidx.test.espresso:espresso-core:3.3.0", //========================== ProtoBuf ======================= - protoc : "com.google.protobuf:protoc:3.12.4", + protoc : !isM1Chip() ? "com.google.protobuf:protoc:3.12.4" : "com.google.protobuf:protoc:3.12.4:osx-x86_64", protobuf_java : "com.google.protobuf:protobuf-java:3.12.4", protobuf_java_util : "com.google.protobuf:protobuf-java-util:3.12.4", @@ -242,5 +242,8 @@ ext { androidx_datastore : "androidx.datastore:datastore:1.0.0", android_start_up : "com.mogo:android-startup:1.0.1" ] +} +boolean isM1Chip() { + return System.getProperty("os.name").contains("Mac") && System.getProperty("os.arch") == "aarch64" } \ No newline at end of file