maxime.batista 1 year ago
parent 2e41bd50d9
commit d35705b8bb

@ -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)
}

@ -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<Rect>,
courtArea: Rect,
content: StepContent,
offsets: MutableMap<ComponentId, Offset>,
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() }

@ -106,10 +106,10 @@ fun VisualizerPage(
Configuration.ORIENTATION_LANDSCAPE -> {
val stepOffsets =
remember(showTree.value, content) { mutableStateMapOf<ComponentId, Offset>() }
remember(showTree.value, selectedStepId) { mutableStateMapOf<ComponentId, Offset>() }
val parentOffsets =
remember(showTree.value, parentContent) { mutableStateMapOf<ComponentId, Offset>() }
val courtArea = remember(showTree.value) { mutableStateOf(Rect.Zero) }
remember(showTree.value, selectedStepId) { mutableStateMapOf<ComponentId, Offset>() }
val courtArea = remember(showTree.value, selectedStepId) { mutableStateOf(Rect.Zero) }
val courtZoomState = remember(showTree.value, selectedStepId) { ZoomState() }
val courtModifier =

Loading…
Cancel
Save