couple slideshow improvements

This commit is contained in:
tibbi 2017-12-29 22:07:47 +01:00
parent 422b1fb690
commit 46a143e4ac
1 changed files with 16 additions and 5 deletions

View File

@ -317,6 +317,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
view_pager.apply {
adapter = pagerAdapter
currentItem = mPos
removeOnPageChangeListener(this@ViewPagerActivity)
addOnPageChangeListener(this@ViewPagerActivity)
}
}
@ -351,10 +352,16 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
}
override fun onAnimationEnd(animation: Animator?) {
view_pager.endFakeDrag()
if (view_pager.isFakeDragging) {
try {
view_pager.endFakeDrag()
} catch (ignored: Exception) {
stopSlideshow()
}
if (view_pager.currentItem == oldPosition) {
slideshowEnded(forward)
if (view_pager.currentItem == oldPosition) {
slideshowEnded(forward)
}
}
}
@ -374,7 +381,11 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
val dragPosition = animation.animatedValue as Int
val dragOffset = dragPosition - oldDragPosition
oldDragPosition = dragPosition
view_pager.fakeDragBy(dragOffset * (if (forward) 1f else -1f))
try {
view_pager.fakeDragBy(dragOffset * (if (forward) 1f else -1f))
} catch (e: Exception) {
stopSlideshow()
}
}
}
})
@ -399,8 +410,8 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
private fun stopSlideshow() {
if (mIsSlideshowActive) {
showSystemUI()
mIsSlideshowActive = false
showSystemUI()
mSlideshowHandler.removeCallbacksAndMessages(null)
window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
}