├── .github ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ └── pull_request.yml ├── .gitignore ├── LICENSE ├── README.md ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── library ├── .gitignore ├── build.gradle ├── consumer-rules.pro ├── gradle.properties ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ └── java │ └── com │ └── bekawestberg │ └── loopinglayout │ └── library │ ├── DirectionDeciders.kt │ ├── LoopableIntExtensions.kt │ ├── LoopingLayoutManager.kt │ ├── LoopingSnapHelper.kt │ └── ViewPickers.kt ├── scripts ├── publish-module.gradle └── publish-root.gradle ├── settings.gradle └── test ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src ├── androidTest └── java │ └── com │ └── bekawestberg │ └── loopinglayout │ └── test │ ├── FindViewClosestToAnchorTest.kt │ ├── FindViewClosestToMiddleTest.kt │ ├── InitialLayoutTest.kt │ ├── ScrollToAtAnchorTest.kt │ ├── ScrollToAtOptAnchorTest.kt │ ├── ScrollToEstimatedShortestTest.kt │ ├── SwipeTest.kt │ └── androidTest │ └── utils │ ├── LayoutDirectionActions.kt │ ├── RecyclerViewActions.kt │ ├── RecyclerViewMatcher.kt │ ├── TestUtils.kt │ └── ViewAssertions.kt └── main ├── AndroidManifest.xml ├── java └── com │ └── bekawestberg │ └── loopinglayout │ └── test │ ├── ActivityGeneric.kt │ ├── ActivityHorizontal.kt │ ├── ActivityVertical.kt │ └── AdapterGeneric.kt └── res ├── drawable-v24 └── ic_launcher_foreground.xml ├── drawable └── ic_launcher_background.xml ├── layout ├── activity_main.xml └── text_view_generic.xml ├── mipmap-anydpi-v26 ├── ic_launcher.xml └── ic_launcher_round.xml ├── mipmap-hdpi ├── ic_launcher.png └── ic_launcher_round.png ├── mipmap-mdpi ├── ic_launcher.png └── ic_launcher_round.png ├── mipmap-xhdpi ├── ic_launcher.png └── ic_launcher_round.png ├── mipmap-xxhdpi ├── ic_launcher.png └── ic_launcher_round.png ├── mipmap-xxxhdpi ├── ic_launcher.png └── ic_launcher_round.png └── values ├── colors.xml ├── strings.xml └── styles.xml /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/.github/CONTRIBUTING.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/.github/ISSUE_TEMPLATE/bug_report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/.github/ISSUE_TEMPLATE/feature_request.md -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/.github/PULL_REQUEST_TEMPLATE.md -------------------------------------------------------------------------------- /.github/workflows/pull_request.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/.github/workflows/pull_request.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/README.md -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/gradle.properties -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/gradlew.bat -------------------------------------------------------------------------------- /library/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /library/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/library/build.gradle -------------------------------------------------------------------------------- /library/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /library/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/library/gradle.properties -------------------------------------------------------------------------------- /library/proguard-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/library/proguard-rules.pro -------------------------------------------------------------------------------- /library/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/library/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /library/src/main/java/com/bekawestberg/loopinglayout/library/DirectionDeciders.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/library/src/main/java/com/bekawestberg/loopinglayout/library/DirectionDeciders.kt -------------------------------------------------------------------------------- /library/src/main/java/com/bekawestberg/loopinglayout/library/LoopableIntExtensions.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/library/src/main/java/com/bekawestberg/loopinglayout/library/LoopableIntExtensions.kt -------------------------------------------------------------------------------- /library/src/main/java/com/bekawestberg/loopinglayout/library/LoopingLayoutManager.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/library/src/main/java/com/bekawestberg/loopinglayout/library/LoopingLayoutManager.kt -------------------------------------------------------------------------------- /library/src/main/java/com/bekawestberg/loopinglayout/library/LoopingSnapHelper.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/library/src/main/java/com/bekawestberg/loopinglayout/library/LoopingSnapHelper.kt -------------------------------------------------------------------------------- /library/src/main/java/com/bekawestberg/loopinglayout/library/ViewPickers.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/library/src/main/java/com/bekawestberg/loopinglayout/library/ViewPickers.kt -------------------------------------------------------------------------------- /scripts/publish-module.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/scripts/publish-module.gradle -------------------------------------------------------------------------------- /scripts/publish-root.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/scripts/publish-root.gradle -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/settings.gradle -------------------------------------------------------------------------------- /test/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /test/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/build.gradle -------------------------------------------------------------------------------- /test/proguard-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/proguard-rules.pro -------------------------------------------------------------------------------- /test/src/androidTest/java/com/bekawestberg/loopinglayout/test/FindViewClosestToAnchorTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/androidTest/java/com/bekawestberg/loopinglayout/test/FindViewClosestToAnchorTest.kt -------------------------------------------------------------------------------- /test/src/androidTest/java/com/bekawestberg/loopinglayout/test/FindViewClosestToMiddleTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/androidTest/java/com/bekawestberg/loopinglayout/test/FindViewClosestToMiddleTest.kt -------------------------------------------------------------------------------- /test/src/androidTest/java/com/bekawestberg/loopinglayout/test/InitialLayoutTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/androidTest/java/com/bekawestberg/loopinglayout/test/InitialLayoutTest.kt -------------------------------------------------------------------------------- /test/src/androidTest/java/com/bekawestberg/loopinglayout/test/ScrollToAtAnchorTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/androidTest/java/com/bekawestberg/loopinglayout/test/ScrollToAtAnchorTest.kt -------------------------------------------------------------------------------- /test/src/androidTest/java/com/bekawestberg/loopinglayout/test/ScrollToAtOptAnchorTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/androidTest/java/com/bekawestberg/loopinglayout/test/ScrollToAtOptAnchorTest.kt -------------------------------------------------------------------------------- /test/src/androidTest/java/com/bekawestberg/loopinglayout/test/ScrollToEstimatedShortestTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/androidTest/java/com/bekawestberg/loopinglayout/test/ScrollToEstimatedShortestTest.kt -------------------------------------------------------------------------------- /test/src/androidTest/java/com/bekawestberg/loopinglayout/test/SwipeTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/androidTest/java/com/bekawestberg/loopinglayout/test/SwipeTest.kt -------------------------------------------------------------------------------- /test/src/androidTest/java/com/bekawestberg/loopinglayout/test/androidTest/utils/LayoutDirectionActions.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/androidTest/java/com/bekawestberg/loopinglayout/test/androidTest/utils/LayoutDirectionActions.kt -------------------------------------------------------------------------------- /test/src/androidTest/java/com/bekawestberg/loopinglayout/test/androidTest/utils/RecyclerViewActions.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/androidTest/java/com/bekawestberg/loopinglayout/test/androidTest/utils/RecyclerViewActions.kt -------------------------------------------------------------------------------- /test/src/androidTest/java/com/bekawestberg/loopinglayout/test/androidTest/utils/RecyclerViewMatcher.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/androidTest/java/com/bekawestberg/loopinglayout/test/androidTest/utils/RecyclerViewMatcher.kt -------------------------------------------------------------------------------- /test/src/androidTest/java/com/bekawestberg/loopinglayout/test/androidTest/utils/TestUtils.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/androidTest/java/com/bekawestberg/loopinglayout/test/androidTest/utils/TestUtils.kt -------------------------------------------------------------------------------- /test/src/androidTest/java/com/bekawestberg/loopinglayout/test/androidTest/utils/ViewAssertions.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/androidTest/java/com/bekawestberg/loopinglayout/test/androidTest/utils/ViewAssertions.kt -------------------------------------------------------------------------------- /test/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /test/src/main/java/com/bekawestberg/loopinglayout/test/ActivityGeneric.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/java/com/bekawestberg/loopinglayout/test/ActivityGeneric.kt -------------------------------------------------------------------------------- /test/src/main/java/com/bekawestberg/loopinglayout/test/ActivityHorizontal.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/java/com/bekawestberg/loopinglayout/test/ActivityHorizontal.kt -------------------------------------------------------------------------------- /test/src/main/java/com/bekawestberg/loopinglayout/test/ActivityVertical.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/java/com/bekawestberg/loopinglayout/test/ActivityVertical.kt -------------------------------------------------------------------------------- /test/src/main/java/com/bekawestberg/loopinglayout/test/AdapterGeneric.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/java/com/bekawestberg/loopinglayout/test/AdapterGeneric.kt -------------------------------------------------------------------------------- /test/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/drawable-v24/ic_launcher_foreground.xml -------------------------------------------------------------------------------- /test/src/main/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/drawable/ic_launcher_background.xml -------------------------------------------------------------------------------- /test/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/layout/activity_main.xml -------------------------------------------------------------------------------- /test/src/main/res/layout/text_view_generic.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/layout/text_view_generic.xml -------------------------------------------------------------------------------- /test/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/mipmap-anydpi-v26/ic_launcher.xml -------------------------------------------------------------------------------- /test/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml -------------------------------------------------------------------------------- /test/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /test/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /test/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /test/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /test/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /test/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /test/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /test/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /test/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /test/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /test/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/values/colors.xml -------------------------------------------------------------------------------- /test/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/values/strings.xml -------------------------------------------------------------------------------- /test/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BeksOmega/looping-layout/HEAD/test/src/main/res/values/styles.xml --------------------------------------------------------------------------------