diff --git a/.fvmrc b/.fvmrc index 827b5564..6b3d30c2 100644 --- a/.fvmrc +++ b/.fvmrc @@ -1,3 +1,3 @@ { - "flutter": "3.47.5" + "flutter": "3.47.7" } diff --git a/integration_test/mornye_glass_visual_test.dart b/integration_test/mornye_glass_visual_test.dart index eca87dae..52df40cd 100644 --- a/integration_test/mornye_glass_visual_test.dart +++ b/integration_test/mornye_glass_visual_test.dart @@ -248,7 +248,7 @@ void main() { ); expect(lenses, isNotEmpty); for (final lens in lenses) { - expect(lens.style.shape?.borderWidth, outlines ? 0.75 : 0); + expect(lens.style.specular?.thickness, outlines ? 0.75 * 5.4 : 0); } await capture('${prefix}_expanded'); await halfway(true); diff --git a/integration_test/mornye_liquid_glass_test.dart b/integration_test/mornye_liquid_glass_test.dart index 6c888f8e..d3441231 100644 --- a/integration_test/mornye_liquid_glass_test.dart +++ b/integration_test/mornye_liquid_glass_test.dart @@ -21,7 +21,8 @@ void main() { final capture = GlobalKey(); await tester.pumpWidget( MaterialApp( - theme: MornyeTheme.build(Brightness.dark), + // Measure the foreground mask independently of the rim's lighting. + theme: MornyeTheme.build(Brightness.dark, glassOutlines: false), home: Center( child: RepaintBoundary( key: capture, @@ -98,10 +99,14 @@ void main() { image.dispose(); } }))!; - expect( - pixels.map((color) => color.toARGB32()), - [Colors.red, Colors.red, Colors.white].map((color) => color.toARGB32()), - ); + // The package's edge blur can soften RGB values. A clipped foreground + // would expose the white fixture instead of red on either curved edge. + for (final pixel in pixels.take(2)) { + expect(pixel.a, 1); + expect(pixel.r - pixel.g, greaterThan(0.55)); + expect(pixel.r - pixel.b, greaterThan(0.55)); + } + expect(pixels.last.toARGB32(), Colors.white.toARGB32()); } await gesture.cancel(); await tester.pumpAndSettle(); diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 0ce66ad8..03b71cfd 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -24,8 +24,8 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: Flutter: 71a624a5bc0c04062bf19101d501e466baf2fb47 - open_filex: 6e26e659846ec990262224a12ef1c528bb4edbe4 - spotiflac_discord: 4f9417d5583e2d8a8ef15b5a746041d2cb064fd5 + open_filex: 432f3cd11432da3e39f47fcc0df2b1603854eff1 + spotiflac_discord: 124688dd44b0428ffea27e4f441352b01f1b47cc SpotiFLACBackend: e0c81656e8e4c31e86b9f14bbb8e245fb3a14011 PODFILE CHECKSUM: 6ca58d78915f3e4fcb64938b9167b26e33d44a8a diff --git a/lib/widgets/expressive_navigation_bar.dart b/lib/widgets/expressive_navigation_bar.dart index 6655119f..50efb61b 100644 --- a/lib/widgets/expressive_navigation_bar.dart +++ b/lib/widgets/expressive_navigation_bar.dart @@ -48,7 +48,7 @@ class ExpressiveNavigationBar extends StatelessWidget { backgroundColor: Colors.transparent, destinations: [ for (final destination in destinations) - _NavigationDestination( + M3ENavigationBarDestination( icon: destination.icon, selectedIcon: destination.selectedIcon, label: destination.label, @@ -60,16 +60,3 @@ class ExpressiveNavigationBar extends StatelessWidget { ); } } - -class _NavigationDestination extends M3ENavigationBarDestination { - const _NavigationDestination({ - required super.icon, - required super.selectedIcon, - required super.label, - }); - - // The package also merges its visible label into the button semantics. - // Let that text (and any badge) provide the name exactly once. - @override - String get resolvedSemanticLabel => ''; -} diff --git a/lib/widgets/mornye_liquid_backdrop.dart b/lib/widgets/mornye_liquid_backdrop.dart index 75bbe89e..3066cc89 100644 --- a/lib/widgets/mornye_liquid_backdrop.dart +++ b/lib/widgets/mornye_liquid_backdrop.dart @@ -1,3 +1,5 @@ +import 'dart:math' as math; + import 'package:flutter/material.dart'; import 'package:liquid_glass_easy/liquid_glass_easy.dart'; import 'package:spotiflac_android/theme/mornye_theme.dart'; @@ -35,6 +37,16 @@ class MornyeLiquidBackdrop extends StatelessWidget { final effect = interaction ? progress : 1.0; final outlines = MornyeTheme.glassOutlinesOf(context); final dark = Theme.of(context).brightness == Brightness.dark; + // Match the old optical lens's edge displacement. Version 5 fixes travel + // at 70 logical pixels and controls bending through the index alone. + final edgeBend = + math.sqrt(1 - 1 / (1.7 * 1.7)) * + refractionWidth * + refractionDepth * + effect * + 5 / + 70; + final index = 1 / math.sqrt(1 - math.pow(edgeBend.clamp(0, 0.95), 2)); return LiquidGlassLens( style: LiquidGlassStyle( shape: LiquidGlassShape( @@ -45,30 +57,25 @@ class MornyeLiquidBackdrop extends StatelessWidget { ? LiquidGlassClipQuality.exact : LiquidGlassClipQuality.roundedRectangle, cornerRadius: borderRadius.topLeft.x, - borderWidth: outlines ? 0.75 : 0, - lightDirection: 0, - lightIntensity: outlines + ), + specular: LiquidGlassLight.specular( + thickness: outlines ? 0.75 * 5.4 : 0, + angle: 0, + spread: 0.2, + intensity: outlines ? (dark ? 0.25 : 0.12) * effect * highlightIntensity : 0, - lightColor: dark ? Colors.white : const Color(0x88ffffff), - borderType: OpticalBorder( - ambientIntensity: 0.05 * highlightIntensity, - lightSpread: 0.2, - ), + color: dark ? Colors.white : const Color(0x88ffffff), ), - appearance: LiquidGlassAppearance( - blur: LiquidGlassBlur(sigmaX: blurSigma, sigmaY: blurSigma), - ), - // Translate Figma percentages into this package's optical controls. - // Keep color separation subtle instead of copying its contrast demo. - refraction: LiquidGlassRefraction( - refractionType: OpticalRefraction( - refraction: 1.7, - depth: refractionDepth * effect, - refractionWidth: refractionWidth, - ), - chromaticAberration: 0.002 * clarity * effect, + glow: LiquidGlassLight.glow( + thickness: outlines ? 0.75 * 29.4 : 0, + intensity: outlines ? 0.05 * highlightIntensity : 0, ), + blur: blurSigma, + refractionIndex: index, + refractionWidth: refractionWidth, + // Version 5 expresses the widest colour split in logical pixels. + dispersion: 1.32 * clarity * effect, ), child: child, ); diff --git a/pubspec.lock b/pubspec.lock index 251d4f30..d1441e6f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,26 +5,26 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: fdcd9f70f9eb80df3bc5ed0fa67280df2595fd481948df8a9ab082e6a40ad04b + sha256: "48e48f73a431eb269eec66d243a63a07ed90ef9417a74047a3b98d52338626ad" url: "https://pub.dev" source: hosted - version: "108.0.0" + version: "109.0.0" analysis_server_plugin: dependency: transitive description: name: analysis_server_plugin - sha256: "3460f040e1f77647fcd82db9bd3bb117de04d04a3d67c39ad361794331147a4e" + sha256: "9f293f95cf41cb513a9a4f322354e2fa5483125e0f18bbeca254543ac9c3dda6" url: "https://pub.dev" source: hosted - version: "0.3.23" + version: "0.3.24" analyzer: dependency: "direct dev" description: name: analyzer - sha256: a51c769bff3b6dfbe9d60199b8606d808290702a296bef0c26a4ca391d414e46 + sha256: "6d377901d198536b648172974d9d4f277910502cad92193466869cac0ff34990" url: "https://pub.dev" source: hosted - version: "14.4.0" + version: "14.5.0" analyzer_buffer: dependency: transitive description: @@ -37,26 +37,26 @@ packages: dependency: transitive description: name: analyzer_plugin - sha256: "9a3518eb84e8e26665874d9867534961d855493e9c5eb0eb55cbd46edd995529" + sha256: "2c59e6fba4971dc9ece97acd55b4f95b67a98e6ae0a55bff6f9dfc2bb59e8b1a" url: "https://pub.dev" source: hosted - version: "0.14.17" + version: "0.14.18" android_file_picker: dependency: transitive description: name: android_file_picker - sha256: "14ab27769b54c48d5a8a71aa9858372b7a3ae77572ea0a8aee744643c5d8c53d" + sha256: "537bce9a43bc6fc08670cb68498251acc6eb9134b86a391b43e1f7c863588388" url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.0.1" archive: dependency: "direct main" description: name: archive - sha256: "6c5bcd986e06b94e3c40244af471750840a3d2341d1f9763a1100a14add517b4" + sha256: "58c8d17d8d589c4259f773522815115de873c397b977a29993588487d3f9acb4" url: "https://pub.dev" source: hosted - version: "4.3.0" + version: "4.5.0" args: dependency: transitive description: @@ -195,18 +195,18 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: "894c243f6bc32015fec466ce30a6925bd537a77a426ee5bf481120477eb3de67" + sha256: "6feadd32d90a68253c1f7b4fcff76adb4b41ad32a53f8bad835dc65f01ac9dc5" url: "https://pub.dev" source: hosted - version: "2.16.1" + version: "2.16.2" built_collection: dependency: transitive description: name: built_collection - sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + sha256: "44922ecebd8e3d0cef743dadd3b54df4e87e2a4c52a29465a1872aa9e192caa8" url: "https://pub.dev" source: hosted - version: "5.1.1" + version: "5.1.2" built_value: dependency: transitive description: @@ -219,26 +219,26 @@ packages: dependency: "direct main" description: name: cached_network_image - sha256: "3d8cca7b14130f094aa38e3a58cb132bd38eb12664d7d094e7995fdcc8640863" + sha256: "64a6c35e63cfd22865238d11fe8608bb538306ece5b2eb951106280441fdbb0c" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.0.4" cached_network_image_platform_interface: dependency: transitive description: name: cached_network_image_platform_interface - sha256: ff60d021d5a013490368cd9efdcbe35df4227fdb6c5971d15b4bc6e3d0172fe0 + sha256: "555e287d3882fbb36cde50d24214cb3f6a272d39c4386e8afe00cb188d35b285" url: "https://pub.dev" source: hosted - version: "5.0.0" + version: "5.0.3" cached_network_image_web: dependency: transitive description: name: cached_network_image_web - sha256: c8edf00f48d91bc469731e4fb095350b0162e18efe2cf0054cb40c62d1a1f70a + sha256: "38762ec3bd2295f4d79545add118f525bd5a105a53692c06208c4875f2abde62" url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.0.3" characters: dependency: transitive description: @@ -339,18 +339,18 @@ packages: dependency: "direct main" description: name: cupertino_icons - sha256: "41e005c33bd814be4d3096aff55b1908d419fde52ca656c8c47719ec745873cd" + sha256: b7cc2390aac296c083bea762859413eb1cf5b630c70e0c7e4d831018f762a8b2 url: "https://pub.dev" source: hosted - version: "1.0.9" + version: "2.0.0" cupertino_ui: dependency: transitive description: name: cupertino_ui - sha256: c6747018d37d32feeeb858a1d7043831cb541460ebe1a890a995cdb8df8ea5a5 + sha256: ea0b8170b40a86262b2fc21ac0625303f52df209dbf6fccc2b98b27eff44f6ce url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.2" dart_smb2: dependency: "direct main" description: @@ -379,10 +379,10 @@ packages: dependency: "direct main" description: name: device_info_plus - sha256: "0891702f96b2e465fe567b7ec448380e6b1c14f60af552a8536d9f583b6b8442" + sha256: ade1c36f8355d6284c98e4a47992ea263887ed3d1acb281e37635dd45f04c4aa url: "https://pub.dev" source: hosted - version: "13.2.0" + version: "13.3.0" device_info_plus_platform_interface: dependency: transitive description: @@ -435,10 +435,10 @@ packages: dependency: "direct main" description: name: ffmpeg_kit_flutter_new_audio - sha256: "79e51732fa9bb5e88992ffdc84cbb78babbb44a773cd1f75f11290b295959c71" + sha256: "05d49d170cdc1d077a59fbb0c77fef321d6b9cdcc42653f2b1c4b70640d74c38" url: "https://pub.dev" source: hosted - version: "2.5.2" + version: "2.5.7" ffmpeg_kit_flutter_platform_interface: dependency: transitive description: @@ -467,10 +467,10 @@ packages: dependency: transitive description: name: file_picker_darwin - sha256: deb3ff69d58656b885c85bc1627f09ecb79860f272a5e7577149582ede4dce5d + sha256: "3df1dc8e881de9ffd3953c9e482ac5d6e1ffe1e7f7b231b5695543e251ab7918" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.3" file_picker_linux: dependency: transitive description: @@ -491,10 +491,10 @@ packages: dependency: transitive description: name: file_picker_web - sha256: b3004268da0c1b52baa18df430e7ec4438194de855a807d26b447cbf07ef3496 + sha256: "32af8262aca907b02b8970b32328b0312db0b42ba6f930be6d27fde179d59b7d" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "4.1.0" fixnum: dependency: transitive description: @@ -673,10 +673,10 @@ packages: dependency: "direct main" description: name: go_router - sha256: "008ab21d89d0de8ccd79586838f7533f126c2d894f50bf25f2947888d3c225b5" + sha256: "530dcbb298dc7c319aea9e3b7c580a61effb2abee2c93825d2dd8d5af0e230f1" url: "https://pub.dev" source: hosted - version: "18.0.1" + version: "18.0.2" graphs: dependency: transitive description: @@ -729,10 +729,10 @@ packages: dependency: transitive description: name: image - sha256: a1e7f4951e538a568e14b856702afc9ae1d2f4b202daced8d22c1b9cd211ce89 + sha256: "89ed75b2f8231fe676808c5564f9590d728024ded7ac782a7ed8474f1c95b72a" url: "https://pub.dev" source: hosted - version: "4.10.1" + version: "4.12.0" integration_test: dependency: "direct dev" description: flutter @@ -758,18 +758,18 @@ packages: dependency: transitive description: name: jni - sha256: f038e58b4dc2c9037f50e233175086337e0b305e356d28211bf55f21c504cbd3 + sha256: "6b9ca0602fef0230e83149afbe3f9f8227e94f2bbe84a1da4f14d699742f402d" url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.1.0" jni_flutter: dependency: transitive description: name: jni_flutter - sha256: b2310cdd4c18c65c081ab141a41efa94aa26c65431803703ece51996f174f351 + sha256: "0dd33d67797560f66e961a6053882d4df54bd345bf063b8fe7ea133f7ad8b191" url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.0.4+1" jni_util: dependency: transitive description: @@ -838,10 +838,10 @@ packages: dependency: "direct main" description: name: liquid_glass_easy - sha256: "48f2147e8b662402ccef9304cf8c216082b7913ad985ea2ac3d4f402b16ab417" + sha256: e867c5592ce9511aa8e3a9f7d755449d59a7f07044bf44b996b905138c84da1c url: "https://pub.dev" source: hosted - version: "4.3.4" + version: "5.0.0" listen: dependency: transitive description: @@ -878,10 +878,10 @@ packages: dependency: "direct main" description: name: material_3_expressive - sha256: "85412c33c79e0d7f2797d82fcc9f51053ee941b4b26a21dc1f3ddd8750928c87" + sha256: "34dc1f23ab47d6cd3f1b3627b8e8533652564fddb229e6c908d9790076781c5e" url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "1.1.6" material_color_utilities: dependency: "direct main" description: @@ -902,10 +902,10 @@ packages: dependency: "direct main" description: name: material_ui - sha256: "134ab2f0843545c4e661e4ba2753fe1bcf0753cb690d5a9ee4870638a40411e9" + sha256: "98ab9eda579ecae623e4b376c603035c5def78ce706f735f30bd632af5814695" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.6.0" meta: dependency: transitive description: @@ -942,18 +942,18 @@ packages: dependency: transitive description: name: objective_c - sha256: ad56fd53a78ff6b1472fa59ff2a4e8b8ccabafc586fc263a1dfad0b99b5553e3 + sha256: "5c80c2ad6e2c0397de5db38c6d653e69616a3397e13aa7633bf39eb668f2041b" url: "https://pub.dev" source: hosted - version: "9.6.0" + version: "9.6.2" octo_image: dependency: transitive description: name: octo_image - sha256: "34faa6639a78c7e3cbe79be6f9f96535867e879748ade7d17c9b1ae7536293bd" + sha256: "49c4f93afc10f1ad4fdef9db88fed9c65a8eb5d9ad0a4fa9b128d7fedeb41418" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.2" open_filex: dependency: "direct main" description: @@ -1046,10 +1046,10 @@ packages: dependency: transitive description: name: permission_handler_apple - sha256: f49cb15a064ea9d974fc7fbb302099353b7b170d07284e86e264561579e5bcf8 + sha256: "066bbbc60031b63b916a3871e7bb4b6a8c5e7cec8146dafec53d1da304eff0a5" url: "https://pub.dev" source: hosted - version: "9.6.1" + version: "9.6.2" permission_handler_html: dependency: transitive description: @@ -1078,10 +1078,10 @@ packages: dependency: transitive description: name: petitparser - sha256: "91bd59303e9f769f108f8df05e371341b15d59e995e6806aefab827b58336675" + sha256: "2f1564aadb14215e478563b5406cb80729d022158c01dc50c96013c2f7eb4790" url: "https://pub.dev" source: hosted - version: "7.0.2" + version: "7.1.0" platform: dependency: transitive description: @@ -1190,10 +1190,10 @@ packages: dependency: "direct main" description: name: share_plus - sha256: "34f00f9becd2743c1fb05363d624f9f70d37f7ccdcdda47450bc0b8c9d327b8c" + sha256: db40767f130189d53f3ae8a6393c217ff4a492da1baff718a9873679c0c00224 url: "https://pub.dev" source: hosted - version: "13.3.0" + version: "13.3.1" share_plus_platform_interface: dependency: transitive description: @@ -1206,10 +1206,10 @@ packages: dependency: "direct main" description: name: shared_preferences - sha256: c3025c5534b01739267eb7d76959bbc25a6d10f6988e1c2a3036940133dd10bf + sha256: "1e85e0dccf5b4a016077fea7dfbb4a7cb39c759ac1596fcf60c06deadb7da91f" url: "https://pub.dev" source: hosted - version: "2.5.5" + version: "2.5.6" shared_preferences_android: dependency: transitive description: @@ -1314,10 +1314,10 @@ packages: dependency: "direct main" description: name: sqflite - sha256: "54ad23e2a79c846b596b6c56cdd9c867ea58c288258402316b602f78df0cbfe0" + sha256: "7419d02d128023f38586481c81e14e5692167f75b7f411a914b1eb50d28c010e" url: "https://pub.dev" source: hosted - version: "2.4.4" + version: "2.4.4+1" sqflite_android: dependency: transitive description: @@ -1330,10 +1330,10 @@ packages: dependency: transitive description: name: sqflite_common - sha256: "077e38e82c099534146a2fb31b608c2a3a4489a0f21d9af6b2f5c87b566a1ea0" + sha256: da542ae39840132566b8652d6bfab108a972099a8e4377b3bcd98ae1595e6629 url: "https://pub.dev" source: hosted - version: "2.5.13" + version: "2.5.13+1" sqflite_darwin: dependency: transitive description: @@ -1442,10 +1442,10 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 + sha256: e8cc955c97e06df9879140a1fe301f3d493f01b7c62dec7f46834be31d7e9fda url: "https://pub.dev" source: hosted - version: "6.3.2" + version: "6.3.3" url_launcher_android: dependency: transitive description: @@ -1514,18 +1514,18 @@ packages: dependency: transitive description: name: vector_math - sha256: f36f9f3be64c6198714492bb455c11056e33e2f85d9a0b676a48301e44fdcf47 + sha256: "92b9910f66ed1057fd4da7b040ae7c74cafacf885bdc81be496928d5049b032d" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.3" video_player: dependency: "direct main" description: name: video_player - sha256: "8c837b570dccb9ae6ff73d2e0b03c7e708bfefd3bd1194faa7f3e7f200dfc399" + sha256: "07ae1e03f2d4c8e2e9a75ee678f90acbc4506d4458a9c628512d119a1eee5754" url: "https://pub.dev" source: hosted - version: "2.14.0" + version: "2.14.1" video_player_android: dependency: transitive description: @@ -1538,10 +1538,10 @@ packages: dependency: transitive description: name: video_player_avfoundation - sha256: "2fc56e537324a19eb649fca991aa308ac961b5406292876fa657b062de461fd8" + sha256: "4f8a845173377ab250a50f9b9dfe4a43500cc76a7c49dd8410d02d8fc29dfd8b" url: "https://pub.dev" source: hosted - version: "2.12.0" + version: "2.12.1" video_player_platform_interface: dependency: "direct dev" description: @@ -1634,10 +1634,10 @@ packages: dependency: transitive description: name: windows_file_picker - sha256: "9f3aa833068b09e380fdc59560ad260a4a14e9397173abb533699f967443602e" + sha256: "18452aa293de3b6961c6d05b0e71b4be7bb90c67635abdd3aa5c4e75dd875072" url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.0.1" xdg_directories: dependency: transitive description: @@ -1650,10 +1650,10 @@ packages: dependency: "direct main" description: name: xml - sha256: "67f0aff7be013d107995e9b75bf4e7f2c3ef2dfdb2c8e68024bba0a7fd5756a4" + sha256: "0fe8cc98946def31cbcbc8734aa4067031e6f65ea3a78a508060bfed2200bfeb" url: "https://pub.dev" source: hosted - version: "7.0.1" + version: "7.1.0" yaml: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index ff09d5ed..b70d76d7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -20,36 +20,37 @@ dependencies: flutter_riverpod: ^3.4.2 # Navigation - go_router: ^18.0.0 + go_router: ^18.0.2 # Storage & Persistence - shared_preferences: ^2.5.5 + shared_preferences: ^2.5.6 flutter_secure_storage: ^11.0.0 spotiflac_discord: path: third_party/spotiflac_discord path_provider: ^2.1.6 path: ^1.9.1 - sqflite: ^2.4.3 + sqflite: ^2.4.4+1 # HTTP & Network http: ^1.6.0 + # 7.3.2 requires dbus 0.8, while stable notifications still require 0.7. connectivity_plus: ^7.3.1 crypto: ^3.0.7 # Streaming backup archives - archive: ^4.2.0 + archive: ^4.5.0 # UI Components - cached_network_image: ^4.0.2 + cached_network_image: ^4.0.4 flutter_cache_manager: ^3.4.5 - liquid_glass_easy: 4.3.4 - cupertino_icons: ^1.0.9 + liquid_glass_easy: 5.0.0 + cupertino_icons: ^2.0.0 volume_controller: ^3.7.1 # Material Expressive 3 / Dynamic Color dynamic_color: ^2.1.0 - material_ui: ^1.4.0 - material_3_expressive: ^1.1.3 + material_ui: ^1.6.0 + material_3_expressive: ^1.1.6 material_color_utilities: 0.13.0 # Permissions @@ -62,19 +63,19 @@ dependencies: json_annotation: ^4.12.0 # Utils - url_launcher: ^6.3.2 - device_info_plus: ^13.2.0 - share_plus: ^13.3.0 + url_launcher: ^6.3.3 + device_info_plus: ^13.3.0 + share_plus: ^13.3.1 receive_sharing_intent: ^1.9.0 logger: ^2.7.0 # FFmpeg for audio conversion - ffmpeg_kit_flutter_new_audio: 2.5.2 + ffmpeg_kit_flutter_new_audio: 2.5.7 open_filex: ^4.7.0 - video_player: ^2.14.0 + video_player: ^2.14.1 - xml: ^7.0.1 + xml: ^7.1.0 html: ^0.15.7 dart_smb2: 0.1.3 synchronized: ^3.4.0 @@ -96,9 +97,9 @@ dev_dependencies: sdk: flutter flutter_test: sdk: flutter - analyzer: ^14.4.0 + analyzer: ^14.5.0 flutter_lints: ^6.0.0 - build_runner: ^2.16.0 + build_runner: ^2.16.2 riverpod_lint: ^3.1.9 json_serializable: ^6.14.1 flutter_launcher_icons: ^0.14.4 diff --git a/scripts/README_ios_ffmpeg_capabilities.md b/scripts/README_ios_ffmpeg_capabilities.md index a75f7fd7..26d9d3c0 100644 --- a/scripts/README_ios_ffmpeg_capabilities.md +++ b/scripts/README_ios_ffmpeg_capabilities.md @@ -12,7 +12,7 @@ from the repository root. Framework copies are signed in a temporary directory; the downloaded vendor artifacts remain unchanged. ```bash -probe_plugin="$HOME/.pub-cache/hosted/pub.dev/ffmpeg_kit_flutter_new_audio-2.5.2" +probe_plugin="$HOME/.pub-cache/hosted/pub.dev/ffmpeg_kit_flutter_new_audio-2.5.7" probe_work=$(mktemp -d /tmp/spotiflac-ios-ffmpeg.XXXXXX) mkdir -p "$probe_work/Frameworks" for framework in "$probe_plugin"/ios/Frameworks/*.xcframework; do diff --git a/test/setup_screen_recovery_test.dart b/test/setup_screen_recovery_test.dart index 4e3640b0..072f8863 100644 --- a/test/setup_screen_recovery_test.dart +++ b/test/setup_screen_recovery_test.dart @@ -81,6 +81,7 @@ void main() { ]) key: 'test', 'isPhysicalDevice': false, + 'time': 0, 'isLowRamDevice': false, 'freeDiskSize': 1000, 'totalDiskSize': 2000,