70 lines
2.2 KiB
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);
|
|
}
|