93 lines
3.7 KiB
Dart
93 lines
3.7 KiB
Dart
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<String> 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<String>(
|
|
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);
|
|
},
|
|
),
|
|
],
|
|
),
|
|
),
|
|
));
|
|
},
|
|
);
|
|
}));
|
|
});
|
|
}
|
|
|
|
|