mirror of
https://github.com/JGeek00/adguard-home-manager.git
synced 2025-04-22 14:59:12 +00:00
Show server version message on app start
This commit is contained in:
parent
dbb2609339
commit
39cdcf648d
5 changed files with 38 additions and 10 deletions
|
@ -1,3 +1,4 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
final GlobalKey<ScaffoldMessengerState> scaffoldMessengerKey = GlobalKey<ScaffoldMessengerState>();
|
final GlobalKey<ScaffoldMessengerState> scaffoldMessengerKey = GlobalKey<ScaffoldMessengerState>();
|
||||||
|
final GlobalKey<NavigatorState> globalNavigatorKey = GlobalKey<NavigatorState>();
|
|
@ -235,13 +235,16 @@ class _MainState extends State<Main> {
|
||||||
Locale('tr', '')
|
Locale('tr', '')
|
||||||
],
|
],
|
||||||
scaffoldMessengerKey: scaffoldMessengerKey,
|
scaffoldMessengerKey: scaffoldMessengerKey,
|
||||||
|
navigatorKey: globalNavigatorKey,
|
||||||
builder: (context, child) {
|
builder: (context, child) {
|
||||||
return CustomMenuBar(
|
return CustomMenuBar(
|
||||||
child: MediaQuery(
|
child: MediaQuery(
|
||||||
data: MediaQuery.of(context).copyWith(
|
data: MediaQuery.of(context).copyWith(
|
||||||
textScaleFactor: !(Platform.isAndroid || Platform.isIOS)
|
textScaler: TextScaler.linear(
|
||||||
? 0.9
|
!(Platform.isAndroid || Platform.isIOS)
|
||||||
: 1.0
|
? 0.9
|
||||||
|
: 1.0
|
||||||
|
)
|
||||||
),
|
),
|
||||||
child: child!,
|
child: child!,
|
||||||
),
|
),
|
||||||
|
@ -251,5 +254,4 @@ class _MainState extends State<Main> {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,7 +60,7 @@ class ServersProvider with ChangeNotifier {
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
void setSelectedServer(Server server) {
|
void setSelectedServer(Server? server) {
|
||||||
_selectedServer = server;
|
_selectedServer = server;
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,11 @@ import 'dart:async';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
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/server_status.dart';
|
||||||
import 'package:adguard_home_manager/models/filtering_status.dart';
|
import 'package:adguard_home_manager/models/filtering_status.dart';
|
||||||
import 'package:adguard_home_manager/constants/enums.dart';
|
import 'package:adguard_home_manager/constants/enums.dart';
|
||||||
|
@ -240,11 +245,31 @@ class StatusProvider with ChangeNotifier {
|
||||||
|
|
||||||
final result = await _serversProvider!.apiClient2!.getServerStatus();
|
final result = await _serversProvider!.apiClient2!.getServerStatus();
|
||||||
if (result.successful == true) {
|
if (result.successful == true) {
|
||||||
|
final status = result.content as ServerStatus;
|
||||||
setServerStatusData(
|
setServerStatusData(
|
||||||
data: result.content as ServerStatus
|
data: status
|
||||||
);
|
);
|
||||||
_loadStatus = LoadStatus.loaded;
|
_loadStatus = LoadStatus.loaded;
|
||||||
notifyListeners();
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -15,8 +15,8 @@ import 'package:adguard_home_manager/providers/servers_provider.dart';
|
||||||
|
|
||||||
class Layout extends StatefulWidget {
|
class Layout extends StatefulWidget {
|
||||||
const Layout({
|
const Layout({
|
||||||
Key? key,
|
super.key,
|
||||||
}) : super(key: key);
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<Layout> createState() => _LayoutState();
|
State<Layout> createState() => _LayoutState();
|
||||||
|
|
Loading…
Add table
Reference in a new issue