You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
fluffychat/lib/pangea/pages/settings_learning/settings_learning_view.dart

87 lines
3.8 KiB
Dart

import 'package:fluffychat/pangea/models/space_model.dart';
import 'package:fluffychat/pangea/models/user_model.dart';
import 'package:fluffychat/pangea/pages/settings_learning/settings_learning.dart';
import 'package:fluffychat/pangea/utils/error_handler.dart';
import 'package:fluffychat/pangea/widgets/user_settings/country_picker_tile.dart';
import 'package:fluffychat/pangea/widgets/user_settings/language_tile.dart';
import 'package:fluffychat/pangea/widgets/user_settings/p_settings_switch_list_tile.dart';
import 'package:fluffychat/widgets/layouts/max_width_body.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:future_loading_dialog/future_loading_dialog.dart';
import '../../../config/app_config.dart';
class SettingsLearningView extends StatelessWidget {
final SettingsLearningController controller;
const SettingsLearningView(this.controller, {super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
centerTitle: true,
title: Text(
L10n.of(context)!.learningSettings,
),
),
body: ListTileTheme(
iconColor: Theme.of(context).textTheme.bodyLarge!.color,
child: MaxWidthBody(
withScrolling: true,
child: Column(
children: [
LanguageTile(controller),
CountryPickerTile(controller),
const SizedBox(height: 8),
const Divider(height: 1),
const SizedBox(height: 8),
if (controller.pangeaController.permissionsController.isUser18())
SwitchListTile.adaptive(
activeColor: AppConfig.activeToggleColor,
title: Text(L10n.of(context)!.publicProfileTitle),
subtitle: Text(L10n.of(context)!.publicProfileDesc),
value: controller.pangeaController.userController.isPublic,
onChanged: (bool isPublicProfile) => showFutureLoadingDialog(
context: context,
future: () => controller.setPublicProfile(isPublicProfile),
onError: (err) =>
ErrorHandler.logError(e: err, s: StackTrace.current),
),
),
ListTile(
subtitle: Text(L10n.of(context)!.toggleToolSettingsDescription),
),
for (final setting in MatrixProfile.toolSettings)
setting.asToolSetting != null
? ProfileSettingsSwitchListTile.adaptive(
defaultValue: controller
.pangeaController.permissionsController
.userToolSetting(setting),
title: setting.asToolSetting!.toolName(context),
subtitle:
setting.asToolSetting!.toolDescription(context),
profileKey: setting.asToolSetting!.asMatrixProfileField,
)
: const SizedBox(),
ProfileSettingsSwitchListTile.adaptive(
defaultValue: MatrixProfile.itAutoPlay,
title:
L10n.of(context)!.interactiveTranslatorAutoPlaySliderHeader,
subtitle: L10n.of(context)!.interactiveTranslatorAutoPlayDesc,
profileKey: MatrixProfileEnum.itAutoPlay,
),
ProfileSettingsSwitchListTile.adaptive(
defaultValue: MatrixProfile.autoPlayMessages,
title: L10n.of(context)!.autoPlayTitle,
subtitle: L10n.of(context)!.autoPlayDesc,
profileKey: MatrixProfileEnum.autoPlayMessages,
),
],
),
),
),
);
}
}