fluffychat/lib/pangea/learning_settings/tool_settings_enum.dart

70 lines
2.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:fluffychat/l10n/l10n.dart';
import 'package:fluffychat/widgets/matrix.dart';
enum ToolSetting {
interactiveTranslator,
interactiveGrammar,
immersionMode,
definitions,
autoIGC,
enableTTS,
enableAutocorrect;
String toolName(BuildContext context) {
switch (this) {
case ToolSetting.interactiveTranslator:
return L10n.of(context).interactiveTranslatorSliderHeader;
case ToolSetting.interactiveGrammar:
return L10n.of(context).interactiveGrammarSliderHeader;
case ToolSetting.immersionMode:
return L10n.of(context).toggleImmersionMode;
case ToolSetting.definitions:
return L10n.of(context).definitionsToolName;
case ToolSetting.autoIGC:
return L10n.of(context).autoIGCToolName;
case ToolSetting.enableTTS:
return L10n.of(context).enableTTSToolName;
case ToolSetting.enableAutocorrect:
return L10n.of(context).enableAutocorrectToolName;
}
}
//use l10n to get tool name
String toolDescription(BuildContext context) {
switch (this) {
case ToolSetting.interactiveTranslator:
return L10n.of(context).itToggleDescription;
case ToolSetting.interactiveGrammar:
return L10n.of(context).igcToggleDescription;
case ToolSetting.immersionMode:
return L10n.of(context).toggleImmersionModeDesc;
case ToolSetting.definitions:
return L10n.of(context).definitionsToolDescription;
case ToolSetting.autoIGC:
return L10n.of(context).autoIGCToolDescription;
case ToolSetting.enableTTS:
return L10n.of(context).enableTTSToolDescription;
case ToolSetting.enableAutocorrect:
return L10n.of(context).enableAutocorrectDescription;
}
}
bool get isAvailableSetting {
switch (this) {
case ToolSetting.interactiveTranslator:
case ToolSetting.interactiveGrammar:
case ToolSetting.definitions:
case ToolSetting.immersionMode:
return false;
case ToolSetting.autoIGC:
case ToolSetting.enableTTS:
case ToolSetting.enableAutocorrect:
return true;
}
}
bool get enabled =>
MatrixState.pangeaController.userController.isToolEnabled(this);
}