slow down the swipe speed during slideshow
This commit is contained in:
parent
f7ca4a657d
commit
a1cda024c7
2 changed files with 45 additions and 6 deletions
|
@ -1,5 +1,7 @@
|
||||||
package com.simplemobiletools.gallery.activities
|
package com.simplemobiletools.gallery.activities
|
||||||
|
|
||||||
|
import android.animation.Animator
|
||||||
|
import android.animation.ValueAnimator
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.pm.ActivityInfo
|
import android.content.pm.ActivityInfo
|
||||||
|
@ -20,6 +22,7 @@ import android.provider.MediaStore
|
||||||
import android.support.v4.view.ViewPager
|
import android.support.v4.view.ViewPager
|
||||||
import android.util.DisplayMetrics
|
import android.util.DisplayMetrics
|
||||||
import android.view.*
|
import android.view.*
|
||||||
|
import android.view.animation.DecelerateInterpolator
|
||||||
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
|
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
|
||||||
import com.simplemobiletools.commons.dialogs.PropertiesDialog
|
import com.simplemobiletools.commons.dialogs.PropertiesDialog
|
||||||
import com.simplemobiletools.commons.dialogs.RenameItemDialog
|
import com.simplemobiletools.commons.dialogs.RenameItemDialog
|
||||||
|
@ -288,6 +291,46 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun animatePagerTransition(forward: Boolean) {
|
||||||
|
val oldPosition = view_pager.currentItem
|
||||||
|
val animator = ValueAnimator.ofInt(0, view_pager.width)
|
||||||
|
animator.addListener(object : Animator.AnimatorListener {
|
||||||
|
override fun onAnimationRepeat(animation: Animator?) {
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onAnimationEnd(animation: Animator?) {
|
||||||
|
view_pager.endFakeDrag()
|
||||||
|
|
||||||
|
if (view_pager.currentItem == oldPosition) {
|
||||||
|
stopSlideshow()
|
||||||
|
toast(R.string.slideshow_ended)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onAnimationCancel(animation: Animator?) {
|
||||||
|
view_pager.endFakeDrag()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onAnimationStart(animation: Animator?) {
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
animator.interpolator = DecelerateInterpolator()
|
||||||
|
animator.addUpdateListener(object : ValueAnimator.AnimatorUpdateListener {
|
||||||
|
var oldDragPosition = 0
|
||||||
|
override fun onAnimationUpdate(animation: ValueAnimator) {
|
||||||
|
val dragPosition = animation.animatedValue as Int
|
||||||
|
val dragOffset = dragPosition - oldDragPosition
|
||||||
|
oldDragPosition = dragPosition
|
||||||
|
view_pager.fakeDragBy(dragOffset * (if (forward) 1f else -1f))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
animator.duration = SLIDESHOW_SCROLL_DURATION
|
||||||
|
view_pager.beginFakeDrag()
|
||||||
|
animator.start()
|
||||||
|
}
|
||||||
|
|
||||||
private fun stopSlideshow() {
|
private fun stopSlideshow() {
|
||||||
if (mIsSlideshowActive) {
|
if (mIsSlideshowActive) {
|
||||||
showSystemUI()
|
showSystemUI()
|
||||||
|
@ -313,12 +356,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun swipeToNextMedium() {
|
private fun swipeToNextMedium() {
|
||||||
val before = view_pager.currentItem
|
animatePagerTransition(!mSlideshowMoveBackwards)
|
||||||
view_pager.currentItem = if (mSlideshowMoveBackwards) --view_pager.currentItem else ++view_pager.currentItem
|
|
||||||
if (before == view_pager.currentItem) {
|
|
||||||
stopSlideshow()
|
|
||||||
toast(R.string.slideshow_ended)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getMediaForSlideshow(): Boolean {
|
private fun getMediaForSlideshow(): Boolean {
|
||||||
|
|
|
@ -45,6 +45,7 @@ val SLIDESHOW_RANDOM_ORDER = "slideshow_random_order"
|
||||||
val SLIDESHOW_USE_FADE = "slideshow_use_fade"
|
val SLIDESHOW_USE_FADE = "slideshow_use_fade"
|
||||||
val SLIDESHOW_MOVE_BACKWARDS = "slideshow_move_backwards"
|
val SLIDESHOW_MOVE_BACKWARDS = "slideshow_move_backwards"
|
||||||
val SLIDESHOW_DEFAULT_INTERVAL = 5
|
val SLIDESHOW_DEFAULT_INTERVAL = 5
|
||||||
|
val SLIDESHOW_SCROLL_DURATION = 500L
|
||||||
|
|
||||||
val NOMEDIA = ".nomedia"
|
val NOMEDIA = ".nomedia"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue