import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; import '../../data/accountModel.dart'; import '../../data/incommingPackets/serverInfoPacket.dart'; import '../../widget/ListItem.dart'; class Settings extends StatefulWidget { const Settings({Key? key}) : super(key: key); @override State createState() => _SettingsState(); } class _SettingsState extends State { @override void initState() { super.initState(); Provider.of(context, listen: false).invoke(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text("Einstellungen"), ), body: ListView( children: [ const ListItemNavigator(icon: Icons.info, text: "Über diese App", target: AboutDialog( applicationIcon: Icon(Icons.send_time_extension_outlined), applicationLegalese: "Released under MIT-License", applicationName: "Marianum Fulda", applicationVersion: "ALPHA 0.1", )), ListTile( leading: const Icon(Icons.logout), title: const Text("Account abmelden"), onTap: () { Navigator.push(context, MaterialPageRoute(builder: (builder) => AlertDialog( title: const Text("Abmelden?"), content: const Text("Möchtest du dich wirklich abmelden?"), actions: [ TextButton( child: const Text("Abmelden"), onPressed: () { SharedPreferences.getInstance().then((value) => { value.clear(), }).then((value) => { Provider.of(context, listen: false).logout(), Navigator.popUntil(context, (route) => !Navigator.canPop(context)), }); } ), TextButton( child: const Text("Abbrechen"), onPressed: () { Navigator.pop(context); }, ), ], ))); }, ), Consumer( builder: (context, serverInfo, child) { return ListTile( leading: const Icon(Icons.home_work_outlined), title: Text("Server: ${serverInfo.serverName}"), subtitle: Text( "Betreiber: ${serverInfo.serverOwner}\n" "Serverversion: ${serverInfo.serverVersion}\n" "Rechtliche hinweise: ${serverInfo.legal}\n" ), ); }, ) ], ), ); } }