@@ -38,6 +38,7 @@ import com.theapache64.klokk.movement.core.Movement
3838
3939@Composable
4040fun BottomToolBar (
41+ isTvMode : Boolean = false,
4142 activeMovement : Movement , // to show debug info
4243 isAnimPlaying : Boolean ,
4344 textInput : String ,
@@ -74,7 +75,8 @@ fun BottomToolBar(
7475 IconTextButton (
7576 text = " START AUTOPLAY" ,
7677 imageVector = Icons .Outlined .PlayArrow ,
77- onClicked = onPlayClicked
78+ onClicked = onPlayClicked,
79+ isTvMode = isTvMode
7880 )
7981 }
8082
@@ -83,7 +85,8 @@ fun BottomToolBar(
8385 IconTextButton (
8486 text = " STOP AUTOPLAY" ,
8587 imageVector = Icons .Outlined .Stop ,
86- onClicked = onStopClicked
88+ onClicked = onStopClicked,
89+ isTvMode = isTvMode
8790 )
8891 }
8992
@@ -93,15 +96,17 @@ fun BottomToolBar(
9396 text = " SHOW TIME" ,
9497 imageVector = Icons .Outlined .Update ,
9598 onClicked = onShowTimeClicked,
96- focusRequester = showTimeFocusRequester
99+ focusRequester = showTimeFocusRequester,
100+ isTvMode = isTvMode
97101 )
98102 }
99103
100104 // Immersive Mode Button
101105 IconTextButton (
102106 text = " HIDE CONTROLS" ,
103107 imageVector = Icons .Outlined .Fullscreen ,
104- onClicked = onHideControlsClicked
108+ onClicked = onHideControlsClicked,
109+ isTvMode = isTvMode
105110 )
106111
107112 Row (
@@ -137,10 +142,14 @@ private fun IconTextButton(
137142 text : String ,
138143 imageVector : ImageVector ,
139144 onClicked : () -> Unit ,
145+ isTvMode : Boolean = false,
140146 focusRequester : FocusRequester ? = null,
141147) {
142148 var isFocused by remember { mutableStateOf(false ) }
143149
150+ // Show focus highlighting only on TV
151+ val showFocusHighlight = isTvMode && isFocused
152+
144153 Box (
145154 modifier = Modifier
146155 .then(
@@ -154,34 +163,34 @@ private fun IconTextButton(
154163 isFocused = focusState.isFocused
155164 }
156165 .border(
157- width = if (isFocused ) 2 .dp else 0 .dp,
158- color = if (isFocused ) Color (0xFFFFD700 ) else Color .Transparent ,
166+ width = if (showFocusHighlight ) 2 .dp else 0 .dp,
167+ color = if (showFocusHighlight ) Color (0xFFFFD700 ) else Color .Transparent ,
159168 shape = RoundedCornerShape (4 .dp)
160169 )
161- .padding(if (isFocused ) 2 .dp else 0 .dp)
170+ .padding(if (showFocusHighlight ) 2 .dp else 0 .dp)
162171 ) {
163172 OutlinedButton (
164173 onClick = onClicked,
165174 modifier = Modifier .focusable(),
166175 border = BorderStroke (
167176 width = 1 .dp,
168- color = if (isFocused ) Color (0xFFFFD700 ) else Color .Gray
177+ color = if (showFocusHighlight ) Color (0xFFFFD700 ) else Color .Gray
169178 ),
170179 colors = ButtonDefaults .outlinedButtonColors(
171- backgroundColor = if (isFocused ) Color (0xFFFFD700 ).copy(alpha = 0.2f ) else Color .Transparent
180+ backgroundColor = if (showFocusHighlight ) Color (0xFFFFD700 ).copy(alpha = 0.2f ) else Color .Transparent
172181 )
173182 ) {
174183
175184 Icon (
176185 imageVector = imageVector,
177- tint = if (isFocused ) Color (0xFFFFD700 ) else Color .White ,
186+ tint = if (showFocusHighlight ) Color (0xFFFFD700 ) else Color .White ,
178187 contentDescription = " ToolBar Icon" ,
179188 modifier = Modifier .padding(end = 10 .dp)
180189 )
181190
182191 Text (
183192 text = text,
184- color = if (isFocused ) Color (0xFFFFD700 ) else Color .White
193+ color = if (showFocusHighlight ) Color (0xFFFFD700 ) else Color .White
185194 )
186195 }
187196 }
0 commit comments