import 'package:flutter/material.dart'; import 'package:stadtbote/main.dart'; import 'package:stadtbote/model/session_status.dart'; import 'package:stadtbote/tools/mqtt_core.dart'; import 'package:stadtbote/tools/util.dart'; void showInfosPopup(SessionStatus? status) async { final int version = await Util.getAppVersion(); await showDialog( context: MyApp.appNavigatorKey.currentContext!, builder: (BuildContext context) { late String connectedString = MqttCore.instance.getConnectionStatus() == ConnectionStateEnum.connected ? "Verbunden" : "NICHT verbunden"; return AlertDialog( contentPadding: EdgeInsets.zero, shadowColor: Colors.transparent, backgroundColor: Colors.white, content: StatefulBuilder(builder: (BuildContext context, StateSetter setState) { Future getGpsStatustext() async { String gpsStatus = "nicht verfügbar"; var currentPosition = await MyApp.getCurrentPosition(); if (currentPosition != null) { var nowUtc = DateTime.now().toUtc(); var minutesDelta = nowUtc.difference(currentPosition.timestamp); if (minutesDelta >= const Duration(minutes: 15)) { gpsStatus = "veraltet"; } else { gpsStatus = "aktuell"; } } return gpsStatus; } return FutureBuilder( future: getGpsStatustext(), builder: (context, snapshot) { String gpsStatus = snapshot.data ?? "wird geladen..."; var text = "Versionsnummer: a$version\n"; text += "Verbindungsstatus: $connectedString\n"; text += "GPS-Status: $gpsStatus\n"; text += "\n"; text += "User Status:\n"; if (status != null) { text += "cr_id: ${status.crId}\n"; text += "cust_id: ${status.custId}\n"; text += "sid: ${status.sid}\n"; text += "vht_id: ${status.vhtId}\n"; text += "server_version: ${status.serverVersion}\n"; text += "server_instance: ${status.serverInstance}\n"; } else { text += "Keine Informationen gefunden"; } return SizedBox( key: GlobalKey(), height: 350, width: MediaQuery.of(context).size.width * 0.8, child: Container( height: 100, decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), color: Colors.white, border: Border.all( color: Colors.grey, width: 1, ), ), child: Padding( padding: const EdgeInsets.all(12.0), child: Column( children: [ Expanded(child: Text(text, textAlign: TextAlign.left)), getDefaultButton( 'OK', () { Navigator.pop(context); }, ), ], ), ), )); }, ); })); }); }