fix(app-glasses): scale на паузе — принудительная перерисовка кадра
На паузе ExoPlayer не шлёт кадры — поверхность меняла размер/позицию, но кадр оставался старым (часть видео не видно). requestRedraw(): updateTexImage + drawFrame для всех outputs — вызывается при смене scale (LaunchedEffect) и в surfaceChanged. Подтверждено на железе.
This commit is contained in:
@@ -25,7 +25,7 @@ import androidx.compose.ui.unit.dp
|
||||
* дублируется и бинокулярно сливается в одну.
|
||||
*/
|
||||
@Composable
|
||||
fun StatusPanelCompose(modifier: Modifier = Modifier) {
|
||||
fun StatusPanelCompose(modifier: Modifier = Modifier, scale: Float = 1f) {
|
||||
var data by remember { mutableStateOf<StatusPanelData?>(null) }
|
||||
val context = LocalContext.current
|
||||
DisposableEffect(Unit) {
|
||||
@@ -34,15 +34,17 @@ fun StatusPanelCompose(modifier: Modifier = Modifier) {
|
||||
onDispose { provider.stop() }
|
||||
}
|
||||
val d = data ?: return
|
||||
val baseStyle = MaterialTheme.typography.bodyMedium
|
||||
val style = baseStyle.copy(fontSize = baseStyle.fontSize * scale)
|
||||
Row(
|
||||
modifier = modifier
|
||||
.background(Color(0x99000000)) // полупрозрачный чёрный
|
||||
.padding(horizontal = 10.dp, vertical = 4.dp),
|
||||
.padding(horizontal = 10.dp * scale, vertical = 4.dp * scale),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
Text(d.time, color = Color.White, style = MaterialTheme.typography.bodyMedium)
|
||||
Spacer(Modifier.width(6.dp))
|
||||
Text(d.time, color = Color.White, style = style)
|
||||
Spacer(Modifier.width(6.dp * scale))
|
||||
// Процент — цветом статуса заряда (зелёный/белый/красный), без квадратика.
|
||||
Text("${d.percent}%", color = Color(d.chargeColorArgb), style = MaterialTheme.typography.bodyMedium)
|
||||
Text("${d.percent}%", color = Color(d.chargeColorArgb), style = style)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user