diff --git a/lib/core/persistence/persistence_keys.dart b/lib/core/persistence/persistence_keys.dart index 2a72881..8953255 100644 --- a/lib/core/persistence/persistence_keys.dart +++ b/lib/core/persistence/persistence_keys.dart @@ -8,7 +8,6 @@ final class PreferenceKeys { static const String largeText = 'large_text'; static const String darkMode = 'dark_mode'; static const String defaultModel = 'default_model'; - static const String omitProviderInModelName = 'omit_provider_in_model_name'; static const String voiceLocaleId = 'voice_locale_id'; static const String voiceHoldToTalk = 'voice_hold_to_talk'; static const String voiceAutoSendFinal = 'voice_auto_send_final'; diff --git a/lib/core/persistence/persistence_migrator.dart b/lib/core/persistence/persistence_migrator.dart index dbf93b0..200828a 100644 --- a/lib/core/persistence/persistence_migrator.dart +++ b/lib/core/persistence/persistence_migrator.dart @@ -79,7 +79,6 @@ class PersistenceMigrator { copyBool(PreferenceKeys.largeText); copyBool(PreferenceKeys.darkMode); copyString(PreferenceKeys.defaultModel); - copyBool(PreferenceKeys.omitProviderInModelName); copyString(PreferenceKeys.voiceLocaleId); copyBool(PreferenceKeys.voiceHoldToTalk); copyBool(PreferenceKeys.voiceAutoSendFinal); @@ -185,7 +184,6 @@ class PersistenceMigrator { PreferenceKeys.largeText, PreferenceKeys.darkMode, PreferenceKeys.defaultModel, - PreferenceKeys.omitProviderInModelName, PreferenceKeys.voiceLocaleId, PreferenceKeys.voiceHoldToTalk, PreferenceKeys.voiceAutoSendFinal, diff --git a/lib/core/services/settings_service.dart b/lib/core/services/settings_service.dart index fc8cb9d..b723aa5 100644 --- a/lib/core/services/settings_service.dart +++ b/lib/core/services/settings_service.dart @@ -17,9 +17,6 @@ class SettingsService { static const String _largeTextKey = PreferenceKeys.largeText; static const String _darkModeKey = PreferenceKeys.darkMode; static const String _defaultModelKey = PreferenceKeys.defaultModel; - // Model name formatting - static const String _omitProviderInModelNameKey = - PreferenceKeys.omitProviderInModelName; // Voice input settings static const String _voiceLocaleKey = PreferenceKeys.voiceLocaleId; static const String _voiceHoldToTalkKey = PreferenceKeys.voiceHoldToTalk; @@ -117,16 +114,6 @@ class SettingsService { return box.delete(_defaultModelKey); } - /// Whether to omit the provider prefix when displaying model names - static Future getOmitProviderInModelName() { - final value = _preferencesBox().get(_omitProviderInModelNameKey) as bool?; - return Future.value(value ?? true); - } - - static Future setOmitProviderInModelName(bool value) { - return _preferencesBox().put(_omitProviderInModelNameKey, value); - } - /// Load all settings static Future loadSettings() { final box = _preferencesBox(); @@ -140,8 +127,6 @@ class SettingsService { largeText: (box.get(_largeTextKey) as bool?) ?? false, darkMode: (box.get(_darkModeKey) as bool?) ?? true, defaultModel: box.get(_defaultModelKey) as String?, - omitProviderInModelName: - (box.get(_omitProviderInModelNameKey) as bool?) ?? true, voiceLocaleId: box.get(_voiceLocaleKey) as String?, voiceHoldToTalk: (box.get(_voiceHoldToTalkKey) as bool?) ?? false, voiceAutoSendFinal: (box.get(_voiceAutoSendKey) as bool?) ?? false, @@ -165,7 +150,6 @@ class SettingsService { _highContrastKey: settings.highContrast, _largeTextKey: settings.largeText, _darkModeKey: settings.darkMode, - _omitProviderInModelNameKey: settings.omitProviderInModelName, _voiceHoldToTalkKey: settings.voiceHoldToTalk, _voiceAutoSendKey: settings.voiceAutoSendFinal, _socketTransportModeKey: settings.socketTransportMode, @@ -305,7 +289,6 @@ class AppSettings { final bool largeText; final bool darkMode; final String? defaultModel; - final bool omitProviderInModelName; final String? voiceLocaleId; final bool voiceHoldToTalk; final bool voiceAutoSendFinal; @@ -320,7 +303,6 @@ class AppSettings { this.largeText = false, this.darkMode = true, this.defaultModel, - this.omitProviderInModelName = true, this.voiceLocaleId, this.voiceHoldToTalk = false, this.voiceAutoSendFinal = false, @@ -337,7 +319,6 @@ class AppSettings { bool? largeText, bool? darkMode, Object? defaultModel = const _DefaultValue(), - bool? omitProviderInModelName, Object? voiceLocaleId = const _DefaultValue(), bool? voiceHoldToTalk, bool? voiceAutoSendFinal, @@ -355,8 +336,6 @@ class AppSettings { defaultModel: defaultModel is _DefaultValue ? this.defaultModel : defaultModel as String?, - omitProviderInModelName: - omitProviderInModelName ?? this.omitProviderInModelName, voiceLocaleId: voiceLocaleId is _DefaultValue ? this.voiceLocaleId : voiceLocaleId as String?, @@ -379,7 +358,6 @@ class AppSettings { other.largeText == largeText && other.darkMode == darkMode && other.defaultModel == defaultModel && - other.omitProviderInModelName == omitProviderInModelName && other.voiceLocaleId == voiceLocaleId && other.voiceHoldToTalk == voiceHoldToTalk && other.voiceAutoSendFinal == voiceAutoSendFinal && @@ -398,7 +376,6 @@ class AppSettings { largeText, darkMode, defaultModel, - omitProviderInModelName, voiceLocaleId, voiceHoldToTalk, voiceAutoSendFinal, @@ -475,11 +452,6 @@ class AppSettingsNotifier extends _$AppSettingsNotifier { await SettingsService.setDefaultModel(modelId); } - Future setOmitProviderInModelName(bool value) async { - state = state.copyWith(omitProviderInModelName: value); - await SettingsService.setOmitProviderInModelName(value); - } - Future setVoiceLocaleId(String? localeId) async { state = state.copyWith(voiceLocaleId: localeId); await SettingsService.setVoiceLocaleId(localeId); diff --git a/lib/features/chat/views/chat_page.dart b/lib/features/chat/views/chat_page.dart index 2c3c1ac..2b2c1c2 100644 --- a/lib/features/chat/views/chat_page.dart +++ b/lib/features/chat/views/chat_page.dart @@ -72,20 +72,8 @@ class _ChatPageState extends ConsumerState { String? _cachedGreetingName; bool _greetingReady = false; - String _formatModelDisplayName(String name, {required bool omitProvider}) { - var display = name.trim(); - if (omitProvider) { - // Prefer the segment after the last '/' - if (display.contains('/')) { - display = display.split('/').last.trim(); - } - // If an org prefix like 'OpenAI: gpt-4o' exists, use the part after ':' - if (display.contains(':')) { - final parts = display.split(':'); - display = parts.last.trim(); - } - } - return display; + String _formatModelDisplayName(String name) { + return name.trim(); } bool validateFileCount(int currentCount, int newCount, int maxCount) { @@ -830,9 +818,6 @@ class _ChatPageState extends ConsumerState { Model? matchedModel; final rawModel = message.model; if (rawModel != null && rawModel.isNotEmpty) { - final omitProvider = ref - .watch(appSettingsProvider) - .omitProviderInModelName; final modelsAsync = ref.watch(modelsProvider); if (modelsAsync.hasValue) { final models = modelsAsync.value!; @@ -842,23 +827,14 @@ class _ChatPageState extends ConsumerState { (m) => m.id == rawModel || m.name == rawModel, ); matchedModel = match; - displayModelName = _formatModelDisplayName( - match.name, - omitProvider: omitProvider, - ); + displayModelName = _formatModelDisplayName(match.name); } catch (_) { // As a fallback, format the raw value to be more readable - displayModelName = _formatModelDisplayName( - rawModel, - omitProvider: omitProvider, - ); + displayModelName = _formatModelDisplayName(rawModel); } } else { // Models not loaded yet; format raw value for readability - displayModelName = _formatModelDisplayName( - rawModel, - omitProvider: omitProvider, - ); + displayModelName = _formatModelDisplayName(rawModel); } } @@ -1062,11 +1038,6 @@ class _ChatPageState extends ConsumerState { // Watch reviewer mode and auto-select model if needed final isReviewerMode = ref.watch(reviewerModeProvider); - final omitProviderInModelName = ref.watch( - appSettingsProvider.select( - (settings) => settings.omitProviderInModelName, - ), - ); final conversationId = ref.watch( activeConversationProvider.select((conv) => conv?.id), ); @@ -1091,10 +1062,7 @@ class _ChatPageState extends ConsumerState { ? trimmedConversationTitle : null; final formattedModelName = selectedModel != null - ? _formatModelDisplayName( - selectedModel.name, - omitProvider: omitProviderInModelName, - ) + ? _formatModelDisplayName(selectedModel.name) : null; final modelLabel = formattedModelName ?? l10n.chooseModel; final hasConversationTitle = displayConversationTitle != null; diff --git a/lib/features/profile/views/app_customization_page.dart b/lib/features/profile/views/app_customization_page.dart index 7bd1c92..643f1cb 100644 --- a/lib/features/profile/views/app_customization_page.dart +++ b/lib/features/profile/views/app_customization_page.dart @@ -157,28 +157,6 @@ class AppCustomizationPage extends ConsumerWidget { } }, ), - const SizedBox(height: Spacing.md), - _CustomizationTile( - leading: _buildIconBadge( - context, - Platform.isIOS ? CupertinoIcons.textformat : Icons.text_fields, - color: theme.buttonPrimary, - ), - title: AppLocalizations.of(context)!.hideProviderInModelNames, - subtitle: AppLocalizations.of( - context, - )!.hideProviderInModelNamesDescription, - trailing: Switch.adaptive( - value: settings.omitProviderInModelName, - onChanged: (v) => ref - .read(appSettingsProvider.notifier) - .setOmitProviderInModelName(v), - ), - showChevron: false, - onTap: () => ref - .read(appSettingsProvider.notifier) - .setOmitProviderInModelName(!settings.omitProviderInModelName), - ), ], ); } diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index 6f619b4..903750f 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -291,8 +291,6 @@ "quickActionsDescription": "Wähle bis zu zwei Schnellzugriffe, die neben dem Eingabefeld angepinnt werden", "display": "Anzeige", "realtime": "Echtzeit", - "hideProviderInModelNames": "Anbieter in Modellnamen ausblenden", - "hideProviderInModelNamesDescription": "Zeige Namen wie \"gpt-4o\" statt \"openai/gpt-4o\".", "transportMode": "Transportmodus", "transportModeDescription": "Wähle, wie die App für Echtzeit-Updates verbindet.", "mode": "Modus", diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 7fd27be..bd1e705 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -584,10 +584,6 @@ "@display": {"description": "Section header for visual and layout related settings."}, "realtime": "Realtime", "@realtime": {"description": "Section header for realtime/transport settings."}, - "hideProviderInModelNames": "Hide provider in model names", - "@hideProviderInModelNames": {"description": "Toggle label to hide the provider prefix in model names (e.g., show gpt-4o instead of openai/gpt-4o)."}, - "hideProviderInModelNamesDescription": "Show names like \"gpt-4o\" instead of \"openai/gpt-4o\".", - "@hideProviderInModelNamesDescription": {"description": "Helper text for provider hiding toggle."}, "transportMode": "Transport mode", "@transportMode": {"description": "Title for selecting the networking transport used for realtime."}, "transportModeDescription": "Choose how the app connects for realtime updates.", diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index 7a4eae4..f4b5a18 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -291,8 +291,6 @@ "quickActionsDescription": "Choisissez jusqu'à deux raccourcis à épingler près du champ de saisie", "display": "Affichage", "realtime": "Temps réel", - "hideProviderInModelNames": "Masquer le fournisseur dans les noms de modèles", - "hideProviderInModelNamesDescription": "Afficher des noms comme \"gpt-4o\" au lieu de \"openai/gpt-4o\".", "transportMode": "Mode de transport", "transportModeDescription": "Choisissez comment l'app se connecte pour les mises à jour en temps réel.", "mode": "Mode", diff --git a/lib/l10n/app_it.arb b/lib/l10n/app_it.arb index 050066b..58ff905 100644 --- a/lib/l10n/app_it.arb +++ b/lib/l10n/app_it.arb @@ -291,8 +291,6 @@ "quickActionsDescription": "Scegli fino a due scorciatoie da fissare vicino al campo di input", "display": "Schermo", "realtime": "Tempo reale", - "hideProviderInModelNames": "Nascondi provider nei nomi dei modelli", - "hideProviderInModelNamesDescription": "Mostra nomi come \"gpt-4o\" invece di \"openai/gpt-4o\".", "transportMode": "Modalità di trasporto", "transportModeDescription": "Scegli come l'app si connette per gli aggiornamenti in tempo reale.", "mode": "Modalità", diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 0e29cbd..401c635 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -1596,18 +1596,6 @@ abstract class AppLocalizations { /// **'Realtime'** String get realtime; - /// Toggle label to hide the provider prefix in model names (e.g., show gpt-4o instead of openai/gpt-4o). - /// - /// In en, this message translates to: - /// **'Hide provider in model names'** - String get hideProviderInModelNames; - - /// Helper text for provider hiding toggle. - /// - /// In en, this message translates to: - /// **'Show names like \"gpt-4o\" instead of \"openai/gpt-4o\".'** - String get hideProviderInModelNamesDescription; - /// Title for selecting the networking transport used for realtime. /// /// In en, this message translates to: diff --git a/lib/l10n/app_localizations_de.dart b/lib/l10n/app_localizations_de.dart index 6868c99..43b45dd 100644 --- a/lib/l10n/app_localizations_de.dart +++ b/lib/l10n/app_localizations_de.dart @@ -835,13 +835,6 @@ class AppLocalizationsDe extends AppLocalizations { @override String get realtime => 'Echtzeit'; - @override - String get hideProviderInModelNames => 'Anbieter in Modellnamen ausblenden'; - - @override - String get hideProviderInModelNamesDescription => - 'Zeige Namen wie \"gpt-4o\" statt \"openai/gpt-4o\".'; - @override String get transportMode => 'Transportmodus'; diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index 7d30344..0f2c61d 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -828,13 +828,6 @@ class AppLocalizationsEn extends AppLocalizations { @override String get realtime => 'Realtime'; - @override - String get hideProviderInModelNames => 'Hide provider in model names'; - - @override - String get hideProviderInModelNamesDescription => - 'Show names like \"gpt-4o\" instead of \"openai/gpt-4o\".'; - @override String get transportMode => 'Transport mode'; diff --git a/lib/l10n/app_localizations_fr.dart b/lib/l10n/app_localizations_fr.dart index 58dff0e..a9f8fdd 100644 --- a/lib/l10n/app_localizations_fr.dart +++ b/lib/l10n/app_localizations_fr.dart @@ -843,14 +843,6 @@ class AppLocalizationsFr extends AppLocalizations { @override String get realtime => 'Temps réel'; - @override - String get hideProviderInModelNames => - 'Masquer le fournisseur dans les noms de modèles'; - - @override - String get hideProviderInModelNamesDescription => - 'Afficher des noms comme \"gpt-4o\" au lieu de \"openai/gpt-4o\".'; - @override String get transportMode => 'Mode de transport'; diff --git a/lib/l10n/app_localizations_it.dart b/lib/l10n/app_localizations_it.dart index 785c9af..65914a4 100644 --- a/lib/l10n/app_localizations_it.dart +++ b/lib/l10n/app_localizations_it.dart @@ -832,14 +832,6 @@ class AppLocalizationsIt extends AppLocalizations { @override String get realtime => 'Tempo reale'; - @override - String get hideProviderInModelNames => - 'Nascondi provider nei nomi dei modelli'; - - @override - String get hideProviderInModelNamesDescription => - 'Mostra nomi come \"gpt-4o\" invece di \"openai/gpt-4o\".'; - @override String get transportMode => 'Modalità di trasporto';