├── app ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── values │ │ │ │ ├── dimens.xml │ │ │ │ ├── ids.xml │ │ │ │ ├── attrs.xml │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ ├── mipmap-hdpi │ │ │ │ ├── appicon.png │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ │ ├── appicon.png │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── appicon.png │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── drawable │ │ │ │ ├── passist_cube.png │ │ │ │ ├── qr_menu_icon.png │ │ │ │ ├── favorite_star_icon.png │ │ │ │ ├── named_siteswaps_icon.png │ │ │ │ └── rotate_default_icon.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── appicon.png │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── appicon.png │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── menu │ │ │ │ ├── menu_siteswap_list.xml │ │ │ │ ├── menu_show_favorites.xml │ │ │ │ ├── menu_detailed_siteswap.xml │ │ │ │ └── menu_main.xml │ │ │ └── layout │ │ │ │ ├── layout_choose_remove_favorite.xml │ │ │ │ ├── layout_generation_parameters_list.xml │ │ │ │ ├── layout_save_generation_parameters.xml │ │ │ │ ├── layout_confirm_remove_favorite.xml │ │ │ │ ├── layout_confirm_remove_generation_parameter.xml │ │ │ │ ├── activity_show_siteswaps.xml │ │ │ │ ├── layout_about_page.xml │ │ │ │ ├── layout_enter_siteswap.xml │ │ │ │ ├── number_filter_layout.xml │ │ │ │ ├── layout_generate_compatible_siteswap_dialog.xml │ │ │ │ ├── layout_add_to_favorites.xml │ │ │ │ └── pattern_filter_layout.xml │ │ ├── java │ │ │ ├── siteswaplib │ │ │ │ ├── NamedSiteswap.java │ │ │ │ ├── Filter.java │ │ │ │ ├── CyclicByteArray.java │ │ │ │ ├── InterfaceFilter.java │ │ │ │ ├── PatternFilter.java │ │ │ │ ├── LocalInterfaceFilter.java │ │ │ │ ├── LocalPatternFilter.java │ │ │ │ ├── NamedSiteswaps.java │ │ │ │ └── FilterList.java │ │ │ └── namlit │ │ │ │ └── siteswapgenerator │ │ │ │ ├── GenerationParameterDao.java │ │ │ │ ├── FavoriteDao.java │ │ │ │ ├── SiteswapArrayAdapter.java │ │ │ │ ├── NonScrollListView.java │ │ │ │ ├── AddFilterDialog.java │ │ │ │ ├── AppDatabase.java │ │ │ │ ├── SiteswapEntity.java │ │ │ │ ├── NamedSiteswapActivity.java │ │ │ │ ├── QRCodeDialog.java │ │ │ │ ├── ChooseRemoveFavoriteDialog.java │ │ │ │ ├── DeleteGenerationParametersDialog.java │ │ │ │ ├── LoadGenerationParametersDialog.java │ │ │ │ ├── SaveGenerationParametersDialog.java │ │ │ │ ├── ConfirmDeleteGenerationParametersDialog.java │ │ │ │ ├── SiteswapGenerationFragment.java │ │ │ │ ├── ConfirmRemoveFavoriteDialog.java │ │ │ │ ├── EnterSiteswapDialog.java │ │ │ │ ├── GenerationParameterEntity.java │ │ │ │ └── AddToFavoritesDialog.java │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ ├── namlit │ │ │ └── siteswapgenerator │ │ │ │ └── ExampleUnitTest.java │ │ │ └── siteswaplib │ │ │ ├── InterfaceFilterTest.java │ │ │ ├── LocalPatternFilterTest.java │ │ │ ├── PatternFilterTest.java │ │ │ ├── LocalInterfaceFilterTest.java │ │ │ ├── FilterListTest.java │ │ │ ├── SiteswapGeneratorTest.java │ │ │ ├── SiteswapTest.java │ │ │ └── NumberFilterTest.java │ └── androidTest │ │ └── java │ │ └── namlit │ │ └── siteswapgenerator │ │ └── ExampleInstrumentedTest.java ├── proguard-rules.pro ├── build.gradle └── schemas │ └── namlit.siteswapgenerator.AppDatabase │ ├── 1.json │ └── 2.json ├── settings.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── create_tag.sh ├── .github └── workflows │ ├── release.yml │ └── build.yml ├── images ├── exportAllPNG.sh ├── favorite_star_icon.svg ├── named_siteswaps_icon.svg └── rotate_default_icon.svg ├── gradle.properties ├── privacy-policy.md ├── gradlew.bat ├── README.md └── gradlew /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 16dp 3 | 4 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/appicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/mipmap-hdpi/appicon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/appicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/mipmap-mdpi/appicon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/appicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/mipmap-xhdpi/appicon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/passist_cube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/drawable/passist_cube.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/qr_menu_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/drawable/qr_menu_icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/appicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/mipmap-xxhdpi/appicon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/appicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/mipmap-xxxhdpi/appicon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/favorite_star_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/drawable/favorite_star_icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/named_siteswaps_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/drawable/named_siteswaps_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/rotate_default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/drawable/rotate_default_icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/namlit/siteswap_generator/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | .externalNativeBuild 10 | .directory 11 | /.idea 12 | app-release.apk 13 | app/release/ 14 | tags 15 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /create_tag.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | SCRIPT= 4 | SCRIPTDIR=$(realpath "$(dirname "$0")") 5 | 6 | version_file="$SCRIPTDIR/app/build.gradle" 7 | 8 | version=$(grep versionName app/build.gradle | cut -d '"' -f2) 9 | 10 | tag="v$version" 11 | tag_message=$(git log -1 --no-merges --format="%s%n%n%b" "$version_file") 12 | 13 | echo "Creating tag '$tag'" 14 | echo "Tag message is:\n" 15 | echo "$tag_message" 16 | 17 | git tag -a -m "$tag_message" "$tag" -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_siteswap_list.xml: -------------------------------------------------------------------------------- 1 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_choose_remove_favorite.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | workflow_dispatch: 8 | 9 | jobs: 10 | build: 11 | 12 | runs-on: ubuntu-latest 13 | 14 | steps: 15 | - name: Checkout repository 16 | uses: actions/checkout@v2 17 | 18 | - name: Create and push tag 19 | run: | 20 | git config --local user.email "6969594+namlit@users.noreply.github.com" 21 | git config --local user.name "GitHub Action" 22 | ./create_tag.sh 23 | git push origin --tags 24 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_generation_parameters_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_save_generation_parameters.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_confirm_remove_favorite.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_confirm_remove_generation_parameter.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/java/siteswaplib/NamedSiteswap.java: -------------------------------------------------------------------------------- 1 | package siteswaplib; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | public class NamedSiteswap extends Siteswap { 6 | 7 | public NamedSiteswap(String siteswap, int numJugglers, String name) { 8 | super(siteswap, numJugglers, name); 9 | } 10 | 11 | public NamedSiteswap(Siteswap siteswap) { 12 | super(siteswap); 13 | } 14 | 15 | @NonNull 16 | @Override 17 | public String toString() { 18 | 19 | String name = getSiteswapName() == "" ? "" : getSiteswapName() + ": "; 20 | return name + super.toString(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 15 | 16 |