diff --git a/analysis_options.yaml b/analysis_options.yaml index 751a38fef..b1415d0ef 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -21,6 +21,7 @@ analyzer: - lib/src/styles/social_icons.dart - lib/firebase_options.dart - lib/l10n/*.dart + - build/ errors: invalid_annotation_target: ignore # plugins: diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index b3e1112c0..d79da0e2a 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -18,7 +18,11 @@ if (keystorePropertiesFile.exists()) { android { namespace = "org.lichess.mobileV2" - compileSdk = flutter.compileSdkVersion + // compileSdk = flutter.compileSdkVersion + // home_widget pulls in glance-appwidget and remote-creation-android, both of which + // declare in their AAR metadata that all dependents (including the app) must compile + // against SDK 37+. This cannot be suppressed — it is enforced by AGP at build time. + compileSdk = 37 ndkVersion = flutter.ndkVersion compileOptions { diff --git a/android/build.gradle.kts b/android/build.gradle.kts index 89176ef44..739445491 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -16,6 +16,22 @@ subprojects { project.evaluationDependsOn(":app") } +// Some plugins declare a compileSdk lower than what their transitive dependencies require. +// gradle.afterProject fires after each project finishes its own configuration, so it +// runs after the module has set its compileSdk and we can safely override it. +gradle.afterProject { + extensions.findByType(com.android.build.gradle.LibraryExtension::class.java)?.apply { + val minRequired = when (project.name) { + // glance-appwidget:1.3.0-alpha01 and remote-creation-android:1.0.0-alpha11 + // both require compileSdk 37+, but home_widget declares only 36. + "home_widget" -> 37 + // sound_effect 0.1.3 declares compileSdk 35 but flutter_plugin_android_lifecycle requires 36+. + else -> 36 + } + if ((compileSdk ?: 0) < minRequired) compileSdk = minRequired + } +} + tasks.register("clean") { delete(rootProject.layout.buildDirectory) } diff --git a/android/gradle.properties b/android/gradle.properties index f018a6181..6d1c36333 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,3 +1,10 @@ org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +# This builtInKotlin flag was added automatically by Flutter migrator +android.builtInKotlin=false +# This newDsl flag was added automatically by Flutter migrator +android.newDsl=false +# AGP 9.0 enforces unique package names; cronet-embedded bundles multiple artifacts +# sharing the org.chromium.net namespace — disable until Chromium fixes this upstream +android.uniquePackageNames=false diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 02767eb1c..2f745f993 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-all.zip diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts index 7efb38825..b1021b6e1 100644 --- a/android/settings.gradle.kts +++ b/android/settings.gradle.kts @@ -18,7 +18,7 @@ pluginManagement { plugins { id("dev.flutter.flutter-plugin-loader") version "1.0.0" - id("com.android.application") version "8.11.1" apply false + id("com.android.application") version "9.2.0" apply false id("org.jetbrains.kotlin.android") version "2.2.21" apply false id("com.google.gms.google-services") version "4.4.4" apply false id("com.google.firebase.crashlytics") version "3.0.6" apply false diff --git a/lib/src/widgets/expanded_section.dart b/lib/src/widgets/expanded_section.dart index 169d589c1..22a2caa36 100644 --- a/lib/src/widgets/expanded_section.dart +++ b/lib/src/widgets/expanded_section.dart @@ -47,6 +47,10 @@ class _ExpandedSectionState extends State with SingleTickerProv @override Widget build(BuildContext context) { - return SizeTransition(axisAlignment: 1.0, sizeFactor: animation, child: widget.child); + return SizeTransition( + alignment: Alignment.bottomLeft, + sizeFactor: animation, + child: widget.child, + ); } } diff --git a/pubspec.lock b/pubspec.lock index 15fd8d9d0..c674f7253 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "8d7ff3948166b8ec5da0fbb5962000926b8e02f2ed9b3e51d1738905fbd4c98d" + sha256: "3b19a47f6ea7c2632760777c78174f47f6aec1e05f0cd611380d4593b8af1dbc" url: "https://pub.dev" source: hosted - version: "93.0.0" + version: "96.0.0" _flutterfire_internals: dependency: transitive description: @@ -21,10 +21,10 @@ packages: dependency: transitive description: name: analyzer - sha256: de7148ed2fcec579b19f122c1800933dfa028f6d9fd38a152b04b1516cec120b + sha256: "0c516bc4ad36a1a75759e54d5047cb9d15cded4459df01aa35a0b5ec7db2c2a0" url: "https://pub.dev" source: hosted - version: "10.0.1" + version: "10.2.0" ansicolor: dependency: transitive description: @@ -333,18 +333,18 @@ packages: dependency: "direct main" description: name: device_info_plus - sha256: b4fed1b2835da9d670d7bed7db79ae2a94b0f5ad6312268158a9b5479abbacdd + sha256: "6a642e1daa10190af89ba6cb6386c0df7d071a3592080bfe1e44faa63ae1df65" url: "https://pub.dev" source: hosted - version: "12.4.0" + version: "13.1.0" device_info_plus_platform_interface: dependency: transitive description: name: device_info_plus_platform_interface - sha256: e1ea89119e34903dca74b883d0dd78eb762814f97fb6c76f35e9ff74d261a18f + sha256: "04b173a92e2d9161dfead145667037c8d834db725ce2e7b942bfe18fd2f45a46" url: "https://pub.dev" source: hosted - version: "7.0.3" + version: "8.1.0" dynamic_system_colors: dependency: "direct main" description: @@ -386,6 +386,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.0" + ffi_leak_tracker: + dependency: transitive + description: + name: ffi_leak_tracker + sha256: "4093d4ef9ca06ffe2786e73bfb25e22aa92112b9bb4ec941f11e3e6b61489a97" + url: "https://pub.dev" + source: hosted + version: "0.1.2" file: dependency: transitive description: @@ -398,10 +406,10 @@ packages: dependency: "direct main" description: name: file_picker - sha256: f13a03000d942e476bc1ff0a736d2e9de711d2f89a95cd4c1d88f861c3348387 + sha256: "51093fc49e4d58935998fb112593c23eda571d14b488388bd41d5d2ba332b26a" url: "https://pub.dev" source: hosted - version: "11.0.2" + version: "12.0.0-beta.3" file_selector_linux: dependency: transitive description: @@ -657,10 +665,10 @@ packages: dependency: transitive description: name: flutter_secure_storage_windows - sha256: "3b7c8e068875dfd46719ff57c90d8c459c87f2302ed6b00ff006b3c9fcad1613" + sha256: "8f42f359f187a94dce7a3ab2ec5903d013dddfc7127078ebab19fa244c3840e8" url: "https://pub.dev" source: hosted - version: "4.1.0" + version: "4.2.1" flutter_slidable: dependency: "direct main" description: @@ -987,18 +995,18 @@ packages: dependency: "direct main" description: name: material_symbols_icons - sha256: c62b15f2b3de98d72cbff0148812f5ef5159f05e61fc9f9a089ec2bb234df082 + sha256: "10a74aaa9e566c92f8aa14809d2dd78156fb93743348ebffec0345c38eb35706" url: "https://pub.dev" source: hosted - version: "4.2906.0" + version: "4.2928.1" meta: dependency: "direct main" description: name: meta - sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" + sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349" url: "https://pub.dev" source: hosted - version: "1.17.0" + version: "1.18.0" mime: dependency: transitive description: @@ -1091,18 +1099,18 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "468c26b4254ab01979fa5e4a98cb343ea3631b9acee6f21028997419a80e1a20" + sha256: "4bf625947f6c7713ee242296a682e23e44823c09cf9d79e4f1238923c92db852" url: "https://pub.dev" source: hosted - version: "9.0.1" + version: "10.1.0" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086" + sha256: db762cb2f4f25ee60fb6359773861b0f199e00b90d237bd85a76a1e806b46ef4 url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "4.1.0" path: dependency: "direct main" description: @@ -1316,18 +1324,18 @@ packages: dependency: "direct main" description: name: share_plus - sha256: "223873d106614442ea6f20db5a038685cc5b32a2fba81cdecaefbbae0523f7fa" + sha256: a857d8b1479250aff6b57a51b2c02d31ca05848d441817c43f1640c885c286c0 url: "https://pub.dev" source: hosted - version: "12.0.2" + version: "13.1.0" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "88023e53a13429bd65d8e85e11a9b484f49d4c190abbd96c7932b74d6927cc9a" + sha256: "7f7ae28cf400d13f811e297ff37742dba83b79e0a6f5dce14eec0248274e6ce9" url: "https://pub.dev" source: hosted - version: "6.1.0" + version: "7.1.0" shared_preferences: dependency: "direct main" description: @@ -1593,26 +1601,26 @@ packages: dependency: transitive description: name: test - sha256: "280d6d890011ca966ad08df7e8a4ddfab0fb3aa49f96ed6de56e3521347a9ae7" + sha256: "8d9ceddbab833f180fbefed08afa76d7c03513dfdba87ffcec2718b02bbcbf20" url: "https://pub.dev" source: hosted - version: "1.30.0" + version: "1.31.0" test_api: dependency: transitive description: name: test_api - sha256: "8161c84903fd860b26bfdefb7963b3f0b68fee7adea0f59ef805ecca346f0c7a" + sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e" url: "https://pub.dev" source: hosted - version: "0.7.10" + version: "0.7.11" test_core: dependency: transitive description: name: test_core - sha256: "0381bd1585d1a924763c308100f2138205252fb90c9d4eeaf28489ee65ccde51" + sha256: "1991d4cfe85d5043241acac92962c3977c8d2f2add1ee73130c7b286417d1d34" url: "https://pub.dev" source: hosted - version: "0.6.16" + version: "0.6.17" timezone: dependency: transitive description: @@ -1649,10 +1657,10 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "3bb000251e55d4a209aa0e2e563309dc9bb2befea2295fd0cec1f51760aac572" + sha256: "17bc677f0b301615530dd1d67e0a9828cafa2d0b6b6eae4cd3679b7eac4a273c" url: "https://pub.dev" source: hosted - version: "6.3.29" + version: "6.3.30" url_launcher_ios: dependency: transitive description: @@ -1737,10 +1745,10 @@ packages: dependency: "direct main" description: name: wakelock_plus - sha256: ddf3db70eaa10c37558ff817519b85d527dbd21034fd5d8e1c2e85f31588f1c1 + sha256: "824c5bba0f800e86d32e57d3d1843c531f090005cc89d9a837933e6601093d53" url: "https://pub.dev" source: hosted - version: "1.5.2" + version: "1.6.1" wakelock_plus_platform_interface: dependency: "direct dev" description: @@ -1793,18 +1801,18 @@ packages: dependency: transitive description: name: win32 - sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e + sha256: a1fc9eb9248baa05dfc12ed5b66e377b3e23f095eec078e0371622b9033810d9 url: "https://pub.dev" source: hosted - version: "5.15.0" + version: "6.2.0" win32_registry: dependency: transitive description: name: win32_registry - sha256: "6f1b564492d0147b330dd794fee8f512cec4977957f310f9951b5f9d83618dae" + sha256: "73b1d78920a9d6e03f8b4e43e612b87bf3152a0e5c5e5150267762b7c4116904" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "3.0.3" xdg_directories: dependency: transitive description: @@ -1831,4 +1839,4 @@ packages: version: "3.1.3" sdks: dart: ">=3.11.5 <4.0.0" - flutter: "3.41.9" + flutter: "3.44.0" diff --git a/pubspec.yaml b/pubspec.yaml index 9de0fb173..9d847f5c9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -7,7 +7,7 @@ version: 0.23.14+002314 # See README.md for details about versioning environment: sdk: ^3.11.5 # this should be updated with every new flutter stable release - flutter: 3.41.9 + flutter: 3.44.0 dependencies: app_links: ^7.0.0 @@ -24,13 +24,13 @@ dependencies: cupertino_icons: ^1.0.9 dartchess: ^0.12.3 deep_pick: ^1.1.0 - device_info_plus: ^12.4.0 + device_info_plus: ^13.1.0 dynamic_system_colors: git: url: https://github.com/veloce/flutter_dynamic_system_colors.git ref: main fast_immutable_collections: ^11.2.0 - file_picker: ^11.0.2 + file_picker: ^12.0.0-beta.3 firebase_core: ^4.9.0 firebase_crashlytics: ^5.2.2 firebase_messaging: ^16.2.2 @@ -59,10 +59,10 @@ dependencies: linkify: ^5.0.0 logging: ^1.3.0 material_color_utilities: ^0.13.0 - material_symbols_icons: 4.2906.0 # Check tree shaking during the production build when updating. - meta: ^1.17.0 + material_symbols_icons: ^4.2928.1 # Check tree shaking during the production build when updating. + meta: ^1.18.0 multistockfish: ^0.5.0 - package_info_plus: ^9.0.1 + package_info_plus: ^10.1.0 path: ^1.9.1 path_provider: ^2.1.5 popover: ^0.4.0 @@ -74,7 +74,7 @@ dependencies: url: https://github.com/KasemJaffer/receive_sharing_intent ref: 2cea396843cd3ab1b5ec4334be4233864637874e result_extensions: ^0.2.0 - share_plus: ^12.0.2 + share_plus: ^13.1.0 shared_preferences: ^2.5.5 signal_strength_indicator: ^0.5.0 sound_effect: ^0.1.3 @@ -83,7 +83,7 @@ dependencies: stream_transform: ^2.1.1 url_launcher: ^6.3.2 visibility_detector: ^0.4.0+2 - wakelock_plus: ^1.5.2 + wakelock_plus: ^1.6.1 web_socket_channel: ^3.0.3 dev_dependencies: