From d35705b8bb6adfc5702c28060899fb19da8ee9c8 Mon Sep 17 00:00:00 2001 From: "maxime.batista" Date: Thu, 28 Mar 2024 12:05:46 +0100 Subject: [PATCH] WIP: fix --- .../main/java/com/iqball/app/MainActivity.kt | 6 ++-- .../com/iqball/app/component/BasketCourt.kt | 29 ++++++++++++------- .../com/iqball/app/page/VisualizerPage.kt | 6 ++-- 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/iqball/app/MainActivity.kt b/app/src/main/java/com/iqball/app/MainActivity.kt index 9093d0d..dd452bf 100644 --- a/app/src/main/java/com/iqball/app/MainActivity.kt +++ b/app/src/main/java/com/iqball/app/MainActivity.kt @@ -67,7 +67,7 @@ class MainActivity : ComponentActivity() { .addConverterFactory(EitherBodyConverter.create()) .addConverterFactory(MoshiConverterFactory.create(moshi)) .addCallAdapterFactory(EitherCallAdapterFactory.create()) - .baseUrl("http://192.168.127.83:5254/") + .baseUrl("https://iqball.maxou.dev/api/dotnet-master/") .client( OkHttpClient.Builder() .addInterceptor { it.proceed(it.request()) } @@ -94,9 +94,9 @@ class MainActivity : ComponentActivity() { @Composable fun App(service: IQBallService) { val auth = runBlocking { - val auth = service.login(AuthService.LoginRequest("maxime@mail.com", "123456")) + val auth = service.login(AuthService.LoginRequest("maxime@mail.come", "123456")) auth.getOrNull()!!.token } - VisualizerPage(service, auth, 3) + VisualizerPage(service, auth, 39) } \ No newline at end of file diff --git a/app/src/main/java/com/iqball/app/component/BasketCourt.kt b/app/src/main/java/com/iqball/app/component/BasketCourt.kt index f6876cf..ac7282c 100644 --- a/app/src/main/java/com/iqball/app/component/BasketCourt.kt +++ b/app/src/main/java/com/iqball/app/component/BasketCourt.kt @@ -1,9 +1,16 @@ package com.iqball.app.component +import androidx.compose.animation.animateContentSize import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.IntrinsicSize import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.requiredHeight +import androidx.compose.foundation.layout.requiredWidth +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue @@ -50,6 +57,7 @@ fun BasketCourt( CourtType.Half -> R.drawable.half_court } + var courtArea by state.courtArea val zoomState = state.zoomState Box( @@ -58,6 +66,8 @@ fun BasketCourt( ) { Box( modifier = Modifier + .wrapContentSize() + .background(Color.Yellow) .zoomable(zoomState), contentAlignment = Alignment.Center, ) { @@ -67,17 +77,21 @@ fun BasketCourt( contentDescription = "court", modifier = Modifier .background(Color.White) + .onGloballyPositioned { + if (courtArea == Rect.Zero) + courtArea = it.boundsInRoot() + } ) CourtContent( - courtAreaState = state.courtArea, + courtArea = courtArea, content = content, offsets = state.stepComponentsOffsets, isFromParent = false ) if (parentContent != null) { CourtContent( - courtAreaState = state.courtArea, + courtArea = courtArea, content = parentContent, offsets = state.parentComponentsOffsets, isFromParent = true @@ -89,22 +103,17 @@ fun BasketCourt( @Composable private fun CourtContent( - courtAreaState: MutableState, + courtArea: Rect, content: StepContent, offsets: MutableMap, isFromParent: Boolean ) { - var courtArea by courtAreaState - val playersPixelsRadius = LocalDensity.current.run { PlayerPieceDiameterDp.dp.toPx() / 2 } Box( modifier = Modifier - .fillMaxSize() - .onGloballyPositioned { - if (courtArea == Rect.Zero) - courtArea = it.boundsInRoot() - } + .height(LocalDensity.current.run {courtArea.height.toDp() } ) + .width(LocalDensity.current.run {courtArea.width.toDp() } ) .drawWithContent { val relativeOffsets = offsets.mapValues { (it.value - courtArea.topLeft).toVector() } diff --git a/app/src/main/java/com/iqball/app/page/VisualizerPage.kt b/app/src/main/java/com/iqball/app/page/VisualizerPage.kt index 2159878..bd9f068 100644 --- a/app/src/main/java/com/iqball/app/page/VisualizerPage.kt +++ b/app/src/main/java/com/iqball/app/page/VisualizerPage.kt @@ -106,10 +106,10 @@ fun VisualizerPage( Configuration.ORIENTATION_LANDSCAPE -> { val stepOffsets = - remember(showTree.value, content) { mutableStateMapOf() } + remember(showTree.value, selectedStepId) { mutableStateMapOf() } val parentOffsets = - remember(showTree.value, parentContent) { mutableStateMapOf() } - val courtArea = remember(showTree.value) { mutableStateOf(Rect.Zero) } + remember(showTree.value, selectedStepId) { mutableStateMapOf() } + val courtArea = remember(showTree.value, selectedStepId) { mutableStateOf(Rect.Zero) } val courtZoomState = remember(showTree.value, selectedStepId) { ZoomState() } val courtModifier =