Регулятор «Высота» экрана очков (0..1, с учётом масштаба): SetVertical по протоколу, offset Y в кино/коннект/оверлее, слайдер на пульте
This commit is contained in:
@@ -71,6 +71,9 @@ fun GlassesScreen(
|
||||
// масштаб экрана очков (0.5..1): слайдер пишет в PhoneState, в очки — при отпускании
|
||||
var scale by remember { mutableStateOf(app.state.scale) }
|
||||
|
||||
// высота экрана очков (0..1): 1 — у верха, 0 — нижняя кромка у низа
|
||||
var vertical by remember { mutableStateOf(app.state.vertical) }
|
||||
|
||||
val actions = app.actions
|
||||
|
||||
// активное скачивание на очки: первое с незавершённым файлом
|
||||
@@ -183,6 +186,31 @@ fun GlassesScreen(
|
||||
)
|
||||
}
|
||||
|
||||
// высота экрана очков: 1.0 — у верха (как сейчас), 0.0 — нижняя кромка у низа (с учётом масштаба)
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(horizontal = 14.dp),
|
||||
) {
|
||||
Text(
|
||||
text = "Высота: ${"%.2f".format(vertical)}",
|
||||
color = PhoneMuted,
|
||||
fontSize = 11.sp,
|
||||
modifier = Modifier.padding(start = 8.dp),
|
||||
)
|
||||
Slider(
|
||||
value = vertical,
|
||||
onValueChange = { vertical = it },
|
||||
onValueChangeFinished = {
|
||||
app.state.vertical = vertical
|
||||
val a = actions
|
||||
if (a != null) scope.launch { a.applyVertical(vertical) }
|
||||
},
|
||||
valueRange = 0f..1f,
|
||||
steps = 9, // шаг 0.1
|
||||
)
|
||||
}
|
||||
|
||||
// активная загрузка контента на очки
|
||||
if (activeGlassesItem != null) {
|
||||
Text(
|
||||
|
||||
Reference in New Issue
Block a user