feat: add setting to toggle model provider visibility in chat composer (#1194)

This commit is contained in:
M57 authored and GitHub committed 2026-09-19 14:56:25 +03:00
1 parent e9d6656c51
commit a61a1b9974
20 files changed
+204 -32

No files matched your search

@@ -207,6 +207,8 @@ internal fun SettingsChatPage(
onAssistantMessageTokensChange = viewModel::onAssistantMessageTokensChange,
showTokensPerSecond = state.showTokensPerSecond,
onTokensPerSecondChange = viewModel::onTokensPerSecondChange,
showModelProvider = state.showModelProvider,
onShowModelProviderChange = viewModel::onShowModelProviderChange,
)
}
}
@@ -43,6 +43,7 @@ data class SettingsUiState(
val showUserMessageTokens: Boolean = true,
val showAssistantMessageTokens: Boolean = true,
val showTokensPerSecond: Boolean = true,
val showModelProvider: Boolean = false,
val profiles: List<ConnectionProfile> = emptyList(),
val selectedProfileId: String? = null,
val renameProfileName: String = "",
@@ -89,6 +90,7 @@ class SettingsViewModel(
val showUserMessageTokens = AuthManager.isUserMessageTokensEnabled()
val showAssistantMessageTokens = AuthManager.isAssistantMessageTokensEnabled()
val showTokensPerSecond = AuthManager.isTokensPerSecondEnabled()
val showModelProvider = AuthManager.isModelProviderShown()
val profiles = AuthManager.getConnectionProfiles()
val appLanguage = AuthManager.getAppLanguage()
val renameProfileName =
@@ -114,6 +116,7 @@ class SettingsViewModel(
showUserMessageTokens = showUserMessageTokens,
showAssistantMessageTokens = showAssistantMessageTokens,
showTokensPerSecond = showTokensPerSecond,
showModelProvider = showModelProvider,
profiles = profiles,
selectedProfileId = selectedId,
renameProfileName = renameProfileName,
@@ -360,6 +363,11 @@ class SettingsViewModel(
AuthManager.setTokensPerSecondEnabled(enabled)
}
fun onShowModelProviderChange(enabled: Boolean) {
_uiState.update { it.copy(showModelProvider = enabled, isSaved = false) }
AuthManager.setModelProviderShown(enabled)
}
/** Clear all auth credentials — logs out and returns to landing screen. */
fun logout() {
AuthManager.setToken(null)
@@ -393,6 +401,7 @@ class SettingsViewModel(
AuthManager.setUserMessageTokensEnabled(state.showUserMessageTokens)
AuthManager.setAssistantMessageTokensEnabled(state.showAssistantMessageTokens)
AuthManager.setTokensPerSecondEnabled(state.showTokensPerSecond)
AuthManager.setModelProviderShown(state.showModelProvider)
ApiClient.rebuild()
viewModelScope.launch(ioDispatcher) {
@@ -213,6 +213,8 @@ internal fun ChatSection(
onAssistantMessageTokensChange: (Boolean) -> Unit = {},
showTokensPerSecond: Boolean = true,
onTokensPerSecondChange: (Boolean) -> Unit = {},
showModelProvider: Boolean = false,
onShowModelProviderChange: (Boolean) -> Unit = {},
) {
val fontScaleOptions = listOf(0.85f, 1.0f, 1.15f, 1.30f, 1.50f)
val currentIndex =
@@ -425,6 +427,38 @@ internal fun ChatSection(
Spacer(modifier = Modifier.height(20.dp))
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically,
) {
Column(modifier = Modifier.weight(1f).padding(end = 16.dp)) {
Text(
text = stringResource(R.string.settings_item_show_model_provider),
style = MaterialTheme.typography.bodyLarge,
)
Text(
text = stringResource(R.string.settings_desc_show_model_provider),
style =
MaterialTheme.typography.bodySmall.copy(
color = MaterialTheme.colorScheme.onSurfaceVariant,
),
)
}
Switch(
checked = showModelProvider,
onCheckedChange = onShowModelProviderChange,
modifier = Modifier.testTag("settings_show_model_provider"),
colors =
SwitchDefaults.colors(
checkedThumbColor = MaterialTheme.colorScheme.primary,
checkedTrackColor = MaterialTheme.colorScheme.primaryContainer,
),
)
}
Spacer(modifier = Modifier.height(20.dp))
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceBetween,