ente/lib/ui/settings/support_section_widget.dart

83 lines
2.8 KiB
Dart
Raw Normal View History

2022-11-01 06:13:06 +00:00
// @dart=2.9
import 'package:ente_auth/core/constants.dart';
import 'package:ente_auth/core/logging/super_logging.dart';
import 'package:ente_auth/l10n/l10n.dart';
2022-11-01 06:13:06 +00:00
import 'package:ente_auth/theme/ente_theme.dart';
import 'package:ente_auth/ui/components/captioned_text_widget.dart';
import 'package:ente_auth/ui/components/expandable_menu_item_widget.dart';
import 'package:ente_auth/ui/components/menu_item_widget.dart';
import 'package:ente_auth/ui/components/toggle_switch_widget.dart';
2022-11-01 06:13:06 +00:00
import 'package:ente_auth/ui/settings/common_settings.dart';
import 'package:ente_auth/utils/email_util.dart';
import 'package:flutter/material.dart';
class SupportSectionWidget extends StatefulWidget {
2022-11-01 06:13:06 +00:00
const SupportSectionWidget({Key key}) : super(key: key);
@override
State<SupportSectionWidget> createState() => _SupportSectionWidgetState();
}
class _SupportSectionWidgetState extends State<SupportSectionWidget> {
2022-11-01 06:13:06 +00:00
@override
Widget build(BuildContext context) {
final l10n = context.l10n;
2022-11-01 06:13:06 +00:00
return ExpandableMenuItemWidget(
title: l10n.support,
2022-11-01 06:13:06 +00:00
selectionOptionsWidget: _getSectionOptions(context),
leadingIcon: Icons.help_outline_outlined,
);
}
Widget _getSectionOptions(BuildContext context) {
final l10n = context.l10n;
2022-11-01 06:13:06 +00:00
return Column(
children: [
sectionOptionSpacing,
MenuItemWidget(
captionedTextWidget: CaptionedTextWidget(
title: l10n.email,
2022-11-01 06:13:06 +00:00
),
pressedColor: getEnteColorScheme(context).fillFaint,
trailingIcon: Icons.chevron_right_outlined,
trailingIconIsMuted: true,
onTap: () async {
await sendEmail(context, to: supportEmail);
},
),
sectionOptionSpacing,
MenuItemWidget(
captionedTextWidget: CaptionedTextWidget(
title: l10n.reportABug,
2022-11-01 06:13:06 +00:00
),
pressedColor: getEnteColorScheme(context).fillFaint,
trailingIcon: Icons.chevron_right_outlined,
trailingIconIsMuted: true,
onTap: () async {
await sendLogs(context, l10n.reportBug, "auth@ente.io");
2022-11-01 06:13:06 +00:00
},
onDoubleTap: () async {
final zipFilePath = await getZippedLogsFile(context);
2022-11-22 08:36:36 +00:00
await shareLogs(context, "auth@ente.io", zipFilePath);
2022-11-01 06:13:06 +00:00
},
),
sectionOptionSpacing,
MenuItemWidget(
captionedTextWidget: CaptionedTextWidget(
title: l10n.crashAndErrorReporting,
),
trailingSwitch: ToggleSwitchWidget(
value: SuperLogging.shouldReportErrors(),
onChanged: (value) async {
await SuperLogging.setShouldReportErrors(value);
setState(() {});
},
),
),
sectionOptionSpacing,
2022-11-01 06:13:06 +00:00
],
);
}
}