in ComposeAdvanced/app/src/main/java/com/example/android/wearable/composeadvanced/presentation/ui/watchlist/WatchListScreen.kt [48:116]
fun WatchListScreen(
scalingLazyListState: ScalingLazyListState,
showVignette: Boolean,
onClickVignetteToggle: (Boolean) -> Unit,
onClickWatch: (Int) -> Unit,
watchRepository: WatchRepository,
viewModel: WatchListViewModel = viewModel(
factory = WatchListViewModelFactory(
watchRepository = watchRepository
)
)
) {
val watches: List<WatchModel> by viewModel.watches
ScalingLazyColumn(
modifier = Modifier.fillMaxSize(),
contentPadding = PaddingValues(
top = 28.dp,
start = 10.dp,
end = 10.dp,
bottom = 40.dp
),
verticalArrangement = Arrangement.Center,
state = scalingLazyListState
) {
item {
ToggleChip(
modifier = Modifier
.height(32.dp)
.padding(
start = if (LocalConfiguration.current.isScreenRound) {
20.dp
} else {
10.dp
},
end = if (LocalConfiguration.current.isScreenRound) {
20.dp
} else {
10.dp
},
),
checked = showVignette,
onCheckedChange = onClickVignetteToggle,
label = {
Text(
text = stringResource(R.string.vignette_toggle_chip_label),
textAlign = TextAlign.Center,
fontSize = 12.sp,
modifier = Modifier.fillMaxSize()
)
}
)
}
// Displays all watches.
items(watches) { watch ->
WatchAppChip(
modifier = Modifier
.fillMaxWidth()
.padding(top = 10.dp),
watchModelNumber = watch.modelId,
watchName = watch.name,
watchIcon = watch.icon,
onClickWatch = onClickWatch
)
}
}
}