From 3ffd3521b82cbab69a9256d52f1902482666968b Mon Sep 17 00:00:00 2001 From: Rakesh Bohara Date: Sat, 10 Jun 2023 10:32:37 +0545 Subject: [PATCH 1/3] feat: share dependency added for dio kit --- kits/flutter_ume_kit_dio/pubspec.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kits/flutter_ume_kit_dio/pubspec.yaml b/kits/flutter_ume_kit_dio/pubspec.yaml index 7c759a88..b1a23790 100644 --- a/kits/flutter_ume_kit_dio/pubspec.yaml +++ b/kits/flutter_ume_kit_dio/pubspec.yaml @@ -14,6 +14,9 @@ dependencies: dio: ^4.0.0 + share_plus: ^4.5.3 + + dev_dependencies: flutter_test: sdk: flutter From b874274d0211759618143f779e9af04ecb047ff7 Mon Sep 17 00:00:00 2001 From: Rakesh Bohara Date: Sat, 10 Jun 2023 10:33:08 +0545 Subject: [PATCH 2/3] feat: req/res share feature added for dio api request --- .../lib/src/widgets/pluggable_state.dart | 40 +++++++++++++++++-- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/kits/flutter_ume_kit_dio/lib/src/widgets/pluggable_state.dart b/kits/flutter_ume_kit_dio/lib/src/widgets/pluggable_state.dart index 0c92a681..3a01670a 100644 --- a/kits/flutter_ume_kit_dio/lib/src/widgets/pluggable_state.dart +++ b/kits/flutter_ume_kit_dio/lib/src/widgets/pluggable_state.dart @@ -4,8 +4,9 @@ /// import 'dart:convert'; -import 'package:flutter/material.dart'; import 'package:dio/dio.dart'; +import 'package:flutter/material.dart'; +import 'package:share_plus/share_plus.dart'; import '../constants/extensions.dart'; import '../instances.dart'; @@ -18,13 +19,13 @@ ButtonStyle _buttonStyle( EdgeInsetsGeometry? padding, }) { return TextButton.styleFrom( + foregroundColor: Colors.white, padding: padding ?? const EdgeInsets.symmetric(horizontal: 5, vertical: 3), minimumSize: Size.zero, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(999999), ), backgroundColor: Theme.of(context).primaryColor, - primary: Colors.white, tapTargetSize: MaterialTapTargetSize.shrinkWrap, ); } @@ -116,7 +117,7 @@ class DioPluggableState extends State { return Material( color: Colors.black26, child: DefaultTextStyle.merge( - style: Theme.of(context).textTheme.bodyText2, + style: Theme.of(context).textTheme.bodyMedium, child: Align( alignment: Alignment.bottomCenter, child: Container( @@ -139,7 +140,7 @@ class DioPluggableState extends State { const Spacer(), Text( 'Dio Requests', - style: Theme.of(context).textTheme.subtitle1, + style: Theme.of(context).textTheme.titleMedium, ), Expanded( child: Align( @@ -308,11 +309,42 @@ class _ResponseCardState extends State<_ResponseCard> { const SizedBox(width: 6), Text('${_duration.inMilliseconds}ms'), const Spacer(), + _shareButton(context), + const SizedBox(width: 6), _detailButton(context), ], ); } + Widget _shareButton(BuildContext context) { + return TextButton( + onPressed: () { + Share.share(_buildShareContent()); + }, + style: _buttonStyle(context), + child: const Text( + 'Share↗', + style: TextStyle(fontSize: 12, height: 1.2), + ), + ); + } + + _buildShareContent() { + return "URL: $_requestUri\n" + + "**************\n" + + "Request headers\n" + + "$_requestHeadersBuilder\n" + + "**************\n" + + "Request Data\n" + + "$_requestDataBuilder\n" + + "**************\n" + + "Response body\n" + + "$_responseDataBuilder\n" + + "**************\n" + + "Response headers\n" + + "$_responseHeadersBuilder\n"; + } + Widget _detailedContent(BuildContext context) { return ValueListenableBuilder( valueListenable: _isExpanded, From c303eed55e7c10046d18c15b6851c635b5d4837c Mon Sep 17 00:00:00 2001 From: Rakesh Bohara Date: Tue, 27 Jun 2023 09:39:30 +0545 Subject: [PATCH 3/3] dio upgrade --- .vscode/launch.json | 205 ++++++++++++++++++ example/lib/home_page.dart | 2 +- example/lib/main.dart | 13 +- example/pubspec.yaml | 2 +- .../lib/src/models/http_interceptor.dart | 5 +- kits/flutter_ume_kit_dio/pubspec.yaml | 2 +- 6 files changed, 218 insertions(+), 11 deletions(-) create mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..af7efe53 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,205 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "flutter_ume", + "request": "launch", + "type": "dart" + }, + { + "name": "flutter_ume (profile mode)", + "request": "launch", + "type": "dart", + "flutterMode": "profile" + }, + { + "name": "flutter_ume (release mode)", + "request": "launch", + "type": "dart", + "flutterMode": "release" + }, + { + "name": "custom_plugin_example", + "cwd": "custom_plugin_example", + "request": "launch", + "type": "dart" + }, + { + "name": "custom_plugin_example (profile mode)", + "cwd": "custom_plugin_example", + "request": "launch", + "type": "dart", + "flutterMode": "profile" + }, + { + "name": "custom_plugin_example (release mode)", + "cwd": "custom_plugin_example", + "request": "launch", + "type": "dart", + "flutterMode": "release" + }, + { + "name": "example", + "cwd": "example", + "request": "launch", + "type": "dart" + }, + { + "name": "example (profile mode)", + "cwd": "example", + "request": "launch", + "type": "dart", + "flutterMode": "profile" + }, + { + "name": "example (release mode)", + "cwd": "example", + "request": "launch", + "type": "dart", + "flutterMode": "release" + }, + { + "name": "flutter_ume_kit_channel_monitor", + "cwd": "kits/flutter_ume_kit_channel_monitor", + "request": "launch", + "type": "dart" + }, + { + "name": "flutter_ume_kit_channel_monitor (profile mode)", + "cwd": "kits/flutter_ume_kit_channel_monitor", + "request": "launch", + "type": "dart", + "flutterMode": "profile" + }, + { + "name": "flutter_ume_kit_channel_monitor (release mode)", + "cwd": "kits/flutter_ume_kit_channel_monitor", + "request": "launch", + "type": "dart", + "flutterMode": "release" + }, + { + "name": "flutter_ume_kit_console", + "cwd": "kits/flutter_ume_kit_console", + "request": "launch", + "type": "dart" + }, + { + "name": "flutter_ume_kit_console (profile mode)", + "cwd": "kits/flutter_ume_kit_console", + "request": "launch", + "type": "dart", + "flutterMode": "profile" + }, + { + "name": "flutter_ume_kit_console (release mode)", + "cwd": "kits/flutter_ume_kit_console", + "request": "launch", + "type": "dart", + "flutterMode": "release" + }, + { + "name": "flutter_ume_kit_device", + "cwd": "kits/flutter_ume_kit_device", + "request": "launch", + "type": "dart" + }, + { + "name": "flutter_ume_kit_device (profile mode)", + "cwd": "kits/flutter_ume_kit_device", + "request": "launch", + "type": "dart", + "flutterMode": "profile" + }, + { + "name": "flutter_ume_kit_device (release mode)", + "cwd": "kits/flutter_ume_kit_device", + "request": "launch", + "type": "dart", + "flutterMode": "release" + }, + { + "name": "flutter_ume_kit_dio", + "cwd": "kits/flutter_ume_kit_dio", + "request": "launch", + "type": "dart" + }, + { + "name": "flutter_ume_kit_dio (profile mode)", + "cwd": "kits/flutter_ume_kit_dio", + "request": "launch", + "type": "dart", + "flutterMode": "profile" + }, + { + "name": "flutter_ume_kit_dio (release mode)", + "cwd": "kits/flutter_ume_kit_dio", + "request": "launch", + "type": "dart", + "flutterMode": "release" + }, + { + "name": "flutter_ume_kit_perf", + "cwd": "kits/flutter_ume_kit_perf", + "request": "launch", + "type": "dart" + }, + { + "name": "flutter_ume_kit_perf (profile mode)", + "cwd": "kits/flutter_ume_kit_perf", + "request": "launch", + "type": "dart", + "flutterMode": "profile" + }, + { + "name": "flutter_ume_kit_perf (release mode)", + "cwd": "kits/flutter_ume_kit_perf", + "request": "launch", + "type": "dart", + "flutterMode": "release" + }, + { + "name": "flutter_ume_kit_show_code", + "cwd": "kits/flutter_ume_kit_show_code", + "request": "launch", + "type": "dart" + }, + { + "name": "flutter_ume_kit_show_code (profile mode)", + "cwd": "kits/flutter_ume_kit_show_code", + "request": "launch", + "type": "dart", + "flutterMode": "profile" + }, + { + "name": "flutter_ume_kit_show_code (release mode)", + "cwd": "kits/flutter_ume_kit_show_code", + "request": "launch", + "type": "dart", + "flutterMode": "release" + }, + { + "name": "flutter_ume_kit_ui", + "cwd": "kits/flutter_ume_kit_ui", + "request": "launch", + "type": "dart" + }, + { + "name": "flutter_ume_kit_ui (profile mode)", + "cwd": "kits/flutter_ume_kit_ui", + "request": "launch", + "type": "dart", + "flutterMode": "profile" + }, + { + "name": "flutter_ume_kit_ui (release mode)", + "cwd": "kits/flutter_ume_kit_ui", + "request": "launch", + "type": "dart", + "flutterMode": "release" + } + ] +} \ No newline at end of file diff --git a/example/lib/home_page.dart b/example/lib/home_page.dart index a5872366..15f400f5 100644 --- a/example/lib/home_page.dart +++ b/example/lib/home_page.dart @@ -75,7 +75,7 @@ class _HomePageState extends State { (int i) => Future.delayed( Duration(seconds: i), () => dio.get( - 'https://api.github.com' + 'https://apis.github.com' '/?_t=${DateTime.now().millisecondsSinceEpoch}&$i', options: Options( headers: {'UME-Test': 'This is UME Dio kit.'}, diff --git a/example/lib/main.dart b/example/lib/main.dart index f4ec7ed8..c1c903d3 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -6,16 +6,17 @@ import 'package:example/ume_switch.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_ume/flutter_ume.dart'; -import 'package:flutter_ume_kit_ui/flutter_ume_kit_ui.dart'; +import 'package:flutter_ume_kit_channel_monitor/flutter_ume_kit_channel_monitor.dart'; +import 'package:flutter_ume_kit_console/flutter_ume_kit_console.dart'; +import 'package:flutter_ume_kit_device/flutter_ume_kit_device.dart'; +import 'package:flutter_ume_kit_dio/flutter_ume_kit_dio.dart'; import 'package:flutter_ume_kit_perf/flutter_ume_kit_perf.dart'; import 'package:flutter_ume_kit_show_code/flutter_ume_kit_show_code.dart'; -import 'package:flutter_ume_kit_device/flutter_ume_kit_device.dart'; -import 'package:flutter_ume_kit_console/flutter_ume_kit_console.dart'; +import 'package:flutter_ume_kit_ui/flutter_ume_kit_ui.dart'; import 'package:provider/provider.dart'; -import 'package:flutter_ume_kit_dio/flutter_ume_kit_dio.dart'; -import 'package:flutter_ume_kit_channel_monitor/flutter_ume_kit_channel_monitor.dart'; -final Dio dio = Dio()..options = BaseOptions(connectTimeout: 10000); +final Dio dio = Dio() + ..options = BaseOptions(connectTimeout: Duration(milliseconds: 10000)); final navigatorKey = GlobalKey(); diff --git a/example/pubspec.yaml b/example/pubspec.yaml index c1fffa51..9c11f531 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: sdk: flutter provider: ^6.0.3 # For Dio Kit - dio: ^4.0.0 + dio: ^5.1.2 dependency_overrides: vm_service: ^9.4.0 diff --git a/kits/flutter_ume_kit_dio/lib/src/models/http_interceptor.dart b/kits/flutter_ume_kit_dio/lib/src/models/http_interceptor.dart index 7d1a7d05..e01d7c6b 100644 --- a/kits/flutter_ume_kit_dio/lib/src/models/http_interceptor.dart +++ b/kits/flutter_ume_kit_dio/lib/src/models/http_interceptor.dart @@ -36,8 +36,9 @@ class UMEDioInterceptor extends Interceptor { @override void onError(DioError err, ErrorInterceptorHandler handler) { // Create an empty response with the [RequestOptions] for delivery. - err.response ??= Response(requestOptions: err.requestOptions); - err.response!.requestOptions.extra[DIO_EXTRA_END_TIME] = _timestamp; + var errRespon = Response(requestOptions: err.requestOptions); + // err.response ??= Response(requestOptions: err.requestOptions); + errRespon.requestOptions.extra[DIO_EXTRA_END_TIME] = _timestamp; InspectorInstance.httpContainer.addRequest(err.response!); handler.next(err); } diff --git a/kits/flutter_ume_kit_dio/pubspec.yaml b/kits/flutter_ume_kit_dio/pubspec.yaml index b1a23790..70d68cdd 100644 --- a/kits/flutter_ume_kit_dio/pubspec.yaml +++ b/kits/flutter_ume_kit_dio/pubspec.yaml @@ -12,7 +12,7 @@ dependencies: sdk: flutter flutter_ume: ">=1.0.0 <2.0.0" - dio: ^4.0.0 + dio: ^5.1.2 share_plus: ^4.5.3