Skip to content
Snippets Groups Projects
Commit d681fb05 authored by vjrj's avatar vjrj
Browse files

Fix for VPN issue #45

parent 89040bed
No related branches found
No related tags found
No related merge requests found
import 'dart:io';
import 'package:check_vpn_connection/check_vpn_connection.dart';
import 'package:connectivity_wrapper/connectivity_wrapper.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter/material.dart';
import '../ui_helpers.dart';
......@@ -20,14 +21,14 @@ class ConnectivityWidgetWrapperWrapper extends ConnectivityWidgetWrapper {
? <AddressCheckOptions>[]
: List<AddressCheckOptions>.unmodifiable(
<AddressCheckOptions>[
AddressCheckOptions(
/* AddressCheckOptions(
hostname: 'duniter.org',
port: 443,
),
AddressCheckOptions(
hostname: 'moneda-libre.org',
port: 443,
),
), */
// Cloudflare
AddressCheckOptions(
address: InternetAddress(
......@@ -88,9 +89,33 @@ class ConnectivityWidgetWrapperWrapper extends ConnectivityWidgetWrapper {
);
}
@override
Widget build(BuildContext context) {
return FutureBuilder<bool>(
future: CheckVpnConnection.isVpnActive(),
builder: (BuildContext context, AsyncSnapshot<bool> snapshot) {
if (snapshot.hasData && snapshot.data != null) {
final bool isVpnActive = snapshot.data!;
if (isVpnActive) {
return child;
} else {
return super.build(context);
}
} else {
return super.build(context);
}
});
}
// This package does not work in IOS so we just return true
// Also does not detect well in web production mode
static Future<bool> get isConnected => kIsWeb || isIOS
? Future<bool>.value(true)
: ConnectivityWrapper.instance.isConnected;
static Future<bool> get isConnected async {
final bool vpn = await CheckVpnConnection.isVpnActive();
if (vpn) {
return true;
}
return kIsWeb || isIOS
? Future<bool>.value(true)
: ConnectivityWrapper.instance.isConnected;
}
}
......@@ -201,6 +201,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.3.1"
check_vpn_connection:
dependency: "direct main"
description:
name: check_vpn_connection
sha256: "68029b66124eb5de2bc877f516ad9773f8b57e0a9ccf5c64609bb7cb8f14f3a0"
url: "https://pub.dev"
source: hosted
version: "0.0.2"
checked_yaml:
dependency: transitive
description:
......
......@@ -93,6 +93,7 @@ dependencies:
uni_links: ^0.5.1
feedback: ^2.6.0
sentry_dart_plugin: ^1.5.0
check_vpn_connection: ^0.0.2
dev_dependencies:
flutter_test:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment