光环助手V5.0.0-新社区展示功能(0630 运营测试问题 2)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_106346

This commit is contained in:
lyr
2021-07-01 16:03:13 +08:00
parent e586e65e44
commit 8bc9544dc2
6 changed files with 23 additions and 40 deletions

View File

@ -161,14 +161,7 @@ class ForumArticleAskListFragment : ListFragment<AnswerEntity, ForumArticleAskLi
//这里必须要延迟操作,否则会白屏
mBaseHandler.postDelayed({
if (position != 0L) {
currentPlayer?.seekTo(position)
currentPlayer?.onVideoResume(false)
val videoVoiceStatus = SPUtils.getBoolean(Constants.SP_VIDEO_PLAY_MUTE, true)
if (videoVoiceStatus) {
currentPlayer?.mute()
} else {
currentPlayer?.unMute()
}
currentPlayer?.startPlayLogic(true)
} else {
currentPlayer?.release()
}

View File

@ -67,10 +67,10 @@ class ArticleItemVideoView @JvmOverloads constructor(context: Context, attrs: At
fun startPlayLogic(isAutoPlay: Boolean) {
mIsAutoPlay = isAutoPlay
// if (mIsAutoPlay) {
// val seekTime = ForumScrollCalculatorHelper.getPlaySchedule(MD5Utils.getContentMD5(mVideoEntity?.url))
// seekOnStart = seekTime
// }
if (mIsAutoPlay) {
val seekTime = ForumScrollCalculatorHelper.getPlaySchedule(MD5Utils.getContentMD5(mVideoEntity?.url))
seekOnStart = seekTime
}
startPlayLogic()
}

View File

@ -222,14 +222,7 @@ class ForumArticleListFragment : LazyListFragment<ArticleEntity, ForumArticleLis
//这里必须要延迟操作,否则会白屏
mBaseHandler.postDelayed({
if (position != 0L) {
currentPlayer?.seekTo(position)
currentPlayer?.onVideoResume(false)
val videoVoiceStatus = SPUtils.getBoolean(Constants.SP_VIDEO_PLAY_MUTE, true)
if (videoVoiceStatus) {
currentPlayer?.mute()
} else {
currentPlayer?.unMute()
}
currentPlayer?.startPlayLogic(true)
} else {
currentPlayer?.release()
}

View File

@ -19,8 +19,7 @@ import com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer
class ForumScrollCalculatorHelper(private val horizontalId: Int,
private val verticalId: Int,
private val rangeTop: Int,
private val isUserHomePage: Boolean = false) {
private val rangeTop: Int) {
private var firstVisible = -1
private var lastVisible = 0
private var visibleCount = 0
@ -128,16 +127,13 @@ class ForumScrollCalculatorHelper(private val horizontalId: Int,
gsyBaseVideoPlayer.getLocationInWindow(screenPosition)
val rangePosition = screenPosition[1]
if (rangePosition >= rangeTop) {
runnable = PlayRunnable(gsyBaseVideoPlayer)
if (currentPlayer != null) {
CustomManager.releaseAllVideos(currentPlayer?.getKey())
// currentPlayer?.resetDetailMask()
}
currentPlayer = gsyBaseVideoPlayer
currentPosition = i
if (isUserHomePage) break
runnable = PlayRunnable(gsyBaseVideoPlayer)
//降低频率
playHandler.postDelayed(runnable!!, 100)
break

View File

@ -14,6 +14,7 @@ import android.widget.TextView
import androidx.constraintlayout.widget.ConstraintSet
import androidx.core.content.ContextCompat
import androidx.databinding.DataBindingUtil
import androidx.fragment.app.Fragment
import androidx.lifecycle.Observer
import butterknife.OnClick
import com.gh.base.adapter.FragmentAdapter
@ -57,6 +58,7 @@ class UserHomeFragment : NormalFragment() {
private lateinit var mPopupWindow: PopupWindow
private var mBadgeCount = 0
private var mPlayGameCount = 0
private var mFragmentList = listOf<Fragment>()
override fun getInflatedLayout(): View {
mHomeBinding = DataBindingUtil.inflate(requireActivity().layoutInflater, R.layout.fragment_home, null, false)
@ -308,13 +310,16 @@ class UserHomeFragment : NormalFragment() {
// val videoFragment = childFragmentManager.findFragmentByTag("${tag}2")
// ?: UserVideoHistoryFragment.getInstance(mUserHomeViewModel.userId, count)
val fragmentList = listOf(gameFragment, qaFragment)
mFragmentList = listOf(gameFragment, qaFragment)
val titleList = listOf("游戏", "发布")
viewpager.offscreenPageLimit = fragmentList.size
viewpager.adapter = FragmentAdapter(childFragmentManager, fragmentList, titleList)
viewpager.offscreenPageLimit = mFragmentList.size
viewpager.adapter = FragmentAdapter(childFragmentManager, mFragmentList, titleList)
viewpager.currentItem = position
viewpager.doOnPageSelected { MtaHelper.onEvent("个人主页详情", "个人主页详情", titleList[it]) }
viewpager.doOnPageSelected {
MtaHelper.onEvent("个人主页详情", "个人主页详情", titleList[it])
if (it == 1) (mFragmentList[1] as UserHistoryFragment).onScrollStateChanged()
}
tabLayout.setupWithViewPager(viewpager)
tabIndicator.setupWithTabLayout(tabLayout)
tabIndicator.setupWithViewPager(viewpager)

View File

@ -53,7 +53,7 @@ class UserHistoryFragment : ListFragment<PersonalHistoryEntity, UserHistoryViewM
mCount = getParcelable(COUNT) ?: PersonalEntity.Count()
}
super.onCreate(savedInstanceState)
mScrollCalculatorHelper = ForumScrollCalculatorHelper(R.id.horizontalVideoView, R.id.verticalVideoView, 0, true)
mScrollCalculatorHelper = ForumScrollCalculatorHelper(R.id.horizontalVideoView, R.id.verticalVideoView, 0)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@ -87,6 +87,10 @@ class UserHistoryFragment : ListFragment<PersonalHistoryEntity, UserHistoryViewM
mScrollCalculatorHelper?.currentPlayer?.release()
}
fun onScrollStateChanged() {
mScrollCalculatorHelper?.onScrollStateChanged(mListRv, RecyclerView.SCROLL_STATE_IDLE)
}
private fun scroll() {
val firstVisibleItem = mLayoutManager.findFirstVisibleItemPosition()
val lastVisibleItem = mLayoutManager.findLastVisibleItemPosition()
@ -102,18 +106,10 @@ class UserHistoryFragment : ListFragment<PersonalHistoryEntity, UserHistoryViewM
//这里必须要延迟操作,否则会白屏
mBaseHandler.postDelayed({
if (position != 0L) {
currentPlayer?.seekTo(position)
currentPlayer?.onVideoResume(false)
val videoVoiceStatus = SPUtils.getBoolean(Constants.SP_VIDEO_PLAY_MUTE, true)
if (videoVoiceStatus) {
currentPlayer?.mute()
} else {
currentPlayer?.unMute()
}
currentPlayer?.startPlayLogic(true)
} else {
currentPlayer?.release()
}
}, 50)
}
}