diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 2151731242..64e2494eab 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,6 +1,6 @@ FROM docker.io/ubuntu:22.04 -ENV FLUTTER_VERSION="3.29.2" +ENV FLUTTER_VERSION="3.32.0" ENV USER="komodo" ENV USER_ID=1000 ENV PATH=$PATH:/opt/flutter/bin diff --git a/.docker/komodo-wallet-android.dockerfile b/.docker/komodo-wallet-android.dockerfile index e68138a150..f4103fdbbb 100644 --- a/.docker/komodo-wallet-android.dockerfile +++ b/.docker/komodo-wallet-android.dockerfile @@ -1,6 +1,6 @@ FROM komodo/android-sdk:35 AS final -ENV FLUTTER_VERSION="3.29.2" +ENV FLUTTER_VERSION="3.32.0" ENV HOME="/home/komodo" ENV USER="komodo" ENV PATH=$PATH:$HOME/flutter/bin diff --git a/.github/actions/flutter-deps/action.yml b/.github/actions/flutter-deps/action.yml index 1edbca1713..b621462237 100644 --- a/.github/actions/flutter-deps/action.yml +++ b/.github/actions/flutter-deps/action.yml @@ -7,7 +7,7 @@ runs: uses: subosito/flutter-action@v2 with: # NB! Keep up-to-date with the flutter version used for development - flutter-version: "3.29.2" + flutter-version: "3.32.0" channel: "stable" - name: Prepare build directory diff --git a/.github/workflows/mobile-builds.yml b/.github/workflows/mobile-builds.yml index 835ebd8ca5..1013850c57 100644 --- a/.github/workflows/mobile-builds.yml +++ b/.github/workflows/mobile-builds.yml @@ -68,6 +68,14 @@ jobs: FEEDBACK_PRODUCTION_URL: ${{ secrets.FEEDBACK_PRODUCTION_URL }} FEEDBACK_TEST_URL: ${{ secrets.FEEDBACK_TEST_URL }} + # Flutter build with `--no-pub` flag fails on Android due to a + # known regression with the build system in 3.32.0. + # https://github.com/flutter/flutter/issues/169336 + - name: Temporary workaround for Android build issue + if: ${{ matrix.platform == 'Android' }} + run: | + flutter build apk --config-only + - name: Build for ${{ matrix.platform }} env: GITHUB_API_PUBLIC_READONLY_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/roll-sdk-packages.yml b/.github/workflows/roll-sdk-packages.yml index a67fd7454b..c2e9b9eeac 100644 --- a/.github/workflows/roll-sdk-packages.yml +++ b/.github/workflows/roll-sdk-packages.yml @@ -45,7 +45,7 @@ jobs: uses: subosito/flutter-action@v2 with: # NB! Keep up-to-date with the flutter version used for development - flutter-version: "3.29.2" + flutter-version: "3.32.0" channel: "stable" - name: Determine configuration diff --git a/app_theme/lib/src/dark/theme_global_dark.dart b/app_theme/lib/src/dark/theme_global_dark.dart index 2d66380496..f12b56550a 100644 --- a/app_theme/lib/src/dark/theme_global_dark.dart +++ b/app_theme/lib/src/dark/theme_global_dark.dart @@ -70,7 +70,7 @@ ThemeData get themeGlobalDark { fontFamily: 'Manrope', scaffoldBackgroundColor: colorScheme.onSurface, cardColor: colorScheme.surface, - cardTheme: CardTheme( + cardTheme: CardThemeData( color: colorScheme.surface, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(18)), @@ -83,7 +83,7 @@ ThemeData get themeGlobalDark { iconTheme: IconThemeData(color: colorScheme.primary), progressIndicatorTheme: ProgressIndicatorThemeData(color: colorScheme.primary), - dialogTheme: const DialogTheme( + dialogTheme: const DialogThemeData( backgroundColor: Color.fromRGBO(14, 16, 27, 1), shape: RoundedRectangleBorder( borderRadius: BorderRadius.all( @@ -144,7 +144,7 @@ ThemeData get themeGlobalDark { padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 4), ), ), - tabBarTheme: TabBarTheme( + tabBarTheme: TabBarThemeData( labelColor: textColor, indicator: UnderlineTabIndicator( borderSide: BorderSide( diff --git a/app_theme/lib/src/light/theme_global_light.dart b/app_theme/lib/src/light/theme_global_light.dart index e4d476ad07..c910fb52e1 100644 --- a/app_theme/lib/src/light/theme_global_light.dart +++ b/app_theme/lib/src/light/theme_global_light.dart @@ -54,7 +54,7 @@ ThemeData get themeGlobalLight { fontFamily: 'Manrope', scaffoldBackgroundColor: colorScheme.onSurface, cardColor: colorScheme.surface, - cardTheme: CardTheme( + cardTheme: CardThemeData( color: colorScheme.surface, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(18)), @@ -67,7 +67,7 @@ ThemeData get themeGlobalLight { iconTheme: IconThemeData(color: colorScheme.primary), progressIndicatorTheme: ProgressIndicatorThemeData(color: colorScheme.primary), - dialogTheme: const DialogTheme( + dialogTheme: const DialogThemeData( backgroundColor: Color.fromRGBO(255, 255, 255, 1), shape: RoundedRectangleBorder( borderRadius: BorderRadius.all( @@ -152,7 +152,7 @@ ThemeData get themeGlobalLight { padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 4), ), ), - tabBarTheme: TabBarTheme( + tabBarTheme: TabBarThemeData( labelColor: textColor, indicator: UnderlineTabIndicator( borderSide: BorderSide( diff --git a/docs/FLUTTER_VERSION.md b/docs/FLUTTER_VERSION.md index ef592a7f7b..1529c69f00 100644 --- a/docs/FLUTTER_VERSION.md +++ b/docs/FLUTTER_VERSION.md @@ -2,7 +2,7 @@ ## Supported Flutter Version -This project supports Flutter `3.29.2` (latest stable release). We aim to keep the project up-to-date with the most recent stable Flutter versions. +This project supports Flutter `3.32.0` (latest stable release). We aim to keep the project up-to-date with the most recent stable Flutter versions. ## Recommended Approach: Multiple Flutter Versions @@ -15,14 +15,14 @@ See our guide on [Multiple Flutter Versions](MULTIPLE_FLUTTER_VERSIONS.md) for d While it's possible to pin your global Flutter installation to a specific version, **this approach is not recommended** due to: - Lack of isolation between projects -- Known issues with `flutter pub get` when using Flutter 3.29.2 +- Known issues with `flutter pub get` when using Flutter 3.32.0 - Difficulty switching between versions for different projects If you still choose to use this method, you can run: ```bash cd ~/flutter -git checkout 3.29.2 +git checkout 3.32.0 flutter doctor ``` diff --git a/docs/MULTIPLE_FLUTTER_VERSIONS.md b/docs/MULTIPLE_FLUTTER_VERSIONS.md index 963d94f715..e5fa57fdf2 100644 --- a/docs/MULTIPLE_FLUTTER_VERSIONS.md +++ b/docs/MULTIPLE_FLUTTER_VERSIONS.md @@ -57,7 +57,7 @@ sudo pacman -R flutter # for Arch 2. Launch Flutter Sidekick -3. Click on "Versions" in the sidebar and download Flutter version `3.29.2` +3. Click on "Versions" in the sidebar and download Flutter version `3.32.0` 4. Set this version as the global default by clicking the "Set as Global" button @@ -91,11 +91,11 @@ sudo pacman -R flutter # for Arch curl -fsSL https://fvm.app/install.sh | bash ``` -2. Install and use Flutter 3.29.2: +2. Install and use Flutter 3.32.0: ```bash - fvm install 3.29.2 - fvm global 3.29.2 + fvm install 3.32.0 + fvm global 3.32.0 ``` 3. Add FVM's default Flutter version to your PATH by adding the following to your `~/.bashrc`, `~/.zshrc`, or equivalent: @@ -130,11 +130,11 @@ sudo pacman -R flutter # for Arch choco install fvm ``` -3. Install and use Flutter 3.29.2: +3. Install and use Flutter 3.32.0: ```powershell - fvm install 3.29.2 - fvm global 3.29.2 + fvm install 3.32.0 + fvm global 3.32.0 ``` 4. Add FVM's Flutter version to your PATH: @@ -156,7 +156,7 @@ To use a specific Flutter version for a project: 2. Run: ```bash - fvm use 3.29.2 + fvm use 3.32.0 ``` This will create a `.fvmrc` file in your project, which specifies the Flutter version to use for this project. diff --git a/ios/Flutter/ephemeral/flutter_lldb_helper.py b/ios/Flutter/ephemeral/flutter_lldb_helper.py new file mode 100644 index 0000000000..a88caf99df --- /dev/null +++ b/ios/Flutter/ephemeral/flutter_lldb_helper.py @@ -0,0 +1,32 @@ +# +# Generated file, do not edit. +# + +import lldb + +def handle_new_rx_page(frame: lldb.SBFrame, bp_loc, extra_args, intern_dict): + """Intercept NOTIFY_DEBUGGER_ABOUT_RX_PAGES and touch the pages.""" + base = frame.register["x0"].GetValueAsAddress() + page_len = frame.register["x1"].GetValueAsUnsigned() + + # Note: NOTIFY_DEBUGGER_ABOUT_RX_PAGES will check contents of the + # first page to see if handled it correctly. This makes diagnosing + # misconfiguration (e.g. missing breakpoint) easier. + data = bytearray(page_len) + data[0:8] = b'IHELPED!' + + error = lldb.SBError() + frame.GetThread().GetProcess().WriteMemory(base, data, error) + if not error.Success(): + print(f'Failed to write into {base}[+{page_len}]', error) + return + +def __lldb_init_module(debugger: lldb.SBDebugger, _): + target = debugger.GetDummyTarget() + # Caveat: must use BreakpointCreateByRegEx here and not + # BreakpointCreateByName. For some reasons callback function does not + # get carried over from dummy target for the later. + bp = target.BreakpointCreateByRegex("^NOTIFY_DEBUGGER_ABOUT_RX_PAGES$") + bp.SetScriptCallbackFunction('{}.handle_new_rx_page'.format(__name__)) + bp.SetAutoContinue(True) + print("-- LLDB integration loaded --") diff --git a/ios/Flutter/ephemeral/flutter_lldbinit b/ios/Flutter/ephemeral/flutter_lldbinit new file mode 100644 index 0000000000..e3ba6fbedc --- /dev/null +++ b/ios/Flutter/ephemeral/flutter_lldbinit @@ -0,0 +1,5 @@ +# +# Generated file, do not edit. +# + +command script import --relative-to-command-file flutter_lldb_helper.py diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 16b0d2e2b8..0d777da1bb 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -272,14 +272,10 @@ inputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - ); name = "[CP] Copy Pods Resources"; outputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", ); - outputPaths = ( - ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; @@ -308,14 +304,10 @@ inputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - ); name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); - outputPaths = ( - ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index c53e2b314e..9c12df59c6 100644 --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -26,6 +26,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit" shouldUseLaunchSchemeArgsEnv = "YES"> =3.7.0 <4.0.0" - flutter: ">=3.29.2" + flutter: ">=3.32.0" diff --git a/pubspec.yaml b/pubspec.yaml index 3bce361b41..b964320881 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -22,7 +22,7 @@ environment: # the new formatting style may cause conflicts. This allows to run 3.7.0, but it will not # enforce the new formatting style until the mininum Dart version is updated. sdk: ">=3.6.0 <4.0.0" - flutter: ^3.29.2 + flutter: ^3.32.0 dependencies: ## ---- Flutter SDK