mirror of
https://github.com/JGeek00/adguard-home-manager.git
synced 2025-06-28 11:59:52 +00:00
Fixed small issues
This commit is contained in:
parent
dd8583a168
commit
d9f68484e0
5 changed files with 59 additions and 23 deletions
|
@ -116,6 +116,7 @@ On [this repository](https://github.com/JuanRodenas/Pihole_list) you can find a
|
||||||
- [sqflite common ffi](https://pub.dev/packages/sqflite_common_ffi)
|
- [sqflite common ffi](https://pub.dev/packages/sqflite_common_ffi)
|
||||||
- [window size](https://github.com/google/flutter-desktop-embedding)
|
- [window size](https://github.com/google/flutter-desktop-embedding)
|
||||||
- [flutter split view](https://github.com/JGeek00/flutter_split_view) (forked from [here](https://pub.dev/packages/flutter_split_view))
|
- [flutter split view](https://github.com/JGeek00/flutter_split_view) (forked from [here](https://pub.dev/packages/flutter_split_view))
|
||||||
|
- [async](https://pub.dev/packages/async)
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,9 @@ import 'package:contextmenu/contextmenu.dart';
|
||||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||||
|
|
||||||
import 'package:adguard_home_manager/widgets/custom_list_tile.dart';
|
import 'package:adguard_home_manager/widgets/custom_list_tile.dart';
|
||||||
|
import 'package:adguard_home_manager/widgets/options_modal.dart';
|
||||||
|
|
||||||
|
import 'package:adguard_home_manager/models/menu_option.dart';
|
||||||
import 'package:adguard_home_manager/functions/copy_clipboard.dart';
|
import 'package:adguard_home_manager/functions/copy_clipboard.dart';
|
||||||
import 'package:adguard_home_manager/models/clients.dart';
|
import 'package:adguard_home_manager/models/clients.dart';
|
||||||
|
|
||||||
|
@ -49,6 +51,27 @@ class ActiveClientTile extends StatelessWidget {
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
borderRadius: BorderRadius.circular(28),
|
borderRadius: BorderRadius.circular(28),
|
||||||
onTap: () => onTap(client),
|
onTap: () => onTap(client),
|
||||||
|
onLongPress: () => showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) => OptionsModal(
|
||||||
|
options: [
|
||||||
|
MenuOption(
|
||||||
|
title: AppLocalizations.of(context)!.copyClipboard,
|
||||||
|
icon: Icons.copy_rounded,
|
||||||
|
action: () {
|
||||||
|
copyToClipboard(
|
||||||
|
context: context,
|
||||||
|
value: client.name != ''
|
||||||
|
? client.name!
|
||||||
|
: client.ip,
|
||||||
|
successMessage: AppLocalizations.of(context)!.copiedClipboard,
|
||||||
|
);
|
||||||
|
Navigator.pop(context);
|
||||||
|
},
|
||||||
|
)
|
||||||
|
]
|
||||||
|
),
|
||||||
|
),
|
||||||
child: Container(
|
child: Container(
|
||||||
width: double.maxFinite,
|
width: double.maxFinite,
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
|
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:async/async.dart';
|
||||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||||
|
|
||||||
import 'package:adguard_home_manager/screens/logs/log_tile.dart';
|
import 'package:adguard_home_manager/screens/logs/log_tile.dart';
|
||||||
|
@ -44,6 +45,8 @@ class _LogsListClientState extends State<LogsListClient> {
|
||||||
|
|
||||||
bool showDivider = true;
|
bool showDivider = true;
|
||||||
|
|
||||||
|
CancelableOperation? cancelableRequest;
|
||||||
|
|
||||||
Future fetchLogs({
|
Future fetchLogs({
|
||||||
int? inOffset,
|
int? inOffset,
|
||||||
bool? loadingMore,
|
bool? loadingMore,
|
||||||
|
@ -56,34 +59,42 @@ class _LogsListClientState extends State<LogsListClient> {
|
||||||
setState(() => isLoadingMore = true);
|
setState(() => isLoadingMore = true);
|
||||||
}
|
}
|
||||||
|
|
||||||
final result = await getLogs(
|
if (cancelableRequest != null) cancelableRequest!.cancel();
|
||||||
server: widget.serversProvider.selectedServer!,
|
|
||||||
count: logsQuantity,
|
cancelableRequest = CancelableOperation.fromFuture(
|
||||||
offset: offst,
|
getLogs(
|
||||||
search: '"${widget.ip}"'
|
server: widget.serversProvider.selectedServer!,
|
||||||
|
count: logsQuantity,
|
||||||
|
offset: offst,
|
||||||
|
search: '"${widget.ip}"'
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (loadingMore != null && loadingMore == true) {
|
final result = await cancelableRequest?.value;
|
||||||
setState(() => isLoadingMore = false);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mounted) {
|
if (result != null) {
|
||||||
if (result['result'] == 'success') {
|
if (loadingMore != null && loadingMore == true) {
|
||||||
setState(() => offset = inOffset != null ? inOffset+logsQuantity : offset+logsQuantity);
|
setState(() => isLoadingMore = false);
|
||||||
if (loadingMore != null && loadingMore == true && logsData != null) {
|
}
|
||||||
LogsData newLogsData = result['data'];
|
|
||||||
newLogsData.data = [...logsData!.data, ...result['data'].data];
|
if (mounted) {
|
||||||
setState(() => logsData = newLogsData);
|
if (result['result'] == 'success') {
|
||||||
|
setState(() => offset = inOffset != null ? inOffset+logsQuantity : offset+logsQuantity);
|
||||||
|
if (loadingMore != null && loadingMore == true && logsData != null) {
|
||||||
|
LogsData newLogsData = result['data'];
|
||||||
|
newLogsData.data = [...logsData!.data, ...result['data'].data];
|
||||||
|
setState(() => logsData = newLogsData);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
LogsData newLogsData = result['data'];
|
||||||
|
setState(() => logsData = newLogsData);
|
||||||
|
}
|
||||||
|
setState(() => loadStatus = 1);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
LogsData newLogsData = result['data'];
|
setState(() => loadStatus = 2);
|
||||||
setState(() => logsData = newLogsData);
|
widget.appConfigProvider.addLog(result['log']);
|
||||||
}
|
}
|
||||||
setState(() => loadStatus = 1);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
setState(() => loadStatus = 2);
|
|
||||||
widget.appConfigProvider.addLog(result['log']);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ packages:
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.3.2"
|
version: "2.3.2"
|
||||||
async:
|
async:
|
||||||
dependency: transitive
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: async
|
name: async
|
||||||
sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
|
sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
|
||||||
|
|
|
@ -69,6 +69,7 @@ dependencies:
|
||||||
ref: master-alt
|
ref: master-alt
|
||||||
url_launcher: ^6.1.10
|
url_launcher: ^6.1.10
|
||||||
contextmenu: ^3.0.0
|
contextmenu: ^3.0.0
|
||||||
|
async: ^2.10.0
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue