diff --git a/.github/workflows/android-release-appcenter.yaml b/.github/workflows/android-release-appcenter.yaml index 783454cb9..5e6e4635f 100644 --- a/.github/workflows/android-release-appcenter.yaml +++ b/.github/workflows/android-release-appcenter.yaml @@ -27,7 +27,7 @@ jobs: java-version: "17" - uses: subosito/flutter-action@v2 with: - flutter-version: "3.13.6" + flutter-version: "3.19.0" channel: stable - name: Set env run: | diff --git a/.github/workflows/bmvn_build_appcenter_android.yaml b/.github/workflows/bmvn_build_appcenter_android.yaml index ec852c74e..6311654cb 100644 --- a/.github/workflows/bmvn_build_appcenter_android.yaml +++ b/.github/workflows/bmvn_build_appcenter_android.yaml @@ -57,7 +57,7 @@ jobs: java-version: "17" - uses: subosito/flutter-action@v2 with: - flutter-version: "3.13.0" + flutter-version: "3.19.0" channel: stable - name: Set env run: | diff --git a/.github/workflows/bmvn_build_appcenter_ios.yaml b/.github/workflows/bmvn_build_appcenter_ios.yaml index c84cd9ef6..4e4906e1c 100644 --- a/.github/workflows/bmvn_build_appcenter_ios.yaml +++ b/.github/workflows/bmvn_build_appcenter_ios.yaml @@ -38,7 +38,7 @@ jobs: - name: Clone Flutter repository with master channel uses: subosito/flutter-action@v2 with: - flutter-version: "3.13.0" + flutter-version: "3.19.0" channel: stable # - uses: maxim-lobanov/setup-xcode@v1 # with: diff --git a/.github/workflows/ios-release-appcenter.yaml b/.github/workflows/ios-release-appcenter.yaml index fc5b9befe..d75f79fa9 100644 --- a/.github/workflows/ios-release-appcenter.yaml +++ b/.github/workflows/ios-release-appcenter.yaml @@ -17,17 +17,17 @@ on: jobs: fastlane-deploy: - runs-on: macOS-12 + runs-on: macOS-13 steps: # Set up Flutter. - name: Clone Flutter repository with master channel uses: subosito/flutter-action@v2 with: - flutter-version: "3.13.0" + flutter-version: "3.19.0" channel: stable - uses: maxim-lobanov/setup-xcode@v1 with: - xcode-version: "14.0" + xcode-version: "15.2" - name: Set env run: | diff --git a/.github/workflows/ios-release-testflight.yaml b/.github/workflows/ios-release-testflight.yaml index 5bc4427ab..df3c49a00 100644 --- a/.github/workflows/ios-release-testflight.yaml +++ b/.github/workflows/ios-release-testflight.yaml @@ -12,17 +12,17 @@ on: jobs: fastlane-deploy: - runs-on: macOS-12 + runs-on: macOS-13 steps: # Set up Flutter. - name: Clone Flutter repository with master channel uses: subosito/flutter-action@v2 with: - flutter-version: "3.13.0" + flutter-version: "3.19.0" channel: stable - uses: maxim-lobanov/setup-xcode@v1 with: - xcode-version: "14.2" + xcode-version: "15.2" - name: Set env run: | diff --git a/android/app/build.gradle b/android/app/build.gradle index 354e0d0d9..b97e2dd86 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -4,6 +4,7 @@ buildscript { maven { url 'https://plugins.gradle.org/m2/' } // Gradle Plugin Portal google() // Google's Maven repository } + ext.kotlin_version = '1.7.20' dependencies { // ... // OneSignal-Gradle-Plugin @@ -12,6 +13,14 @@ buildscript { } } +plugins { + id "com.android.application" + id "kotlin-android" + id "kotlinx-serialization" + id "com.google.gms.google-services" + id "dev.flutter.flutter-gradle-plugin" +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { @@ -20,11 +29,6 @@ if (localPropertiesFile.exists()) { } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - def environment = System.getenv() def flutterVersionCode = environment["FLUTTER_VERSION_CODE"] @@ -59,14 +63,6 @@ if (branchKeyTest == null) { def branchTestMode = localProperties["branch.testMode"] ?: environment["BRANCH_IS_TEST"] ?: false -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'kotlinx-serialization' -apply plugin: 'com.google.gms.google-services' - -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" -apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin' - android { compileSdkVersion 34 flavorDimensions 'env' diff --git a/android/build.gradle b/android/build.gradle index 0dafa908f..51abfe46f 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,22 +1,3 @@ -buildscript { - ext.kotlin_version = '1.7.20' - repositories { - google() - mavenCentral { - content { - excludeGroup("com.facebook.react") - } - } - - } - - dependencies { - classpath 'com.android.tools.build:gradle:7.4.2' - classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version" - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - allprojects { repositories { google() diff --git a/android/settings.gradle b/android/settings.gradle index 44e62bcf0..21b2b32bc 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,11 +1,29 @@ -include ':app' +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + } + settings.ext.flutterSdkPath = flutterSdkPath() + ext.kotlin_version = '1.7.20' -def localPropertiesFile = new File(rootProject.projectDir, "local.properties") -def properties = new Properties() + includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") -assert localPropertiesFile.exists() -localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} -def flutterSdkPath = properties.getProperty("flutter.sdk") -assert flutterSdkPath != null, "flutter.sdk not set in local.properties" -apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "7.3.0" apply false + id "org.jetbrains.kotlin.android" version "1.7.20" apply false + id "org.jetbrains.kotlin.plugin.serialization" version "1.7.20" apply false + id "com.google.gms.google-services" version "4.3.14" apply false +} + +include ":app" diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index ba203e307..c159dfcdb 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -576,11 +576,11 @@ 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, + 588939D828052E3E00FE3313 /* Embed App Extensions */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, FE698D0D002D57A6963D685A /* [CP] Embed Pods Frameworks */, - 588939D828052E3E00FE3313 /* Embed App Extensions */, ); buildRules = ( ); diff --git a/lib/screen/account/recovery_phrase_page.dart b/lib/screen/account/recovery_phrase_page.dart index c5d3d08cb..5ef66e092 100644 --- a/lib/screen/account/recovery_phrase_page.dart +++ b/lib/screen/account/recovery_phrase_page.dart @@ -160,8 +160,10 @@ class _RecoveryPhrasePageState extends State { Widget _getBackUpState(BuildContext context) { final theme = Theme.of(context); - final customLinkStyle = theme.textTheme.ppMori400Black14 - .copyWith(decoration: TextDecoration.underline); + final customLinkStyle = theme.textTheme.ppMori400Black14.copyWith( + decoration: TextDecoration.underline, + decorationColor: AppColor.primaryBlack, + ); if (_isBackUpAvailable == null) { return const SizedBox(); } diff --git a/lib/screen/customer_support/support_thread_page.dart b/lib/screen/customer_support/support_thread_page.dart index 24c52b2fa..1b8530bb5 100644 --- a/lib/screen/customer_support/support_thread_page.dart +++ b/lib/screen/customer_support/support_thread_page.dart @@ -603,8 +603,10 @@ class _SupportThreadPageState extends State }, child: Text( 'retry'.tr(), - style: theme.textTheme.ppMori400Black12 - .copyWith(decoration: TextDecoration.underline), + style: theme.textTheme.ppMori400Black12.copyWith( + decoration: TextDecoration.underline, + decorationColor: AppColor.primaryBlack, + ), ), ), Text( @@ -625,8 +627,10 @@ class _SupportThreadPageState extends State }, child: Text( 'delete'.tr(), - style: theme.textTheme.ppMori400Black12 - .copyWith(decoration: TextDecoration.underline), + style: theme.textTheme.ppMori400Black12.copyWith( + decoration: TextDecoration.underline, + decorationColor: AppColor.primaryBlack, + ), ), ), const SizedBox(width: 6), diff --git a/lib/screen/detail/artwork_detail_page.dart b/lib/screen/detail/artwork_detail_page.dart index 0755a6513..d192017c2 100644 --- a/lib/screen/detail/artwork_detail_page.dart +++ b/lib/screen/detail/artwork_detail_page.dart @@ -260,7 +260,9 @@ class _ArtworkDetailPageState extends State appBar: AppBar( systemOverlayStyle: systemUiOverlayDarkStyle, leadingWidth: 0, + leading: const SizedBox(), centerTitle: false, + backgroundColor: Colors.transparent, title: ArtworkDetailsHeader( title: asset.title ?? '', subTitle: subTitle, diff --git a/lib/screen/exhibitions/exhibitions_page.dart b/lib/screen/exhibitions/exhibitions_page.dart index 0d87f217f..2b3d618b4 100644 --- a/lib/screen/exhibitions/exhibitions_page.dart +++ b/lib/screen/exhibitions/exhibitions_page.dart @@ -157,7 +157,10 @@ class ExhibitionsPageState extends State with RouteAware { if (exhibition.curator != null) RichText( text: TextSpan( - style: theme.textTheme.ppMori400Grey14, + style: theme.textTheme.ppMori400Grey14 + .copyWith( + decorationColor: + AppColor.disabledColor), children: [ TextSpan(text: 'curated_by'.tr()), TextSpan( diff --git a/lib/screen/interactive_postcard/postcard_detail_page.dart b/lib/screen/interactive_postcard/postcard_detail_page.dart index f47180dc0..83b11df57 100644 --- a/lib/screen/interactive_postcard/postcard_detail_page.dart +++ b/lib/screen/interactive_postcard/postcard_detail_page.dart @@ -477,6 +477,7 @@ class ClaimedPostcardDetailPageState extends State statusBarIconBrightness: Brightness.dark, statusBarBrightness: Brightness.light, ), + scrolledUnderElevation: 0, toolbarHeight: 70, centerTitle: false, title: Text( diff --git a/lib/screen/interactive_postcard/postcard_explain.dart b/lib/screen/interactive_postcard/postcard_explain.dart index ef8228afe..f3e67fc24 100644 --- a/lib/screen/interactive_postcard/postcard_explain.dart +++ b/lib/screen/interactive_postcard/postcard_explain.dart @@ -207,8 +207,8 @@ class _PostcardExplainState extends State { Widget _page1(VideoPlayerController controller) { final theme = Theme.of(context); - final termsConditionsStyle = theme.textTheme.moMASans400Grey12 - .copyWith(color: AppColor.auQuickSilver); + final termsConditionsStyle = theme.textTheme.moMASans400Grey12.copyWith( + color: AppColor.auQuickSilver, decorationColor: AppColor.auQuickSilver); return SingleChildScrollView( child: Column( children: [ diff --git a/lib/screen/migration/key_sync_page.dart b/lib/screen/migration/key_sync_page.dart index c26dc62fa..0e7e71bb1 100644 --- a/lib/screen/migration/key_sync_page.dart +++ b/lib/screen/migration/key_sync_page.dart @@ -163,7 +163,9 @@ class KeySyncPage extends StatelessWidget { ? theme.textTheme.ppMori400Black14 : theme.textTheme.ppMori400Black16) .copyWith( - decoration: TextDecoration.underline), + decoration: TextDecoration.underline, + decorationColor: AppColor.primaryBlack, + ), ), ), ], diff --git a/lib/screen/onboarding/view_address/view_existing_address.dart b/lib/screen/onboarding/view_address/view_existing_address.dart index c6ae2b426..5a3e2bb80 100644 --- a/lib/screen/onboarding/view_address/view_existing_address.dart +++ b/lib/screen/onboarding/view_address/view_existing_address.dart @@ -121,8 +121,10 @@ class _ViewExistingAddressState extends State { ); }, child: Text('or_import_address'.tr(), - style: theme.textTheme.ppMori400Black14 - .copyWith(decoration: TextDecoration.underline)), + style: theme.textTheme.ppMori400Black14.copyWith( + decoration: TextDecoration.underline, + decorationColor: AppColor.primaryBlack, + )), ) ], ), diff --git a/lib/screen/playlists/view_playlist/view_playlist.dart b/lib/screen/playlists/view_playlist/view_playlist.dart index 27bd6ed41..b555bd37b 100644 --- a/lib/screen/playlists/view_playlist/view_playlist.dart +++ b/lib/screen/playlists/view_playlist/view_playlist.dart @@ -187,14 +187,18 @@ class _ViewPlaylistScreenState extends State { ), Align( alignment: Alignment.centerRight, - child: IconButton( - onPressed: () => Navigator.pop(context), - padding: const EdgeInsets.all(5), - constraints: const BoxConstraints( - maxHeight: 28, maxWidth: 28), - icon: const Icon( - AuIcon.close, - size: 18, + child: SizedBox( + height: 28, + width: 28, + child: IconButton( + onPressed: () => Navigator.pop(context), + padding: const EdgeInsets.all(0), + icon: const Icon( + AuIcon.close, + size: 18, + color: AppColor.primaryBlack, + weight: 2, + ), ), ), ), diff --git a/lib/screen/release_notes_page.dart b/lib/screen/release_notes_page.dart index 968d9b57e..f2fe7f49c 100644 --- a/lib/screen/release_notes_page.dart +++ b/lib/screen/release_notes_page.dart @@ -71,8 +71,10 @@ class _ReleaseNotesPageState extends State { GestureDetector( child: Text( 'open_source'.tr(), - style: theme.textTheme.ppMori400Black16 - .copyWith(decoration: TextDecoration.underline), + style: theme.textTheme.ppMori400Black16.copyWith( + decoration: TextDecoration.underline, + decorationColor: AppColor.primaryBlack, + ), ), onTap: () async => launchUrl( Uri.parse(AUTONOMY_CLIENT_GITHUB_LINK), diff --git a/lib/screen/scan_qr/scan_qr_page.dart b/lib/screen/scan_qr/scan_qr_page.dart index 332b54343..38ee4a78f 100644 --- a/lib/screen/scan_qr/scan_qr_page.dart +++ b/lib/screen/scan_qr/scan_qr_page.dart @@ -192,6 +192,7 @@ class ScanQRPageState extends State 'show_my_code'.tr(), style: theme.textTheme.ppMori400White14.copyWith( decoration: TextDecoration.underline, + decorationColor: AppColor.white, ), ), ) diff --git a/lib/screen/settings/connection/accounts_view.dart b/lib/screen/settings/connection/accounts_view.dart index c5ab4191b..98154d38c 100644 --- a/lib/screen/settings/connection/accounts_view.dart +++ b/lib/screen/settings/connection/accounts_view.dart @@ -99,13 +99,8 @@ class _AccountsViewState extends State { ), ), ), - Divider( - height: 1, - thickness: 1, - color: (_editingAccountKey == null || - _editingAccountKey != account.key) - ? null - : theme.colorScheme.primary) + const Divider( + height: 1, thickness: 1, color: AppColor.auLightGrey) ], ), ), @@ -122,10 +117,12 @@ class _AccountsViewState extends State { CustomSlidableAction( backgroundColor: AppColor.secondarySpanishGrey, foregroundColor: theme.colorScheme.secondary, + padding: EdgeInsets.zero, child: Semantics( label: '${account.key}_hide', child: SvgPicture.asset( - isHidden ? 'assets/images/unhide.svg' : 'assets/images/hide.svg'), + isHidden ? 'assets/images/unhide.svg' : 'assets/images/hide.svg', + ), ), onPressed: (_) { unawaited(account.setViewAccount(!isHidden)); @@ -135,6 +132,7 @@ class _AccountsViewState extends State { CustomSlidableAction( backgroundColor: AppColor.auGreyBackground, foregroundColor: theme.colorScheme.secondary, + padding: EdgeInsets.zero, child: Semantics( label: '${account.name}_edit', child: SvgPicture.asset( @@ -152,6 +150,7 @@ class _AccountsViewState extends State { CustomSlidableAction( backgroundColor: Colors.red, foregroundColor: theme.colorScheme.secondary, + padding: EdgeInsets.zero, child: Semantics( label: '${account.name}_delete', child: SvgPicture.asset('assets/images/trash.svg')), diff --git a/lib/screen/settings/crypto/send_artwork/send_artwork_page.dart b/lib/screen/settings/crypto/send_artwork/send_artwork_page.dart index d6f9df071..5b26df2f9 100644 --- a/lib/screen/settings/crypto/send_artwork/send_artwork_page.dart +++ b/lib/screen/settings/crypto/send_artwork/send_artwork_page.dart @@ -414,8 +414,10 @@ class _SendArtworkPageState extends State { child: Text( content, style: theme.textTheme.ppMori400Black14.copyWith( - decoration: - (onValueTap != null) ? TextDecoration.underline : null), + decoration: + (onValueTap != null) ? TextDecoration.underline : null, + decorationColor: AppColor.primaryBlack, + ), ), ) ], diff --git a/lib/screen/settings/crypto/send_artwork/send_artwork_review_page.dart b/lib/screen/settings/crypto/send_artwork/send_artwork_review_page.dart index b63767b13..7a80bd3e0 100644 --- a/lib/screen/settings/crypto/send_artwork/send_artwork_review_page.dart +++ b/lib/screen/settings/crypto/send_artwork/send_artwork_review_page.dart @@ -386,8 +386,10 @@ class _SendArtworkReviewPageState extends State { child: Text( content, style: theme.textTheme.ppMori400Black14.copyWith( - decoration: - (onValueTap != null) ? TextDecoration.underline : null), + decoration: + (onValueTap != null) ? TextDecoration.underline : null, + decorationColor: AppColor.primaryBlack, + ), overflow: TextOverflow.ellipsis, ), ), diff --git a/lib/screen/settings/crypto/wallet_detail/wallet_detail_page.dart b/lib/screen/settings/crypto/wallet_detail/wallet_detail_page.dart index 3296f3870..e55ff0395 100644 --- a/lib/screen/settings/crypto/wallet_detail/wallet_detail_page.dart +++ b/lib/screen/settings/crypto/wallet_detail/wallet_detail_page.dart @@ -393,6 +393,7 @@ class _WalletDetailPageState extends State with RouteAware { style: ElevatedButton.styleFrom( backgroundColor: Colors.transparent, shadowColor: Colors.transparent, + surfaceTintColor: Colors.transparent, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(20), ), @@ -480,13 +481,13 @@ class _WalletDetailPageState extends State with RouteAware { builder: (context, setState) => Container( alignment: Alignment.bottomRight, child: SizedBox( - //width: double.infinity, height: 28, child: ElevatedButton( style: ElevatedButton.styleFrom( backgroundColor: isCopied ? AppColor.feralFileHighlight : AppColor.auLightGrey, + surfaceTintColor: Colors.transparent, shadowColor: Colors.transparent, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(32), diff --git a/lib/screen/settings/settings_page.dart b/lib/screen/settings/settings_page.dart index 051e76bc0..b544d95c0 100644 --- a/lib/screen/settings/settings_page.dart +++ b/lib/screen/settings/settings_page.dart @@ -271,8 +271,10 @@ class _SettingsPageState extends State GestureDetector( child: Text( 'eula'.tr(), - style: theme.textTheme.ppMori400Grey12 - .copyWith(decoration: TextDecoration.underline), + style: theme.textTheme.ppMori400Grey12.copyWith( + decoration: TextDecoration.underline, + decorationColor: AppColor.disabledColor, + ), ), onTap: () async => Navigator.of(context) .pushNamed(AppRouter.githubDocPage, arguments: { @@ -288,8 +290,10 @@ class _SettingsPageState extends State GestureDetector( child: Text( 'privacy_policy'.tr(), - style: theme.textTheme.ppMori400Grey12 - .copyWith(decoration: TextDecoration.underline), + style: theme.textTheme.ppMori400Grey12.copyWith( + decoration: TextDecoration.underline, + decorationColor: AppColor.disabledColor, + ), ), onTap: () async => Navigator.of(context) .pushNamed(AppRouter.githubDocPage, arguments: { diff --git a/lib/screen/tezos_beacon/tb_send_transaction_page.dart b/lib/screen/tezos_beacon/tb_send_transaction_page.dart index 0a2714ebe..e8eb5e846 100644 --- a/lib/screen/tezos_beacon/tb_send_transaction_page.dart +++ b/lib/screen/tezos_beacon/tb_send_transaction_page.dart @@ -520,8 +520,10 @@ class _TBSendTransactionPageState extends State { child: Text( content, style: theme.textTheme.ppMori400Black14.copyWith( - decoration: - (onValueTap != null) ? TextDecoration.underline : null), + decoration: + (onValueTap != null) ? TextDecoration.underline : null, + decorationColor: AppColor.primaryBlack, + ), ), ) ], @@ -567,6 +569,7 @@ class _TBSendTransactionPageState extends State { child: Text('edit_priority'.tr(), style: theme.textTheme.ppMori400White14.copyWith( decoration: TextDecoration.underline, + decorationColor: AppColor.white, )), ), ], diff --git a/lib/screen/wallet_connect/send/wc_send_transaction_page.dart b/lib/screen/wallet_connect/send/wc_send_transaction_page.dart index 41ecf17a9..c852fc36a 100644 --- a/lib/screen/wallet_connect/send/wc_send_transaction_page.dart +++ b/lib/screen/wallet_connect/send/wc_send_transaction_page.dart @@ -312,8 +312,10 @@ class _WCSendTransactionPageState extends State { child: Text( content, style: theme.textTheme.ppMori400Black14.copyWith( - decoration: - (onValueTap != null) ? TextDecoration.underline : null), + decoration: + (onValueTap != null) ? TextDecoration.underline : null, + decorationColor: AppColor.primaryBlack, + ), ), ), ), @@ -368,6 +370,7 @@ class _WCSendTransactionPageState extends State { child: Text('edit_priority'.tr(), style: theme.textTheme.ppMori400White14.copyWith( decoration: TextDecoration.underline, + decorationColor: AppColor.white, )), ), ], diff --git a/lib/service/navigation_service.dart b/lib/service/navigation_service.dart index a12bdab66..0b310edf6 100644 --- a/lib/service/navigation_service.dart +++ b/lib/service/navigation_service.dart @@ -270,8 +270,10 @@ class NavigationService { .textTheme .ppMori400White12 .copyWith( - color: AppColor.auQuickSilver, - decoration: TextDecoration.underline), + color: AppColor.auQuickSilver, + decoration: TextDecoration.underline, + decorationColor: AppColor.auQuickSilver, + ), ), ), duration: const Duration(seconds: 15), diff --git a/lib/util/style.dart b/lib/util/style.dart index c9e18188c..9244506ec 100644 --- a/lib/util/style.dart +++ b/lib/util/style.dart @@ -545,7 +545,7 @@ SizedBox addTitleSpace() => const SizedBox(height: 60); Divider addDivider({double height = 32, Color? color}) => Divider( height: height, thickness: 1, - color: color, + color: color ?? AppColor.secondaryDimGreyBackground, ); Divider headDivider() => const Divider( @@ -557,7 +557,7 @@ Divider headDivider() => const Divider( Divider addOnlyDivider({Color? color, double border = 1.0}) => Divider( height: 1, thickness: border, - color: color, + color: color ?? AppColor.secondaryDimGreyBackground, ); Divider addBoldDivider() => const Divider( diff --git a/lib/util/ui_helper.dart b/lib/util/ui_helper.dart index 564e307ea..bfc673584 100644 --- a/lib/util/ui_helper.dart +++ b/lib/util/ui_helper.dart @@ -1299,6 +1299,7 @@ class UIHelper { separatorBuilder: (context, index) => const Divider( height: 1, color: AppColor.primaryBlack, + thickness: 0.25, ), ) ], diff --git a/lib/view/artwork_common_widget.dart b/lib/view/artwork_common_widget.dart index c91181053..6cea3fb35 100644 --- a/lib/view/artwork_common_widget.dart +++ b/lib/view/artwork_common_widget.dart @@ -934,6 +934,11 @@ Widget postcardDetailsMetadataSection( ); const unexpandedCount = 1; final otherCount = artists.length - unexpandedCount; + final divider = Divider( + height: 32, + color: theme.auLightGrey, + thickness: 0.25, + ); return SectionExpandedWidget( header: 'metadata'.tr(), headerStyle: theme.textTheme.moMASans700Black16.copyWith(fontSize: 18), @@ -960,10 +965,7 @@ Widget postcardDetailsMetadataSection( ), ), if (artists.isNotEmpty) ...[ - Divider( - height: 32, - color: theme.auLightGrey, - ), + divider, Padding( padding: padding, child: CustomMetaDataItem( @@ -998,19 +1000,13 @@ Widget postcardDetailsMetadataSection( if (!assetToken.fungible) Column( children: [ - Divider( - height: 32, - color: theme.auLightGrey, - ), + divider, _getEditionNameRow(context, assetToken), ], ) else const SizedBox(), - Divider( - height: 32, - color: theme.auLightGrey, - ), + divider, Padding( padding: padding, child: MetaDataItem( @@ -1024,10 +1020,7 @@ Widget postcardDetailsMetadataSection( .copyWith(color: MoMAColors.moMA5), ), ), - Divider( - height: 32, - color: theme.auLightGrey, - ), + divider, Padding( padding: padding, child: MetaDataItem( @@ -1041,10 +1034,7 @@ Widget postcardDetailsMetadataSection( .copyWith(color: MoMAColors.moMA5), ), ), - Divider( - height: 32, - color: theme.auLightGrey, - ), + divider, Padding( padding: padding, child: MetaDataItem( @@ -1055,10 +1045,7 @@ Widget postcardDetailsMetadataSection( ), ), if (assetToken.mintedAt != null) ...[ - Divider( - height: 32, - color: theme.auLightGrey, - ), + divider, Padding( padding: padding, child: MetaDataItem( @@ -1072,7 +1059,7 @@ Widget postcardDetailsMetadataSection( if (assetToken.assetData != null && assetToken.assetData!.isNotEmpty) Column( children: [ - const Divider(height: 32), + divider, Padding( padding: padding, child: MetaDataItem( @@ -1099,6 +1086,11 @@ Widget artworkDetailsMetadataSection( ((assetToken.swapped ?? false) && assetToken.originTokenInfoId != null) ? assetToken.originTokenInfoId ?? '' : assetToken.id.split('-').last; + final divider = Divider( + height: 32, + color: theme.auLightGrey, + thickness: 0.25, + ); return SectionExpandedWidget( header: 'metadata'.tr(), padding: const EdgeInsets.only(bottom: 23), @@ -1110,10 +1102,7 @@ Widget artworkDetailsMetadataSection( value: assetToken.title ?? '', ), if (artistName != null) ...[ - Divider( - height: 32, - color: theme.auLightGrey, - ), + divider, MetaDataItem( title: 'artist'.tr(), value: artistName, @@ -1128,29 +1117,20 @@ Widget artworkDetailsMetadataSection( if (!assetToken.fungible) Column( children: [ - Divider( - height: 32, - color: theme.auLightGrey, - ), + divider, _getEditionNameRow(context, assetToken), ], ) else const SizedBox(), - Divider( - height: 32, - color: theme.auLightGrey, - ), + divider, MetaDataItem( title: 'token'.tr(), value: polishSource(assetToken.source ?? ''), tapLink: assetToken.isAirdrop ? null : assetToken.assetURL, forceSafariVC: true, ), - Divider( - height: 32, - color: theme.auLightGrey, - ), + divider, if (assetToken.source == 'feralfile' && artworkID.isNotEmpty) FutureBuilder( future: injector() @@ -1185,19 +1165,13 @@ Widget artworkDetailsMetadataSection( tapLink: assetToken.getBlockchainUrl(), forceSafariVC: true, ), - Divider( - height: 32, - color: theme.auLightGrey, - ), + divider, MetaDataItem( title: 'medium'.tr(), value: assetToken.medium?.capitalize() ?? '', ), if (assetToken.mintedAt != null) ...[ - Divider( - height: 32, - color: theme.auLightGrey, - ), + divider, MetaDataItem( title: 'date_minted'.tr(), value: assetToken.mintedAt != null @@ -1217,7 +1191,9 @@ Widget artworkDetailsMetadataSection( ) else const SizedBox(), - const Divider(height: 32), + const SizedBox( + height: 32, + ), ], ), ); @@ -1251,6 +1227,11 @@ Widget postcardOwnership( ); const unexpandedCount = 1; final otherCount = owners.length - unexpandedCount; + final divider = Divider( + height: 40, + color: theme.auLightGrey, + thickness: 0.25, + ); return SectionExpandedWidget( header: 'token_ownership'.tr(), headerStyle: theme.textTheme.moMASans700Black16.copyWith(fontSize: 18), @@ -1275,10 +1256,7 @@ Widget postcardOwnership( ), ), const SizedBox(height: 32), - Divider( - height: 40, - color: theme.auLightGrey, - ), + divider, Padding( padding: padding, child: MetaDataItem( @@ -1294,10 +1272,7 @@ Widget postcardOwnership( const SizedBox( height: 20, ), - Divider( - height: 40, - color: theme.auLightGrey, - ), + divider, Padding( padding: padding, child: CustomMetaDataItem( @@ -1362,6 +1337,12 @@ Widget tokenOwnership( ownedTokens -= totalSentQuantity; } + final divider = Divider( + height: 32, + color: theme.auLightGrey, + thickness: 0.25, + ); + return SectionExpandedWidget( header: 'token_ownership'.tr(), padding: const EdgeInsets.only(bottom: 23), @@ -1376,10 +1357,7 @@ Widget tokenOwnership( tapLink: assetToken.tokenURL, forceSafariVC: true, ), - Divider( - height: 32, - color: theme.auLightGrey, - ), + divider, ], MetaDataItem( title: 'token_holder'.tr(), @@ -1388,10 +1366,7 @@ Widget tokenOwnership( addressURL(ownerAddress, CryptoType.fromAddress(ownerAddress)), forceSafariVC: true, ), - Divider( - height: 32, - color: theme.auLightGrey, - ), + divider, MetaDataItem( title: 'token_held'.tr(), value: ownedTokens.toString(), diff --git a/lib/view/au_buttons.dart b/lib/view/au_buttons.dart index 3321c9ea4..15f61e32e 100644 --- a/lib/view/au_buttons.dart +++ b/lib/view/au_buttons.dart @@ -31,6 +31,7 @@ class AuSecondaryButton extends StatelessWidget { child: ElevatedButton( style: ElevatedButton.styleFrom( backgroundColor: backgroundColor ?? Colors.transparent, + surfaceTintColor: Colors.transparent, elevation: 0, shape: RoundedRectangleBorder( side: BorderSide(color: borderColor ?? Colors.white), @@ -63,6 +64,7 @@ class AuCustomButton extends StatelessWidget { child: ElevatedButton( style: ElevatedButton.styleFrom( backgroundColor: AppColor.white, + surfaceTintColor: Colors.transparent, shadowColor: Colors.transparent, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(32), diff --git a/lib/view/au_filled_button.dart b/lib/view/au_filled_button.dart index b4428c731..1e2cfbea7 100644 --- a/lib/view/au_filled_button.dart +++ b/lib/view/au_filled_button.dart @@ -41,6 +41,7 @@ class AuFilledButton extends StatelessWidget { backgroundColor: enabled ? color : color.withOpacity(0.6), disabledForegroundColor: color.withOpacity(0.38), disabledBackgroundColor: color.withOpacity(0.12), + surfaceTintColor: Colors.transparent, shadowColor: Colors.transparent, shape: const RoundedRectangleBorder(), splashFactory: diff --git a/lib/view/back_appbar.dart b/lib/view/back_appbar.dart index 3b623f477..71d9f687d 100644 --- a/lib/view/back_appbar.dart +++ b/lib/view/back_appbar.dart @@ -26,6 +26,7 @@ AppBar getBackAppBar( bool withDivider = true, Color? backgroundColor, Color? statusBarColor, + Color? surfaceTintColor, }) { final theme = Theme.of(context); @@ -38,6 +39,7 @@ AppBar getBackAppBar( statusBarBrightness: isWhite ? Brightness.light : Brightness.dark), centerTitle: true, leadingWidth: 44, + scrolledUnderElevation: 0, leading: onBack != null ? Semantics( label: 'BACK', @@ -85,6 +87,7 @@ AppBar getBackAppBar( const SizedBox(width: 36), ], backgroundColor: backgroundColor ?? Colors.transparent, + surfaceTintColor: surfaceTintColor ?? Colors.transparent, shadowColor: Colors.transparent, elevation: 0, bottom: withDivider @@ -118,6 +121,7 @@ AppBar getTitleEditAppBar(BuildContext context, statusBarBrightness: isWhite ? Brightness.light : Brightness.dark), centerTitle: true, leadingWidth: 44, + scrolledUnderElevation: 0, leading: hasBack ? Semantics( label: 'BACK', @@ -198,6 +202,7 @@ AppBar getCloseAppBar( ), centerTitle: isTitleCenter, automaticallyImplyLeading: false, + scrolledUnderElevation: 0, title: Text( title, overflow: TextOverflow.ellipsis, @@ -234,6 +239,7 @@ AppBar getDarkEmptyAppBar([Color? statusBarColor]) => AppBar( toolbarHeight: 0, shadowColor: Colors.transparent, elevation: 0, + scrolledUnderElevation: 0, ); AppBar getLightEmptyAppBar([Color? statusBarColor]) => AppBar( @@ -242,6 +248,7 @@ AppBar getLightEmptyAppBar([Color? statusBarColor]) => AppBar( toolbarHeight: 0, shadowColor: Colors.transparent, elevation: 0, + scrolledUnderElevation: 0, ); SystemUiOverlayStyle _systemUiOverlayDarkStyle(Color? statusBarColor) => @@ -277,6 +284,7 @@ AppBar getDoneAppBar( statusBarBrightness: isWhite ? Brightness.light : Brightness.dark, ), elevation: 1, + scrolledUnderElevation: 0, shadowColor: Colors.transparent, leadingWidth: 80, leading: GestureDetector( @@ -337,6 +345,8 @@ AppBar getCustomDoneAppBar( shadowColor: Colors.transparent, elevation: 1, leadingWidth: 80, + scrolledUnderElevation: 0, + surfaceTintColor: Colors.transparent, leading: GestureDetector( onTap: onCancel, child: Padding( @@ -389,6 +399,7 @@ AppBar getFFAppBar( centerTitle: true, toolbarHeight: 66, leadingWidth: 44, + scrolledUnderElevation: 0, leading: onBack != null ? Semantics( label: 'BACK', diff --git a/lib/view/event_view.dart b/lib/view/event_view.dart index 3ad6ac903..3240a05fe 100644 --- a/lib/view/event_view.dart +++ b/lib/view/event_view.dart @@ -88,6 +88,7 @@ class ExhibitionEventView extends StatelessWidget { 'watch'.tr(), style: theme.textTheme.ppMori400White14.copyWith( decoration: TextDecoration.underline, + decorationColor: AppColor.white, ), ), ), diff --git a/lib/view/exhibition_detail_preview.dart b/lib/view/exhibition_detail_preview.dart index 001d21ab6..721440c28 100644 --- a/lib/view/exhibition_detail_preview.dart +++ b/lib/view/exhibition_detail_preview.dart @@ -22,8 +22,10 @@ class ExhibitionPreview extends StatelessWidget { final theme = Theme.of(context); final subTextStyle = theme.textTheme.ppMori400Grey12 .copyWith(color: AppColor.feralFileMediumGrey); - final artistTextStyle = theme.textTheme.ppMori400White16 - .copyWith(decoration: TextDecoration.underline); + final artistTextStyle = theme.textTheme.ppMori400White16.copyWith( + decoration: TextDecoration.underline, + decorationColor: Colors.white, + ); return Container( padding: const EdgeInsets.only(left: 14, right: 14, bottom: 20), @@ -45,7 +47,8 @@ class ExhibitionPreview extends StatelessWidget { Text('curator'.tr(), style: subTextStyle), const SizedBox(height: 3), GestureDetector( - child: Text(exhibition.curator!.alias, style: artistTextStyle), + child: Text(exhibition.curator!.alias, + style: artistTextStyle.copyWith()), onTap: () async { await _navigationService .openFeralFileCuratorPage(exhibition.curator!.alias); diff --git a/lib/view/note_view.dart b/lib/view/note_view.dart index 0391733f8..35c84264f 100644 --- a/lib/view/note_view.dart +++ b/lib/view/note_view.dart @@ -58,8 +58,10 @@ class ExhibitionNoteView extends StatelessWidget { }, child: Text( 'read_more'.tr(), - style: theme.textTheme.ppMori400White14 - .copyWith(decoration: TextDecoration.underline), + style: theme.textTheme.ppMori400White14.copyWith( + decoration: TextDecoration.underline, + decorationColor: AppColor.white, + ), ), ), ], diff --git a/pubspec.lock b/pubspec.lock index d0b9bd58f..a9aa0b32a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -317,10 +317,10 @@ packages: dependency: "direct main" description: name: collection - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.dev" source: hosted - version: "1.17.2" + version: "1.18.0" confetti: dependency: "direct main" description: @@ -357,10 +357,10 @@ packages: dependency: transitive description: name: coverage - sha256: "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097" + sha256: "8acabb8306b57a409bf4c83522065672ee13179297a6bb0cb9ead73948df7c76" url: "https://pub.dev" source: hosted - version: "1.6.3" + version: "1.7.2" cross_file: dependency: transitive description: @@ -576,10 +576,10 @@ packages: dependency: transitive description: name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" url: "https://pub.dev" source: hosted - version: "6.1.4" + version: "7.0.0" file_selector_linux: dependency: transitive description: @@ -913,10 +913,10 @@ packages: dependency: "direct main" description: name: flutter_slidable - sha256: cc4231579e3eae41ae166660df717f4bad1359c87f4a4322ad8ba1befeb3d2be + sha256: "19ed4813003a6ff4e9c6bcce37e792a2a358919d7603b2b31ff200229191e44c" url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "3.0.1" flutter_svg: dependency: "direct main" description: @@ -1553,6 +1553,30 @@ packages: url: "https://pub.dev" source: hosted version: "0.4.9" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + url: "https://pub.dev" + source: hosted + version: "10.0.0" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + url: "https://pub.dev" + source: hosted + version: "2.0.1" libauk_dart: dependency: "direct main" description: @@ -1654,18 +1678,18 @@ 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" measured_size: dependency: "direct main" description: @@ -1686,10 +1710,10 @@ packages: dependency: transitive description: name: meta - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.11.0" mime: dependency: "direct main" description: @@ -1848,10 +1872,10 @@ packages: 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_parsing: dependency: transitive description: @@ -1976,10 +2000,10 @@ packages: dependency: transitive description: name: platform - sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" + sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.4" plugin_platform_interface: dependency: transitive description: @@ -2016,10 +2040,18 @@ packages: dependency: transitive description: name: process - sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" + sha256: "21e54fd2faf1b5bdd5102afd25012184a6793927648ea81eea80552ac9405b32" + url: "https://pub.dev" + source: hosted + version: "5.0.2" + properties: + dependency: transitive + description: + name: properties + sha256: "975daa001432c70f5f494b50e4c5c72990d2f026e4a307cb4aaec99562f2d0e4" url: "https://pub.dev" source: hosted - version: "4.2.4" + version: "2.1.0" protobuf: dependency: transitive description: @@ -2200,10 +2232,10 @@ packages: dependency: "direct dev" description: name: sentry_dart_plugin - sha256: b1474670254d550771da082abcd33ad56d6fd44451282faa99433530fa279256 + sha256: e81fa3e0ffabd04fdcfbfecd6468d4a342f02ab33edca09708c61bcd2be42b7d url: "https://pub.dev" source: hosted - version: "1.5.0" + version: "1.7.1" sentry_dio: dependency: "direct main" description: @@ -2272,10 +2304,10 @@ packages: dependency: transitive description: name: shared_preferences_linux - sha256: "71d6806d1449b0a9d4e85e0c7a917771e672a3d5dc61149cc9fac871115018e1" + sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.3.2" shared_preferences_platform_interface: dependency: transitive description: @@ -2296,10 +2328,10 @@ packages: dependency: transitive description: name: shared_preferences_windows - sha256: f95e6a43162bce43c9c3405f3eb6f39e5b5d11f65fab19196cf8225e2777624d + sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.3.2" shelf: dependency: transitive description: @@ -2453,18 +2485,18 @@ packages: dependency: transitive description: name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" stream_transform: dependency: transitive description: @@ -2525,26 +2557,26 @@ packages: dependency: "direct dev" description: name: test - sha256: "13b41f318e2a5751c3169137103b60c584297353d4b1761b66029bae6411fe46" + sha256: a1f7595805820fcc05e5c52e3a231aedd0b72972cb333e8c738a8b1239448b6f url: "https://pub.dev" source: hosted - version: "1.24.3" + version: "1.24.9" test_api: dependency: transitive description: name: test_api - sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" url: "https://pub.dev" source: hosted - version: "0.6.0" + version: "0.6.1" test_core: dependency: transitive description: name: test_core - sha256: "99806e9e6d95c7b059b7a0fc08f07fc53fabe54a829497f0d9676299f1e8637e" + sha256: a757b14fc47507060a162cc2530d9a4a2f92f5100a952c7443b5cad5ef5b106a url: "https://pub.dev" source: hosted - version: "0.5.3" + version: "0.5.9" tezart: dependency: "direct main" description: @@ -2798,10 +2830,10 @@ packages: dependency: transitive description: name: vm_service - sha256: c620a6f783fa22436da68e42db7ebbf18b8c44b9a46ab911f666ff09ffd9153f + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 url: "https://pub.dev" source: hosted - version: "11.7.1" + version: "13.0.0" wakelock_plus: dependency: "direct main" description: @@ -2834,14 +2866,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" - web: - dependency: transitive - description: - name: web - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 - url: "https://pub.dev" - source: hosted - version: "0.1.4-beta" web3dart: dependency: "direct main" description: @@ -2862,10 +2886,10 @@ packages: dependency: transitive description: name: webdriver - sha256: "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49" + sha256: "003d7da9519e1e5f329422b36c4dcdf18d7d2978d1ba099ea4e45ba490ed845e" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" webkit_inspection_protocol: dependency: transitive description: @@ -2971,5 +2995,5 @@ packages: source: hosted version: "2.0.2" sdks: - dart: ">=3.1.0-185.0.dev <4.0.0" + dart: ">=3.2.0-0 <4.0.0" flutter: ">=3.10.0" diff --git a/pubspec.yaml b/pubspec.yaml index 7cd4f7a09..a5356fdcd 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -51,7 +51,7 @@ dependencies: flutter_image_compress: ^2.0.4 flutter_markdown: ^0.6.9 flutter_native_splash: ^2.0.5 - flutter_slidable: ^3.0.0 + flutter_slidable: ^3.0.1 flutter_svg: ^2.0.7 flutter_switch: ^0.3.2 flutter_vibrate: ^1.3.0