aves/lib/widgets/debug/report.dart
2023-10-20 18:23:39 +03:00

69 lines
2.2 KiB
Dart

import 'package:aves/services/android_debug_service.dart';
import 'package:aves/services/common/services.dart';
import 'package:aves/widgets/common/identity/aves_expansion_tile.dart';
import 'package:aves/widgets/viewer/info/common.dart';
import 'package:flutter/material.dart';
class DebugErrorReportingSection extends StatefulWidget {
const DebugErrorReportingSection({super.key});
@override
State<DebugErrorReportingSection> createState() => _DebugErrorReportingSectionState();
}
class _DebugErrorReportingSectionState extends State<DebugErrorReportingSection> with AutomaticKeepAliveClientMixin {
@override
Widget build(BuildContext context) {
super.build(context);
return AvesExpansionTile(
title: 'Reporting',
children: [
const Padding(
padding: EdgeInsets.symmetric(horizontal: 8),
child: ElevatedButton(
onPressed: AndroidDebugService.crash,
child: Text('Crash'),
),
),
const Padding(
padding: EdgeInsets.symmetric(horizontal: 8),
child: ElevatedButton(
onPressed: AndroidDebugService.exception,
child: Text('Throw exception'),
),
),
const Padding(
padding: EdgeInsets.symmetric(horizontal: 8),
child: ElevatedButton(
onPressed: AndroidDebugService.safeException,
child: Text('Throw exception (safe)'),
),
),
const Padding(
padding: EdgeInsets.symmetric(horizontal: 8),
child: ElevatedButton(
onPressed: AndroidDebugService.exceptionInCoroutine,
child: Text('Throw exception in coroutine'),
),
),
const Padding(
padding: EdgeInsets.symmetric(horizontal: 8),
child: ElevatedButton(
onPressed: AndroidDebugService.safeExceptionInCoroutine,
child: Text('Throw exception in coroutine (safe)'),
),
),
Padding(
padding: const EdgeInsets.only(left: 8, right: 8, bottom: 8),
child: InfoRowGroup(
info: reportService.state,
),
)
],
);
}
@override
bool get wantKeepAlive => true;
}