Code snippet I was playing with to try to understand the issue:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// authentication with an API key or named user is
// required to access basemaps and other location services
ArcGISEnvironment.apiKey = ApiKey.create(BuildConfig.API_KEY)
enableEdgeToEdge()
setContent {
SampleAppTheme {
val context = LocalContext.current
// create a map with a navigation night basemap style
val map = remember { ArcGISMap(Basemap()) }
var insets by remember { mutableStateOf(PaddingValues(0.dp)) }
MapView(
modifier = Modifier.fillMaxSize(),
arcGISMap = map,
isAttributionBarVisible = false,
insets = insets
)
Column(
modifier = Modifier
.fillMaxSize()
.padding(WindowInsets.systemBars.asPaddingValues()),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.spacedBy(16.dp)
) {
var count by remember {
mutableIntStateOf(0)
}
Button(
onClick = { count++ },
content = { Text(text = "Click me") }
)
Text(text = count.toString())
}
LaunchedEffect(Unit) {
delay(500L)
insets = PaddingValues(32.dp)
}
LaunchedEffect(Unit) {
delay(100L)
map.basemap.value?.baseLayers?.add(ArcGISTiledLayer("https://ibasemaps-api.arcgis.com/arcgis/rest/services/World_Imagery/MapServer"))
delay(500L)
map.basemap.value?.referenceLayers?.add(ArcGISVectorTiledLayer("https://basemapstyles-api.arcgis.com/arcgis/rest/services/styles/v2/layers/arcgis/imagery/labels"))
}
DisposableEffect(Unit) {
onDispose {
map.basemap
println("!")
}
}
}
}
}
}