feat(android): init basic marker and polylines

This commit is contained in:
LavaDesu 2025-04-14 02:02:06 +10:00
parent 89ffc02e1d
commit 0ffd415874
Signed by: cilly
GPG key ID: 6500251E087653C9
5 changed files with 126 additions and 12 deletions

View file

@ -2,14 +2,16 @@ package moe.lava.banksia
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.material.BottomSheetScaffold
import androidx.compose.material.Button
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Scaffold
import androidx.compose.material.Text
import androidx.compose.material3.BottomSheetScaffold
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.SheetValue
import androidx.compose.material3.rememberBottomSheetScaffoldState
import androidx.compose.material3.rememberStandardBottomSheetState
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@ -20,12 +22,25 @@ import banksia.composeapp.generated.resources.Res
import banksia.composeapp.generated.resources.compose_multiplatform
import moe.lava.banksia.native.maps.Maps
@OptIn(ExperimentalMaterial3Api::class)
@Composable
@Preview
fun App() {
val scaffoldState = rememberBottomSheetScaffoldState(
bottomSheetState = rememberStandardBottomSheetState(
initialValue = SheetValue.Hidden,
skipHiddenState = false
)
)
MaterialTheme {
Scaffold {
Maps(modifier = Modifier.fillMaxSize())
BottomSheetScaffold(
scaffoldState = scaffoldState,
sheetContent = { Box(modifier = Modifier) },
) {
Maps(
modifier = Modifier.fillMaxSize(),
sheetState = scaffoldState.bottomSheetState,
)
}
}
}

View file

@ -1,12 +1,21 @@
package moe.lava.banksia.native.maps
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.SheetState
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
data class Marker(val name: String)
data class Marker(val name: String, val onClick: () -> Boolean)
data class Point(val lat: Double, val lng: Double)
data class Polyline(val points: List<Point>, val colour: Color)
@OptIn(ExperimentalMaterial3Api::class)
@Composable
expect fun Maps(
modifier: Modifier = Modifier,
markers: List<Marker> = listOf()
markers: List<Marker> = listOf(),
polylines: List<Polyline> = listOf(),
cameraPosition: Point = Point(-37.8136, 144.9631),
sheetState: SheetState,
)