diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt index 3ed6d0fef..ac9fa40ac 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt @@ -455,19 +455,7 @@ class PhotoFragment : ViewPagerFragment() { val sideWidth = screenWidth / 2 - itemWidth / 2 val fakeItemsCnt = ceil(sideWidth / itemWidth.toDouble()).toInt() - val paths = ArrayList() - for (i in 0 until fakeItemsCnt) { - paths.add("") - } - - files.forEach { - paths.add(it.absolutePath) - } - - for (i in 0 until fakeItemsCnt) { - paths.add("") - } - + val paths = fillPhotoPaths(files, fakeItemsCnt) var curWidth = itemWidth while (curWidth < screenWidth) { curWidth += itemWidth @@ -479,28 +467,9 @@ class PhotoFragment : ViewPagerFragment() { } mView.photo_portrait_stripe.adapter = adapter + setupStripeBottomMargin() - var bottomMargin = context!!.navigationBarHeight + context!!.resources.getDimension(R.dimen.normal_margin).toInt() - if (context!!.config.bottomActions) { - bottomMargin += context!!.resources.getDimension(R.dimen.bottom_actions_height).toInt() - } - (mView.photo_portrait_stripe_wrapper.layoutParams as RelativeLayout.LayoutParams).bottomMargin = bottomMargin - - var coverIndex = -1 - paths.forEachIndexed { index, path -> - if (path.contains("cover", true)) { - coverIndex = index - } - } - - if (coverIndex == -1) { - paths.forEachIndexed { index, path -> - if (path.isNotEmpty()) { - coverIndex = index - } - } - } - + val coverIndex = getCoverImageIndex(paths) mView.photo_portrait_stripe.onGlobalLayout { mView.photo_portrait_stripe.scrollBy((coverIndex - fakeItemsCnt) * itemWidth, 0) adapter.setCurrentPhoto(coverIndex) @@ -509,6 +478,48 @@ class PhotoFragment : ViewPagerFragment() { } } + private fun fillPhotoPaths(files: ArrayList, fakeItemsCnt: Int): ArrayList { + val paths = ArrayList() + for (i in 0 until fakeItemsCnt) { + paths.add("") + } + + files.forEach { + paths.add(it.absolutePath) + } + + for (i in 0 until fakeItemsCnt) { + paths.add("") + } + return paths + } + + private fun setupStripeBottomMargin() { + var bottomMargin = context!!.navigationBarHeight + context!!.resources.getDimension(R.dimen.normal_margin).toInt() + if (context!!.config.bottomActions) { + bottomMargin += context!!.resources.getDimension(R.dimen.bottom_actions_height).toInt() + } + (mView.photo_portrait_stripe_wrapper.layoutParams as RelativeLayout.LayoutParams).bottomMargin = bottomMargin + } + + private fun getCoverImageIndex(paths: ArrayList): Int { + var coverIndex = -1 + paths.forEachIndexed { index, path -> + if (path.contains("cover", true)) { + coverIndex = index + } + } + + if (coverIndex == -1) { + paths.forEachIndexed { index, path -> + if (path.isNotEmpty()) { + coverIndex = index + } + } + } + return coverIndex + } + private fun openPanorama() { Intent(context, PanoramaPhotoActivity::class.java).apply { putExtra(PATH, mMedium.path)