diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c256096e..0cad7776 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,7 +44,7 @@ jobs: name: Browser distribution path: './composeApp/build/dist/wasmJs/productionExecutable/' - - name: Deploy to GithubPages + - name: Deploy to Github Pages uses: JamesIves/github-pages-deploy-action@v4 with: folder: './composeApp/build/dist/wasmJs/productionExecutable/' @@ -93,3 +93,38 @@ jobs: with: name: "Desktop distribution for ${{ matrix.os }}" path: 'composeApp/build/compose/binaries/main/app' + + build-android: + name: "Build for Android" + runs-on: ubuntu-latest + permissions: + contents: write + timeout-minutes: 60 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Validate Gradle Wrapper + uses: gradle/wrapper-validation-action@v1 + + - name: Copy CI gradle.properties (idk about this) + run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: 17 + + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 + + - name: Gradle build debug .apk for Android + run: ./gradlew assembleDebug + + - name: Upload build output + uses: actions/upload-artifact@v4 + with: + name: "Android debug .apk" + path: 'composeApp/build/outputs/apk/debug' + diff --git a/composeApp/src/commonMain/kotlin/ui/EditClusterScreen.kt b/composeApp/src/commonMain/kotlin/ui/EditClusterScreen.kt index 3f64c19d..e5d60d73 100644 --- a/composeApp/src/commonMain/kotlin/ui/EditClusterScreen.kt +++ b/composeApp/src/commonMain/kotlin/ui/EditClusterScreen.kt @@ -181,13 +181,15 @@ fun ModeToggle( Spacer(Modifier.fillMaxHeight().width(8.dp)) // horizontal margin } + @Composable fun EditClusterContent( mode: State, modifier: Modifier = Modifier ) { - // adding viewModel impl is pain in the ass + // NOTE: adding viewModel impl is pain in the ass // waiting for decompose 3.0-stable + // (use state flows in vM + in ui convert to state with .collectAsStateWithLc) val circles = remember { mutableStateListOf() } circles.addAll(listOf( Circle(150.0, 50.0, 50.0), @@ -304,6 +306,10 @@ fun EditClusterContent( if (mode.value.isSelectingCircles()) { selectCircle(circles, position)?.let { ix -> grabbedCircleIx = ix + if (mode.value == SelectionMode.DRAG) { + selection.clear() + selection.add(ix) + } } } }, @@ -356,7 +362,7 @@ fun EditClusterContent( ) } else if (selection.size > 1) { handle = Handle.Scale(selection) - // todo + // TODO: show rect + handle in a corner } } }