itAutoPlay moved from ToolSettings to PLocalKey
This commit is contained in:
parent
50dc34bd94
commit
bc2d4a3847
8 changed files with 48 additions and 53 deletions
|
|
@ -15,6 +15,7 @@ import 'package:fluffychat/pangea/models/class_model.dart';
|
|||
import 'package:fluffychat/pangea/models/it_step.dart';
|
||||
import 'package:fluffychat/pangea/models/representation_content_model.dart';
|
||||
import 'package:fluffychat/pangea/models/tokens_event_content_model.dart';
|
||||
import 'package:fluffychat/pangea/models/user_model.dart';
|
||||
import 'package:fluffychat/pangea/utils/any_state_holder.dart';
|
||||
import 'package:fluffychat/pangea/utils/error_handler.dart';
|
||||
import 'package:fluffychat/pangea/utils/overlay.dart';
|
||||
|
|
@ -513,10 +514,9 @@ class Choreographer {
|
|||
chatController.room,
|
||||
);
|
||||
|
||||
bool get itAutoPlayEnabled => pangeaController.permissionsController.isToolEnabled(
|
||||
ToolSetting.itAutoPlay,
|
||||
chatController.room,
|
||||
);
|
||||
bool get itAutoPlayEnabled => pangeaController.pStoreService.read(
|
||||
MatrixProfile.itAutoPlay.title,
|
||||
) ?? false;
|
||||
|
||||
bool get definitionsEnabled =>
|
||||
pangeaController.permissionsController.isToolEnabled(
|
||||
|
|
|
|||
|
|
@ -11,4 +11,5 @@ class PLocalKey {
|
|||
static const String dismissedPaywall = 'dismissedPaywall';
|
||||
static const String paywallBackoff = 'paywallBackoff';
|
||||
static const String autoPlayMessages = 'autoPlayMessages';
|
||||
static const String itAutoPlay = 'itAutoPlay';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,8 +9,7 @@ class LocalSettings {
|
|||
}
|
||||
|
||||
bool userLanguageToolSetting(ToolSetting setting) =>
|
||||
_pangeaController.pStoreService.read(setting.toString())
|
||||
?? setting != ToolSetting.itAutoPlay;
|
||||
_pangeaController.pStoreService.read(setting.toString()) ?? true;
|
||||
|
||||
// bool get userEnableIT =>
|
||||
// _pangeaController.pStoreService.read(ToolSetting.interactiveTranslator.toString()) ?? true;
|
||||
|
|
|
|||
|
|
@ -123,10 +123,10 @@ class UserController extends BaseController {
|
|||
: null;
|
||||
|
||||
final bool? autoPlay = migratedProfileInfo(MatrixProfile.autoPlayMessages);
|
||||
final bool? itAutoPlay = migratedProfileInfo(MatrixProfile.itAutoPlay);
|
||||
final bool? trial = migratedProfileInfo(MatrixProfile.activatedFreeTrial);
|
||||
final bool? interactiveTranslator =
|
||||
migratedProfileInfo(MatrixProfile.interactiveTranslator);
|
||||
final bool? itAutoPlay = migratedProfileInfo(MatrixProfile.itAutoPlay);
|
||||
final bool? interactiveGrammar =
|
||||
migratedProfileInfo(MatrixProfile.interactiveGrammar);
|
||||
final bool? immersionMode =
|
||||
|
|
@ -143,9 +143,9 @@ class UserController extends BaseController {
|
|||
await updateMatrixProfile(
|
||||
dateOfBirth: dob,
|
||||
autoPlayMessages: autoPlay,
|
||||
itAutoPlay: itAutoPlay,
|
||||
activatedFreeTrial: trial,
|
||||
interactiveTranslator: interactiveTranslator,
|
||||
itAutoPlay: itAutoPlay,
|
||||
interactiveGrammar: interactiveGrammar,
|
||||
immersionMode: immersionMode,
|
||||
definitions: definitions,
|
||||
|
|
@ -225,9 +225,9 @@ class UserController extends BaseController {
|
|||
Future<void> updateMatrixProfile({
|
||||
String? dateOfBirth,
|
||||
bool? autoPlayMessages,
|
||||
bool? itAutoPlay,
|
||||
bool? activatedFreeTrial,
|
||||
bool? interactiveTranslator,
|
||||
bool? itAutoPlay,
|
||||
bool? interactiveGrammar,
|
||||
bool? immersionMode,
|
||||
bool? definitions,
|
||||
|
|
@ -253,6 +253,12 @@ class UserController extends BaseController {
|
|||
autoPlayMessages,
|
||||
);
|
||||
}
|
||||
if (itAutoPlay != null) {
|
||||
await _pangeaController.pStoreService.save(
|
||||
MatrixProfile.itAutoPlay.title,
|
||||
itAutoPlay,
|
||||
);
|
||||
}
|
||||
if (activatedFreeTrial != null) {
|
||||
await _pangeaController.pStoreService.save(
|
||||
MatrixProfile.activatedFreeTrial.title,
|
||||
|
|
@ -265,12 +271,6 @@ class UserController extends BaseController {
|
|||
interactiveTranslator,
|
||||
);
|
||||
}
|
||||
if (itAutoPlay != null) {
|
||||
await _pangeaController.pStoreService.save(
|
||||
MatrixProfile.itAutoPlay.title,
|
||||
itAutoPlay,
|
||||
);
|
||||
}
|
||||
if (interactiveGrammar != null) {
|
||||
await _pangeaController.pStoreService.save(
|
||||
MatrixProfile.interactiveGrammar.title,
|
||||
|
|
|
|||
|
|
@ -31,13 +31,13 @@ class ClassSettingsModel {
|
|||
});
|
||||
|
||||
static ClassSettingsModel get newClass => ClassSettingsModel(
|
||||
city: null,
|
||||
country: null,
|
||||
dominantLanguage: ClassDefaultValues.defaultDominantLanguage,
|
||||
languageLevel: null,
|
||||
schoolName: null,
|
||||
targetLanguage: ClassDefaultValues.defaultTargetLanguage,
|
||||
);
|
||||
city: null,
|
||||
country: null,
|
||||
dominantLanguage: ClassDefaultValues.defaultDominantLanguage,
|
||||
languageLevel: null,
|
||||
schoolName: null,
|
||||
targetLanguage: ClassDefaultValues.defaultTargetLanguage,
|
||||
);
|
||||
|
||||
factory ClassSettingsModel.fromJson(Map<String, dynamic> json) {
|
||||
return ClassSettingsModel(
|
||||
|
|
@ -100,9 +100,9 @@ class ClassSettingsModel {
|
|||
}
|
||||
|
||||
StateEvent get toStateEvent => StateEvent(
|
||||
content: toJson(),
|
||||
type: PangeaEventTypes.classSettings,
|
||||
);
|
||||
content: toJson(),
|
||||
type: PangeaEventTypes.classSettings,
|
||||
);
|
||||
}
|
||||
|
||||
class PangeaRoomRules {
|
||||
|
|
@ -120,7 +120,6 @@ class PangeaRoomRules {
|
|||
bool isInviteOnlyStudents;
|
||||
// 0 = forbidden, 1 = allow individual to choose, 2 = require
|
||||
int interactiveTranslator;
|
||||
int itAutoPlay;
|
||||
int interactiveGrammar;
|
||||
int immersionMode;
|
||||
int definitions;
|
||||
|
|
@ -139,7 +138,6 @@ class PangeaRoomRules {
|
|||
this.isVoiceNotes = true,
|
||||
this.isInviteOnlyStudents = true,
|
||||
this.interactiveTranslator = ClassDefaultValues.languageToolPermissions,
|
||||
this.itAutoPlay = ClassDefaultValues.languageToolPermissions,
|
||||
this.interactiveGrammar = ClassDefaultValues.languageToolPermissions,
|
||||
this.immersionMode = ClassDefaultValues.languageToolPermissions,
|
||||
this.definitions = ClassDefaultValues.languageToolPermissions,
|
||||
|
|
@ -191,9 +189,6 @@ class PangeaRoomRules {
|
|||
case ToolSetting.interactiveTranslator:
|
||||
interactiveTranslator = value;
|
||||
break;
|
||||
case ToolSetting.itAutoPlay:
|
||||
itAutoPlay = value;
|
||||
break;
|
||||
case ToolSetting.interactiveGrammar:
|
||||
interactiveGrammar = value;
|
||||
break;
|
||||
|
|
@ -212,9 +207,9 @@ class PangeaRoomRules {
|
|||
}
|
||||
|
||||
StateEvent get toStateEvent => StateEvent(
|
||||
content: toJson(),
|
||||
type: PangeaEventTypes.rules,
|
||||
);
|
||||
content: toJson(),
|
||||
type: PangeaEventTypes.rules,
|
||||
);
|
||||
|
||||
factory PangeaRoomRules.fromJson(Map<String, dynamic> json) =>
|
||||
PangeaRoomRules(
|
||||
|
|
@ -232,16 +227,14 @@ class PangeaRoomRules {
|
|||
isInviteOnlyStudents: json['is_invite_only_students'] ?? true,
|
||||
interactiveTranslator: json['interactive_translator'] ??
|
||||
ClassDefaultValues.languageToolPermissions,
|
||||
itAutoPlay: json['it_auto_play'] ??
|
||||
ClassDefaultValues.languageToolPermissions,
|
||||
interactiveGrammar: json['interactive_grammar'] ??
|
||||
ClassDefaultValues.languageToolPermissions,
|
||||
immersionMode: json['immersion_mode'] ??
|
||||
ClassDefaultValues.languageToolPermissions,
|
||||
definitions:
|
||||
json['definitions'] ?? ClassDefaultValues.languageToolPermissions,
|
||||
json['definitions'] ?? ClassDefaultValues.languageToolPermissions,
|
||||
translations:
|
||||
json['translations'] ?? ClassDefaultValues.languageToolPermissions,
|
||||
json['translations'] ?? ClassDefaultValues.languageToolPermissions,
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
|
|
@ -259,7 +252,6 @@ class PangeaRoomRules {
|
|||
data['is_voice_notes'] = isVoiceNotes;
|
||||
data['is_invite_only_students'] = isInviteOnlyStudents;
|
||||
data['interactive_translator'] = interactiveTranslator;
|
||||
data['it_auto_play'] = itAutoPlay;
|
||||
data['interactive_grammar'] = interactiveGrammar;
|
||||
data['immersion_mode'] = immersionMode;
|
||||
data['definitions'] = definitions;
|
||||
|
|
@ -271,8 +263,6 @@ class PangeaRoomRules {
|
|||
switch (setting) {
|
||||
case ToolSetting.interactiveTranslator:
|
||||
return interactiveTranslator;
|
||||
case ToolSetting.itAutoPlay:
|
||||
return itAutoPlay;
|
||||
case ToolSetting.interactiveGrammar:
|
||||
return interactiveGrammar;
|
||||
case ToolSetting.immersionMode:
|
||||
|
|
@ -287,9 +277,9 @@ class PangeaRoomRules {
|
|||
}
|
||||
|
||||
String languageToolPermissionsText(
|
||||
BuildContext context,
|
||||
ToolSetting setting,
|
||||
) {
|
||||
BuildContext context,
|
||||
ToolSetting setting,
|
||||
) {
|
||||
switch (getToolSettings(setting)) {
|
||||
case 0:
|
||||
return L10n.of(context)!.interactiveTranslatorNotAllowed;
|
||||
|
|
@ -305,7 +295,6 @@ class PangeaRoomRules {
|
|||
|
||||
enum ToolSetting {
|
||||
interactiveTranslator,
|
||||
itAutoPlay,
|
||||
interactiveGrammar,
|
||||
immersionMode,
|
||||
definitions,
|
||||
|
|
@ -317,8 +306,6 @@ extension SettingCopy on ToolSetting {
|
|||
switch (this) {
|
||||
case ToolSetting.interactiveTranslator:
|
||||
return L10n.of(context)!.interactiveTranslatorSliderHeader;
|
||||
case ToolSetting.itAutoPlay:
|
||||
return L10n.of(context)!.interactiveTranslatorAutoPlaySliderHeader;
|
||||
case ToolSetting.interactiveGrammar:
|
||||
return L10n.of(context)!.interactiveGrammarSliderHeader;
|
||||
case ToolSetting.immersionMode:
|
||||
|
|
@ -337,8 +324,6 @@ extension SettingCopy on ToolSetting {
|
|||
return L10n.of(context)!.itToggleDescription;
|
||||
case ToolSetting.interactiveGrammar:
|
||||
return L10n.of(context)!.igcToggleDescription;
|
||||
case ToolSetting.itAutoPlay:
|
||||
return L10n.of(context)!.interactiveTranslatorAutoPlayDesc;
|
||||
case ToolSetting.immersionMode:
|
||||
return L10n.of(context)!.toggleImmersionModeDesc;
|
||||
case ToolSetting.definitions:
|
||||
|
|
|
|||
|
|
@ -54,9 +54,9 @@ class PUserModel {
|
|||
enum MatrixProfile {
|
||||
dateOfBirth,
|
||||
autoPlayMessages,
|
||||
itAutoPlay,
|
||||
activatedFreeTrial,
|
||||
interactiveTranslator,
|
||||
itAutoPlay,
|
||||
interactiveGrammar,
|
||||
immersionMode,
|
||||
definitions,
|
||||
|
|
@ -78,12 +78,12 @@ extension MatrixProfileExtension on MatrixProfile {
|
|||
return ModelKey.userDateOfBirth;
|
||||
case MatrixProfile.autoPlayMessages:
|
||||
return PLocalKey.autoPlayMessages;
|
||||
case MatrixProfile.itAutoPlay:
|
||||
return PLocalKey.itAutoPlay;
|
||||
case MatrixProfile.activatedFreeTrial:
|
||||
return PLocalKey.activatedTrialKey;
|
||||
case MatrixProfile.interactiveTranslator:
|
||||
return ToolSetting.interactiveTranslator.toString();
|
||||
case MatrixProfile.itAutoPlay:
|
||||
return ToolSetting.itAutoPlay.toString();
|
||||
case MatrixProfile.interactiveGrammar:
|
||||
return ToolSetting.interactiveGrammar.toString();
|
||||
case MatrixProfile.immersionMode:
|
||||
|
|
|
|||
|
|
@ -61,6 +61,16 @@ class SettingsLearningView extends StatelessWidget {
|
|||
pStoreKey: setting.toString(),
|
||||
local: false,
|
||||
),
|
||||
PSettingsSwitchListTile.adaptive(
|
||||
defaultValue: controller.pangeaController.pStoreService.read(
|
||||
PLocalKey.itAutoPlay,
|
||||
) ??
|
||||
false,
|
||||
title: L10n.of(context)!.interactiveTranslatorAutoPlaySliderHeader,
|
||||
subtitle: L10n.of(context)!.interactiveTranslatorAutoPlayDesc,
|
||||
pStoreKey: PLocalKey.itAutoPlay,
|
||||
local: false,
|
||||
),
|
||||
PSettingsSwitchListTile.adaptive(
|
||||
defaultValue: controller.pangeaController.pStoreService.read(
|
||||
PLocalKey.autoPlayMessages,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import 'dart:developer';
|
||||
|
||||
import 'package:fluffychat/config/app_config.dart';
|
||||
import 'package:fluffychat/pangea/constants/local.key.dart';
|
||||
import 'package:fluffychat/pangea/enum/span_data_type.dart';
|
||||
import 'package:fluffychat/pangea/models/span_data.dart';
|
||||
import 'package:fluffychat/pangea/utils/bot_style.dart';
|
||||
|
|
@ -15,7 +16,6 @@ import '../../../widgets/matrix.dart';
|
|||
import '../../choreographer/widgets/choice_array.dart';
|
||||
import '../../controllers/pangea_controller.dart';
|
||||
import '../../enum/span_choice_type.dart';
|
||||
import '../../models/class_model.dart';
|
||||
import '../../models/span_card_model.dart';
|
||||
import '../common/bot_face_svg.dart';
|
||||
import 'card_header.dart';
|
||||
|
|
@ -472,7 +472,7 @@ class DontShowSwitchListTileState extends State<DontShowSwitchListTile> {
|
|||
value: switchValue,
|
||||
onChanged: (value) => {
|
||||
widget.controller.pStoreService.save(
|
||||
ToolSetting.itAutoPlay.toString(),
|
||||
PLocalKey.itAutoPlay.toString(),
|
||||
value,
|
||||
),
|
||||
setState(() => switchValue = value),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue