diff --git a/lib/view/settings/settings.dart b/lib/view/settings/settings.dart index 3028d1f..048d024 100644 --- a/lib/view/settings/settings.dart +++ b/lib/view/settings/settings.dart @@ -137,9 +137,26 @@ class _SettingsState extends State { visualDensity: const VisualDensity(horizontal: VisualDensity.minimumDensity), value: settings.val().devToolsEnabled, onChanged: (state) { - setState(() { + changeView() => setState(() { settings.val(write: true).devToolsEnabled = state ?? false; }); + + if(!state!) { + changeView(); + return; + } + + ConfirmDialog( + title: "Entwicklermodus", + content: "" + "Die Entwickleransicht bietet erweiterte Funktionen, die für den üblichen Gebrauch nicht benötigt werden.\n\nDie Verwendung der Tools kann darüber hinaus bei falscher Verwendung zu Fehlern führen.\n\n" + "Aktivieren auf eigene Verantwortung.", + confirmButton: "Ja, ich verstehe das Risiko", + cancelButton: "Nein, zurück zur App", + onConfirm: () { + changeView(); + }, + ).asDialog(context); }, ), ), diff --git a/lib/widget/confirmDialog.dart b/lib/widget/confirmDialog.dart index e0144e7..b6705a4 100644 --- a/lib/widget/confirmDialog.dart +++ b/lib/widget/confirmDialog.dart @@ -10,6 +10,10 @@ class ConfirmDialog extends StatelessWidget { final void Function() onConfirm; const ConfirmDialog({Key? key, required this.title, this.content = "", this.icon, this.confirmButton = "Ok", this.cancelButton = "Abbrechen", required this.onConfirm}) : super(key: key); + void asDialog(BuildContext context) { + showDialog(context: context, builder: (context) => build(context)); + } + @override Widget build(BuildContext context) { return AlertDialog(