From 8a9ddbc27ce3cafca98ea93a6b4af0d47970dffe Mon Sep 17 00:00:00 2001 From: DarkCat09 Date: Mon, 5 Jun 2023 22:15:40 +0400 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D1=91=D0=BD=20?= =?UTF-8?q?=D1=80=D0=B0=D0=B7=D0=BC=D0=B5=D1=80=20=D0=BA=D0=B0=D1=80=D1=82?= =?UTF-8?q?=D1=8B=20=D0=B8=20=D0=B7=D1=83=D0=BC,=20=D1=80=D0=B5=D0=BD?= =?UTF-8?q?=D0=B4=D0=B5=D1=80=20=D1=83=D1=81=D0=BA=D0=BE=D1=80=D0=B5=D0=BD?= =?UTF-8?q?=20=D0=B2=20100500=20=D1=80=D0=B0=D0=B7=20=D0=B7=D0=B0=20=D1=81?= =?UTF-8?q?=D1=87=D1=91=D1=82=20`workerCount`,=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=20=D0=BA=D0=BE=D0=B4=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=B0=D0=B2=D1=82=D0=BE=D1=83=D1=81=D1=82=D0=B0=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=BA=D0=B8=20=D0=BF=D0=BE=D0=B7=D0=B8=D1=86=D0=B8?= =?UTF-8?q?=D0=B8=20=D0=BD=D0=B0=20=D0=BA=D0=B0=D1=80=D1=82=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/ru/nm17/narodmon/ui/pages/Sensors.kt | 17 +++++++++++++++-- .../nm17/narodmon/ui/viewmodel/MapViewModel.kt | 9 +++++++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/ru/nm17/narodmon/ui/pages/Sensors.kt b/app/src/main/java/ru/nm17/narodmon/ui/pages/Sensors.kt index b8037b9..6bd37c1 100644 --- a/app/src/main/java/ru/nm17/narodmon/ui/pages/Sensors.kt +++ b/app/src/main/java/ru/nm17/narodmon/ui/pages/Sensors.kt @@ -9,15 +9,19 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.FilterChip import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.geometry.Offset import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.navigation.NavController +import ovh.plrapps.mapcompose.api.scale +import ovh.plrapps.mapcompose.api.setScroll import ovh.plrapps.mapcompose.ui.MapUI import ru.nm17.narodmon.R import ru.nm17.narodmon.ui.elements.GenericNavScaffold @@ -34,14 +38,20 @@ fun SensorsPage(navController: NavController) { var filter by remember { mutableStateOf(SensorsFilter.All) } val scrConfig = LocalConfiguration.current - val scrHalfHeight = scrConfig.screenHeightDp / 2 + val mapHeight = scrConfig.screenHeightDp / 3 + + LaunchedEffect(mapVM) { + // TODO: Подгружать сохранённую позицию + mapVM.state.setScroll(Offset(28702.6F, 14787.6F)) + mapVM.state.scale = 1.4658884F + } GenericNavScaffold( title = { Text(text = stringResource(R.string.sensors_page_title)) } ) { Column(modifier = Modifier.padding(it)) { - MapUI(state = mapVM.state, modifier = Modifier.height(scrHalfHeight.dp)) + MapUI(state = mapVM.state, modifier = Modifier.height(mapHeight.dp)) Row( modifier = Modifier.padding(horizontal = 8.dp), @@ -65,6 +75,9 @@ fun SensorsPage(navController: NavController) { updateFilter = { filter = SensorsFilter.Camera }, ) } + + //Text(mapVM.state.scroll.toString()) + //Text(mapVM.state.scale.toString()) } } } diff --git a/app/src/main/java/ru/nm17/narodmon/ui/viewmodel/MapViewModel.kt b/app/src/main/java/ru/nm17/narodmon/ui/viewmodel/MapViewModel.kt index e04f52c..4d330ba 100644 --- a/app/src/main/java/ru/nm17/narodmon/ui/viewmodel/MapViewModel.kt +++ b/app/src/main/java/ru/nm17/narodmon/ui/viewmodel/MapViewModel.kt @@ -12,7 +12,6 @@ import ovh.plrapps.mapcompose.api.addLayer import ovh.plrapps.mapcompose.core.TileStreamProvider import ovh.plrapps.mapcompose.ui.state.MapState import java.io.InputStream -import java.net.URL class MapViewModel : ViewModel() { private val client = HttpClient(CIO) @@ -21,8 +20,14 @@ class MapViewModel : ViewModel() { requestTile(row, col, zoom) } + private val mapSize = 32768 val state: MapState by mutableStateOf( - MapState(4, 4096, 4096).apply { + MapState( + levelCount = 8, + fullWidth = mapSize, + fullHeight = mapSize, + workerCount = 16, + ).apply { addLayer(tileStreamProvider) } )