diff --git a/.fvm/fvm_config.json b/.fvm/fvm_config.json index 792b69f..e7b55eb 100644 --- a/.fvm/fvm_config.json +++ b/.fvm/fvm_config.json @@ -1,3 +1,3 @@ { - "flutterSdkVersion": "3.16.5" + "flutterSdkVersion": "3.22.3" } \ No newline at end of file diff --git a/.fvmrc b/.fvmrc index f9f2fc2..e03e940 100644 --- a/.fvmrc +++ b/.fvmrc @@ -1,4 +1,4 @@ { - "flutter": "3.16.5", + "flutter": "3.22.3", "flavors": {} } \ No newline at end of file diff --git a/.github/workflows/android_package.yaml b/.github/workflows/android_package.yaml index 8c76429..64600bc 100644 --- a/.github/workflows/android_package.yaml +++ b/.github/workflows/android_package.yaml @@ -33,7 +33,7 @@ jobs: - uses: subosito/flutter-action@v1 with: - flutter-version: '3.16.5' + flutter-version: '3.22.3' channel: 'stable' - name: Install dependencies diff --git a/CHANGELOG.md b/CHANGELOG.md index 66fd15a..cafa8b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog -## NEXT - 1.1.0(36) +## 2025-01-03 - v1.2.0(37) + +- #75 | Update to Flutter SDK v3.22.3 +- #76 | Replace Main menu buttons with built-in TextButton to resolve Google UX warning + +## 2024-11-18 - v1.1.0(36) - Update AGP and Gradle version for latest Android Studio Ladybug (2024.2.1 Patch 1) - #35 | Android - opening only specific file types diff --git a/ios/Podfile.lock b/ios/Podfile.lock index be6f800..2ec867f 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -261,7 +261,7 @@ SPEC CHECKSUMS: FirebaseCrashlytics: e568d68ce89117c80cddb04073ab9018725fbb8c FirebaseInstallations: 8f581fca6478a50705d2bd2abd66d306e0f5736e FirebaseSessions: 2651b464e241c93fd44112f995d5ab663c970487 - Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a GoogleMLKit: 2bd0dc6253c4d4f227aad460f69215a504b2980e GoogleToolboxForMac: 8bef7c7c5cf7291c687cf5354f39f9db6399ad34 @@ -277,18 +277,18 @@ SPEC CHECKSUMS: mobile_scanner: 38dcd8a49d7d485f632b7de65e4900010187aef2 nanopb: 438bc412db1928dac798aa6fd75726007be04262 OpenSSL-Universal: 6e1ae0555546e604dbc632a2b9a24a9c46c41ef6 - package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85 - path_provider_foundation: 3784922295ac71e43754bd15e0653ccfd36a147c + package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4 + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 printing: 233e1b73bd1f4a05615548e9b5a324c98588640b PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 PromisesSwift: 9d77319bbe72ebf6d872900551f7eeba9bce2851 SDWebImage: 981fd7e860af070920f249fd092420006014c3eb - share_plus: c3fef564749587fc939ef86ffb283ceac0baf9f5 - shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695 + share_plus: 8b6f8b3447e494cca5317c8c3073de39b3600d1f + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f - url_launcher_ios: bbd758c6e7f9fd7b5b1d4cde34d2b95fcce5e812 - wakelock_plus: 8b09852c8876491e4b6d179e17dfe2a0b5f60d47 - webview_flutter_wkwebview: 4f3e50f7273d31e5500066ed267e3ae4309c5ae4 + url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe + wakelock_plus: 373cfe59b235a6dd5837d0fb88791d2f13a90d56 + webview_flutter_wkwebview: 2a23822e9039b7b1bc52e5add778e5d89ad488d1 PODFILE CHECKSUM: a57f30d18f102dd3ce366b1d62a55ecbef2158e5 diff --git a/lib/di.config.dart b/lib/di.config.dart index 8c76c1e..3613914 100644 --- a/lib/di.config.dart +++ b/lib/di.config.dart @@ -8,113 +8,114 @@ // coverage:ignore-file // ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i17; -import 'dart:io' as _i18; +import 'dart:async' as _i687; +import 'dart:io' as _i497; -import 'package:autogram_sign/autogram_sign.dart' as _i7; -import 'package:eidmsdk/eidmsdk.dart' as _i4; -import 'package:eidmsdk/types.dart' as _i14; -import 'package:flutter/foundation.dart' as _i13; -import 'package:get_it/get_it.dart' as _i1; -import 'package:injectable/injectable.dart' as _i2; +import 'package:autogram_sign/autogram_sign.dart' as _i825; +import 'package:eidmsdk/eidmsdk.dart' as _i713; +import 'package:eidmsdk/types.dart' as _i518; +import 'package:flutter/foundation.dart' as _i971; +import 'package:get_it/get_it.dart' as _i174; +import 'package:injectable/injectable.dart' as _i526; -import 'app_service.dart' as _i3; -import 'bloc/create_document_cubit.dart' as _i16; -import 'bloc/document_validation_cubit.dart' as _i20; -import 'bloc/get_document_signature_type_cubit.dart' as _i22; -import 'bloc/paired_device_list_cubit.dart' as _i8; -import 'bloc/present_signed_document_cubit.dart' as _i9; -import 'bloc/preview_document_cubit.dart' as _i11; -import 'bloc/select_signing_certificate_cubit.dart' as _i12; -import 'bloc/sign_document_cubit.dart' as _i15; -import 'data/document_signing_type.dart' as _i10; -import 'data/pdf_signing_option.dart' as _i19; -import 'di.dart' as _i23; -import 'services/encryption_key_registry.dart' as _i5; -import 'use_case/get_document_signature_type_use_case.dart' as _i21; -import 'use_case/get_document_version_use_case.dart' as _i6; +import 'app_service.dart' as _i403; +import 'bloc/create_document_cubit.dart' as _i374; +import 'bloc/document_validation_cubit.dart' as _i205; +import 'bloc/get_document_signature_type_cubit.dart' as _i767; +import 'bloc/paired_device_list_cubit.dart' as _i578; +import 'bloc/present_signed_document_cubit.dart' as _i687; +import 'bloc/preview_document_cubit.dart' as _i21; +import 'bloc/select_signing_certificate_cubit.dart' as _i1033; +import 'bloc/sign_document_cubit.dart' as _i520; +import 'data/document_signing_type.dart' as _i873; +import 'data/pdf_signing_option.dart' as _i732; +import 'di.dart' as _i913; +import 'services/encryption_key_registry.dart' as _i429; +import 'use_case/get_document_signature_type_use_case.dart' as _i400; +import 'use_case/get_html_document_version_use_case.dart' as _i123; -extension GetItInjectableX on _i1.GetIt { +extension GetItInjectableX on _i174.GetIt { // initializes the registration of main-scope dependencies inside of GetIt - _i1.GetIt init({ + _i174.GetIt init({ String? environment, - _i2.EnvironmentFilter? environmentFilter, + _i526.EnvironmentFilter? environmentFilter, }) { - final gh = _i2.GetItHelper( + final gh = _i526.GetItHelper( this, environment, environmentFilter, ); final extrernalModule = _$ExtrernalModule(); - gh.singleton<_i3.AppService>(() => _i3.AppService()); - gh.lazySingleton<_i4.Eidmsdk>(() => extrernalModule.eidmsdk); - gh.singleton<_i5.EncryptionKeyRegistry>(() => _i5.EncryptionKeyRegistry()); - gh.lazySingleton<_i6.GetHtmlDocumentVersionUseCase>( - () => _i6.GetHtmlDocumentVersionUseCase()); - gh.lazySingleton<_i7.IAutogramService>( - () => extrernalModule.create(gh<_i5.EncryptionKeyRegistry>())); - gh.factory<_i8.PairedDeviceListCubit>( - () => _i8.PairedDeviceListCubit(service: gh<_i7.IAutogramService>())); - gh.factoryParam<_i9.PresentSignedDocumentCubit, - _i7.SignDocumentResponseBody, _i10.DocumentSigningType>(( + gh.singleton<_i403.AppService>(() => _i403.AppService()); + gh.singleton<_i429.EncryptionKeyRegistry>( + () => _i429.EncryptionKeyRegistry()); + gh.lazySingleton<_i713.Eidmsdk>(() => extrernalModule.eidmsdk); + gh.lazySingleton<_i123.GetHtmlDocumentVersionUseCase>( + () => _i123.GetHtmlDocumentVersionUseCase()); + gh.lazySingleton<_i825.IAutogramService>( + () => extrernalModule.create(gh<_i429.EncryptionKeyRegistry>())); + gh.factoryParam<_i687.PresentSignedDocumentCubit, + _i825.SignDocumentResponseBody, _i873.DocumentSigningType>(( signedDocument, signingType, ) => - _i9.PresentSignedDocumentCubit( - appService: gh<_i3.AppService>(), + _i687.PresentSignedDocumentCubit( + appService: gh<_i403.AppService>(), signedDocument: signedDocument, signingType: signingType, )); - gh.factoryParam<_i11.PreviewDocumentCubit, String, dynamic>(( + gh.factoryParam<_i374.CreateDocumentCubit, _i687.FutureOr<_i497.File>, + _i732.PdfSigningOption>(( + file, + pdfSigningOption, + ) => + _i374.CreateDocumentCubit( + service: gh<_i825.IAutogramService>(), + file: file, + pdfSigningOption: pdfSigningOption, + )); + gh.factoryParam<_i520.SignDocumentCubit, String, _i518.Certificate>(( documentId, - _, + certificate, ) => - _i11.PreviewDocumentCubit( - service: gh<_i7.IAutogramService>(), + _i520.SignDocumentCubit( + service: gh<_i825.IAutogramService>(), + eidmsdk: gh<_i713.Eidmsdk>(), documentId: documentId, + certificate: certificate, )); - gh.factoryParam<_i12.SelectSigningCertificateCubit, - _i13.ValueNotifier<_i14.Certificate?>, dynamic>(( + gh.factoryParam<_i1033.SelectSigningCertificateCubit, + _i971.ValueNotifier<_i518.Certificate?>, dynamic>(( signingCertificate, _, ) => - _i12.SelectSigningCertificateCubit( - eidmsdk: gh<_i4.Eidmsdk>(), + _i1033.SelectSigningCertificateCubit( + eidmsdk: gh<_i713.Eidmsdk>(), signingCertificate: signingCertificate, )); - gh.factoryParam<_i15.SignDocumentCubit, String, _i14.Certificate>(( + gh.factory<_i205.DocumentValidationCubit>(() => + _i205.DocumentValidationCubit(service: gh<_i825.IAutogramService>())); + gh.factory<_i578.PairedDeviceListCubit>(() => + _i578.PairedDeviceListCubit(service: gh<_i825.IAutogramService>())); + gh.lazySingleton<_i400.GetDocumentSignatureTypeUseCase>(() => + _i400.GetDocumentSignatureTypeUseCase(gh<_i825.IAutogramService>())); + gh.factoryParam<_i21.PreviewDocumentCubit, String, dynamic>(( documentId, - certificate, + _, ) => - _i15.SignDocumentCubit( - service: gh<_i7.IAutogramService>(), - eidmsdk: gh<_i4.Eidmsdk>(), + _i21.PreviewDocumentCubit( + service: gh<_i825.IAutogramService>(), documentId: documentId, - certificate: certificate, - )); - gh.factoryParam<_i16.CreateDocumentCubit, _i17.FutureOr<_i18.File>, - _i19.PdfSigningOption>(( - file, - pdfSigningOption, - ) => - _i16.CreateDocumentCubit( - service: gh<_i7.IAutogramService>(), - file: file, - pdfSigningOption: pdfSigningOption, )); - gh.factory<_i20.DocumentValidationCubit>(() => - _i20.DocumentValidationCubit(service: gh<_i7.IAutogramService>())); - gh.lazySingleton<_i21.GetDocumentSignatureTypeUseCase>( - () => _i21.GetDocumentSignatureTypeUseCase(gh<_i7.IAutogramService>())); - gh.factory<_i22.GetDocumentSignatureTypeCubit>(() => - _i22.GetDocumentSignatureTypeCubit( + gh.factory<_i767.GetDocumentSignatureTypeCubit>(() => + _i767.GetDocumentSignatureTypeCubit( getDocumentSignatureType: - gh<_i21.GetDocumentSignatureTypeUseCase>())); + gh<_i400.GetDocumentSignatureTypeUseCase>())); return this; } } -class _$ExtrernalModule extends _i23.ExtrernalModule { +class _$ExtrernalModule extends _i913.ExtrernalModule { @override - _i4.Eidmsdk get eidmsdk => _i4.Eidmsdk(); + _i713.Eidmsdk get eidmsdk => _i713.Eidmsdk(); } diff --git a/lib/file_extensions.dart b/lib/file_extensions.dart index edff7df..b867311 100644 --- a/lib/file_extensions.dart +++ b/lib/file_extensions.dart @@ -9,6 +9,6 @@ extension FileExtensions on File { /// Returns redacted file info usable for logging. /// /// In case of [kDebugMode], full [File.path] is returned; - /// "???.[FileExtensions.extension]" otherwise. + /// "???.[extension]" otherwise. String get redactedInfo => (kDebugMode ? path : "???$extension"); } diff --git a/lib/ui/app_theme.dart b/lib/ui/app_theme.dart index 11f8a69..8e26005 100644 --- a/lib/ui/app_theme.dart +++ b/lib/ui/app_theme.dart @@ -28,17 +28,18 @@ ThemeData appTheme( BuildContext context, { Brightness? brightness, }) { - const color = Color(0xFF126DFF); + const primaryColor = Color(0xFF126DFF); final colorScheme = ColorScheme.fromSeed( brightness: brightness ?? MediaQuery.platformBrightnessOf(context), - seedColor: color, + seedColor: primaryColor, + primary: primaryColor, ); final textTheme = Theme.of(context).textTheme.apply( fontSizeFactor: 1.2, ); final appBarTheme = AppBarTheme( titleTextStyle: TextStyle( - color: colorScheme.onBackground, + color: colorScheme.onSurface, fontSize: 20, fontWeight: FontWeight.w700, letterSpacing: 0.15, @@ -46,12 +47,12 @@ ThemeData appTheme( ); final dialogTheme = DialogTheme( titleTextStyle: TextStyle( - color: colorScheme.onBackground, + color: colorScheme.onSurface, fontSize: 20, fontWeight: FontWeight.w700, letterSpacing: 0.15, ), - surfaceTintColor: colorScheme.background, + surfaceTintColor: colorScheme.surface, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(8)), ), @@ -72,7 +73,7 @@ ThemeData appTheme( return ThemeData( useMaterial3: true, - primaryColor: color, + primaryColor: primaryColor, colorScheme: colorScheme, fontFamily: "Source Sans 3", // see /assets/fonts @@ -89,6 +90,11 @@ ThemeData appTheme( textStyle: buttonTextStyle, ), ), + elevatedButtonTheme: ElevatedButtonThemeData( + style: ElevatedButton.styleFrom( + textStyle: buttonTextStyle, + ), + ), filledButtonTheme: FilledButtonThemeData( style: FilledButton.styleFrom( shape: buttonShape, diff --git a/lib/ui/fragment/show_web_page_fragment.dart b/lib/ui/fragment/show_web_page_fragment.dart index d219e88..ee73c30 100644 --- a/lib/ui/fragment/show_web_page_fragment.dart +++ b/lib/ui/fragment/show_web_page_fragment.dart @@ -48,7 +48,7 @@ class _ShowWebPageFragmentState extends State { if (!kIsWeb) { controller ..setJavaScriptMode(JavaScriptMode.unrestricted) - ..setBackgroundColor(Theme.of(context).colorScheme.background) + ..setBackgroundColor(Theme.of(context).colorScheme.surface) // In HTML, onPageFinished could be iframe.onload, // however there is no case for onPageStarted, onWebResourceError ..setNavigationDelegate(NavigationDelegate( diff --git a/lib/ui/screens/main_menu_screen.dart b/lib/ui/screens/main_menu_screen.dart index c425627..315c6ac 100644 --- a/lib/ui/screens/main_menu_screen.dart +++ b/lib/ui/screens/main_menu_screen.dart @@ -1,3 +1,5 @@ +import 'dart:developer' as developer; + import 'package:flutter/material.dart'; import 'package:widgetbook_annotation/widgetbook_annotation.dart' as widgetbook; @@ -15,71 +17,87 @@ import 'start_remote_document_signing_screen.dart'; /// - link to show Privacy Policy or Terms of Service in [ShowDocumentScreen] /// - link to show [AboutScreen] class MainMenuScreen extends StatelessWidget { - const MainMenuScreen({super.key}); + final void Function(BuildContext context) onShowSettingsPressed; + final void Function(BuildContext context) onSignRemoteDocumentPressed; + final void Function(BuildContext context) onShowPrivacyPolicyPressed; + final void Function(BuildContext context) onShowTermsOfServicePressed; + final void Function(BuildContext context) onShowAboutPressed; + + /// [MainMenuScreen] constructor with params for preview. + const MainMenuScreen._({ + super.key, + required this.onShowSettingsPressed, + required this.onSignRemoteDocumentPressed, + required this.onShowPrivacyPolicyPressed, + required this.onShowTermsOfServicePressed, + required this.onShowAboutPressed, + }); + + /// Creates new [MainMenuScreen] with default handlers. + const MainMenuScreen.create({Key? key}) + : this._( + key: key, + onShowSettingsPressed: _showSettings, + onSignRemoteDocumentPressed: _showSignRemoteDocument, + onShowPrivacyPolicyPressed: _showPrivacyPolicy, + onShowTermsOfServicePressed: _showTermsOfService, + onShowAboutPressed: _showAbout, + ); @override Widget build(BuildContext context) { final strings = context.strings; + final children = [ + const Spacer(flex: 1), + Padding( + padding: const EdgeInsets.only(left: 10, bottom: 20), + child: Semantics( + header: true, + child: Text( + strings.menuTitle, + style: const TextStyle( + fontSize: 20, + fontWeight: FontWeight.w700, + letterSpacing: 0.15, + ), + ), + ), + ), + _MenuItem( + title: strings.settingsTitle, + onPressed: () => onShowSettingsPressed(context), + ), + _MenuItem( + title: strings.signRemoteDocumentTitle, + onPressed: () => onSignRemoteDocumentPressed(context), + ), + _MenuItem( + title: strings.privacyPolicyTitle, + onPressed: () => onShowPrivacyPolicyPressed(context), + ), + _MenuItem( + title: strings.termsOfServiceTitle, + onPressed: () => onShowTermsOfServicePressed(context), + ), + _MenuItem( + title: strings.aboutTitle, + onPressed: () => onShowAboutPressed(context), + ), + const Spacer(flex: 1), + const AppVersionText( + textStyle: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w400, + letterSpacing: 0.5, + ), + ), + ]; final body = Padding( - padding: const EdgeInsets.symmetric(horizontal: 40, vertical: 30), + padding: const EdgeInsets.symmetric(horizontal: 30, vertical: 30), child: Column( crossAxisAlignment: CrossAxisAlignment.start, - children: [ - const Spacer(flex: 1), - Padding( - padding: const EdgeInsets.only(bottom: 20), - child: Semantics( - header: true, - child: Text( - strings.menuTitle, - style: const TextStyle( - fontSize: 20, - fontWeight: FontWeight.w700, - letterSpacing: 0.15, - ), - ), - ), - ), - _MenuItem( - title: strings.settingsTitle, - onPressed: () { - _showSettings(context); - }, - ), - _MenuItem( - title: strings.signRemoteDocumentTitle, - onPressed: () { - _showSignRemoteDocument(context); - }, - ), - _MenuItem( - title: strings.privacyPolicyTitle, - onPressed: () { - _showPrivacyPolicy(context); - }, - ), - _MenuItem( - title: strings.termsOfServiceTitle, - onPressed: () { - _showTermsOfService(context); - }, - ), - _MenuItem( - title: strings.aboutTitle, - onPressed: () { - _showAbout(context); - }, - ), - const Spacer(flex: 1), - const AppVersionText( - textStyle: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w400, - letterSpacing: 0.5, - ), - ), - ], + children: children, ), ); @@ -141,6 +159,7 @@ class MainMenuScreen extends StatelessWidget { } } +/// Single clickable menu item. class _MenuItem extends StatelessWidget { final String title; final VoidCallback? onPressed; @@ -149,25 +168,17 @@ class _MenuItem extends StatelessWidget { @override Widget build(BuildContext context) { - final text = Text( - title, - style: const TextStyle( - fontSize: 16, - fontWeight: FontWeight.w700, - letterSpacing: 0.4, + return TextButton( + onPressed: onPressed, + style: TextButton.styleFrom( + foregroundColor: Theme.of(context).colorScheme.onSurface, ), - ); - - return Padding( - padding: const EdgeInsets.symmetric(vertical: 4), - child: Semantics( - button: true, - child: InkWell( - onTap: onPressed, - child: Padding( - padding: const EdgeInsets.symmetric(vertical: 8), - child: text, - ), + child: Text( + title, + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.w700, + letterSpacing: 0.4, ), ), ); @@ -180,5 +191,11 @@ class _MenuItem extends StatelessWidget { type: MainMenuScreen, ) Widget previewMainMenuScreen(BuildContext context) { - return const MainMenuScreen(); + return MainMenuScreen._( + onShowSettingsPressed: (_) => developer.log("Show Settings"), + onSignRemoteDocumentPressed: (_) => developer.log("Sign Remote Document"), + onShowPrivacyPolicyPressed: (_) => developer.log("Show Privacy Policy"), + onShowTermsOfServicePressed: (_) => developer.log("Show Terms of Service"), + onShowAboutPressed: (_) => developer.log("Show About"), + ); } diff --git a/lib/ui/screens/main_screen.dart b/lib/ui/screens/main_screen.dart index adddd8a..2d3d704 100644 --- a/lib/ui/screens/main_screen.dart +++ b/lib/ui/screens/main_screen.dart @@ -123,7 +123,7 @@ class _MainScreenState extends State { } Future _showMenu() { - const screen = MainMenuScreen(); + const screen = MainMenuScreen.create(); return showGeneralDialog( context: context, diff --git a/lib/ui/screens/onboarding_accept_document_screen.dart b/lib/ui/screens/onboarding_accept_document_screen.dart index 4dbcd46..1738478 100644 --- a/lib/ui/screens/onboarding_accept_document_screen.dart +++ b/lib/ui/screens/onboarding_accept_document_screen.dart @@ -7,7 +7,7 @@ import 'package:widgetbook_annotation/widgetbook_annotation.dart' as widgetbook; import '../../di.dart'; import '../../strings_context.dart'; -import '../../use_case/get_document_version_use_case.dart'; +import '../../use_case/get_html_document_version_use_case.dart'; import '../../util/errors.dart'; import '../app_theme.dart'; import '../fragment/show_web_page_fragment.dart'; diff --git a/lib/ui/screens/qr_code_scanner_screen.dart b/lib/ui/screens/qr_code_scanner_screen.dart index ef2e39f..a6afaa5 100644 --- a/lib/ui/screens/qr_code_scanner_screen.dart +++ b/lib/ui/screens/qr_code_scanner_screen.dart @@ -68,7 +68,7 @@ class _QRCodeScannerScreenState extends State { }, child: Icon( Icons.arrow_back, - color: Theme.of(context).colorScheme.onBackground, + color: Theme.of(context).colorScheme.onSurface, ), ), ), @@ -81,7 +81,7 @@ class _QRCodeScannerScreenState extends State { child: _ViewFinder(), ), - // Toggle troch button + // Toggle torch button Align( alignment: Alignment.bottomRight, child: Padding( @@ -98,11 +98,10 @@ class _QRCodeScannerScreenState extends State { TorchState.on => Icons.flashlight_off, }; + final strings = context.strings; final semanticsLabel = switch (torchState) { - TorchState.off => - context.strings.qrCodeScannerTorchOnSemantics, - TorchState.on => - context.strings.qrCodeScannerTorchOffSemantics, + TorchState.off => strings.qrCodeScannerTorchOnSemantics, + TorchState.on => strings.qrCodeScannerTorchOffSemantics, }; return Semantics( @@ -110,7 +109,7 @@ class _QRCodeScannerScreenState extends State { label: semanticsLabel, child: Icon( icon, - color: Theme.of(context).colorScheme.onBackground, + color: Theme.of(context).colorScheme.onSurface, ), ); }, @@ -150,7 +149,7 @@ class _QRCodeScannerScreenState extends State { style: FilledButton.styleFrom( minimumSize: size, padding: EdgeInsets.zero, - backgroundColor: colors.background, + backgroundColor: colors.surface, ), child: child, ); @@ -285,7 +284,7 @@ class _InfoPanel extends StatelessWidget { padding: const EdgeInsets.only(top: iconSize / 2), child: Container( decoration: BoxDecoration( - color: Theme.of(context).colorScheme.background, + color: Theme.of(context).colorScheme.surface, borderRadius: const BorderRadius.all(Radius.circular(16)), ), width: double.infinity, diff --git a/lib/ui/widgets/buttons.dart b/lib/ui/widgets/buttons.dart index e0ebad8..9f52dc7 100644 --- a/lib/ui/widgets/buttons.dart +++ b/lib/ui/widgets/buttons.dart @@ -14,6 +14,7 @@ abstract class Button {} type: Button, ) Widget previewTextButton(BuildContext context) { + final enabled = context.knobs.boolean(label: "Enabled", initialValue: true); final text = context.knobs.string( label: "Text", initialValue: "Button text", @@ -22,7 +23,28 @@ Widget previewTextButton(BuildContext context) { return Padding( padding: kScreenMargin, child: TextButton( - onPressed: () {}, + onPressed: (enabled ? () {} : null), + child: Text(text), + ), + ); +} + +@widgetbook.UseCase( + path: '[AVM]', + name: 'elevated', + type: Button, +) +Widget previewElevatedButton(BuildContext context) { + final enabled = context.knobs.boolean(label: "Enabled", initialValue: true); + final text = context.knobs.string( + label: "Text", + initialValue: "Button text", + ); + + return Padding( + padding: kScreenMargin, + child: ElevatedButton( + onPressed: (enabled ? () {} : null), child: Text(text), ), ); @@ -34,7 +56,8 @@ Widget previewTextButton(BuildContext context) { type: Button, ) Widget previewFilledButton(BuildContext context) { - final isLoading = context.knobs.boolean(label: "Loading?"); + final enabled = context.knobs.boolean(label: "Enabled", initialValue: true); + final isLoading = context.knobs.boolean(label: "Loading"); final text = context.knobs.string( label: "Text", initialValue: "Button text", @@ -47,7 +70,7 @@ Widget previewFilledButton(BuildContext context) { return Padding( padding: kScreenMargin, child: FilledButton( - onPressed: () {}, + onPressed: (enabled ? () {} : null), child: child, ), ); diff --git a/lib/ui/widgets/document_signature_info.dart b/lib/ui/widgets/document_signature_info.dart index cbd6f88..89cb50b 100644 --- a/lib/ui/widgets/document_signature_info.dart +++ b/lib/ui/widgets/document_signature_info.dart @@ -20,7 +20,8 @@ typedef _ValidationResult /// on right side. class DocumentSignatureInfo extends StatelessWidget { final TbsCertificate certificate; - final _ValidationResult validationResult; + final DocumentValidationResponseBody$Signatures$ItemValidationResult + validationResult; final SigningCertificateQualification qualification; final bool areQualifiedTimestamps; diff --git a/lib/ui/widgets/html_preview.dart b/lib/ui/widgets/html_preview.dart index a833e3f..df68c81 100644 --- a/lib/ui/widgets/html_preview.dart +++ b/lib/ui/widgets/html_preview.dart @@ -32,7 +32,7 @@ class _HtmlPreviewState extends State { super.didChangeDependencies(); if (!kIsWeb) { - controller.setBackgroundColor(Theme.of(context).colorScheme.background); + controller.setBackgroundColor(Theme.of(context).colorScheme.surface); } } @@ -60,6 +60,6 @@ class _HtmlPreviewState extends State { ) Widget previewHtmlPreview(BuildContext context) { return HtmlPreview( - htmlDataSource: Future.value("

Hello world!

"), + htmlDataSource: Future.value("

Hello world!

"), ); } diff --git a/lib/use_case/get_document_version_use_case.dart b/lib/use_case/get_html_document_version_use_case.dart similarity index 100% rename from lib/use_case/get_document_version_use_case.dart rename to lib/use_case/get_html_document_version_use_case.dart diff --git a/lib/widgetbook_app.directories.g.dart b/lib/widgetbook_app.directories.g.dart index 59389d6..b54e0cd 100644 --- a/lib/widgetbook_app.directories.g.dart +++ b/lib/widgetbook_app.directories.g.dart @@ -98,6 +98,10 @@ final directories = <_i1.WidgetbookNode>[ _i1.WidgetbookComponent( name: 'Button', useCases: [ + _i1.WidgetbookUseCase( + name: 'elevated', + builder: _i6.previewElevatedButton, + ), _i1.WidgetbookUseCase( name: 'filled', builder: _i6.previewFilledButton, diff --git a/pubspec.lock b/pubspec.lock index 8f01dce..7a4df54 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: eb376e9acf6938204f90eb3b1f00b578640d3188b4c8a8ec054f9f479af8d051 + sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7" url: "https://pub.dev" source: hosted - version: "64.0.0" + version: "67.0.0" _flutterfire_internals: dependency: transitive description: @@ -21,18 +21,18 @@ packages: dependency: transitive description: name: accessibility_tools - sha256: "0a16adc8dfa3a7ebd38775135d86443011a65d4ecbb438913e4992b5d29135fe" + sha256: b49df78d786610d642f16787a84da737bcc4dd18533a9cb41cb35eb5ceee5e4c url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "2.3.0" analyzer: dependency: transitive description: name: analyzer - sha256: "69f54f967773f6c26c7dcb13e93d7ccee8b17a641689da39e878d5cf13b06893" + sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d" url: "https://pub.dev" source: hosted - version: "6.2.0" + version: "6.4.1" archive: dependency: transitive description: @@ -45,10 +45,10 @@ packages: dependency: transitive description: name: args - sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" + sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6 url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.6.0" async: dependency: transitive description: @@ -126,10 +126,10 @@ packages: dependency: transitive description: name: build_daemon - sha256: "0343061a33da9c5810b2d6cee51945127d8f4c060b7fbdd9d54917f0a3feaaa1" + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" url: "https://pub.dev" source: hosted - version: "4.0.1" + version: "4.0.2" build_resolvers: dependency: transitive description: @@ -142,18 +142,18 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" + sha256: "644dc98a0f179b872f612d3eb627924b578897c629788e858157fa5e704ca0c7" url: "https://pub.dev" source: hosted - version: "2.4.9" + version: "2.4.11" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "4ae8ffe5ac758da294ecf1802f2aff01558d8b1b00616aa7538ea9a8a5d50799" + sha256: e3c79f69a64bdfcd8a776a3c28db4eb6e3fb5356d013ae5eb2e52007706d5dbe url: "https://pub.dev" source: hosted - version: "7.3.0" + version: "7.3.1" built_collection: dependency: transitive description: @@ -166,10 +166,10 @@ packages: dependency: transitive description: name: built_value - sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb + sha256: "28a712df2576b63c6c005c465989a348604960c0958d28be5303ba9baa841ac2" url: "https://pub.dev" source: hosted - version: "8.9.2" + version: "8.9.3" characters: dependency: transitive description: @@ -222,42 +222,42 @@ packages: dependency: transitive description: name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.1.2" coverage: dependency: transitive description: name: coverage - sha256: "3945034e86ea203af7a056d98e98e42a5518fff200d6e8e6647e1886b07e936e" + sha256: e3493833ea012784c740e341952298f1cc77f1f01b1bbc3eb4eecf6984fb7f43 url: "https://pub.dev" source: hosted - version: "1.8.0" + version: "1.11.1" cross_file: dependency: transitive description: name: cross_file - sha256: fedaadfa3a6996f75211d835aaeb8fede285dae94262485698afd832371b9a5e + sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" url: "https://pub.dev" source: hosted - version: "0.3.3+8" + version: "0.3.4+2" crypto: dependency: transitive description: name: crypto - sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.6" csslib: dependency: transitive description: name: csslib - sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb" + sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.2" dart_style: dependency: transitive description: @@ -278,10 +278,10 @@ packages: dependency: transitive description: name: device_frame - sha256: afe76182aec178d171953d9b4a50a43c57c7cf3c77d8b09a48bf30c8fa04dd9d + sha256: d031a06f5d6f4750009672db98a5aa1536aa4a231713852469ce394779a23d75 url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.2.0" dotted_border: dependency: "direct main" description: @@ -303,10 +303,10 @@ packages: dependency: transitive description: name: equatable - sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2 + sha256: "567c64b3cb4cf82397aac55f4f0cbd3ca20d77c6c03bedbc4ceaddc08904aef7" url: "https://pub.dev" source: hosted - version: "2.0.5" + version: "2.0.7" fake_async: dependency: transitive description: @@ -319,26 +319,26 @@ packages: dependency: transitive description: name: ffi - sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" + sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.3" file: dependency: transitive description: name: file - sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 url: "https://pub.dev" source: hosted - version: "7.0.0" + version: "7.0.1" file_picker: dependency: "direct main" description: name: file_picker - sha256: d1d0ac3966b36dc3e66eeefb40280c17feb87fa2099c6e22e6a1fc959327bd03 + sha256: c2376a6aae82358a9f9ccdd7d1f4006d08faa39a2767cce01031d9f593a8bd3b url: "https://pub.dev" source: hosted - version: "8.0.0+1" + version: "8.1.6" firebase_core: dependency: "direct main" description: @@ -351,18 +351,18 @@ packages: dependency: transitive description: name: firebase_core_platform_interface - sha256: f7d7180c7f99babd4b4c517754d41a09a4943a0f7a69b65c894ca5c68ba66315 + sha256: d7253d255ff10f85cfd2adaba9ac17bae878fa3ba577462451163bd9f1d1f0bf url: "https://pub.dev" source: hosted - version: "5.2.1" + version: "5.4.0" firebase_core_web: dependency: transitive description: name: firebase_core_web - sha256: c8e1d59385eee98de63c92f961d2a7062c5d9a65e7f45bdc7f1b0b205aab2492 + sha256: fbc008cf390d909b823763064b63afefe9f02d8afdb13eb3f485b871afee956b url: "https://pub.dev" source: hosted - version: "2.11.5" + version: "2.19.0" firebase_crashlytics: dependency: "direct main" description: @@ -383,10 +383,10 @@ packages: dependency: transitive description: name: fixnum - sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" flutter: dependency: "direct main" description: flutter @@ -425,26 +425,26 @@ packages: dependency: "direct main" description: name: flutter_markdown - sha256: "5b24061317f850af858ef7151dadbb6eb77c1c449c954c7bb064e8a5e0e7d81f" + sha256: "255b00afa1a7bad19727da6a7780cf3db6c3c12e68d302d85e0ff1fdf173db9e" url: "https://pub.dev" source: hosted - version: "0.6.20" + version: "0.7.4+3" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "8cf40eebf5dec866a6d1956ad7b4f7016e6c0cc69847ab946833b7d43743809f" + sha256: "9ee02950848f61c4129af3d6ec84a1cfc0e47931abc746b03e7a3bc3e8ff6eda" url: "https://pub.dev" source: hosted - version: "2.0.19" + version: "2.0.22" flutter_svg: dependency: "direct main" description: name: flutter_svg - sha256: "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2" + sha256: "54900a1a1243f3c4a5506d853a2b5c2dbc38d5f27e52a52618a8054401431123" url: "https://pub.dev" source: hosted - version: "2.0.10+1" + version: "2.0.16" flutter_test: dependency: "direct dev" description: flutter @@ -467,18 +467,18 @@ packages: dependency: transitive description: name: frontend_server_client - sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "4.0.0" get_it: dependency: "direct main" description: name: get_it - sha256: e6017ce7fdeaf218dc51a100344d8cb70134b80e28b760f8bb23c242437bafd7 + sha256: f126a3e286b7f5b578bf436d5592968706c4c1de28a228b870ce375d9f743103 url: "https://pub.dev" source: hosted - version: "7.6.7" + version: "8.0.3" glob: dependency: transitive description: @@ -491,34 +491,34 @@ packages: dependency: transitive description: name: graphs - sha256: aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19 + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" html: dependency: "direct main" description: name: html - sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a" + sha256: "1fc58edeaec4307368c60d59b7e15b9d658b57d7f3125098b6294153c75337ec" url: "https://pub.dev" source: hosted - version: "0.15.4" + version: "0.15.5" http: dependency: "direct main" description: name: http - sha256: a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.2.2" http_multi_server: dependency: transitive description: name: http_multi_server - sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.2" http_parser: dependency: transitive description: @@ -531,26 +531,26 @@ packages: dependency: transitive description: name: image - sha256: "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8" + sha256: f31d52537dc417fdcde36088fdf11d191026fd5e4fae742491ebd40e5a8bea7d url: "https://pub.dev" source: hosted - version: "4.2.0" + version: "4.3.0" injectable: dependency: "direct main" description: name: injectable - sha256: "44b4aa254816b23bf0a3285ff27da3ff0b516a6f00e0bbbea7b194f14fbb75a7" + sha256: "5e1556ea1d374fe44cbe846414d9bab346285d3d8a1da5877c01ad0774006068" url: "https://pub.dev" source: hosted - version: "2.3.5" + version: "2.5.0" injectable_generator: dependency: "direct dev" description: name: injectable_generator - sha256: "7fb573114f8bbdd169f7ae9b0bcd13f464e8170454c27be816d5a1bb39ac8086" + sha256: af403d76c7b18b4217335e0075e950cd0579fd7f8d7bd47ee7c85ada31680ba1 url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.6.2" inspector: dependency: transitive description: @@ -563,26 +563,26 @@ packages: dependency: "direct main" description: name: intl - sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.18.1" + version: "0.19.0" io: dependency: transitive description: name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" + sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.5" js: dependency: transitive description: name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf url: "https://pub.dev" source: hosted - version: "0.6.7" + version: "0.7.1" json_annotation: dependency: transitive description: @@ -591,6 +591,30 @@ packages: url: "https://pub.dev" source: hosted version: "4.9.0" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + url: "https://pub.dev" + source: hosted + version: "10.0.4" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" + url: "https://pub.dev" + source: hosted + version: "3.0.3" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" lints: dependency: transitive description: @@ -611,10 +635,10 @@ packages: dependency: "direct main" description: name: logging - sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.0" markdown: dependency: transitive description: @@ -627,26 +651,26 @@ packages: dependency: transitive description: name: matcher - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb url: "https://pub.dev" source: hosted - version: "0.12.16" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.8.0" meta: dependency: transitive description: name: meta - sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.12.0" mime: dependency: transitive description: @@ -691,34 +715,34 @@ packages: dependency: transitive description: name: package_config - sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + sha256: "92d4488434b520a62570293fbd33bb556c7d49230791c1b4bbd973baf6d2dc67" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" package_info_plus: dependency: "direct main" description: name: package_info_plus - sha256: "88bc797f44a94814f2213db1c9bd5badebafdfb8290ca9f78d4b9ee2a3db4d79" + sha256: "70c421fe9d9cc1a9a7f3b05ae56befd469fe4f8daa3b484823141a55442d858d" url: "https://pub.dev" source: hosted - version: "5.0.1" + version: "8.1.2" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6" + sha256: a5ef9986efc7bf772f2696183a3992615baa76c1ffb1189318dd8803778fb05b url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.2" path: dependency: "direct main" description: name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.8.3" + version: "1.9.0" path_drawing: dependency: transitive description: @@ -731,34 +755,34 @@ packages: dependency: transitive description: name: path_parsing - sha256: e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf + sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca" url: "https://pub.dev" source: hosted - version: "1.0.1" + version: "1.1.0" path_provider: dependency: "direct main" description: name: path_provider - sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 + sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.5" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: a248d8146ee5983446bf03ed5ea8f6533129a12b11f12057ad1b4a67a2b3b41d + sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7" url: "https://pub.dev" source: hosted - version: "2.2.4" + version: "2.2.10" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f" + sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.1" path_provider_linux: dependency: transitive description: @@ -795,10 +819,10 @@ packages: dependency: transitive description: name: pdf_widget_wrapper - sha256: e9d31fd7782ce28ae346b127ea7d1cd748d799bddee379f31191693610e23749 + sha256: c930860d987213a3d58c7ec3b7ecf8085c3897f773e8dc23da9cae60a5d6d0f5 url: "https://pub.dev" source: hosted - version: "1.0.1" + version: "1.0.4" petitparser: dependency: transitive description: @@ -811,10 +835,10 @@ packages: dependency: transitive description: name: platform - sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" url: "https://pub.dev" source: hosted - version: "3.1.5" + version: "3.1.6" plugin_platform_interface: dependency: transitive description: @@ -843,10 +867,10 @@ packages: dependency: "direct main" description: name: printing - sha256: "1c99cab90ebcc1fff65831d264627d5b529359d563e53f33ab9b8117f2d280bc" + sha256: b535d177fc6e8f8908e19b0ff5c1d4a87e3c4d0bf675e05aa2562af1b7853906 url: "https://pub.dev" source: hosted - version: "5.12.0" + version: "5.13.4" provider: dependency: "direct main" description: @@ -859,34 +883,34 @@ packages: dependency: transitive description: name: pub_semver - sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" + sha256: "7b3cfbf654f3edd0c6298ecd5be782ce997ddf0e00531b9464b55245185bbbbd" url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.5" pubspec_parse: dependency: transitive description: name: pubspec_parse - sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 + sha256: "81876843eb50dc2e1e5b151792c9a985c5ed2536914115ed04e9c8528f6647b0" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" qr: dependency: transitive description: name: qr - sha256: "64957a3930367bf97cc211a5af99551d630f2f4625e38af10edd6b19131b64b3" + sha256: "5a1d2586170e172b8a8c8470bbbffd5eb0cd38a66c0d77155ea138d3af3a4445" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" qs_dart: dependency: transitive description: name: qs_dart - sha256: "8dddeaf1d32fe407e253840b2c25c9ab5bf347d2761d82cb4ce010096565c9ff" + sha256: "56734fa99a8cc43d72b7396f26c0dad7d1a4ae4bfedc614e94e07ae7a833a179" url: "https://pub.dev" source: hosted - version: "1.2.3" + version: "1.3.0" recase: dependency: transitive description: @@ -923,50 +947,50 @@ packages: dependency: "direct main" description: name: share_plus - sha256: "3ef39599b00059db0990ca2e30fca0a29d8b37aae924d60063f8e0184cf20900" + sha256: "6327c3f233729374d0abaafd61f6846115b2a481b4feddd8534211dc10659400" url: "https://pub.dev" source: hosted - version: "7.2.2" + version: "10.1.3" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "251eb156a8b5fa9ce033747d73535bf53911071f8d3b6f4f0b578505ce0d4496" + sha256: cc012a23fc2d479854e6c80150696c4a5f5bb62cb89af4de1c505cf78d0a5d0b url: "https://pub.dev" source: hosted - version: "3.4.0" + version: "5.0.2" shared_preferences: dependency: transitive description: name: shared_preferences - sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180 + sha256: "95f9997ca1fb9799d494d0cb2a780fd7be075818d59f00c43832ed112b158a82" url: "https://pub.dev" source: hosted - version: "2.2.3" + version: "2.3.3" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "1ee8bf911094a1b592de7ab29add6f826a7331fb854273d55918693d5364a1f2" + sha256: "480ba4345773f56acda9abf5f50bd966f581dac5d514e5fc4a18c62976bbba7e" url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.3.2" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c" + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" url: "https://pub.dev" source: hosted - version: "2.3.5" + version: "2.5.4" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux - sha256: "2ba0510d3017f91655b7543e9ee46d48619de2a2af38e5c790423f7007c7ccc1" + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.1" shared_preferences_platform_interface: dependency: transitive description: @@ -979,18 +1003,18 @@ packages: dependency: transitive description: name: shared_preferences_web - sha256: "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21" + sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.4.2" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows - sha256: "398084b47b7f92110683cac45c6dc4aae853db47e470e5ddcd52cab7f7196ab2" + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.1" shelf: dependency: transitive description: @@ -1011,10 +1035,10 @@ packages: dependency: transitive description: name: shelf_static - sha256: a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e + sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3 url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.3" shelf_web_socket: dependency: transitive description: @@ -1040,18 +1064,18 @@ packages: dependency: transitive description: name: source_map_stack_trace - sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae" + sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" source_maps: dependency: transitive description: name: source_maps - sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703" + sha256: "190222579a448b03896e0ca6eca5998fa810fda630c1d65e2f78b3f638f54812" url: "https://pub.dev" source: hosted - version: "0.10.12" + version: "0.10.13" source_span: dependency: transitive description: @@ -1088,10 +1112,10 @@ packages: dependency: transitive description: name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" + sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" string_scanner: dependency: transitive description: @@ -1112,34 +1136,34 @@ packages: dependency: "direct dev" description: name: test - sha256: a1f7595805820fcc05e5c52e3a231aedd0b72972cb333e8c738a8b1239448b6f + sha256: "7ee446762c2c50b3bd4ea96fe13ffac69919352bd3b4b17bac3f3465edc58073" url: "https://pub.dev" source: hosted - version: "1.24.9" + version: "1.25.2" test_api: dependency: transitive description: name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.7.0" test_core: dependency: transitive description: name: test_core - sha256: a757b14fc47507060a162cc2530d9a4a2f92f5100a952c7443b5cad5ef5b106a + sha256: "2bc4b4ecddd75309300d8096f781c0e3280ca1ef85beda558d33fcbedc2eead4" url: "https://pub.dev" source: hosted - version: "0.5.9" + version: "0.6.0" timing: dependency: transitive description: name: timing - sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" + sha256: "62ee18aca144e4a9f29d212f5a4c6a053be252b895ab14b5821996cff4ed90fe" url: "https://pub.dev" source: hosted - version: "1.0.1" + version: "1.0.2" typed_data: dependency: transitive description: @@ -1152,42 +1176,42 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3" + sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603" url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.3.1" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "17cd5e205ea615e2c6ea7a77323a11712dffa0720a8a90540db57a01347f9ad9" + sha256: f0c73347dfcfa5b3db8bc06e1502668265d39c08f310c29bff4e28eea9699f79 url: "https://pub.dev" source: hosted - version: "6.3.2" + version: "6.3.9" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03" + sha256: "16a513b6c12bb419304e72ea0ae2ab4fed569920d1c7cb850263fe3acc824626" url: "https://pub.dev" source: hosted - version: "6.2.4" + version: "6.3.2" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811 + sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.2.1" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de" + sha256: "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.2.2" url_launcher_platform_interface: dependency: transitive description: @@ -1200,50 +1224,50 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: fff0932192afeedf63cdd50ecbb1bc825d31aed259f02bb8dba0f3b729a5e88b + sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e" url: "https://pub.dev" source: hosted - version: "2.2.3" + version: "2.3.3" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: "49c10f879746271804767cb45551ec5592cdab00ee105c06dddde1a98f73b185" + sha256: "44cf3aabcedde30f2dba119a9dea3b0f2672fbe6fa96e85536251d678216b3c4" url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.3" uuid: dependency: transitive description: name: uuid - sha256: f33d6bb662f0e4f79dcd7ada2e6170f3b3a2530c28fc41f49a411ddedd576a77 + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff url: "https://pub.dev" source: hosted - version: "4.5.0" + version: "4.5.1" vector_graphics: dependency: transitive description: name: vector_graphics - sha256: "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3" + sha256: "27d5fefe86fb9aace4a9f8375b56b3c292b64d8c04510df230f849850d912cb7" url: "https://pub.dev" source: hosted - version: "1.1.11+1" + version: "1.1.15" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da + sha256: "2430b973a4ca3c4dbc9999b62b8c719a160100dcbae5c819bae0cacce32c9cdb" url: "https://pub.dev" source: hosted - version: "1.1.11+1" + version: "1.1.12" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81" + sha256: "1b4b9e706a10294258727674a340ae0d6e64a7231980f9f9a3d12e4b42407aad" url: "https://pub.dev" source: hosted - version: "1.1.11+1" + version: "1.1.16" vector_math: dependency: transitive description: @@ -1256,50 +1280,50 @@ packages: dependency: transitive description: name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "14.2.1" wakelock_plus: dependency: "direct main" description: name: wakelock_plus - sha256: f268ca2116db22e57577fb99d52515a24bdc1d570f12ac18bb762361d43b043d + sha256: "36c88af0b930121941345306d259ec4cc4ecca3b151c02e3a9e71aede83c615e" url: "https://pub.dev" source: hosted - version: "1.1.4" + version: "1.2.10" wakelock_plus_platform_interface: dependency: transitive description: name: wakelock_plus_platform_interface - sha256: "40fabed5da06caff0796dc638e1f07ee395fb18801fbff3255a2372db2d80385" + sha256: "70e780bc99796e1db82fe764b1e7dcb89a86f1e5b3afb1db354de50f2e41eb7a" url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.2.2" watcher: dependency: transitive description: name: watcher - sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + sha256: "69da27e49efa56a15f8afe8f4438c4ec02eff0a117df1b22ea4aad194fe1c104" url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" weak_map: dependency: transitive description: name: weak_map - sha256: "95ca338f0cdf5f0022cc283dfa4d97f6f6b03752f67eca85ebe6d7a679ffe3ed" + sha256: bf2cd4bbdba35cf407c41a290085240715ecfba82ea553e78fdeab6fe56d915e url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "4.0.0" web: dependency: transitive description: name: web - sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 + sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb url: "https://pub.dev" source: hosted - version: "0.3.0" + version: "1.1.0" web_socket_channel: dependency: transitive description: @@ -1320,18 +1344,18 @@ packages: dependency: "direct main" description: name: webview_flutter - sha256: d81b68e88cc353e546afb93fb38958e3717282c5ac6e5d3be4a4aef9fc3c1413 + sha256: "6869c8786d179f929144b4a1f86e09ac0eddfe475984951ea6c634774c16b522" url: "https://pub.dev" source: hosted - version: "4.5.0" + version: "4.8.0" webview_flutter_android: dependency: transitive description: name: webview_flutter_android - sha256: "0d21cfc3bfdd2e30ab2ebeced66512b91134b39e72e97b43db2d47dda1c4e53a" + sha256: ed021f27ae621bc97a6019fb601ab16331a3db4bf8afa305e9f6689bdb3edced url: "https://pub.dev" source: hosted - version: "3.16.3" + version: "3.16.8" webview_flutter_platform_interface: dependency: transitive description: @@ -1344,58 +1368,58 @@ packages: dependency: "direct main" description: name: webview_flutter_web - sha256: "7f7cb8cfe5a5dee3b55d660a367c00838be56540ccb4097e84601bb6cb354af3" + sha256: "18a7ccc1c31dd9a5c759a1b7217a2a1e04bd8f65712714a4070bfac19a23ca9e" url: "https://pub.dev" source: hosted - version: "0.2.2+4" + version: "0.2.3+4" webview_flutter_wkwebview: dependency: transitive description: name: webview_flutter_wkwebview - sha256: "4d062ad505390ecef1c4bfb6001cd857a51e00912cc9dfb66edb1886a9ebd80c" + sha256: "9c62cc46fa4f2d41e10ab81014c1de470a6c6f26051a2de32111b2ee55287feb" url: "https://pub.dev" source: hosted - version: "3.10.2" + version: "3.14.0" widgetbook: dependency: "direct main" description: name: widgetbook - sha256: de5b9887f9ad663bdcc1f957bc22aa0eb4dd7b406ac0142158bf35c0fad4a4f2 + sha256: f1aec6e13bc30a0b0fd1e1db1533b01caa0946fc6f0caf0412c3aba9de7ec4db url: "https://pub.dev" source: hosted - version: "3.8.1" + version: "3.10.1" widgetbook_annotation: dependency: "direct main" description: name: widgetbook_annotation - sha256: c2d881d0241525b36aa3777d0ac406d198528ed28b84ca73b7dd9f59189d6bb0 + sha256: "08570e3568275c4c283cdf78409c125f86c96c9b4f94f0a390d6a163349e9934" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.2.0" widgetbook_generator: dependency: "direct dev" description: name: widgetbook_generator - sha256: "7a5baf68bb76cbd8aeb093050172f99bb83b44360bf2a72c2b19b3785e3d29d0" + sha256: d664ba02805c37ef4bf2a061493a6ec254b40f0d14c5546311566226d71845a2 url: "https://pub.dev" source: hosted - version: "3.8.0" + version: "3.9.1" win32: dependency: transitive description: name: win32 - sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" + sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a" url: "https://pub.dev" source: hosted - version: "5.2.0" + version: "5.5.4" xdg_directories: dependency: transitive description: name: xdg_directories - sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.1.0" xml: dependency: transitive description: @@ -1408,10 +1432,10 @@ packages: dependency: transitive description: name: yaml - sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.3" sdks: - dart: ">=3.2.3 <4.0.0" - flutter: ">=3.16.0" + dart: ">=3.4.4 <4.0.0" + flutter: ">=3.22.0" diff --git a/pubspec.yaml b/pubspec.yaml index 95a1de8..3d86c98 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,10 +1,10 @@ name: autogram description: "Autogram v mobile" publish_to: 'none' # Remove this line if you wish to publish to pub.dev -version: 1.1.0+36 +version: 1.2.0+37 environment: - sdk: '>=3.2.3 <4.0.0' + sdk: '>=3.4.4 <4.0.0' dependencies: flutter: @@ -25,30 +25,30 @@ dependencies: flutter_svg: http: chopper: '>=7.4.0 <8.0.0' - injectable: ^2.2.0 - get_it: ^7.6.1 - flutter_hooks: ^0.20.5 - localstorage: ^4.0.1+4 + injectable: + get_it: + flutter_hooks: + localstorage: '>=4.0.0 <5.0.0' pdf: - printing: ^5.12.0 + printing: webview_flutter: webview_flutter_web: logging: path: path_provider: file_picker: - flutter_bloc: ^8.0.0 + flutter_bloc: provider: basic_utils: intl: - dotted_border: ^2.1.0 + dotted_border: notified_preferences: - widgetbook_annotation: ^3.1.0 - widgetbook: ^3.7.0 - firebase_core: - firebase_crashlytics: + widgetbook_annotation: + widgetbook: + firebase_core: 2.27.0 + firebase_crashlytics: 3.4.18 url_launcher: - mobile_scanner: + mobile_scanner: 4.0.1 # TODO Update mobile_scanner to v6.x html: flutter_markdown: diff --git a/test/use_case/get_html_document_version_use_case_test.dart b/test/use_case/get_html_document_version_use_case_test.dart index c53a1d7..0440231 100644 --- a/test/use_case/get_html_document_version_use_case_test.dart +++ b/test/use_case/get_html_document_version_use_case_test.dart @@ -1,4 +1,4 @@ -import 'package:autogram/use_case/get_document_version_use_case.dart'; +import 'package:autogram/use_case/get_html_document_version_use_case.dart'; import 'package:test/test.dart'; /// Tests for the [GetHtmlDocumentVersionUseCase] class.