Bug fixes

This commit is contained in:
Juan Gilsanz Polo 2024-03-10 20:30:25 +01:00
parent b270ca2b8c
commit e013b1496e
5 changed files with 19 additions and 9 deletions

View file

@ -256,7 +256,7 @@ class LogTile extends StatelessWidget {
newStatus: domainBlocked == true ? 'unblock' : 'block' newStatus: domainBlocked == true ? 'unblock' : 'block'
) )
), ),
MenuOption( if (filteringProvider.filtering != null) MenuOption(
title: domainBlocked == true title: domainBlocked == true
? AppLocalizations.of(context)!.unblockThisClientOnly ? AppLocalizations.of(context)!.unblockThisClientOnly
: AppLocalizations.of(context)!.blockThisClientOnly, : AppLocalizations.of(context)!.blockThisClientOnly,
@ -457,7 +457,7 @@ class LogTile extends StatelessWidget {
newStatus: domainBlocked == true ? 'unblock' : 'block' newStatus: domainBlocked == true ? 'unblock' : 'block'
) )
), ),
MenuOption( if (filteringProvider.filtering != null) MenuOption(
title: domainBlocked == true title: domainBlocked == true
? AppLocalizations.of(context)!.unblockThisClientOnly ? AppLocalizations.of(context)!.unblockThisClientOnly
: AppLocalizations.of(context)!.blockThisClientOnly, : AppLocalizations.of(context)!.blockThisClientOnly,

View file

@ -1,14 +1,16 @@
// ignore_for_file: use_build_context_synchronously // ignore_for_file: use_build_context_synchronously
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:adguard_home_manager/screens/logs/logs_list.dart'; import 'package:adguard_home_manager/screens/logs/logs_list.dart';
import 'package:adguard_home_manager/screens/logs/details/log_details_screen.dart'; import 'package:adguard_home_manager/screens/logs/details/log_details_screen.dart';
import 'package:adguard_home_manager/models/logs.dart'; import 'package:adguard_home_manager/models/logs.dart';
import 'package:adguard_home_manager/providers/filtering_provider.dart';
class Logs extends StatefulWidget { class Logs extends StatefulWidget {
const Logs({Key? key}) : super(key: key); const Logs({super.key});
@override @override
State<Logs> createState() => _LogsState(); State<Logs> createState() => _LogsState();
@ -17,6 +19,12 @@ class Logs extends StatefulWidget {
class _LogsState extends State<Logs> { class _LogsState extends State<Logs> {
Log? _selectedLog; Log? _selectedLog;
@override
void initState() {
Provider.of<FilteringProvider>(context, listen: false).fetchFilters();
super.initState();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return LayoutBuilder( return LayoutBuilder(

View file

@ -59,7 +59,7 @@ class LogsListAppBar extends StatelessWidget {
showDialog( showDialog(
context: context, context: context,
builder: (context) => _Search( builder: (context) => _Search(
searchButtonRenderBox: _searchButtonKey.currentContext!.findRenderObject() as RenderBox, searchButtonRenderBox: _searchButtonKey.currentContext?.findRenderObject() as RenderBox?,
onSearch: (v) { onSearch: (v) {
logsProvider.setAppliedFilters( logsProvider.setAppliedFilters(
AppliedFiters( AppliedFiters(
@ -243,7 +243,7 @@ class LogsListAppBar extends StatelessWidget {
class _Search extends StatefulWidget { class _Search extends StatefulWidget {
final void Function(String) onSearch; final void Function(String) onSearch;
final RenderBox searchButtonRenderBox; final RenderBox? searchButtonRenderBox;
const _Search({ const _Search({
required this.onSearch, required this.onSearch,
@ -269,7 +269,8 @@ class _SearchState extends State<_Search> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
final logsProvider = Provider.of<LogsProvider>(context); final logsProvider = Provider.of<LogsProvider>(context);
final Offset position = widget.searchButtonRenderBox.localToGlobal(Offset.zero); final position = widget.searchButtonRenderBox?.localToGlobal(Offset.zero);
final topPadding = MediaQuery.of(globalNavigatorKey.currentContext!).viewPadding.top;
return GestureDetector( return GestureDetector(
onTap: () => Navigator.pop(context), onTap: () => Navigator.pop(context),
@ -282,7 +283,7 @@ class _SearchState extends State<_Search> {
alignment: Alignment.topCenter, alignment: Alignment.topCenter,
children: [ children: [
Positioned( Positioned(
top: position.dy - MediaQuery.of(globalNavigatorKey.currentContext!).viewPadding.top, top: position != null ? position.dy - topPadding : topPadding,
child: SizedBox( child: SizedBox(
width: width, width: width,
child: GestureDetector( child: GestureDetector(

View file

@ -165,7 +165,7 @@ class _DnsServerSettingsScreenState extends State<DnsServerSettingsScreen> {
processModal.open(AppLocalizations.of(context)!.savingConfig); processModal.open(AppLocalizations.of(context)!.savingConfig);
final result = await dnsProvider.saveDnsServerConfig({ final result = await dnsProvider.saveDnsServerConfig({
"ratelimit": int.parse(_limitRequestsController.text), "ratelimit": int.tryParse(_limitRequestsController.text),
"edns_cs_enabled": _enableEdns, "edns_cs_enabled": _enableEdns,
"edns_cs_use_custom": _useCustomIpEdns, "edns_cs_use_custom": _useCustomIpEdns,
"edns_cs_custom_ip": _customIpEdnsController.text, "edns_cs_custom_ip": _customIpEdnsController.text,

View file

@ -47,6 +47,7 @@ class _UpdateScreenState extends State<UpdateScreen> {
void processChangelog() async { void processChangelog() async {
final serversProvider = Provider.of<ServersProvider>(context, listen: false); final serversProvider = Provider.of<ServersProvider>(context, listen: false);
if (serversProvider.updateAvailable.data?.changelog == null) return;
final markdownResult = await compute(md.markdownToHtml, serversProvider.updateAvailable.data!.changelog!); final markdownResult = await compute(md.markdownToHtml, serversProvider.updateAvailable.data!.changelog!);
final htmlParsedResult = await compute(html.parse, markdownResult); final htmlParsedResult = await compute(html.parse, markdownResult);
setState(() => _htmlChangelog = htmlParsedResult.outerHtml); setState(() => _htmlChangelog = htmlParsedResult.outerHtml);
@ -84,7 +85,7 @@ class _UpdateScreenState extends State<UpdateScreen> {
processModal.close(); processModal.close();
if (!mounted) return; if (!context.mounted) return;
if (result.successful == true) { if (result.successful == true) {
serversProvider.recheckPeriodServerUpdated(); serversProvider.recheckPeriodServerUpdated();
showSnacbkar( showSnacbkar(