itAutoPlay moved from ToolSettings to PLocalKey

pull/1384/head
Matthew 1 year ago
parent 50dc34bd94
commit 47dbe6dfd3

@ -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,9 +514,8 @@ class Choreographer {
chatController.room,
);
bool get itAutoPlayEnabled => pangeaController.permissionsController.isToolEnabled(
ToolSetting.itAutoPlay,
chatController.room,
bool get itAutoPlayEnabled => pangeaController.pStoreService.read(
MatrixProfile.itAutoPlay.title,
);
bool get definitionsEnabled =>

@ -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…
Cancel
Save