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/it_step.dart';
import 'package:fluffychat/pangea/models/representation_content_model.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/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/any_state_holder.dart';
import 'package:fluffychat/pangea/utils/error_handler.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart';
import 'package:fluffychat/pangea/utils/overlay.dart'; import 'package:fluffychat/pangea/utils/overlay.dart';
@ -513,9 +514,8 @@ class Choreographer {
chatController.room, chatController.room,
); );
bool get itAutoPlayEnabled => pangeaController.permissionsController.isToolEnabled( bool get itAutoPlayEnabled => pangeaController.pStoreService.read(
ToolSetting.itAutoPlay, MatrixProfile.itAutoPlay.title,
chatController.room,
); );
bool get definitionsEnabled => bool get definitionsEnabled =>

@ -11,4 +11,5 @@ class PLocalKey {
static const String dismissedPaywall = 'dismissedPaywall'; static const String dismissedPaywall = 'dismissedPaywall';
static const String paywallBackoff = 'paywallBackoff'; static const String paywallBackoff = 'paywallBackoff';
static const String autoPlayMessages = 'autoPlayMessages'; static const String autoPlayMessages = 'autoPlayMessages';
static const String itAutoPlay = 'itAutoPlay';
} }

@ -9,8 +9,7 @@ class LocalSettings {
} }
bool userLanguageToolSetting(ToolSetting setting) => bool userLanguageToolSetting(ToolSetting setting) =>
_pangeaController.pStoreService.read(setting.toString()) _pangeaController.pStoreService.read(setting.toString()) ?? true;
?? setting != ToolSetting.itAutoPlay;
// bool get userEnableIT => // bool get userEnableIT =>
// _pangeaController.pStoreService.read(ToolSetting.interactiveTranslator.toString()) ?? true; // _pangeaController.pStoreService.read(ToolSetting.interactiveTranslator.toString()) ?? true;

@ -123,10 +123,10 @@ class UserController extends BaseController {
: null; : null;
final bool? autoPlay = migratedProfileInfo(MatrixProfile.autoPlayMessages); final bool? autoPlay = migratedProfileInfo(MatrixProfile.autoPlayMessages);
final bool? itAutoPlay = migratedProfileInfo(MatrixProfile.itAutoPlay);
final bool? trial = migratedProfileInfo(MatrixProfile.activatedFreeTrial); final bool? trial = migratedProfileInfo(MatrixProfile.activatedFreeTrial);
final bool? interactiveTranslator = final bool? interactiveTranslator =
migratedProfileInfo(MatrixProfile.interactiveTranslator); migratedProfileInfo(MatrixProfile.interactiveTranslator);
final bool? itAutoPlay = migratedProfileInfo(MatrixProfile.itAutoPlay);
final bool? interactiveGrammar = final bool? interactiveGrammar =
migratedProfileInfo(MatrixProfile.interactiveGrammar); migratedProfileInfo(MatrixProfile.interactiveGrammar);
final bool? immersionMode = final bool? immersionMode =
@ -143,9 +143,9 @@ class UserController extends BaseController {
await updateMatrixProfile( await updateMatrixProfile(
dateOfBirth: dob, dateOfBirth: dob,
autoPlayMessages: autoPlay, autoPlayMessages: autoPlay,
itAutoPlay: itAutoPlay,
activatedFreeTrial: trial, activatedFreeTrial: trial,
interactiveTranslator: interactiveTranslator, interactiveTranslator: interactiveTranslator,
itAutoPlay: itAutoPlay,
interactiveGrammar: interactiveGrammar, interactiveGrammar: interactiveGrammar,
immersionMode: immersionMode, immersionMode: immersionMode,
definitions: definitions, definitions: definitions,
@ -225,9 +225,9 @@ class UserController extends BaseController {
Future<void> updateMatrixProfile({ Future<void> updateMatrixProfile({
String? dateOfBirth, String? dateOfBirth,
bool? autoPlayMessages, bool? autoPlayMessages,
bool? itAutoPlay,
bool? activatedFreeTrial, bool? activatedFreeTrial,
bool? interactiveTranslator, bool? interactiveTranslator,
bool? itAutoPlay,
bool? interactiveGrammar, bool? interactiveGrammar,
bool? immersionMode, bool? immersionMode,
bool? definitions, bool? definitions,
@ -253,6 +253,12 @@ class UserController extends BaseController {
autoPlayMessages, autoPlayMessages,
); );
} }
if (itAutoPlay != null) {
await _pangeaController.pStoreService.save(
MatrixProfile.itAutoPlay.title,
itAutoPlay,
);
}
if (activatedFreeTrial != null) { if (activatedFreeTrial != null) {
await _pangeaController.pStoreService.save( await _pangeaController.pStoreService.save(
MatrixProfile.activatedFreeTrial.title, MatrixProfile.activatedFreeTrial.title,
@ -265,12 +271,6 @@ class UserController extends BaseController {
interactiveTranslator, interactiveTranslator,
); );
} }
if (itAutoPlay != null) {
await _pangeaController.pStoreService.save(
MatrixProfile.itAutoPlay.title,
itAutoPlay,
);
}
if (interactiveGrammar != null) { if (interactiveGrammar != null) {
await _pangeaController.pStoreService.save( await _pangeaController.pStoreService.save(
MatrixProfile.interactiveGrammar.title, MatrixProfile.interactiveGrammar.title,

@ -31,13 +31,13 @@ class ClassSettingsModel {
}); });
static ClassSettingsModel get newClass => ClassSettingsModel( static ClassSettingsModel get newClass => ClassSettingsModel(
city: null, city: null,
country: null, country: null,
dominantLanguage: ClassDefaultValues.defaultDominantLanguage, dominantLanguage: ClassDefaultValues.defaultDominantLanguage,
languageLevel: null, languageLevel: null,
schoolName: null, schoolName: null,
targetLanguage: ClassDefaultValues.defaultTargetLanguage, targetLanguage: ClassDefaultValues.defaultTargetLanguage,
); );
factory ClassSettingsModel.fromJson(Map<String, dynamic> json) { factory ClassSettingsModel.fromJson(Map<String, dynamic> json) {
return ClassSettingsModel( return ClassSettingsModel(
@ -100,9 +100,9 @@ class ClassSettingsModel {
} }
StateEvent get toStateEvent => StateEvent( StateEvent get toStateEvent => StateEvent(
content: toJson(), content: toJson(),
type: PangeaEventTypes.classSettings, type: PangeaEventTypes.classSettings,
); );
} }
class PangeaRoomRules { class PangeaRoomRules {
@ -120,7 +120,6 @@ class PangeaRoomRules {
bool isInviteOnlyStudents; bool isInviteOnlyStudents;
// 0 = forbidden, 1 = allow individual to choose, 2 = require // 0 = forbidden, 1 = allow individual to choose, 2 = require
int interactiveTranslator; int interactiveTranslator;
int itAutoPlay;
int interactiveGrammar; int interactiveGrammar;
int immersionMode; int immersionMode;
int definitions; int definitions;
@ -139,7 +138,6 @@ class PangeaRoomRules {
this.isVoiceNotes = true, this.isVoiceNotes = true,
this.isInviteOnlyStudents = true, this.isInviteOnlyStudents = true,
this.interactiveTranslator = ClassDefaultValues.languageToolPermissions, this.interactiveTranslator = ClassDefaultValues.languageToolPermissions,
this.itAutoPlay = ClassDefaultValues.languageToolPermissions,
this.interactiveGrammar = ClassDefaultValues.languageToolPermissions, this.interactiveGrammar = ClassDefaultValues.languageToolPermissions,
this.immersionMode = ClassDefaultValues.languageToolPermissions, this.immersionMode = ClassDefaultValues.languageToolPermissions,
this.definitions = ClassDefaultValues.languageToolPermissions, this.definitions = ClassDefaultValues.languageToolPermissions,
@ -191,9 +189,6 @@ class PangeaRoomRules {
case ToolSetting.interactiveTranslator: case ToolSetting.interactiveTranslator:
interactiveTranslator = value; interactiveTranslator = value;
break; break;
case ToolSetting.itAutoPlay:
itAutoPlay = value;
break;
case ToolSetting.interactiveGrammar: case ToolSetting.interactiveGrammar:
interactiveGrammar = value; interactiveGrammar = value;
break; break;
@ -212,9 +207,9 @@ class PangeaRoomRules {
} }
StateEvent get toStateEvent => StateEvent( StateEvent get toStateEvent => StateEvent(
content: toJson(), content: toJson(),
type: PangeaEventTypes.rules, type: PangeaEventTypes.rules,
); );
factory PangeaRoomRules.fromJson(Map<String, dynamic> json) => factory PangeaRoomRules.fromJson(Map<String, dynamic> json) =>
PangeaRoomRules( PangeaRoomRules(
@ -232,16 +227,14 @@ class PangeaRoomRules {
isInviteOnlyStudents: json['is_invite_only_students'] ?? true, isInviteOnlyStudents: json['is_invite_only_students'] ?? true,
interactiveTranslator: json['interactive_translator'] ?? interactiveTranslator: json['interactive_translator'] ??
ClassDefaultValues.languageToolPermissions, ClassDefaultValues.languageToolPermissions,
itAutoPlay: json['it_auto_play'] ??
ClassDefaultValues.languageToolPermissions,
interactiveGrammar: json['interactive_grammar'] ?? interactiveGrammar: json['interactive_grammar'] ??
ClassDefaultValues.languageToolPermissions, ClassDefaultValues.languageToolPermissions,
immersionMode: json['immersion_mode'] ?? immersionMode: json['immersion_mode'] ??
ClassDefaultValues.languageToolPermissions, ClassDefaultValues.languageToolPermissions,
definitions: definitions:
json['definitions'] ?? ClassDefaultValues.languageToolPermissions, json['definitions'] ?? ClassDefaultValues.languageToolPermissions,
translations: translations:
json['translations'] ?? ClassDefaultValues.languageToolPermissions, json['translations'] ?? ClassDefaultValues.languageToolPermissions,
); );
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -259,7 +252,6 @@ class PangeaRoomRules {
data['is_voice_notes'] = isVoiceNotes; data['is_voice_notes'] = isVoiceNotes;
data['is_invite_only_students'] = isInviteOnlyStudents; data['is_invite_only_students'] = isInviteOnlyStudents;
data['interactive_translator'] = interactiveTranslator; data['interactive_translator'] = interactiveTranslator;
data['it_auto_play'] = itAutoPlay;
data['interactive_grammar'] = interactiveGrammar; data['interactive_grammar'] = interactiveGrammar;
data['immersion_mode'] = immersionMode; data['immersion_mode'] = immersionMode;
data['definitions'] = definitions; data['definitions'] = definitions;
@ -271,8 +263,6 @@ class PangeaRoomRules {
switch (setting) { switch (setting) {
case ToolSetting.interactiveTranslator: case ToolSetting.interactiveTranslator:
return interactiveTranslator; return interactiveTranslator;
case ToolSetting.itAutoPlay:
return itAutoPlay;
case ToolSetting.interactiveGrammar: case ToolSetting.interactiveGrammar:
return interactiveGrammar; return interactiveGrammar;
case ToolSetting.immersionMode: case ToolSetting.immersionMode:
@ -287,9 +277,9 @@ class PangeaRoomRules {
} }
String languageToolPermissionsText( String languageToolPermissionsText(
BuildContext context, BuildContext context,
ToolSetting setting, ToolSetting setting,
) { ) {
switch (getToolSettings(setting)) { switch (getToolSettings(setting)) {
case 0: case 0:
return L10n.of(context)!.interactiveTranslatorNotAllowed; return L10n.of(context)!.interactiveTranslatorNotAllowed;
@ -305,7 +295,6 @@ class PangeaRoomRules {
enum ToolSetting { enum ToolSetting {
interactiveTranslator, interactiveTranslator,
itAutoPlay,
interactiveGrammar, interactiveGrammar,
immersionMode, immersionMode,
definitions, definitions,
@ -317,8 +306,6 @@ extension SettingCopy on ToolSetting {
switch (this) { switch (this) {
case ToolSetting.interactiveTranslator: case ToolSetting.interactiveTranslator:
return L10n.of(context)!.interactiveTranslatorSliderHeader; return L10n.of(context)!.interactiveTranslatorSliderHeader;
case ToolSetting.itAutoPlay:
return L10n.of(context)!.interactiveTranslatorAutoPlaySliderHeader;
case ToolSetting.interactiveGrammar: case ToolSetting.interactiveGrammar:
return L10n.of(context)!.interactiveGrammarSliderHeader; return L10n.of(context)!.interactiveGrammarSliderHeader;
case ToolSetting.immersionMode: case ToolSetting.immersionMode:
@ -337,8 +324,6 @@ extension SettingCopy on ToolSetting {
return L10n.of(context)!.itToggleDescription; return L10n.of(context)!.itToggleDescription;
case ToolSetting.interactiveGrammar: case ToolSetting.interactiveGrammar:
return L10n.of(context)!.igcToggleDescription; return L10n.of(context)!.igcToggleDescription;
case ToolSetting.itAutoPlay:
return L10n.of(context)!.interactiveTranslatorAutoPlayDesc;
case ToolSetting.immersionMode: case ToolSetting.immersionMode:
return L10n.of(context)!.toggleImmersionModeDesc; return L10n.of(context)!.toggleImmersionModeDesc;
case ToolSetting.definitions: case ToolSetting.definitions:

@ -54,9 +54,9 @@ class PUserModel {
enum MatrixProfile { enum MatrixProfile {
dateOfBirth, dateOfBirth,
autoPlayMessages, autoPlayMessages,
itAutoPlay,
activatedFreeTrial, activatedFreeTrial,
interactiveTranslator, interactiveTranslator,
itAutoPlay,
interactiveGrammar, interactiveGrammar,
immersionMode, immersionMode,
definitions, definitions,
@ -78,12 +78,12 @@ extension MatrixProfileExtension on MatrixProfile {
return ModelKey.userDateOfBirth; return ModelKey.userDateOfBirth;
case MatrixProfile.autoPlayMessages: case MatrixProfile.autoPlayMessages:
return PLocalKey.autoPlayMessages; return PLocalKey.autoPlayMessages;
case MatrixProfile.itAutoPlay:
return PLocalKey.itAutoPlay;
case MatrixProfile.activatedFreeTrial: case MatrixProfile.activatedFreeTrial:
return PLocalKey.activatedTrialKey; return PLocalKey.activatedTrialKey;
case MatrixProfile.interactiveTranslator: case MatrixProfile.interactiveTranslator:
return ToolSetting.interactiveTranslator.toString(); return ToolSetting.interactiveTranslator.toString();
case MatrixProfile.itAutoPlay:
return ToolSetting.itAutoPlay.toString();
case MatrixProfile.interactiveGrammar: case MatrixProfile.interactiveGrammar:
return ToolSetting.interactiveGrammar.toString(); return ToolSetting.interactiveGrammar.toString();
case MatrixProfile.immersionMode: case MatrixProfile.immersionMode:

@ -61,6 +61,16 @@ class SettingsLearningView extends StatelessWidget {
pStoreKey: setting.toString(), pStoreKey: setting.toString(),
local: false, 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( PSettingsSwitchListTile.adaptive(
defaultValue: controller.pangeaController.pStoreService.read( defaultValue: controller.pangeaController.pStoreService.read(
PLocalKey.autoPlayMessages, PLocalKey.autoPlayMessages,

@ -1,6 +1,7 @@
import 'dart:developer'; import 'dart:developer';
import 'package:fluffychat/config/app_config.dart'; 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/enum/span_data_type.dart';
import 'package:fluffychat/pangea/models/span_data.dart'; import 'package:fluffychat/pangea/models/span_data.dart';
import 'package:fluffychat/pangea/utils/bot_style.dart'; import 'package:fluffychat/pangea/utils/bot_style.dart';
@ -15,7 +16,6 @@ import '../../../widgets/matrix.dart';
import '../../choreographer/widgets/choice_array.dart'; import '../../choreographer/widgets/choice_array.dart';
import '../../controllers/pangea_controller.dart'; import '../../controllers/pangea_controller.dart';
import '../../enum/span_choice_type.dart'; import '../../enum/span_choice_type.dart';
import '../../models/class_model.dart';
import '../../models/span_card_model.dart'; import '../../models/span_card_model.dart';
import '../common/bot_face_svg.dart'; import '../common/bot_face_svg.dart';
import 'card_header.dart'; import 'card_header.dart';
@ -472,7 +472,7 @@ class DontShowSwitchListTileState extends State<DontShowSwitchListTile> {
value: switchValue, value: switchValue,
onChanged: (value) => { onChanged: (value) => {
widget.controller.pStoreService.save( widget.controller.pStoreService.save(
ToolSetting.itAutoPlay.toString(), PLocalKey.itAutoPlay.toString(),
value, value,
), ),
setState(() => switchValue = value), setState(() => switchValue = value),

Loading…
Cancel
Save