mirror of
https://github.com/JGeek00/adguard-home-manager.git
synced 2025-04-26 08:46:06 +00:00
Extracted dhcp to external provider
This commit is contained in:
parent
cd4a8aaf4f
commit
9460da6dcb
8 changed files with 83 additions and 96 deletions
|
@ -21,6 +21,7 @@ import 'package:adguard_home_manager/providers/logs_provider.dart';
|
||||||
import 'package:adguard_home_manager/providers/app_config_provider.dart';
|
import 'package:adguard_home_manager/providers/app_config_provider.dart';
|
||||||
import 'package:adguard_home_manager/providers/clients_provider.dart';
|
import 'package:adguard_home_manager/providers/clients_provider.dart';
|
||||||
import 'package:adguard_home_manager/providers/filters_provider.dart';
|
import 'package:adguard_home_manager/providers/filters_provider.dart';
|
||||||
|
import 'package:adguard_home_manager/providers/dhcp_provider.dart';
|
||||||
import 'package:adguard_home_manager/providers/status_provider.dart';
|
import 'package:adguard_home_manager/providers/status_provider.dart';
|
||||||
import 'package:adguard_home_manager/providers/servers_provider.dart';
|
import 'package:adguard_home_manager/providers/servers_provider.dart';
|
||||||
import 'package:adguard_home_manager/constants/colors.dart';
|
import 'package:adguard_home_manager/constants/colors.dart';
|
||||||
|
@ -30,7 +31,6 @@ import 'package:adguard_home_manager/config/theme.dart';
|
||||||
import 'package:adguard_home_manager/classes/http_override.dart';
|
import 'package:adguard_home_manager/classes/http_override.dart';
|
||||||
import 'package:adguard_home_manager/services/db/database.dart';
|
import 'package:adguard_home_manager/services/db/database.dart';
|
||||||
|
|
||||||
|
|
||||||
void main() async {
|
void main() async {
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
|
|
||||||
|
@ -50,6 +50,7 @@ void main() async {
|
||||||
StatusProvider statusProvider = StatusProvider();
|
StatusProvider statusProvider = StatusProvider();
|
||||||
ClientsProvider clientsProvider = ClientsProvider();
|
ClientsProvider clientsProvider = ClientsProvider();
|
||||||
FilteringProvider filtersProvider = FilteringProvider();
|
FilteringProvider filtersProvider = FilteringProvider();
|
||||||
|
DhcpProvider dhcpProvider = DhcpProvider();
|
||||||
LogsProvider logsProvider = LogsProvider();
|
LogsProvider logsProvider = LogsProvider();
|
||||||
|
|
||||||
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
|
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
|
||||||
|
@ -97,6 +98,9 @@ void main() async {
|
||||||
ChangeNotifierProvider(
|
ChangeNotifierProvider(
|
||||||
create: ((context) => serversProvider)
|
create: ((context) => serversProvider)
|
||||||
),
|
),
|
||||||
|
ChangeNotifierProvider(
|
||||||
|
create: ((context) => appConfigProvider)
|
||||||
|
),
|
||||||
ChangeNotifierProvider(
|
ChangeNotifierProvider(
|
||||||
create: ((context) => statusProvider)
|
create: ((context) => statusProvider)
|
||||||
),
|
),
|
||||||
|
@ -110,7 +114,7 @@ void main() async {
|
||||||
create: ((context) => filtersProvider)
|
create: ((context) => filtersProvider)
|
||||||
),
|
),
|
||||||
ChangeNotifierProvider(
|
ChangeNotifierProvider(
|
||||||
create: ((context) => appConfigProvider)
|
create: ((context) => dhcpProvider)
|
||||||
),
|
),
|
||||||
ChangeNotifierProxyProvider<StatusProvider, FilteringProvider>(
|
ChangeNotifierProxyProvider<StatusProvider, FilteringProvider>(
|
||||||
create: (context) => filtersProvider,
|
create: (context) => filtersProvider,
|
||||||
|
@ -181,15 +185,15 @@ class _MainState extends State<Main> {
|
||||||
builder: (lightDynamic, darkDynamic) => MaterialApp(
|
builder: (lightDynamic, darkDynamic) => MaterialApp(
|
||||||
title: 'AdGuard Home Manager',
|
title: 'AdGuard Home Manager',
|
||||||
theme: appConfigProvider.androidDeviceInfo != null && appConfigProvider.androidDeviceInfo!.version.sdkInt >= 31
|
theme: appConfigProvider.androidDeviceInfo != null && appConfigProvider.androidDeviceInfo!.version.sdkInt >= 31
|
||||||
? appConfigProvider.useDynamicColor == true
|
? appConfigProvider.useDynamicColor == true
|
||||||
? lightTheme(lightDynamic)
|
? lightTheme(lightDynamic)
|
||||||
: lightThemeOldVersions(colors[appConfigProvider.staticColor])
|
: lightThemeOldVersions(colors[appConfigProvider.staticColor])
|
||||||
: lightThemeOldVersions(colors[appConfigProvider.staticColor]),
|
: lightThemeOldVersions(colors[appConfigProvider.staticColor]),
|
||||||
darkTheme: appConfigProvider.androidDeviceInfo != null && appConfigProvider.androidDeviceInfo!.version.sdkInt >= 31
|
darkTheme: appConfigProvider.androidDeviceInfo != null && appConfigProvider.androidDeviceInfo!.version.sdkInt >= 31
|
||||||
? appConfigProvider.useDynamicColor == true
|
? appConfigProvider.useDynamicColor == true
|
||||||
? darkTheme(darkDynamic)
|
? darkTheme(darkDynamic)
|
||||||
: darkThemeOldVersions(colors[appConfigProvider.staticColor])
|
: darkThemeOldVersions(colors[appConfigProvider.staticColor])
|
||||||
: darkThemeOldVersions(colors[appConfigProvider.staticColor]),
|
: darkThemeOldVersions(colors[appConfigProvider.staticColor]),
|
||||||
themeMode: appConfigProvider.selectedTheme,
|
themeMode: appConfigProvider.selectedTheme,
|
||||||
debugShowCheckedModeBanner: false,
|
debugShowCheckedModeBanner: false,
|
||||||
localizationsDelegates: const [
|
localizationsDelegates: const [
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
class DhcpModel {
|
class DhcpModel {
|
||||||
int loadStatus = 0;
|
|
||||||
DhcpData? data;
|
|
||||||
|
|
||||||
DhcpModel({
|
|
||||||
required this.loadStatus,
|
|
||||||
this.data,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
class DhcpData {
|
|
||||||
List<NetworkInterface> networkInterfaces;
|
List<NetworkInterface> networkInterfaces;
|
||||||
DhcpStatus dhcpStatus;
|
DhcpStatus dhcpStatus;
|
||||||
|
|
||||||
DhcpData({
|
DhcpModel({
|
||||||
required this.networkInterfaces,
|
required this.networkInterfaces,
|
||||||
required this.dhcpStatus,
|
required this.dhcpStatus,
|
||||||
});
|
});
|
||||||
|
|
29
lib/providers/dhcp_provider.dart
Normal file
29
lib/providers/dhcp_provider.dart
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import 'package:adguard_home_manager/constants/enums.dart';
|
||||||
|
import 'package:adguard_home_manager/models/dhcp.dart';
|
||||||
|
|
||||||
|
class DhcpProvider with ChangeNotifier {
|
||||||
|
LoadStatus _loadStatus = LoadStatus.loading;
|
||||||
|
DhcpModel? _dhcp;
|
||||||
|
|
||||||
|
DhcpModel? get dhcp {
|
||||||
|
return _dhcp;
|
||||||
|
}
|
||||||
|
|
||||||
|
LoadStatus get loadStatus {
|
||||||
|
return _loadStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setDhcpData(DhcpModel data) {
|
||||||
|
_dhcp = data;
|
||||||
|
notifyListeners();
|
||||||
|
}
|
||||||
|
|
||||||
|
void setDhcpLoadStatus(LoadStatus status, bool notify) {
|
||||||
|
_loadStatus = status;
|
||||||
|
if (notify == true) {
|
||||||
|
notifyListeners();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -18,11 +18,6 @@ class ServersProvider with ChangeNotifier {
|
||||||
List<Server> _serversList = [];
|
List<Server> _serversList = [];
|
||||||
Server? _selectedServer;
|
Server? _selectedServer;
|
||||||
|
|
||||||
final DhcpModel _dhcp = DhcpModel(
|
|
||||||
loadStatus: 0, // 0 = loading, 1 = loaded, 2 = error
|
|
||||||
data: null
|
|
||||||
);
|
|
||||||
|
|
||||||
final RewriteRules _rewriteRules = RewriteRules(
|
final RewriteRules _rewriteRules = RewriteRules(
|
||||||
loadStatus: 0, // 0 = loading, 1 = loaded, 2 = error
|
loadStatus: 0, // 0 = loading, 1 = loaded, 2 = error
|
||||||
data: null
|
data: null
|
||||||
|
@ -46,10 +41,6 @@ class ServersProvider with ChangeNotifier {
|
||||||
return _selectedServer;
|
return _selectedServer;
|
||||||
}
|
}
|
||||||
|
|
||||||
DhcpModel get dhcp {
|
|
||||||
return _dhcp;
|
|
||||||
}
|
|
||||||
|
|
||||||
RewriteRules get rewriteRules {
|
RewriteRules get rewriteRules {
|
||||||
return _rewriteRules;
|
return _rewriteRules;
|
||||||
}
|
}
|
||||||
|
@ -76,18 +67,6 @@ class ServersProvider with ChangeNotifier {
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
void setDhcpData(DhcpData data) {
|
|
||||||
_dhcp.data = data;
|
|
||||||
notifyListeners();
|
|
||||||
}
|
|
||||||
|
|
||||||
void setDhcpLoadStatus(int status, bool notify) {
|
|
||||||
_dhcp.loadStatus = status;
|
|
||||||
if (notify == true) {
|
|
||||||
notifyListeners();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void setRewriteRulesData(List<RewriteRulesData> data) {
|
void setRewriteRulesData(List<RewriteRulesData> data) {
|
||||||
_rewriteRules.data = data;
|
_rewriteRules.data = data;
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
|
|
|
@ -13,42 +13,22 @@ import 'package:adguard_home_manager/screens/settings/dhcp/dhcp_leases.dart';
|
||||||
import 'package:adguard_home_manager/screens/settings/dhcp/select_interface_modal.dart';
|
import 'package:adguard_home_manager/screens/settings/dhcp/select_interface_modal.dart';
|
||||||
|
|
||||||
import 'package:adguard_home_manager/functions/snackbar.dart';
|
import 'package:adguard_home_manager/functions/snackbar.dart';
|
||||||
|
import 'package:adguard_home_manager/constants/enums.dart';
|
||||||
|
import 'package:adguard_home_manager/providers/dhcp_provider.dart';
|
||||||
import 'package:adguard_home_manager/classes/process_modal.dart';
|
import 'package:adguard_home_manager/classes/process_modal.dart';
|
||||||
import 'package:adguard_home_manager/services/http_requests.dart';
|
import 'package:adguard_home_manager/services/http_requests.dart';
|
||||||
import 'package:adguard_home_manager/models/dhcp.dart';
|
import 'package:adguard_home_manager/models/dhcp.dart';
|
||||||
import 'package:adguard_home_manager/providers/app_config_provider.dart';
|
import 'package:adguard_home_manager/providers/app_config_provider.dart';
|
||||||
import 'package:adguard_home_manager/providers/servers_provider.dart';
|
import 'package:adguard_home_manager/providers/servers_provider.dart';
|
||||||
|
|
||||||
class Dhcp extends StatelessWidget {
|
class DhcpScreen extends StatefulWidget {
|
||||||
const Dhcp({Key? key}) : super(key: key);
|
const DhcpScreen({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
State<DhcpScreen> createState() => _DhcpScreenState();
|
||||||
final serversProvider = Provider.of<ServersProvider>(context);
|
|
||||||
final appConfigProvider = Provider.of<AppConfigProvider>(context);
|
|
||||||
|
|
||||||
return DhcpWidget(
|
|
||||||
serversProvider: serversProvider,
|
|
||||||
appConfigProvider: appConfigProvider
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class DhcpWidget extends StatefulWidget {
|
class _DhcpScreenState extends State<DhcpScreen> {
|
||||||
final ServersProvider serversProvider;
|
|
||||||
final AppConfigProvider appConfigProvider;
|
|
||||||
|
|
||||||
const DhcpWidget({
|
|
||||||
Key? key,
|
|
||||||
required this.serversProvider,
|
|
||||||
required this.appConfigProvider
|
|
||||||
}) : super(key: key);
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<DhcpWidget> createState() => _DhcpWidgetState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _DhcpWidgetState extends State<DhcpWidget> {
|
|
||||||
NetworkInterface? selectedInterface;
|
NetworkInterface? selectedInterface;
|
||||||
|
|
||||||
bool enabled = false;
|
bool enabled = false;
|
||||||
|
@ -74,17 +54,20 @@ class _DhcpWidgetState extends State<DhcpWidget> {
|
||||||
bool dataValid = false;
|
bool dataValid = false;
|
||||||
|
|
||||||
void loadDhcpStatus() async {
|
void loadDhcpStatus() async {
|
||||||
widget.serversProvider.setDhcpLoadStatus(0, false);
|
final serversProvider = Provider.of<ServersProvider>(context, listen: false);
|
||||||
|
final dhcpProvider = Provider.of<DhcpProvider>(context, listen: false);
|
||||||
|
|
||||||
final result = await getDhcpData(server: widget.serversProvider.selectedServer!);
|
dhcpProvider.setDhcpLoadStatus(LoadStatus.loading, false);
|
||||||
|
|
||||||
|
final result = await getDhcpData(server: serversProvider.selectedServer!);
|
||||||
|
|
||||||
if (mounted) {
|
if (mounted) {
|
||||||
if (result['result'] == 'success') {
|
if (result['result'] == 'success') {
|
||||||
widget.serversProvider.setDhcpLoadStatus(1, true);
|
dhcpProvider.setDhcpData(result['data']);
|
||||||
widget.serversProvider.setDhcpData(result['data']);
|
dhcpProvider.setDhcpLoadStatus(LoadStatus.loaded, true);
|
||||||
setState(() {
|
setState(() {
|
||||||
if (result['data'].dhcpStatus.interfaceName != '') {
|
if (result['data'].dhcpStatus.interfaceName != '') {
|
||||||
selectedInterface = result['data'].networkInterfaces.firstWhere((interface) => interface.name == result['data'].dhcpStatus.interfaceName);
|
selectedInterface = result['data'].networkInterfaces.firstWhere((iface) => iface.name == result['data'].dhcpStatus.interfaceName);
|
||||||
|
|
||||||
enabled = result['data'].dhcpStatus.enabled;
|
enabled = result['data'].dhcpStatus.enabled;
|
||||||
ipv4StartRangeController.text = result['data'].dhcpStatus.v4.rangeStart;
|
ipv4StartRangeController.text = result['data'].dhcpStatus.v4.rangeStart;
|
||||||
|
@ -97,7 +80,7 @@ class _DhcpWidgetState extends State<DhcpWidget> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
widget.serversProvider.setDhcpLoadStatus(2, true);
|
dhcpProvider.setDhcpLoadStatus(LoadStatus.error, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
checkDataValid();
|
checkDataValid();
|
||||||
|
@ -213,6 +196,7 @@ class _DhcpWidgetState extends State<DhcpWidget> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final serversProvider = Provider.of<ServersProvider>(context);
|
final serversProvider = Provider.of<ServersProvider>(context);
|
||||||
|
final dhcpProvider = Provider.of<DhcpProvider>(context);
|
||||||
final appConfigProvider = Provider.of<AppConfigProvider>(context);
|
final appConfigProvider = Provider.of<AppConfigProvider>(context);
|
||||||
|
|
||||||
final width = MediaQuery.of(context).size.width;
|
final width = MediaQuery.of(context).size.width;
|
||||||
|
@ -298,10 +282,10 @@ class _DhcpWidgetState extends State<DhcpWidget> {
|
||||||
processModal.close();
|
processModal.close();
|
||||||
|
|
||||||
if (result['result'] == 'success') {
|
if (result['result'] == 'success') {
|
||||||
DhcpData data = serversProvider.dhcp.data!;
|
DhcpModel data = dhcpProvider.dhcp!;
|
||||||
data.dhcpStatus.staticLeases = [];
|
data.dhcpStatus.staticLeases = [];
|
||||||
data.dhcpStatus.leases = [];
|
data.dhcpStatus.leases = [];
|
||||||
serversProvider.setDhcpData(data);
|
dhcpProvider.setDhcpData(data);
|
||||||
|
|
||||||
showSnacbkar(
|
showSnacbkar(
|
||||||
appConfigProvider: appConfigProvider,
|
appConfigProvider: appConfigProvider,
|
||||||
|
@ -356,7 +340,7 @@ class _DhcpWidgetState extends State<DhcpWidget> {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (context) => SelectInterfaceModal(
|
builder: (context) => SelectInterfaceModal(
|
||||||
interfaces: serversProvider.dhcp.data!.networkInterfaces,
|
interfaces: dhcpProvider.dhcp!.networkInterfaces,
|
||||||
onSelect: (interface) => setState(() {
|
onSelect: (interface) => setState(() {
|
||||||
clearAll();
|
clearAll();
|
||||||
selectedInterface = interface;
|
selectedInterface = interface;
|
||||||
|
@ -369,7 +353,7 @@ class _DhcpWidgetState extends State<DhcpWidget> {
|
||||||
showModalBottomSheet(
|
showModalBottomSheet(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (context) => SelectInterfaceModal(
|
builder: (context) => SelectInterfaceModal(
|
||||||
interfaces: serversProvider.dhcp.data!.networkInterfaces,
|
interfaces: dhcpProvider.dhcp!.networkInterfaces,
|
||||||
onSelect: (i) => setState(() {
|
onSelect: (i) => setState(() {
|
||||||
clearAll();
|
clearAll();
|
||||||
selectedInterface = i;
|
selectedInterface = i;
|
||||||
|
@ -383,8 +367,8 @@ class _DhcpWidgetState extends State<DhcpWidget> {
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget generateBody() {
|
Widget generateBody() {
|
||||||
switch (serversProvider.dhcp.loadStatus) {
|
switch (dhcpProvider.loadStatus) {
|
||||||
case 0:
|
case LoadStatus.loading:
|
||||||
return SizedBox(
|
return SizedBox(
|
||||||
width: double.maxFinite,
|
width: double.maxFinite,
|
||||||
child: Column(
|
child: Column(
|
||||||
|
@ -404,7 +388,7 @@ class _DhcpWidgetState extends State<DhcpWidget> {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
case 1:
|
case LoadStatus.loaded:
|
||||||
if (selectedInterface != null) {
|
if (selectedInterface != null) {
|
||||||
return SingleChildScrollView(
|
return SingleChildScrollView(
|
||||||
child: Wrap(
|
child: Wrap(
|
||||||
|
@ -683,7 +667,7 @@ class _DhcpWidgetState extends State<DhcpWidget> {
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.push(context, MaterialPageRoute(
|
Navigator.push(context, MaterialPageRoute(
|
||||||
builder: (context) => DhcpLeases(
|
builder: (context) => DhcpLeases(
|
||||||
items: serversProvider.dhcp.data!.dhcpStatus.leases,
|
items: dhcpProvider.dhcp!.dhcpStatus.leases,
|
||||||
staticLeases: false,
|
staticLeases: false,
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
|
@ -716,7 +700,7 @@ class _DhcpWidgetState extends State<DhcpWidget> {
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.push(context, MaterialPageRoute(
|
Navigator.push(context, MaterialPageRoute(
|
||||||
builder: (context) => DhcpLeases(
|
builder: (context) => DhcpLeases(
|
||||||
items: serversProvider.dhcp.data!.dhcpStatus.staticLeases,
|
items: dhcpProvider.dhcp!.dhcpStatus.staticLeases,
|
||||||
staticLeases: true,
|
staticLeases: true,
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
|
@ -751,7 +735,7 @@ class _DhcpWidgetState extends State<DhcpWidget> {
|
||||||
if (!(Platform.isAndroid || Platform.isIOS)) {
|
if (!(Platform.isAndroid || Platform.isIOS)) {
|
||||||
SplitView.of(context).push(
|
SplitView.of(context).push(
|
||||||
DhcpLeases(
|
DhcpLeases(
|
||||||
items: serversProvider.dhcp.data!.dhcpStatus.leases,
|
items: dhcpProvider.dhcp!.dhcpStatus.leases,
|
||||||
staticLeases: false,
|
staticLeases: false,
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -759,7 +743,7 @@ class _DhcpWidgetState extends State<DhcpWidget> {
|
||||||
else {
|
else {
|
||||||
Navigator.push(context, MaterialPageRoute(
|
Navigator.push(context, MaterialPageRoute(
|
||||||
builder: (context) => DhcpLeases(
|
builder: (context) => DhcpLeases(
|
||||||
items: serversProvider.dhcp.data!.dhcpStatus.leases,
|
items: dhcpProvider.dhcp!.dhcpStatus.leases,
|
||||||
staticLeases: false,
|
staticLeases: false,
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
|
@ -778,7 +762,7 @@ class _DhcpWidgetState extends State<DhcpWidget> {
|
||||||
if (!(Platform.isAndroid || Platform.isIOS)) {
|
if (!(Platform.isAndroid || Platform.isIOS)) {
|
||||||
SplitView.of(context).push(
|
SplitView.of(context).push(
|
||||||
DhcpLeases(
|
DhcpLeases(
|
||||||
items: serversProvider.dhcp.data!.dhcpStatus.staticLeases,
|
items: dhcpProvider.dhcp!.dhcpStatus.staticLeases,
|
||||||
staticLeases: true,
|
staticLeases: true,
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -786,7 +770,7 @@ class _DhcpWidgetState extends State<DhcpWidget> {
|
||||||
else {
|
else {
|
||||||
Navigator.push(context, MaterialPageRoute(
|
Navigator.push(context, MaterialPageRoute(
|
||||||
builder: (context) => DhcpLeases(
|
builder: (context) => DhcpLeases(
|
||||||
items: serversProvider.dhcp.data!.dhcpStatus.staticLeases,
|
items: dhcpProvider.dhcp!.dhcpStatus.staticLeases,
|
||||||
staticLeases: true,
|
staticLeases: true,
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
|
@ -840,7 +824,7 @@ class _DhcpWidgetState extends State<DhcpWidget> {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
case 2:
|
case LoadStatus.error:
|
||||||
return SizedBox(
|
return SizedBox(
|
||||||
width: double.maxFinite,
|
width: double.maxFinite,
|
||||||
child: Column(
|
child: Column(
|
||||||
|
|
|
@ -10,6 +10,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||||
import 'package:adguard_home_manager/screens/settings/dhcp/delete_static_lease_modal.dart';
|
import 'package:adguard_home_manager/screens/settings/dhcp/delete_static_lease_modal.dart';
|
||||||
import 'package:adguard_home_manager/screens/settings/dhcp/add_static_lease_modal.dart';
|
import 'package:adguard_home_manager/screens/settings/dhcp/add_static_lease_modal.dart';
|
||||||
|
|
||||||
|
import 'package:adguard_home_manager/providers/dhcp_provider.dart';
|
||||||
import 'package:adguard_home_manager/providers/app_config_provider.dart';
|
import 'package:adguard_home_manager/providers/app_config_provider.dart';
|
||||||
import 'package:adguard_home_manager/functions/snackbar.dart';
|
import 'package:adguard_home_manager/functions/snackbar.dart';
|
||||||
import 'package:adguard_home_manager/services/http_requests.dart';
|
import 'package:adguard_home_manager/services/http_requests.dart';
|
||||||
|
@ -30,6 +31,7 @@ class DhcpLeases extends StatelessWidget {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final serversProvider = Provider.of<ServersProvider>(context);
|
final serversProvider = Provider.of<ServersProvider>(context);
|
||||||
|
final dhcpProvider = Provider.of<DhcpProvider>(context);
|
||||||
final appConfigProvider = Provider.of<AppConfigProvider>(context);
|
final appConfigProvider = Provider.of<AppConfigProvider>(context);
|
||||||
|
|
||||||
final width = MediaQuery.of(context).size.width;
|
final width = MediaQuery.of(context).size.width;
|
||||||
|
@ -47,9 +49,9 @@ class DhcpLeases extends StatelessWidget {
|
||||||
processModal.close();
|
processModal.close();
|
||||||
|
|
||||||
if (result['result'] == 'success') {
|
if (result['result'] == 'success') {
|
||||||
DhcpData data = serversProvider.dhcp.data!;
|
DhcpModel data = dhcpProvider.dhcp!;
|
||||||
data.dhcpStatus.staticLeases = data.dhcpStatus.staticLeases.where((l) => l.mac != lease.mac).toList();
|
data.dhcpStatus.staticLeases = data.dhcpStatus.staticLeases.where((l) => l.mac != lease.mac).toList();
|
||||||
serversProvider.setDhcpData(data);
|
dhcpProvider.setDhcpData(data);
|
||||||
|
|
||||||
showSnacbkar(
|
showSnacbkar(
|
||||||
appConfigProvider: appConfigProvider,
|
appConfigProvider: appConfigProvider,
|
||||||
|
@ -80,9 +82,9 @@ class DhcpLeases extends StatelessWidget {
|
||||||
processModal.close();
|
processModal.close();
|
||||||
|
|
||||||
if (result['result'] == 'success') {
|
if (result['result'] == 'success') {
|
||||||
DhcpData data = serversProvider.dhcp.data!;
|
DhcpModel data = dhcpProvider.dhcp!;
|
||||||
data.dhcpStatus.staticLeases.add(lease);
|
data.dhcpStatus.staticLeases.add(lease);
|
||||||
serversProvider.setDhcpData(data);
|
dhcpProvider.setDhcpData(data);
|
||||||
|
|
||||||
showSnacbkar(
|
showSnacbkar(
|
||||||
appConfigProvider: appConfigProvider,
|
appConfigProvider: appConfigProvider,
|
||||||
|
|
|
@ -156,7 +156,7 @@ class SettingsWidget extends StatelessWidget {
|
||||||
title: AppLocalizations.of(context)!.dhcpSettings,
|
title: AppLocalizations.of(context)!.dhcpSettings,
|
||||||
subtitle: AppLocalizations.of(context)!.dhcpSettingsDescription,
|
subtitle: AppLocalizations.of(context)!.dhcpSettingsDescription,
|
||||||
thisItem: 2,
|
thisItem: 2,
|
||||||
screenToNavigate: const Dhcp(),
|
screenToNavigate: const DhcpScreen(),
|
||||||
),
|
),
|
||||||
settingsTile(
|
settingsTile(
|
||||||
icon: Icons.dns_rounded,
|
icon: Icons.dns_rounded,
|
||||||
|
|
|
@ -1289,7 +1289,7 @@ Future getDhcpData({
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'result': 'success',
|
'result': 'success',
|
||||||
'data': DhcpData(
|
'data': DhcpModel(
|
||||||
networkInterfaces: interfaces,
|
networkInterfaces: interfaces,
|
||||||
dhcpStatus: DhcpStatus.fromJson(jsonDecode(result[1]['body']))
|
dhcpStatus: DhcpStatus.fromJson(jsonDecode(result[1]['body']))
|
||||||
)
|
)
|
||||||
|
|
Loading…
Add table
Reference in a new issue