diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index d219f022e4a..e280a0b4272 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -25,7 +25,7 @@ jobs:
fail-fast: false
matrix:
flutter_version: [stable, beta]
- os: [ubuntu-latest, macos-latest, windows-latest]
+ os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00
diff --git a/experimental/README.md b/experimental/README.md
index 320abf4d8bb..b67d4a41009 100644
--- a/experimental/README.md
+++ b/experimental/README.md
@@ -3,34 +3,3 @@
The `experimental` directory has been deprecated. All samples within have been deleted or moved to [github.com/flutter/demos][]
----
-
-
-# Master channel samples
-
-In this directory, you'll find samples that target Flutter's master channel.
-They may take advantage of new SDK features that haven't landed in the
-stable channel, and they may crash, lock up your machine, or otherwise fail to
-run correctly. In other words, consider everything in this directory to be an
-experiment.
-
-We're maintaining these samples here so that folks can see some of Flutter's
-upcoming features as they evolve and get a sense for how they'll eventually
-be used. If you'd like to run the apps, make sure to switch to the master
-channel first:
-
-```bash
-flutter channel master
-flutter upgrade
-```
-
-When you're done, use this command to return to the safety of the stable
-channel:
-
-```bash
-flutter channel stable
-```
-
-## Want more info about the repo in general?
-
-See the [README](../README.md) in the repo's root folder.
diff --git a/flutter_maps_firestore/README.md b/flutter_maps_firestore/README.md
new file mode 100644
index 00000000000..e0142d7ce49
--- /dev/null
+++ b/flutter_maps_firestore/README.md
@@ -0,0 +1,3 @@
+# Sample deprecated
+
+The `flutter_maps_firestore` sample has been deprecated.
diff --git a/infinite_list/pubspec.yaml b/infinite_list/pubspec.yaml
index e439b822fd0..fc6b8319916 100644
--- a/infinite_list/pubspec.yaml
+++ b/infinite_list/pubspec.yaml
@@ -12,7 +12,7 @@ dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.2
- meta: 1.16.0
+ meta: ^1.16.0
provider: ^6.0.2
window_size:
git:
diff --git a/pubspec.yaml b/pubspec.yaml
index d4a2d4a9c0a..4331ab13431 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -46,6 +46,5 @@ workspace:
- simplistic_editor
- testing_app
- tool
- - veggieseasons
- web_embedding/element_embedding_demo
- web_embedding/ng-flutter/flutter
diff --git a/veggieseasons/.gitignore b/veggieseasons/.gitignore
deleted file mode 100644
index 0542173302c..00000000000
--- a/veggieseasons/.gitignore
+++ /dev/null
@@ -1,45 +0,0 @@
-# This app is designed to show how to use Flutter's cupertino package to build UI for iOS. It's not intended to run on Android, desktop, or web.
-android
-
-# Miscellaneous
-*.class
-*.log
-*.pyc
-*.swp
-.DS_Store
-.atom/
-.buildlog/
-.history
-.svn/
-
-# IntelliJ related
-*.iml
-*.ipr
-*.iws
-.idea/
-
-# Visual Studio Code related
-.vscode/
-
-# Flutter/Dart/Pub related
-**/doc/api/
-**/ios/Flutter/.last_build_id
-.dart_tool/
-.flutter-plugins
-.flutter-plugins-dependencies
-.packages
-.pub-cache/
-.pub/
-/build/
-
-# Web related
-lib/generated_plugin_registrant.dart
-
-# Symbolication related
-app.*.symbols
-
-# Obfuscation related
-app.*.map.json
-
-# Exceptions to above rules.
-!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
diff --git a/veggieseasons/.metadata b/veggieseasons/.metadata
deleted file mode 100644
index 9c1959ee017..00000000000
--- a/veggieseasons/.metadata
+++ /dev/null
@@ -1,33 +0,0 @@
-# This file tracks properties of this Flutter project.
-# Used by Flutter tool to assess capabilities and perform upgrades etc.
-#
-# This file should be version controlled and should not be manually edited.
-
-version:
- revision: "5874a72aa4c779a02553007c47dacbefba2374dc"
- channel: "stable"
-
-project_type: app
-
-# Tracks metadata for the flutter migrate command
-migration:
- platforms:
- - platform: root
- create_revision: 5874a72aa4c779a02553007c47dacbefba2374dc
- base_revision: 5874a72aa4c779a02553007c47dacbefba2374dc
- - platform: ios
- create_revision: 5874a72aa4c779a02553007c47dacbefba2374dc
- base_revision: 5874a72aa4c779a02553007c47dacbefba2374dc
- - platform: macos
- create_revision: 5874a72aa4c779a02553007c47dacbefba2374dc
- base_revision: 5874a72aa4c779a02553007c47dacbefba2374dc
-
- # User provided section
-
- # List of Local paths (relative to this file) that should be
- # ignored by the migrate tool.
- #
- # Files that are not part of the templates will be ignored by default.
- unmanaged_files:
- - 'lib/main.dart'
- - 'ios/Runner.xcodeproj/project.pbxproj'
diff --git a/veggieseasons/README.md b/veggieseasons/README.md
index bf21b079989..791cef3ec5a 100644
--- a/veggieseasons/README.md
+++ b/veggieseasons/README.md
@@ -1,33 +1,3 @@
-# Veggie Seasons
+# Sample deprecated
-An iOS sample app that shows which fruits and vegetables are currently in season. It
-showcases Flutter's Cupertino package.
-
-**NOTE:** While Flutter supports many platforms, this application is designed
-specifically for iOS. It's not intended to be run on Android, web, or desktop.
-
-## Goals
-
-* Show how to build an interface that iOS users will feel right at home
- with.
-* Show how Flutter's Cupertino widgets work together.
-
-## The important bits
-
-### `/screens/*`
-
-These are the screens presented in the app, roughly analogous to
-UIViewControllers. `HomeScreen` is the root, and the others are shown
-as the user navigates.
-
-## Questions/issues
-
-If you have a general question about any of the techniques you see in
-the sample, the best places to go are:
-
-* [The FlutterDev Google Group](https://groups.google.com/forum/#!forum/flutter-dev)
-* [The Flutter Gitter channel](https://gitter.im/flutter/flutter)
-* [StackOverflow](https://stackoverflow.com/questions/tagged/flutter)
-
-If you run into an issue with the sample itself, please file an issue
-in the [main Flutter repo](https://github.com/flutter/flutter/issues).
+The `veggieseasons` sample has been deprecated. It now lives in the [flutter/demos](https://github.com/flutter/demos) repository, where it will no longer be maintained.
\ No newline at end of file
diff --git a/veggieseasons/analysis_options.yaml b/veggieseasons/analysis_options.yaml
deleted file mode 100644
index e99e9ce280c..00000000000
--- a/veggieseasons/analysis_options.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-include: package:analysis_defaults/flutter.yaml
-
-linter:
- rules:
- - prefer_relative_imports
\ No newline at end of file
diff --git a/veggieseasons/assets/fonts/NotoSans-Bold.ttf b/veggieseasons/assets/fonts/NotoSans-Bold.ttf
deleted file mode 100755
index 6e00cdce1da..00000000000
Binary files a/veggieseasons/assets/fonts/NotoSans-Bold.ttf and /dev/null differ
diff --git a/veggieseasons/assets/fonts/NotoSans-BoldItalic.ttf b/veggieseasons/assets/fonts/NotoSans-BoldItalic.ttf
deleted file mode 100755
index 51b7b29568f..00000000000
Binary files a/veggieseasons/assets/fonts/NotoSans-BoldItalic.ttf and /dev/null differ
diff --git a/veggieseasons/assets/fonts/NotoSans-Italic.ttf b/veggieseasons/assets/fonts/NotoSans-Italic.ttf
deleted file mode 100755
index dc93fea6cf3..00000000000
Binary files a/veggieseasons/assets/fonts/NotoSans-Italic.ttf and /dev/null differ
diff --git a/veggieseasons/assets/fonts/NotoSans-Regular.ttf b/veggieseasons/assets/fonts/NotoSans-Regular.ttf
deleted file mode 100755
index 9dd10199bc8..00000000000
Binary files a/veggieseasons/assets/fonts/NotoSans-Regular.ttf and /dev/null differ
diff --git a/veggieseasons/assets/icon/launcher_icon.png b/veggieseasons/assets/icon/launcher_icon.png
deleted file mode 100644
index 73c1b01dcb3..00000000000
Binary files a/veggieseasons/assets/icon/launcher_icon.png and /dev/null differ
diff --git a/veggieseasons/assets/images/apple.jpg b/veggieseasons/assets/images/apple.jpg
deleted file mode 100644
index 73058807011..00000000000
Binary files a/veggieseasons/assets/images/apple.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/artichoke.jpg b/veggieseasons/assets/images/artichoke.jpg
deleted file mode 100644
index 43337dda5f4..00000000000
Binary files a/veggieseasons/assets/images/artichoke.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/asparagus.jpg b/veggieseasons/assets/images/asparagus.jpg
deleted file mode 100644
index 76d340e85bc..00000000000
Binary files a/veggieseasons/assets/images/asparagus.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/avocado.jpg b/veggieseasons/assets/images/avocado.jpg
deleted file mode 100644
index 16ec1e70660..00000000000
Binary files a/veggieseasons/assets/images/avocado.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/blackberry.jpg b/veggieseasons/assets/images/blackberry.jpg
deleted file mode 100644
index 4d8193a82ea..00000000000
Binary files a/veggieseasons/assets/images/blackberry.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/cantaloupe.jpg b/veggieseasons/assets/images/cantaloupe.jpg
deleted file mode 100644
index f048570c620..00000000000
Binary files a/veggieseasons/assets/images/cantaloupe.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/cauliflower.jpg b/veggieseasons/assets/images/cauliflower.jpg
deleted file mode 100644
index ce2aa917c1a..00000000000
Binary files a/veggieseasons/assets/images/cauliflower.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/endive.jpg b/veggieseasons/assets/images/endive.jpg
deleted file mode 100644
index 80c5b7e1a41..00000000000
Binary files a/veggieseasons/assets/images/endive.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/fig.jpg b/veggieseasons/assets/images/fig.jpg
deleted file mode 100644
index baaeafe2665..00000000000
Binary files a/veggieseasons/assets/images/fig.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/grape.jpg b/veggieseasons/assets/images/grape.jpg
deleted file mode 100644
index 94cd645cb61..00000000000
Binary files a/veggieseasons/assets/images/grape.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/green_bell_pepper.jpg b/veggieseasons/assets/images/green_bell_pepper.jpg
deleted file mode 100644
index f9fac8c47ad..00000000000
Binary files a/veggieseasons/assets/images/green_bell_pepper.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/habanero.jpg b/veggieseasons/assets/images/habanero.jpg
deleted file mode 100644
index 3d85abd69b4..00000000000
Binary files a/veggieseasons/assets/images/habanero.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/kale.jpg b/veggieseasons/assets/images/kale.jpg
deleted file mode 100644
index 7a099295da8..00000000000
Binary files a/veggieseasons/assets/images/kale.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/kiwi.jpg b/veggieseasons/assets/images/kiwi.jpg
deleted file mode 100644
index 21be2a60acb..00000000000
Binary files a/veggieseasons/assets/images/kiwi.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/lemon.jpg b/veggieseasons/assets/images/lemon.jpg
deleted file mode 100644
index 62bd7853a07..00000000000
Binary files a/veggieseasons/assets/images/lemon.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/lime.jpg b/veggieseasons/assets/images/lime.jpg
deleted file mode 100644
index a9878a5ef91..00000000000
Binary files a/veggieseasons/assets/images/lime.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/mango.jpg b/veggieseasons/assets/images/mango.jpg
deleted file mode 100644
index 27a82e5f523..00000000000
Binary files a/veggieseasons/assets/images/mango.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/mushroom.jpg b/veggieseasons/assets/images/mushroom.jpg
deleted file mode 100644
index a12fc6943d6..00000000000
Binary files a/veggieseasons/assets/images/mushroom.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/nectarine.jpg b/veggieseasons/assets/images/nectarine.jpg
deleted file mode 100644
index 24b55b7ec68..00000000000
Binary files a/veggieseasons/assets/images/nectarine.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/orange_bell_pepper.jpg b/veggieseasons/assets/images/orange_bell_pepper.jpg
deleted file mode 100644
index 2f789104a6b..00000000000
Binary files a/veggieseasons/assets/images/orange_bell_pepper.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/persimmon.jpg b/veggieseasons/assets/images/persimmon.jpg
deleted file mode 100644
index c0e5d076a48..00000000000
Binary files a/veggieseasons/assets/images/persimmon.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/plum.jpg b/veggieseasons/assets/images/plum.jpg
deleted file mode 100644
index 743c7a4856a..00000000000
Binary files a/veggieseasons/assets/images/plum.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/potato.jpg b/veggieseasons/assets/images/potato.jpg
deleted file mode 100644
index 0f09e21de70..00000000000
Binary files a/veggieseasons/assets/images/potato.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/radicchio.jpg b/veggieseasons/assets/images/radicchio.jpg
deleted file mode 100644
index acd8f66491d..00000000000
Binary files a/veggieseasons/assets/images/radicchio.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/radish.jpg b/veggieseasons/assets/images/radish.jpg
deleted file mode 100644
index 0dcbfb7342d..00000000000
Binary files a/veggieseasons/assets/images/radish.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/squash.jpg b/veggieseasons/assets/images/squash.jpg
deleted file mode 100644
index d20b745cdc2..00000000000
Binary files a/veggieseasons/assets/images/squash.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/strawberry.jpg b/veggieseasons/assets/images/strawberry.jpg
deleted file mode 100644
index feecd8a407f..00000000000
Binary files a/veggieseasons/assets/images/strawberry.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/tangelo.jpg b/veggieseasons/assets/images/tangelo.jpg
deleted file mode 100644
index 83c0a037623..00000000000
Binary files a/veggieseasons/assets/images/tangelo.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/tomato.jpg b/veggieseasons/assets/images/tomato.jpg
deleted file mode 100644
index ab36947be12..00000000000
Binary files a/veggieseasons/assets/images/tomato.jpg and /dev/null differ
diff --git a/veggieseasons/assets/images/watermelon.jpg b/veggieseasons/assets/images/watermelon.jpg
deleted file mode 100644
index 43880ba8904..00000000000
Binary files a/veggieseasons/assets/images/watermelon.jpg and /dev/null differ
diff --git a/veggieseasons/ios/.gitignore b/veggieseasons/ios/.gitignore
deleted file mode 100644
index 7a7f9873ad7..00000000000
--- a/veggieseasons/ios/.gitignore
+++ /dev/null
@@ -1,34 +0,0 @@
-**/dgph
-*.mode1v3
-*.mode2v3
-*.moved-aside
-*.pbxuser
-*.perspectivev3
-**/*sync/
-.sconsign.dblite
-.tags*
-**/.vagrant/
-**/DerivedData/
-Icon?
-**/Pods/
-**/.symlinks/
-profile
-xcuserdata
-**/.generated/
-Flutter/App.framework
-Flutter/Flutter.framework
-Flutter/Flutter.podspec
-Flutter/Generated.xcconfig
-Flutter/ephemeral/
-Flutter/app.flx
-Flutter/app.zip
-Flutter/flutter_assets/
-Flutter/flutter_export_environment.sh
-ServiceDefinitions.json
-Runner/GeneratedPluginRegistrant.*
-
-# Exceptions to above rules.
-!default.mode1v3
-!default.mode2v3
-!default.pbxuser
-!default.perspectivev3
diff --git a/veggieseasons/ios/Flutter/AppFrameworkInfo.plist b/veggieseasons/ios/Flutter/AppFrameworkInfo.plist
deleted file mode 100644
index 7c569640062..00000000000
--- a/veggieseasons/ios/Flutter/AppFrameworkInfo.plist
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- App
- CFBundleIdentifier
- io.flutter.flutter.app
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- App
- CFBundlePackageType
- FMWK
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1.0
- MinimumOSVersion
- 12.0
-
-
diff --git a/veggieseasons/ios/Flutter/Debug.xcconfig b/veggieseasons/ios/Flutter/Debug.xcconfig
deleted file mode 100644
index ec97fc6f302..00000000000
--- a/veggieseasons/ios/Flutter/Debug.xcconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
-#include "Generated.xcconfig"
diff --git a/veggieseasons/ios/Flutter/Release.xcconfig b/veggieseasons/ios/Flutter/Release.xcconfig
deleted file mode 100644
index c4855bfe200..00000000000
--- a/veggieseasons/ios/Flutter/Release.xcconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
-#include "Generated.xcconfig"
diff --git a/veggieseasons/ios/Podfile b/veggieseasons/ios/Podfile
deleted file mode 100644
index d97f17e223f..00000000000
--- a/veggieseasons/ios/Podfile
+++ /dev/null
@@ -1,44 +0,0 @@
-# Uncomment this line to define a global platform for your project
-# platform :ios, '12.0'
-
-# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
-ENV['COCOAPODS_DISABLE_STATS'] = 'true'
-
-project 'Runner', {
- 'Debug' => :debug,
- 'Profile' => :release,
- 'Release' => :release,
-}
-
-def flutter_root
- generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
- unless File.exist?(generated_xcode_build_settings_path)
- raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
- end
-
- File.foreach(generated_xcode_build_settings_path) do |line|
- matches = line.match(/FLUTTER_ROOT\=(.*)/)
- return matches[1].strip if matches
- end
- raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
-end
-
-require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
-
-flutter_ios_podfile_setup
-
-target 'Runner' do
- use_frameworks!
- use_modular_headers!
-
- flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
- target 'RunnerTests' do
- inherit! :search_paths
- end
-end
-
-post_install do |installer|
- installer.pods_project.targets.each do |target|
- flutter_additional_ios_build_settings(target)
- end
-end
diff --git a/veggieseasons/ios/Runner.xcodeproj/project.pbxproj b/veggieseasons/ios/Runner.xcodeproj/project.pbxproj
deleted file mode 100644
index ab82aea2bc3..00000000000
--- a/veggieseasons/ios/Runner.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,731 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 54;
- objects = {
-
-/* Begin PBXBuildFile section */
- 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 */; };
- 63DF5AF6EA7E5752FD193C17 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 38D833D84C3CBFFBC2A61387 /* Pods_Runner.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 */; };
- BDDC9E5BD53006E983AC444C /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C7D1011F5450B20EBA2923B /* Pods_RunnerTests.framework */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 97C146E61CF9000F007C117D /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 97C146ED1CF9000F007C117D;
- remoteInfo = Runner;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXCopyFilesBuildPhase section */
- 9705A1C41CF9048500538489 /* Embed Frameworks */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 2147483647;
- dstPath = "";
- dstSubfolderSpec = 10;
- files = (
- );
- name = "Embed Frameworks";
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXCopyFilesBuildPhase section */
-
-/* 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 = ""; };
- 1D00FE80EC6A4B68C8E227F8 /* 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 = ""; };
- 2E0D48114CA3C6D9CCFFEF16 /* 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 = ""; };
- 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; };
- 38D833D84C3CBFFBC2A61387 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
- 5C5AC2EFB5606C655AB6C34A /* 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 = ""; };
- 5C7D1011F5450B20EBA2923B /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 67C3CA414545302E36760BB5 /* 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 = ""; };
- 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 = ""; };
- 971FE7CB47EC26D3DD304A6B /* 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; 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; };
- 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
- 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 = ""; };
- FA6AACB3CDFE5B8D169FDAD3 /* 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 = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 97C146EB1CF9000F007C117D /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 63DF5AF6EA7E5752FD193C17 /* Pods_Runner.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- C3870E06F7C4E0C4CA0F4C1C /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- BDDC9E5BD53006E983AC444C /* Pods_RunnerTests.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 1AC2876AB73DE877F0C0B83B /* Pods */ = {
- isa = PBXGroup;
- children = (
- 971FE7CB47EC26D3DD304A6B /* Pods-Runner.debug.xcconfig */,
- 67C3CA414545302E36760BB5 /* Pods-Runner.release.xcconfig */,
- 1D00FE80EC6A4B68C8E227F8 /* Pods-Runner.profile.xcconfig */,
- 2E0D48114CA3C6D9CCFFEF16 /* Pods-RunnerTests.debug.xcconfig */,
- FA6AACB3CDFE5B8D169FDAD3 /* Pods-RunnerTests.release.xcconfig */,
- 5C5AC2EFB5606C655AB6C34A /* Pods-RunnerTests.profile.xcconfig */,
- );
- name = Pods;
- path = Pods;
- sourceTree = "";
- };
- 331C8082294A63A400263BE5 /* RunnerTests */ = {
- isa = PBXGroup;
- children = (
- 331C807B294A618700263BE5 /* RunnerTests.swift */,
- );
- path = RunnerTests;
- sourceTree = "";
- };
- 4968362A1680EFDF9222A5B5 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- 38D833D84C3CBFFBC2A61387 /* Pods_Runner.framework */,
- 5C7D1011F5450B20EBA2923B /* Pods_RunnerTests.framework */,
- );
- name = Frameworks;
- sourceTree = "";
- };
- 9740EEB11CF90186004384FC /* Flutter */ = {
- isa = PBXGroup;
- children = (
- 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
- 9740EEB21CF90195004384FC /* Debug.xcconfig */,
- 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
- 9740EEB31CF90195004384FC /* Generated.xcconfig */,
- );
- name = Flutter;
- sourceTree = "";
- };
- 97C146E51CF9000F007C117D = {
- isa = PBXGroup;
- children = (
- 9740EEB11CF90186004384FC /* Flutter */,
- 97C146F01CF9000F007C117D /* Runner */,
- 97C146EF1CF9000F007C117D /* Products */,
- 331C8082294A63A400263BE5 /* RunnerTests */,
- 1AC2876AB73DE877F0C0B83B /* Pods */,
- 4968362A1680EFDF9222A5B5 /* Frameworks */,
- );
- sourceTree = "";
- };
- 97C146EF1CF9000F007C117D /* Products */ = {
- isa = PBXGroup;
- children = (
- 97C146EE1CF9000F007C117D /* Runner.app */,
- 331C8081294A63A400263BE5 /* RunnerTests.xctest */,
- );
- name = Products;
- sourceTree = "";
- };
- 97C146F01CF9000F007C117D /* Runner */ = {
- isa = PBXGroup;
- children = (
- 97C146FA1CF9000F007C117D /* Main.storyboard */,
- 97C146FD1CF9000F007C117D /* Assets.xcassets */,
- 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
- 97C147021CF9000F007C117D /* Info.plist */,
- 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
- 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
- 74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
- 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
- );
- path = Runner;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 331C8080294A63A400263BE5 /* RunnerTests */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
- buildPhases = (
- EEF989F59E37C6946EC40F1B /* [CP] Check Pods Manifest.lock */,
- 331C807D294A63A400263BE5 /* Sources */,
- 331C807F294A63A400263BE5 /* Resources */,
- C3870E06F7C4E0C4CA0F4C1C /* Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- 331C8086294A63A400263BE5 /* PBXTargetDependency */,
- );
- name = RunnerTests;
- productName = RunnerTests;
- productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */;
- productType = "com.apple.product-type.bundle.unit-test";
- };
- 97C146ED1CF9000F007C117D /* Runner */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
- buildPhases = (
- 25194613EC4035A63337D2AA /* [CP] Check Pods Manifest.lock */,
- 9740EEB61CF901F6004384FC /* Run Script */,
- 97C146EA1CF9000F007C117D /* Sources */,
- 97C146EB1CF9000F007C117D /* Frameworks */,
- 97C146EC1CF9000F007C117D /* Resources */,
- 9705A1C41CF9048500538489 /* Embed Frameworks */,
- 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
- 1F3480CB2DDBB3AE2233D2E2 /* [CP] Embed Pods Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = Runner;
- productName = Runner;
- productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 97C146E61CF9000F007C117D /* Project object */ = {
- isa = PBXProject;
- attributes = {
- BuildIndependentTargetsInParallel = YES;
- LastUpgradeCheck = 1510;
- ORGANIZATIONNAME = "";
- TargetAttributes = {
- 331C8080294A63A400263BE5 = {
- CreatedOnToolsVersion = 14.0;
- TestTargetID = 97C146ED1CF9000F007C117D;
- };
- 97C146ED1CF9000F007C117D = {
- CreatedOnToolsVersion = 7.3.1;
- LastSwiftMigration = 1100;
- };
- };
- };
- buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
- compatibilityVersion = "Xcode 9.3";
- developmentRegion = en;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- Base,
- );
- mainGroup = 97C146E51CF9000F007C117D;
- productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- 97C146ED1CF9000F007C117D /* Runner */,
- 331C8080294A63A400263BE5 /* RunnerTests */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- 331C807F294A63A400263BE5 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 97C146EC1CF9000F007C117D /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
- 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
- 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
- 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
- 1F3480CB2DDBB3AE2233D2E2 /* [CP] Embed Pods Frameworks */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
- );
- name = "[CP] Embed Pods Frameworks";
- outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
- };
- 25194613EC4035A63337D2AA /* [CP] Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- );
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputFileListPaths = (
- );
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
- );
- 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";
- showEnvVarsInLog = 0;
- };
- 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
- isa = PBXShellScriptBuildPhase;
- alwaysOutOfDate = 1;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
- );
- name = "Thin Binary";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
- };
- 9740EEB61CF901F6004384FC /* Run Script */ = {
- isa = PBXShellScriptBuildPhase;
- alwaysOutOfDate = 1;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "Run Script";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
- };
- EEF989F59E37C6946EC40F1B /* [CP] Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- );
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputFileListPaths = (
- );
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
- );
- 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";
- showEnvVarsInLog = 0;
- };
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 331C807D294A63A400263BE5 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 97C146EA1CF9000F007C117D /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
- 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
- 331C8086294A63A400263BE5 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 97C146ED1CF9000F007C117D /* Runner */;
- targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
-/* Begin PBXVariantGroup section */
- 97C146FA1CF9000F007C117D /* Main.storyboard */ = {
- isa = PBXVariantGroup;
- children = (
- 97C146FB1CF9000F007C117D /* Base */,
- );
- name = Main.storyboard;
- sourceTree = "";
- };
- 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
- isa = PBXVariantGroup;
- children = (
- 97C147001CF9000F007C117D /* Base */,
- );
- name = LaunchScreen.storyboard;
- sourceTree = "";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- 249021D3217E4FDB00AE95B9 /* Profile */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_USER_SCRIPT_SANDBOXING = NO;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
- MTL_ENABLE_DEBUG_INFO = NO;
- SDKROOT = iphoneos;
- SUPPORTED_PLATFORMS = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- VALIDATE_PRODUCT = YES;
- };
- name = Profile;
- };
- 249021D4217E4FDB00AE95B9 /* Profile */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CLANG_ENABLE_MODULES = YES;
- CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = TC87DMJLQP;
- ENABLE_BITCODE = NO;
- INFOPLIST_FILE = Runner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- );
- PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.veggieseasons;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
- SWIFT_VERSION = 5.0;
- VERSIONING_SYSTEM = "apple-generic";
- };
- name = Profile;
- };
- 331C8088294A63A400263BE5 /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 2E0D48114CA3C6D9CCFFEF16 /* Pods-RunnerTests.debug.xcconfig */;
- buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 1;
- GENERATE_INFOPLIST_FILE = YES;
- MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.veggieseasons.RunnerTests;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
- SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- SWIFT_VERSION = 5.0;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
- };
- name = Debug;
- };
- 331C8089294A63A400263BE5 /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = FA6AACB3CDFE5B8D169FDAD3 /* Pods-RunnerTests.release.xcconfig */;
- buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 1;
- GENERATE_INFOPLIST_FILE = YES;
- MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.veggieseasons.RunnerTests;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_VERSION = 5.0;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
- };
- name = Release;
- };
- 331C808A294A63A400263BE5 /* Profile */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 5C5AC2EFB5606C655AB6C34A /* Pods-RunnerTests.profile.xcconfig */;
- buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 1;
- GENERATE_INFOPLIST_FILE = YES;
- MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.veggieseasons.RunnerTests;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_VERSION = 5.0;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
- };
- name = Profile;
- };
- 97C147031CF9000F007C117D /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = dwarf;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_TESTABILITY = YES;
- ENABLE_USER_SCRIPT_SANDBOXING = NO;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- );
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
- MTL_ENABLE_DEBUG_INFO = YES;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- };
- name = Debug;
- };
- 97C147041CF9000F007C117D /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_USER_SCRIPT_SANDBOXING = NO;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
- MTL_ENABLE_DEBUG_INFO = NO;
- SDKROOT = iphoneos;
- SUPPORTED_PLATFORMS = iphoneos;
- SWIFT_COMPILATION_MODE = wholemodule;
- SWIFT_OPTIMIZATION_LEVEL = "-O";
- TARGETED_DEVICE_FAMILY = "1,2";
- VALIDATE_PRODUCT = YES;
- };
- name = Release;
- };
- 97C147061CF9000F007C117D /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CLANG_ENABLE_MODULES = YES;
- CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = TC87DMJLQP;
- ENABLE_BITCODE = NO;
- INFOPLIST_FILE = Runner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- );
- PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.veggieseasons;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
- SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- SWIFT_VERSION = 5.0;
- VERSIONING_SYSTEM = "apple-generic";
- };
- name = Debug;
- };
- 97C147071CF9000F007C117D /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CLANG_ENABLE_MODULES = YES;
- CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = TC87DMJLQP;
- ENABLE_BITCODE = NO;
- INFOPLIST_FILE = Runner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- );
- PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.veggieseasons;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
- SWIFT_VERSION = 5.0;
- VERSIONING_SYSTEM = "apple-generic";
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 331C8088294A63A400263BE5 /* Debug */,
- 331C8089294A63A400263BE5 /* Release */,
- 331C808A294A63A400263BE5 /* Profile */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 97C147031CF9000F007C117D /* Debug */,
- 97C147041CF9000F007C117D /* Release */,
- 249021D3217E4FDB00AE95B9 /* Profile */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 97C147061CF9000F007C117D /* Debug */,
- 97C147071CF9000F007C117D /* Release */,
- 249021D4217E4FDB00AE95B9 /* Profile */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 97C146E61CF9000F007C117D /* Project object */;
-}
diff --git a/veggieseasons/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/veggieseasons/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 919434a6254..00000000000
--- a/veggieseasons/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/veggieseasons/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/veggieseasons/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d981003d6..00000000000
--- a/veggieseasons/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/veggieseasons/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/veggieseasons/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
deleted file mode 100644
index f9b0d7c5ea1..00000000000
--- a/veggieseasons/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- PreviewsEnabled
-
-
-
diff --git a/veggieseasons/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/veggieseasons/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
deleted file mode 100644
index 8e3ca5dfe19..00000000000
--- a/veggieseasons/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ /dev/null
@@ -1,98 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/veggieseasons/ios/Runner.xcworkspace/contents.xcworkspacedata b/veggieseasons/ios/Runner.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 21a3cc14c74..00000000000
--- a/veggieseasons/ios/Runner.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
diff --git a/veggieseasons/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/veggieseasons/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d981003d6..00000000000
--- a/veggieseasons/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/veggieseasons/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/veggieseasons/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
deleted file mode 100644
index f9b0d7c5ea1..00000000000
--- a/veggieseasons/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- PreviewsEnabled
-
-
-
diff --git a/veggieseasons/ios/Runner/AppDelegate.swift b/veggieseasons/ios/Runner/AppDelegate.swift
deleted file mode 100644
index 626664468b8..00000000000
--- a/veggieseasons/ios/Runner/AppDelegate.swift
+++ /dev/null
@@ -1,13 +0,0 @@
-import Flutter
-import UIKit
-
-@main
-@objc class AppDelegate: FlutterAppDelegate {
- override func application(
- _ application: UIApplication,
- didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
- ) -> Bool {
- GeneratedPluginRegistrant.register(with: self)
- return super.application(application, didFinishLaunchingWithOptions: launchOptions)
- }
-}
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index d36b1fab2d9..00000000000
--- a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,122 +0,0 @@
-{
- "images" : [
- {
- "size" : "20x20",
- "idiom" : "iphone",
- "filename" : "Icon-App-20x20@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "20x20",
- "idiom" : "iphone",
- "filename" : "Icon-App-20x20@3x.png",
- "scale" : "3x"
- },
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-App-29x29@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-App-29x29@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-App-29x29@3x.png",
- "scale" : "3x"
- },
- {
- "size" : "40x40",
- "idiom" : "iphone",
- "filename" : "Icon-App-40x40@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "40x40",
- "idiom" : "iphone",
- "filename" : "Icon-App-40x40@3x.png",
- "scale" : "3x"
- },
- {
- "size" : "60x60",
- "idiom" : "iphone",
- "filename" : "Icon-App-60x60@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "60x60",
- "idiom" : "iphone",
- "filename" : "Icon-App-60x60@3x.png",
- "scale" : "3x"
- },
- {
- "size" : "20x20",
- "idiom" : "ipad",
- "filename" : "Icon-App-20x20@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "20x20",
- "idiom" : "ipad",
- "filename" : "Icon-App-20x20@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "29x29",
- "idiom" : "ipad",
- "filename" : "Icon-App-29x29@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "29x29",
- "idiom" : "ipad",
- "filename" : "Icon-App-29x29@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "40x40",
- "idiom" : "ipad",
- "filename" : "Icon-App-40x40@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "40x40",
- "idiom" : "ipad",
- "filename" : "Icon-App-40x40@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "76x76",
- "idiom" : "ipad",
- "filename" : "Icon-App-76x76@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "76x76",
- "idiom" : "ipad",
- "filename" : "Icon-App-76x76@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "83.5x83.5",
- "idiom" : "ipad",
- "filename" : "Icon-App-83.5x83.5@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "1024x1024",
- "idiom" : "ios-marketing",
- "filename" : "Icon-App-1024x1024@1x.png",
- "scale" : "1x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
deleted file mode 100644
index 55d5fc965b0..00000000000
Binary files a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and /dev/null differ
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
deleted file mode 100644
index e3b431bc703..00000000000
Binary files a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png and /dev/null differ
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
deleted file mode 100644
index 186120601b3..00000000000
Binary files a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and /dev/null differ
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
deleted file mode 100644
index e8465752df6..00000000000
Binary files a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and /dev/null differ
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
deleted file mode 100644
index b12478c7293..00000000000
Binary files a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and /dev/null differ
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
deleted file mode 100644
index bc7d6b4efcc..00000000000
Binary files a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and /dev/null differ
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
deleted file mode 100644
index a21c2b53ff5..00000000000
Binary files a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and /dev/null differ
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
deleted file mode 100644
index 186120601b3..00000000000
Binary files a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and /dev/null differ
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
deleted file mode 100644
index e494c447359..00000000000
Binary files a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and /dev/null differ
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
deleted file mode 100644
index 81c40205ea1..00000000000
Binary files a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and /dev/null differ
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
deleted file mode 100644
index 81c40205ea1..00000000000
Binary files a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and /dev/null differ
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
deleted file mode 100644
index 27b09c6f40c..00000000000
Binary files a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and /dev/null differ
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
deleted file mode 100644
index 15cc145f590..00000000000
Binary files a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and /dev/null differ
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
deleted file mode 100644
index 0374611d6dd..00000000000
Binary files a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and /dev/null differ
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
deleted file mode 100644
index beef9b9c097..00000000000
Binary files a/veggieseasons/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and /dev/null differ
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/veggieseasons/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
deleted file mode 100644
index 0bedcf2fd46..00000000000
--- a/veggieseasons/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "universal",
- "filename" : "LaunchImage.png",
- "scale" : "1x"
- },
- {
- "idiom" : "universal",
- "filename" : "LaunchImage@2x.png",
- "scale" : "2x"
- },
- {
- "idiom" : "universal",
- "filename" : "LaunchImage@3x.png",
- "scale" : "3x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/veggieseasons/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
deleted file mode 100644
index 9da19eacad3..00000000000
Binary files a/veggieseasons/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png and /dev/null differ
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/veggieseasons/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
deleted file mode 100644
index 9da19eacad3..00000000000
Binary files a/veggieseasons/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png and /dev/null differ
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/veggieseasons/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
deleted file mode 100644
index 9da19eacad3..00000000000
Binary files a/veggieseasons/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png and /dev/null differ
diff --git a/veggieseasons/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/veggieseasons/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
deleted file mode 100644
index 89c2725b70f..00000000000
--- a/veggieseasons/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Launch Screen Assets
-
-You can customize the launch screen with your own desired assets by replacing the image files in this directory.
-
-You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
\ No newline at end of file
diff --git a/veggieseasons/ios/Runner/Base.lproj/LaunchScreen.storyboard b/veggieseasons/ios/Runner/Base.lproj/LaunchScreen.storyboard
deleted file mode 100644
index f2e259c7c93..00000000000
--- a/veggieseasons/ios/Runner/Base.lproj/LaunchScreen.storyboard
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/veggieseasons/ios/Runner/Base.lproj/Main.storyboard b/veggieseasons/ios/Runner/Base.lproj/Main.storyboard
deleted file mode 100644
index f3c28516fb3..00000000000
--- a/veggieseasons/ios/Runner/Base.lproj/Main.storyboard
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/veggieseasons/ios/Runner/Info.plist b/veggieseasons/ios/Runner/Info.plist
deleted file mode 100644
index c985223fc7f..00000000000
--- a/veggieseasons/ios/Runner/Info.plist
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- $(DEVELOPMENT_LANGUAGE)
- CFBundleDisplayName
- Veggie Seasons
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- veggieseasons
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- $(FLUTTER_BUILD_NAME)
- CFBundleSignature
- ????
- CFBundleVersion
- $(FLUTTER_BUILD_NUMBER)
- LSRequiresIPhoneOS
-
- UILaunchStoryboardName
- LaunchScreen
- UIMainStoryboardFile
- Main
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
-
- UISupportedInterfaceOrientations~ipad
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- CADisableMinimumFrameDurationOnPhone
-
- UIApplicationSupportsIndirectInputEvents
-
-
-
diff --git a/veggieseasons/ios/Runner/Runner-Bridging-Header.h b/veggieseasons/ios/Runner/Runner-Bridging-Header.h
deleted file mode 100644
index 308a2a560b4..00000000000
--- a/veggieseasons/ios/Runner/Runner-Bridging-Header.h
+++ /dev/null
@@ -1 +0,0 @@
-#import "GeneratedPluginRegistrant.h"
diff --git a/veggieseasons/ios/RunnerTests/RunnerTests.swift b/veggieseasons/ios/RunnerTests/RunnerTests.swift
deleted file mode 100644
index 86a7c3b1b61..00000000000
--- a/veggieseasons/ios/RunnerTests/RunnerTests.swift
+++ /dev/null
@@ -1,12 +0,0 @@
-import Flutter
-import UIKit
-import XCTest
-
-class RunnerTests: XCTestCase {
-
- func testExample() {
- // If you add code to the Runner application, consider adding tests here.
- // See https://developer.apple.com/documentation/xctest for more information about using XCTest.
- }
-
-}
diff --git a/veggieseasons/lib/data/app_state.dart b/veggieseasons/lib/data/app_state.dart
deleted file mode 100644
index 4c4edd2987c..00000000000
--- a/veggieseasons/lib/data/app_state.dart
+++ /dev/null
@@ -1,86 +0,0 @@
-// Copyright 2018 The Flutter team. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/foundation.dart';
-import 'local_veggie_provider.dart';
-import 'veggie.dart';
-
-class AppState extends ChangeNotifier {
- final List _veggies;
-
- AppState() : _veggies = LocalVeggieProvider.veggies;
-
- List get allVeggies => List.from(_veggies);
-
- List get availableVeggies {
- var currentSeason = _getSeasonForDate(DateTime.now());
- return _veggies
- .where((v) => v.seasons.contains(currentSeason))
- .toList();
- }
-
- List get favoriteVeggies =>
- _veggies.where((v) => v.isFavorite).toList();
-
- List get unavailableVeggies {
- var currentSeason = _getSeasonForDate(DateTime.now());
- return _veggies
- .where((v) => !v.seasons.contains(currentSeason))
- .toList();
- }
-
- Veggie getVeggie(int? id) => _veggies.singleWhere((v) => v.id == id);
-
- List searchVeggies(String? terms) => _veggies
- .where((v) => v.name.toLowerCase().contains(terms!.toLowerCase()))
- .toList();
-
- void setFavorite(int? id, bool isFavorite) {
- var veggie = getVeggie(id);
- veggie.isFavorite = isFavorite;
- notifyListeners();
- }
-
- /// Used in tests to set the season independent of the current date.
- static Season? debugCurrentSeason;
-
- static Season? _getSeasonForDate(DateTime date) {
- if (debugCurrentSeason != null) {
- return debugCurrentSeason;
- }
-
- // Technically the start and end dates of seasons can vary by a day or so,
- // but this is close enough for produce.
- switch (date.month) {
- case 1:
- return Season.winter;
- case 2:
- return Season.winter;
- case 3:
- return date.day < 21 ? Season.winter : Season.spring;
- case 4:
- return Season.spring;
- case 5:
- return Season.spring;
- case 6:
- return date.day < 21 ? Season.spring : Season.summer;
- case 7:
- return Season.summer;
- case 8:
- return Season.summer;
- case 9:
- return date.day < 22 ? Season.autumn : Season.winter;
- case 10:
- return Season.autumn;
- case 11:
- return Season.autumn;
- case 12:
- return date.day < 22 ? Season.autumn : Season.winter;
- default:
- throw ArgumentError(
- 'Can\'t return a season for month #${date.month}.',
- );
- }
- }
-}
diff --git a/veggieseasons/lib/data/local_veggie_provider.dart b/veggieseasons/lib/data/local_veggie_provider.dart
deleted file mode 100644
index 9b387bcd7cc..00000000000
--- a/veggieseasons/lib/data/local_veggie_provider.dart
+++ /dev/null
@@ -1,1071 +0,0 @@
-// Copyright 2018 The Flutter team. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/cupertino.dart';
-import 'veggie.dart';
-
-class LocalVeggieProvider {
- static List veggies = [
- Veggie(
- id: 1,
- name: 'Apples',
- imageAssetPath: 'assets/images/apple.jpg',
- category: VeggieCategory.fruit,
- shortDescription:
- 'Green or red, they\'re generally round and tasty.',
- accentColor: const Color(0x40de8c66),
- seasons: [
- Season.winter,
- Season.spring,
- Season.summer,
- Season.autumn,
- ],
- vitaminAPercentage: 2,
- vitaminCPercentage: 8,
- servingSize: 'One large apple',
- caloriesPerServing: 130,
- trivia: const [
- Trivia(
- 'A peck of apples (that\'s a real unit of mesaurement!) weighs approximately how many pounds?',
- ['10 pounds', '20 pounds', '30 pounds'],
- 0,
- ),
- Trivia('Which of these is an actual variety of apples?', [
- 'Dancing Turkey',
- 'Winter Banana',
- 'Red Sloth',
- ], 1),
- Trivia(
- 'In Greek mythology, Paris gives a golden apple marked "To the Fairest" to a goddess. Which one?',
- ['Hera', 'Athena', 'Aphrodite'],
- 2,
- ),
- Trivia('Apples in the supermarket can be up to how old?', [
- '1 week',
- '1 month',
- '1 year',
- ], 2),
- Trivia(
- 'How long does it take a typical apple tree to produce its first fruit?',
- ['One to two years', 'Four or five years', 'Eight to ten years'],
- 1,
- ),
- Trivia(
- 'Archaeological evidence of humans eating apples dates back how far?',
- ['500 C.E.', '2000 B.C.E.', '6500 B.C.E.'],
- 2,
- ),
- Trivia('What are the seed pockets inside an apple called?', [
- 'Tarsals',
- 'Carpels',
- 'Sacs',
- ], 1),
- ],
- ),
- Veggie(
- id: 2,
- name: 'Artichokes',
- imageAssetPath: 'assets/images/artichoke.jpg',
- category: VeggieCategory.flower,
- shortDescription: 'The armadillo of vegetables.',
- accentColor: const Color(0x408ea26d),
- seasons: [Season.spring, Season.autumn],
- vitaminAPercentage: 0,
- vitaminCPercentage: 25,
- servingSize: '1 medium artichoke',
- caloriesPerServing: 60,
- trivia: const [
- Trivia('Artichokes are which part of the plant?', [
- 'Flower bud',
- 'Root',
- 'Seed',
- ], 0),
- Trivia(
- '"Jerusalem artichoke" is another term for which vegetable?',
- [
- 'Potato',
- 'Cabbage',
- 'Sunchoke',
- ],
- 2,
- ),
- Trivia(
- 'Which city claims to be The Artichoke Capital of the World?',
- [
- 'Castroville, California',
- 'Galveston, Texas',
- 'London, England',
- ],
- 0,
- ),
- Trivia('Artichokes are technically which type of plant?', [
- 'Thistle',
- 'Azalea',
- 'Tulip',
- ], 0),
- ],
- ),
- Veggie(
- id: 3,
- name: 'Asparagus',
- imageAssetPath: 'assets/images/asparagus.jpg',
- category: VeggieCategory.fern,
- shortDescription:
- 'It\'s been used a food and medicine for millenia.',
- accentColor: const Color(0x408cb437),
- seasons: [Season.spring],
- vitaminAPercentage: 10,
- vitaminCPercentage: 15,
- servingSize: '5 spears',
- caloriesPerServing: 20,
- trivia: const [
- Trivia(
- 'The nodules at the tip of an asparagus spear are actually which part of the plant?',
- ['Seeds', 'Leaves', 'Potective scales'],
- 1,
- ),
- Trivia('How is white asparagus made?', [
- 'It\'s watered with milk',
- 'It\'s a different species',
- 'It\'s grown in the shade',
- ], 2),
- Trivia(
- 'Asapragus spears have been observed growing how many inches in a single day?',
- ['1', '3', '6'],
- 2,
- ),
- Trivia('To which flower is asparagus related?', [
- 'Lily',
- 'Rose',
- 'Whole wheat',
- ], 0),
- ],
- ),
- Veggie(
- id: 4,
- name: 'Avocado',
- imageAssetPath: 'assets/images/avocado.jpg',
- category: VeggieCategory.stealthFruit,
- shortDescription:
- 'One of the oiliest, richest fruits money can buy.',
- accentColor: const Color(0x40b0ba59),
- seasons: [Season.winter, Season.spring, Season.summer],
- vitaminAPercentage: 0,
- vitaminCPercentage: 4,
- servingSize: '1/5 medium avocado',
- caloriesPerServing: 50,
- trivia: const [
- Trivia('What\'s the most popular variety of avocado?', [
- 'Stevenson',
- 'Hass',
- 'Juicy Lucy',
- ], 1),
- Trivia(
- 'The word avocado derives from "ahuacatl," found in which civilization?',
- ['Aztec', 'Incan', 'Sumerian'],
- 0,
- ),
- Trivia('What percentage of an avocado is nutritional fat?', [
- '10',
- '25',
- '50',
- ], 1),
- Trivia(
- 'The first evidence of avocado consumption by humans dates back to what year?',
- ['2,000 B.C.', '6,000 B.C.', '10,000 B.C.'],
- 2,
- ),
- ],
- ),
- Veggie(
- id: 5,
- name: 'Blackberries',
- imageAssetPath: 'assets/images/blackberry.jpg',
- category: VeggieCategory.berry,
- shortDescription:
- 'Find them on backroads and fences in the Northwest.',
- accentColor: const Color(0x409d5adb),
- seasons: [Season.summer],
- vitaminAPercentage: 6,
- vitaminCPercentage: 4,
- servingSize: '1 cup',
- caloriesPerServing: 62,
- trivia: const [
- Trivia('What color are unripe blackberries?', [
- 'Red',
- 'White',
- 'Brown',
- ], 0),
- Trivia(
- 'The blackberry is the official fruit of which American state?',
- ['Washington', 'Colorado', 'Alabama'],
- 2,
- ),
- Trivia('How many varieties of blackberries are known to exist?', [
- '500',
- '1000',
- '2000',
- ], 2),
- ],
- ),
- Veggie(
- id: 6,
- name: 'Cantaloupe',
- imageAssetPath: 'assets/images/cantaloupe.jpg',
- category: VeggieCategory.melon,
- shortDescription: 'A fruit so tasty there\'s a utensil just for it.',
- accentColor: const Color(0x40f6bd56),
- seasons: [Season.summer],
- vitaminAPercentage: 120,
- vitaminCPercentage: 80,
- servingSize: '1/4 medium cantaloupe',
- caloriesPerServing: 50,
- trivia: const [
- Trivia('Which of these is another name for cantaloupe?', [
- 'Muskmelon',
- 'Crenshaw melon',
- 'Rindfruit',
- ], 0),
- Trivia('The word "cantaloupe" is a reference to what?', [
- 'The Latin word for a ring of seeds',
- 'The gardens of a castle in Italy',
- 'An aphid species that feeds on cantaloupe leaves',
- ], 1),
- Trivia('Cantaloupes grow on what kind of plant?', [
- 'Tree',
- 'Shrub',
- 'Vine',
- ], 2),
- Trivia(
- 'The most expensive melons in Japan can sell for up to how much?',
- ['\$100', '\$1,000', '\$10,000'],
- 2,
- ),
- ],
- ),
- Veggie(
- id: 7,
- name: 'Cauliflower',
- imageAssetPath: 'assets/images/cauliflower.jpg',
- category: VeggieCategory.cruciferous,
- shortDescription: 'Looks like white broccoli and explodes when cut.',
- accentColor: const Color(0x40c891a8),
- seasons: [Season.autumn],
- vitaminAPercentage: 0,
- vitaminCPercentage: 100,
- servingSize: '1/6 medium head',
- caloriesPerServing: 25,
- trivia: const [
- Trivia(
- 'The quote "Cauliflower is nothing but cabbage with a college education" is attributed to whom?',
- ['Cesar Romero', 'Mark Twain', 'Lucille Ball'],
- 1,
- ),
- Trivia(
- 'The edible head of a cauliflower plant is sometimes called what?',
- ['The curd', 'The cow', 'The cudgel'],
- 0,
- ),
- Trivia(
- 'Cauliflower is related closest to which of these other plants?',
- ['Mustard greens', 'Apples', 'Potatoes'],
- 0,
- ),
- Trivia(
- 'Cauliflower\'s green spiral-shaped cousin is known as what?',
- [
- 'Romesco',
- 'Brittany cabbage',
- 'Muscle sprouts',
- ],
- 0,
- ),
- Trivia('Green cauliflower is sometimes called what?', [
- 'Broccoflower',
- 'Avocadoflower',
- 'Gross',
- ], 0),
- ],
- ),
- Veggie(
- id: 8,
- name: 'Endive',
- imageAssetPath: 'assets/images/endive.jpg',
- category: VeggieCategory.leafy,
- shortDescription: 'It\'s basically the veal of lettuce.',
- accentColor: const Color(0x40c5be53),
- seasons: [Season.winter, Season.spring, Season.autumn],
- vitaminAPercentage: 10,
- vitaminCPercentage: 2,
- servingSize: '1/2 cup, chopped',
- caloriesPerServing: 4,
- trivia: const [
- Trivia('What\'s another name for Belgian endive?', [
- 'Radicchio',
- 'St. Paul\'s lettuce',
- 'Witloof chicory',
- ], 2),
- Trivia('How does endive propagate itself?', [
- 'By seed',
- 'By rhizome',
- 'By packing up and moving to Des Moines',
- ], 0),
- Trivia(
- 'Some farmers cover their endive with shade to reduce what?',
- [
- 'Size',
- 'Toughness',
- 'Bitterness',
- ],
- 2,
- ),
- ],
- ),
- Veggie(
- id: 9,
- name: 'Figs',
- imageAssetPath: 'assets/images/fig.jpg',
- category: VeggieCategory.fruit,
- shortDescription: 'Delicious when sliced and wrapped in prosciutto.',
- accentColor: const Color(0x40aa6d7c),
- seasons: [Season.summer, Season.autumn],
- vitaminAPercentage: 2,
- vitaminCPercentage: 2,
- servingSize: '1 large fig',
- caloriesPerServing: 50,
- trivia: const [
- Trivia('Which of these isn\'t a variety of figs?', [
- 'Brown Turkey',
- 'Green Ischia',
- 'Red Racer',
- ], 2),
- Trivia('A fig\'s natural sugar content is around what?', [
- '25%',
- '50%',
- '75%',
- ], 1),
- Trivia('How much sun should be used to ripen figs?', [
- 'Shade',
- 'Partial shade',
- 'Full sun',
- ], 2),
- ],
- ),
- Veggie(
- id: 10,
- name: 'Grapes',
- imageAssetPath: 'assets/images/grape.jpg',
- category: VeggieCategory.berry,
- shortDescription: 'Couldn\'t have wine without them.',
- accentColor: const Color(0x40ac708a),
- seasons: [Season.autumn],
- vitaminAPercentage: 0,
- vitaminCPercentage: 2,
- servingSize: '3/4 cup',
- caloriesPerServing: 90,
- trivia: const [
- Trivia('How long ago were grapes introduced to the Americas?', [
- '100 years',
- '200 years',
- '300 years',
- ], 2),
- Trivia('Which of these is not an actual color of grapes?', [
- 'Pink',
- 'Yellow',
- 'Brown',
- ], 2),
- Trivia(
- 'About how many millions of tons of grapes are produced each year?',
- ['40', '80', '120'],
- 1,
- ),
- Trivia('There are about how many known varieties of grapes?', [
- '2,000',
- '4,000',
- '8,000',
- ], 2),
- ],
- ),
- Veggie(
- id: 11,
- name: 'Green Pepper',
- imageAssetPath: 'assets/images/green_bell_pepper.jpg',
- category: VeggieCategory.stealthFruit,
- shortDescription: 'Pleasantly bitter, like a sad movie.',
- accentColor: const Color(0x408eb332),
- seasons: [Season.summer],
- vitaminAPercentage: 4,
- vitaminCPercentage: 190,
- servingSize: '1 medium pepper',
- caloriesPerServing: 25,
- trivia: const [
- Trivia('What\'s the Australian term for a bell pepper?', [
- 'Capsicum',
- 'Ringer',
- 'John Dobbins',
- ], 0),
- Trivia('How are green peppers produced?', [
- 'They\'re picked before ripening',
- 'They\'re grown in the shade',
- 'They\'re a distinct species',
- ], 0),
- Trivia(
- 'How quickly can a green pepper grow from seed to harvest?',
- [
- '10 weeks',
- '20 weeks',
- '30 weeks',
- ],
- 0,
- ),
- ],
- ),
- Veggie(
- id: 12,
- name: 'Habanero',
- imageAssetPath: 'assets/images/habanero.jpg',
- category: VeggieCategory.stealthFruit,
- shortDescription: 'Delicious... in extremely small quantities.',
- accentColor: const Color(0x40ff7a01),
- seasons: [Season.summer, Season.autumn],
- vitaminAPercentage: 9,
- vitaminCPercentage: 100,
- servingSize: '1 pepper',
- caloriesPerServing: 20,
- trivia: const [
- Trivia('How high can habaneros rate on the Scoville scale?', [
- '200,000 units',
- '600,000 units',
- '1,000,000 units',
- ], 1),
- Trivia(
- 'Which of these is a pepper known to be hotter than the habanero?',
- ['Serrano pepper', 'Hatch chile', 'Pepper X'],
- 2,
- ),
- Trivia('Which of these isn\'t a variety of habaneros?', [
- 'White giant',
- 'Condor\'s beak',
- 'Saucy tyrant',
- ], 2),
- ],
- ),
- Veggie(
- id: 13,
- name: 'Kale',
- imageAssetPath: 'assets/images/kale.jpg',
- category: VeggieCategory.cruciferous,
- shortDescription:
- 'The meanest vegetable. Does not want to be eaten.',
- accentColor: const Color(0x40a86bd8),
- seasons: [Season.winter, Season.autumn],
- vitaminAPercentage: 133,
- vitaminCPercentage: 134,
- servingSize: '1 cup, chopped',
- caloriesPerServing: 33,
- trivia: const [
- Trivia('Kale is sweeter when harvested after what?', [
- 'Sundown',
- 'The first frost',
- 'Reading it a sad story',
- ], 1),
- Trivia(
- 'Which of these isn\'t a color in which Kale can be found?',
- [
- 'Purple',
- 'White',
- 'Orange',
- ],
- 2,
- ),
- Trivia(
- 'One serving of kale provides what percentage of a typical person\'s requirement for vitamin K?',
- ['100%', '300%', '900%'],
- 2,
- ),
- ],
- ),
- Veggie(
- id: 14,
- name: 'Kiwi',
- imageAssetPath: 'assets/images/kiwi.jpg',
- category: VeggieCategory.berry,
- shortDescription: 'Also known as Chinese gooseberry.',
- accentColor: const Color(0x40b47b37),
- seasons: [Season.summer],
- vitaminAPercentage: 2,
- vitaminCPercentage: 240,
- servingSize: '2 medium kiwis',
- caloriesPerServing: 90,
- trivia: const [
- Trivia('Europeans sometimes refer to kiwi as what?', [
- 'Chinese gooseberry',
- 'Gem berries',
- 'Bulbfruit',
- ], 0),
- Trivia('On what type of plant do kiwi grow?', [
- 'Tree',
- 'Shrub',
- 'Vine',
- ], 2),
- Trivia(
- 'Compared to oranges, kiwi typically contain how much vitamin C?',
- ['Half as much', 'About the same', 'Twice as much'],
- 2,
- ),
- ],
- ),
- Veggie(
- id: 15,
- name: 'Lemons',
- imageAssetPath: 'assets/images/lemon.jpg',
- category: VeggieCategory.citrus,
- shortDescription: 'Similar to limes, only yellow.',
- accentColor: const Color(0x40e2a500),
- seasons: [Season.winter],
- vitaminAPercentage: 0,
- vitaminCPercentage: 40,
- servingSize: '1 medium lemon',
- caloriesPerServing: 15,
- trivia: const [
- Trivia(
- 'A lemon tree can produce up to how many pounds of fruit each year?',
- ['100', '300', '600'],
- 2,
- ),
- Trivia('Which of these isn\'t a type of lemon?', [
- 'Acid',
- 'Sarcastic',
- 'Sweet',
- ], 1),
- Trivia('What percent of a typical lemon is composed of juice?', [
- '20%',
- '40%',
- '60%',
- ], 0),
- Trivia(
- 'Which lemon variety is prized for its sweeter-than-averga flavor?',
- ['Hookeye', 'Meyer', 'Minnesota Stomp'],
- 1,
- ),
- ],
- ),
- Veggie(
- id: 16,
- name: 'Limes',
- imageAssetPath: 'assets/images/lime.jpg',
- category: VeggieCategory.citrus,
- shortDescription:
- 'Couldn\'t have ceviche and margaritas without them.',
- accentColor: const Color(0x4089b733),
- seasons: [Season.winter],
- vitaminAPercentage: 0,
- vitaminCPercentage: 35,
- servingSize: '1 medium lime',
- caloriesPerServing: 20,
- trivia: const [
- Trivia('Which American state is famous for its Key Lime Pie?', [
- 'Pennsylvania',
- 'Arizona',
- 'Florida',
- ], 2),
- Trivia(
- 'Dried limes are a particularly popular soup ingredient in which part of the world?',
- ['Middle East', 'Africa', 'Australia'],
- 0,
- ),
- Trivia(
- 'Sailors once carried limes on their ships to help against which condition?',
- ['Influenza', 'Scurvy', 'Boredom'],
- 1,
- ),
- ],
- ),
- Veggie(
- id: 17,
- name: 'Mangos',
- imageAssetPath: 'assets/images/mango.jpg',
- category: VeggieCategory.tropical,
- shortDescription:
- 'A fun orange fruit popular with smoothie enthusiasts.',
- accentColor: const Color(0x40fcc93c),
- seasons: [Season.summer, Season.autumn],
- vitaminAPercentage: 72,
- vitaminCPercentage: 203,
- servingSize: '1 fruit',
- caloriesPerServing: 201,
- trivia: const [
- Trivia(
- 'In Mexico, mangos are frequently dusted with what spices before being eaten as a snack?',
- [
- 'Black pepper and sugar',
- 'Chile pepper and lime juice',
- 'Cumin and salt',
- ],
- 1,
- ),
- Trivia('To which nut is the mango closely related?', [
- 'Cashew',
- 'Peanut',
- 'Walnut',
- ], 0),
- Trivia('In which country did mangos originate?', [
- 'India',
- 'Madagascar',
- 'Belize',
- ], 0),
- ],
- ),
- Veggie(
- id: 18,
- name: 'Mushrooms',
- imageAssetPath: 'assets/images/mushroom.jpg',
- category: VeggieCategory.fungus,
- shortDescription: 'They\'re not truffles, but they\'re still tasty.',
- accentColor: const Color(0x40ba754b),
- seasons: [Season.spring, Season.autumn],
- vitaminAPercentage: 0,
- vitaminCPercentage: 2,
- servingSize: '5 medium \'shrooms',
- caloriesPerServing: 20,
- trivia: const [
- Trivia('Someone who loves eating mushrooms is called what?', [
- 'A mycophagist',
- 'A philologist',
- 'A phlebotomist',
- ], 0),
- Trivia(
- 'Morel mushrooms are particulary prized by cooks of which style of cuisine?',
- ['French', 'Italian', 'Japanese'],
- 0,
- ),
- Trivia(
- 'The largest living organism ever identified is what type of mushroom?',
- ['Shiitake mushroom', 'Honey mushroom', 'Glory mushroom'],
- 1,
- ),
- Trivia(
- 'One mushroom cousin is the truffle. Which color truffle is the most prized?',
- ['White', 'Black', 'Brown'],
- 0,
- ),
- ],
- ),
- Veggie(
- id: 19,
- name: 'Nectarines',
- imageAssetPath: 'assets/images/nectarine.jpg',
- category: VeggieCategory.stoneFruit,
- shortDescription: 'Tiny, bald peaches.',
- accentColor: const Color(0x40e45b3b),
- seasons: [Season.summer],
- vitaminAPercentage: 8,
- vitaminCPercentage: 15,
- servingSize: '1 medium nectarine',
- caloriesPerServing: 60,
- trivia: const [
- Trivia(
- 'Nectarines are technically a variety of which other fruit?',
- [
- 'Peach',
- 'Plum',
- 'Cherry',
- ],
- 0,
- ),
- Trivia('Nectarines are sometimes called what?', [
- 'Neckless geese',
- 'Giant grapes',
- 'Shaved peaches',
- ], 2),
- Trivia(
- 'Nectarines are thought to have originated in which country?',
- [
- 'China',
- 'Italy',
- 'Ethiopia',
- ],
- 0,
- ),
- ],
- ),
- Veggie(
- id: 20,
- name: 'Persimmons',
- imageAssetPath: 'assets/images/persimmon.jpg',
- category: VeggieCategory.fruit,
- shortDescription:
- 'It\'s like a plum and an apple had a baby together.',
- accentColor: const Color(0x40979852),
- seasons: [Season.winter, Season.autumn],
- vitaminAPercentage: 0,
- vitaminCPercentage: 27,
- servingSize: '1 fruit',
- caloriesPerServing: 32,
- trivia: const [
- Trivia('What\'s the most commonly grown variety of persimmon?', [
- 'Sugar',
- 'Yellowbird',
- 'Kaki',
- ], 2),
- Trivia('The word "persimmon" is derived from which language?', [
- 'Latin',
- 'Indo-European',
- 'Powhatan',
- ], 2),
- Trivia('Which of these is an alternate variety of persimmon?', [
- 'Black Sapote',
- 'Green Troubador',
- 'Red Captain',
- ], 0),
- ],
- ),
- Veggie(
- id: 21,
- name: 'Plums',
- imageAssetPath: 'assets/images/plum.jpg',
- category: VeggieCategory.stoneFruit,
- shortDescription: 'Popular in fruit salads and children\'s tales.',
- accentColor: const Color(0x40e48b47),
- seasons: [Season.summer],
- vitaminAPercentage: 8,
- vitaminCPercentage: 10,
- servingSize: '2 medium plums',
- caloriesPerServing: 70,
- trivia: const [
- Trivia('Plums should be handled with care because...?', [
- 'They\'re particularly sticky',
- 'They bruise easily',
- 'It\'s easy to hurt their feelings',
- ], 1),
- Trivia('A dried plum is known as what?', [
- 'A prune',
- 'An apricot',
- 'A raisin',
- ], 0),
- Trivia('A sugar plum typically contains how much plum juice?', [
- '0%',
- '25%',
- '50%',
- ], 0),
- ],
- ),
- Veggie(
- id: 22,
- name: 'Potatoes',
- imageAssetPath: 'assets/images/potato.jpg',
- category: VeggieCategory.tuber,
- shortDescription: 'King of starches and giver of french fries.',
- accentColor: const Color(0x40c65c63),
- seasons: [Season.winter, Season.autumn],
- vitaminAPercentage: 0,
- vitaminCPercentage: 45,
- servingSize: '1 medium spud',
- caloriesPerServing: 110,
- trivia: const [
- Trivia(
- 'Which country consumes the most fried potatoes per capita?',
- [
- 'United States',
- 'Belgium',
- 'Ireland',
- ],
- 1,
- ),
- Trivia(
- 'Who is credited with introducing French Fries to the United States?',
- ['Thomas Jefferson', 'Betsy Ross', 'Alexander Hamilton'],
- 0,
- ),
- Trivia(
- 'The world record for loongest curly fry stands at how many inches?',
- ['38', '58', '78'],
- 0,
- ),
- ],
- ),
- Veggie(
- id: 23,
- name: 'Radicchio',
- imageAssetPath: 'assets/images/radicchio.jpg',
- category: VeggieCategory.leafy,
- shortDescription:
- 'It\'s that bitter taste in the salad you\'re eating.',
- accentColor: const Color(0x40d75875),
- seasons: [Season.spring, Season.autumn],
- vitaminAPercentage: 0,
- vitaminCPercentage: 10,
- servingSize: '2 cups shredded',
- caloriesPerServing: 20,
- trivia: const [
- Trivia(
- 'Radicchio is a particuarly good source of which mineral?',
- [
- 'Manganese',
- 'Mercury',
- 'Molybdenum',
- ],
- 0,
- ),
- Trivia('Radicchio should be stored at what temperature?', [
- 'Room temperature',
- 'Refrigerator temperature',
- 'Freezer temperature',
- ], 1),
- Trivia(
- 'What happens to the taste of radicchio once the plant flowers?',
- [
- 'It becomes bitter',
- 'It becomes sweeter',
- 'Nothing. It just looks nicer!',
- ],
- 0,
- ),
- ],
- ),
- Veggie(
- id: 24,
- name: 'Radishes',
- imageAssetPath: 'assets/images/radish.jpg',
- category: VeggieCategory.root,
- shortDescription:
- 'Try roasting them in addition to slicing them up raw.',
- accentColor: const Color(0x40819e4e),
- seasons: [Season.spring, Season.autumn],
- vitaminAPercentage: 0,
- vitaminCPercentage: 30,
- servingSize: '7 radishes',
- caloriesPerServing: 10,
- trivia: const [
- Trivia(
- 'Which ancient civilization is known to have used radish oil?',
- [
- 'Egyptian',
- 'Sumerian',
- 'Incan',
- ],
- 0,
- ),
- Trivia(
- 'What\'s the name of the radish commonly used in Japanese cuisine?',
- ['Daisuki', 'Daijin', 'Daikon'],
- 2,
- ),
- Trivia(
- 'The annual "Night of the Radishes" festival takes place just before Christmas Eve in which country?',
- ['Mexico', 'France', 'South Korea'],
- 0,
- ),
- ],
- ),
- Veggie(
- id: 25,
- name: 'Squash',
- imageAssetPath: 'assets/images/squash.jpg',
- category: VeggieCategory.gourd,
- shortDescription:
- 'Just slather them in butter and pop \'em in the oven.',
- accentColor: const Color(0x40dbb721),
- seasons: [Season.winter, Season.autumn],
- vitaminAPercentage: 297,
- vitaminCPercentage: 48,
- servingSize: '1 cup diced butternut',
- caloriesPerServing: 63,
- trivia: const [
- Trivia('Which of these is not a type of squash?', [
- 'Zucchini',
- 'Spaghetti',
- 'Martini',
- ], 2),
- Trivia('Gourds like squash are also handy as what?', [
- 'Containers',
- 'Furniture',
- 'Musical instruments',
- ], 0),
- Trivia(
- 'Which country is the world\'s largest importer of squashes?',
- [
- 'China',
- 'United States',
- 'Russia',
- ],
- 1,
- ),
- ],
- ),
- Veggie(
- id: 26,
- name: 'Strawberries',
- imageAssetPath: 'assets/images/strawberry.jpg',
- category: VeggieCategory.berry,
- shortDescription:
- 'A delicious fruit that keeps its seeds on the outside.',
- accentColor: const Color(0x40f06a44),
- seasons: [Season.spring, Season.summer],
- vitaminAPercentage: 0,
- vitaminCPercentage: 160,
- servingSize: '8 medium strawberries',
- caloriesPerServing: 50,
- trivia: const [
- Trivia('How many seeds are in the average strawberry?', [
- '50',
- '100',
- '200',
- ], 2),
- Trivia(
- 'Strawberries are closely related to which type of flower?',
- [
- 'The rose',
- 'The daisy',
- 'The tulip',
- ],
- 0,
- ),
- Trivia('Strawberries are unique among fruit for what reason?', [
- 'Their seeds are on the outside',
- 'Their flowers are striped',
- 'Their plants have a taproot',
- ], 0),
- ],
- ),
- Veggie(
- id: 27,
- name: 'Tangelo',
- imageAssetPath: 'assets/images/tangelo.jpg',
- category: VeggieCategory.citrus,
- shortDescription:
- 'No one\'s sure what they are or where they came from.',
- accentColor: const Color(0x40f88c06),
- seasons: [Season.winter, Season.autumn],
- vitaminAPercentage: 6,
- vitaminCPercentage: 181,
- servingSize: '1 medium tangelo',
- caloriesPerServing: 60,
- trivia: const [
- Trivia(
- 'The tangelo is thought to be a cross between oranges and which other fruit?',
- ['Peach', 'Plum', 'Pummelo'],
- 2,
- ),
- Trivia('Which of these is a variety of tangelo?', [
- 'Orlando',
- 'Bluebonnet',
- 'Creakey Pete',
- ], 0),
- Trivia('A typical tangelo is about what size?', [
- 'Golf ball',
- 'Baseball',
- 'Bowling ball',
- ], 1),
- ],
- ),
- Veggie(
- id: 28,
- name: 'Tomatoes',
- imageAssetPath: 'assets/images/tomato.jpg',
- category: VeggieCategory.stealthFruit,
- shortDescription: 'A new world food with old world tradition.',
- accentColor: const Color(0x40ea3628),
- seasons: [Season.summer],
- vitaminAPercentage: 20,
- vitaminCPercentage: 40,
- servingSize: '1 medium tomato',
- caloriesPerServing: 25,
- trivia: const [
- Trivia(
- 'French speakers sometimes refer to tomatoes with which name?',
- [
- 'Piet de terre',
- 'Mille-feuille',
- 'Pomme d\'amour',
- ],
- 2,
- ),
- Trivia(
- 'The largest tomato known to have been grown weighed in at how many pounds?',
- ['8', '10', '12'],
- 0,
- ),
- Trivia(
- 'Which country is the world\'s largest producer of tomatoes?',
- [
- 'China',
- 'Italy',
- 'Ecuador',
- ],
- 0,
- ),
- ],
- ),
- Veggie(
- id: 29,
- name: 'Watermelon',
- imageAssetPath: 'assets/images/watermelon.jpg',
- category: VeggieCategory.melon,
- shortDescription: 'Everyone\'s favorite closing act at the picnic.',
- accentColor: const Color(0x40fa8c75),
- seasons: [Season.summer],
- vitaminAPercentage: 30,
- vitaminCPercentage: 25,
- servingSize: '2 cups diced',
- caloriesPerServing: 80,
- trivia: const [
- Trivia('How much of a watermelon is water?', [
- '50%',
- '75%',
- '90%',
- ], 2),
- Trivia(
- 'Which nation is famous for growing watermelons in unsual shapes like cubes and hearts?',
- ['Armenia', 'Japan', 'Saudi Arabia'],
- 1,
- ),
- Trivia(
- 'Which U.S. state declared the watermelon to be its state vegetable (that\'s right, vegetable)?',
- ['Kansas', 'Iowa', 'Oklahoma'],
- 2,
- ),
- Trivia(
- 'Early explorers to the Americas used watermelons as which piece of equipment?',
- ['Stools', 'Pillows', 'Canteens'],
- 2,
- ),
- ],
- ),
- Veggie(
- id: 30,
- name: 'Orange Bell Pepper',
- imageAssetPath: 'assets/images/orange_bell_pepper.jpg',
- category: VeggieCategory.stealthFruit,
- shortDescription: 'Like green pepper, but nicer.',
- accentColor: const Color(0x40fd8e00),
- seasons: [Season.summer],
- vitaminAPercentage: 4,
- vitaminCPercentage: 190,
- servingSize: '1 medium pepper',
- caloriesPerServing: 25,
- trivia: const [
- Trivia(
- 'Which compound (not found in bell peppers) is responsible for many peppers\' spicy taste?',
- ['Alum', 'Capsacin', 'Calcium'],
- 1,
- ),
- Trivia(
- 'In comparison to green peppers, how expensive are their orange cousins?',
- ['Cheaper', 'About the same', 'More expensive'],
- 2,
- ),
- Trivia(
- 'Who is generally credited with giving bell peppers their peppery name?',
- [
- 'Christopher Columbus',
- 'Benjamin Franklin',
- 'Eleanor Roosevelt',
- ],
- 0,
- ),
- ],
- ),
- ];
-}
diff --git a/veggieseasons/lib/data/preferences.dart b/veggieseasons/lib/data/preferences.dart
deleted file mode 100644
index 07f16cad050..00000000000
--- a/veggieseasons/lib/data/preferences.dart
+++ /dev/null
@@ -1,90 +0,0 @@
-// Copyright 2018 The Flutter team. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'dart:async';
-
-import 'package:flutter/cupertino.dart';
-import 'package:shared_preferences/shared_preferences.dart';
-import 'veggie.dart';
-
-/// A model class that mirrors the options in [SettingsScreen] and stores data
-/// in shared preferences.
-class Preferences extends ChangeNotifier {
- // Keys to use with shared preferences.
- static const _caloriesKey = 'calories';
- static const _preferredCategoriesKey = 'preferredCategories';
-
- // Indicates whether a call to [_loadFromSharedPrefs] is in progress;
- Future? _loading;
-
- int _desiredCalories = 2000;
-
- final Set _preferredCategories = {};
-
- Future get desiredCalories async {
- await _loading;
- return _desiredCalories;
- }
-
- Future> get preferredCategories async {
- await _loading;
- return Set.from(_preferredCategories);
- }
-
- Future addPreferredCategory(VeggieCategory category) async {
- _preferredCategories.add(category);
- await _saveToSharedPrefs();
- notifyListeners();
- }
-
- Future removePreferredCategory(VeggieCategory category) async {
- _preferredCategories.remove(category);
- await _saveToSharedPrefs();
- notifyListeners();
- }
-
- Future setDesiredCalories(int calories) async {
- _desiredCalories = calories;
- await _saveToSharedPrefs();
- notifyListeners();
- }
-
- Future restoreDefaults() async {
- final prefs = await SharedPreferences.getInstance();
- await prefs.clear();
- load();
- }
-
- void load() {
- _loading = _loadFromSharedPrefs();
- }
-
- Future _saveToSharedPrefs() async {
- final prefs = await SharedPreferences.getInstance();
- await prefs.setInt(_caloriesKey, _desiredCalories);
-
- // Store preferred categories as a comma-separated string containing their
- // indices.
- await prefs.setString(
- _preferredCategoriesKey,
- _preferredCategories.map((c) => c.index.toString()).join(','),
- );
- }
-
- Future _loadFromSharedPrefs() async {
- final prefs = await SharedPreferences.getInstance();
- _desiredCalories = prefs.getInt(_caloriesKey) ?? 2000;
- _preferredCategories.clear();
- final names = prefs.getString(_preferredCategoriesKey);
-
- if (names != null && names.isNotEmpty) {
- for (final name in names.split(',')) {
- final index = int.tryParse(name) ?? -1;
- _preferredCategories.add(VeggieCategory.values[index]);
- }
- }
-
- notifyListeners();
- }
-}
diff --git a/veggieseasons/lib/data/veggie.dart b/veggieseasons/lib/data/veggie.dart
deleted file mode 100644
index feeb83bd5d7..00000000000
--- a/veggieseasons/lib/data/veggie.dart
+++ /dev/null
@@ -1,125 +0,0 @@
-// Copyright 2018 The Flutter team. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/cupertino.dart';
-
-enum VeggieCategory {
- allium,
- berry,
- citrus,
- cruciferous,
- fern,
- flower,
- fruit,
- fungus,
- gourd,
- leafy,
- legume,
- melon,
- root,
- stealthFruit,
- stoneFruit,
- tropical,
- tuber,
- vegetable,
-}
-
-enum Season { winter, spring, summer, autumn }
-
-class Trivia {
- final String question;
- final List answers;
- final int correctAnswerIndex;
-
- const Trivia(this.question, this.answers, this.correctAnswerIndex);
-}
-
-const Map veggieCategoryNames = {
- VeggieCategory.allium: 'Allium',
- VeggieCategory.berry: 'Berry',
- VeggieCategory.citrus: 'Citrus',
- VeggieCategory.cruciferous: 'Cruciferous',
- VeggieCategory.fern: 'Technically a fern',
- VeggieCategory.flower: 'Flower',
- VeggieCategory.fruit: 'Fruit',
- VeggieCategory.fungus: 'Fungus',
- VeggieCategory.gourd: 'Gourd',
- VeggieCategory.leafy: 'Leafy',
- VeggieCategory.legume: 'Legume',
- VeggieCategory.melon: 'Melon',
- VeggieCategory.root: 'Root vegetable',
- VeggieCategory.stealthFruit: 'Stealth fruit',
- VeggieCategory.stoneFruit: 'Stone fruit',
- VeggieCategory.tropical: 'Tropical',
- VeggieCategory.tuber: 'Tuber',
- VeggieCategory.vegetable: 'Vegetable',
-};
-
-const Map seasonNames = {
- Season.winter: 'Winter',
- Season.spring: 'Spring',
- Season.summer: 'Summer',
- Season.autumn: 'Autumn',
-};
-
-class Veggie {
- Veggie({
- required this.id,
- required this.name,
- required this.imageAssetPath,
- required this.category,
- required this.shortDescription,
- required this.accentColor,
- required this.seasons,
- required this.vitaminAPercentage,
- required this.vitaminCPercentage,
- required this.servingSize,
- required this.caloriesPerServing,
- required this.trivia,
- this.isFavorite = false,
- });
-
- final int id;
-
- final String name;
-
- /// Each veggie has an associated image asset that's used as a background
- /// image and icon.
- final String imageAssetPath;
-
- final VeggieCategory category;
-
- /// A short, snappy line.
- final String shortDescription;
-
- /// A color value to use when constructing UI elements to match the image
- /// found at [imageAssetPath].
- final Color accentColor;
-
- /// Seasons during which a veggie is harvested.
- final List seasons;
-
- /// Percentage of the FDA's recommended daily value of vitamin A for someone
- /// with a 2,000 calorie diet.
- final int vitaminAPercentage;
-
- /// Percentage of the FDA's recommended daily value of vitamin C for someone
- /// with a 2,000 calorie diet.
- final int vitaminCPercentage;
-
- /// A text description of a single serving (e.g. '1 apple' or '1/2 cup').
- final String servingSize;
-
- /// Calories per serving (as described in [servingSize]).
- final int caloriesPerServing;
-
- /// Whether or not the veggie has been saved to the user's garden (i.e. marked
- /// as a favorite).
- bool isFavorite;
-
- /// A set of trivia questions and answers related to the veggie.
- final List trivia;
-
- String? get categoryName => veggieCategoryNames[category];
-}
diff --git a/veggieseasons/lib/main.dart b/veggieseasons/lib/main.dart
deleted file mode 100644
index 13f321fe0dc..00000000000
--- a/veggieseasons/lib/main.dart
+++ /dev/null
@@ -1,243 +0,0 @@
-// Copyright 2018 The Flutter team. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'dart:io' show Platform;
-
-import 'package:flutter/cupertino.dart';
-import 'package:flutter/foundation.dart' show kIsWeb;
-import 'package:flutter/services.dart'
- show DeviceOrientation, SystemChrome;
-import 'package:go_router/go_router.dart';
-import 'package:provider/provider.dart';
-import 'package:window_size/window_size.dart';
-
-import 'data/app_state.dart';
-import 'data/preferences.dart';
-import 'screens/details.dart';
-import 'screens/favorites.dart';
-import 'screens/home.dart';
-import 'screens/list.dart';
-import 'screens/search.dart';
-import 'screens/settings.dart';
-import 'styles.dart';
-import 'widgets/veggie_seasons_page.dart';
-
-void main() {
- WidgetsFlutterBinding.ensureInitialized();
- SystemChrome.setPreferredOrientations([
- DeviceOrientation.portraitUp,
- DeviceOrientation.portraitDown,
- ]);
- setupWindow();
-
- runApp(
- const RootRestorationScope(restorationId: 'root', child: VeggieApp()),
- );
-}
-
-const double windowWidth = 480;
-const double windowHeight = 854;
-
-void setupWindow() {
- if (!kIsWeb &&
- (Platform.isWindows || Platform.isLinux || Platform.isMacOS)) {
- setWindowTitle('Veggie Seasons');
- setWindowMinSize(const Size(windowWidth, windowHeight));
- setWindowMaxSize(const Size(windowWidth, windowHeight));
- getCurrentScreen().then((screen) {
- setWindowFrame(
- Rect.fromCenter(
- center: screen!.frame.center,
- width: windowWidth,
- height: windowHeight,
- ),
- );
- });
- }
-}
-
-final _rootNavigatorKey = GlobalKey();
-final _shellNavigatorKey = GlobalKey();
-
-class VeggieApp extends StatefulWidget {
- const VeggieApp({super.key});
-
- @override
- State createState() => _VeggieAppState();
-}
-
-class _VeggieAppState extends State with RestorationMixin {
- final _RestorableAppState _appState = _RestorableAppState();
-
- @override
- String get restorationId => 'wrapper';
-
- @override
- void restoreState(RestorationBucket? oldBucket, bool initialRestore) {
- registerForRestoration(_appState, 'state');
- }
-
- @override
- void dispose() {
- _appState.dispose();
- super.dispose();
- }
-
- @override
- Widget build(BuildContext context) {
- return MultiProvider(
- providers: [
- ChangeNotifierProvider.value(value: _appState.value),
- ChangeNotifierProvider(create: (_) => Preferences()..load()),
- ],
- child: CupertinoApp.router(
- theme: Styles.veggieThemeData,
- debugShowCheckedModeBanner: false,
- restorationScopeId: 'app',
- routerConfig: GoRouter(
- navigatorKey: _rootNavigatorKey,
- restorationScopeId: 'router',
- initialLocation: '/list',
- redirect: (context, state) {
- if (state.path == '/') {
- return '/list';
- }
- return null;
- },
- debugLogDiagnostics: true,
- routes: [
- ShellRoute(
- navigatorKey: _shellNavigatorKey,
- pageBuilder: (context, state, child) {
- return CupertinoPage(
- restorationId: 'router.shell',
- child: HomeScreen(
- restorationId: 'home',
- child: child,
- onTap: (index) {
- if (index == 0) {
- context.go('/list');
- } else if (index == 1) {
- context.go('/favorites');
- } else if (index == 2) {
- context.go('/search');
- } else {
- context.go('/settings');
- }
- },
- ),
- );
- },
- routes: [
- GoRoute(
- path: '/list',
- pageBuilder: (context, state) {
- return VeggieSeasonsPage(
- key: state.pageKey,
- restorationId: 'route.list',
- child: const ListScreen(restorationId: 'list'),
- );
- },
- routes: [_buildDetailsRoute()],
- ),
- GoRoute(
- path: '/favorites',
- pageBuilder: (context, state) {
- return VeggieSeasonsPage(
- key: state.pageKey,
- restorationId: 'route.favorites',
- child: const FavoritesScreen(
- restorationId: 'favorites',
- ),
- );
- },
- routes: [_buildDetailsRoute()],
- ),
- GoRoute(
- path: '/search',
- pageBuilder: (context, state) {
- return VeggieSeasonsPage(
- key: state.pageKey,
- restorationId: 'route.search',
- child: const SearchScreen(restorationId: 'search'),
- );
- },
- routes: [_buildDetailsRoute()],
- ),
- GoRoute(
- path: '/settings',
- pageBuilder: (context, state) {
- return VeggieSeasonsPage(
- key: state.pageKey,
- restorationId: 'route.settings',
- child: const SettingsScreen(
- restorationId: 'settings',
- ),
- );
- },
- routes: [
- GoRoute(
- parentNavigatorKey: _rootNavigatorKey,
- path: 'categories',
- pageBuilder: (context, state) {
- return VeggieCategorySettingsScreen.pageBuilder(
- context,
- );
- },
- ),
- GoRoute(
- parentNavigatorKey: _rootNavigatorKey,
- path: 'calories',
- pageBuilder: (context, state) {
- return CalorieSettingsScreen.pageBuilder(context);
- },
- ),
- ],
- ),
- ],
- ),
- ],
- ),
- ),
- );
- }
-
- // GoRouter does not support relative routes,
- // see https://github.com/flutter/flutter/issues/108177
- GoRoute _buildDetailsRoute() {
- return GoRoute(
- parentNavigatorKey: _rootNavigatorKey,
- path: 'details/:id',
- pageBuilder: (context, state) {
- final veggieId = int.parse(state.pathParameters['id']!);
- return CupertinoPage(
- restorationId: 'route.details',
- child: DetailsScreen(id: veggieId, restorationId: 'details'),
- );
- },
- );
- }
-}
-
-class _RestorableAppState extends RestorableListenable {
- @override
- AppState createDefaultValue() {
- return AppState();
- }
-
- @override
- AppState fromPrimitives(Object? data) {
- final appState = AppState();
- final favorites = (data as List).cast();
- for (var id in favorites) {
- appState.setFavorite(id, true);
- }
- return appState;
- }
-
- @override
- Object toPrimitives() {
- return value.favoriteVeggies.map((veggie) => veggie.id).toList();
- }
-}
diff --git a/veggieseasons/lib/screens/details.dart b/veggieseasons/lib/screens/details.dart
deleted file mode 100644
index 90c3aa013e0..00000000000
--- a/veggieseasons/lib/screens/details.dart
+++ /dev/null
@@ -1,294 +0,0 @@
-// Copyright 2018 The Flutter team. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/cupertino.dart';
-import 'package:go_router/go_router.dart';
-import 'package:provider/provider.dart';
-import '../data/app_state.dart';
-import '../data/preferences.dart';
-import '../data/veggie.dart';
-import '../styles.dart';
-import '../widgets/detail_buttons.dart';
-
-class ServingInfoChart extends StatelessWidget {
- const ServingInfoChart(this.veggie, this.prefs, {super.key});
-
- final Veggie veggie;
-
- final Preferences prefs;
-
- // Creates a [Text] widget to display a veggie's "percentage of your daily
- // value of this vitamin" data adjusted for the user's preferred calorie
- // target.
- Widget _buildVitaminText(
- int standardPercentage,
- Future targetCalories,
- ) {
- return FutureBuilder(
- future: targetCalories,
- builder: (context, snapshot) {
- final target = snapshot.data ?? 2000;
- final percent = standardPercentage * 2000 ~/ target;
-
- return Text(
- '$percent% DV',
- style: CupertinoTheme.of(context).textTheme.textStyle,
- textAlign: TextAlign.end,
- );
- },
- );
- }
-
- @override
- Widget build(BuildContext context) {
- final themeData = CupertinoTheme.of(context);
- return Column(
- children: [
- const SizedBox(height: 32),
- Row(
- mainAxisSize: MainAxisSize.max,
- children: [
- Text(
- 'Serving size',
- style: Styles.detailsServingLabelText(themeData),
- ),
- const Spacer(),
- Text(
- veggie.servingSize,
- textAlign: TextAlign.end,
- style: CupertinoTheme.of(context).textTheme.textStyle,
- ),
- ],
- ),
- const SizedBox(height: 24),
- Row(
- mainAxisSize: MainAxisSize.max,
- children: [
- Text(
- 'Calories',
- style: Styles.detailsServingLabelText(themeData),
- ),
- const Spacer(),
- Text(
- '${veggie.caloriesPerServing} kCal',
- style: CupertinoTheme.of(context).textTheme.textStyle,
- textAlign: TextAlign.end,
- ),
- ],
- ),
- const SizedBox(height: 24),
- Row(
- mainAxisSize: MainAxisSize.max,
- children: [
- Text(
- 'Vitamin A',
- style: Styles.detailsServingLabelText(themeData),
- ),
- const Spacer(),
- _buildVitaminText(
- veggie.vitaminAPercentage,
- prefs.desiredCalories,
- ),
- ],
- ),
- const SizedBox(height: 24),
- Row(
- mainAxisSize: MainAxisSize.max,
- children: [
- Text(
- 'Vitamin C',
- style: Styles.detailsServingLabelText(themeData),
- ),
- const Spacer(),
- _buildVitaminText(
- veggie.vitaminCPercentage,
- prefs.desiredCalories,
- ),
- ],
- ),
- Padding(
- padding: const EdgeInsets.only(top: 32),
- child: FutureBuilder(
- future: prefs.desiredCalories,
- builder: (context, snapshot) {
- return Text(
- 'Percent daily values based on a diet of '
- '${snapshot.data ?? '2,000'} calories.',
- style: Styles.detailsServingNoteText(themeData),
- );
- },
- ),
- ),
- ],
- );
- }
-}
-
-class InfoView extends StatelessWidget {
- final int? id;
-
- const InfoView(this.id, {super.key});
-
- @override
- Widget build(BuildContext context) {
- final appState = Provider.of(context);
- final prefs = Provider.of(context);
- final veggie = appState.getVeggie(id);
- final themeData = CupertinoTheme.of(context);
-
- return Padding(
- padding: const EdgeInsets.all(24),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.stretch,
- children: [
- Text(veggie.name, style: Styles.detailsTitleText(themeData)),
- const SizedBox(height: 8),
- Text(
- veggie.shortDescription,
- style: CupertinoTheme.of(context).textTheme.textStyle,
- ),
- const SizedBox(height: 16),
- Text(
- 'Seasons',
- style: Styles.detailsServingLabelText(themeData),
- ),
- const SizedBox(height: 12),
- Row(
- mainAxisSize: MainAxisSize.max,
- children: [
- for (var season in Season.values) ...[
- const Spacer(),
- Column(
- mainAxisSize: MainAxisSize.min,
- children: [
- Icon(
- Styles.seasonIconData[season],
- color: veggie.seasons.contains(season)
- ? Styles.seasonColors[season]
- : const Color.fromRGBO(128, 128, 128, 1),
- size: 24,
- ),
- const SizedBox(height: 4),
- Text(
- season.name.characters.first.toUpperCase() +
- season.name.characters.skip(1).string,
- style: Styles.minorText(
- CupertinoTheme.of(context),
- ).copyWith(fontSize: 11),
- ),
- ],
- ),
- const Spacer(),
- ],
- ],
- ),
- ServingInfoChart(veggie, prefs),
- ],
- ),
- );
- }
-}
-
-class DetailsScreen extends StatelessWidget {
- final int? id;
- final String? restorationId;
-
- const DetailsScreen({this.id, this.restorationId, super.key});
-
- Widget _buildHeader(BuildContext context, AppState model) {
- final veggie = model.getVeggie(id);
-
- return SizedBox(
- height: 240,
- child: Stack(
- children: [
- Positioned(
- right: 0,
- left: 0,
- child: Image.asset(
- veggie.imageAssetPath,
- fit: BoxFit.cover,
- semanticLabel: 'A background image of ${veggie.name}',
- ),
- ),
- Positioned(
- top: 16,
- left: 16,
- child: SafeArea(
- child: CloseButton(() {
- context.pop();
- }),
- ),
- ),
- Positioned(
- top: 16,
- right: 16,
- child: SafeArea(
- child: Row(
- mainAxisSize: MainAxisSize.min,
- children: [
- ShareButton(() {
- showCupertinoModalPopup(
- context: context,
- builder: (context) {
- return CupertinoActionSheet(
- title: Text('Share ${veggie.name}'),
- message: Text(veggie.shortDescription),
- actions: [
- CupertinoActionSheetAction(
- onPressed: () {
- Navigator.pop(context);
- },
- child: const Text('OK'),
- ),
- ],
- );
- },
- );
- }),
- const SizedBox(width: 8),
- Builder(
- builder: (context) {
- final appState = Provider.of(context);
- final veggie = appState.getVeggie(id);
-
- return FavoriteButton(
- () => appState.setFavorite(id, !veggie.isFavorite),
- veggie.isFavorite,
- );
- },
- ),
- ],
- ),
- ),
- ),
- ],
- ),
- );
- }
-
- @override
- Widget build(BuildContext context) {
- final appState = Provider.of(context);
-
- return CupertinoPageScaffold(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.stretch,
- mainAxisSize: MainAxisSize.min,
- children: [
- Expanded(
- child: ListView(
- restorationId: 'list',
- children: [
- _buildHeader(context, appState),
- const SizedBox(height: 20),
- InfoView(id),
- ],
- ),
- ),
- ],
- ),
- );
- }
-}
diff --git a/veggieseasons/lib/screens/favorites.dart b/veggieseasons/lib/screens/favorites.dart
deleted file mode 100644
index 3bdf2b0790c..00000000000
--- a/veggieseasons/lib/screens/favorites.dart
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2018 The Flutter team. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/cupertino.dart';
-import 'package:provider/provider.dart';
-import '../data/app_state.dart';
-import '../data/veggie.dart';
-import '../widgets/veggie_headline.dart';
-
-class FavoritesScreen extends StatelessWidget {
- const FavoritesScreen({this.restorationId, super.key});
-
- final String? restorationId;
-
- @override
- Widget build(BuildContext context) {
- return CupertinoTabView(
- restorationScopeId: restorationId,
- builder: (context) {
- final model = Provider.of(context);
-
- return CupertinoPageScaffold(
- navigationBar: const CupertinoNavigationBar(
- middle: Text('My Garden'),
- ),
- child: Center(
- child: model.favoriteVeggies.isEmpty
- ? Padding(
- padding: const EdgeInsets.symmetric(horizontal: 24),
- child: Text(
- 'You haven\'t added any favorite veggies to your garden yet.',
- style: CupertinoTheme.of(
- context,
- ).textTheme.textStyle,
- ),
- )
- : ListView(
- restorationId: 'list',
- children: [
- const SizedBox(height: 24),
- for (Veggie veggie in model.favoriteVeggies)
- Padding(
- padding: const EdgeInsets.fromLTRB(
- 16,
- 0,
- 16,
- 24,
- ),
- child: VeggieHeadline(veggie),
- ),
- ],
- ),
- ),
- );
- },
- );
- }
-}
diff --git a/veggieseasons/lib/screens/home.dart b/veggieseasons/lib/screens/home.dart
deleted file mode 100644
index fd46ba9bbeb..00000000000
--- a/veggieseasons/lib/screens/home.dart
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright 2018 The Flutter team. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/cupertino.dart';
-import 'package:go_router/go_router.dart';
-
-const _bottomNavigationBarItemIconPadding = EdgeInsets.only(top: 4.0);
-
-class HomeScreen extends StatelessWidget {
- const HomeScreen({
- super.key,
- this.restorationId,
- required this.child,
- required this.onTap,
- });
-
- final String? restorationId;
- final Widget child;
- final void Function(int) onTap;
-
- @override
- Widget build(BuildContext context) {
- final String location = GoRouter.of(
- context,
- ).routerDelegate.currentConfiguration.uri.toString();
- final index = _getSelectedIndex(location);
- return RestorationScope(
- restorationId: restorationId,
- child: CupertinoPageScaffold(
- child: Column(
- children: [
- Expanded(child: child),
- CupertinoTabBar(
- currentIndex: index,
- items: const [
- BottomNavigationBarItem(
- icon: Padding(
- padding: _bottomNavigationBarItemIconPadding,
- child: Icon(CupertinoIcons.home),
- ),
- label: 'Home',
- ),
- BottomNavigationBarItem(
- icon: Padding(
- padding: _bottomNavigationBarItemIconPadding,
- child: Icon(CupertinoIcons.book),
- ),
- label: 'My Garden',
- ),
- BottomNavigationBarItem(
- icon: Padding(
- padding: _bottomNavigationBarItemIconPadding,
- child: Icon(CupertinoIcons.search),
- ),
- label: 'Search',
- ),
- BottomNavigationBarItem(
- icon: Padding(
- padding: _bottomNavigationBarItemIconPadding,
- child: Icon(CupertinoIcons.settings),
- ),
- label: 'Settings',
- ),
- ],
- onTap: onTap,
- ),
- ],
- ),
- ),
- );
- }
-
- int _getSelectedIndex(String location) {
- if (location.startsWith('/list')) return 0;
- if (location.startsWith('/favorites')) return 1;
- if (location.startsWith('/search')) return 2;
- if (location.startsWith('/settings')) return 3;
- return 0;
- }
-}
diff --git a/veggieseasons/lib/screens/list.dart b/veggieseasons/lib/screens/list.dart
deleted file mode 100644
index c3483224718..00000000000
--- a/veggieseasons/lib/screens/list.dart
+++ /dev/null
@@ -1,95 +0,0 @@
-// Copyright 2018 The Flutter team. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/cupertino.dart';
-import 'package:flutter/services.dart';
-import 'package:provider/provider.dart';
-import '../data/app_state.dart';
-import '../data/preferences.dart';
-import '../data/veggie.dart';
-import '../styles.dart';
-import '../widgets/veggie_card.dart';
-
-class ListScreen extends StatelessWidget {
- const ListScreen({this.restorationId, super.key});
-
- final String? restorationId;
-
- Widget _generateVeggieCard(
- Veggie veggie,
- Preferences prefs, {
- bool inSeason = true,
- }) {
- return Padding(
- padding: const EdgeInsets.only(left: 16, right: 16, bottom: 24),
- child: FutureBuilder>(
- future: prefs.preferredCategories,
- builder: (context, snapshot) {
- final data = snapshot.data ?? {};
- return VeggieCard(
- veggie,
- inSeason,
- data.contains(veggie.category),
- );
- },
- ),
- );
- }
-
- @override
- Widget build(BuildContext context) {
- return CupertinoTabView(
- restorationScopeId: restorationId,
- builder: (context) {
- final appState = Provider.of(context);
- final prefs = Provider.of(context);
- final themeData = CupertinoTheme.of(context);
- return AnnotatedRegion(
- value: SystemUiOverlayStyle(
- statusBarBrightness: MediaQuery.platformBrightnessOf(context),
- ),
- child: SafeArea(
- bottom: false,
- child: ListView.builder(
- restorationId: 'list',
- itemCount: appState.allVeggies.length + 2,
- itemBuilder: (context, index) {
- if (index == 0) {
- return Padding(
- padding: const EdgeInsets.fromLTRB(16, 24, 16, 16),
- child: Text(
- 'In season today',
- style: Styles.headlineText(themeData),
- ),
- );
- } else if (index <= appState.availableVeggies.length) {
- return _generateVeggieCard(
- appState.availableVeggies[index - 1],
- prefs,
- );
- } else if (index <= appState.availableVeggies.length + 1) {
- return Padding(
- padding: const EdgeInsets.fromLTRB(16, 24, 16, 16),
- child: Text(
- 'Not in season',
- style: Styles.headlineText(themeData),
- ),
- );
- } else {
- var relativeIndex =
- index - (appState.availableVeggies.length + 2);
- return _generateVeggieCard(
- appState.unavailableVeggies[relativeIndex],
- prefs,
- inSeason: false,
- );
- }
- },
- ),
- ),
- );
- },
- );
- }
-}
diff --git a/veggieseasons/lib/screens/search.dart b/veggieseasons/lib/screens/search.dart
deleted file mode 100644
index 824c6df119c..00000000000
--- a/veggieseasons/lib/screens/search.dart
+++ /dev/null
@@ -1,132 +0,0 @@
-// Copyright 2018 The Flutter team. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/cupertino.dart';
-import 'package:flutter/services.dart';
-import 'package:provider/provider.dart';
-import '../data/app_state.dart';
-import '../data/veggie.dart';
-import '../widgets/veggie_headline.dart';
-
-class SearchScreen extends StatefulWidget {
- const SearchScreen({this.restorationId, super.key});
-
- final String? restorationId;
-
- @override
- State createState() => _SearchScreenState();
-}
-
-class _SearchScreenState extends State
- with RestorationMixin {
- final controller = RestorableTextEditingController();
- final focusNode = FocusNode();
- String? terms;
-
- @override
- String? get restorationId => widget.restorationId;
-
- @override
- void restoreState(RestorationBucket? oldBucket, bool initialRestore) {
- registerForRestoration(controller, 'text');
- controller.addListener(_onTextChanged);
- terms = controller.value.text;
- }
-
- @override
- void dispose() {
- focusNode.dispose();
- controller.dispose();
- super.dispose();
- }
-
- void _onTextChanged() {
- setState(() => terms = controller.value.text);
- }
-
- Widget _createSearchBox({bool focus = true}) {
- return Padding(
- padding: const EdgeInsets.all(8),
- child: CupertinoSearchTextField(
- controller: controller.value,
- focusNode: focus ? focusNode : null,
- ),
- );
- }
-
- Widget _buildSearchResults(List veggies) {
- if (veggies.isEmpty) {
- return Center(
- child: Padding(
- padding: const EdgeInsets.symmetric(horizontal: 24),
- child: Text(
- 'No veggies matching your search terms were found.',
- style: CupertinoTheme.of(context).textTheme.textStyle,
- ),
- ),
- );
- }
-
- return ListView.builder(
- restorationId: 'list',
- itemCount: veggies.length + 1,
- itemBuilder: (context, i) {
- if (i == 0) {
- return Visibility(
- // This invisible and otherwise unnecessary search box is used to
- // pad the list entries downward, so none will be underneath the
- // real search box when the list is at its top scroll position.
- visible: false,
- maintainSize: true,
- maintainAnimation: true,
- maintainState: true,
- // This invisible and otherwise unnecessary search box is used to
- // pad the list entries downward, so none will be underneath the
- // real search box when the list is at its top scroll position.
- child: _createSearchBox(focus: false),
- );
- } else {
- return Padding(
- padding: const EdgeInsets.only(
- left: 16,
- right: 16,
- bottom: 24,
- ),
- child: VeggieHeadline(veggies[i - 1]),
- );
- }
- },
- );
- }
-
- @override
- Widget build(BuildContext context) {
- final model = Provider.of(context);
-
- return UnmanagedRestorationScope(
- bucket: bucket,
- child: CupertinoTabView(
- restorationScopeId: 'tabview',
- builder: (context) {
- return AnnotatedRegion(
- value: SystemUiOverlayStyle(
- statusBarBrightness: MediaQuery.platformBrightnessOf(
- context,
- ),
- ),
- child: SafeArea(
- bottom: false,
- child: Stack(
- children: [
- _buildSearchResults(model.searchVeggies(terms)),
- _createSearchBox(),
- ],
- ),
- ),
- );
- },
- ),
- );
- }
-}
diff --git a/veggieseasons/lib/screens/settings.dart b/veggieseasons/lib/screens/settings.dart
deleted file mode 100644
index eb537dcaa65..00000000000
--- a/veggieseasons/lib/screens/settings.dart
+++ /dev/null
@@ -1,311 +0,0 @@
-// Copyright 2018 The Flutter team. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/cupertino.dart';
-import 'package:go_router/go_router.dart';
-import 'package:provider/provider.dart';
-import '../data/preferences.dart';
-import '../data/veggie.dart';
-import '../styles.dart';
-
-class VeggieCategorySettingsScreen extends StatelessWidget {
- const VeggieCategorySettingsScreen({super.key, this.restorationId});
-
- final String? restorationId;
-
- static Page pageBuilder(BuildContext context) {
- return const CupertinoPage(
- restorationId: 'router.categories',
- child: VeggieCategorySettingsScreen(restorationId: 'category'),
- title: 'Preferred Categories',
- );
- }
-
- @override
- Widget build(BuildContext context) {
- final model = Provider.of(context);
- final currentPrefs = model.preferredCategories;
- var brightness = CupertinoTheme.brightnessOf(context);
- return RestorationScope(
- restorationId: restorationId,
- child: CupertinoPageScaffold(
- navigationBar: const CupertinoNavigationBar(
- middle: Text('Preferred Categories'),
- previousPageTitle: 'Settings',
- ),
- backgroundColor: Styles.scaffoldBackground(brightness),
- child: FutureBuilder>(
- future: currentPrefs,
- builder: (context, snapshot) {
- final tiles = [];
-
- for (final category in VeggieCategory.values) {
- CupertinoSwitch toggle;
-
- // It's possible that category data hasn't loaded from shared prefs
- // yet, so display it if possible and fall back to disabled switches
- // otherwise.
- if (snapshot.hasData) {
- toggle = CupertinoSwitch(
- value: snapshot.data!.contains(category),
- onChanged: (value) {
- if (value) {
- model.addPreferredCategory(category);
- } else {
- model.removePreferredCategory(category);
- }
- },
- );
- } else {
- toggle = const CupertinoSwitch(
- value: false,
- onChanged: null,
- );
- }
-
- tiles.add(
- CupertinoListTile.notched(
- title: Text(veggieCategoryNames[category]!),
- trailing: toggle,
- ),
- );
- }
-
- return ListView(
- restorationId: 'list',
- children: [
- CupertinoListSection.insetGrouped(
- hasLeading: false,
- children: tiles,
- ),
- ],
- );
- },
- ),
- ),
- );
- }
-}
-
-class CalorieSettingsScreen extends StatelessWidget {
- const CalorieSettingsScreen({super.key, this.restorationId});
-
- final String? restorationId;
-
- static const max = 1000;
- static const min = 2600;
- static const step = 200;
-
- static Page pageBuilder(BuildContext context) {
- return const CupertinoPage(
- restorationId: 'router.calorie',
- child: CalorieSettingsScreen(restorationId: 'calorie'),
- title: 'Calorie Target',
- );
- }
-
- @override
- Widget build(BuildContext context) {
- final model = Provider.of(context);
- var brightness = CupertinoTheme.brightnessOf(context);
- return RestorationScope(
- restorationId: restorationId,
- child: CupertinoPageScaffold(
- navigationBar: const CupertinoNavigationBar(
- previousPageTitle: 'Settings',
- ),
- backgroundColor: Styles.scaffoldBackground(brightness),
- child: ListView(
- restorationId: 'list',
- children: [
- FutureBuilder(
- future: model.desiredCalories,
- builder: (context, snapshot) {
- final tiles = [];
-
- for (var cals = max; cals < min; cals += step) {
- tiles.add(
- CupertinoListTile.notched(
- title: Text('$cals calories'),
- trailing: SettingsIcon(
- icon: CupertinoIcons.check_mark,
- foregroundColor:
- snapshot.hasData && snapshot.data == cals
- ? CupertinoColors.activeBlue
- : Styles.transparentColor,
- backgroundColor: Styles.transparentColor,
- ),
- onTap: snapshot.hasData
- ? () => model.setDesiredCalories(cals)
- : null,
- ),
- );
- }
-
- return CupertinoListSection.insetGrouped(
- header: Text(
- 'Available calorie levels'.toUpperCase(),
- style: Styles.settingsGroupHeaderText(
- CupertinoTheme.of(context),
- ),
- ),
- footer: Text(
- 'These are used for serving calculations',
- style: Styles.settingsGroupFooterText(
- CupertinoTheme.of(context),
- ),
- ),
- children: tiles,
- );
- },
- ),
- ],
- ),
- ),
- );
- }
-}
-
-class SettingsScreen extends StatefulWidget {
- const SettingsScreen({this.restorationId, super.key});
-
- final String? restorationId;
-
- @override
- State createState() => _SettingsScreenState();
-}
-
-class _SettingsScreenState extends State {
- CupertinoListTile _buildCaloriesTile(
- BuildContext context,
- Preferences prefs,
- ) {
- return CupertinoListTile.notched(
- leading: const SettingsIcon(
- backgroundColor: CupertinoColors.systemBlue,
- icon: Styles.calorieIcon,
- ),
- title: const Text('Calorie Target'),
- additionalInfo: FutureBuilder(
- future: prefs.desiredCalories,
- builder: (context, snapshot) {
- return Text(
- snapshot.data?.toString() ?? '',
- style: CupertinoTheme.of(context).textTheme.textStyle,
- );
- },
- ),
- trailing: const CupertinoListTileChevron(),
- onTap: () => context.go('/settings/calories'),
- );
- }
-
- CupertinoListTile _buildCategoriesTile(
- BuildContext context,
- Preferences prefs,
- ) {
- return CupertinoListTile.notched(
- leading: const SettingsIcon(
- backgroundColor: CupertinoColors.systemOrange,
- icon: Styles.preferenceIcon,
- ),
- title: const Text('Preferred Categories'),
- trailing: const CupertinoListTileChevron(),
- onTap: () => context.go('/settings/categories'),
- );
- }
-
- CupertinoListTile _buildRestoreDefaultsTile(
- BuildContext context,
- Preferences prefs,
- ) {
- return CupertinoListTile.notched(
- leading: const SettingsIcon(
- backgroundColor: CupertinoColors.systemRed,
- icon: Styles.resetIcon,
- ),
- title: const Text('Restore Defaults'),
- onTap: () {
- showCupertinoDialog(
- context: context,
- builder: (context) => CupertinoAlertDialog(
- title: const Text('Are you sure?'),
- content: const Text(
- 'Are you sure you want to reset the current settings?',
- ),
- actions: [
- CupertinoDialogAction(
- isDestructiveAction: true,
- child: const Text('Yes'),
- onPressed: () async {
- await prefs.restoreDefaults();
- if (!context.mounted) return;
- context.pop();
- },
- ),
- CupertinoDialogAction(
- isDefaultAction: true,
- child: const Text('No'),
- onPressed: () => context.pop(),
- ),
- ],
- ),
- );
- },
- );
- }
-
- @override
- Widget build(BuildContext context) {
- final prefs = Provider.of(context);
-
- return CupertinoPageScaffold(
- backgroundColor: Styles.scaffoldBackground(
- CupertinoTheme.brightnessOf(context),
- ),
- child: CustomScrollView(
- slivers: [
- const CupertinoSliverNavigationBar(largeTitle: Text('Settings')),
- SliverList(
- delegate: SliverChildListDelegate([
- CupertinoListSection.insetGrouped(
- children: [
- _buildCaloriesTile(context, prefs),
- _buildCategoriesTile(context, prefs),
- ],
- ),
- CupertinoListSection.insetGrouped(
- children: [_buildRestoreDefaultsTile(context, prefs)],
- ),
- ]),
- ),
- ],
- ),
- );
- }
-}
-
-class SettingsIcon extends StatelessWidget {
- const SettingsIcon({
- required this.icon,
- this.foregroundColor = CupertinoColors.white,
- this.backgroundColor = CupertinoColors.black,
- super.key,
- });
-
- final Color backgroundColor;
- final Color foregroundColor;
- final IconData icon;
-
- @override
- Widget build(BuildContext context) {
- return Container(
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(5),
- color: backgroundColor,
- ),
- child: Center(child: Icon(icon, color: foregroundColor, size: 20)),
- );
- }
-}
diff --git a/veggieseasons/lib/styles.dart b/veggieseasons/lib/styles.dart
deleted file mode 100644
index ce45247be38..00000000000
--- a/veggieseasons/lib/styles.dart
+++ /dev/null
@@ -1,221 +0,0 @@
-// Copyright 2018 The Flutter team. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/cupertino.dart';
-import 'package:font_awesome_flutter/font_awesome_flutter.dart';
-import 'data/veggie.dart';
-
-abstract class Styles {
- static CupertinoThemeData veggieThemeData = const CupertinoThemeData(
- textTheme: CupertinoTextThemeData(
- textStyle: TextStyle(
- color: CupertinoColors.label,
- fontSize: 16,
- fontWeight: FontWeight.normal,
- fontStyle: FontStyle.normal,
- fontFamily: 'CupertinoSystemText',
- letterSpacing: -0.41,
- decoration: TextDecoration.none,
- ),
- ),
- );
-
- static TextStyle headlineText(CupertinoThemeData themeData) => themeData
- .textTheme
- .textStyle
- .copyWith(fontSize: 32, fontWeight: FontWeight.bold);
-
- static TextStyle minorText(CupertinoThemeData themeData) => themeData
- .textTheme
- .textStyle
- .copyWith(color: const Color.fromRGBO(128, 128, 128, 1));
-
- static TextStyle headlineName(CupertinoThemeData themeData) => themeData
- .textTheme
- .textStyle
- .copyWith(fontSize: 24, fontWeight: FontWeight.bold);
-
- static TextStyle cardTitleText(CupertinoThemeData themeData) =>
- themeData.textTheme.textStyle.copyWith(
- color: const Color.fromRGBO(0, 0, 0, 0.9),
- fontSize: 32,
- fontWeight: FontWeight.bold,
- );
-
- static TextStyle cardCategoryText(CupertinoThemeData themeData) =>
- themeData.textTheme.textStyle.copyWith(
- color: const Color.fromRGBO(255, 255, 255, 0.9),
- );
-
- static TextStyle cardDescriptionText(CupertinoThemeData themeData) =>
- themeData.textTheme.textStyle.copyWith(
- color: const Color.fromRGBO(0, 0, 0, 0.9),
- );
-
- static TextStyle detailsTitleText(CupertinoThemeData themeData) =>
- themeData.textTheme.textStyle.copyWith(
- fontSize: 30,
- fontWeight: FontWeight.bold,
- );
-
- static TextStyle detailsPreferredCategoryText(
- CupertinoThemeData themeData,
- ) => themeData.textTheme.textStyle.copyWith(fontWeight: FontWeight.bold);
-
- static TextStyle detailsBoldDescriptionText(
- CupertinoThemeData themeData,
- ) => themeData.textTheme.textStyle.copyWith(
- color: const Color.fromRGBO(0, 0, 0, 0.9),
- fontWeight: FontWeight.bold,
- );
-
- static TextStyle detailsServingHeaderText(
- CupertinoThemeData themeData,
- ) => themeData.textTheme.textStyle.copyWith(
- color: const Color.fromRGBO(176, 176, 176, 1),
- fontWeight: FontWeight.bold,
- );
-
- static TextStyle detailsServingLabelText(CupertinoThemeData themeData) =>
- themeData.textTheme.textStyle.copyWith(fontWeight: FontWeight.bold);
-
- static TextStyle detailsServingNoteText(CupertinoThemeData themeData) =>
- themeData.textTheme.textStyle.copyWith(fontStyle: FontStyle.italic);
-
- static TextStyle triviaFinishedTitleText(CupertinoThemeData themeData) =>
- themeData.textTheme.textStyle.copyWith(fontSize: 32);
-
- static TextStyle triviaFinishedBigText(CupertinoThemeData themeData) =>
- themeData.textTheme.textStyle.copyWith(fontSize: 48);
-
- static TextStyle settingsGroupHeaderText(CupertinoThemeData themeData) =>
- themeData.textTheme.textStyle.copyWith(
- color: CupertinoColors.inactiveGray,
- fontSize: 13.5,
- letterSpacing: -0.5,
- );
-
- static TextStyle settingsGroupFooterText(CupertinoThemeData themeData) =>
- themeData.textTheme.textStyle.copyWith(
- color: const Color(0xff777777),
- fontSize: 13,
- letterSpacing: -0.08,
- );
-
- static const appBackground = Color(0xffd0d0d0);
-
- static Color? scaffoldBackground(Brightness brightness) =>
- brightness == Brightness.light
- ? CupertinoColors.extraLightBackgroundGray
- : null;
-
- static const frostedBackground = Color(0xccf8f8f8);
-
- static const closeButtonUnpressed = Color(0xff101010);
-
- static const closeButtonPressed = Color(0xff808080);
-
- static TextStyle settingsItemSubtitleText(
- CupertinoThemeData themeData,
- ) => themeData.textTheme.textStyle.copyWith(
- fontSize: 12,
- letterSpacing: -0.2,
- );
-
- static const Color searchCursorColor = Color.fromRGBO(0, 122, 255, 1);
-
- static const Color searchIconColor = Color.fromRGBO(128, 128, 128, 1);
-
- static const seasonColors = {
- Season.winter: Color(0xff336dcc),
- Season.spring: Color(0xff2fa02b),
- Season.summer: Color(0xff287213),
- Season.autumn: Color(0xff724913),
- };
-
- // While handy, some of the Font Awesome icons sometimes bleed over their
- // allotted bounds. This padding is used to adjust for that.
- static const seasonIconPadding = {
- Season.winter: EdgeInsets.only(right: 0),
- Season.spring: EdgeInsets.only(right: 4),
- Season.summer: EdgeInsets.only(right: 6),
- Season.autumn: EdgeInsets.only(right: 0),
- };
-
- static const seasonIconData = {
- Season.winter: FontAwesomeIcons.snowflake,
- Season.spring: FontAwesomeIcons.leaf,
- Season.summer: FontAwesomeIcons.umbrellaBeach,
- Season.autumn: FontAwesomeIcons.canadianMapleLeaf,
- };
-
- static const seasonBorder = Border(
- top: BorderSide(color: Color(0xff606060)),
- left: BorderSide(color: Color(0xff606060)),
- bottom: BorderSide(color: Color(0xff606060)),
- right: BorderSide(color: Color(0xff606060)),
- );
-
- static const uncheckedIcon = IconData(
- 0xf372,
- fontFamily: CupertinoIcons.iconFont,
- fontPackage: CupertinoIcons.iconFontPackage,
- );
-
- static const checkedIcon = IconData(
- 0xf373,
- fontFamily: CupertinoIcons.iconFont,
- fontPackage: CupertinoIcons.iconFontPackage,
- );
-
- static const transparentColor = Color(0x00000000);
-
- static const shadowColor = Color(0xa0000000);
-
- static const shadowGradient = LinearGradient(
- begin: Alignment.topCenter,
- end: Alignment.bottomCenter,
- colors: [transparentColor, shadowColor],
- );
-
- static const Color settingsMediumGray = Color(0xffc7c7c7);
-
- static const Color settingsItemPressed = Color(0xffd9d9d9);
-
- static Color settingsItemColor(Brightness brightness) =>
- brightness == Brightness.light
- ? CupertinoColors.tertiarySystemBackground
- : CupertinoColors.darkBackgroundGray;
-
- static Color settingsLineation(Brightness brightness) =>
- brightness == Brightness.light
- ? const Color(0xffbcbbc1)
- : const Color(0xff4c4b4b);
-
- static const Color settingsBackground = Color(0xffefeff4);
-
- static const preferenceIcon = IconData(
- 0xf443,
- fontFamily: CupertinoIcons.iconFont,
- fontPackage: CupertinoIcons.iconFontPackage,
- );
-
- static const resetIcon = IconData(
- 0xf4c4,
- fontFamily: CupertinoIcons.iconFont,
- fontPackage: CupertinoIcons.iconFontPackage,
- );
-
- static const calorieIcon = IconData(
- 0xf3bb,
- fontFamily: CupertinoIcons.iconFont,
- fontPackage: CupertinoIcons.iconFontPackage,
- );
-
- static const servingInfoBorderColor = Color(0xffb0b0b0);
-
- static const ColorFilter desaturatedColorFilter =
- // 222222 is a random color that has low color saturation.
- ColorFilter.mode(Color(0xff222222), BlendMode.saturation);
-}
diff --git a/veggieseasons/lib/widgets/detail_buttons.dart b/veggieseasons/lib/widgets/detail_buttons.dart
deleted file mode 100644
index 1ad4d1ea404..00000000000
--- a/veggieseasons/lib/widgets/detail_buttons.dart
+++ /dev/null
@@ -1,148 +0,0 @@
-// Copyright 2018 The Flutter team. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'dart:ui' as ui;
-
-import 'package:flutter/cupertino.dart';
-import '../styles.dart';
-
-/// Partially overlays and then blurs its child's background.
-class FrostedBox extends StatelessWidget {
- const FrostedBox({this.child, super.key});
-
- final Widget? child;
-
- @override
- Widget build(BuildContext context) {
- return BackdropFilter(
- filter: ui.ImageFilter.blur(sigmaX: 10, sigmaY: 10),
- child: DecoratedBox(
- decoration: const BoxDecoration(color: Styles.frostedBackground),
- child: child,
- ),
- );
- }
-}
-
-/// An Icon that implicitly animates changes to its color.
-class ColorChangingIcon extends ImplicitlyAnimatedWidget {
- const ColorChangingIcon(
- this.icon, {
- this.color = CupertinoColors.black,
- this.size,
- required super.duration,
- super.key,
- });
-
- final Color color;
-
- final IconData icon;
-
- final double? size;
-
- @override
- AnimatedWidgetBaseState createState() =>
- _ColorChangingIconState();
-}
-
-class _ColorChangingIconState
- extends AnimatedWidgetBaseState {
- ColorTween? _colorTween;
-
- @override
- Widget build(BuildContext context) {
- return Icon(
- widget.icon,
- semanticLabel: 'Close button',
- size: widget.size,
- color: _colorTween?.evaluate(animation),
- );
- }
-
- @override
- void forEachTween(TweenVisitor visitor) {
- _colorTween =
- visitor(
- _colorTween,
- widget.color,
- (dynamic value) => ColorTween(begin: value as Color?),
- )
- as ColorTween?;
- }
-}
-
-/// A close button that invokes a callback when pressed.
-class CloseButton extends _DetailPageButton {
- const CloseButton(VoidCallback onPressed, {super.key})
- : super(onPressed, CupertinoIcons.chevron_back);
-}
-
-/// A share button that invokes a callback when pressed.
-class ShareButton extends _DetailPageButton {
- const ShareButton(VoidCallback onPressed, {super.key})
- : super(onPressed, CupertinoIcons.share);
-}
-
-/// A favorite button that invokes a callback when pressed.
-class FavoriteButton extends _DetailPageButton {
- const FavoriteButton(
- VoidCallback onPressed,
- bool isFavorite, {
- super.key,
- }) : super(
- onPressed,
- isFavorite ? CupertinoIcons.heart_fill : CupertinoIcons.heart,
- );
-}
-
-class _DetailPageButton extends StatefulWidget {
- const _DetailPageButton(this.onPressed, this.icon, {super.key});
-
- final VoidCallback onPressed;
- final IconData icon;
-
- @override
- State<_DetailPageButton> createState() => _DetailPageButtonState();
-}
-
-class _DetailPageButtonState extends State<_DetailPageButton> {
- bool tapInProgress = false;
-
- @override
- Widget build(BuildContext context) {
- return GestureDetector(
- onTapDown: (details) {
- setState(() => tapInProgress = true);
- },
- onTapUp: (details) {
- setState(() => tapInProgress = false);
- widget.onPressed();
- },
- onTapCancel: () {
- setState(() => tapInProgress = false);
- },
- child: ClipOval(
- child: FrostedBox(
- child: Container(
- width: 30,
- height: 30,
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(15),
- ),
- child: Center(
- child: ColorChangingIcon(
- widget.icon,
- duration: const Duration(milliseconds: 300),
- color: tapInProgress
- ? Styles.closeButtonPressed
- : Styles.closeButtonUnpressed,
- size: 20,
- ),
- ),
- ),
- ),
- ),
- );
- }
-}
diff --git a/veggieseasons/lib/widgets/veggie_card.dart b/veggieseasons/lib/widgets/veggie_card.dart
deleted file mode 100644
index ce7e537c2b4..00000000000
--- a/veggieseasons/lib/widgets/veggie_card.dart
+++ /dev/null
@@ -1,114 +0,0 @@
-// Copyright 2018 The Flutter team. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/cupertino.dart';
-import 'package:flutter/material.dart';
-import 'package:go_router/go_router.dart';
-import '../data/veggie.dart';
-import '../styles.dart';
-
-/// A Card-like Widget that responds to tap events by animating changes to its
-/// elevation and invoking an optional [onPressed] callback.
-class PressableCard extends StatelessWidget {
- const PressableCard({
- required this.child,
- this.borderRadius = const BorderRadius.all(Radius.circular(16)),
- this.onPressed,
- super.key,
- });
-
- final VoidCallback? onPressed;
-
- final Widget child;
-
- final BorderRadius borderRadius;
-
- @override
- Widget build(BuildContext context) {
- return GestureDetector(
- onTap: onPressed,
- child: Container(
- decoration: BoxDecoration(borderRadius: borderRadius),
- child: ClipRRect(borderRadius: borderRadius, child: child),
- ),
- );
- }
-}
-
-class VeggieCard extends StatelessWidget {
- const VeggieCard(
- this.veggie,
- this.isInSeason,
- this.isPreferredCategory, {
- super.key,
- });
-
- /// Veggie to be displayed by the card.
- final Veggie veggie;
-
- /// If the veggie is in season, it's displayed more prominently and the
- /// image is fully saturated. Otherwise, it's reduced and de-saturated.
- final bool isInSeason;
-
- /// Whether [veggie] falls into one of user's preferred [VeggieCategory]s
- final bool isPreferredCategory;
-
- Widget _buildDetails(BuildContext context) {
- final themeData = CupertinoTheme.of(context);
- return Container(
- color: Colors.white,
- child: Padding(
- padding: const EdgeInsets.fromLTRB(20, 16, 16, 20),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Text(veggie.name, style: Styles.cardTitleText(themeData)),
- const SizedBox(height: 8),
- Text(
- veggie.shortDescription,
- style: Styles.cardDescriptionText(themeData),
- ),
- ],
- ),
- ),
- );
- }
-
- @override
- Widget build(BuildContext context) {
- return PressableCard(
- onPressed: () {
- // GoRouter does not support relative routes,
- // so navigate to the absolute route.
- // see https://github.com/flutter/flutter/issues/108177
- context.go('/list/details/${veggie.id}');
- },
- child: Stack(
- children: [
- Semantics(
- label: 'A card background featuring ${veggie.name}',
- child: Container(
- height: isInSeason ? 300 : 150,
- decoration: BoxDecoration(
- image: DecorationImage(
- fit: BoxFit.cover,
- colorFilter: isInSeason
- ? null
- : Styles.desaturatedColorFilter,
- image: AssetImage(veggie.imageAssetPath),
- ),
- ),
- ),
- ),
- Positioned(
- bottom: 0,
- left: 0,
- right: 0,
- child: _buildDetails(context),
- ),
- ],
- ),
- );
- }
-}
diff --git a/veggieseasons/lib/widgets/veggie_headline.dart b/veggieseasons/lib/widgets/veggie_headline.dart
deleted file mode 100644
index d21cf01f4b4..00000000000
--- a/veggieseasons/lib/widgets/veggie_headline.dart
+++ /dev/null
@@ -1,117 +0,0 @@
-// Copyright 2018 The Flutter team. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/cupertino.dart';
-import 'package:go_router/go_router.dart';
-import '../data/veggie.dart';
-import '../styles.dart';
-
-class ZoomClipAssetImage extends StatelessWidget {
- const ZoomClipAssetImage({
- required this.zoom,
- this.height,
- this.width,
- required this.imageAsset,
- super.key,
- });
-
- final double zoom;
- final double? height;
- final double? width;
- final String imageAsset;
-
- @override
- Widget build(BuildContext context) {
- return Container(
- height: height,
- width: width,
- alignment: Alignment.center,
- child: ClipRRect(
- borderRadius: BorderRadius.circular(10),
- child: OverflowBox(
- maxHeight: height! * zoom,
- maxWidth: width! * zoom,
- child: Image.asset(imageAsset, fit: BoxFit.fill),
- ),
- ),
- );
- }
-}
-
-class VeggieHeadline extends StatelessWidget {
- final Veggie veggie;
-
- const VeggieHeadline(this.veggie, {super.key});
-
- List _buildSeasonDots(List seasons) {
- var widgets = [];
-
- for (var season in seasons) {
- widgets.add(const SizedBox(width: 4));
- widgets.add(
- Container(
- height: 10,
- width: 10,
- decoration: BoxDecoration(
- color: Styles.seasonColors[season],
- borderRadius: BorderRadius.circular(5),
- ),
- ),
- );
- }
-
- return widgets;
- }
-
- @override
- Widget build(BuildContext context) {
- final themeData = CupertinoTheme.of(context);
- final String location = GoRouter.of(
- context,
- ).routerDelegate.currentConfiguration.uri.toString();
-
- return GestureDetector(
- onTap: () {
- // GoRouter does not support relative routes,
- // so navigate to the absolute route, which can be either
- // `/favorites/details/${veggie.id}` or `/search/details/${veggie.id}`
- // see https://github.com/flutter/flutter/issues/108177
- context.go('$location/details/${veggie.id}');
- },
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- ZoomClipAssetImage(
- imageAsset: veggie.imageAssetPath,
- zoom: 2.4,
- height: 72,
- width: 72,
- ),
- const SizedBox(width: 8),
- Flexible(
- child: Column(
- mainAxisAlignment: MainAxisAlignment.start,
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Row(
- children: [
- Text(
- veggie.name,
- style: Styles.headlineName(themeData),
- ),
- ..._buildSeasonDots(veggie.seasons),
- ],
- ),
- Text(
- veggie.shortDescription,
- style: themeData.textTheme.textStyle,
- ),
- ],
- ),
- ),
- ],
- ),
- );
- }
-}
diff --git a/veggieseasons/lib/widgets/veggie_seasons_page.dart b/veggieseasons/lib/widgets/veggie_seasons_page.dart
deleted file mode 100644
index aac37df3254..00000000000
--- a/veggieseasons/lib/widgets/veggie_seasons_page.dart
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2024, the Flutter project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'package:flutter/cupertino.dart';
-
-class VeggieSeasonsPage extends Page {
- final Widget child;
-
- const VeggieSeasonsPage({
- super.key,
- required this.child,
- super.restorationId,
- });
-
- @override
- VeggieSeasonsPageRoute createRoute(BuildContext context) =>
- VeggieSeasonsPageRoute(this);
-}
-
-class VeggieSeasonsPageRoute extends PageRoute {
- VeggieSeasonsPageRoute(VeggieSeasonsPage page)
- : super(settings: page);
-
- VeggieSeasonsPage get _page => settings as VeggieSeasonsPage;
-
- @override
- Color? get barrierColor => null;
-
- @override
- String? get barrierLabel => null;
-
- @override
- bool get maintainState => true;
-
- @override
- Duration get transitionDuration => Duration.zero;
-
- @override
- Widget buildPage(
- BuildContext context,
- Animation animation,
- Animation secondaryAnimation,
- ) => _page.child;
-}
diff --git a/veggieseasons/macos/.gitignore b/veggieseasons/macos/.gitignore
deleted file mode 100644
index 746adbb6b9e..00000000000
--- a/veggieseasons/macos/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-# Flutter-related
-**/Flutter/ephemeral/
-**/Pods/
-
-# Xcode-related
-**/dgph
-**/xcuserdata/
diff --git a/veggieseasons/macos/Flutter/Flutter-Debug.xcconfig b/veggieseasons/macos/Flutter/Flutter-Debug.xcconfig
deleted file mode 100644
index 4b81f9b2d20..00000000000
--- a/veggieseasons/macos/Flutter/Flutter-Debug.xcconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
-#include "ephemeral/Flutter-Generated.xcconfig"
diff --git a/veggieseasons/macos/Flutter/Flutter-Release.xcconfig b/veggieseasons/macos/Flutter/Flutter-Release.xcconfig
deleted file mode 100644
index 5caa9d1579e..00000000000
--- a/veggieseasons/macos/Flutter/Flutter-Release.xcconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
-#include "ephemeral/Flutter-Generated.xcconfig"
diff --git a/veggieseasons/macos/Flutter/GeneratedPluginRegistrant.swift b/veggieseasons/macos/Flutter/GeneratedPluginRegistrant.swift
deleted file mode 100644
index f7175089273..00000000000
--- a/veggieseasons/macos/Flutter/GeneratedPluginRegistrant.swift
+++ /dev/null
@@ -1,14 +0,0 @@
-//
-// Generated file. Do not edit.
-//
-
-import FlutterMacOS
-import Foundation
-
-import shared_preferences_foundation
-import window_size
-
-func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
- SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
- WindowSizePlugin.register(with: registry.registrar(forPlugin: "WindowSizePlugin"))
-}
diff --git a/veggieseasons/macos/Podfile b/veggieseasons/macos/Podfile
deleted file mode 100644
index c795730db8e..00000000000
--- a/veggieseasons/macos/Podfile
+++ /dev/null
@@ -1,43 +0,0 @@
-platform :osx, '10.14'
-
-# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
-ENV['COCOAPODS_DISABLE_STATS'] = 'true'
-
-project 'Runner', {
- 'Debug' => :debug,
- 'Profile' => :release,
- 'Release' => :release,
-}
-
-def flutter_root
- generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__)
- unless File.exist?(generated_xcode_build_settings_path)
- raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first"
- end
-
- File.foreach(generated_xcode_build_settings_path) do |line|
- matches = line.match(/FLUTTER_ROOT\=(.*)/)
- return matches[1].strip if matches
- end
- raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\""
-end
-
-require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
-
-flutter_macos_podfile_setup
-
-target 'Runner' do
- use_frameworks!
- use_modular_headers!
-
- flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__))
- target 'RunnerTests' do
- inherit! :search_paths
- end
-end
-
-post_install do |installer|
- installer.pods_project.targets.each do |target|
- flutter_additional_macos_build_settings(target)
- end
-end
diff --git a/veggieseasons/macos/Runner.xcodeproj/project.pbxproj b/veggieseasons/macos/Runner.xcodeproj/project.pbxproj
deleted file mode 100644
index 3beb5482985..00000000000
--- a/veggieseasons/macos/Runner.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,801 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 54;
- objects = {
-
-/* Begin PBXAggregateTarget section */
- 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = {
- isa = PBXAggregateTarget;
- buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */;
- buildPhases = (
- 33CC111E2044C6BF0003C045 /* ShellScript */,
- );
- dependencies = (
- );
- name = "Flutter Assemble";
- productName = FLX;
- };
-/* End PBXAggregateTarget section */
-
-/* Begin PBXBuildFile section */
- 0C591566BA30BFA6D780386A /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EE22A708C4E7F94406AFD15 /* Pods_Runner.framework */; };
- 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; };
- 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; };
- 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; };
- 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 */; };
- AEA6F424A1A42303F9A597C0 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DBED630FEBB9A18F27C8E814 /* Pods_RunnerTests.framework */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 33CC10EC2044A3C60003C045;
- remoteInfo = Runner;
- };
- 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 33CC111A2044C6BA0003C045;
- remoteInfo = FLX;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXCopyFilesBuildPhase section */
- 33CC110E2044A8840003C045 /* Bundle Framework */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 2147483647;
- dstPath = "";
- dstSubfolderSpec = 10;
- files = (
- );
- name = "Bundle Framework";
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
- 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 = ""; };
- 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; };
- 33CC10ED2044A3C60003C045 /* veggieseasons.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = veggieseasons.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
- 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; };
- 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; };
- 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; };
- 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; };
- 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; };
- 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; };
- 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; };
- 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 = ""; };
- 413A4F2B0013AFEC349AB2C5 /* 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 = ""; };
- 4D8AF33CD5C878ED37254D67 /* 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 = ""; };
- 4EE22A708C4E7F94406AFD15 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 67C24EB68B67E166AAF91AFC /* 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 = ""; };
- 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; };
- A5460BC7374C6E7592B1FF3E /* 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 = ""; };
- C1FB72C1E9B25422AFEB740F /* 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 = ""; };
- C518FFB7BDFCCDF5D96D3B89 /* 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 = ""; };
- DBED630FEBB9A18F27C8E814 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 331C80D2294CF70F00263BE5 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AEA6F424A1A42303F9A597C0 /* Pods_RunnerTests.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 33CC10EA2044A3C60003C045 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 0C591566BA30BFA6D780386A /* Pods_Runner.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 331C80D6294CF71000263BE5 /* RunnerTests */ = {
- isa = PBXGroup;
- children = (
- 331C80D7294CF71000263BE5 /* RunnerTests.swift */,
- );
- path = RunnerTests;
- sourceTree = "";
- };
- 33BA886A226E78AF003329D5 /* Configs */ = {
- isa = PBXGroup;
- children = (
- 33E5194F232828860026EE4D /* AppInfo.xcconfig */,
- 9740EEB21CF90195004384FC /* Debug.xcconfig */,
- 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
- 333000ED22D3DE5D00554162 /* Warnings.xcconfig */,
- );
- path = Configs;
- sourceTree = "";
- };
- 33CC10E42044A3C60003C045 = {
- isa = PBXGroup;
- children = (
- 33FAB671232836740065AC1E /* Runner */,
- 33CEB47122A05771004F2AC0 /* Flutter */,
- 331C80D6294CF71000263BE5 /* RunnerTests */,
- 33CC10EE2044A3C60003C045 /* Products */,
- D73912EC22F37F3D000D13A0 /* Frameworks */,
- 91771D8FA5A30CAEDA51E26A /* Pods */,
- );
- sourceTree = "";
- };
- 33CC10EE2044A3C60003C045 /* Products */ = {
- isa = PBXGroup;
- children = (
- 33CC10ED2044A3C60003C045 /* veggieseasons.app */,
- 331C80D5294CF71000263BE5 /* RunnerTests.xctest */,
- );
- name = Products;
- sourceTree = "";
- };
- 33CC11242044D66E0003C045 /* Resources */ = {
- isa = PBXGroup;
- children = (
- 33CC10F22044A3C60003C045 /* Assets.xcassets */,
- 33CC10F42044A3C60003C045 /* MainMenu.xib */,
- 33CC10F72044A3C60003C045 /* Info.plist */,
- );
- name = Resources;
- path = ..;
- sourceTree = "";
- };
- 33CEB47122A05771004F2AC0 /* Flutter */ = {
- isa = PBXGroup;
- children = (
- 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */,
- 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */,
- 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */,
- 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */,
- );
- path = Flutter;
- sourceTree = "";
- };
- 33FAB671232836740065AC1E /* Runner */ = {
- isa = PBXGroup;
- children = (
- 33CC10F02044A3C60003C045 /* AppDelegate.swift */,
- 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */,
- 33E51913231747F40026EE4D /* DebugProfile.entitlements */,
- 33E51914231749380026EE4D /* Release.entitlements */,
- 33CC11242044D66E0003C045 /* Resources */,
- 33BA886A226E78AF003329D5 /* Configs */,
- );
- path = Runner;
- sourceTree = "";
- };
- 91771D8FA5A30CAEDA51E26A /* Pods */ = {
- isa = PBXGroup;
- children = (
- A5460BC7374C6E7592B1FF3E /* Pods-Runner.debug.xcconfig */,
- C518FFB7BDFCCDF5D96D3B89 /* Pods-Runner.release.xcconfig */,
- 4D8AF33CD5C878ED37254D67 /* Pods-Runner.profile.xcconfig */,
- 413A4F2B0013AFEC349AB2C5 /* Pods-RunnerTests.debug.xcconfig */,
- C1FB72C1E9B25422AFEB740F /* Pods-RunnerTests.release.xcconfig */,
- 67C24EB68B67E166AAF91AFC /* Pods-RunnerTests.profile.xcconfig */,
- );
- name = Pods;
- path = Pods;
- sourceTree = "";
- };
- D73912EC22F37F3D000D13A0 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- 4EE22A708C4E7F94406AFD15 /* Pods_Runner.framework */,
- DBED630FEBB9A18F27C8E814 /* Pods_RunnerTests.framework */,
- );
- name = Frameworks;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 331C80D4294CF70F00263BE5 /* RunnerTests */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
- buildPhases = (
- A9DCAE5A5FC2DAC764BF600F /* [CP] Check Pods Manifest.lock */,
- 331C80D1294CF70F00263BE5 /* Sources */,
- 331C80D2294CF70F00263BE5 /* Frameworks */,
- 331C80D3294CF70F00263BE5 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- 331C80DA294CF71000263BE5 /* PBXTargetDependency */,
- );
- name = RunnerTests;
- productName = RunnerTests;
- productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */;
- productType = "com.apple.product-type.bundle.unit-test";
- };
- 33CC10EC2044A3C60003C045 /* Runner */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
- buildPhases = (
- 6233C4FEDE0E579A6F92072D /* [CP] Check Pods Manifest.lock */,
- 33CC10E92044A3C60003C045 /* Sources */,
- 33CC10EA2044A3C60003C045 /* Frameworks */,
- 33CC10EB2044A3C60003C045 /* Resources */,
- 33CC110E2044A8840003C045 /* Bundle Framework */,
- 3399D490228B24CF009A79C7 /* ShellScript */,
- 6AA72EDC93A2C61F5DA982D4 /* [CP] Embed Pods Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- 33CC11202044C79F0003C045 /* PBXTargetDependency */,
- );
- name = Runner;
- productName = Runner;
- productReference = 33CC10ED2044A3C60003C045 /* veggieseasons.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 33CC10E52044A3C60003C045 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- BuildIndependentTargetsInParallel = YES;
- LastSwiftUpdateCheck = 0920;
- LastUpgradeCheck = 1510;
- ORGANIZATIONNAME = "";
- TargetAttributes = {
- 331C80D4294CF70F00263BE5 = {
- CreatedOnToolsVersion = 14.0;
- TestTargetID = 33CC10EC2044A3C60003C045;
- };
- 33CC10EC2044A3C60003C045 = {
- CreatedOnToolsVersion = 9.2;
- LastSwiftMigration = 1100;
- ProvisioningStyle = Automatic;
- SystemCapabilities = {
- com.apple.Sandbox = {
- enabled = 1;
- };
- };
- };
- 33CC111A2044C6BA0003C045 = {
- CreatedOnToolsVersion = 9.2;
- ProvisioningStyle = Manual;
- };
- };
- };
- buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */;
- compatibilityVersion = "Xcode 9.3";
- developmentRegion = en;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- Base,
- );
- mainGroup = 33CC10E42044A3C60003C045;
- productRefGroup = 33CC10EE2044A3C60003C045 /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- 33CC10EC2044A3C60003C045 /* Runner */,
- 331C80D4294CF70F00263BE5 /* RunnerTests */,
- 33CC111A2044C6BA0003C045 /* Flutter Assemble */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- 331C80D3294CF70F00263BE5 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 33CC10EB2044A3C60003C045 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */,
- 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
- 3399D490228B24CF009A79C7 /* ShellScript */ = {
- isa = PBXShellScriptBuildPhase;
- alwaysOutOfDate = 1;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- );
- inputPaths = (
- );
- outputFileListPaths = (
- );
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n";
- };
- 33CC111E2044C6BF0003C045 /* ShellScript */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- Flutter/ephemeral/FlutterInputs.xcfilelist,
- );
- inputPaths = (
- Flutter/ephemeral/tripwire,
- );
- outputFileListPaths = (
- Flutter/ephemeral/FlutterOutputs.xcfilelist,
- );
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
- };
- 6233C4FEDE0E579A6F92072D /* [CP] Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- );
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputFileListPaths = (
- );
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
- );
- 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";
- showEnvVarsInLog = 0;
- };
- 6AA72EDC93A2C61F5DA982D4 /* [CP] Embed Pods Frameworks */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
- );
- name = "[CP] Embed Pods Frameworks";
- outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
- };
- A9DCAE5A5FC2DAC764BF600F /* [CP] Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- );
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputFileListPaths = (
- );
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
- );
- 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";
- showEnvVarsInLog = 0;
- };
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 331C80D1294CF70F00263BE5 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 33CC10E92044A3C60003C045 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */,
- 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */,
- 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
- 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 33CC10EC2044A3C60003C045 /* Runner */;
- targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */;
- };
- 33CC11202044C79F0003C045 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */;
- targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
-/* Begin PBXVariantGroup section */
- 33CC10F42044A3C60003C045 /* MainMenu.xib */ = {
- isa = PBXVariantGroup;
- children = (
- 33CC10F52044A3C60003C045 /* Base */,
- );
- name = MainMenu.xib;
- path = Runner;
- sourceTree = "";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- 331C80DB294CF71000263BE5 /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 413A4F2B0013AFEC349AB2C5 /* Pods-RunnerTests.debug.xcconfig */;
- buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- CURRENT_PROJECT_VERSION = 1;
- GENERATE_INFOPLIST_FILE = YES;
- MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.veggieseasons.RunnerTests;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_VERSION = 5.0;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/veggieseasons.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/veggieseasons";
- };
- name = Debug;
- };
- 331C80DC294CF71000263BE5 /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = C1FB72C1E9B25422AFEB740F /* Pods-RunnerTests.release.xcconfig */;
- buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- CURRENT_PROJECT_VERSION = 1;
- GENERATE_INFOPLIST_FILE = YES;
- MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.veggieseasons.RunnerTests;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_VERSION = 5.0;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/veggieseasons.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/veggieseasons";
- };
- name = Release;
- };
- 331C80DD294CF71000263BE5 /* Profile */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 67C24EB68B67E166AAF91AFC /* Pods-RunnerTests.profile.xcconfig */;
- buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- CURRENT_PROJECT_VERSION = 1;
- GENERATE_INFOPLIST_FILE = YES;
- MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.veggieseasons.RunnerTests;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_VERSION = 5.0;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/veggieseasons.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/veggieseasons";
- };
- name = Profile;
- };
- 338D0CE9231458BD00FA5F75 /* Profile */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CODE_SIGN_IDENTITY = "-";
- COPY_PHASE_STRIP = NO;
- DEAD_CODE_STRIPPING = YES;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_USER_SCRIPT_SANDBOXING = NO;
- GCC_C_LANGUAGE_STANDARD = gnu11;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- MACOSX_DEPLOYMENT_TARGET = 10.14;
- MTL_ENABLE_DEBUG_INFO = NO;
- SDKROOT = macosx;
- SWIFT_COMPILATION_MODE = wholemodule;
- SWIFT_OPTIMIZATION_LEVEL = "-O";
- };
- name = Profile;
- };
- 338D0CEA231458BD00FA5F75 /* Profile */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CLANG_ENABLE_MODULES = YES;
- CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
- CODE_SIGN_STYLE = Automatic;
- COMBINE_HIDPI_IMAGES = YES;
- INFOPLIST_FILE = Runner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/../Frameworks",
- );
- PROVISIONING_PROFILE_SPECIFIER = "";
- SWIFT_VERSION = 5.0;
- };
- name = Profile;
- };
- 338D0CEB231458BD00FA5F75 /* Profile */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_STYLE = Manual;
- PRODUCT_NAME = "$(TARGET_NAME)";
- };
- name = Profile;
- };
- 33CC10F92044A3C60003C045 /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CODE_SIGN_IDENTITY = "-";
- COPY_PHASE_STRIP = NO;
- DEAD_CODE_STRIPPING = YES;
- DEBUG_INFORMATION_FORMAT = dwarf;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_TESTABILITY = YES;
- ENABLE_USER_SCRIPT_SANDBOXING = NO;
- GCC_C_LANGUAGE_STANDARD = gnu11;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- );
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- MACOSX_DEPLOYMENT_TARGET = 10.14;
- MTL_ENABLE_DEBUG_INFO = YES;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = macosx;
- SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
- SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- };
- name = Debug;
- };
- 33CC10FA2044A3C60003C045 /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CODE_SIGN_IDENTITY = "-";
- COPY_PHASE_STRIP = NO;
- DEAD_CODE_STRIPPING = YES;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_USER_SCRIPT_SANDBOXING = NO;
- GCC_C_LANGUAGE_STANDARD = gnu11;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- MACOSX_DEPLOYMENT_TARGET = 10.14;
- MTL_ENABLE_DEBUG_INFO = NO;
- SDKROOT = macosx;
- SWIFT_COMPILATION_MODE = wholemodule;
- SWIFT_OPTIMIZATION_LEVEL = "-O";
- };
- name = Release;
- };
- 33CC10FC2044A3C60003C045 /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CLANG_ENABLE_MODULES = YES;
- CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
- CODE_SIGN_STYLE = Automatic;
- COMBINE_HIDPI_IMAGES = YES;
- INFOPLIST_FILE = Runner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/../Frameworks",
- );
- PROVISIONING_PROFILE_SPECIFIER = "";
- SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- SWIFT_VERSION = 5.0;
- };
- name = Debug;
- };
- 33CC10FD2044A3C60003C045 /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CLANG_ENABLE_MODULES = YES;
- CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
- CODE_SIGN_STYLE = Automatic;
- COMBINE_HIDPI_IMAGES = YES;
- INFOPLIST_FILE = Runner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/../Frameworks",
- );
- PROVISIONING_PROFILE_SPECIFIER = "";
- SWIFT_VERSION = 5.0;
- };
- name = Release;
- };
- 33CC111C2044C6BA0003C045 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_STYLE = Manual;
- PRODUCT_NAME = "$(TARGET_NAME)";
- };
- name = Debug;
- };
- 33CC111D2044C6BA0003C045 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_STYLE = Automatic;
- PRODUCT_NAME = "$(TARGET_NAME)";
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 331C80DB294CF71000263BE5 /* Debug */,
- 331C80DC294CF71000263BE5 /* Release */,
- 331C80DD294CF71000263BE5 /* Profile */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 33CC10F92044A3C60003C045 /* Debug */,
- 33CC10FA2044A3C60003C045 /* Release */,
- 338D0CE9231458BD00FA5F75 /* Profile */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 33CC10FC2044A3C60003C045 /* Debug */,
- 33CC10FD2044A3C60003C045 /* Release */,
- 338D0CEA231458BD00FA5F75 /* Profile */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 33CC111C2044C6BA0003C045 /* Debug */,
- 33CC111D2044C6BA0003C045 /* Release */,
- 338D0CEB231458BD00FA5F75 /* Profile */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 33CC10E52044A3C60003C045 /* Project object */;
-}
diff --git a/veggieseasons/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/veggieseasons/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d981003d6..00000000000
--- a/veggieseasons/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/veggieseasons/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/veggieseasons/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
deleted file mode 100644
index 4c216385462..00000000000
--- a/veggieseasons/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ /dev/null
@@ -1,98 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/veggieseasons/macos/Runner.xcworkspace/contents.xcworkspacedata b/veggieseasons/macos/Runner.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 21a3cc14c74..00000000000
--- a/veggieseasons/macos/Runner.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
diff --git a/veggieseasons/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/veggieseasons/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d981003d6..00000000000
--- a/veggieseasons/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/veggieseasons/macos/Runner/AppDelegate.swift b/veggieseasons/macos/Runner/AppDelegate.swift
deleted file mode 100644
index 8e02df28883..00000000000
--- a/veggieseasons/macos/Runner/AppDelegate.swift
+++ /dev/null
@@ -1,9 +0,0 @@
-import Cocoa
-import FlutterMacOS
-
-@main
-class AppDelegate: FlutterAppDelegate {
- override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
- return true
- }
-}
diff --git a/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index a2ec33f19f1..00000000000
--- a/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "images" : [
- {
- "size" : "16x16",
- "idiom" : "mac",
- "filename" : "app_icon_16.png",
- "scale" : "1x"
- },
- {
- "size" : "16x16",
- "idiom" : "mac",
- "filename" : "app_icon_32.png",
- "scale" : "2x"
- },
- {
- "size" : "32x32",
- "idiom" : "mac",
- "filename" : "app_icon_32.png",
- "scale" : "1x"
- },
- {
- "size" : "32x32",
- "idiom" : "mac",
- "filename" : "app_icon_64.png",
- "scale" : "2x"
- },
- {
- "size" : "128x128",
- "idiom" : "mac",
- "filename" : "app_icon_128.png",
- "scale" : "1x"
- },
- {
- "size" : "128x128",
- "idiom" : "mac",
- "filename" : "app_icon_256.png",
- "scale" : "2x"
- },
- {
- "size" : "256x256",
- "idiom" : "mac",
- "filename" : "app_icon_256.png",
- "scale" : "1x"
- },
- {
- "size" : "256x256",
- "idiom" : "mac",
- "filename" : "app_icon_512.png",
- "scale" : "2x"
- },
- {
- "size" : "512x512",
- "idiom" : "mac",
- "filename" : "app_icon_512.png",
- "scale" : "1x"
- },
- {
- "size" : "512x512",
- "idiom" : "mac",
- "filename" : "app_icon_1024.png",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
diff --git a/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png
deleted file mode 100644
index 82b6f9d9a33..00000000000
Binary files a/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png and /dev/null differ
diff --git a/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png
deleted file mode 100644
index 13b35eba55c..00000000000
Binary files a/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png and /dev/null differ
diff --git a/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png
deleted file mode 100644
index 0a3f5fa40fb..00000000000
Binary files a/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png and /dev/null differ
diff --git a/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png
deleted file mode 100644
index bdb57226d5f..00000000000
Binary files a/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png and /dev/null differ
diff --git a/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png
deleted file mode 100644
index f083318e09c..00000000000
Binary files a/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png and /dev/null differ
diff --git a/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png
deleted file mode 100644
index 326c0e72c9d..00000000000
Binary files a/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png and /dev/null differ
diff --git a/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png
deleted file mode 100644
index 2f1632cfddf..00000000000
Binary files a/veggieseasons/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png and /dev/null differ
diff --git a/veggieseasons/macos/Runner/Base.lproj/MainMenu.xib b/veggieseasons/macos/Runner/Base.lproj/MainMenu.xib
deleted file mode 100644
index 80e867a4e06..00000000000
--- a/veggieseasons/macos/Runner/Base.lproj/MainMenu.xib
+++ /dev/null
@@ -1,343 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/veggieseasons/macos/Runner/Configs/AppInfo.xcconfig b/veggieseasons/macos/Runner/Configs/AppInfo.xcconfig
deleted file mode 100644
index 04ab23a4b4b..00000000000
--- a/veggieseasons/macos/Runner/Configs/AppInfo.xcconfig
+++ /dev/null
@@ -1,14 +0,0 @@
-// Application-level settings for the Runner target.
-//
-// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the
-// future. If not, the values below would default to using the project name when this becomes a
-// 'flutter create' template.
-
-// The application's name. By default this is also the title of the Flutter window.
-PRODUCT_NAME = veggieseasons
-
-// The application's bundle identifier
-PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.veggieseasons
-
-// The copyright displayed in application information
-PRODUCT_COPYRIGHT = Copyright © 2024 dev.flutter. All rights reserved.
diff --git a/veggieseasons/macos/Runner/Configs/Debug.xcconfig b/veggieseasons/macos/Runner/Configs/Debug.xcconfig
deleted file mode 100644
index 36b0fd9464f..00000000000
--- a/veggieseasons/macos/Runner/Configs/Debug.xcconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-#include "../../Flutter/Flutter-Debug.xcconfig"
-#include "Warnings.xcconfig"
diff --git a/veggieseasons/macos/Runner/Configs/Release.xcconfig b/veggieseasons/macos/Runner/Configs/Release.xcconfig
deleted file mode 100644
index dff4f49561c..00000000000
--- a/veggieseasons/macos/Runner/Configs/Release.xcconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-#include "../../Flutter/Flutter-Release.xcconfig"
-#include "Warnings.xcconfig"
diff --git a/veggieseasons/macos/Runner/Configs/Warnings.xcconfig b/veggieseasons/macos/Runner/Configs/Warnings.xcconfig
deleted file mode 100644
index 42bcbf4780b..00000000000
--- a/veggieseasons/macos/Runner/Configs/Warnings.xcconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings
-GCC_WARN_UNDECLARED_SELECTOR = YES
-CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES
-CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE
-CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
-CLANG_WARN_PRAGMA_PACK = YES
-CLANG_WARN_STRICT_PROTOTYPES = YES
-CLANG_WARN_COMMA = YES
-GCC_WARN_STRICT_SELECTOR_MATCH = YES
-CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES
-CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
-GCC_WARN_SHADOW = YES
-CLANG_WARN_UNREACHABLE_CODE = YES
diff --git a/veggieseasons/macos/Runner/DebugProfile.entitlements b/veggieseasons/macos/Runner/DebugProfile.entitlements
deleted file mode 100644
index dddb8a30c85..00000000000
--- a/veggieseasons/macos/Runner/DebugProfile.entitlements
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- com.apple.security.app-sandbox
-
- com.apple.security.cs.allow-jit
-
- com.apple.security.network.server
-
-
-
diff --git a/veggieseasons/macos/Runner/Info.plist b/veggieseasons/macos/Runner/Info.plist
deleted file mode 100644
index 4789daa6a44..00000000000
--- a/veggieseasons/macos/Runner/Info.plist
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- $(DEVELOPMENT_LANGUAGE)
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIconFile
-
- CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- $(PRODUCT_NAME)
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- $(FLUTTER_BUILD_NAME)
- CFBundleVersion
- $(FLUTTER_BUILD_NUMBER)
- LSMinimumSystemVersion
- $(MACOSX_DEPLOYMENT_TARGET)
- NSHumanReadableCopyright
- $(PRODUCT_COPYRIGHT)
- NSMainNibFile
- MainMenu
- NSPrincipalClass
- NSApplication
-
-
diff --git a/veggieseasons/macos/Runner/MainFlutterWindow.swift b/veggieseasons/macos/Runner/MainFlutterWindow.swift
deleted file mode 100644
index 3cc05eb2349..00000000000
--- a/veggieseasons/macos/Runner/MainFlutterWindow.swift
+++ /dev/null
@@ -1,15 +0,0 @@
-import Cocoa
-import FlutterMacOS
-
-class MainFlutterWindow: NSWindow {
- override func awakeFromNib() {
- let flutterViewController = FlutterViewController()
- let windowFrame = self.frame
- self.contentViewController = flutterViewController
- self.setFrame(windowFrame, display: true)
-
- RegisterGeneratedPlugins(registry: flutterViewController)
-
- super.awakeFromNib()
- }
-}
diff --git a/veggieseasons/macos/Runner/Release.entitlements b/veggieseasons/macos/Runner/Release.entitlements
deleted file mode 100644
index 852fa1a4728..00000000000
--- a/veggieseasons/macos/Runner/Release.entitlements
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- com.apple.security.app-sandbox
-
-
-
diff --git a/veggieseasons/macos/RunnerTests/RunnerTests.swift b/veggieseasons/macos/RunnerTests/RunnerTests.swift
deleted file mode 100644
index 61f3bd1fc50..00000000000
--- a/veggieseasons/macos/RunnerTests/RunnerTests.swift
+++ /dev/null
@@ -1,12 +0,0 @@
-import Cocoa
-import FlutterMacOS
-import XCTest
-
-class RunnerTests: XCTestCase {
-
- func testExample() {
- // If you add code to the Runner application, consider adding tests here.
- // See https://developer.apple.com/documentation/xctest for more information about using XCTest.
- }
-
-}
diff --git a/veggieseasons/pubspec.yaml b/veggieseasons/pubspec.yaml
deleted file mode 100644
index cd87de0efdf..00000000000
--- a/veggieseasons/pubspec.yaml
+++ /dev/null
@@ -1,82 +0,0 @@
-name: veggieseasons
-description: An iOS app that shows the fruits and veggies currently in season.
-publish_to: none
-version: 1.2.0
-resolution: workspace
-
-environment:
- sdk: ^3.9.0-0
-
-dependencies:
- flutter:
- sdk: flutter
- cupertino_icons: ^1.0.2
- font_awesome_flutter: ^10.1.0
- intl: ^0.20.0
- provider: ^6.0.1
- shared_preferences: ^2.0.14
- window_size:
- git:
- url: https://github.com/google/flutter-desktop-embedding.git
- path: plugins/window_size
- # TODO: https://github.com/flutter/samples/issues/1838
- # go_router ^7.1.0 is breaking the state restoration tests
- go_router: ^16.0.0
-
-dev_dependencies:
- analysis_defaults:
- path: ../analysis_defaults
- flutter_test:
- sdk: flutter
- flutter_launcher_icons: ^0.14.0
-
-flutter:
- assets:
- - assets/images/apple.jpg
- - assets/images/artichoke.jpg
- - assets/images/asparagus.jpg
- - assets/images/avocado.jpg
- - assets/images/blackberry.jpg
- - assets/images/cantaloupe.jpg
- - assets/images/cauliflower.jpg
- - assets/images/endive.jpg
- - assets/images/fig.jpg
- - assets/images/grape.jpg
- - assets/images/green_bell_pepper.jpg
- - assets/images/habanero.jpg
- - assets/images/kale.jpg
- - assets/images/kiwi.jpg
- - assets/images/lemon.jpg
- - assets/images/lime.jpg
- - assets/images/mango.jpg
- - assets/images/mushroom.jpg
- - assets/images/nectarine.jpg
- - assets/images/persimmon.jpg
- - assets/images/plum.jpg
- - assets/images/potato.jpg
- - assets/images/radicchio.jpg
- - assets/images/radish.jpg
- - assets/images/squash.jpg
- - assets/images/strawberry.jpg
- - assets/images/tangelo.jpg
- - assets/images/tomato.jpg
- - assets/images/watermelon.jpg
- - assets/images/orange_bell_pepper.jpg
-
- fonts:
- - family: NotoSans
- fonts:
- - asset: assets/fonts/NotoSans-Regular.ttf
- weight: 400
- - asset: assets/fonts/NotoSans-Bold.ttf
- weight: 700
- - asset: assets/fonts/NotoSans-BoldItalic.ttf
- weight: 700
- style: italic
- - asset: assets/fonts/NotoSans-Italic.ttf
- style: italic
- weight: 400
-
-flutter_icons:
- ios: true
- image_path: "assets/icon/launcher_icon.png"
diff --git a/veggieseasons/test/widget_test.dart b/veggieseasons/test/widget_test.dart
deleted file mode 100644
index f1181b0c407..00000000000
--- a/veggieseasons/test/widget_test.dart
+++ /dev/null
@@ -1,11 +0,0 @@
-// This is a basic Flutter widget test.
-// To perform an interaction with a widget in your test, use the WidgetTester utility that Flutter
-// provides. For example, you can send tap and scroll gestures. You can also use WidgetTester to
-// find child widgets in the widget tree, read text, and verify that the values of widget properties
-// are correct.
-
-import 'package:flutter_test/flutter_test.dart';
-
-void main() {
- testWidgets('This test always passes', (tester) async {});
-}
diff --git a/veggieseasons/web/icons/Icon-192.png b/veggieseasons/web/icons/Icon-192.png
deleted file mode 100644
index b749bfef074..00000000000
Binary files a/veggieseasons/web/icons/Icon-192.png and /dev/null differ
diff --git a/veggieseasons/web/icons/Icon-512.png b/veggieseasons/web/icons/Icon-512.png
deleted file mode 100644
index 88cfd48dff1..00000000000
Binary files a/veggieseasons/web/icons/Icon-512.png and /dev/null differ
diff --git a/veggieseasons/web/index.html b/veggieseasons/web/index.html
deleted file mode 100644
index ee352d43626..00000000000
--- a/veggieseasons/web/index.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- veggieseasons
-
-
-
-
-
-
diff --git a/veggieseasons/web/manifest.json b/veggieseasons/web/manifest.json
deleted file mode 100644
index c75ec99c21f..00000000000
--- a/veggieseasons/web/manifest.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "name": "veggieseasons",
- "short_name": "veggieseasons",
- "start_url": ".",
- "display": "minimal-ui",
- "background_color": "#0175C2",
- "theme_color": "#0175C2",
- "description": "A new Flutter project.",
- "orientation": "portrait-primary",
- "prefer_related_applications": false,
- "icons": [
- {
- "src": "icons/Icon-192.png",
- "sizes": "192x192",
- "type": "image/png"
- },
- {
- "src": "icons/Icon-512.png",
- "sizes": "512x512",
- "type": "image/png"
- }
- ]
-}