全屏直接关闭导致的内存泄漏
This commit is contained in:
@@ -54,12 +54,7 @@ public class TaxiPassengerServiceManager {
|
||||
* @return
|
||||
*/
|
||||
private String getDriverAppSn(){
|
||||
if(DebugConfig.isDebug()){
|
||||
return "X20202206092431156";
|
||||
}else {
|
||||
return CallerTelematicManager.INSTANCE.getServerToken();
|
||||
}
|
||||
// return "X2020220425Q466X1F";
|
||||
return CallerTelematicManager.INSTANCE.getServerToken();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -12,6 +12,7 @@ import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import com.mogo.eagle.core.utilcode.util.OverlayViewUtils
|
||||
import com.mogo.och.taxi.passenger.R
|
||||
import com.mogo.och.taxi.passenger.ui.leftmenu.model.LeftMenuModel
|
||||
import com.mogo.och.taxi.passenger.ui.video.FullVideoUtils
|
||||
import com.mogo.och.taxi.passenger.ui.video.TaxiPassengerMogoConsultView
|
||||
import com.mogo.och.taxi.passenger.ui.video.TaxiPassengerMogoMoviesView
|
||||
import com.mogo.och.taxi.passenger.utils.windowdispatch.OnComputeInternalInsetsListener
|
||||
@@ -105,12 +106,14 @@ object OverlayLeftViewUtils {
|
||||
if(taxiPassengerMogoMoviesView?.get() != null){
|
||||
OverlayViewUtils.dismissOverlayView(taxiPassengerMogoMoviesView?.get())
|
||||
}
|
||||
FullVideoUtils.dismissOverlayView()
|
||||
}
|
||||
}
|
||||
|
||||
val consultSelect = object :ListAdapter.OnTabSelectListener{
|
||||
override fun onSelect(v: View?) {
|
||||
close(view, windowManager)
|
||||
FullVideoUtils.dismissOverlayView()
|
||||
if(taxiPassengerMogoMoviesView?.get() != null){
|
||||
OverlayViewUtils.dismissOverlayView(taxiPassengerMogoMoviesView?.get())
|
||||
}
|
||||
@@ -127,6 +130,7 @@ object OverlayLeftViewUtils {
|
||||
val entertainmentSelect = object :ListAdapter.OnTabSelectListener{
|
||||
override fun onSelect(v: View?) {
|
||||
close(view, windowManager)
|
||||
FullVideoUtils.dismissOverlayView()
|
||||
if(taxiPassengerMogoConsultView?.get() != null){
|
||||
OverlayViewUtils.dismissOverlayView(taxiPassengerMogoConsultView?.get())
|
||||
}
|
||||
@@ -239,6 +243,13 @@ object OverlayLeftViewUtils {
|
||||
if (!isShowing) {
|
||||
return
|
||||
}
|
||||
// 管理的要关闭都得关闭
|
||||
if(taxiPassengerMogoConsultView?.get() != null){
|
||||
OverlayViewUtils.dismissOverlayView(taxiPassengerMogoConsultView?.get())
|
||||
}
|
||||
if(taxiPassengerMogoMoviesView?.get() != null){
|
||||
OverlayViewUtils.dismissOverlayView(taxiPassengerMogoMoviesView?.get())
|
||||
}
|
||||
subscribe?.let {
|
||||
if (!it.isDisposed) {
|
||||
it.dispose()
|
||||
|
||||
@@ -62,7 +62,6 @@ public class RecyclerVideoAdapter extends RecyclerView.Adapter<RecyclerItemVideo
|
||||
.setUrl(taxiPassengerVideoPlay.getUrl())
|
||||
.setCacheWithPlay(true)
|
||||
.setPlayTag(taxiPassengerVideoPlay.getImageUrl()+position)
|
||||
.setThumbImageView(holder.gsyVideoPlayer.coverImage)
|
||||
.setThumbPlay(false)
|
||||
.build(holder.gsyVideoPlayer);
|
||||
holder.gsyVideoPlayer.setTitle(taxiPassengerVideoPlay.getTitle());
|
||||
@@ -70,7 +69,7 @@ public class RecyclerVideoAdapter extends RecyclerView.Adapter<RecyclerItemVideo
|
||||
.load(taxiPassengerVideoPlay.getImageUrl())
|
||||
.apply(new RequestOptions().placeholder(R.drawable.taxi_p_video_holder).centerCrop())
|
||||
.into(holder.gsyVideoPlayer.coverImage);
|
||||
holder.gsyVideoPlayer.getThumbImageView().setOnClickListener(new View.OnClickListener() {
|
||||
holder.gsyVideoPlayer.getThumbImageViewLayout().setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if(onThumbImageClilckListener!=null){
|
||||
|
||||
@@ -6,6 +6,7 @@ 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
|
||||
@@ -83,9 +84,6 @@ class TaxiPassengerMogoMoviesView :RelativeLayout {
|
||||
if(prePlayerPosition!=centerItemPosition) {
|
||||
if(player.currentState==GSYVideoView.CURRENT_STATE_PAUSE){
|
||||
player.onVideoReset()
|
||||
player.startPlayLogic()
|
||||
}else{
|
||||
player.startPlayLogic()
|
||||
}
|
||||
val taxiPassengerVideoPlay = arrayListOf[centerItemPosition]
|
||||
setBackageAndPlayNext(taxiPassengerVideoPlay, player, centerItemPosition)
|
||||
@@ -117,6 +115,15 @@ class TaxiPassengerMogoMoviesView :RelativeLayout {
|
||||
}
|
||||
indicatorView.onPageScrolled(currentIndex, fl, 0)
|
||||
}
|
||||
recyclerVideoAdapter.setOnThumbImageClilckListener {
|
||||
val centerItemPosition: Int = carouselLayoutManager.centerItemPosition
|
||||
val player = carouselLayoutManager.findViewByPosition(centerItemPosition)
|
||||
if(player is ConsultVideoPlayer) {
|
||||
player.onVideoReset()
|
||||
player.thumbImageViewLayout.visibility = View.VISIBLE
|
||||
}
|
||||
rvVideoPlaylist.smoothScrollToPosition(it)
|
||||
}
|
||||
rvVideoPlaylist.layoutManager = carouselLayoutManager
|
||||
rvVideoPlaylist.setHasFixedSize(true)
|
||||
rvVideoPlaylist.adapter = recyclerVideoAdapter
|
||||
@@ -160,6 +167,11 @@ class TaxiPassengerMogoMoviesView :RelativeLayout {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onClickBlank(url: String?, vararg objects: Any?) {
|
||||
super.onClickBlank(url, *objects)
|
||||
rvVideoPlaylist.smoothScrollToPosition(centerItemPosition)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -190,7 +202,6 @@ class TaxiPassengerMogoMoviesView :RelativeLayout {
|
||||
recyclerVideoAdapter.getItemByPosition(centerItemPosition),
|
||||
player, centerItemPosition
|
||||
)
|
||||
player.startPlayLogic()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,7 +111,7 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer {
|
||||
//时间显示
|
||||
currentTimeTextView.text = TimeTransformUtils.stringForTime(currentTime)
|
||||
totalTimeTextView.text = TimeTransformUtils.stringForTime(totalTime)
|
||||
if(currentTime==totalTime){
|
||||
if(currentTime>=totalTime-3000){//
|
||||
this.currentTime = -1
|
||||
}else{
|
||||
this.currentTime = currentTime
|
||||
@@ -130,17 +130,11 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer {
|
||||
super.onDetachedFromWindow()
|
||||
|
||||
mProgressBar?.progress = 0
|
||||
mFullPauseBitmap = null
|
||||
if(mIfCurrentIsFullscreen){
|
||||
FullVideoUtils.dismissOverlayView()
|
||||
fullVideoPlayer?.let {
|
||||
clearFullscreenLayout(it)
|
||||
}
|
||||
fullVideoPlayer?.onVideoReset()
|
||||
thumbImageViewLayout.visibility = View.VISIBLE
|
||||
}else{
|
||||
onVideoReset()
|
||||
fullVideoPlayer?.let {
|
||||
clearFullscreenLayout(it)
|
||||
}
|
||||
fullVideoPlayer = null
|
||||
onVideoReset()
|
||||
setVideoAllCallBack(null)
|
||||
}
|
||||
|
||||
@@ -158,7 +152,9 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer {
|
||||
startPlayLogic()
|
||||
}else {
|
||||
mProgressBar?.let {
|
||||
seekOnStart = currentTime.toLong()
|
||||
if(currentTime>0) {
|
||||
seekOnStart = currentTime.toLong()
|
||||
}
|
||||
startPlayLogic()
|
||||
}
|
||||
}
|
||||
@@ -302,18 +298,15 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer {
|
||||
gsyVideoPlayer.fullscreenButton.setImageResource(R.drawable.taxi_p_change_normal)
|
||||
gsyVideoPlayer.fullscreenButton.setOnClickListener { v ->
|
||||
if (mBackFromFullScreenListener == null) {
|
||||
FullVideoUtils.dismissOverlayView()
|
||||
clearFullscreenLayout(gsyVideoPlayer)
|
||||
FullVideoUtils.dismissOverlayView()
|
||||
} else {
|
||||
mBackFromFullScreenListener.onClick(v)
|
||||
}
|
||||
}
|
||||
}
|
||||
frameLayout.setBackgroundColor(Color.BLACK)
|
||||
|
||||
val lp = LayoutParams(
|
||||
width, height
|
||||
)
|
||||
val lp = LayoutParams(width, height)
|
||||
frameLayout.addView(gsyVideoPlayer, lp)
|
||||
FullVideoUtils.showOverlayView(context as Activity,frameLayout,R.style.och_window_anim_alpha)
|
||||
gsyVideoPlayer.visibility = INVISIBLE
|
||||
@@ -366,7 +359,6 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer {
|
||||
frameLayout.visibility = VISIBLE
|
||||
}
|
||||
if (mVideoAllCallBack != null) {
|
||||
Debuger.printfError("onEnterFullscreen")
|
||||
mVideoAllCallBack.onEnterFullscreen(mOriginUrl, mTitle, gsyVideoPlayer)
|
||||
}
|
||||
mIfCurrentIsFullscreen = true
|
||||
@@ -374,7 +366,7 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer {
|
||||
checkAutoFullWithSizeAndAdaptation(gsyVideoPlayer)
|
||||
}
|
||||
|
||||
fun clearFullscreenLayout(gsyVideoPlayer:GSYVideoPlayer) {
|
||||
private fun clearFullscreenLayout(gsyVideoPlayer:GSYVideoPlayer) {
|
||||
mIfCurrentIsFullscreen = false
|
||||
val delay = 0
|
||||
mInnerHandler.postDelayed({ resolveNormalVideoShow(gsyVideoPlayer) }, delay.toLong())
|
||||
@@ -385,6 +377,7 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer {
|
||||
cloneParams(gsyVideoPlayer, this)
|
||||
gsyVideoManager.setListener(gsyVideoManager.lastListener())
|
||||
gsyVideoManager.setLastListener(null)
|
||||
gsyVideoPlayer.setVideoAllCallBack(null)
|
||||
setStateAndUi(mCurrentState)
|
||||
addTextureView()
|
||||
mSaveChangeViewTIme = System.currentTimeMillis()
|
||||
|
||||
Reference in New Issue
Block a user