diff --git a/app/src/main/java/com/github/jing332/tts_server_android/compose/systts/list/edit/BasicInfoEditScreen.kt b/app/src/main/java/com/github/jing332/tts_server_android/compose/systts/list/edit/BasicInfoEditScreen.kt index f44a3659b..f83dfb755 100644 --- a/app/src/main/java/com/github/jing332/tts_server_android/compose/systts/list/edit/BasicInfoEditScreen.kt +++ b/app/src/main/java/com/github/jing332/tts_server_android/compose/systts/list/edit/BasicInfoEditScreen.kt @@ -10,7 +10,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentWidth import androidx.compose.foundation.rememberScrollState import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.HelpOutline +import androidx.compose.material.icons.automirrored.filled.HelpOutline import androidx.compose.material.icons.filled.SmartDisplay import androidx.compose.material.icons.filled.Speed import androidx.compose.material3.Checkbox @@ -211,7 +211,7 @@ fun BasicInfoEditScreen( Text(stringResource(id = R.string.as_standby)) IconButton(onClick = { showStandbyHelpDialog = true }) { Icon( - Icons.Default.HelpOutline, + Icons.AutoMirrored.Filled.HelpOutline, stringResource(id = R.string.systts_as_standby_help) ) } @@ -334,6 +334,7 @@ fun BasicInfoEditScreen( values = speechRules.map { it.ruleId }, entries = speechRules.map { it.name }, onSelectedChange = { k, v -> + if (systts.speechRule.target != SpeechTarget.CUSTOM_TAG) return@AppSpinner onSysttsChange( systts.copy( speechRule = systts.speechRule.copy( @@ -354,6 +355,7 @@ fun BasicInfoEditScreen( values = speechRule.tags.keys.toList(), entries = speechRule.tags.values.toList(), onSelectedChange = { k, _ -> + if (systts.speechRule.target != SpeechTarget.CUSTOM_TAG) return@AppSpinner onSysttsChange( systts.copy( speechRule = systts.speechRule.copy(tag = k as String) @@ -368,7 +370,10 @@ fun BasicInfoEditScreen( speechRule?.let { CustomTagScreen( systts = systts, - onSysttsChange = onSysttsChange, + onSysttsChange = { + if (systts.speechRule.target == SpeechTarget.CUSTOM_TAG) + onSysttsChange(it) + }, speechRule = it ) } @@ -430,7 +435,10 @@ private fun CustomTagScreen( leadingIcon = { if (hint.isNotEmpty()) IconButton(onClick = { showHelpDialog = label to hint }) { - Icon(Icons.Default.HelpOutline, stringResource(id = R.string.help)) + Icon( + Icons.AutoMirrored.Filled.HelpOutline, + stringResource(id = R.string.help) + ) } }, label = { Text(label) }, @@ -464,7 +472,10 @@ private fun CustomTagScreen( leadingIcon = { if (hint.isNotEmpty()) IconButton(onClick = { showHelpDialog = label to hint }) { - Icon(Icons.Default.HelpOutline, stringResource(id = R.string.help)) + Icon( + Icons.AutoMirrored.Filled.HelpOutline, + stringResource(id = R.string.help) + ) } }, onSelectedChange = { k, _ -> diff --git a/app/src/main/java/com/github/jing332/tts_server_android/compose/widgets/AppSelectionDialog.kt b/app/src/main/java/com/github/jing332/tts_server_android/compose/widgets/AppSelectionDialog.kt index 835e6fe7d..c7089b3e8 100644 --- a/app/src/main/java/com/github/jing332/tts_server_android/compose/widgets/AppSelectionDialog.kt +++ b/app/src/main/java/com/github/jing332/tts_server_android/compose/widgets/AppSelectionDialog.kt @@ -44,7 +44,6 @@ import com.github.jing332.tts_server_android.utils.performLongPress import com.github.jing332.tts_server_android.utils.toast import kotlinx.coroutines.delay import kotlinx.coroutines.isActive -import kotlin.math.max @Composable fun AppSelectionDialog( @@ -108,10 +107,8 @@ fun AppSelectionDialog( } } - val listState = rememberLazyListState() - val isEmpty by remember { - derivedStateOf { listState.layoutInfo.viewportSize == IntSize.Zero } + derivedStateOf { state.layoutInfo.viewportSize == IntSize.Zero } } if (searchText.isNotBlank() && isEmpty) @@ -132,11 +129,11 @@ fun AppSelectionDialog( isLoading = isLoading ) { LazyColumn(state = state) { - itemsIndexed(entries) { i, entry -> - if (searchEnabled && searchText.isNotBlank() && - !entry.contains(searchText, ignoreCase = true) - ) return@itemsIndexed - + val items = entries.filterNot { + searchEnabled && searchText.isNotBlank() && + !it.contains(searchText, ignoreCase = true) + } + itemsIndexed(items) { i, entry -> val current = values[i] val isSelected = onValueSame(value, current) Row(