diff --git a/animated-responsive-layout/codelab_rebuild.yaml b/animated-responsive-layout/codelab_rebuild.yaml index 24257ea416..3fe60459e2 100644 --- a/animated-responsive-layout/codelab_rebuild.yaml +++ b/animated-responsive-layout/codelab_rebuild.yaml @@ -377,7 +377,7 @@ steps: class _EmailWidgetState extends State { late final ColorScheme _colorScheme = Theme.of(context).colorScheme; late Color unselectedColor = Color.alphaBlend( - _colorScheme.primary.withOpacity(0.08), + _colorScheme.primary.withAlpha(20), _colorScheme.surface, ); @@ -587,7 +587,7 @@ steps: return Container( height: 84, color: Color.alphaBlend( - _colorScheme.primary.withOpacity(0.05), + _colorScheme.primary.withAlpha(12), _colorScheme.surface, ), child: Padding( @@ -858,7 +858,7 @@ steps: class _FeedState extends State { late final _colorScheme = Theme.of(context).colorScheme; late final _backgroundColor = Color.alphaBlend( - _colorScheme.primary.withOpacity(0.14), _colorScheme.surface); + _colorScheme.primary.withAlpha(36), _colorScheme.surface); @override Widget build(BuildContext context) { @@ -925,7 +925,7 @@ steps: import 'widgets/email_list_view.dart'; @@ -41,12 +42,20 @@ class _FeedState extends State { late final _backgroundColor = Color.alphaBlend( - _colorScheme.primary.withOpacity(0.14), _colorScheme.surface); + _colorScheme.primary.withAlpha(36), _colorScheme.surface); + int selectedIndex = 0; + @@ -1093,7 +1093,7 @@ steps: void main() { @@ -43,44 +44,65 @@ class _FeedState extends State { - _colorScheme.primary.withOpacity(0.14), _colorScheme.surface); + _colorScheme.primary.withAlpha(36), _colorScheme.surface); int selectedIndex = 0; + bool wideScreen = false; @@ -1641,7 +1641,7 @@ steps: +class _FeedState extends State with SingleTickerProviderStateMixin { late final _colorScheme = Theme.of(context).colorScheme; late final _backgroundColor = Color.alphaBlend( - _colorScheme.primary.withOpacity(0.14), _colorScheme.surface); + _colorScheme.primary.withAlpha(36), _colorScheme.surface); + late final _controller = AnimationController( + duration: const Duration(milliseconds: 1000), + reverseDuration: const Duration(milliseconds: 1250), diff --git a/animated-responsive-layout/step_03/.gitignore b/animated-responsive-layout/step_03/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/animated-responsive-layout/step_03/.gitignore +++ b/animated-responsive-layout/step_03/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/animated-responsive-layout/step_03/android/gradle/wrapper/gradle-wrapper.properties b/animated-responsive-layout/step_03/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/animated-responsive-layout/step_03/android/gradle/wrapper/gradle-wrapper.properties +++ b/animated-responsive-layout/step_03/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/animated-responsive-layout/step_03/android/settings.gradle b/animated-responsive-layout/step_03/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/animated-responsive-layout/step_03/android/settings.gradle +++ b/animated-responsive-layout/step_03/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/animated-responsive-layout/step_03/macos/Runner/AppDelegate.swift b/animated-responsive-layout/step_03/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/animated-responsive-layout/step_03/macos/Runner/AppDelegate.swift +++ b/animated-responsive-layout/step_03/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/animated-responsive-layout/step_04/.gitignore b/animated-responsive-layout/step_04/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/animated-responsive-layout/step_04/.gitignore +++ b/animated-responsive-layout/step_04/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/animated-responsive-layout/step_04/android/gradle/wrapper/gradle-wrapper.properties b/animated-responsive-layout/step_04/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/animated-responsive-layout/step_04/android/gradle/wrapper/gradle-wrapper.properties +++ b/animated-responsive-layout/step_04/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/animated-responsive-layout/step_04/android/settings.gradle b/animated-responsive-layout/step_04/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/animated-responsive-layout/step_04/android/settings.gradle +++ b/animated-responsive-layout/step_04/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/animated-responsive-layout/step_04/lib/main.dart b/animated-responsive-layout/step_04/lib/main.dart index 53e5229194..abc95934fe 100644 --- a/animated-responsive-layout/step_04/lib/main.dart +++ b/animated-responsive-layout/step_04/lib/main.dart @@ -39,7 +39,7 @@ class Feed extends StatefulWidget { class _FeedState extends State { late final _colorScheme = Theme.of(context).colorScheme; late final _backgroundColor = Color.alphaBlend( - _colorScheme.primary.withOpacity(0.14), _colorScheme.surface); + _colorScheme.primary.withAlpha(36), _colorScheme.surface); @override Widget build(BuildContext context) { diff --git a/animated-responsive-layout/step_04/lib/widgets/email_widget.dart b/animated-responsive-layout/step_04/lib/widgets/email_widget.dart index 66b4fcaa5b..cb317686d6 100644 --- a/animated-responsive-layout/step_04/lib/widgets/email_widget.dart +++ b/animated-responsive-layout/step_04/lib/widgets/email_widget.dart @@ -37,7 +37,7 @@ class EmailWidget extends StatefulWidget { class _EmailWidgetState extends State { late final ColorScheme _colorScheme = Theme.of(context).colorScheme; late Color unselectedColor = Color.alphaBlend( - _colorScheme.primary.withOpacity(0.08), + _colorScheme.primary.withAlpha(20), _colorScheme.surface, ); @@ -247,7 +247,7 @@ class _EmailHeadlineState extends State { return Container( height: 84, color: Color.alphaBlend( - _colorScheme.primary.withOpacity(0.05), + _colorScheme.primary.withAlpha(12), _colorScheme.surface, ), child: Padding( diff --git a/animated-responsive-layout/step_04/macos/Runner/AppDelegate.swift b/animated-responsive-layout/step_04/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/animated-responsive-layout/step_04/macos/Runner/AppDelegate.swift +++ b/animated-responsive-layout/step_04/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/animated-responsive-layout/step_05/.gitignore b/animated-responsive-layout/step_05/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/animated-responsive-layout/step_05/.gitignore +++ b/animated-responsive-layout/step_05/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/animated-responsive-layout/step_05/android/gradle/wrapper/gradle-wrapper.properties b/animated-responsive-layout/step_05/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/animated-responsive-layout/step_05/android/gradle/wrapper/gradle-wrapper.properties +++ b/animated-responsive-layout/step_05/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/animated-responsive-layout/step_05/android/settings.gradle b/animated-responsive-layout/step_05/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/animated-responsive-layout/step_05/android/settings.gradle +++ b/animated-responsive-layout/step_05/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/animated-responsive-layout/step_05/lib/main.dart b/animated-responsive-layout/step_05/lib/main.dart index 684abefcce..606e115a6f 100644 --- a/animated-responsive-layout/step_05/lib/main.dart +++ b/animated-responsive-layout/step_05/lib/main.dart @@ -40,7 +40,7 @@ class Feed extends StatefulWidget { class _FeedState extends State { late final _colorScheme = Theme.of(context).colorScheme; late final _backgroundColor = Color.alphaBlend( - _colorScheme.primary.withOpacity(0.14), _colorScheme.surface); + _colorScheme.primary.withAlpha(36), _colorScheme.surface); int selectedIndex = 0; diff --git a/animated-responsive-layout/step_05/lib/widgets/email_widget.dart b/animated-responsive-layout/step_05/lib/widgets/email_widget.dart index 66b4fcaa5b..cb317686d6 100644 --- a/animated-responsive-layout/step_05/lib/widgets/email_widget.dart +++ b/animated-responsive-layout/step_05/lib/widgets/email_widget.dart @@ -37,7 +37,7 @@ class EmailWidget extends StatefulWidget { class _EmailWidgetState extends State { late final ColorScheme _colorScheme = Theme.of(context).colorScheme; late Color unselectedColor = Color.alphaBlend( - _colorScheme.primary.withOpacity(0.08), + _colorScheme.primary.withAlpha(20), _colorScheme.surface, ); @@ -247,7 +247,7 @@ class _EmailHeadlineState extends State { return Container( height: 84, color: Color.alphaBlend( - _colorScheme.primary.withOpacity(0.05), + _colorScheme.primary.withAlpha(12), _colorScheme.surface, ), child: Padding( diff --git a/animated-responsive-layout/step_05/macos/Runner/AppDelegate.swift b/animated-responsive-layout/step_05/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/animated-responsive-layout/step_05/macos/Runner/AppDelegate.swift +++ b/animated-responsive-layout/step_05/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/animated-responsive-layout/step_06/.gitignore b/animated-responsive-layout/step_06/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/animated-responsive-layout/step_06/.gitignore +++ b/animated-responsive-layout/step_06/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/animated-responsive-layout/step_06/android/gradle/wrapper/gradle-wrapper.properties b/animated-responsive-layout/step_06/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/animated-responsive-layout/step_06/android/gradle/wrapper/gradle-wrapper.properties +++ b/animated-responsive-layout/step_06/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/animated-responsive-layout/step_06/android/settings.gradle b/animated-responsive-layout/step_06/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/animated-responsive-layout/step_06/android/settings.gradle +++ b/animated-responsive-layout/step_06/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/animated-responsive-layout/step_06/lib/main.dart b/animated-responsive-layout/step_06/lib/main.dart index 014d6e5f5c..fbd3aebd33 100644 --- a/animated-responsive-layout/step_06/lib/main.dart +++ b/animated-responsive-layout/step_06/lib/main.dart @@ -41,7 +41,7 @@ class Feed extends StatefulWidget { class _FeedState extends State { late final _colorScheme = Theme.of(context).colorScheme; late final _backgroundColor = Color.alphaBlend( - _colorScheme.primary.withOpacity(0.14), _colorScheme.surface); + _colorScheme.primary.withAlpha(36), _colorScheme.surface); int selectedIndex = 0; bool wideScreen = false; diff --git a/animated-responsive-layout/step_06/lib/widgets/email_widget.dart b/animated-responsive-layout/step_06/lib/widgets/email_widget.dart index 66b4fcaa5b..cb317686d6 100644 --- a/animated-responsive-layout/step_06/lib/widgets/email_widget.dart +++ b/animated-responsive-layout/step_06/lib/widgets/email_widget.dart @@ -37,7 +37,7 @@ class EmailWidget extends StatefulWidget { class _EmailWidgetState extends State { late final ColorScheme _colorScheme = Theme.of(context).colorScheme; late Color unselectedColor = Color.alphaBlend( - _colorScheme.primary.withOpacity(0.08), + _colorScheme.primary.withAlpha(20), _colorScheme.surface, ); @@ -247,7 +247,7 @@ class _EmailHeadlineState extends State { return Container( height: 84, color: Color.alphaBlend( - _colorScheme.primary.withOpacity(0.05), + _colorScheme.primary.withAlpha(12), _colorScheme.surface, ), child: Padding( diff --git a/animated-responsive-layout/step_06/macos/Runner/AppDelegate.swift b/animated-responsive-layout/step_06/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/animated-responsive-layout/step_06/macos/Runner/AppDelegate.swift +++ b/animated-responsive-layout/step_06/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/animated-responsive-layout/step_07/.gitignore b/animated-responsive-layout/step_07/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/animated-responsive-layout/step_07/.gitignore +++ b/animated-responsive-layout/step_07/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/animated-responsive-layout/step_07/android/gradle/wrapper/gradle-wrapper.properties b/animated-responsive-layout/step_07/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/animated-responsive-layout/step_07/android/gradle/wrapper/gradle-wrapper.properties +++ b/animated-responsive-layout/step_07/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/animated-responsive-layout/step_07/android/settings.gradle b/animated-responsive-layout/step_07/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/animated-responsive-layout/step_07/android/settings.gradle +++ b/animated-responsive-layout/step_07/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/animated-responsive-layout/step_07/lib/main.dart b/animated-responsive-layout/step_07/lib/main.dart index 0020fa5772..843eeb04fc 100644 --- a/animated-responsive-layout/step_07/lib/main.dart +++ b/animated-responsive-layout/step_07/lib/main.dart @@ -43,7 +43,7 @@ class Feed extends StatefulWidget { class _FeedState extends State with SingleTickerProviderStateMixin { late final _colorScheme = Theme.of(context).colorScheme; late final _backgroundColor = Color.alphaBlend( - _colorScheme.primary.withOpacity(0.14), _colorScheme.surface); + _colorScheme.primary.withAlpha(36), _colorScheme.surface); late final _controller = AnimationController( duration: const Duration(milliseconds: 1000), reverseDuration: const Duration(milliseconds: 1250), diff --git a/animated-responsive-layout/step_07/lib/widgets/email_widget.dart b/animated-responsive-layout/step_07/lib/widgets/email_widget.dart index 66b4fcaa5b..cb317686d6 100644 --- a/animated-responsive-layout/step_07/lib/widgets/email_widget.dart +++ b/animated-responsive-layout/step_07/lib/widgets/email_widget.dart @@ -37,7 +37,7 @@ class EmailWidget extends StatefulWidget { class _EmailWidgetState extends State { late final ColorScheme _colorScheme = Theme.of(context).colorScheme; late Color unselectedColor = Color.alphaBlend( - _colorScheme.primary.withOpacity(0.08), + _colorScheme.primary.withAlpha(20), _colorScheme.surface, ); @@ -247,7 +247,7 @@ class _EmailHeadlineState extends State { return Container( height: 84, color: Color.alphaBlend( - _colorScheme.primary.withOpacity(0.05), + _colorScheme.primary.withAlpha(12), _colorScheme.surface, ), child: Padding( diff --git a/animated-responsive-layout/step_07/macos/Runner/AppDelegate.swift b/animated-responsive-layout/step_07/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/animated-responsive-layout/step_07/macos/Runner/AppDelegate.swift +++ b/animated-responsive-layout/step_07/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/animated-responsive-layout/step_08/.gitignore b/animated-responsive-layout/step_08/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/animated-responsive-layout/step_08/.gitignore +++ b/animated-responsive-layout/step_08/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/animated-responsive-layout/step_08/android/gradle/wrapper/gradle-wrapper.properties b/animated-responsive-layout/step_08/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/animated-responsive-layout/step_08/android/gradle/wrapper/gradle-wrapper.properties +++ b/animated-responsive-layout/step_08/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/animated-responsive-layout/step_08/android/settings.gradle b/animated-responsive-layout/step_08/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/animated-responsive-layout/step_08/android/settings.gradle +++ b/animated-responsive-layout/step_08/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/animated-responsive-layout/step_08/lib/main.dart b/animated-responsive-layout/step_08/lib/main.dart index c2e9e9a124..5209447cd8 100644 --- a/animated-responsive-layout/step_08/lib/main.dart +++ b/animated-responsive-layout/step_08/lib/main.dart @@ -45,7 +45,7 @@ class Feed extends StatefulWidget { class _FeedState extends State with SingleTickerProviderStateMixin { late final _colorScheme = Theme.of(context).colorScheme; late final _backgroundColor = Color.alphaBlend( - _colorScheme.primary.withOpacity(0.14), _colorScheme.surface); + _colorScheme.primary.withAlpha(36), _colorScheme.surface); late final _controller = AnimationController( duration: const Duration(milliseconds: 1000), reverseDuration: const Duration(milliseconds: 1250), diff --git a/animated-responsive-layout/step_08/lib/widgets/email_widget.dart b/animated-responsive-layout/step_08/lib/widgets/email_widget.dart index 66b4fcaa5b..cb317686d6 100644 --- a/animated-responsive-layout/step_08/lib/widgets/email_widget.dart +++ b/animated-responsive-layout/step_08/lib/widgets/email_widget.dart @@ -37,7 +37,7 @@ class EmailWidget extends StatefulWidget { class _EmailWidgetState extends State { late final ColorScheme _colorScheme = Theme.of(context).colorScheme; late Color unselectedColor = Color.alphaBlend( - _colorScheme.primary.withOpacity(0.08), + _colorScheme.primary.withAlpha(20), _colorScheme.surface, ); @@ -247,7 +247,7 @@ class _EmailHeadlineState extends State { return Container( height: 84, color: Color.alphaBlend( - _colorScheme.primary.withOpacity(0.05), + _colorScheme.primary.withAlpha(12), _colorScheme.surface, ), child: Padding( diff --git a/animated-responsive-layout/step_08/macos/Runner/AppDelegate.swift b/animated-responsive-layout/step_08/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/animated-responsive-layout/step_08/macos/Runner/AppDelegate.swift +++ b/animated-responsive-layout/step_08/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/boring_to_beautiful/codelab_rebuild.yaml b/boring_to_beautiful/codelab_rebuild.yaml index d54bb6374b..22b3ca340a 100644 --- a/boring_to_beautiful/codelab_rebuild.yaml +++ b/boring_to_beautiful/codelab_rebuild.yaml @@ -811,7 +811,7 @@ steps: Text( playlist.description, style: context.bodyLarge!.copyWith( - color: colors.onSurface.withOpacity(0.8), + color: colors.onSurface.withAlpha(204), ), ), const SizedBox(height: 8), @@ -1464,8 +1464,8 @@ steps: artist.bio, style: context.bodyLarge!.copyWith( fontSize: 16, - color: context.colors.onSurface.withOpacity( - 0.87, + color: context.colors.onSurface.withAlpha( + 222, ), ), ); @@ -2290,6 +2290,7 @@ steps: Color blend(Color targetColor) { return Color( + // ignore: deprecated_member_use Blend.harmonize(targetColor.value, settings.value.sourceColor.value)); } @@ -3723,7 +3724,7 @@ steps: song.artist.name, style: context.labelSmall!.copyWith( fontSize: 20, - color: context.colors.onSurface.withOpacity(0.8)), + color: context.colors.onSurface.withAlpha(204)), overflow: TextOverflow.clip, ), ], @@ -3859,7 +3860,7 @@ steps: current.song.artist.name, style: context.labelSmall!.copyWith( fontSize: 12, - color: context.colors.onSurface.withOpacity(0.8)), + color: context.colors.onSurface.withAlpha(204)), overflow: TextOverflow.clip, ), ], @@ -4589,7 +4590,7 @@ steps: ), ), onTap: () => GoRouter.of(context).go('/playlists/${widget.playlistId}'), - hoverColor: Theme.of(context).colorScheme.primary.withOpacity(0.04), + hoverColor: Theme.of(context).colorScheme.primary.withAlpha(10), selected: _isSelected, focusNode: _focusNode, ); @@ -73680,7 +73681,7 @@ steps: patch-u: | --- b/boring_to_beautiful/step_07/lib/src/shared/providers/theme.dart +++ a/boring_to_beautiful/step_07/lib/src/shared/providers/theme.dart - @@ -153,7 +153,7 @@ class ThemeProvider extends InheritedWidget { + @@ -154,7 +154,7 @@ class ThemeProvider extends InheritedWidget { ThemeData light([Color? targetColor]) { final colorScheme = colors(Brightness.light, targetColor); return ThemeData.light(useMaterial3: true).copyWith( @@ -73689,7 +73690,7 @@ steps: colorScheme: colorScheme, appBarTheme: appBarTheme(colorScheme), cardTheme: cardTheme(), - @@ -170,7 +170,7 @@ class ThemeProvider extends InheritedWidget { + @@ -171,7 +171,7 @@ class ThemeProvider extends InheritedWidget { ThemeData dark([Color? targetColor]) { final colorScheme = colors(Brightness.dark, targetColor); return ThemeData.dark(useMaterial3: true).copyWith( @@ -73777,8 +73778,8 @@ steps: + borderRadius: borderRadius, + ), + foregroundDecoration: BoxDecoration( - + color: Theme.of(context).colorScheme.onSurface.withOpacity( - + _hovered ? 0.12 : 0, + + color: Theme.of(context).colorScheme.onSurface.withAlpha( + + _hovered ? 30 : 0, + ), + borderRadius: borderRadius, + ), diff --git a/boring_to_beautiful/final/.gitignore b/boring_to_beautiful/final/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/boring_to_beautiful/final/.gitignore +++ b/boring_to_beautiful/final/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/boring_to_beautiful/final/android/gradle/wrapper/gradle-wrapper.properties b/boring_to_beautiful/final/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/boring_to_beautiful/final/android/gradle/wrapper/gradle-wrapper.properties +++ b/boring_to_beautiful/final/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/boring_to_beautiful/final/android/settings.gradle b/boring_to_beautiful/final/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/boring_to_beautiful/final/android/settings.gradle +++ b/boring_to_beautiful/final/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/boring_to_beautiful/final/ios/Runner.xcodeproj/project.pbxproj b/boring_to_beautiful/final/ios/Runner.xcodeproj/project.pbxproj index 6f4ae06705..3f17d86d6e 100644 --- a/boring_to_beautiful/final/ios/Runner.xcodeproj/project.pbxproj +++ b/boring_to_beautiful/final/ios/Runner.xcodeproj/project.pbxproj @@ -7,15 +7,15 @@ objects = { /* Begin PBXBuildFile section */ - 0C01ED38CB41DB29E7CCE593 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */; }; + 045D9DC041F68A933791819A /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 6340AE5E0688CFEF81E588DB /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - C3ADF89F3F63E210E24CE680 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -44,16 +44,16 @@ /* Begin PBXFileReference section */ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 1F08BB7F7ED8CD6A9EAAB67B /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 38FD937C6E465BD40C945593 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -61,26 +61,26 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - E71BFB852459043FA762013A /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + C9E54593F7142BBA8B70B2AA /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + CB85765AE9FE44396BCEE420 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + EFFA2C9A0A544F6091D35176 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 97C146EB1CF9000F007C117D /* Frameworks */ = { + 6A191B1B707AA2189ED7AEB7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0C01ED38CB41DB29E7CCE593 /* Pods_Runner.framework in Frameworks */, + 6340AE5E0688CFEF81E588DB /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E638ABBF3030C4A9F2E2070B /* Frameworks */ = { + 97C146EB1CF9000F007C117D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C3ADF89F3F63E210E24CE680 /* Pods_RunnerTests.framework in Frameworks */, + 045D9DC041F68A933791819A /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -95,6 +95,29 @@ path = RunnerTests; sourceTree = ""; }; + 3FC66A828656DFEF6FEB944E /* Pods */ = { + isa = PBXGroup; + children = ( + C9E54593F7142BBA8B70B2AA /* Pods-Runner.debug.xcconfig */, + CB85765AE9FE44396BCEE420 /* Pods-Runner.release.xcconfig */, + EFFA2C9A0A544F6091D35176 /* Pods-Runner.profile.xcconfig */, + 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */, + 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */, + 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + 7C4F6B5D0FD36966BC5B7640 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */, + 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( @@ -113,8 +136,8 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, - F7DFDC3250242280E3E4ADCD /* Pods */, - D7F7F2B227A12F4D6DDB9A9F /* Frameworks */, + 3FC66A828656DFEF6FEB944E /* Pods */, + 7C4F6B5D0FD36966BC5B7640 /* Frameworks */, ); sourceTree = ""; }; @@ -142,29 +165,6 @@ path = Runner; sourceTree = ""; }; - D7F7F2B227A12F4D6DDB9A9F /* Frameworks */ = { - isa = PBXGroup; - children = ( - EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */, - ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - F7DFDC3250242280E3E4ADCD /* Pods */ = { - isa = PBXGroup; - children = ( - 1F08BB7F7ED8CD6A9EAAB67B /* Pods-Runner.debug.xcconfig */, - 38FD937C6E465BD40C945593 /* Pods-Runner.release.xcconfig */, - E71BFB852459043FA762013A /* Pods-Runner.profile.xcconfig */, - 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */, - E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */, - 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -172,10 +172,10 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 8856CCD4DFDE7D20D575E549 /* [CP] Check Pods Manifest.lock */, + 1B0871ABDE9E880ACA9AF76E /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, - E638ABBF3030C4A9F2E2070B /* Frameworks */, + 6A191B1B707AA2189ED7AEB7 /* Frameworks */, ); buildRules = ( ); @@ -191,14 +191,14 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - E1718209021AFAD90E49DEFA /* [CP] Check Pods Manifest.lock */, + 152278CBCF53589D360B61BB /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - E06C1B6C19F28DC8E1E0F0B3 /* [CP] Embed Pods Frameworks */, + 9964E2B5C7FAD06A79BAAF89 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -270,23 +270,29 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + 152278CBCF53589D360B61BB /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Thin Binary"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - 8856CCD4DFDE7D20D575E549 /* [CP] Check Pods Manifest.lock */ = { + 1B0871ABDE9E880ACA9AF76E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -308,58 +314,52 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 9740EEB61CF901F6004384FC /* Run Script */ = { + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); - name = "Run Script"; + name = "Thin Binary"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - E06C1B6C19F28DC8E1E0F0B3 /* [CP] Embed Pods Frameworks */ = { + 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - 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", + name = "Run Script"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - E1718209021AFAD90E49DEFA /* [CP] Check Pods Manifest.lock */ = { + 9964E2B5C7FAD06A79BAAF89 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -487,7 +487,7 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -505,7 +505,7 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -521,7 +521,7 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; diff --git a/boring_to_beautiful/final/lib/src/features/artists/view/artist_bio.dart b/boring_to_beautiful/final/lib/src/features/artists/view/artist_bio.dart index 1325bede33..227b8e91f9 100644 --- a/boring_to_beautiful/final/lib/src/features/artists/view/artist_bio.dart +++ b/boring_to_beautiful/final/lib/src/features/artists/view/artist_bio.dart @@ -18,8 +18,8 @@ class ArtistBio extends StatelessWidget { artist.bio, style: context.bodyLarge!.copyWith( fontSize: 16, - color: context.colors.onSurface.withOpacity( - 0.87, + color: context.colors.onSurface.withAlpha( + 222, ), ), ); diff --git a/boring_to_beautiful/final/lib/src/features/playlists/view/playlist_screen.dart b/boring_to_beautiful/final/lib/src/features/playlists/view/playlist_screen.dart index 082af6a294..5dc2f0744f 100644 --- a/boring_to_beautiful/final/lib/src/features/playlists/view/playlist_screen.dart +++ b/boring_to_beautiful/final/lib/src/features/playlists/view/playlist_screen.dart @@ -84,7 +84,7 @@ class PlaylistScreen extends StatelessWidget { Text( playlist.description, style: context.bodyLarge!.copyWith( - color: colors.onSurface.withOpacity(0.8), + color: colors.onSurface.withAlpha(204), ), ), const SizedBox(height: 8), diff --git a/boring_to_beautiful/final/lib/src/shared/providers/theme.dart b/boring_to_beautiful/final/lib/src/shared/providers/theme.dart index b531352d0b..2446038ddd 100644 --- a/boring_to_beautiful/final/lib/src/shared/providers/theme.dart +++ b/boring_to_beautiful/final/lib/src/shared/providers/theme.dart @@ -59,6 +59,7 @@ class ThemeProvider extends InheritedWidget { Color blend(Color targetColor) { return Color( + // ignore: deprecated_member_use Blend.harmonize(targetColor.value, settings.value.sourceColor.value)); } diff --git a/boring_to_beautiful/final/lib/src/shared/views/bottom_bar.dart b/boring_to_beautiful/final/lib/src/shared/views/bottom_bar.dart index bafcdfdbbf..06e085a9b6 100644 --- a/boring_to_beautiful/final/lib/src/shared/views/bottom_bar.dart +++ b/boring_to_beautiful/final/lib/src/shared/views/bottom_bar.dart @@ -570,7 +570,7 @@ class _FullScreenPlayerState extends State<_FullScreenPlayer> { song.artist.name, style: context.labelSmall!.copyWith( fontSize: 20, - color: context.colors.onSurface.withOpacity(0.8)), + color: context.colors.onSurface.withAlpha(204)), overflow: TextOverflow.clip, ), ], @@ -706,7 +706,7 @@ class _MobilePlayer extends StatelessWidget { current.song.artist.name, style: context.labelSmall!.copyWith( fontSize: 12, - color: context.colors.onSurface.withOpacity(0.8)), + color: context.colors.onSurface.withAlpha(204)), overflow: TextOverflow.clip, ), ], diff --git a/boring_to_beautiful/final/lib/src/shared/views/outlined_card.dart b/boring_to_beautiful/final/lib/src/shared/views/outlined_card.dart index 3bad775876..7eb25346dc 100644 --- a/boring_to_beautiful/final/lib/src/shared/views/outlined_card.dart +++ b/boring_to_beautiful/final/lib/src/shared/views/outlined_card.dart @@ -52,8 +52,8 @@ class _OutlinedCardState extends State { borderRadius: borderRadius, ), foregroundDecoration: BoxDecoration( - color: Theme.of(context).colorScheme.onSurface.withOpacity( - _hovered ? 0.12 : 0, + color: Theme.of(context).colorScheme.onSurface.withAlpha( + _hovered ? 30 : 0, ), borderRadius: borderRadius, ), diff --git a/boring_to_beautiful/final/lib/src/shared/views/sidebar.dart b/boring_to_beautiful/final/lib/src/shared/views/sidebar.dart index 0c5bcd18f6..78c19b4d22 100644 --- a/boring_to_beautiful/final/lib/src/shared/views/sidebar.dart +++ b/boring_to_beautiful/final/lib/src/shared/views/sidebar.dart @@ -134,7 +134,7 @@ class _PlaylistNavItemState extends State<_PlaylistNavItem> { ), ), onTap: () => GoRouter.of(context).go('/playlists/${widget.playlistId}'), - hoverColor: Theme.of(context).colorScheme.primary.withOpacity(0.04), + hoverColor: Theme.of(context).colorScheme.primary.withAlpha(10), selected: _isSelected, focusNode: _focusNode, ); diff --git a/boring_to_beautiful/final/macos/Runner.xcodeproj/project.pbxproj b/boring_to_beautiful/final/macos/Runner.xcodeproj/project.pbxproj index 16f986915a..3b2e4ebdbe 100644 --- a/boring_to_beautiful/final/macos/Runner.xcodeproj/project.pbxproj +++ b/boring_to_beautiful/final/macos/Runner.xcodeproj/project.pbxproj @@ -27,8 +27,8 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - A8E85C6D8B0E98CAAE2E9130 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */; }; - B806B664458019B54186E292 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */; }; + 63F13B68B978A8E76E978EE7 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */; }; + A1EB5160E1186002E08A43FB /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -62,7 +62,8 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; @@ -79,15 +80,14 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; - 3D03D92E7F35D224AEDCBA1A /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 707649428C932365B25C0105 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5C2816CD076396E37646986B /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 5CE7AE4215797944E1BE1B53 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 8CEF7ABB1ECE3EAA81DD03DB /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; - EAA7C14129D8AB99291CAB00 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -95,7 +95,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A8E85C6D8B0E98CAAE2E9130 /* Pods_RunnerTests.framework in Frameworks */, + A1EB5160E1186002E08A43FB /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -103,7 +103,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B806B664458019B54186E292 /* Pods_Runner.framework in Frameworks */, + 63F13B68B978A8E76E978EE7 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -137,7 +137,7 @@ 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, - 54EFB77EB9276BF48EB85221 /* Pods */, + FD831DC61C04B5999E3388CF /* Pods */, ); sourceTree = ""; }; @@ -185,27 +185,27 @@ path = Runner; sourceTree = ""; }; - 54EFB77EB9276BF48EB85221 /* Pods */ = { + D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( - 707649428C932365B25C0105 /* Pods-Runner.debug.xcconfig */, - 3D03D92E7F35D224AEDCBA1A /* Pods-Runner.release.xcconfig */, - EAA7C14129D8AB99291CAB00 /* Pods-Runner.profile.xcconfig */, - DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */, - 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */, - 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */, + 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */, + 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */, ); - name = Pods; - path = Pods; + name = Frameworks; sourceTree = ""; }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { + FD831DC61C04B5999E3388CF /* Pods */ = { isa = PBXGroup; children = ( - FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */, - 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */, + 8CEF7ABB1ECE3EAA81DD03DB /* Pods-Runner.debug.xcconfig */, + 5CE7AE4215797944E1BE1B53 /* Pods-Runner.release.xcconfig */, + 5C2816CD076396E37646986B /* Pods-Runner.profile.xcconfig */, + BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */, + 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */, + 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */, ); - name = Frameworks; + name = Pods; + path = Pods; sourceTree = ""; }; /* End PBXGroup section */ @@ -215,7 +215,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - AF905DC6BC408FD2036FDED5 /* [CP] Check Pods Manifest.lock */, + 904FB334C3FF8770F4FAA2F4 /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -234,13 +234,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 5567FB2AE9AC3639AC5CAD34 /* [CP] Check Pods Manifest.lock */, + 60646BBAFDF05E49F2FB1BEF /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - 8B173C0C69C140D19D86E6F5 /* [CP] Embed Pods Frameworks */, + 74EBA55F3EAADD88242C66DC /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -361,7 +361,7 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - 5567FB2AE9AC3639AC5CAD34 /* [CP] Check Pods Manifest.lock */ = { + 60646BBAFDF05E49F2FB1BEF /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -383,7 +383,7 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 8B173C0C69C140D19D86E6F5 /* [CP] Embed Pods Frameworks */ = { + 74EBA55F3EAADD88242C66DC /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -400,7 +400,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - AF905DC6BC408FD2036FDED5 /* [CP] Check Pods Manifest.lock */ = { + 904FB334C3FF8770F4FAA2F4 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -473,7 +473,7 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -488,7 +488,7 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -503,7 +503,7 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; diff --git a/boring_to_beautiful/final/macos/Runner/AppDelegate.swift b/boring_to_beautiful/final/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/boring_to_beautiful/final/macos/Runner/AppDelegate.swift +++ b/boring_to_beautiful/final/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/boring_to_beautiful/step_01/.gitignore b/boring_to_beautiful/step_01/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/boring_to_beautiful/step_01/.gitignore +++ b/boring_to_beautiful/step_01/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/boring_to_beautiful/step_01/android/gradle/wrapper/gradle-wrapper.properties b/boring_to_beautiful/step_01/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/boring_to_beautiful/step_01/android/gradle/wrapper/gradle-wrapper.properties +++ b/boring_to_beautiful/step_01/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/boring_to_beautiful/step_01/android/settings.gradle b/boring_to_beautiful/step_01/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/boring_to_beautiful/step_01/android/settings.gradle +++ b/boring_to_beautiful/step_01/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/boring_to_beautiful/step_01/ios/Runner.xcodeproj/project.pbxproj b/boring_to_beautiful/step_01/ios/Runner.xcodeproj/project.pbxproj index 6f4ae06705..3f17d86d6e 100644 --- a/boring_to_beautiful/step_01/ios/Runner.xcodeproj/project.pbxproj +++ b/boring_to_beautiful/step_01/ios/Runner.xcodeproj/project.pbxproj @@ -7,15 +7,15 @@ objects = { /* Begin PBXBuildFile section */ - 0C01ED38CB41DB29E7CCE593 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */; }; + 045D9DC041F68A933791819A /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 6340AE5E0688CFEF81E588DB /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - C3ADF89F3F63E210E24CE680 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -44,16 +44,16 @@ /* Begin PBXFileReference section */ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 1F08BB7F7ED8CD6A9EAAB67B /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 38FD937C6E465BD40C945593 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -61,26 +61,26 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - E71BFB852459043FA762013A /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + C9E54593F7142BBA8B70B2AA /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + CB85765AE9FE44396BCEE420 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + EFFA2C9A0A544F6091D35176 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 97C146EB1CF9000F007C117D /* Frameworks */ = { + 6A191B1B707AA2189ED7AEB7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0C01ED38CB41DB29E7CCE593 /* Pods_Runner.framework in Frameworks */, + 6340AE5E0688CFEF81E588DB /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E638ABBF3030C4A9F2E2070B /* Frameworks */ = { + 97C146EB1CF9000F007C117D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C3ADF89F3F63E210E24CE680 /* Pods_RunnerTests.framework in Frameworks */, + 045D9DC041F68A933791819A /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -95,6 +95,29 @@ path = RunnerTests; sourceTree = ""; }; + 3FC66A828656DFEF6FEB944E /* Pods */ = { + isa = PBXGroup; + children = ( + C9E54593F7142BBA8B70B2AA /* Pods-Runner.debug.xcconfig */, + CB85765AE9FE44396BCEE420 /* Pods-Runner.release.xcconfig */, + EFFA2C9A0A544F6091D35176 /* Pods-Runner.profile.xcconfig */, + 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */, + 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */, + 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + 7C4F6B5D0FD36966BC5B7640 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */, + 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( @@ -113,8 +136,8 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, - F7DFDC3250242280E3E4ADCD /* Pods */, - D7F7F2B227A12F4D6DDB9A9F /* Frameworks */, + 3FC66A828656DFEF6FEB944E /* Pods */, + 7C4F6B5D0FD36966BC5B7640 /* Frameworks */, ); sourceTree = ""; }; @@ -142,29 +165,6 @@ path = Runner; sourceTree = ""; }; - D7F7F2B227A12F4D6DDB9A9F /* Frameworks */ = { - isa = PBXGroup; - children = ( - EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */, - ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - F7DFDC3250242280E3E4ADCD /* Pods */ = { - isa = PBXGroup; - children = ( - 1F08BB7F7ED8CD6A9EAAB67B /* Pods-Runner.debug.xcconfig */, - 38FD937C6E465BD40C945593 /* Pods-Runner.release.xcconfig */, - E71BFB852459043FA762013A /* Pods-Runner.profile.xcconfig */, - 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */, - E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */, - 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -172,10 +172,10 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 8856CCD4DFDE7D20D575E549 /* [CP] Check Pods Manifest.lock */, + 1B0871ABDE9E880ACA9AF76E /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, - E638ABBF3030C4A9F2E2070B /* Frameworks */, + 6A191B1B707AA2189ED7AEB7 /* Frameworks */, ); buildRules = ( ); @@ -191,14 +191,14 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - E1718209021AFAD90E49DEFA /* [CP] Check Pods Manifest.lock */, + 152278CBCF53589D360B61BB /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - E06C1B6C19F28DC8E1E0F0B3 /* [CP] Embed Pods Frameworks */, + 9964E2B5C7FAD06A79BAAF89 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -270,23 +270,29 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + 152278CBCF53589D360B61BB /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Thin Binary"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - 8856CCD4DFDE7D20D575E549 /* [CP] Check Pods Manifest.lock */ = { + 1B0871ABDE9E880ACA9AF76E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -308,58 +314,52 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 9740EEB61CF901F6004384FC /* Run Script */ = { + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); - name = "Run Script"; + name = "Thin Binary"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - E06C1B6C19F28DC8E1E0F0B3 /* [CP] Embed Pods Frameworks */ = { + 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - 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", + name = "Run Script"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - E1718209021AFAD90E49DEFA /* [CP] Check Pods Manifest.lock */ = { + 9964E2B5C7FAD06A79BAAF89 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -487,7 +487,7 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -505,7 +505,7 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -521,7 +521,7 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; diff --git a/boring_to_beautiful/step_01/lib/src/features/artists/view/artist_bio.dart b/boring_to_beautiful/step_01/lib/src/features/artists/view/artist_bio.dart index 1325bede33..227b8e91f9 100644 --- a/boring_to_beautiful/step_01/lib/src/features/artists/view/artist_bio.dart +++ b/boring_to_beautiful/step_01/lib/src/features/artists/view/artist_bio.dart @@ -18,8 +18,8 @@ class ArtistBio extends StatelessWidget { artist.bio, style: context.bodyLarge!.copyWith( fontSize: 16, - color: context.colors.onSurface.withOpacity( - 0.87, + color: context.colors.onSurface.withAlpha( + 222, ), ), ); diff --git a/boring_to_beautiful/step_01/lib/src/features/playlists/view/playlist_screen.dart b/boring_to_beautiful/step_01/lib/src/features/playlists/view/playlist_screen.dart index 082af6a294..5dc2f0744f 100644 --- a/boring_to_beautiful/step_01/lib/src/features/playlists/view/playlist_screen.dart +++ b/boring_to_beautiful/step_01/lib/src/features/playlists/view/playlist_screen.dart @@ -84,7 +84,7 @@ class PlaylistScreen extends StatelessWidget { Text( playlist.description, style: context.bodyLarge!.copyWith( - color: colors.onSurface.withOpacity(0.8), + color: colors.onSurface.withAlpha(204), ), ), const SizedBox(height: 8), diff --git a/boring_to_beautiful/step_01/lib/src/shared/providers/theme.dart b/boring_to_beautiful/step_01/lib/src/shared/providers/theme.dart index 54a82f53d1..a152dcdcba 100644 --- a/boring_to_beautiful/step_01/lib/src/shared/providers/theme.dart +++ b/boring_to_beautiful/step_01/lib/src/shared/providers/theme.dart @@ -59,6 +59,7 @@ class ThemeProvider extends InheritedWidget { Color blend(Color targetColor) { return Color( + // ignore: deprecated_member_use Blend.harmonize(targetColor.value, settings.value.sourceColor.value)); } diff --git a/boring_to_beautiful/step_01/lib/src/shared/views/bottom_bar.dart b/boring_to_beautiful/step_01/lib/src/shared/views/bottom_bar.dart index bafcdfdbbf..06e085a9b6 100644 --- a/boring_to_beautiful/step_01/lib/src/shared/views/bottom_bar.dart +++ b/boring_to_beautiful/step_01/lib/src/shared/views/bottom_bar.dart @@ -570,7 +570,7 @@ class _FullScreenPlayerState extends State<_FullScreenPlayer> { song.artist.name, style: context.labelSmall!.copyWith( fontSize: 20, - color: context.colors.onSurface.withOpacity(0.8)), + color: context.colors.onSurface.withAlpha(204)), overflow: TextOverflow.clip, ), ], @@ -706,7 +706,7 @@ class _MobilePlayer extends StatelessWidget { current.song.artist.name, style: context.labelSmall!.copyWith( fontSize: 12, - color: context.colors.onSurface.withOpacity(0.8)), + color: context.colors.onSurface.withAlpha(204)), overflow: TextOverflow.clip, ), ], diff --git a/boring_to_beautiful/step_01/lib/src/shared/views/sidebar.dart b/boring_to_beautiful/step_01/lib/src/shared/views/sidebar.dart index 0c5bcd18f6..78c19b4d22 100644 --- a/boring_to_beautiful/step_01/lib/src/shared/views/sidebar.dart +++ b/boring_to_beautiful/step_01/lib/src/shared/views/sidebar.dart @@ -134,7 +134,7 @@ class _PlaylistNavItemState extends State<_PlaylistNavItem> { ), ), onTap: () => GoRouter.of(context).go('/playlists/${widget.playlistId}'), - hoverColor: Theme.of(context).colorScheme.primary.withOpacity(0.04), + hoverColor: Theme.of(context).colorScheme.primary.withAlpha(10), selected: _isSelected, focusNode: _focusNode, ); diff --git a/boring_to_beautiful/step_01/macos/Runner.xcodeproj/project.pbxproj b/boring_to_beautiful/step_01/macos/Runner.xcodeproj/project.pbxproj index 16f986915a..3b2e4ebdbe 100644 --- a/boring_to_beautiful/step_01/macos/Runner.xcodeproj/project.pbxproj +++ b/boring_to_beautiful/step_01/macos/Runner.xcodeproj/project.pbxproj @@ -27,8 +27,8 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - A8E85C6D8B0E98CAAE2E9130 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */; }; - B806B664458019B54186E292 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */; }; + 63F13B68B978A8E76E978EE7 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */; }; + A1EB5160E1186002E08A43FB /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -62,7 +62,8 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; @@ -79,15 +80,14 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; - 3D03D92E7F35D224AEDCBA1A /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 707649428C932365B25C0105 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5C2816CD076396E37646986B /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 5CE7AE4215797944E1BE1B53 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 8CEF7ABB1ECE3EAA81DD03DB /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; - EAA7C14129D8AB99291CAB00 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -95,7 +95,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A8E85C6D8B0E98CAAE2E9130 /* Pods_RunnerTests.framework in Frameworks */, + A1EB5160E1186002E08A43FB /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -103,7 +103,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B806B664458019B54186E292 /* Pods_Runner.framework in Frameworks */, + 63F13B68B978A8E76E978EE7 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -137,7 +137,7 @@ 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, - 54EFB77EB9276BF48EB85221 /* Pods */, + FD831DC61C04B5999E3388CF /* Pods */, ); sourceTree = ""; }; @@ -185,27 +185,27 @@ path = Runner; sourceTree = ""; }; - 54EFB77EB9276BF48EB85221 /* Pods */ = { + D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( - 707649428C932365B25C0105 /* Pods-Runner.debug.xcconfig */, - 3D03D92E7F35D224AEDCBA1A /* Pods-Runner.release.xcconfig */, - EAA7C14129D8AB99291CAB00 /* Pods-Runner.profile.xcconfig */, - DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */, - 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */, - 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */, + 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */, + 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */, ); - name = Pods; - path = Pods; + name = Frameworks; sourceTree = ""; }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { + FD831DC61C04B5999E3388CF /* Pods */ = { isa = PBXGroup; children = ( - FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */, - 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */, + 8CEF7ABB1ECE3EAA81DD03DB /* Pods-Runner.debug.xcconfig */, + 5CE7AE4215797944E1BE1B53 /* Pods-Runner.release.xcconfig */, + 5C2816CD076396E37646986B /* Pods-Runner.profile.xcconfig */, + BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */, + 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */, + 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */, ); - name = Frameworks; + name = Pods; + path = Pods; sourceTree = ""; }; /* End PBXGroup section */ @@ -215,7 +215,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - AF905DC6BC408FD2036FDED5 /* [CP] Check Pods Manifest.lock */, + 904FB334C3FF8770F4FAA2F4 /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -234,13 +234,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 5567FB2AE9AC3639AC5CAD34 /* [CP] Check Pods Manifest.lock */, + 60646BBAFDF05E49F2FB1BEF /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - 8B173C0C69C140D19D86E6F5 /* [CP] Embed Pods Frameworks */, + 74EBA55F3EAADD88242C66DC /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -361,7 +361,7 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - 5567FB2AE9AC3639AC5CAD34 /* [CP] Check Pods Manifest.lock */ = { + 60646BBAFDF05E49F2FB1BEF /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -383,7 +383,7 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 8B173C0C69C140D19D86E6F5 /* [CP] Embed Pods Frameworks */ = { + 74EBA55F3EAADD88242C66DC /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -400,7 +400,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - AF905DC6BC408FD2036FDED5 /* [CP] Check Pods Manifest.lock */ = { + 904FB334C3FF8770F4FAA2F4 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -473,7 +473,7 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -488,7 +488,7 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -503,7 +503,7 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; diff --git a/boring_to_beautiful/step_01/macos/Runner/AppDelegate.swift b/boring_to_beautiful/step_01/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/boring_to_beautiful/step_01/macos/Runner/AppDelegate.swift +++ b/boring_to_beautiful/step_01/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/boring_to_beautiful/step_02/.gitignore b/boring_to_beautiful/step_02/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/boring_to_beautiful/step_02/.gitignore +++ b/boring_to_beautiful/step_02/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/boring_to_beautiful/step_02/android/gradle/wrapper/gradle-wrapper.properties b/boring_to_beautiful/step_02/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/boring_to_beautiful/step_02/android/gradle/wrapper/gradle-wrapper.properties +++ b/boring_to_beautiful/step_02/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/boring_to_beautiful/step_02/android/settings.gradle b/boring_to_beautiful/step_02/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/boring_to_beautiful/step_02/android/settings.gradle +++ b/boring_to_beautiful/step_02/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/boring_to_beautiful/step_02/ios/Runner.xcodeproj/project.pbxproj b/boring_to_beautiful/step_02/ios/Runner.xcodeproj/project.pbxproj index 6f4ae06705..3f17d86d6e 100644 --- a/boring_to_beautiful/step_02/ios/Runner.xcodeproj/project.pbxproj +++ b/boring_to_beautiful/step_02/ios/Runner.xcodeproj/project.pbxproj @@ -7,15 +7,15 @@ objects = { /* Begin PBXBuildFile section */ - 0C01ED38CB41DB29E7CCE593 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */; }; + 045D9DC041F68A933791819A /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 6340AE5E0688CFEF81E588DB /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - C3ADF89F3F63E210E24CE680 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -44,16 +44,16 @@ /* Begin PBXFileReference section */ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 1F08BB7F7ED8CD6A9EAAB67B /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 38FD937C6E465BD40C945593 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -61,26 +61,26 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - E71BFB852459043FA762013A /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + C9E54593F7142BBA8B70B2AA /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + CB85765AE9FE44396BCEE420 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + EFFA2C9A0A544F6091D35176 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 97C146EB1CF9000F007C117D /* Frameworks */ = { + 6A191B1B707AA2189ED7AEB7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0C01ED38CB41DB29E7CCE593 /* Pods_Runner.framework in Frameworks */, + 6340AE5E0688CFEF81E588DB /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E638ABBF3030C4A9F2E2070B /* Frameworks */ = { + 97C146EB1CF9000F007C117D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C3ADF89F3F63E210E24CE680 /* Pods_RunnerTests.framework in Frameworks */, + 045D9DC041F68A933791819A /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -95,6 +95,29 @@ path = RunnerTests; sourceTree = ""; }; + 3FC66A828656DFEF6FEB944E /* Pods */ = { + isa = PBXGroup; + children = ( + C9E54593F7142BBA8B70B2AA /* Pods-Runner.debug.xcconfig */, + CB85765AE9FE44396BCEE420 /* Pods-Runner.release.xcconfig */, + EFFA2C9A0A544F6091D35176 /* Pods-Runner.profile.xcconfig */, + 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */, + 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */, + 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + 7C4F6B5D0FD36966BC5B7640 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */, + 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( @@ -113,8 +136,8 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, - F7DFDC3250242280E3E4ADCD /* Pods */, - D7F7F2B227A12F4D6DDB9A9F /* Frameworks */, + 3FC66A828656DFEF6FEB944E /* Pods */, + 7C4F6B5D0FD36966BC5B7640 /* Frameworks */, ); sourceTree = ""; }; @@ -142,29 +165,6 @@ path = Runner; sourceTree = ""; }; - D7F7F2B227A12F4D6DDB9A9F /* Frameworks */ = { - isa = PBXGroup; - children = ( - EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */, - ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - F7DFDC3250242280E3E4ADCD /* Pods */ = { - isa = PBXGroup; - children = ( - 1F08BB7F7ED8CD6A9EAAB67B /* Pods-Runner.debug.xcconfig */, - 38FD937C6E465BD40C945593 /* Pods-Runner.release.xcconfig */, - E71BFB852459043FA762013A /* Pods-Runner.profile.xcconfig */, - 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */, - E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */, - 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -172,10 +172,10 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 8856CCD4DFDE7D20D575E549 /* [CP] Check Pods Manifest.lock */, + 1B0871ABDE9E880ACA9AF76E /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, - E638ABBF3030C4A9F2E2070B /* Frameworks */, + 6A191B1B707AA2189ED7AEB7 /* Frameworks */, ); buildRules = ( ); @@ -191,14 +191,14 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - E1718209021AFAD90E49DEFA /* [CP] Check Pods Manifest.lock */, + 152278CBCF53589D360B61BB /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - E06C1B6C19F28DC8E1E0F0B3 /* [CP] Embed Pods Frameworks */, + 9964E2B5C7FAD06A79BAAF89 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -270,23 +270,29 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + 152278CBCF53589D360B61BB /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Thin Binary"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - 8856CCD4DFDE7D20D575E549 /* [CP] Check Pods Manifest.lock */ = { + 1B0871ABDE9E880ACA9AF76E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -308,58 +314,52 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 9740EEB61CF901F6004384FC /* Run Script */ = { + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); - name = "Run Script"; + name = "Thin Binary"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - E06C1B6C19F28DC8E1E0F0B3 /* [CP] Embed Pods Frameworks */ = { + 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - 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", + name = "Run Script"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - E1718209021AFAD90E49DEFA /* [CP] Check Pods Manifest.lock */ = { + 9964E2B5C7FAD06A79BAAF89 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -487,7 +487,7 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -505,7 +505,7 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -521,7 +521,7 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; diff --git a/boring_to_beautiful/step_02/lib/src/features/artists/view/artist_bio.dart b/boring_to_beautiful/step_02/lib/src/features/artists/view/artist_bio.dart index 1325bede33..227b8e91f9 100644 --- a/boring_to_beautiful/step_02/lib/src/features/artists/view/artist_bio.dart +++ b/boring_to_beautiful/step_02/lib/src/features/artists/view/artist_bio.dart @@ -18,8 +18,8 @@ class ArtistBio extends StatelessWidget { artist.bio, style: context.bodyLarge!.copyWith( fontSize: 16, - color: context.colors.onSurface.withOpacity( - 0.87, + color: context.colors.onSurface.withAlpha( + 222, ), ), ); diff --git a/boring_to_beautiful/step_02/lib/src/features/playlists/view/playlist_screen.dart b/boring_to_beautiful/step_02/lib/src/features/playlists/view/playlist_screen.dart index 082af6a294..5dc2f0744f 100644 --- a/boring_to_beautiful/step_02/lib/src/features/playlists/view/playlist_screen.dart +++ b/boring_to_beautiful/step_02/lib/src/features/playlists/view/playlist_screen.dart @@ -84,7 +84,7 @@ class PlaylistScreen extends StatelessWidget { Text( playlist.description, style: context.bodyLarge!.copyWith( - color: colors.onSurface.withOpacity(0.8), + color: colors.onSurface.withAlpha(204), ), ), const SizedBox(height: 8), diff --git a/boring_to_beautiful/step_02/lib/src/shared/providers/theme.dart b/boring_to_beautiful/step_02/lib/src/shared/providers/theme.dart index 54a82f53d1..a152dcdcba 100644 --- a/boring_to_beautiful/step_02/lib/src/shared/providers/theme.dart +++ b/boring_to_beautiful/step_02/lib/src/shared/providers/theme.dart @@ -59,6 +59,7 @@ class ThemeProvider extends InheritedWidget { Color blend(Color targetColor) { return Color( + // ignore: deprecated_member_use Blend.harmonize(targetColor.value, settings.value.sourceColor.value)); } diff --git a/boring_to_beautiful/step_02/lib/src/shared/views/bottom_bar.dart b/boring_to_beautiful/step_02/lib/src/shared/views/bottom_bar.dart index bafcdfdbbf..06e085a9b6 100644 --- a/boring_to_beautiful/step_02/lib/src/shared/views/bottom_bar.dart +++ b/boring_to_beautiful/step_02/lib/src/shared/views/bottom_bar.dart @@ -570,7 +570,7 @@ class _FullScreenPlayerState extends State<_FullScreenPlayer> { song.artist.name, style: context.labelSmall!.copyWith( fontSize: 20, - color: context.colors.onSurface.withOpacity(0.8)), + color: context.colors.onSurface.withAlpha(204)), overflow: TextOverflow.clip, ), ], @@ -706,7 +706,7 @@ class _MobilePlayer extends StatelessWidget { current.song.artist.name, style: context.labelSmall!.copyWith( fontSize: 12, - color: context.colors.onSurface.withOpacity(0.8)), + color: context.colors.onSurface.withAlpha(204)), overflow: TextOverflow.clip, ), ], diff --git a/boring_to_beautiful/step_02/lib/src/shared/views/sidebar.dart b/boring_to_beautiful/step_02/lib/src/shared/views/sidebar.dart index 0c5bcd18f6..78c19b4d22 100644 --- a/boring_to_beautiful/step_02/lib/src/shared/views/sidebar.dart +++ b/boring_to_beautiful/step_02/lib/src/shared/views/sidebar.dart @@ -134,7 +134,7 @@ class _PlaylistNavItemState extends State<_PlaylistNavItem> { ), ), onTap: () => GoRouter.of(context).go('/playlists/${widget.playlistId}'), - hoverColor: Theme.of(context).colorScheme.primary.withOpacity(0.04), + hoverColor: Theme.of(context).colorScheme.primary.withAlpha(10), selected: _isSelected, focusNode: _focusNode, ); diff --git a/boring_to_beautiful/step_02/macos/Runner.xcodeproj/project.pbxproj b/boring_to_beautiful/step_02/macos/Runner.xcodeproj/project.pbxproj index 16f986915a..3b2e4ebdbe 100644 --- a/boring_to_beautiful/step_02/macos/Runner.xcodeproj/project.pbxproj +++ b/boring_to_beautiful/step_02/macos/Runner.xcodeproj/project.pbxproj @@ -27,8 +27,8 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - A8E85C6D8B0E98CAAE2E9130 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */; }; - B806B664458019B54186E292 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */; }; + 63F13B68B978A8E76E978EE7 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */; }; + A1EB5160E1186002E08A43FB /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -62,7 +62,8 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; @@ -79,15 +80,14 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; - 3D03D92E7F35D224AEDCBA1A /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 707649428C932365B25C0105 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5C2816CD076396E37646986B /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 5CE7AE4215797944E1BE1B53 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 8CEF7ABB1ECE3EAA81DD03DB /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; - EAA7C14129D8AB99291CAB00 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -95,7 +95,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A8E85C6D8B0E98CAAE2E9130 /* Pods_RunnerTests.framework in Frameworks */, + A1EB5160E1186002E08A43FB /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -103,7 +103,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B806B664458019B54186E292 /* Pods_Runner.framework in Frameworks */, + 63F13B68B978A8E76E978EE7 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -137,7 +137,7 @@ 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, - 54EFB77EB9276BF48EB85221 /* Pods */, + FD831DC61C04B5999E3388CF /* Pods */, ); sourceTree = ""; }; @@ -185,27 +185,27 @@ path = Runner; sourceTree = ""; }; - 54EFB77EB9276BF48EB85221 /* Pods */ = { + D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( - 707649428C932365B25C0105 /* Pods-Runner.debug.xcconfig */, - 3D03D92E7F35D224AEDCBA1A /* Pods-Runner.release.xcconfig */, - EAA7C14129D8AB99291CAB00 /* Pods-Runner.profile.xcconfig */, - DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */, - 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */, - 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */, + 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */, + 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */, ); - name = Pods; - path = Pods; + name = Frameworks; sourceTree = ""; }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { + FD831DC61C04B5999E3388CF /* Pods */ = { isa = PBXGroup; children = ( - FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */, - 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */, + 8CEF7ABB1ECE3EAA81DD03DB /* Pods-Runner.debug.xcconfig */, + 5CE7AE4215797944E1BE1B53 /* Pods-Runner.release.xcconfig */, + 5C2816CD076396E37646986B /* Pods-Runner.profile.xcconfig */, + BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */, + 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */, + 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */, ); - name = Frameworks; + name = Pods; + path = Pods; sourceTree = ""; }; /* End PBXGroup section */ @@ -215,7 +215,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - AF905DC6BC408FD2036FDED5 /* [CP] Check Pods Manifest.lock */, + 904FB334C3FF8770F4FAA2F4 /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -234,13 +234,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 5567FB2AE9AC3639AC5CAD34 /* [CP] Check Pods Manifest.lock */, + 60646BBAFDF05E49F2FB1BEF /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - 8B173C0C69C140D19D86E6F5 /* [CP] Embed Pods Frameworks */, + 74EBA55F3EAADD88242C66DC /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -361,7 +361,7 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - 5567FB2AE9AC3639AC5CAD34 /* [CP] Check Pods Manifest.lock */ = { + 60646BBAFDF05E49F2FB1BEF /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -383,7 +383,7 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 8B173C0C69C140D19D86E6F5 /* [CP] Embed Pods Frameworks */ = { + 74EBA55F3EAADD88242C66DC /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -400,7 +400,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - AF905DC6BC408FD2036FDED5 /* [CP] Check Pods Manifest.lock */ = { + 904FB334C3FF8770F4FAA2F4 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -473,7 +473,7 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -488,7 +488,7 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -503,7 +503,7 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; diff --git a/boring_to_beautiful/step_02/macos/Runner/AppDelegate.swift b/boring_to_beautiful/step_02/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/boring_to_beautiful/step_02/macos/Runner/AppDelegate.swift +++ b/boring_to_beautiful/step_02/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/boring_to_beautiful/step_03/.gitignore b/boring_to_beautiful/step_03/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/boring_to_beautiful/step_03/.gitignore +++ b/boring_to_beautiful/step_03/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/boring_to_beautiful/step_03/android/gradle/wrapper/gradle-wrapper.properties b/boring_to_beautiful/step_03/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/boring_to_beautiful/step_03/android/gradle/wrapper/gradle-wrapper.properties +++ b/boring_to_beautiful/step_03/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/boring_to_beautiful/step_03/android/settings.gradle b/boring_to_beautiful/step_03/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/boring_to_beautiful/step_03/android/settings.gradle +++ b/boring_to_beautiful/step_03/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/boring_to_beautiful/step_03/ios/Runner.xcodeproj/project.pbxproj b/boring_to_beautiful/step_03/ios/Runner.xcodeproj/project.pbxproj index 6f4ae06705..3f17d86d6e 100644 --- a/boring_to_beautiful/step_03/ios/Runner.xcodeproj/project.pbxproj +++ b/boring_to_beautiful/step_03/ios/Runner.xcodeproj/project.pbxproj @@ -7,15 +7,15 @@ objects = { /* Begin PBXBuildFile section */ - 0C01ED38CB41DB29E7CCE593 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */; }; + 045D9DC041F68A933791819A /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 6340AE5E0688CFEF81E588DB /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - C3ADF89F3F63E210E24CE680 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -44,16 +44,16 @@ /* Begin PBXFileReference section */ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 1F08BB7F7ED8CD6A9EAAB67B /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 38FD937C6E465BD40C945593 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -61,26 +61,26 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - E71BFB852459043FA762013A /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + C9E54593F7142BBA8B70B2AA /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + CB85765AE9FE44396BCEE420 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + EFFA2C9A0A544F6091D35176 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 97C146EB1CF9000F007C117D /* Frameworks */ = { + 6A191B1B707AA2189ED7AEB7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0C01ED38CB41DB29E7CCE593 /* Pods_Runner.framework in Frameworks */, + 6340AE5E0688CFEF81E588DB /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E638ABBF3030C4A9F2E2070B /* Frameworks */ = { + 97C146EB1CF9000F007C117D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C3ADF89F3F63E210E24CE680 /* Pods_RunnerTests.framework in Frameworks */, + 045D9DC041F68A933791819A /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -95,6 +95,29 @@ path = RunnerTests; sourceTree = ""; }; + 3FC66A828656DFEF6FEB944E /* Pods */ = { + isa = PBXGroup; + children = ( + C9E54593F7142BBA8B70B2AA /* Pods-Runner.debug.xcconfig */, + CB85765AE9FE44396BCEE420 /* Pods-Runner.release.xcconfig */, + EFFA2C9A0A544F6091D35176 /* Pods-Runner.profile.xcconfig */, + 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */, + 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */, + 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + 7C4F6B5D0FD36966BC5B7640 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */, + 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( @@ -113,8 +136,8 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, - F7DFDC3250242280E3E4ADCD /* Pods */, - D7F7F2B227A12F4D6DDB9A9F /* Frameworks */, + 3FC66A828656DFEF6FEB944E /* Pods */, + 7C4F6B5D0FD36966BC5B7640 /* Frameworks */, ); sourceTree = ""; }; @@ -142,29 +165,6 @@ path = Runner; sourceTree = ""; }; - D7F7F2B227A12F4D6DDB9A9F /* Frameworks */ = { - isa = PBXGroup; - children = ( - EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */, - ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - F7DFDC3250242280E3E4ADCD /* Pods */ = { - isa = PBXGroup; - children = ( - 1F08BB7F7ED8CD6A9EAAB67B /* Pods-Runner.debug.xcconfig */, - 38FD937C6E465BD40C945593 /* Pods-Runner.release.xcconfig */, - E71BFB852459043FA762013A /* Pods-Runner.profile.xcconfig */, - 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */, - E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */, - 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -172,10 +172,10 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 8856CCD4DFDE7D20D575E549 /* [CP] Check Pods Manifest.lock */, + 1B0871ABDE9E880ACA9AF76E /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, - E638ABBF3030C4A9F2E2070B /* Frameworks */, + 6A191B1B707AA2189ED7AEB7 /* Frameworks */, ); buildRules = ( ); @@ -191,14 +191,14 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - E1718209021AFAD90E49DEFA /* [CP] Check Pods Manifest.lock */, + 152278CBCF53589D360B61BB /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - E06C1B6C19F28DC8E1E0F0B3 /* [CP] Embed Pods Frameworks */, + 9964E2B5C7FAD06A79BAAF89 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -270,23 +270,29 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + 152278CBCF53589D360B61BB /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Thin Binary"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - 8856CCD4DFDE7D20D575E549 /* [CP] Check Pods Manifest.lock */ = { + 1B0871ABDE9E880ACA9AF76E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -308,58 +314,52 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 9740EEB61CF901F6004384FC /* Run Script */ = { + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); - name = "Run Script"; + name = "Thin Binary"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - E06C1B6C19F28DC8E1E0F0B3 /* [CP] Embed Pods Frameworks */ = { + 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - 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", + name = "Run Script"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - E1718209021AFAD90E49DEFA /* [CP] Check Pods Manifest.lock */ = { + 9964E2B5C7FAD06A79BAAF89 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -487,7 +487,7 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -505,7 +505,7 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -521,7 +521,7 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; diff --git a/boring_to_beautiful/step_03/lib/src/features/artists/view/artist_bio.dart b/boring_to_beautiful/step_03/lib/src/features/artists/view/artist_bio.dart index 1325bede33..227b8e91f9 100644 --- a/boring_to_beautiful/step_03/lib/src/features/artists/view/artist_bio.dart +++ b/boring_to_beautiful/step_03/lib/src/features/artists/view/artist_bio.dart @@ -18,8 +18,8 @@ class ArtistBio extends StatelessWidget { artist.bio, style: context.bodyLarge!.copyWith( fontSize: 16, - color: context.colors.onSurface.withOpacity( - 0.87, + color: context.colors.onSurface.withAlpha( + 222, ), ), ); diff --git a/boring_to_beautiful/step_03/lib/src/features/playlists/view/playlist_screen.dart b/boring_to_beautiful/step_03/lib/src/features/playlists/view/playlist_screen.dart index 082af6a294..5dc2f0744f 100644 --- a/boring_to_beautiful/step_03/lib/src/features/playlists/view/playlist_screen.dart +++ b/boring_to_beautiful/step_03/lib/src/features/playlists/view/playlist_screen.dart @@ -84,7 +84,7 @@ class PlaylistScreen extends StatelessWidget { Text( playlist.description, style: context.bodyLarge!.copyWith( - color: colors.onSurface.withOpacity(0.8), + color: colors.onSurface.withAlpha(204), ), ), const SizedBox(height: 8), diff --git a/boring_to_beautiful/step_03/lib/src/shared/providers/theme.dart b/boring_to_beautiful/step_03/lib/src/shared/providers/theme.dart index 54a82f53d1..a152dcdcba 100644 --- a/boring_to_beautiful/step_03/lib/src/shared/providers/theme.dart +++ b/boring_to_beautiful/step_03/lib/src/shared/providers/theme.dart @@ -59,6 +59,7 @@ class ThemeProvider extends InheritedWidget { Color blend(Color targetColor) { return Color( + // ignore: deprecated_member_use Blend.harmonize(targetColor.value, settings.value.sourceColor.value)); } diff --git a/boring_to_beautiful/step_03/lib/src/shared/views/bottom_bar.dart b/boring_to_beautiful/step_03/lib/src/shared/views/bottom_bar.dart index bafcdfdbbf..06e085a9b6 100644 --- a/boring_to_beautiful/step_03/lib/src/shared/views/bottom_bar.dart +++ b/boring_to_beautiful/step_03/lib/src/shared/views/bottom_bar.dart @@ -570,7 +570,7 @@ class _FullScreenPlayerState extends State<_FullScreenPlayer> { song.artist.name, style: context.labelSmall!.copyWith( fontSize: 20, - color: context.colors.onSurface.withOpacity(0.8)), + color: context.colors.onSurface.withAlpha(204)), overflow: TextOverflow.clip, ), ], @@ -706,7 +706,7 @@ class _MobilePlayer extends StatelessWidget { current.song.artist.name, style: context.labelSmall!.copyWith( fontSize: 12, - color: context.colors.onSurface.withOpacity(0.8)), + color: context.colors.onSurface.withAlpha(204)), overflow: TextOverflow.clip, ), ], diff --git a/boring_to_beautiful/step_03/lib/src/shared/views/sidebar.dart b/boring_to_beautiful/step_03/lib/src/shared/views/sidebar.dart index 0c5bcd18f6..78c19b4d22 100644 --- a/boring_to_beautiful/step_03/lib/src/shared/views/sidebar.dart +++ b/boring_to_beautiful/step_03/lib/src/shared/views/sidebar.dart @@ -134,7 +134,7 @@ class _PlaylistNavItemState extends State<_PlaylistNavItem> { ), ), onTap: () => GoRouter.of(context).go('/playlists/${widget.playlistId}'), - hoverColor: Theme.of(context).colorScheme.primary.withOpacity(0.04), + hoverColor: Theme.of(context).colorScheme.primary.withAlpha(10), selected: _isSelected, focusNode: _focusNode, ); diff --git a/boring_to_beautiful/step_03/macos/Runner.xcodeproj/project.pbxproj b/boring_to_beautiful/step_03/macos/Runner.xcodeproj/project.pbxproj index 16f986915a..3b2e4ebdbe 100644 --- a/boring_to_beautiful/step_03/macos/Runner.xcodeproj/project.pbxproj +++ b/boring_to_beautiful/step_03/macos/Runner.xcodeproj/project.pbxproj @@ -27,8 +27,8 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - A8E85C6D8B0E98CAAE2E9130 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */; }; - B806B664458019B54186E292 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */; }; + 63F13B68B978A8E76E978EE7 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */; }; + A1EB5160E1186002E08A43FB /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -62,7 +62,8 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; @@ -79,15 +80,14 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; - 3D03D92E7F35D224AEDCBA1A /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 707649428C932365B25C0105 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5C2816CD076396E37646986B /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 5CE7AE4215797944E1BE1B53 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 8CEF7ABB1ECE3EAA81DD03DB /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; - EAA7C14129D8AB99291CAB00 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -95,7 +95,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A8E85C6D8B0E98CAAE2E9130 /* Pods_RunnerTests.framework in Frameworks */, + A1EB5160E1186002E08A43FB /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -103,7 +103,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B806B664458019B54186E292 /* Pods_Runner.framework in Frameworks */, + 63F13B68B978A8E76E978EE7 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -137,7 +137,7 @@ 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, - 54EFB77EB9276BF48EB85221 /* Pods */, + FD831DC61C04B5999E3388CF /* Pods */, ); sourceTree = ""; }; @@ -185,27 +185,27 @@ path = Runner; sourceTree = ""; }; - 54EFB77EB9276BF48EB85221 /* Pods */ = { + D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( - 707649428C932365B25C0105 /* Pods-Runner.debug.xcconfig */, - 3D03D92E7F35D224AEDCBA1A /* Pods-Runner.release.xcconfig */, - EAA7C14129D8AB99291CAB00 /* Pods-Runner.profile.xcconfig */, - DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */, - 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */, - 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */, + 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */, + 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */, ); - name = Pods; - path = Pods; + name = Frameworks; sourceTree = ""; }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { + FD831DC61C04B5999E3388CF /* Pods */ = { isa = PBXGroup; children = ( - FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */, - 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */, + 8CEF7ABB1ECE3EAA81DD03DB /* Pods-Runner.debug.xcconfig */, + 5CE7AE4215797944E1BE1B53 /* Pods-Runner.release.xcconfig */, + 5C2816CD076396E37646986B /* Pods-Runner.profile.xcconfig */, + BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */, + 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */, + 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */, ); - name = Frameworks; + name = Pods; + path = Pods; sourceTree = ""; }; /* End PBXGroup section */ @@ -215,7 +215,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - AF905DC6BC408FD2036FDED5 /* [CP] Check Pods Manifest.lock */, + 904FB334C3FF8770F4FAA2F4 /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -234,13 +234,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 5567FB2AE9AC3639AC5CAD34 /* [CP] Check Pods Manifest.lock */, + 60646BBAFDF05E49F2FB1BEF /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - 8B173C0C69C140D19D86E6F5 /* [CP] Embed Pods Frameworks */, + 74EBA55F3EAADD88242C66DC /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -361,7 +361,7 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - 5567FB2AE9AC3639AC5CAD34 /* [CP] Check Pods Manifest.lock */ = { + 60646BBAFDF05E49F2FB1BEF /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -383,7 +383,7 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 8B173C0C69C140D19D86E6F5 /* [CP] Embed Pods Frameworks */ = { + 74EBA55F3EAADD88242C66DC /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -400,7 +400,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - AF905DC6BC408FD2036FDED5 /* [CP] Check Pods Manifest.lock */ = { + 904FB334C3FF8770F4FAA2F4 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -473,7 +473,7 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -488,7 +488,7 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -503,7 +503,7 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; diff --git a/boring_to_beautiful/step_03/macos/Runner/AppDelegate.swift b/boring_to_beautiful/step_03/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/boring_to_beautiful/step_03/macos/Runner/AppDelegate.swift +++ b/boring_to_beautiful/step_03/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/boring_to_beautiful/step_04/.gitignore b/boring_to_beautiful/step_04/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/boring_to_beautiful/step_04/.gitignore +++ b/boring_to_beautiful/step_04/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/boring_to_beautiful/step_04/android/gradle/wrapper/gradle-wrapper.properties b/boring_to_beautiful/step_04/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/boring_to_beautiful/step_04/android/gradle/wrapper/gradle-wrapper.properties +++ b/boring_to_beautiful/step_04/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/boring_to_beautiful/step_04/android/settings.gradle b/boring_to_beautiful/step_04/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/boring_to_beautiful/step_04/android/settings.gradle +++ b/boring_to_beautiful/step_04/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/boring_to_beautiful/step_04/ios/Runner.xcodeproj/project.pbxproj b/boring_to_beautiful/step_04/ios/Runner.xcodeproj/project.pbxproj index 6f4ae06705..3f17d86d6e 100644 --- a/boring_to_beautiful/step_04/ios/Runner.xcodeproj/project.pbxproj +++ b/boring_to_beautiful/step_04/ios/Runner.xcodeproj/project.pbxproj @@ -7,15 +7,15 @@ objects = { /* Begin PBXBuildFile section */ - 0C01ED38CB41DB29E7CCE593 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */; }; + 045D9DC041F68A933791819A /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 6340AE5E0688CFEF81E588DB /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - C3ADF89F3F63E210E24CE680 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -44,16 +44,16 @@ /* Begin PBXFileReference section */ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 1F08BB7F7ED8CD6A9EAAB67B /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 38FD937C6E465BD40C945593 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -61,26 +61,26 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - E71BFB852459043FA762013A /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + C9E54593F7142BBA8B70B2AA /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + CB85765AE9FE44396BCEE420 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + EFFA2C9A0A544F6091D35176 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 97C146EB1CF9000F007C117D /* Frameworks */ = { + 6A191B1B707AA2189ED7AEB7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0C01ED38CB41DB29E7CCE593 /* Pods_Runner.framework in Frameworks */, + 6340AE5E0688CFEF81E588DB /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E638ABBF3030C4A9F2E2070B /* Frameworks */ = { + 97C146EB1CF9000F007C117D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C3ADF89F3F63E210E24CE680 /* Pods_RunnerTests.framework in Frameworks */, + 045D9DC041F68A933791819A /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -95,6 +95,29 @@ path = RunnerTests; sourceTree = ""; }; + 3FC66A828656DFEF6FEB944E /* Pods */ = { + isa = PBXGroup; + children = ( + C9E54593F7142BBA8B70B2AA /* Pods-Runner.debug.xcconfig */, + CB85765AE9FE44396BCEE420 /* Pods-Runner.release.xcconfig */, + EFFA2C9A0A544F6091D35176 /* Pods-Runner.profile.xcconfig */, + 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */, + 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */, + 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + 7C4F6B5D0FD36966BC5B7640 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */, + 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( @@ -113,8 +136,8 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, - F7DFDC3250242280E3E4ADCD /* Pods */, - D7F7F2B227A12F4D6DDB9A9F /* Frameworks */, + 3FC66A828656DFEF6FEB944E /* Pods */, + 7C4F6B5D0FD36966BC5B7640 /* Frameworks */, ); sourceTree = ""; }; @@ -142,29 +165,6 @@ path = Runner; sourceTree = ""; }; - D7F7F2B227A12F4D6DDB9A9F /* Frameworks */ = { - isa = PBXGroup; - children = ( - EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */, - ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - F7DFDC3250242280E3E4ADCD /* Pods */ = { - isa = PBXGroup; - children = ( - 1F08BB7F7ED8CD6A9EAAB67B /* Pods-Runner.debug.xcconfig */, - 38FD937C6E465BD40C945593 /* Pods-Runner.release.xcconfig */, - E71BFB852459043FA762013A /* Pods-Runner.profile.xcconfig */, - 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */, - E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */, - 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -172,10 +172,10 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 8856CCD4DFDE7D20D575E549 /* [CP] Check Pods Manifest.lock */, + 1B0871ABDE9E880ACA9AF76E /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, - E638ABBF3030C4A9F2E2070B /* Frameworks */, + 6A191B1B707AA2189ED7AEB7 /* Frameworks */, ); buildRules = ( ); @@ -191,14 +191,14 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - E1718209021AFAD90E49DEFA /* [CP] Check Pods Manifest.lock */, + 152278CBCF53589D360B61BB /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - E06C1B6C19F28DC8E1E0F0B3 /* [CP] Embed Pods Frameworks */, + 9964E2B5C7FAD06A79BAAF89 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -270,23 +270,29 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + 152278CBCF53589D360B61BB /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Thin Binary"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - 8856CCD4DFDE7D20D575E549 /* [CP] Check Pods Manifest.lock */ = { + 1B0871ABDE9E880ACA9AF76E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -308,58 +314,52 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 9740EEB61CF901F6004384FC /* Run Script */ = { + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); - name = "Run Script"; + name = "Thin Binary"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - E06C1B6C19F28DC8E1E0F0B3 /* [CP] Embed Pods Frameworks */ = { + 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - 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", + name = "Run Script"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - E1718209021AFAD90E49DEFA /* [CP] Check Pods Manifest.lock */ = { + 9964E2B5C7FAD06A79BAAF89 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -487,7 +487,7 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -505,7 +505,7 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -521,7 +521,7 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; diff --git a/boring_to_beautiful/step_04/lib/src/features/artists/view/artist_bio.dart b/boring_to_beautiful/step_04/lib/src/features/artists/view/artist_bio.dart index 1325bede33..227b8e91f9 100644 --- a/boring_to_beautiful/step_04/lib/src/features/artists/view/artist_bio.dart +++ b/boring_to_beautiful/step_04/lib/src/features/artists/view/artist_bio.dart @@ -18,8 +18,8 @@ class ArtistBio extends StatelessWidget { artist.bio, style: context.bodyLarge!.copyWith( fontSize: 16, - color: context.colors.onSurface.withOpacity( - 0.87, + color: context.colors.onSurface.withAlpha( + 222, ), ), ); diff --git a/boring_to_beautiful/step_04/lib/src/features/playlists/view/playlist_screen.dart b/boring_to_beautiful/step_04/lib/src/features/playlists/view/playlist_screen.dart index 082af6a294..5dc2f0744f 100644 --- a/boring_to_beautiful/step_04/lib/src/features/playlists/view/playlist_screen.dart +++ b/boring_to_beautiful/step_04/lib/src/features/playlists/view/playlist_screen.dart @@ -84,7 +84,7 @@ class PlaylistScreen extends StatelessWidget { Text( playlist.description, style: context.bodyLarge!.copyWith( - color: colors.onSurface.withOpacity(0.8), + color: colors.onSurface.withAlpha(204), ), ), const SizedBox(height: 8), diff --git a/boring_to_beautiful/step_04/lib/src/shared/providers/theme.dart b/boring_to_beautiful/step_04/lib/src/shared/providers/theme.dart index 54a82f53d1..a152dcdcba 100644 --- a/boring_to_beautiful/step_04/lib/src/shared/providers/theme.dart +++ b/boring_to_beautiful/step_04/lib/src/shared/providers/theme.dart @@ -59,6 +59,7 @@ class ThemeProvider extends InheritedWidget { Color blend(Color targetColor) { return Color( + // ignore: deprecated_member_use Blend.harmonize(targetColor.value, settings.value.sourceColor.value)); } diff --git a/boring_to_beautiful/step_04/lib/src/shared/views/bottom_bar.dart b/boring_to_beautiful/step_04/lib/src/shared/views/bottom_bar.dart index bafcdfdbbf..06e085a9b6 100644 --- a/boring_to_beautiful/step_04/lib/src/shared/views/bottom_bar.dart +++ b/boring_to_beautiful/step_04/lib/src/shared/views/bottom_bar.dart @@ -570,7 +570,7 @@ class _FullScreenPlayerState extends State<_FullScreenPlayer> { song.artist.name, style: context.labelSmall!.copyWith( fontSize: 20, - color: context.colors.onSurface.withOpacity(0.8)), + color: context.colors.onSurface.withAlpha(204)), overflow: TextOverflow.clip, ), ], @@ -706,7 +706,7 @@ class _MobilePlayer extends StatelessWidget { current.song.artist.name, style: context.labelSmall!.copyWith( fontSize: 12, - color: context.colors.onSurface.withOpacity(0.8)), + color: context.colors.onSurface.withAlpha(204)), overflow: TextOverflow.clip, ), ], diff --git a/boring_to_beautiful/step_04/lib/src/shared/views/sidebar.dart b/boring_to_beautiful/step_04/lib/src/shared/views/sidebar.dart index 0c5bcd18f6..78c19b4d22 100644 --- a/boring_to_beautiful/step_04/lib/src/shared/views/sidebar.dart +++ b/boring_to_beautiful/step_04/lib/src/shared/views/sidebar.dart @@ -134,7 +134,7 @@ class _PlaylistNavItemState extends State<_PlaylistNavItem> { ), ), onTap: () => GoRouter.of(context).go('/playlists/${widget.playlistId}'), - hoverColor: Theme.of(context).colorScheme.primary.withOpacity(0.04), + hoverColor: Theme.of(context).colorScheme.primary.withAlpha(10), selected: _isSelected, focusNode: _focusNode, ); diff --git a/boring_to_beautiful/step_04/macos/Runner.xcodeproj/project.pbxproj b/boring_to_beautiful/step_04/macos/Runner.xcodeproj/project.pbxproj index 16f986915a..3b2e4ebdbe 100644 --- a/boring_to_beautiful/step_04/macos/Runner.xcodeproj/project.pbxproj +++ b/boring_to_beautiful/step_04/macos/Runner.xcodeproj/project.pbxproj @@ -27,8 +27,8 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - A8E85C6D8B0E98CAAE2E9130 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */; }; - B806B664458019B54186E292 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */; }; + 63F13B68B978A8E76E978EE7 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */; }; + A1EB5160E1186002E08A43FB /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -62,7 +62,8 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; @@ -79,15 +80,14 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; - 3D03D92E7F35D224AEDCBA1A /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 707649428C932365B25C0105 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5C2816CD076396E37646986B /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 5CE7AE4215797944E1BE1B53 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 8CEF7ABB1ECE3EAA81DD03DB /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; - EAA7C14129D8AB99291CAB00 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -95,7 +95,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A8E85C6D8B0E98CAAE2E9130 /* Pods_RunnerTests.framework in Frameworks */, + A1EB5160E1186002E08A43FB /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -103,7 +103,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B806B664458019B54186E292 /* Pods_Runner.framework in Frameworks */, + 63F13B68B978A8E76E978EE7 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -137,7 +137,7 @@ 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, - 54EFB77EB9276BF48EB85221 /* Pods */, + FD831DC61C04B5999E3388CF /* Pods */, ); sourceTree = ""; }; @@ -185,27 +185,27 @@ path = Runner; sourceTree = ""; }; - 54EFB77EB9276BF48EB85221 /* Pods */ = { + D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( - 707649428C932365B25C0105 /* Pods-Runner.debug.xcconfig */, - 3D03D92E7F35D224AEDCBA1A /* Pods-Runner.release.xcconfig */, - EAA7C14129D8AB99291CAB00 /* Pods-Runner.profile.xcconfig */, - DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */, - 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */, - 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */, + 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */, + 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */, ); - name = Pods; - path = Pods; + name = Frameworks; sourceTree = ""; }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { + FD831DC61C04B5999E3388CF /* Pods */ = { isa = PBXGroup; children = ( - FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */, - 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */, + 8CEF7ABB1ECE3EAA81DD03DB /* Pods-Runner.debug.xcconfig */, + 5CE7AE4215797944E1BE1B53 /* Pods-Runner.release.xcconfig */, + 5C2816CD076396E37646986B /* Pods-Runner.profile.xcconfig */, + BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */, + 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */, + 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */, ); - name = Frameworks; + name = Pods; + path = Pods; sourceTree = ""; }; /* End PBXGroup section */ @@ -215,7 +215,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - AF905DC6BC408FD2036FDED5 /* [CP] Check Pods Manifest.lock */, + 904FB334C3FF8770F4FAA2F4 /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -234,13 +234,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 5567FB2AE9AC3639AC5CAD34 /* [CP] Check Pods Manifest.lock */, + 60646BBAFDF05E49F2FB1BEF /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - 8B173C0C69C140D19D86E6F5 /* [CP] Embed Pods Frameworks */, + 74EBA55F3EAADD88242C66DC /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -361,7 +361,7 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - 5567FB2AE9AC3639AC5CAD34 /* [CP] Check Pods Manifest.lock */ = { + 60646BBAFDF05E49F2FB1BEF /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -383,7 +383,7 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 8B173C0C69C140D19D86E6F5 /* [CP] Embed Pods Frameworks */ = { + 74EBA55F3EAADD88242C66DC /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -400,7 +400,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - AF905DC6BC408FD2036FDED5 /* [CP] Check Pods Manifest.lock */ = { + 904FB334C3FF8770F4FAA2F4 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -473,7 +473,7 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -488,7 +488,7 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -503,7 +503,7 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; diff --git a/boring_to_beautiful/step_04/macos/Runner/AppDelegate.swift b/boring_to_beautiful/step_04/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/boring_to_beautiful/step_04/macos/Runner/AppDelegate.swift +++ b/boring_to_beautiful/step_04/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/boring_to_beautiful/step_05/.gitignore b/boring_to_beautiful/step_05/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/boring_to_beautiful/step_05/.gitignore +++ b/boring_to_beautiful/step_05/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/boring_to_beautiful/step_05/android/gradle/wrapper/gradle-wrapper.properties b/boring_to_beautiful/step_05/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/boring_to_beautiful/step_05/android/gradle/wrapper/gradle-wrapper.properties +++ b/boring_to_beautiful/step_05/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/boring_to_beautiful/step_05/android/settings.gradle b/boring_to_beautiful/step_05/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/boring_to_beautiful/step_05/android/settings.gradle +++ b/boring_to_beautiful/step_05/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/boring_to_beautiful/step_05/ios/Runner.xcodeproj/project.pbxproj b/boring_to_beautiful/step_05/ios/Runner.xcodeproj/project.pbxproj index 6f4ae06705..3f17d86d6e 100644 --- a/boring_to_beautiful/step_05/ios/Runner.xcodeproj/project.pbxproj +++ b/boring_to_beautiful/step_05/ios/Runner.xcodeproj/project.pbxproj @@ -7,15 +7,15 @@ objects = { /* Begin PBXBuildFile section */ - 0C01ED38CB41DB29E7CCE593 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */; }; + 045D9DC041F68A933791819A /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 6340AE5E0688CFEF81E588DB /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - C3ADF89F3F63E210E24CE680 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -44,16 +44,16 @@ /* Begin PBXFileReference section */ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 1F08BB7F7ED8CD6A9EAAB67B /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 38FD937C6E465BD40C945593 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -61,26 +61,26 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - E71BFB852459043FA762013A /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + C9E54593F7142BBA8B70B2AA /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + CB85765AE9FE44396BCEE420 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + EFFA2C9A0A544F6091D35176 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 97C146EB1CF9000F007C117D /* Frameworks */ = { + 6A191B1B707AA2189ED7AEB7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0C01ED38CB41DB29E7CCE593 /* Pods_Runner.framework in Frameworks */, + 6340AE5E0688CFEF81E588DB /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E638ABBF3030C4A9F2E2070B /* Frameworks */ = { + 97C146EB1CF9000F007C117D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C3ADF89F3F63E210E24CE680 /* Pods_RunnerTests.framework in Frameworks */, + 045D9DC041F68A933791819A /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -95,6 +95,29 @@ path = RunnerTests; sourceTree = ""; }; + 3FC66A828656DFEF6FEB944E /* Pods */ = { + isa = PBXGroup; + children = ( + C9E54593F7142BBA8B70B2AA /* Pods-Runner.debug.xcconfig */, + CB85765AE9FE44396BCEE420 /* Pods-Runner.release.xcconfig */, + EFFA2C9A0A544F6091D35176 /* Pods-Runner.profile.xcconfig */, + 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */, + 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */, + 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + 7C4F6B5D0FD36966BC5B7640 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */, + 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( @@ -113,8 +136,8 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, - F7DFDC3250242280E3E4ADCD /* Pods */, - D7F7F2B227A12F4D6DDB9A9F /* Frameworks */, + 3FC66A828656DFEF6FEB944E /* Pods */, + 7C4F6B5D0FD36966BC5B7640 /* Frameworks */, ); sourceTree = ""; }; @@ -142,29 +165,6 @@ path = Runner; sourceTree = ""; }; - D7F7F2B227A12F4D6DDB9A9F /* Frameworks */ = { - isa = PBXGroup; - children = ( - EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */, - ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - F7DFDC3250242280E3E4ADCD /* Pods */ = { - isa = PBXGroup; - children = ( - 1F08BB7F7ED8CD6A9EAAB67B /* Pods-Runner.debug.xcconfig */, - 38FD937C6E465BD40C945593 /* Pods-Runner.release.xcconfig */, - E71BFB852459043FA762013A /* Pods-Runner.profile.xcconfig */, - 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */, - E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */, - 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -172,10 +172,10 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 8856CCD4DFDE7D20D575E549 /* [CP] Check Pods Manifest.lock */, + 1B0871ABDE9E880ACA9AF76E /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, - E638ABBF3030C4A9F2E2070B /* Frameworks */, + 6A191B1B707AA2189ED7AEB7 /* Frameworks */, ); buildRules = ( ); @@ -191,14 +191,14 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - E1718209021AFAD90E49DEFA /* [CP] Check Pods Manifest.lock */, + 152278CBCF53589D360B61BB /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - E06C1B6C19F28DC8E1E0F0B3 /* [CP] Embed Pods Frameworks */, + 9964E2B5C7FAD06A79BAAF89 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -270,23 +270,29 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + 152278CBCF53589D360B61BB /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Thin Binary"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - 8856CCD4DFDE7D20D575E549 /* [CP] Check Pods Manifest.lock */ = { + 1B0871ABDE9E880ACA9AF76E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -308,58 +314,52 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 9740EEB61CF901F6004384FC /* Run Script */ = { + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); - name = "Run Script"; + name = "Thin Binary"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - E06C1B6C19F28DC8E1E0F0B3 /* [CP] Embed Pods Frameworks */ = { + 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - 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", + name = "Run Script"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - E1718209021AFAD90E49DEFA /* [CP] Check Pods Manifest.lock */ = { + 9964E2B5C7FAD06A79BAAF89 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -487,7 +487,7 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -505,7 +505,7 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -521,7 +521,7 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; diff --git a/boring_to_beautiful/step_05/lib/src/features/artists/view/artist_bio.dart b/boring_to_beautiful/step_05/lib/src/features/artists/view/artist_bio.dart index 1325bede33..227b8e91f9 100644 --- a/boring_to_beautiful/step_05/lib/src/features/artists/view/artist_bio.dart +++ b/boring_to_beautiful/step_05/lib/src/features/artists/view/artist_bio.dart @@ -18,8 +18,8 @@ class ArtistBio extends StatelessWidget { artist.bio, style: context.bodyLarge!.copyWith( fontSize: 16, - color: context.colors.onSurface.withOpacity( - 0.87, + color: context.colors.onSurface.withAlpha( + 222, ), ), ); diff --git a/boring_to_beautiful/step_05/lib/src/features/playlists/view/playlist_screen.dart b/boring_to_beautiful/step_05/lib/src/features/playlists/view/playlist_screen.dart index 082af6a294..5dc2f0744f 100644 --- a/boring_to_beautiful/step_05/lib/src/features/playlists/view/playlist_screen.dart +++ b/boring_to_beautiful/step_05/lib/src/features/playlists/view/playlist_screen.dart @@ -84,7 +84,7 @@ class PlaylistScreen extends StatelessWidget { Text( playlist.description, style: context.bodyLarge!.copyWith( - color: colors.onSurface.withOpacity(0.8), + color: colors.onSurface.withAlpha(204), ), ), const SizedBox(height: 8), diff --git a/boring_to_beautiful/step_05/lib/src/shared/providers/theme.dart b/boring_to_beautiful/step_05/lib/src/shared/providers/theme.dart index 54a82f53d1..a152dcdcba 100644 --- a/boring_to_beautiful/step_05/lib/src/shared/providers/theme.dart +++ b/boring_to_beautiful/step_05/lib/src/shared/providers/theme.dart @@ -59,6 +59,7 @@ class ThemeProvider extends InheritedWidget { Color blend(Color targetColor) { return Color( + // ignore: deprecated_member_use Blend.harmonize(targetColor.value, settings.value.sourceColor.value)); } diff --git a/boring_to_beautiful/step_05/lib/src/shared/views/bottom_bar.dart b/boring_to_beautiful/step_05/lib/src/shared/views/bottom_bar.dart index bafcdfdbbf..06e085a9b6 100644 --- a/boring_to_beautiful/step_05/lib/src/shared/views/bottom_bar.dart +++ b/boring_to_beautiful/step_05/lib/src/shared/views/bottom_bar.dart @@ -570,7 +570,7 @@ class _FullScreenPlayerState extends State<_FullScreenPlayer> { song.artist.name, style: context.labelSmall!.copyWith( fontSize: 20, - color: context.colors.onSurface.withOpacity(0.8)), + color: context.colors.onSurface.withAlpha(204)), overflow: TextOverflow.clip, ), ], @@ -706,7 +706,7 @@ class _MobilePlayer extends StatelessWidget { current.song.artist.name, style: context.labelSmall!.copyWith( fontSize: 12, - color: context.colors.onSurface.withOpacity(0.8)), + color: context.colors.onSurface.withAlpha(204)), overflow: TextOverflow.clip, ), ], diff --git a/boring_to_beautiful/step_05/lib/src/shared/views/sidebar.dart b/boring_to_beautiful/step_05/lib/src/shared/views/sidebar.dart index 0c5bcd18f6..78c19b4d22 100644 --- a/boring_to_beautiful/step_05/lib/src/shared/views/sidebar.dart +++ b/boring_to_beautiful/step_05/lib/src/shared/views/sidebar.dart @@ -134,7 +134,7 @@ class _PlaylistNavItemState extends State<_PlaylistNavItem> { ), ), onTap: () => GoRouter.of(context).go('/playlists/${widget.playlistId}'), - hoverColor: Theme.of(context).colorScheme.primary.withOpacity(0.04), + hoverColor: Theme.of(context).colorScheme.primary.withAlpha(10), selected: _isSelected, focusNode: _focusNode, ); diff --git a/boring_to_beautiful/step_05/macos/Runner.xcodeproj/project.pbxproj b/boring_to_beautiful/step_05/macos/Runner.xcodeproj/project.pbxproj index 16f986915a..3b2e4ebdbe 100644 --- a/boring_to_beautiful/step_05/macos/Runner.xcodeproj/project.pbxproj +++ b/boring_to_beautiful/step_05/macos/Runner.xcodeproj/project.pbxproj @@ -27,8 +27,8 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - A8E85C6D8B0E98CAAE2E9130 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */; }; - B806B664458019B54186E292 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */; }; + 63F13B68B978A8E76E978EE7 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */; }; + A1EB5160E1186002E08A43FB /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -62,7 +62,8 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; @@ -79,15 +80,14 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; - 3D03D92E7F35D224AEDCBA1A /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 707649428C932365B25C0105 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5C2816CD076396E37646986B /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 5CE7AE4215797944E1BE1B53 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 8CEF7ABB1ECE3EAA81DD03DB /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; - EAA7C14129D8AB99291CAB00 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -95,7 +95,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A8E85C6D8B0E98CAAE2E9130 /* Pods_RunnerTests.framework in Frameworks */, + A1EB5160E1186002E08A43FB /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -103,7 +103,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B806B664458019B54186E292 /* Pods_Runner.framework in Frameworks */, + 63F13B68B978A8E76E978EE7 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -137,7 +137,7 @@ 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, - 54EFB77EB9276BF48EB85221 /* Pods */, + FD831DC61C04B5999E3388CF /* Pods */, ); sourceTree = ""; }; @@ -185,27 +185,27 @@ path = Runner; sourceTree = ""; }; - 54EFB77EB9276BF48EB85221 /* Pods */ = { + D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( - 707649428C932365B25C0105 /* Pods-Runner.debug.xcconfig */, - 3D03D92E7F35D224AEDCBA1A /* Pods-Runner.release.xcconfig */, - EAA7C14129D8AB99291CAB00 /* Pods-Runner.profile.xcconfig */, - DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */, - 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */, - 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */, + 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */, + 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */, ); - name = Pods; - path = Pods; + name = Frameworks; sourceTree = ""; }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { + FD831DC61C04B5999E3388CF /* Pods */ = { isa = PBXGroup; children = ( - FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */, - 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */, + 8CEF7ABB1ECE3EAA81DD03DB /* Pods-Runner.debug.xcconfig */, + 5CE7AE4215797944E1BE1B53 /* Pods-Runner.release.xcconfig */, + 5C2816CD076396E37646986B /* Pods-Runner.profile.xcconfig */, + BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */, + 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */, + 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */, ); - name = Frameworks; + name = Pods; + path = Pods; sourceTree = ""; }; /* End PBXGroup section */ @@ -215,7 +215,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - AF905DC6BC408FD2036FDED5 /* [CP] Check Pods Manifest.lock */, + 904FB334C3FF8770F4FAA2F4 /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -234,13 +234,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 5567FB2AE9AC3639AC5CAD34 /* [CP] Check Pods Manifest.lock */, + 60646BBAFDF05E49F2FB1BEF /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - 8B173C0C69C140D19D86E6F5 /* [CP] Embed Pods Frameworks */, + 74EBA55F3EAADD88242C66DC /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -361,7 +361,7 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - 5567FB2AE9AC3639AC5CAD34 /* [CP] Check Pods Manifest.lock */ = { + 60646BBAFDF05E49F2FB1BEF /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -383,7 +383,7 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 8B173C0C69C140D19D86E6F5 /* [CP] Embed Pods Frameworks */ = { + 74EBA55F3EAADD88242C66DC /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -400,7 +400,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - AF905DC6BC408FD2036FDED5 /* [CP] Check Pods Manifest.lock */ = { + 904FB334C3FF8770F4FAA2F4 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -473,7 +473,7 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -488,7 +488,7 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -503,7 +503,7 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; diff --git a/boring_to_beautiful/step_05/macos/Runner/AppDelegate.swift b/boring_to_beautiful/step_05/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/boring_to_beautiful/step_05/macos/Runner/AppDelegate.swift +++ b/boring_to_beautiful/step_05/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/boring_to_beautiful/step_06/.gitignore b/boring_to_beautiful/step_06/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/boring_to_beautiful/step_06/.gitignore +++ b/boring_to_beautiful/step_06/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/boring_to_beautiful/step_06/android/gradle/wrapper/gradle-wrapper.properties b/boring_to_beautiful/step_06/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/boring_to_beautiful/step_06/android/gradle/wrapper/gradle-wrapper.properties +++ b/boring_to_beautiful/step_06/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/boring_to_beautiful/step_06/android/settings.gradle b/boring_to_beautiful/step_06/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/boring_to_beautiful/step_06/android/settings.gradle +++ b/boring_to_beautiful/step_06/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/boring_to_beautiful/step_06/ios/Runner.xcodeproj/project.pbxproj b/boring_to_beautiful/step_06/ios/Runner.xcodeproj/project.pbxproj index 6f4ae06705..3f17d86d6e 100644 --- a/boring_to_beautiful/step_06/ios/Runner.xcodeproj/project.pbxproj +++ b/boring_to_beautiful/step_06/ios/Runner.xcodeproj/project.pbxproj @@ -7,15 +7,15 @@ objects = { /* Begin PBXBuildFile section */ - 0C01ED38CB41DB29E7CCE593 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */; }; + 045D9DC041F68A933791819A /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 6340AE5E0688CFEF81E588DB /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - C3ADF89F3F63E210E24CE680 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -44,16 +44,16 @@ /* Begin PBXFileReference section */ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 1F08BB7F7ED8CD6A9EAAB67B /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 38FD937C6E465BD40C945593 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -61,26 +61,26 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - E71BFB852459043FA762013A /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + C9E54593F7142BBA8B70B2AA /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + CB85765AE9FE44396BCEE420 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + EFFA2C9A0A544F6091D35176 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 97C146EB1CF9000F007C117D /* Frameworks */ = { + 6A191B1B707AA2189ED7AEB7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0C01ED38CB41DB29E7CCE593 /* Pods_Runner.framework in Frameworks */, + 6340AE5E0688CFEF81E588DB /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E638ABBF3030C4A9F2E2070B /* Frameworks */ = { + 97C146EB1CF9000F007C117D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C3ADF89F3F63E210E24CE680 /* Pods_RunnerTests.framework in Frameworks */, + 045D9DC041F68A933791819A /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -95,6 +95,29 @@ path = RunnerTests; sourceTree = ""; }; + 3FC66A828656DFEF6FEB944E /* Pods */ = { + isa = PBXGroup; + children = ( + C9E54593F7142BBA8B70B2AA /* Pods-Runner.debug.xcconfig */, + CB85765AE9FE44396BCEE420 /* Pods-Runner.release.xcconfig */, + EFFA2C9A0A544F6091D35176 /* Pods-Runner.profile.xcconfig */, + 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */, + 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */, + 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + 7C4F6B5D0FD36966BC5B7640 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */, + 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( @@ -113,8 +136,8 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, - F7DFDC3250242280E3E4ADCD /* Pods */, - D7F7F2B227A12F4D6DDB9A9F /* Frameworks */, + 3FC66A828656DFEF6FEB944E /* Pods */, + 7C4F6B5D0FD36966BC5B7640 /* Frameworks */, ); sourceTree = ""; }; @@ -142,29 +165,6 @@ path = Runner; sourceTree = ""; }; - D7F7F2B227A12F4D6DDB9A9F /* Frameworks */ = { - isa = PBXGroup; - children = ( - EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */, - ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - F7DFDC3250242280E3E4ADCD /* Pods */ = { - isa = PBXGroup; - children = ( - 1F08BB7F7ED8CD6A9EAAB67B /* Pods-Runner.debug.xcconfig */, - 38FD937C6E465BD40C945593 /* Pods-Runner.release.xcconfig */, - E71BFB852459043FA762013A /* Pods-Runner.profile.xcconfig */, - 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */, - E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */, - 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -172,10 +172,10 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 8856CCD4DFDE7D20D575E549 /* [CP] Check Pods Manifest.lock */, + 1B0871ABDE9E880ACA9AF76E /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, - E638ABBF3030C4A9F2E2070B /* Frameworks */, + 6A191B1B707AA2189ED7AEB7 /* Frameworks */, ); buildRules = ( ); @@ -191,14 +191,14 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - E1718209021AFAD90E49DEFA /* [CP] Check Pods Manifest.lock */, + 152278CBCF53589D360B61BB /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - E06C1B6C19F28DC8E1E0F0B3 /* [CP] Embed Pods Frameworks */, + 9964E2B5C7FAD06A79BAAF89 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -270,23 +270,29 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + 152278CBCF53589D360B61BB /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Thin Binary"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - 8856CCD4DFDE7D20D575E549 /* [CP] Check Pods Manifest.lock */ = { + 1B0871ABDE9E880ACA9AF76E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -308,58 +314,52 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 9740EEB61CF901F6004384FC /* Run Script */ = { + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); - name = "Run Script"; + name = "Thin Binary"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - E06C1B6C19F28DC8E1E0F0B3 /* [CP] Embed Pods Frameworks */ = { + 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - 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", + name = "Run Script"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - E1718209021AFAD90E49DEFA /* [CP] Check Pods Manifest.lock */ = { + 9964E2B5C7FAD06A79BAAF89 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -487,7 +487,7 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -505,7 +505,7 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -521,7 +521,7 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; diff --git a/boring_to_beautiful/step_06/lib/src/features/artists/view/artist_bio.dart b/boring_to_beautiful/step_06/lib/src/features/artists/view/artist_bio.dart index 1325bede33..227b8e91f9 100644 --- a/boring_to_beautiful/step_06/lib/src/features/artists/view/artist_bio.dart +++ b/boring_to_beautiful/step_06/lib/src/features/artists/view/artist_bio.dart @@ -18,8 +18,8 @@ class ArtistBio extends StatelessWidget { artist.bio, style: context.bodyLarge!.copyWith( fontSize: 16, - color: context.colors.onSurface.withOpacity( - 0.87, + color: context.colors.onSurface.withAlpha( + 222, ), ), ); diff --git a/boring_to_beautiful/step_06/lib/src/features/playlists/view/playlist_screen.dart b/boring_to_beautiful/step_06/lib/src/features/playlists/view/playlist_screen.dart index 082af6a294..5dc2f0744f 100644 --- a/boring_to_beautiful/step_06/lib/src/features/playlists/view/playlist_screen.dart +++ b/boring_to_beautiful/step_06/lib/src/features/playlists/view/playlist_screen.dart @@ -84,7 +84,7 @@ class PlaylistScreen extends StatelessWidget { Text( playlist.description, style: context.bodyLarge!.copyWith( - color: colors.onSurface.withOpacity(0.8), + color: colors.onSurface.withAlpha(204), ), ), const SizedBox(height: 8), diff --git a/boring_to_beautiful/step_06/lib/src/shared/providers/theme.dart b/boring_to_beautiful/step_06/lib/src/shared/providers/theme.dart index 54a82f53d1..a152dcdcba 100644 --- a/boring_to_beautiful/step_06/lib/src/shared/providers/theme.dart +++ b/boring_to_beautiful/step_06/lib/src/shared/providers/theme.dart @@ -59,6 +59,7 @@ class ThemeProvider extends InheritedWidget { Color blend(Color targetColor) { return Color( + // ignore: deprecated_member_use Blend.harmonize(targetColor.value, settings.value.sourceColor.value)); } diff --git a/boring_to_beautiful/step_06/lib/src/shared/views/bottom_bar.dart b/boring_to_beautiful/step_06/lib/src/shared/views/bottom_bar.dart index bafcdfdbbf..06e085a9b6 100644 --- a/boring_to_beautiful/step_06/lib/src/shared/views/bottom_bar.dart +++ b/boring_to_beautiful/step_06/lib/src/shared/views/bottom_bar.dart @@ -570,7 +570,7 @@ class _FullScreenPlayerState extends State<_FullScreenPlayer> { song.artist.name, style: context.labelSmall!.copyWith( fontSize: 20, - color: context.colors.onSurface.withOpacity(0.8)), + color: context.colors.onSurface.withAlpha(204)), overflow: TextOverflow.clip, ), ], @@ -706,7 +706,7 @@ class _MobilePlayer extends StatelessWidget { current.song.artist.name, style: context.labelSmall!.copyWith( fontSize: 12, - color: context.colors.onSurface.withOpacity(0.8)), + color: context.colors.onSurface.withAlpha(204)), overflow: TextOverflow.clip, ), ], diff --git a/boring_to_beautiful/step_06/lib/src/shared/views/sidebar.dart b/boring_to_beautiful/step_06/lib/src/shared/views/sidebar.dart index 0c5bcd18f6..78c19b4d22 100644 --- a/boring_to_beautiful/step_06/lib/src/shared/views/sidebar.dart +++ b/boring_to_beautiful/step_06/lib/src/shared/views/sidebar.dart @@ -134,7 +134,7 @@ class _PlaylistNavItemState extends State<_PlaylistNavItem> { ), ), onTap: () => GoRouter.of(context).go('/playlists/${widget.playlistId}'), - hoverColor: Theme.of(context).colorScheme.primary.withOpacity(0.04), + hoverColor: Theme.of(context).colorScheme.primary.withAlpha(10), selected: _isSelected, focusNode: _focusNode, ); diff --git a/boring_to_beautiful/step_06/macos/Runner.xcodeproj/project.pbxproj b/boring_to_beautiful/step_06/macos/Runner.xcodeproj/project.pbxproj index 16f986915a..3b2e4ebdbe 100644 --- a/boring_to_beautiful/step_06/macos/Runner.xcodeproj/project.pbxproj +++ b/boring_to_beautiful/step_06/macos/Runner.xcodeproj/project.pbxproj @@ -27,8 +27,8 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - A8E85C6D8B0E98CAAE2E9130 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */; }; - B806B664458019B54186E292 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */; }; + 63F13B68B978A8E76E978EE7 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */; }; + A1EB5160E1186002E08A43FB /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -62,7 +62,8 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; @@ -79,15 +80,14 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; - 3D03D92E7F35D224AEDCBA1A /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 707649428C932365B25C0105 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5C2816CD076396E37646986B /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 5CE7AE4215797944E1BE1B53 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 8CEF7ABB1ECE3EAA81DD03DB /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; - EAA7C14129D8AB99291CAB00 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -95,7 +95,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A8E85C6D8B0E98CAAE2E9130 /* Pods_RunnerTests.framework in Frameworks */, + A1EB5160E1186002E08A43FB /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -103,7 +103,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B806B664458019B54186E292 /* Pods_Runner.framework in Frameworks */, + 63F13B68B978A8E76E978EE7 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -137,7 +137,7 @@ 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, - 54EFB77EB9276BF48EB85221 /* Pods */, + FD831DC61C04B5999E3388CF /* Pods */, ); sourceTree = ""; }; @@ -185,27 +185,27 @@ path = Runner; sourceTree = ""; }; - 54EFB77EB9276BF48EB85221 /* Pods */ = { + D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( - 707649428C932365B25C0105 /* Pods-Runner.debug.xcconfig */, - 3D03D92E7F35D224AEDCBA1A /* Pods-Runner.release.xcconfig */, - EAA7C14129D8AB99291CAB00 /* Pods-Runner.profile.xcconfig */, - DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */, - 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */, - 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */, + 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */, + 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */, ); - name = Pods; - path = Pods; + name = Frameworks; sourceTree = ""; }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { + FD831DC61C04B5999E3388CF /* Pods */ = { isa = PBXGroup; children = ( - FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */, - 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */, + 8CEF7ABB1ECE3EAA81DD03DB /* Pods-Runner.debug.xcconfig */, + 5CE7AE4215797944E1BE1B53 /* Pods-Runner.release.xcconfig */, + 5C2816CD076396E37646986B /* Pods-Runner.profile.xcconfig */, + BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */, + 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */, + 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */, ); - name = Frameworks; + name = Pods; + path = Pods; sourceTree = ""; }; /* End PBXGroup section */ @@ -215,7 +215,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - AF905DC6BC408FD2036FDED5 /* [CP] Check Pods Manifest.lock */, + 904FB334C3FF8770F4FAA2F4 /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -234,13 +234,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 5567FB2AE9AC3639AC5CAD34 /* [CP] Check Pods Manifest.lock */, + 60646BBAFDF05E49F2FB1BEF /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - 8B173C0C69C140D19D86E6F5 /* [CP] Embed Pods Frameworks */, + 74EBA55F3EAADD88242C66DC /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -361,7 +361,7 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - 5567FB2AE9AC3639AC5CAD34 /* [CP] Check Pods Manifest.lock */ = { + 60646BBAFDF05E49F2FB1BEF /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -383,7 +383,7 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 8B173C0C69C140D19D86E6F5 /* [CP] Embed Pods Frameworks */ = { + 74EBA55F3EAADD88242C66DC /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -400,7 +400,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - AF905DC6BC408FD2036FDED5 /* [CP] Check Pods Manifest.lock */ = { + 904FB334C3FF8770F4FAA2F4 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -473,7 +473,7 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -488,7 +488,7 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -503,7 +503,7 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; diff --git a/boring_to_beautiful/step_06/macos/Runner/AppDelegate.swift b/boring_to_beautiful/step_06/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/boring_to_beautiful/step_06/macos/Runner/AppDelegate.swift +++ b/boring_to_beautiful/step_06/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/boring_to_beautiful/step_07/.gitignore b/boring_to_beautiful/step_07/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/boring_to_beautiful/step_07/.gitignore +++ b/boring_to_beautiful/step_07/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/boring_to_beautiful/step_07/android/gradle/wrapper/gradle-wrapper.properties b/boring_to_beautiful/step_07/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/boring_to_beautiful/step_07/android/gradle/wrapper/gradle-wrapper.properties +++ b/boring_to_beautiful/step_07/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/boring_to_beautiful/step_07/android/settings.gradle b/boring_to_beautiful/step_07/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/boring_to_beautiful/step_07/android/settings.gradle +++ b/boring_to_beautiful/step_07/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/boring_to_beautiful/step_07/ios/Runner.xcodeproj/project.pbxproj b/boring_to_beautiful/step_07/ios/Runner.xcodeproj/project.pbxproj index 6f4ae06705..3f17d86d6e 100644 --- a/boring_to_beautiful/step_07/ios/Runner.xcodeproj/project.pbxproj +++ b/boring_to_beautiful/step_07/ios/Runner.xcodeproj/project.pbxproj @@ -7,15 +7,15 @@ objects = { /* Begin PBXBuildFile section */ - 0C01ED38CB41DB29E7CCE593 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */; }; + 045D9DC041F68A933791819A /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 6340AE5E0688CFEF81E588DB /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - C3ADF89F3F63E210E24CE680 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -44,16 +44,16 @@ /* Begin PBXFileReference section */ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 1F08BB7F7ED8CD6A9EAAB67B /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 38FD937C6E465BD40C945593 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -61,26 +61,26 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - E71BFB852459043FA762013A /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + C9E54593F7142BBA8B70B2AA /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + CB85765AE9FE44396BCEE420 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + EFFA2C9A0A544F6091D35176 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 97C146EB1CF9000F007C117D /* Frameworks */ = { + 6A191B1B707AA2189ED7AEB7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0C01ED38CB41DB29E7CCE593 /* Pods_Runner.framework in Frameworks */, + 6340AE5E0688CFEF81E588DB /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E638ABBF3030C4A9F2E2070B /* Frameworks */ = { + 97C146EB1CF9000F007C117D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C3ADF89F3F63E210E24CE680 /* Pods_RunnerTests.framework in Frameworks */, + 045D9DC041F68A933791819A /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -95,6 +95,29 @@ path = RunnerTests; sourceTree = ""; }; + 3FC66A828656DFEF6FEB944E /* Pods */ = { + isa = PBXGroup; + children = ( + C9E54593F7142BBA8B70B2AA /* Pods-Runner.debug.xcconfig */, + CB85765AE9FE44396BCEE420 /* Pods-Runner.release.xcconfig */, + EFFA2C9A0A544F6091D35176 /* Pods-Runner.profile.xcconfig */, + 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */, + 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */, + 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + 7C4F6B5D0FD36966BC5B7640 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1A5B8D1F6E2314D54252D714 /* Pods_Runner.framework */, + 8C21E1E613517ACEAEC525DC /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( @@ -113,8 +136,8 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, - F7DFDC3250242280E3E4ADCD /* Pods */, - D7F7F2B227A12F4D6DDB9A9F /* Frameworks */, + 3FC66A828656DFEF6FEB944E /* Pods */, + 7C4F6B5D0FD36966BC5B7640 /* Frameworks */, ); sourceTree = ""; }; @@ -142,29 +165,6 @@ path = Runner; sourceTree = ""; }; - D7F7F2B227A12F4D6DDB9A9F /* Frameworks */ = { - isa = PBXGroup; - children = ( - EFB8BBEF624A58BC23E6A2C1 /* Pods_Runner.framework */, - ECBE298DEB14DF827BA45AC6 /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - F7DFDC3250242280E3E4ADCD /* Pods */ = { - isa = PBXGroup; - children = ( - 1F08BB7F7ED8CD6A9EAAB67B /* Pods-Runner.debug.xcconfig */, - 38FD937C6E465BD40C945593 /* Pods-Runner.release.xcconfig */, - E71BFB852459043FA762013A /* Pods-Runner.profile.xcconfig */, - 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */, - E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */, - 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -172,10 +172,10 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 8856CCD4DFDE7D20D575E549 /* [CP] Check Pods Manifest.lock */, + 1B0871ABDE9E880ACA9AF76E /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, - E638ABBF3030C4A9F2E2070B /* Frameworks */, + 6A191B1B707AA2189ED7AEB7 /* Frameworks */, ); buildRules = ( ); @@ -191,14 +191,14 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - E1718209021AFAD90E49DEFA /* [CP] Check Pods Manifest.lock */, + 152278CBCF53589D360B61BB /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - E06C1B6C19F28DC8E1E0F0B3 /* [CP] Embed Pods Frameworks */, + 9964E2B5C7FAD06A79BAAF89 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -270,23 +270,29 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + 152278CBCF53589D360B61BB /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Thin Binary"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - 8856CCD4DFDE7D20D575E549 /* [CP] Check Pods Manifest.lock */ = { + 1B0871ABDE9E880ACA9AF76E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -308,58 +314,52 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 9740EEB61CF901F6004384FC /* Run Script */ = { + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); - name = "Run Script"; + name = "Thin Binary"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - E06C1B6C19F28DC8E1E0F0B3 /* [CP] Embed Pods Frameworks */ = { + 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - 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", + name = "Run Script"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - E1718209021AFAD90E49DEFA /* [CP] Check Pods Manifest.lock */ = { + 9964E2B5C7FAD06A79BAAF89 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -487,7 +487,7 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 68A6EF78D4815D305C60BABE /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = 612DF2F856DB475059D0216B /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -505,7 +505,7 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E683969D312AFC8B2C574754 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 9E4939688F843C9FB16910FC /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -521,7 +521,7 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8D3FE4104419E484C3F0861C /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 7BE5987796DB363652331093 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; diff --git a/boring_to_beautiful/step_07/lib/src/features/artists/view/artist_bio.dart b/boring_to_beautiful/step_07/lib/src/features/artists/view/artist_bio.dart index 1325bede33..227b8e91f9 100644 --- a/boring_to_beautiful/step_07/lib/src/features/artists/view/artist_bio.dart +++ b/boring_to_beautiful/step_07/lib/src/features/artists/view/artist_bio.dart @@ -18,8 +18,8 @@ class ArtistBio extends StatelessWidget { artist.bio, style: context.bodyLarge!.copyWith( fontSize: 16, - color: context.colors.onSurface.withOpacity( - 0.87, + color: context.colors.onSurface.withAlpha( + 222, ), ), ); diff --git a/boring_to_beautiful/step_07/lib/src/features/playlists/view/playlist_screen.dart b/boring_to_beautiful/step_07/lib/src/features/playlists/view/playlist_screen.dart index 082af6a294..5dc2f0744f 100644 --- a/boring_to_beautiful/step_07/lib/src/features/playlists/view/playlist_screen.dart +++ b/boring_to_beautiful/step_07/lib/src/features/playlists/view/playlist_screen.dart @@ -84,7 +84,7 @@ class PlaylistScreen extends StatelessWidget { Text( playlist.description, style: context.bodyLarge!.copyWith( - color: colors.onSurface.withOpacity(0.8), + color: colors.onSurface.withAlpha(204), ), ), const SizedBox(height: 8), diff --git a/boring_to_beautiful/step_07/lib/src/shared/providers/theme.dart b/boring_to_beautiful/step_07/lib/src/shared/providers/theme.dart index b531352d0b..2446038ddd 100644 --- a/boring_to_beautiful/step_07/lib/src/shared/providers/theme.dart +++ b/boring_to_beautiful/step_07/lib/src/shared/providers/theme.dart @@ -59,6 +59,7 @@ class ThemeProvider extends InheritedWidget { Color blend(Color targetColor) { return Color( + // ignore: deprecated_member_use Blend.harmonize(targetColor.value, settings.value.sourceColor.value)); } diff --git a/boring_to_beautiful/step_07/lib/src/shared/views/bottom_bar.dart b/boring_to_beautiful/step_07/lib/src/shared/views/bottom_bar.dart index bafcdfdbbf..06e085a9b6 100644 --- a/boring_to_beautiful/step_07/lib/src/shared/views/bottom_bar.dart +++ b/boring_to_beautiful/step_07/lib/src/shared/views/bottom_bar.dart @@ -570,7 +570,7 @@ class _FullScreenPlayerState extends State<_FullScreenPlayer> { song.artist.name, style: context.labelSmall!.copyWith( fontSize: 20, - color: context.colors.onSurface.withOpacity(0.8)), + color: context.colors.onSurface.withAlpha(204)), overflow: TextOverflow.clip, ), ], @@ -706,7 +706,7 @@ class _MobilePlayer extends StatelessWidget { current.song.artist.name, style: context.labelSmall!.copyWith( fontSize: 12, - color: context.colors.onSurface.withOpacity(0.8)), + color: context.colors.onSurface.withAlpha(204)), overflow: TextOverflow.clip, ), ], diff --git a/boring_to_beautiful/step_07/lib/src/shared/views/sidebar.dart b/boring_to_beautiful/step_07/lib/src/shared/views/sidebar.dart index 0c5bcd18f6..78c19b4d22 100644 --- a/boring_to_beautiful/step_07/lib/src/shared/views/sidebar.dart +++ b/boring_to_beautiful/step_07/lib/src/shared/views/sidebar.dart @@ -134,7 +134,7 @@ class _PlaylistNavItemState extends State<_PlaylistNavItem> { ), ), onTap: () => GoRouter.of(context).go('/playlists/${widget.playlistId}'), - hoverColor: Theme.of(context).colorScheme.primary.withOpacity(0.04), + hoverColor: Theme.of(context).colorScheme.primary.withAlpha(10), selected: _isSelected, focusNode: _focusNode, ); diff --git a/boring_to_beautiful/step_07/macos/Runner.xcodeproj/project.pbxproj b/boring_to_beautiful/step_07/macos/Runner.xcodeproj/project.pbxproj index 16f986915a..3b2e4ebdbe 100644 --- a/boring_to_beautiful/step_07/macos/Runner.xcodeproj/project.pbxproj +++ b/boring_to_beautiful/step_07/macos/Runner.xcodeproj/project.pbxproj @@ -27,8 +27,8 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - A8E85C6D8B0E98CAAE2E9130 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */; }; - B806B664458019B54186E292 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */; }; + 63F13B68B978A8E76E978EE7 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */; }; + A1EB5160E1186002E08A43FB /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -62,7 +62,8 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; @@ -79,15 +80,14 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; - 3D03D92E7F35D224AEDCBA1A /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 707649428C932365B25C0105 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5C2816CD076396E37646986B /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 5CE7AE4215797944E1BE1B53 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 8CEF7ABB1ECE3EAA81DD03DB /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; - EAA7C14129D8AB99291CAB00 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -95,7 +95,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A8E85C6D8B0E98CAAE2E9130 /* Pods_RunnerTests.framework in Frameworks */, + A1EB5160E1186002E08A43FB /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -103,7 +103,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B806B664458019B54186E292 /* Pods_Runner.framework in Frameworks */, + 63F13B68B978A8E76E978EE7 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -137,7 +137,7 @@ 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, - 54EFB77EB9276BF48EB85221 /* Pods */, + FD831DC61C04B5999E3388CF /* Pods */, ); sourceTree = ""; }; @@ -185,27 +185,27 @@ path = Runner; sourceTree = ""; }; - 54EFB77EB9276BF48EB85221 /* Pods */ = { + D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( - 707649428C932365B25C0105 /* Pods-Runner.debug.xcconfig */, - 3D03D92E7F35D224AEDCBA1A /* Pods-Runner.release.xcconfig */, - EAA7C14129D8AB99291CAB00 /* Pods-Runner.profile.xcconfig */, - DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */, - 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */, - 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */, + 5BAA81C4A6E7098556896E2F /* Pods_Runner.framework */, + 030CB9F0A41B69C812119E7A /* Pods_RunnerTests.framework */, ); - name = Pods; - path = Pods; + name = Frameworks; sourceTree = ""; }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { + FD831DC61C04B5999E3388CF /* Pods */ = { isa = PBXGroup; children = ( - FFD88283CC087D7EC4A5EEC2 /* Pods_Runner.framework */, - 4C18753DFB8C9A68C32CD56C /* Pods_RunnerTests.framework */, + 8CEF7ABB1ECE3EAA81DD03DB /* Pods-Runner.debug.xcconfig */, + 5CE7AE4215797944E1BE1B53 /* Pods-Runner.release.xcconfig */, + 5C2816CD076396E37646986B /* Pods-Runner.profile.xcconfig */, + BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */, + 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */, + 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */, ); - name = Frameworks; + name = Pods; + path = Pods; sourceTree = ""; }; /* End PBXGroup section */ @@ -215,7 +215,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - AF905DC6BC408FD2036FDED5 /* [CP] Check Pods Manifest.lock */, + 904FB334C3FF8770F4FAA2F4 /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -234,13 +234,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 5567FB2AE9AC3639AC5CAD34 /* [CP] Check Pods Manifest.lock */, + 60646BBAFDF05E49F2FB1BEF /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - 8B173C0C69C140D19D86E6F5 /* [CP] Embed Pods Frameworks */, + 74EBA55F3EAADD88242C66DC /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -361,7 +361,7 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - 5567FB2AE9AC3639AC5CAD34 /* [CP] Check Pods Manifest.lock */ = { + 60646BBAFDF05E49F2FB1BEF /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -383,7 +383,7 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 8B173C0C69C140D19D86E6F5 /* [CP] Embed Pods Frameworks */ = { + 74EBA55F3EAADD88242C66DC /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -400,7 +400,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - AF905DC6BC408FD2036FDED5 /* [CP] Check Pods Manifest.lock */ = { + 904FB334C3FF8770F4FAA2F4 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -473,7 +473,7 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DC89820344E13749715F29FC /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = BCEE4E22E342BE2AE575AD2D /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -488,7 +488,7 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 26EF1217D73A8E7812BBEBD5 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 03846B9F44BF1972C83E25FA /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -503,7 +503,7 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 852F0F85D91CEA16909BD3A8 /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 5EE7E79790EC7251679ADEAC /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; diff --git a/boring_to_beautiful/step_07/macos/Runner/AppDelegate.swift b/boring_to_beautiful/step_07/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/boring_to_beautiful/step_07/macos/Runner/AppDelegate.swift +++ b/boring_to_beautiful/step_07/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/flutter_ci_script_master.sh b/flutter_ci_script_master.sh index 580010df14..5c79cdcddd 100755 --- a/flutter_ci_script_master.sh +++ b/flutter_ci_script_master.sh @@ -27,7 +27,8 @@ declare -a CODELABS=( "homescreen_codelab" "in_app_purchases" "namer" - "next-gen-ui" + # TODO(domesticmouse): Color.red/green/blue are deprecated + # "next-gen-ui" "testing_codelab" "tfagents-flutter" "tfrs-flutter" diff --git a/forge2d_game/codelab_rebuild.yaml b/forge2d_game/codelab_rebuild.yaml index 94e7281e32..693b3acacd 100644 --- a/forge2d_game/codelab_rebuild.yaml +++ b/forge2d_game/codelab_rebuild.yaml @@ -12487,7 +12487,7 @@ steps: center, center + (player.dragDelta * -1).toOffset(), Paint() - ..color = Colors.orange.withOpacity(0.7) + ..color = Colors.orange.withAlpha(180) ..strokeWidth = 0.4 ..strokeCap = StrokeCap.round); } diff --git a/forge2d_game/step_02/.gitignore b/forge2d_game/step_02/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/forge2d_game/step_02/.gitignore +++ b/forge2d_game/step_02/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/forge2d_game/step_02/android/gradle/wrapper/gradle-wrapper.properties b/forge2d_game/step_02/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/forge2d_game/step_02/android/gradle/wrapper/gradle-wrapper.properties +++ b/forge2d_game/step_02/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/forge2d_game/step_02/android/settings.gradle b/forge2d_game/step_02/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/forge2d_game/step_02/android/settings.gradle +++ b/forge2d_game/step_02/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/forge2d_game/step_02/macos/Runner/AppDelegate.swift b/forge2d_game/step_02/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/forge2d_game/step_02/macos/Runner/AppDelegate.swift +++ b/forge2d_game/step_02/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/forge2d_game/step_03/.gitignore b/forge2d_game/step_03/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/forge2d_game/step_03/.gitignore +++ b/forge2d_game/step_03/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/forge2d_game/step_03/android/gradle/wrapper/gradle-wrapper.properties b/forge2d_game/step_03/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/forge2d_game/step_03/android/gradle/wrapper/gradle-wrapper.properties +++ b/forge2d_game/step_03/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/forge2d_game/step_03/android/settings.gradle b/forge2d_game/step_03/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/forge2d_game/step_03/android/settings.gradle +++ b/forge2d_game/step_03/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/forge2d_game/step_03/macos/Runner/AppDelegate.swift b/forge2d_game/step_03/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/forge2d_game/step_03/macos/Runner/AppDelegate.swift +++ b/forge2d_game/step_03/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/forge2d_game/step_04/.gitignore b/forge2d_game/step_04/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/forge2d_game/step_04/.gitignore +++ b/forge2d_game/step_04/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/forge2d_game/step_04/android/gradle/wrapper/gradle-wrapper.properties b/forge2d_game/step_04/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/forge2d_game/step_04/android/gradle/wrapper/gradle-wrapper.properties +++ b/forge2d_game/step_04/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/forge2d_game/step_04/android/settings.gradle b/forge2d_game/step_04/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/forge2d_game/step_04/android/settings.gradle +++ b/forge2d_game/step_04/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/forge2d_game/step_04/macos/Runner/AppDelegate.swift b/forge2d_game/step_04/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/forge2d_game/step_04/macos/Runner/AppDelegate.swift +++ b/forge2d_game/step_04/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/forge2d_game/step_05/.gitignore b/forge2d_game/step_05/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/forge2d_game/step_05/.gitignore +++ b/forge2d_game/step_05/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/forge2d_game/step_05/android/gradle/wrapper/gradle-wrapper.properties b/forge2d_game/step_05/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/forge2d_game/step_05/android/gradle/wrapper/gradle-wrapper.properties +++ b/forge2d_game/step_05/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/forge2d_game/step_05/android/settings.gradle b/forge2d_game/step_05/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/forge2d_game/step_05/android/settings.gradle +++ b/forge2d_game/step_05/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/forge2d_game/step_05/macos/Runner/AppDelegate.swift b/forge2d_game/step_05/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/forge2d_game/step_05/macos/Runner/AppDelegate.swift +++ b/forge2d_game/step_05/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/forge2d_game/step_06/.gitignore b/forge2d_game/step_06/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/forge2d_game/step_06/.gitignore +++ b/forge2d_game/step_06/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/forge2d_game/step_06/android/gradle/wrapper/gradle-wrapper.properties b/forge2d_game/step_06/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/forge2d_game/step_06/android/gradle/wrapper/gradle-wrapper.properties +++ b/forge2d_game/step_06/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/forge2d_game/step_06/android/settings.gradle b/forge2d_game/step_06/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/forge2d_game/step_06/android/settings.gradle +++ b/forge2d_game/step_06/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/forge2d_game/step_06/lib/components/player.dart b/forge2d_game/step_06/lib/components/player.dart index c27828fe1c..b53002b11e 100644 --- a/forge2d_game/step_06/lib/components/player.dart +++ b/forge2d_game/step_06/lib/components/player.dart @@ -132,7 +132,7 @@ class _DragPainter extends CustomPainter { center, center + (player.dragDelta * -1).toOffset(), Paint() - ..color = Colors.orange.withOpacity(0.7) + ..color = Colors.orange.withAlpha(180) ..strokeWidth = 0.4 ..strokeCap = StrokeCap.round); } diff --git a/forge2d_game/step_06/macos/Runner/AppDelegate.swift b/forge2d_game/step_06/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/forge2d_game/step_06/macos/Runner/AppDelegate.swift +++ b/forge2d_game/step_06/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/forge2d_game/step_07/.gitignore b/forge2d_game/step_07/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/forge2d_game/step_07/.gitignore +++ b/forge2d_game/step_07/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/forge2d_game/step_07/android/gradle/wrapper/gradle-wrapper.properties b/forge2d_game/step_07/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/forge2d_game/step_07/android/gradle/wrapper/gradle-wrapper.properties +++ b/forge2d_game/step_07/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/forge2d_game/step_07/android/settings.gradle b/forge2d_game/step_07/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/forge2d_game/step_07/android/settings.gradle +++ b/forge2d_game/step_07/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/forge2d_game/step_07/lib/components/player.dart b/forge2d_game/step_07/lib/components/player.dart index 2b5e616753..4c9989b447 100644 --- a/forge2d_game/step_07/lib/components/player.dart +++ b/forge2d_game/step_07/lib/components/player.dart @@ -134,7 +134,7 @@ class _DragPainter extends CustomPainter { center, center + (player.dragDelta * -1).toOffset(), Paint() - ..color = Colors.orange.withOpacity(0.7) + ..color = Colors.orange.withAlpha(180) ..strokeWidth = 0.4 ..strokeCap = StrokeCap.round); } diff --git a/forge2d_game/step_07/macos/Runner/AppDelegate.swift b/forge2d_game/step_07/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/forge2d_game/step_07/macos/Runner/AppDelegate.swift +++ b/forge2d_game/step_07/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/next-gen-ui/codelab_rebuild.yaml b/next-gen-ui/codelab_rebuild.yaml index 70154db44d..814d9c19a2 100644 --- a/next-gen-ui/codelab_rebuild.yaml +++ b/next-gen-ui/codelab_rebuild.yaml @@ -2162,7 +2162,7 @@ steps: + /// Bg with fill and outline + Container( + decoration: BoxDecoration( - + color: const Color(0xFF00D1FF).withOpacity(.1), + + color: const Color(0xFF00D1FF).withAlpha(25), + border: Border.all(color: Colors.white, width: 5), + ), + ), @@ -2170,7 +2170,7 @@ steps: + if (state.isHovered || state.isFocused) ...[ + Container( + decoration: BoxDecoration( - + color: const Color(0xFF00D1FF).withOpacity(.1), + + color: const Color(0xFF00D1FF).withAlpha(25), + ), + ), + ], @@ -2587,7 +2587,7 @@ steps: /// Bg with fill and outline - Container( - decoration: BoxDecoration( - - color: const Color(0xFF00D1FF).withOpacity(.1), + - color: const Color(0xFF00D1FF).withAlpha(25), - border: Border.all(color: Colors.white, width: 5), + AnimatedOpacity( + opacity: (!selected && (state.isHovered || state.isFocused)) @@ -2596,7 +2596,7 @@ steps: + duration: .3.seconds, + child: Container( + decoration: BoxDecoration( - + color: const Color(0xFF00D1FF).withOpacity(.1), + + color: const Color(0xFF00D1FF).withAlpha(25), + border: Border.all(color: Colors.white, width: 5), + ), ), @@ -3360,7 +3360,7 @@ steps: scale: p.scale * 1.025, vx: p.vx * 1.025, vy: p.vy * 1.025, - color: color.withOpacity(p.lifespan * 0.001 + 0.01), + color: color.withAlpha((p.lifespan * 0.255 + 2.55).ceil()), lifespan: p.lifespan - 1, ); } diff --git a/next-gen-ui/step_01/.gitignore b/next-gen-ui/step_01/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/next-gen-ui/step_01/.gitignore +++ b/next-gen-ui/step_01/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/next-gen-ui/step_01/android/gradle/wrapper/gradle-wrapper.properties b/next-gen-ui/step_01/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/next-gen-ui/step_01/android/gradle/wrapper/gradle-wrapper.properties +++ b/next-gen-ui/step_01/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/next-gen-ui/step_01/android/settings.gradle b/next-gen-ui/step_01/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/next-gen-ui/step_01/android/settings.gradle +++ b/next-gen-ui/step_01/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/next-gen-ui/step_01/macos/Runner/AppDelegate.swift b/next-gen-ui/step_01/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/next-gen-ui/step_01/macos/Runner/AppDelegate.swift +++ b/next-gen-ui/step_01/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/next-gen-ui/step_02_a/.gitignore b/next-gen-ui/step_02_a/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/next-gen-ui/step_02_a/.gitignore +++ b/next-gen-ui/step_02_a/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/next-gen-ui/step_02_a/android/gradle/wrapper/gradle-wrapper.properties b/next-gen-ui/step_02_a/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/next-gen-ui/step_02_a/android/gradle/wrapper/gradle-wrapper.properties +++ b/next-gen-ui/step_02_a/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/next-gen-ui/step_02_a/android/settings.gradle b/next-gen-ui/step_02_a/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/next-gen-ui/step_02_a/android/settings.gradle +++ b/next-gen-ui/step_02_a/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/next-gen-ui/step_02_a/macos/Runner/AppDelegate.swift b/next-gen-ui/step_02_a/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/next-gen-ui/step_02_a/macos/Runner/AppDelegate.swift +++ b/next-gen-ui/step_02_a/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/next-gen-ui/step_02_b/.gitignore b/next-gen-ui/step_02_b/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/next-gen-ui/step_02_b/.gitignore +++ b/next-gen-ui/step_02_b/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/next-gen-ui/step_02_b/android/gradle/wrapper/gradle-wrapper.properties b/next-gen-ui/step_02_b/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/next-gen-ui/step_02_b/android/gradle/wrapper/gradle-wrapper.properties +++ b/next-gen-ui/step_02_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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/next-gen-ui/step_02_b/android/settings.gradle b/next-gen-ui/step_02_b/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/next-gen-ui/step_02_b/android/settings.gradle +++ b/next-gen-ui/step_02_b/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/next-gen-ui/step_02_b/macos/Runner/AppDelegate.swift b/next-gen-ui/step_02_b/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/next-gen-ui/step_02_b/macos/Runner/AppDelegate.swift +++ b/next-gen-ui/step_02_b/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/next-gen-ui/step_02_c/.gitignore b/next-gen-ui/step_02_c/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/next-gen-ui/step_02_c/.gitignore +++ b/next-gen-ui/step_02_c/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/next-gen-ui/step_02_c/android/gradle/wrapper/gradle-wrapper.properties b/next-gen-ui/step_02_c/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/next-gen-ui/step_02_c/android/gradle/wrapper/gradle-wrapper.properties +++ b/next-gen-ui/step_02_c/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/next-gen-ui/step_02_c/android/settings.gradle b/next-gen-ui/step_02_c/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/next-gen-ui/step_02_c/android/settings.gradle +++ b/next-gen-ui/step_02_c/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/next-gen-ui/step_02_c/macos/Runner/AppDelegate.swift b/next-gen-ui/step_02_c/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/next-gen-ui/step_02_c/macos/Runner/AppDelegate.swift +++ b/next-gen-ui/step_02_c/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/next-gen-ui/step_03_a/.gitignore b/next-gen-ui/step_03_a/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/next-gen-ui/step_03_a/.gitignore +++ b/next-gen-ui/step_03_a/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/next-gen-ui/step_03_a/android/gradle/wrapper/gradle-wrapper.properties b/next-gen-ui/step_03_a/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/next-gen-ui/step_03_a/android/gradle/wrapper/gradle-wrapper.properties +++ b/next-gen-ui/step_03_a/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/next-gen-ui/step_03_a/android/settings.gradle b/next-gen-ui/step_03_a/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/next-gen-ui/step_03_a/android/settings.gradle +++ b/next-gen-ui/step_03_a/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/next-gen-ui/step_03_a/macos/Runner/AppDelegate.swift b/next-gen-ui/step_03_a/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/next-gen-ui/step_03_a/macos/Runner/AppDelegate.swift +++ b/next-gen-ui/step_03_a/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/next-gen-ui/step_03_b/.gitignore b/next-gen-ui/step_03_b/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/next-gen-ui/step_03_b/.gitignore +++ b/next-gen-ui/step_03_b/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/next-gen-ui/step_03_b/android/gradle/wrapper/gradle-wrapper.properties b/next-gen-ui/step_03_b/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/next-gen-ui/step_03_b/android/gradle/wrapper/gradle-wrapper.properties +++ b/next-gen-ui/step_03_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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/next-gen-ui/step_03_b/android/settings.gradle b/next-gen-ui/step_03_b/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/next-gen-ui/step_03_b/android/settings.gradle +++ b/next-gen-ui/step_03_b/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/next-gen-ui/step_03_b/lib/title_screen/title_screen_ui.dart b/next-gen-ui/step_03_b/lib/title_screen/title_screen_ui.dart index 585c1db4eb..5ab4f262e2 100644 --- a/next-gen-ui/step_03_b/lib/title_screen/title_screen_ui.dart +++ b/next-gen-ui/step_03_b/lib/title_screen/title_screen_ui.dart @@ -150,7 +150,7 @@ class _DifficultyBtn extends StatelessWidget { /// Bg with fill and outline Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), border: Border.all(color: Colors.white, width: 5), ), ), @@ -158,7 +158,7 @@ class _DifficultyBtn extends StatelessWidget { if (state.isHovered || state.isFocused) ...[ Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), ), ), ], diff --git a/next-gen-ui/step_03_b/macos/Runner/AppDelegate.swift b/next-gen-ui/step_03_b/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/next-gen-ui/step_03_b/macos/Runner/AppDelegate.swift +++ b/next-gen-ui/step_03_b/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/next-gen-ui/step_03_c/.gitignore b/next-gen-ui/step_03_c/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/next-gen-ui/step_03_c/.gitignore +++ b/next-gen-ui/step_03_c/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/next-gen-ui/step_03_c/android/gradle/wrapper/gradle-wrapper.properties b/next-gen-ui/step_03_c/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/next-gen-ui/step_03_c/android/gradle/wrapper/gradle-wrapper.properties +++ b/next-gen-ui/step_03_c/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/next-gen-ui/step_03_c/android/settings.gradle b/next-gen-ui/step_03_c/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/next-gen-ui/step_03_c/android/settings.gradle +++ b/next-gen-ui/step_03_c/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/next-gen-ui/step_03_c/lib/title_screen/title_screen_ui.dart b/next-gen-ui/step_03_c/lib/title_screen/title_screen_ui.dart index d8a43373dd..c2e83197c3 100644 --- a/next-gen-ui/step_03_c/lib/title_screen/title_screen_ui.dart +++ b/next-gen-ui/step_03_c/lib/title_screen/title_screen_ui.dart @@ -161,7 +161,7 @@ class _DifficultyBtn extends StatelessWidget { /// Bg with fill and outline Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), border: Border.all(color: Colors.white, width: 5), ), ), @@ -169,7 +169,7 @@ class _DifficultyBtn extends StatelessWidget { if (state.isHovered || state.isFocused) ...[ Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), ), ), ], diff --git a/next-gen-ui/step_03_c/macos/Runner/AppDelegate.swift b/next-gen-ui/step_03_c/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/next-gen-ui/step_03_c/macos/Runner/AppDelegate.swift +++ b/next-gen-ui/step_03_c/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/next-gen-ui/step_04_a/.gitignore b/next-gen-ui/step_04_a/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/next-gen-ui/step_04_a/.gitignore +++ b/next-gen-ui/step_04_a/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/next-gen-ui/step_04_a/android/gradle/wrapper/gradle-wrapper.properties b/next-gen-ui/step_04_a/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/next-gen-ui/step_04_a/android/gradle/wrapper/gradle-wrapper.properties +++ b/next-gen-ui/step_04_a/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/next-gen-ui/step_04_a/android/settings.gradle b/next-gen-ui/step_04_a/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/next-gen-ui/step_04_a/android/settings.gradle +++ b/next-gen-ui/step_04_a/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/next-gen-ui/step_04_a/lib/title_screen/title_screen_ui.dart b/next-gen-ui/step_04_a/lib/title_screen/title_screen_ui.dart index 99693bf450..8643ec908b 100644 --- a/next-gen-ui/step_04_a/lib/title_screen/title_screen_ui.dart +++ b/next-gen-ui/step_04_a/lib/title_screen/title_screen_ui.dart @@ -164,7 +164,7 @@ class _DifficultyBtn extends StatelessWidget { /// Bg with fill and outline Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), border: Border.all(color: Colors.white, width: 5), ), ), @@ -172,7 +172,7 @@ class _DifficultyBtn extends StatelessWidget { if (state.isHovered || state.isFocused) ...[ Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), ), ), ], diff --git a/next-gen-ui/step_04_a/macos/Runner/AppDelegate.swift b/next-gen-ui/step_04_a/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/next-gen-ui/step_04_a/macos/Runner/AppDelegate.swift +++ b/next-gen-ui/step_04_a/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/next-gen-ui/step_04_b/.gitignore b/next-gen-ui/step_04_b/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/next-gen-ui/step_04_b/.gitignore +++ b/next-gen-ui/step_04_b/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/next-gen-ui/step_04_b/android/gradle/wrapper/gradle-wrapper.properties b/next-gen-ui/step_04_b/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/next-gen-ui/step_04_b/android/gradle/wrapper/gradle-wrapper.properties +++ b/next-gen-ui/step_04_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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/next-gen-ui/step_04_b/android/settings.gradle b/next-gen-ui/step_04_b/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/next-gen-ui/step_04_b/android/settings.gradle +++ b/next-gen-ui/step_04_b/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/next-gen-ui/step_04_b/lib/title_screen/title_screen_ui.dart b/next-gen-ui/step_04_b/lib/title_screen/title_screen_ui.dart index 0ab47845a6..ca3cfdba90 100644 --- a/next-gen-ui/step_04_b/lib/title_screen/title_screen_ui.dart +++ b/next-gen-ui/step_04_b/lib/title_screen/title_screen_ui.dart @@ -173,7 +173,7 @@ class _DifficultyBtn extends StatelessWidget { /// Bg with fill and outline Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), border: Border.all(color: Colors.white, width: 5), ), ), @@ -181,7 +181,7 @@ class _DifficultyBtn extends StatelessWidget { if (state.isHovered || state.isFocused) ...[ Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), ), ), ], diff --git a/next-gen-ui/step_04_b/macos/Runner/AppDelegate.swift b/next-gen-ui/step_04_b/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/next-gen-ui/step_04_b/macos/Runner/AppDelegate.swift +++ b/next-gen-ui/step_04_b/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/next-gen-ui/step_04_c/.gitignore b/next-gen-ui/step_04_c/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/next-gen-ui/step_04_c/.gitignore +++ b/next-gen-ui/step_04_c/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/next-gen-ui/step_04_c/android/gradle/wrapper/gradle-wrapper.properties b/next-gen-ui/step_04_c/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/next-gen-ui/step_04_c/android/gradle/wrapper/gradle-wrapper.properties +++ b/next-gen-ui/step_04_c/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/next-gen-ui/step_04_c/android/settings.gradle b/next-gen-ui/step_04_c/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/next-gen-ui/step_04_c/android/settings.gradle +++ b/next-gen-ui/step_04_c/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/next-gen-ui/step_04_c/lib/title_screen/title_screen_ui.dart b/next-gen-ui/step_04_c/lib/title_screen/title_screen_ui.dart index a08d21e2ca..4b08343cb0 100644 --- a/next-gen-ui/step_04_c/lib/title_screen/title_screen_ui.dart +++ b/next-gen-ui/step_04_c/lib/title_screen/title_screen_ui.dart @@ -173,7 +173,7 @@ class _DifficultyBtn extends StatelessWidget { /// Bg with fill and outline Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), border: Border.all(color: Colors.white, width: 5), ), ), @@ -181,7 +181,7 @@ class _DifficultyBtn extends StatelessWidget { if (state.isHovered || state.isFocused) ...[ Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), ), ), ], diff --git a/next-gen-ui/step_04_c/macos/Runner/AppDelegate.swift b/next-gen-ui/step_04_c/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/next-gen-ui/step_04_c/macos/Runner/AppDelegate.swift +++ b/next-gen-ui/step_04_c/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/next-gen-ui/step_04_d/.gitignore b/next-gen-ui/step_04_d/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/next-gen-ui/step_04_d/.gitignore +++ b/next-gen-ui/step_04_d/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/next-gen-ui/step_04_d/android/gradle/wrapper/gradle-wrapper.properties b/next-gen-ui/step_04_d/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/next-gen-ui/step_04_d/android/gradle/wrapper/gradle-wrapper.properties +++ b/next-gen-ui/step_04_d/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/next-gen-ui/step_04_d/android/settings.gradle b/next-gen-ui/step_04_d/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/next-gen-ui/step_04_d/android/settings.gradle +++ b/next-gen-ui/step_04_d/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/next-gen-ui/step_04_d/lib/title_screen/title_screen_ui.dart b/next-gen-ui/step_04_d/lib/title_screen/title_screen_ui.dart index 5900a6b630..c83f15dde4 100644 --- a/next-gen-ui/step_04_d/lib/title_screen/title_screen_ui.dart +++ b/next-gen-ui/step_04_d/lib/title_screen/title_screen_ui.dart @@ -178,7 +178,7 @@ class _DifficultyBtn extends StatelessWidget { duration: .3.seconds, child: Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), border: Border.all(color: Colors.white, width: 5), ), ), @@ -187,7 +187,7 @@ class _DifficultyBtn extends StatelessWidget { if (state.isHovered || state.isFocused) ...[ Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), ), ), ], diff --git a/next-gen-ui/step_04_d/macos/Runner/AppDelegate.swift b/next-gen-ui/step_04_d/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/next-gen-ui/step_04_d/macos/Runner/AppDelegate.swift +++ b/next-gen-ui/step_04_d/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/next-gen-ui/step_04_e/.gitignore b/next-gen-ui/step_04_e/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/next-gen-ui/step_04_e/.gitignore +++ b/next-gen-ui/step_04_e/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/next-gen-ui/step_04_e/android/gradle/wrapper/gradle-wrapper.properties b/next-gen-ui/step_04_e/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/next-gen-ui/step_04_e/android/gradle/wrapper/gradle-wrapper.properties +++ b/next-gen-ui/step_04_e/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/next-gen-ui/step_04_e/android/settings.gradle b/next-gen-ui/step_04_e/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/next-gen-ui/step_04_e/android/settings.gradle +++ b/next-gen-ui/step_04_e/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/next-gen-ui/step_04_e/lib/title_screen/title_screen_ui.dart b/next-gen-ui/step_04_e/lib/title_screen/title_screen_ui.dart index 5900a6b630..c83f15dde4 100644 --- a/next-gen-ui/step_04_e/lib/title_screen/title_screen_ui.dart +++ b/next-gen-ui/step_04_e/lib/title_screen/title_screen_ui.dart @@ -178,7 +178,7 @@ class _DifficultyBtn extends StatelessWidget { duration: .3.seconds, child: Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), border: Border.all(color: Colors.white, width: 5), ), ), @@ -187,7 +187,7 @@ class _DifficultyBtn extends StatelessWidget { if (state.isHovered || state.isFocused) ...[ Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), ), ), ], diff --git a/next-gen-ui/step_04_e/macos/Runner/AppDelegate.swift b/next-gen-ui/step_04_e/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/next-gen-ui/step_04_e/macos/Runner/AppDelegate.swift +++ b/next-gen-ui/step_04_e/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/next-gen-ui/step_05_a/.gitignore b/next-gen-ui/step_05_a/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/next-gen-ui/step_05_a/.gitignore +++ b/next-gen-ui/step_05_a/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/next-gen-ui/step_05_a/android/gradle/wrapper/gradle-wrapper.properties b/next-gen-ui/step_05_a/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/next-gen-ui/step_05_a/android/gradle/wrapper/gradle-wrapper.properties +++ b/next-gen-ui/step_05_a/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/next-gen-ui/step_05_a/android/settings.gradle b/next-gen-ui/step_05_a/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/next-gen-ui/step_05_a/android/settings.gradle +++ b/next-gen-ui/step_05_a/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/next-gen-ui/step_05_a/lib/title_screen/title_screen_ui.dart b/next-gen-ui/step_05_a/lib/title_screen/title_screen_ui.dart index 600887404a..3bf7e64717 100644 --- a/next-gen-ui/step_05_a/lib/title_screen/title_screen_ui.dart +++ b/next-gen-ui/step_05_a/lib/title_screen/title_screen_ui.dart @@ -205,7 +205,7 @@ class _DifficultyBtn extends StatelessWidget { duration: .3.seconds, child: Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), border: Border.all(color: Colors.white, width: 5), ), ), @@ -214,7 +214,7 @@ class _DifficultyBtn extends StatelessWidget { if (state.isHovered || state.isFocused) ...[ Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), ), ), ], diff --git a/next-gen-ui/step_05_a/macos/Runner/AppDelegate.swift b/next-gen-ui/step_05_a/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/next-gen-ui/step_05_a/macos/Runner/AppDelegate.swift +++ b/next-gen-ui/step_05_a/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/next-gen-ui/step_05_b/.gitignore b/next-gen-ui/step_05_b/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/next-gen-ui/step_05_b/.gitignore +++ b/next-gen-ui/step_05_b/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/next-gen-ui/step_05_b/android/gradle/wrapper/gradle-wrapper.properties b/next-gen-ui/step_05_b/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/next-gen-ui/step_05_b/android/gradle/wrapper/gradle-wrapper.properties +++ b/next-gen-ui/step_05_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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/next-gen-ui/step_05_b/android/settings.gradle b/next-gen-ui/step_05_b/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/next-gen-ui/step_05_b/android/settings.gradle +++ b/next-gen-ui/step_05_b/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/next-gen-ui/step_05_b/lib/title_screen/title_screen_ui.dart b/next-gen-ui/step_05_b/lib/title_screen/title_screen_ui.dart index d44c331391..4a7dd6ea7f 100644 --- a/next-gen-ui/step_05_b/lib/title_screen/title_screen_ui.dart +++ b/next-gen-ui/step_05_b/lib/title_screen/title_screen_ui.dart @@ -207,7 +207,7 @@ class _DifficultyBtn extends StatelessWidget { duration: .3.seconds, child: Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), border: Border.all(color: Colors.white, width: 5), ), ), @@ -216,7 +216,7 @@ class _DifficultyBtn extends StatelessWidget { if (state.isHovered || state.isFocused) ...[ Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), ), ), ], diff --git a/next-gen-ui/step_05_b/macos/Runner/AppDelegate.swift b/next-gen-ui/step_05_b/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/next-gen-ui/step_05_b/macos/Runner/AppDelegate.swift +++ b/next-gen-ui/step_05_b/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/next-gen-ui/step_06/.gitignore b/next-gen-ui/step_06/.gitignore index 29a3a5017f..79c113f9b5 100644 --- a/next-gen-ui/step_06/.gitignore +++ b/next-gen-ui/step_06/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/next-gen-ui/step_06/android/gradle/wrapper/gradle-wrapper.properties b/next-gen-ui/step_06/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef0..7bb2df6ba6 100644 --- a/next-gen-ui/step_06/android/gradle/wrapper/gradle-wrapper.properties +++ b/next-gen-ui/step_06/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-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/next-gen-ui/step_06/android/settings.gradle b/next-gen-ui/step_06/android/settings.gradle index 536165d35a..b9e43bd376 100644 --- a/next-gen-ui/step_06/android/settings.gradle +++ b/next-gen-ui/step_06/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { 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.10" apply false + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app" diff --git a/next-gen-ui/step_06/lib/title_screen/particle_overlay.dart b/next-gen-ui/step_06/lib/title_screen/particle_overlay.dart index cc540f3332..52d6a1c8a8 100644 --- a/next-gen-ui/step_06/lib/title_screen/particle_overlay.dart +++ b/next-gen-ui/step_06/lib/title_screen/particle_overlay.dart @@ -57,7 +57,7 @@ class ParticleOverlay extends StatelessWidget { scale: p.scale * 1.025, vx: p.vx * 1.025, vy: p.vy * 1.025, - color: color.withOpacity(p.lifespan * 0.001 + 0.01), + color: color.withAlpha((p.lifespan * 0.255 + 2.55).ceil()), lifespan: p.lifespan - 1, ); } diff --git a/next-gen-ui/step_06/lib/title_screen/title_screen_ui.dart b/next-gen-ui/step_06/lib/title_screen/title_screen_ui.dart index d44c331391..4a7dd6ea7f 100644 --- a/next-gen-ui/step_06/lib/title_screen/title_screen_ui.dart +++ b/next-gen-ui/step_06/lib/title_screen/title_screen_ui.dart @@ -207,7 +207,7 @@ class _DifficultyBtn extends StatelessWidget { duration: .3.seconds, child: Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), border: Border.all(color: Colors.white, width: 5), ), ), @@ -216,7 +216,7 @@ class _DifficultyBtn extends StatelessWidget { if (state.isHovered || state.isFocused) ...[ Container( decoration: BoxDecoration( - color: const Color(0xFF00D1FF).withOpacity(.1), + color: const Color(0xFF00D1FF).withAlpha(25), ), ), ], diff --git a/next-gen-ui/step_06/macos/Runner/AppDelegate.swift b/next-gen-ui/step_06/macos/Runner/AppDelegate.swift index 8e02df2888..b3c1761412 100644 --- a/next-gen-ui/step_06/macos/Runner/AppDelegate.swift +++ b/next-gen-ui/step_06/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } }