diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 90811d8c..3bd07b0d 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,4 +1,6 @@ PODS: + - cupertino_http (0.0.1): + - Flutter - device_info_plus (0.0.1): - Flutter - Flutter (1.0.0) @@ -99,6 +101,7 @@ PODS: - Flutter DEPENDENCIES: + - cupertino_http (from `.symlinks/plugins/cupertino_http/ios`) - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - Flutter (from `Flutter`) - flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`) @@ -131,6 +134,8 @@ SPEC REPOS: - sqlite3 EXTERNAL SOURCES: + cupertino_http: + :path: ".symlinks/plugins/cupertino_http/ios" device_info_plus: :path: ".symlinks/plugins/device_info_plus/ios" Flutter: @@ -157,6 +162,7 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/url_launcher_ios/ios" SPEC CHECKSUMS: + cupertino_http: 5f8b1161107fe6c8d94a0c618735a033d93fa7db device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6 Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef diff --git a/lib/data/data_providers.dart b/lib/data/data_providers.dart index 7a40c5df..e4ac609d 100644 --- a/lib/data/data_providers.dart +++ b/lib/data/data_providers.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:dio/dio.dart'; import 'package:hiddify/core/core_providers.dart'; import 'package:hiddify/core/prefs/general_prefs.dart'; @@ -12,6 +14,7 @@ import 'package:hiddify/domain/constants.dart'; import 'package:hiddify/domain/core_facade.dart'; import 'package:hiddify/domain/profiles/profiles.dart'; import 'package:hiddify/services/service_providers.dart'; +import 'package:native_dio_adapter/native_dio_adapter.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'package:shared_preferences/shared_preferences.dart'; @@ -25,16 +28,23 @@ SharedPreferences sharedPreferences(SharedPreferencesRef ref) => throw UnimplementedError('sharedPreferences must be overridden'); @Riverpod(keepAlive: true) -Dio dio(DioRef ref) => Dio( - BaseOptions( - connectTimeout: const Duration(seconds: 15), - sendTimeout: const Duration(seconds: 15), - receiveTimeout: const Duration(seconds: 15), - headers: { - "User-Agent": ref.watch(appInfoProvider).userAgent, - }, - ), - ); +Dio dio(DioRef ref) { + final dio = Dio( + BaseOptions( + connectTimeout: const Duration(seconds: 15), + sendTimeout: const Duration(seconds: 15), + receiveTimeout: const Duration(seconds: 15), + headers: { + "User-Agent": ref.watch(appInfoProvider).userAgent, + }, + ), + ); + final debug = ref.read(debugModeNotifierProvider); + if (debug && (Platform.isAndroid || Platform.isIOS || Platform.isMacOS)) { + dio.httpClientAdapter = NativeAdapter(); + } + return dio; +} @Riverpod(keepAlive: true) ProfilesDao profilesDao(ProfilesDaoRef ref) => ProfilesDao( diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index e1759bc3..600ec847 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -12,6 +12,7 @@ list(APPEND FLUTTER_PLUGIN_LIST ) list(APPEND FLUTTER_FFI_PLUGIN_LIST + jni ) set(PLUGIN_BUNDLED_LIBRARIES) diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 0b92454b..06bee27f 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -1,4 +1,6 @@ PODS: + - cupertino_http (0.0.1): + - FlutterMacOS - device_info_plus (0.0.1): - FlutterMacOS - FlutterMacOS (1.0.0) @@ -48,6 +50,7 @@ PODS: - FlutterMacOS DEPENDENCIES: + - cupertino_http (from `Flutter/ephemeral/.symlinks/plugins/cupertino_http/macos`) - device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`) - FlutterMacOS (from `Flutter/ephemeral`) - mobile_scanner (from `Flutter/ephemeral/.symlinks/plugins/mobile_scanner/macos`) @@ -70,6 +73,8 @@ SPEC REPOS: - sqlite3 EXTERNAL SOURCES: + cupertino_http: + :path: Flutter/ephemeral/.symlinks/plugins/cupertino_http/macos device_info_plus: :path: Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos FlutterMacOS: @@ -100,6 +105,7 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/window_manager/macos SPEC CHECKSUMS: + cupertino_http: afa11b9e2786b62da2671e4ddd32caf792503748 device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 mobile_scanner: 621cf2c34e1c74ae7ce5c6793638ab600723bdea diff --git a/pubspec.lock b/pubspec.lock index c9b8b06a..6030cb3b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -225,6 +225,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.1" + cronet_http: + dependency: transitive + description: + name: cronet_http + sha256: "567170c4bb3d237991b852f446c1b52a3325de8b584a82d195f31dd76310d7d1" + url: "https://pub.dev" + source: hosted + version: "0.4.1" cross_file: dependency: transitive description: @@ -257,6 +265,14 @@ packages: url: "https://pub.dev" source: hosted version: "5.0.2" + cupertino_http: + dependency: transitive + description: + name: cupertino_http + sha256: "93cdb8a3aa8bc71caf62fdaca66e613871a6aa1388c7cd7f39b6366b5d2f5af6" + url: "https://pub.dev" + source: hosted + version: "1.1.0" cupertino_icons: dependency: "direct main" description: @@ -701,6 +717,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.4" + jni: + dependency: transitive + description: + name: jni + sha256: "0d88790bdf7e298aa65a9094c62b58ea231169a2deb84f23defc7d7955885b43" + url: "https://pub.dev" + source: hosted + version: "0.7.2" js: dependency: transitive description: @@ -813,6 +837,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.5.2" + native_dio_adapter: + dependency: "direct main" + description: + name: native_dio_adapter + sha256: "1967cabe3e9ea68ea5ad6da7a0ed25fa75cf335ec6b92cdf6f32185efa93364b" + url: "https://pub.dev" + source: hosted + version: "1.1.0" neat_periodic_task: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 9a3e918c..508d19a5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -71,6 +71,7 @@ dependencies: posix: ^5.0.0 win32: ^5.0.9 qr_flutter: ^4.1.0 + native_dio_adapter: ^1.1.0 dev_dependencies: flutter_test: diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 0bd3c28a..162a92be 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -15,6 +15,7 @@ list(APPEND FLUTTER_PLUGIN_LIST ) list(APPEND FLUTTER_FFI_PLUGIN_LIST + jni ) set(PLUGIN_BUNDLED_LIBRARIES)