Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dynamically changing Typography in ThemeData generates an error #103864

Closed
rydmike opened this issue May 15, 2022 · 6 comments · Fixed by #110870
Closed

Dynamically changing Typography in ThemeData generates an error #103864

rydmike opened this issue May 15, 2022 · 6 comments · Fixed by #110870
Labels
f: material design flutter/packages/flutter/material repository. found in release: 3.0 Found to occur in 3.0 found in release: 3.1 Found to occur in 3.1 framework flutter/packages/flutter repository. See also f: labels. has reproducible steps The issue has been confirmed reproducible and is ready to work on P1 High-priority issues at the top of the work list r: fixed Issue is closed as already fixed in a newer version

Comments

@rydmike
Copy link
Contributor

rydmike commented May 15, 2022

Steps to Reproduce

When you toggle a theme between two ThemeData objects that have different Typography, the framework throws an assert error. This gets in the way of dynamically changing Typography in an application.

We can demonstrate the issue by making a light and dark theme that uses different Typography and switch between the light and dark theme.

Consider this minimum reproduction sample:

Code sample
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});
  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  ThemeMode themeMode = ThemeMode.light;
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Typography theme toggle issue',
      debugShowCheckedModeBanner: false,
      themeMode: themeMode,
      theme: ThemeData(
          brightness: Brightness.light,
          typography: Typography.material2021(platform: defaultTargetPlatform)),
      darkTheme: ThemeData(
        brightness: Brightness.dark,
        typography: Typography.material2018(platform: defaultTargetPlatform),
      ),
      home: Scaffold(
        body: Center(
          child: HomePage(
            darkMode: themeMode == ThemeMode.dark,
            onChangedDarkMode: (bool value) {
              setState(() {
                if (value) {
                  themeMode = ThemeMode.dark;
                } else {
                  themeMode = ThemeMode.light;
                }
              });
            },
          ),
        ),
      ),
    );
  }
}

class HomePage extends StatelessWidget {
  const HomePage(
      {super.key, required this.darkMode, required this.onChangedDarkMode});
  final bool darkMode;
  final ValueChanged<bool> onChangedDarkMode;

  @override
  Widget build(BuildContext context) {
    return ListView(
      children: [
        Padding(
          padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8.0),
          child: Text(
            'Typography theme toggle issue',
            style: Theme.of(context).textTheme.headlineSmall,
          ),
        ),
        SwitchListTile(
          title: const Text('Use dark mode'),
          value: darkMode,
          onChanged: onChangedDarkMode,
        ),
      ],
    );
  }
}

Expected results

Expect to be able to toggle theme from light to dark mode without any error:

Light mode Dark mode
image image

Actual results

Instead we get the application transition from light to dark mode via this assert error:

Light mode Mode transition error
image image

This error can be observed on all Flutter channels/versions and platforms.

Copy of error message

The following assertion was thrown building AnimatedTheme(duration: 200ms, dirty, state: _AnimatedThemeState#c59f7(ticker active, ThemeDataTween(ThemeData#e2212 → ThemeData#02cd2))):
'package:flutter/src/painting/text_style.dart': Failed assertion: line 1047 pos 12: 'a == null || b == null || a.inherit == b.inherit': is not true.
Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md
The relevant error-causing widget was: 
  MaterialApp MaterialApp:file:///C:/Users/mryds/OneDrive/code/flutter/_mr/flutter3_deprecated/lib/main.dart:18:12
When the exception was thrown, this was the stack: 
#2      TextStyle.lerp (package:flutter/src/painting/text_style.dart:1047:12)
#3      TextTheme.lerp (package:flutter/src/material/text_theme.dart:615:31)
#4      Typography.lerp (package:flutter/src/material/typography.dart:317:17)
#5      ThemeData.lerp (package:flutter/src/material/theme_data.dart:2068:30)
#6      ThemeDataTween.lerp (package:flutter/src/material/theme.dart:176:41)
#7      Tween.transform (package:flutter/src/animation/tween.dart:327:12)
#8      Animatable.evaluate (package:flutter/src/animation/tween.dart:53:46)
#9      _AnimatedThemeState.build (package:flutter/src/material/theme.dart:232:20)
#10     StatefulElement.build (package:flutter/src/widgets/framework.dart:4919:27)
#11     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4806:15)
#12     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4977:11)
#13     Element.rebuild (package:flutter/src/widgets/framework.dart:4529:5)
#14     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2659:19)
#15     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:891:21)
#16     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:370:5)
#17     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1146:15)
#18     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1083:9)
#19     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:997:5)
#23     _invoke (dart:ui/hooks.dart:151:10)
#24     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:308:5)
#25     _drawFrame (dart:ui/hooks.dart:115:31)
(elided 5 frames from class _AssertionError and dart:async)
Flutter doctor
[√] Flutter (Channel stable, 3.0.0, on Microsoft Windows [Version 10.0.22000.675], locale en-US)
    • Flutter version 3.0.0 at C:\src\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ee4e09cce0 (6 days ago), 2022-05-09 16:45:18 -0700
    • Engine revision d1b9a6938a
    • Dart version 2.17.0
    • DevTools version 2.12.2

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at C:\Users\mryds\AppData\Local\Android\sdk
    • Platform android-31, build-tools 30.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.11.9)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.11.32106.194
    • Windows 10 SDK version 10.0.19041.0

[√] Android Studio (version 2021.2)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)

[√] IntelliJ IDEA Community Edition (version 2021.3)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.3.1
    • Flutter plugin version 66.0.3
    • Dart plugin version 213.7306

[√] VS Code (version 1.67.0)
    • VS Code at C:\Users\mryds\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.40.0

[√] Connected device (4 available)
    • Nexus 7 (mobile)  • 0a99f5e8 • android-arm    • Android 6.0.1 (API 23)
    • Windows (desktop) • windows  • windows-x64    • Microsoft Windows [Version 10.0.22000.675]
    • Chrome (web)      • chrome   • web-javascript • Google Chrome 100.0.4896.127
    • Edge (web)        • edge     • web-javascript • Microsoft Edge 101.0.1210.39

[√] HTTP Host Availability
    • All required HTTP hosts are available
@maheshmnj maheshmnj added the in triage Presently being triaged by the triage team label May 16, 2022
@maheshmnj
Copy link
Member

Hi @rydmike, Thanks for filing the issue. I am able to reproduce the assertion error when changing the typography on stable and the master channel.

flutter doctor -v (mac)
[✓] Flutter (Channel stable, 3.0.0, on macOS 12.3 21E230 darwin-arm, locale en-IN)
    • Flutter version 3.0.0 at /Users/mahesh/Documents/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ee4e09cce0 (6 days ago), 2022-05-09 16:45:18 -0700
    • Engine revision d1b9a6938a
    • Dart version 2.17.0
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-32, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
    • All Android licenses accepted.

[!] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! CocoaPods 1.10.2 out of date (1.11.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your
        plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

[✓] VS Code (version 1.66.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.40.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 12.3 21E230 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Google Chrome 101.0.4951.64

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.
    • Flutter version 3.1.0-0.0.pre.419 at /Users/mahesh/Documents/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2eed8cbf93 (2 weeks ago), 2022-04-28 22:29:06 -0400
    • Engine revision dfdfe0b3b0
    • Dart version 2.18.0 (build 2.18.0-66.0.dev)
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-32, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
    • All Android licenses accepted.

[!] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! CocoaPods 1.10.2 out of date (1.11.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your
        plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

[✓] VS Code (version 1.66.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.40.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 12.3 21E230 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Google Chrome 101.0.4951.64

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.
logs
mahesh@Maheshs-MacBook-Air-M1 crop_repro % flutterm run
Could not load custom device from config index 0: Expected enabled to be a boolean.
Multiple devices found:
macOS (desktop) • macos  • darwin-arm64   • macOS 12.3 21E230 darwin-arm
Chrome (web)    • chrome • web-javascript • Google Chrome 101.0.4951.64
[1]: macOS (macos)
[2]: Chrome (chrome)
Please choose one (To quit, press "q/Q"): 1
Running "flutter pub get" in crop_repro...                       1,026ms
Launching lib/main.dart on macOS in debug mode...
objc[30976]: Class AMSupportURLConnectionDelegate is implemented in both /usr/lib/libamsupport.dylib (0x1fc66e098) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x103c082c8). One of the two will be used. Which one is undefined.
objc[30976]: Class AMSupportURLSession is implemented in both /usr/lib/libamsupport.dylib (0x1fc66e0e8) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x103c08318). One of the two will be used. Which one is undefined.
objc[30976]: Class AppleTypeCRetimerRestoreInfoHelper is implemented in both /usr/lib/libauthinstall.dylib (0x1fc66deb0) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x103c084f8). One of the two will be used. Which one is undefined.
objc[30976]: Class AppleTypeCRetimerFirmwareAggregateRequestCreator is implemented in both /usr/lib/libauthinstall.dylib (0x1fc66df00) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x103c08548). One of the two will be used. Which one is undefined.
objc[30976]: Class AppleTypeCRetimerFirmwareRequestCreator is implemented in both /usr/lib/libauthinstall.dylib (0x1fc66df50) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x103c08598). One of the two will be used. Which one is undefined.
objc[30976]: Class ATCRTRestoreInfoFTABFile is implemented in both /usr/lib/libauthinstall.dylib (0x1fc66dfa0) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x103c085e8). One of the two will be used. Which one is undefined.
objc[30976]: Class AppleTypeCRetimerFirmwareCopier is implemented in both /usr/lib/libauthinstall.dylib (0x1fc66dff0) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x103c08638). One of the two will be used. Which one is undefined.
objc[30976]: Class ATCRTRestoreInfoFTABSubfile is implemented in both /usr/lib/libauthinstall.dylib (0x1fc66e040) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x103c08688). One of the two will be used. Which one is undefined.
--- xcodebuild: WARNING: Using the first of multiple matching destinations:
{ platform:macOS, arch:arm64, id:00008103-0019553C36F2001E }
{ platform:macOS, arch:x86_64, id:00008103-0019553C36F2001E }
Building macOS application...                                           
Syncing files to device macOS...                                   116ms

Flutter run key commands.
r Hot reload. 🔥🔥🔥
R Hot restart.
h List all available interactive commands.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).

💪 Running with sound null safety 💪

An Observatory debugger and profiler on macOS is available at: http://127.0.0.1:62106/AM59Hskn8Yg=/
The Flutter DevTools debugger and profiler on macOS is available at:
http://127.0.0.1:9101?uri=http://127.0.0.1:62106/AM59Hskn8Yg=/

══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following assertion was thrown building AnimatedTheme(duration: 200ms, dirty, state:
_AnimatedThemeState#d073e(ticker active, ThemeDataTween(ThemeData#dd9e1 → ThemeData#c72db))):
'package:flutter/src/painting/text_style.dart': Failed assertion: line 1070 pos 12: 'a == null || b
== null || a.inherit == b.inherit': is not true.

Either the assertion indicates an error in the framework itself, or we should provide substantially
more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md

The relevant error-causing widget was:
  MaterialApp MaterialApp:file:///Users/mahesh/Downloads/crop_repro/lib/main.dart:18:12

When the exception was thrown, this was the stack:
#2      TextStyle.lerp (package:flutter/src/painting/text_style.dart:1070:12)
#3      TextTheme.lerp (package:flutter/src/material/text_theme.dart:615:31)
#4      Typography.lerp (package:flutter/src/material/typography.dart:317:17)
#5      ThemeData.lerp (package:flutter/src/material/theme_data.dart:1966:30)
#6      ThemeDataTween.lerp (package:flutter/src/material/theme.dart:185:41)
#7      Tween.transform (package:flutter/src/animation/tween.dart:327:12)
#8      Animatable.evaluate (package:flutter/src/animation/tween.dart:53:46)
#9      _AnimatedThemeState.build (package:flutter/src/material/theme.dart:240:20)
#10     StatefulElement.build (package:flutter/src/widgets/framework.dart:4916:27)
#11     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4803:15)
#12     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4974:11)
#13     Element.rebuild (package:flutter/src/widgets/framework.dart:4530:5)
#14     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2655:19)
#15     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:866:21)
#16     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:370:5)
#17     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1146:15)
#18     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1083:9)
#19     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:997:5)
#20     _invoke (dart:ui/hooks.dart:148:13)
#21     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:318:5)
#22     _drawFrame (dart:ui/hooks.dart:115:31)
(elided 2 frames from class _AssertionError)

════════════════════════════════════════════════════════════════════════════════════════════════════

Another exception was thrown: 'package:flutter/src/painting/text_style.dart': Failed assertion: line 1070 pos 12: 'a == null ||
b == null || a.inherit == b.inherit': is not true.

Another exception was thrown: 'package:flutter/src/painting/text_style.dart': Failed assertion: line 1070 pos 12: 'a == null ||
b == null || a.inherit == b.inherit': is not true.

Another exception was thrown: 'package:flutter/src/painting/text_style.dart': Failed assertion: line 1070 pos 12: 'a == null ||
b == null || a.inherit == b.inherit': is not true.

Another exception was thrown: 'package:flutter/src/painting/text_style.dart': Failed assertion: line 1070 pos 12: 'a == null ||
b == null || a.inherit == b.inherit': is not true.

@maheshmnj maheshmnj added framework flutter/packages/flutter repository. See also f: labels. has reproducible steps The issue has been confirmed reproducible and is ready to work on found in release: 3.0 Found to occur in 3.0 found in release: 3.1 Found to occur in 3.1 f: material design flutter/packages/flutter/material repository. and removed in triage Presently being triaged by the triage team labels May 16, 2022
@xu-baolin xu-baolin added the P2 Important issues not at the top of the work list label May 16, 2022
@xu-baolin xu-baolin self-assigned this May 16, 2022
@xu-baolin
Copy link
Member

Same issue #89947 #70281 #43358 #40514

@rydmike
Copy link
Contributor Author

rydmike commented May 18, 2022

@xu-baolin thanks for addressing it in above PR, hope it works and yes this issue has been around since the beginning, glad if you can finally put it to rest! 👍🏻

@xu-baolin xu-baolin removed their assignment May 25, 2022
@rydmike
Copy link
Contributor Author

rydmike commented May 28, 2022

Since @xu-baolin's PR was apparently not merged due to #103896 (comment) what is then next solution and when?

Asking because I have things stuck on this issue since I can't dynamically toggle between themes that uses different Typography as long as this issue exists.

@xu-baolin
Copy link
Member

@Hixie @LongCatIsLooong Hi, guys,
If I remember correctly, we used to have a principle that if there is no perfect solution, we can accept a compromise solution. But I can't find it now, is it deleted?

Not sure if that principle applies to this issue. Many developers have reported this issue.

rydmike added a commit to rydmike/flex_color_scheme that referenced this issue Jul 8, 2022
* Deprecated m3TextTheme and use SDK built in Typography instead

* Deprcate: FlexSubThemes.buttonTheme

* Bump package versions

* Update to use super.params, new in Dart 2.17

* Update LinkTextSpan to use Uri instead of deprecated url

* Dep updates

* Add larg FAB to theme showcase

* Make Example custom themed Cards, also respect useMaterial3

* Add surfaceTint color to SchemeColor enum and functions

* Add basic support for surfaceTint

* Three more panel M3 useMaterial3 behavior added

* Fix lint

* Typo/comment corrections

* Add support for Flutter 3.0 Theme Extensions

* iOs and macOS

* Bump package versions

* DroidSans font not available anymore in Google Fons 3.0.0 package, replace with Fira Mono

* Update change log and TODOs

* Bump example version info

* Opt-in sub theme toggleables now default to primary instead of secondary

* Playground: Toggleable colors and efault text update. Add M3 switch to UI.

* Playground: FAB fix of default text when using M3

* Remove not needed TODOs

* Correct FAB color behavior when useMaterail3 is true

* Doc and typo fixes

* Playground app: Workaround for issue flutter/flutter#103864

* FAB component theme color indicator fix for useM3

* PopupMenu style change

* M3 defaults support for NavigationBar

* Fix Material theme showcase when using M3

* Themes Playground - update M3 presentation of Card

* Update CHANGELOG.md

* Doc updates

* Doc updates

* Doc updates

* FIX NavigationRail M3 defaults

* FIX test for new default rail size 14-12dp

* Playground intro text update. Flutter version info update.

* Doc updates

* Doc updates

* Doc updates

* Add full support for surfaceTint color, so it is also used as FCS blend color. Needs tests!

* Custom surfaceTint and surface blends support in Playground

* Example fixes

* Update CHANGELOG.md

* Cleaning: Hashcode algo changed. Remove not needed finals.

* Lint: Remove not needed finals.
* HasCode: Change to Object.hash (used jenkins deprecated in master).

* Set defaultUseMaterial3 = false due to Flutter issue  107190

To avoid having this issue visible as default in Theme Playground
we default useMaterial3 until it is fixed or behaves better
flutter/flutter#107190

* Initial/early support for M3 TextField style.

* Update flex_theme_mode_switch.dart

* Fix InputDecorator test. Update changelog date
@maheshmnj maheshmnj added the r: fixed Issue is closed as already fixed in a newer version label Sep 3, 2022
@github-actions
Copy link

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 17, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
f: material design flutter/packages/flutter/material repository. found in release: 3.0 Found to occur in 3.0 found in release: 3.1 Found to occur in 3.1 framework flutter/packages/flutter repository. See also f: labels. has reproducible steps The issue has been confirmed reproducible and is ready to work on P1 High-priority issues at the top of the work list r: fixed Issue is closed as already fixed in a newer version
Projects
None yet
3 participants