Show server version message on app start

This commit is contained in:
Juan Gilsanz Polo 2023-11-20 14:22:01 +01:00
parent dbb2609339
commit 39cdcf648d
5 changed files with 38 additions and 10 deletions

View file

@ -1,3 +1,4 @@
import 'package:flutter/material.dart';
final GlobalKey<ScaffoldMessengerState> scaffoldMessengerKey = GlobalKey<ScaffoldMessengerState>();
final GlobalKey<NavigatorState> globalNavigatorKey = GlobalKey<NavigatorState>();

View file

@ -235,13 +235,16 @@ class _MainState extends State<Main> {
Locale('tr', '')
],
scaffoldMessengerKey: scaffoldMessengerKey,
navigatorKey: globalNavigatorKey,
builder: (context, child) {
return CustomMenuBar(
child: MediaQuery(
data: MediaQuery.of(context).copyWith(
textScaleFactor: !(Platform.isAndroid || Platform.isIOS)
textScaler: TextScaler.linear(
!(Platform.isAndroid || Platform.isIOS)
? 0.9
: 1.0
)
),
child: child!,
),
@ -252,4 +255,3 @@ class _MainState extends State<Main> {
);
}
}

View file

@ -60,7 +60,7 @@ class ServersProvider with ChangeNotifier {
notifyListeners();
}
void setSelectedServer(Server server) {
void setSelectedServer(Server? server) {
_selectedServer = server;
notifyListeners();
}

View file

@ -2,6 +2,11 @@ import 'dart:async';
import 'package:flutter/material.dart';
import 'package:adguard_home_manager/widgets/add_server/unsupported_version_modal.dart';
import 'package:adguard_home_manager/config/globals.dart';
import 'package:adguard_home_manager/config/minimum_server_version.dart';
import 'package:adguard_home_manager/functions/compare_versions.dart';
import 'package:adguard_home_manager/models/server_status.dart';
import 'package:adguard_home_manager/models/filtering_status.dart';
import 'package:adguard_home_manager/constants/enums.dart';
@ -240,11 +245,31 @@ class StatusProvider with ChangeNotifier {
final result = await _serversProvider!.apiClient2!.getServerStatus();
if (result.successful == true) {
final status = result.content as ServerStatus;
setServerStatusData(
data: result.content as ServerStatus
data: status
);
_loadStatus = LoadStatus.loaded;
notifyListeners();
// Check server version and launch modal if not valid
final validVersion = serverVersionIsAhead(
currentVersion: status.serverVersion,
referenceVersion: MinimumServerVersion.stable,
referenceVersionBeta: MinimumServerVersion.beta
);
if (validVersion == false) {
showDialog(
context: globalNavigatorKey.currentContext!,
builder: (ctx) => UnsupportedVersionModal(
serverVersion: status.serverVersion,
onClose: () {
_serversProvider!.setSelectedServer(null);
}
)
);
}
return true;
}
else {

View file

@ -15,8 +15,8 @@ import 'package:adguard_home_manager/providers/servers_provider.dart';
class Layout extends StatefulWidget {
const Layout({
Key? key,
}) : super(key: key);
super.key,
});
@override
State<Layout> createState() => _LayoutState();