diff --git a/app/src/main/java/com/gh/common/util/Extensions.kt b/app/src/main/java/com/gh/common/util/Extensions.kt index 6d5061b9bf..c883b390c7 100644 --- a/app/src/main/java/com/gh/common/util/Extensions.kt +++ b/app/src/main/java/com/gh/common/util/Extensions.kt @@ -496,15 +496,15 @@ inline fun testChannelOnly(f: () -> Unit) { * 倒计时,单位s */ inline fun countDownTimer( - remainingTime: Long, + timeInSeconds: Long, crossinline block: (finish: Boolean, remainingTime: Long) -> Unit ): Disposable { var subscribe: Disposable? = null subscribe = Observable.interval(0, 1000, TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribe { - if (it < remainingTime) { - block.invoke(false, remainingTime - it) + if (it < timeInSeconds) { + block.invoke(false, timeInSeconds - it) } else { block.invoke(true, 0) if (subscribe != null && !subscribe!!.isDisposed) { diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescFragment.kt index 9130e01ed9..e624da746f 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescFragment.kt @@ -24,7 +24,7 @@ import com.gh.gamecenter.gamedetail.GameDetailViewModel import com.gh.gamecenter.gamedetail.entity.NewGameDetailEntity import com.gh.gamecenter.video.detail.VideoDetailActivity import com.halo.assistant.HaloApp -import io.reactivex.disposables.CompositeDisposable +import io.reactivex.disposables.Disposable import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode @@ -36,9 +36,8 @@ class DescFragment : BaseFragment() { private var layoutManager: LinearLayoutManager? = null private var mGameEntity: GameEntity? = null - // private var mDetailEntity: GameDetailEntity? = null private var mNewDetailEntity: NewGameDetailEntity? = null - private var mCompositeDisposable: CompositeDisposable? = null + private var mDisplayHintDisposable: Disposable? = null private lateinit var mViewModel: DescViewModel @@ -110,8 +109,6 @@ class DescFragment : BaseFragment() { }) super.onCreate(savedInstanceState) - - mCompositeDisposable = CompositeDisposable() } override fun getLayoutId(): Int { @@ -138,14 +135,13 @@ class DescFragment : BaseFragment() { } for (i in firstCompletelyVisibleItemPosition..lastCompletelyVisibleItemPosition) { - if (i < 0) { - continue - } + if (i < 0) continue if (mAdapter.getItemViewType(i) == DescAdapter.CUSTOM_COLUMN && mAdapter.descItemList.get(i).customColumn?.showExpandTagsHint == true) { // 可视三秒后隐藏自定义栏目的标签展开浮窗提示 - mCompositeDisposable?.add(countDownTimer(3L) { isFinish, _ -> + mDisplayHintDisposable?.dispose() + mDisplayHintDisposable = countDownTimer(3L) { isFinish, _ -> if (isFinish && activity?.isFinishing != true && isThisPositionVisible(i)) { tryWithDefaultCatch { SPUtils.setBoolean(Constants.SP_HAS_SHOWN_EXPANDED_GAME_DETAIL_TAGS_HINT, true) @@ -153,7 +149,7 @@ class DescFragment : BaseFragment() { mAdapter.notifyItemChanged(i) } } - }) + } } } } @@ -166,7 +162,7 @@ class DescFragment : BaseFragment() { override fun onDestroy() { super.onDestroy() - mCompositeDisposable?.dispose() + mDisplayHintDisposable?.dispose() } @Subscribe(threadMode = ThreadMode.MAIN)