From 7042a5cd56e73cc540b7b1adfd4b9120fc72ea73 Mon Sep 17 00:00:00 2001 From: Paul Hawke Date: Sat, 12 Jul 2025 15:45:51 -0500 Subject: [PATCH] Convert the ParentViewPager to kotlin --- .../nrw/commons/bookmarks/BookmarkFragment.kt | 2 +- .../nrw/commons/explore/ParentViewPager.java | 66 ------------------- .../nrw/commons/explore/ParentViewPager.kt | 25 +++++++ .../nrw/commons/profile/ProfileActivity.kt | 2 +- .../commons/upload/UploadProgressActivity.kt | 6 +- .../explore/ExploreFragmentUnitTest.kt | 4 +- 6 files changed, 30 insertions(+), 75 deletions(-) delete mode 100644 app/src/main/java/fr/free/nrw/commons/explore/ParentViewPager.java create mode 100644 app/src/main/java/fr/free/nrw/commons/explore/ParentViewPager.kt diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/BookmarkFragment.kt b/app/src/main/java/fr/free/nrw/commons/bookmarks/BookmarkFragment.kt index 48db40ad0..51f15b23c 100644 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/BookmarkFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/BookmarkFragment.kt @@ -33,7 +33,7 @@ class BookmarkFragment : CommonsDaggerSupportFragment() { fun setScroll(canScroll: Boolean) { binding?.let { - it.viewPagerBookmarks.isCanScroll = canScroll + it.viewPagerBookmarks.canScroll = canScroll } } diff --git a/app/src/main/java/fr/free/nrw/commons/explore/ParentViewPager.java b/app/src/main/java/fr/free/nrw/commons/explore/ParentViewPager.java deleted file mode 100644 index 4112cda95..000000000 --- a/app/src/main/java/fr/free/nrw/commons/explore/ParentViewPager.java +++ /dev/null @@ -1,66 +0,0 @@ -package fr.free.nrw.commons.explore; - -import android.content.Context; -import android.util.AttributeSet; -import android.view.MotionEvent; -import androidx.viewpager.widget.ViewPager; - -/** - * ParentViewPager A custom viewPager whose scrolling can be enabled and disabled. - */ -public class ParentViewPager extends ViewPager { - - /** - * Boolean variable that stores the current state of pager scroll i.e(enabled or disabled) - */ - private boolean canScroll = true; - - - /** - * Default constructors - */ - public ParentViewPager(Context context) { - super(context); - } - - public ParentViewPager(Context context, AttributeSet attrs) { - super(context, attrs); - } - - - /** - * Setter method for canScroll. - */ - public void setCanScroll(boolean canScroll) { - this.canScroll = canScroll; - } - - - /** - * Getter method for canScroll. - */ - public boolean isCanScroll() { - return canScroll; - } - - - /** - * Method that prevents scrolling if canScroll is set to false. - */ - @Override - public boolean onTouchEvent(MotionEvent ev) { - return canScroll && super.onTouchEvent(ev); - } - - - /** - * A facilitator method that allows parent to intercept touch events before its children. thus - * making it possible to prevent swiping parent on child end. - */ - @Override - public boolean onInterceptTouchEvent(MotionEvent ev) { - return canScroll && super.onInterceptTouchEvent(ev); - } - - -} diff --git a/app/src/main/java/fr/free/nrw/commons/explore/ParentViewPager.kt b/app/src/main/java/fr/free/nrw/commons/explore/ParentViewPager.kt new file mode 100644 index 000000000..36e85e70a --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/explore/ParentViewPager.kt @@ -0,0 +1,25 @@ +package fr.free.nrw.commons.explore + +import android.content.Context +import android.util.AttributeSet +import android.view.MotionEvent +import androidx.viewpager.widget.ViewPager + +/** + * ParentViewPager A custom viewPager whose scrolling can be enabled and disabled. + */ +class ParentViewPager : ViewPager { + var canScroll: Boolean = true + + constructor(context: Context) : super(context) + + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) + + override fun onTouchEvent(ev: MotionEvent): Boolean { + return canScroll && super.onTouchEvent(ev) + } + + override fun onInterceptTouchEvent(ev: MotionEvent): Boolean { + return canScroll && super.onInterceptTouchEvent(ev) + } +} diff --git a/app/src/main/java/fr/free/nrw/commons/profile/ProfileActivity.kt b/app/src/main/java/fr/free/nrw/commons/profile/ProfileActivity.kt index 48e61051c..d80be9ea2 100644 --- a/app/src/main/java/fr/free/nrw/commons/profile/ProfileActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/profile/ProfileActivity.kt @@ -46,7 +46,7 @@ class ProfileActivity : BaseActivity() { private var contributionsFragment: ContributionsFragment? = null fun setScroll(canScroll: Boolean) { - binding.viewPager.setCanScroll(canScroll) + binding.viewPager.canScroll = canScroll } override fun onRestoreInstanceState(savedInstanceState: Bundle) { diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadProgressActivity.kt b/app/src/main/java/fr/free/nrw/commons/upload/UploadProgressActivity.kt index 5d98ebffb..3cf9d3a65 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadProgressActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadProgressActivity.kt @@ -56,11 +56,7 @@ class UploadProgressActivity : BaseActivity() { override fun onPageSelected(position: Int) { updateMenuItems(position) - if (position == 2) { - binding.uploadProgressViewPager.setCanScroll(false) - } else { - binding.uploadProgressViewPager.setCanScroll(true) - } + binding.uploadProgressViewPager.canScroll = (position != 2) } override fun onPageScrollStateChanged(state: Int) { diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/ExploreFragmentUnitTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/ExploreFragmentUnitTest.kt index e2ef3bb92..85298d0a3 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/ExploreFragmentUnitTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/ExploreFragmentUnitTest.kt @@ -88,14 +88,14 @@ class ExploreFragmentUnitTest { @Throws(Exception::class) fun testSetScrollCaseTrue() { fragment.setScroll(true) - Assert.assertEquals(viewPager.isCanScroll, true) + Assert.assertEquals(viewPager.canScroll, true) } @Test @Throws(Exception::class) fun testSetScrollCaseFalse() { fragment.setScroll(false) - Assert.assertEquals(viewPager.isCanScroll, false) + Assert.assertEquals(viewPager.canScroll, false) } @Test