完成游戏详情自定义栏目显示三秒自动隐藏的提示展开浮窗

This commit is contained in:
chenjuntao
2020-06-03 11:50:26 +08:00
parent ceb9dc6707
commit d7a85edb76
2 changed files with 10 additions and 14 deletions

View File

@ -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) {

View File

@ -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<Any>() {
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<Any>() {
})
super.onCreate(savedInstanceState)
mCompositeDisposable = CompositeDisposable()
}
override fun getLayoutId(): Int {
@ -138,14 +135,13 @@ class DescFragment : BaseFragment<Any>() {
}
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<Any>() {
mAdapter.notifyItemChanged(i)
}
}
})
}
}
}
}
@ -166,7 +162,7 @@ class DescFragment : BaseFragment<Any>() {
override fun onDestroy() {
super.onDestroy()
mCompositeDisposable?.dispose()
mDisplayHintDisposable?.dispose()
}
@Subscribe(threadMode = ThreadMode.MAIN)