From 9926ef26fc57a670b8aa91e0c156f4b79c1bddd5 Mon Sep 17 00:00:00 2001 From: Wenyu Zhang Date: Sun, 28 Feb 2021 23:39:15 -0800 Subject: [PATCH 1/7] Delete Pesto demo project because it no longer reflects Material component's demo usage. PiperOrigin-RevId: 360117134 --- demos/Pesto/Pesto.xcodeproj/project.pbxproj | 534 ------------------ .../contents.xcworkspacedata | 7 - .../xcshareddata/xcschemes/Pesto.xcscheme | 91 --- .../contents.xcworkspacedata | 10 - .../AppIcon.appiconset/Contents.json | 113 ---- .../AppIcon.appiconset/pesto_app_76.png | Bin 19045 -> 0 bytes .../AppIcon.appiconset/pesto_app_76_2x.png | Bin 23286 -> 0 bytes .../AppIcon.appiconset/pesto_app_icon_176.png | Bin 24005 -> 0 bytes .../pesto_app_icon_60_2x.png | Bin 2408 -> 0 bytes .../pesto_app_icon_60_3x.png | Bin 3507 -> 0 bytes .../Back.imageset/Contents.json | 23 - ..._keyboard_arrow_left_white_1x_ios_36dp.png | Bin 153 -> 0 bytes ..._keyboard_arrow_left_white_2x_ios_36dp.png | Bin 226 -> 0 bytes ..._keyboard_arrow_left_white_3x_ios_36dp.png | Bin 246 -> 0 bytes .../Pesto/Pesto/Assets.xcassets/Contents.json | 6 - .../PestoLogoLarge.imageset/Contents.json | 12 - .../pesto_logo_large.pdf | Bin 44622 -> 0 bytes .../PestoLogoSmall.imageset/pesto_text.pdf | Bin 41271 -> 0 bytes .../Settings.imageset/Contents.json | 23 - .../ic_settings_white_1x_ios_24dp.png | Bin 326 -> 0 bytes .../ic_settings_white_2x_ios_24dp.png | Bin 562 -> 0 bytes .../ic_settings_white_3x_ios_24dp.png | Bin 843 -> 0 bytes .../Pesto/Base.lproj/LaunchScreen.storyboard | 39 -- demos/Pesto/Pesto/Info.plist | 51 -- demos/Pesto/Pesto/PestoAppDelegate.h | 23 - demos/Pesto/Pesto/PestoAppDelegate.m | 59 -- demos/Pesto/Pesto/PestoAvatarView.h | 23 - demos/Pesto/Pesto/PestoAvatarView.m | 77 --- .../Pesto/Pesto/PestoCardCollectionViewCell.h | 33 -- .../Pesto/Pesto/PestoCardCollectionViewCell.m | 149 ----- .../Pesto/PestoCollectionViewController.h | 38 -- .../Pesto/PestoCollectionViewController.m | 222 -------- demos/Pesto/Pesto/PestoData.h | 29 - demos/Pesto/Pesto/PestoData.m | 104 ---- demos/Pesto/Pesto/PestoDetailViewController.h | 26 - demos/Pesto/Pesto/PestoDetailViewController.m | 194 ------- demos/Pesto/Pesto/PestoIcons/PestoIcon.h | 23 - demos/Pesto/Pesto/PestoIcons/PestoIcon.m | 30 - .../Pesto/PestoIcons/PestoIconFavorite.h | 25 - .../Pesto/PestoIcons/PestoIconFavorite.m | 82 --- demos/Pesto/Pesto/PestoIcons/PestoIconFish.h | 25 - demos/Pesto/Pesto/PestoIcons/PestoIconFish.m | 270 --------- demos/Pesto/Pesto/PestoIcons/PestoIconHome.h | 25 - demos/Pesto/Pesto/PestoIcons/PestoIconHome.m | 64 --- demos/Pesto/Pesto/PestoIcons/PestoIconMain.h | 25 - demos/Pesto/Pesto/PestoIcons/PestoIconMain.m | 199 ------- demos/Pesto/Pesto/PestoIcons/PestoIconMeat.h | 25 - demos/Pesto/Pesto/PestoIcons/PestoIconMeat.m | 214 ------- demos/Pesto/Pesto/PestoIcons/PestoIconSpicy.h | 25 - demos/Pesto/Pesto/PestoIcons/PestoIconSpicy.m | 227 -------- demos/Pesto/Pesto/PestoIcons/PestoIconTimer.h | 25 - demos/Pesto/Pesto/PestoIcons/PestoIconTimer.m | 177 ------ .../Pesto/PestoIcons/PestoIconTrending.h | 25 - .../Pesto/PestoIcons/PestoIconTrending.m | 64 --- .../Pesto/Pesto/PestoIcons/PestoIconVeggie.h | 25 - .../Pesto/Pesto/PestoIcons/PestoIconVeggie.m | 241 -------- demos/Pesto/Pesto/PestoRecipeCardView.h | 26 - demos/Pesto/Pesto/PestoRecipeCardView.m | 263 --------- demos/Pesto/Pesto/PestoRemoteImageService.h | 26 - demos/Pesto/Pesto/PestoRemoteImageService.m | 115 ---- .../Pesto/Pesto/PestoSettingsViewController.h | 22 - .../Pesto/Pesto/PestoSettingsViewController.m | 136 ----- demos/Pesto/Pesto/PestoViewController.h | 21 - demos/Pesto/Pesto/PestoViewController.m | 200 ------- demos/Pesto/Pesto/main.m | 24 - demos/Pesto/Podfile | 13 - demos/Pesto/README.md | 14 - demos/README.md | 1 - 68 files changed, 4563 deletions(-) delete mode 100644 demos/Pesto/Pesto.xcodeproj/project.pbxproj delete mode 100644 demos/Pesto/Pesto.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 demos/Pesto/Pesto.xcodeproj/xcshareddata/xcschemes/Pesto.xcscheme delete mode 100644 demos/Pesto/Pesto.xcworkspace/contents.xcworkspacedata delete mode 100644 demos/Pesto/Pesto/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 demos/Pesto/Pesto/Assets.xcassets/AppIcon.appiconset/pesto_app_76.png delete mode 100644 demos/Pesto/Pesto/Assets.xcassets/AppIcon.appiconset/pesto_app_76_2x.png delete mode 100644 demos/Pesto/Pesto/Assets.xcassets/AppIcon.appiconset/pesto_app_icon_176.png delete mode 100644 demos/Pesto/Pesto/Assets.xcassets/AppIcon.appiconset/pesto_app_icon_60_2x.png delete mode 100644 demos/Pesto/Pesto/Assets.xcassets/AppIcon.appiconset/pesto_app_icon_60_3x.png delete mode 100644 demos/Pesto/Pesto/Assets.xcassets/Back.imageset/Contents.json delete mode 100644 demos/Pesto/Pesto/Assets.xcassets/Back.imageset/ic_keyboard_arrow_left_white_1x_ios_36dp.png delete mode 100644 demos/Pesto/Pesto/Assets.xcassets/Back.imageset/ic_keyboard_arrow_left_white_2x_ios_36dp.png delete mode 100644 demos/Pesto/Pesto/Assets.xcassets/Back.imageset/ic_keyboard_arrow_left_white_3x_ios_36dp.png delete mode 100644 demos/Pesto/Pesto/Assets.xcassets/Contents.json delete mode 100644 demos/Pesto/Pesto/Assets.xcassets/PestoLogoLarge.imageset/Contents.json delete mode 100644 demos/Pesto/Pesto/Assets.xcassets/PestoLogoLarge.imageset/pesto_logo_large.pdf delete mode 100644 demos/Pesto/Pesto/Assets.xcassets/PestoLogoSmall.imageset/pesto_text.pdf delete mode 100644 demos/Pesto/Pesto/Assets.xcassets/Settings.imageset/Contents.json delete mode 100644 demos/Pesto/Pesto/Assets.xcassets/Settings.imageset/ic_settings_white_1x_ios_24dp.png delete mode 100644 demos/Pesto/Pesto/Assets.xcassets/Settings.imageset/ic_settings_white_2x_ios_24dp.png delete mode 100644 demos/Pesto/Pesto/Assets.xcassets/Settings.imageset/ic_settings_white_3x_ios_24dp.png delete mode 100644 demos/Pesto/Pesto/Base.lproj/LaunchScreen.storyboard delete mode 100644 demos/Pesto/Pesto/Info.plist delete mode 100644 demos/Pesto/Pesto/PestoAppDelegate.h delete mode 100644 demos/Pesto/Pesto/PestoAppDelegate.m delete mode 100644 demos/Pesto/Pesto/PestoAvatarView.h delete mode 100644 demos/Pesto/Pesto/PestoAvatarView.m delete mode 100644 demos/Pesto/Pesto/PestoCardCollectionViewCell.h delete mode 100644 demos/Pesto/Pesto/PestoCardCollectionViewCell.m delete mode 100644 demos/Pesto/Pesto/PestoCollectionViewController.h delete mode 100644 demos/Pesto/Pesto/PestoCollectionViewController.m delete mode 100644 demos/Pesto/Pesto/PestoData.h delete mode 100644 demos/Pesto/Pesto/PestoData.m delete mode 100644 demos/Pesto/Pesto/PestoDetailViewController.h delete mode 100644 demos/Pesto/Pesto/PestoDetailViewController.m delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIcon.h delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIcon.m delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIconFavorite.h delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIconFavorite.m delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIconFish.h delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIconFish.m delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIconHome.h delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIconHome.m delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIconMain.h delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIconMain.m delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIconMeat.h delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIconMeat.m delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIconSpicy.h delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIconSpicy.m delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIconTimer.h delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIconTimer.m delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIconTrending.h delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIconTrending.m delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIconVeggie.h delete mode 100644 demos/Pesto/Pesto/PestoIcons/PestoIconVeggie.m delete mode 100644 demos/Pesto/Pesto/PestoRecipeCardView.h delete mode 100644 demos/Pesto/Pesto/PestoRecipeCardView.m delete mode 100644 demos/Pesto/Pesto/PestoRemoteImageService.h delete mode 100644 demos/Pesto/Pesto/PestoRemoteImageService.m delete mode 100644 demos/Pesto/Pesto/PestoSettingsViewController.h delete mode 100644 demos/Pesto/Pesto/PestoSettingsViewController.m delete mode 100644 demos/Pesto/Pesto/PestoViewController.h delete mode 100644 demos/Pesto/Pesto/PestoViewController.m delete mode 100644 demos/Pesto/Pesto/main.m delete mode 100644 demos/Pesto/Podfile delete mode 100644 demos/Pesto/README.md diff --git a/demos/Pesto/Pesto.xcodeproj/project.pbxproj b/demos/Pesto/Pesto.xcodeproj/project.pbxproj deleted file mode 100644 index 0ad72963a26..00000000000 --- a/demos/Pesto/Pesto.xcodeproj/project.pbxproj +++ /dev/null @@ -1,534 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - C91F6A4A1C62BC0400EB4BA8 /* PestoAvatarView.m in Sources */ = {isa = PBXBuildFile; fileRef = C91F6A491C62BC0400EB4BA8 /* PestoAvatarView.m */; }; - C91F6A501C63A80F00EB4BA8 /* PestoRemoteImageService.m in Sources */ = {isa = PBXBuildFile; fileRef = C91F6A4F1C63A80F00EB4BA8 /* PestoRemoteImageService.m */; }; - C9A8552B1C4EDFAA003CADF7 /* PestoSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C9A8552A1C4EDFAA003CADF7 /* PestoSettingsViewController.m */; }; - DE288D0A1D5D213C00404D6D /* PestoDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DE288D091D5D213C00404D6D /* PestoDetailViewController.m */; }; - DE3620651C73A0850026DF5D /* PestoCollectionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DE3620641C73A0850026DF5D /* PestoCollectionViewController.m */; }; - DE381E1A1C457CEE00019C1D /* PestoCardCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = DE381E191C457CEE00019C1D /* PestoCardCollectionViewCell.m */; }; - DEA791031C751D0D006301CC /* PestoData.m in Sources */ = {isa = PBXBuildFile; fileRef = DEA791021C751D0D006301CC /* PestoData.m */; }; - DEA791051C752B6A006301CC /* PestoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DEA791041C752B6A006301CC /* PestoViewController.m */; }; - DEB4A9301D10500F0052923F /* PestoIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB4A9211D10500F0052923F /* PestoIcon.m */; }; - DEB4A9311D10500F0052923F /* PestoIconFish.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB4A9231D10500F0052923F /* PestoIconFish.m */; }; - DEB4A9321D10500F0052923F /* PestoIconMain.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB4A9251D10500F0052923F /* PestoIconMain.m */; }; - DEB4A9331D10500F0052923F /* PestoIconMeat.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB4A9271D10500F0052923F /* PestoIconMeat.m */; }; - DEB4A9351D10500F0052923F /* PestoIconSpicy.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB4A92B1D10500F0052923F /* PestoIconSpicy.m */; }; - DEB4A9361D10500F0052923F /* PestoIconTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB4A92D1D10500F0052923F /* PestoIconTimer.m */; }; - DEB4A9371D10500F0052923F /* PestoIconVeggie.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB4A92F1D10500F0052923F /* PestoIconVeggie.m */; }; - DEB8F13E1D19CF5700BF5CAB /* PestoIconFavorite.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB8F13D1D19CF5700BF5CAB /* PestoIconFavorite.m */; }; - DEB8F1411D19CF6200BF5CAB /* PestoIconHome.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB8F1401D19CF6200BF5CAB /* PestoIconHome.m */; }; - DEB8F1441D19CF6900BF5CAB /* PestoIconTrending.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB8F1431D19CF6900BF5CAB /* PestoIconTrending.m */; }; - DEBEDF291C3EF5D5004B614B /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DEBEDF281C3EF5D5004B614B /* main.m */; }; - DEBEDF2C1C3EF5D5004B614B /* PestoAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DEBEDF2B1C3EF5D5004B614B /* PestoAppDelegate.m */; }; - DEBEDF341C3EF5D5004B614B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DEBEDF331C3EF5D5004B614B /* Assets.xcassets */; }; - DEBEDF371C3EF5D5004B614B /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DEBEDF351C3EF5D5004B614B /* LaunchScreen.storyboard */; }; - DEE21BC11C9AF56E0024CB5C /* PestoRecipeCardView.m in Sources */ = {isa = PBXBuildFile; fileRef = DEE21BC01C9AF56E0024CB5C /* PestoRecipeCardView.m */; }; - EC273801E0C9C9C8AF332E96 /* libPods-Pesto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 13270CD243A4DAE9D2641C01 /* libPods-Pesto.a */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 13270CD243A4DAE9D2641C01 /* libPods-Pesto.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Pesto.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 518069C539BDC77E476806E8 /* Pods-Pesto.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Pesto.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Pesto/Pods-Pesto.debug.xcconfig"; sourceTree = ""; }; - 85F856DC3E893E943B8687E5 /* Pods-Pesto.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Pesto.release.xcconfig"; path = "Pods/Target Support Files/Pods-Pesto/Pods-Pesto.release.xcconfig"; sourceTree = ""; }; - C91F6A481C62BC0400EB4BA8 /* PestoAvatarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PestoAvatarView.h; sourceTree = ""; }; - C91F6A491C62BC0400EB4BA8 /* PestoAvatarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PestoAvatarView.m; sourceTree = ""; }; - C91F6A4E1C63A80F00EB4BA8 /* PestoRemoteImageService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PestoRemoteImageService.h; sourceTree = ""; }; - C91F6A4F1C63A80F00EB4BA8 /* PestoRemoteImageService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PestoRemoteImageService.m; sourceTree = ""; }; - C9A855291C4EDFAA003CADF7 /* PestoSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PestoSettingsViewController.h; sourceTree = ""; }; - C9A8552A1C4EDFAA003CADF7 /* PestoSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PestoSettingsViewController.m; sourceTree = ""; }; - DE288D091D5D213C00404D6D /* PestoDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PestoDetailViewController.m; sourceTree = ""; }; - DE288D0B1D5D214500404D6D /* PestoDetailViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PestoDetailViewController.h; sourceTree = ""; }; - DE3620631C73A0710026DF5D /* PestoCollectionViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PestoCollectionViewController.h; sourceTree = ""; }; - DE3620641C73A0850026DF5D /* PestoCollectionViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PestoCollectionViewController.m; sourceTree = ""; }; - DE381E181C457CE300019C1D /* PestoCardCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PestoCardCollectionViewCell.h; sourceTree = ""; }; - DE381E191C457CEE00019C1D /* PestoCardCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PestoCardCollectionViewCell.m; sourceTree = ""; }; - DEA791011C751D00006301CC /* PestoData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PestoData.h; sourceTree = ""; }; - DEA791021C751D0D006301CC /* PestoData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PestoData.m; sourceTree = ""; }; - DEA791041C752B6A006301CC /* PestoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PestoViewController.m; sourceTree = ""; }; - DEA791061C752B74006301CC /* PestoViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PestoViewController.h; sourceTree = ""; }; - DEB4A9201D10500F0052923F /* PestoIcon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PestoIcon.h; path = PestoIcons/PestoIcon.h; sourceTree = ""; }; - DEB4A9211D10500F0052923F /* PestoIcon.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PestoIcon.m; path = PestoIcons/PestoIcon.m; sourceTree = ""; }; - DEB4A9221D10500F0052923F /* PestoIconFish.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PestoIconFish.h; path = PestoIcons/PestoIconFish.h; sourceTree = ""; }; - DEB4A9231D10500F0052923F /* PestoIconFish.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PestoIconFish.m; path = PestoIcons/PestoIconFish.m; sourceTree = ""; }; - DEB4A9241D10500F0052923F /* PestoIconMain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PestoIconMain.h; path = PestoIcons/PestoIconMain.h; sourceTree = ""; }; - DEB4A9251D10500F0052923F /* PestoIconMain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PestoIconMain.m; path = PestoIcons/PestoIconMain.m; sourceTree = ""; }; - DEB4A9261D10500F0052923F /* PestoIconMeat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PestoIconMeat.h; path = PestoIcons/PestoIconMeat.h; sourceTree = ""; }; - DEB4A9271D10500F0052923F /* PestoIconMeat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PestoIconMeat.m; path = PestoIcons/PestoIconMeat.m; sourceTree = ""; }; - DEB4A92A1D10500F0052923F /* PestoIconSpicy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PestoIconSpicy.h; path = PestoIcons/PestoIconSpicy.h; sourceTree = ""; }; - DEB4A92B1D10500F0052923F /* PestoIconSpicy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PestoIconSpicy.m; path = PestoIcons/PestoIconSpicy.m; sourceTree = ""; }; - DEB4A92C1D10500F0052923F /* PestoIconTimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PestoIconTimer.h; path = PestoIcons/PestoIconTimer.h; sourceTree = ""; }; - DEB4A92D1D10500F0052923F /* PestoIconTimer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PestoIconTimer.m; path = PestoIcons/PestoIconTimer.m; sourceTree = ""; }; - DEB4A92E1D10500F0052923F /* PestoIconVeggie.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PestoIconVeggie.h; path = PestoIcons/PestoIconVeggie.h; sourceTree = ""; }; - DEB4A92F1D10500F0052923F /* PestoIconVeggie.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PestoIconVeggie.m; path = PestoIcons/PestoIconVeggie.m; sourceTree = ""; }; - DEB8F13C1D19CF5700BF5CAB /* PestoIconFavorite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PestoIconFavorite.h; path = PestoIcons/PestoIconFavorite.h; sourceTree = ""; }; - DEB8F13D1D19CF5700BF5CAB /* PestoIconFavorite.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PestoIconFavorite.m; path = PestoIcons/PestoIconFavorite.m; sourceTree = ""; }; - DEB8F13F1D19CF6200BF5CAB /* PestoIconHome.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PestoIconHome.h; path = PestoIcons/PestoIconHome.h; sourceTree = ""; }; - DEB8F1401D19CF6200BF5CAB /* PestoIconHome.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PestoIconHome.m; path = PestoIcons/PestoIconHome.m; sourceTree = ""; }; - DEB8F1421D19CF6900BF5CAB /* PestoIconTrending.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PestoIconTrending.h; path = PestoIcons/PestoIconTrending.h; sourceTree = ""; }; - DEB8F1431D19CF6900BF5CAB /* PestoIconTrending.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PestoIconTrending.m; path = PestoIcons/PestoIconTrending.m; sourceTree = ""; }; - DEBEDF241C3EF5D5004B614B /* Pesto.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Pesto.app; sourceTree = BUILT_PRODUCTS_DIR; }; - DEBEDF281C3EF5D5004B614B /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - DEBEDF2A1C3EF5D5004B614B /* PestoAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PestoAppDelegate.h; sourceTree = ""; }; - DEBEDF2B1C3EF5D5004B614B /* PestoAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PestoAppDelegate.m; sourceTree = ""; }; - DEBEDF331C3EF5D5004B614B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - DEBEDF361C3EF5D5004B614B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - DEBEDF381C3EF5D5004B614B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - DEE21BBF1C9AF5610024CB5C /* PestoRecipeCardView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PestoRecipeCardView.h; sourceTree = ""; }; - DEE21BC01C9AF56E0024CB5C /* PestoRecipeCardView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PestoRecipeCardView.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - DEBEDF211C3EF5D5004B614B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - EC273801E0C9C9C8AF332E96 /* libPods-Pesto.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 557707A8BD59C930BF97D1BB /* Frameworks */ = { - isa = PBXGroup; - children = ( - 13270CD243A4DAE9D2641C01 /* libPods-Pesto.a */, - ); - name = Frameworks; - sourceTree = ""; - }; - DE28DA0A1D06222D0000F4CF /* PestoIcons */ = { - isa = PBXGroup; - children = ( - DEB4A9201D10500F0052923F /* PestoIcon.h */, - DEB4A9211D10500F0052923F /* PestoIcon.m */, - DEB8F13C1D19CF5700BF5CAB /* PestoIconFavorite.h */, - DEB8F13D1D19CF5700BF5CAB /* PestoIconFavorite.m */, - DEB4A9221D10500F0052923F /* PestoIconFish.h */, - DEB4A9231D10500F0052923F /* PestoIconFish.m */, - DEB8F13F1D19CF6200BF5CAB /* PestoIconHome.h */, - DEB8F1401D19CF6200BF5CAB /* PestoIconHome.m */, - DEB4A9241D10500F0052923F /* PestoIconMain.h */, - DEB4A9251D10500F0052923F /* PestoIconMain.m */, - DEB4A9261D10500F0052923F /* PestoIconMeat.h */, - DEB4A9271D10500F0052923F /* PestoIconMeat.m */, - DEB4A92A1D10500F0052923F /* PestoIconSpicy.h */, - DEB4A92B1D10500F0052923F /* PestoIconSpicy.m */, - DEB4A92C1D10500F0052923F /* PestoIconTimer.h */, - DEB4A92D1D10500F0052923F /* PestoIconTimer.m */, - DEB8F1421D19CF6900BF5CAB /* PestoIconTrending.h */, - DEB8F1431D19CF6900BF5CAB /* PestoIconTrending.m */, - DEB4A92E1D10500F0052923F /* PestoIconVeggie.h */, - DEB4A92F1D10500F0052923F /* PestoIconVeggie.m */, - ); - name = PestoIcons; - sourceTree = ""; - }; - DEBEDF1B1C3EF5D5004B614B = { - isa = PBXGroup; - children = ( - DEBEDF261C3EF5D5004B614B /* Pesto */, - DEBEDF251C3EF5D5004B614B /* Products */, - E79D06F34597963D7F350FCC /* Pods */, - 557707A8BD59C930BF97D1BB /* Frameworks */, - ); - sourceTree = ""; - }; - DEBEDF251C3EF5D5004B614B /* Products */ = { - isa = PBXGroup; - children = ( - DEBEDF241C3EF5D5004B614B /* Pesto.app */, - ); - name = Products; - sourceTree = ""; - }; - DEBEDF261C3EF5D5004B614B /* Pesto */ = { - isa = PBXGroup; - children = ( - DEBEDF331C3EF5D5004B614B /* Assets.xcassets */, - DEBEDF381C3EF5D5004B614B /* Info.plist */, - DEBEDF351C3EF5D5004B614B /* LaunchScreen.storyboard */, - DEBEDF2A1C3EF5D5004B614B /* PestoAppDelegate.h */, - DEBEDF2B1C3EF5D5004B614B /* PestoAppDelegate.m */, - C91F6A481C62BC0400EB4BA8 /* PestoAvatarView.h */, - C91F6A491C62BC0400EB4BA8 /* PestoAvatarView.m */, - DE381E181C457CE300019C1D /* PestoCardCollectionViewCell.h */, - DE381E191C457CEE00019C1D /* PestoCardCollectionViewCell.m */, - DE3620631C73A0710026DF5D /* PestoCollectionViewController.h */, - DE3620641C73A0850026DF5D /* PestoCollectionViewController.m */, - DEA791011C751D00006301CC /* PestoData.h */, - DEA791021C751D0D006301CC /* PestoData.m */, - DE288D0B1D5D214500404D6D /* PestoDetailViewController.h */, - DE288D091D5D213C00404D6D /* PestoDetailViewController.m */, - DE28DA0A1D06222D0000F4CF /* PestoIcons */, - DEE21BBF1C9AF5610024CB5C /* PestoRecipeCardView.h */, - DEE21BC01C9AF56E0024CB5C /* PestoRecipeCardView.m */, - C91F6A4E1C63A80F00EB4BA8 /* PestoRemoteImageService.h */, - C91F6A4F1C63A80F00EB4BA8 /* PestoRemoteImageService.m */, - C9A855291C4EDFAA003CADF7 /* PestoSettingsViewController.h */, - C9A8552A1C4EDFAA003CADF7 /* PestoSettingsViewController.m */, - DEA791061C752B74006301CC /* PestoViewController.h */, - DEA791041C752B6A006301CC /* PestoViewController.m */, - DEBEDF271C3EF5D5004B614B /* Supporting Files */, - ); - path = Pesto; - sourceTree = ""; - }; - DEBEDF271C3EF5D5004B614B /* Supporting Files */ = { - isa = PBXGroup; - children = ( - DEBEDF281C3EF5D5004B614B /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - E79D06F34597963D7F350FCC /* Pods */ = { - isa = PBXGroup; - children = ( - 518069C539BDC77E476806E8 /* Pods-Pesto.debug.xcconfig */, - 85F856DC3E893E943B8687E5 /* Pods-Pesto.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - DEBEDF231C3EF5D5004B614B /* Pesto */ = { - isa = PBXNativeTarget; - buildConfigurationList = DEBEDF3B1C3EF5D5004B614B /* Build configuration list for PBXNativeTarget "Pesto" */; - buildPhases = ( - F647DB44E4F3B46B31211A92 /* [CP] Check Pods Manifest.lock */, - DEBEDF201C3EF5D5004B614B /* Sources */, - DEBEDF211C3EF5D5004B614B /* Frameworks */, - DEBEDF221C3EF5D5004B614B /* Resources */, - F349B3654BA8D36A2345FF6D /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Pesto; - productName = Pesto; - productReference = DEBEDF241C3EF5D5004B614B /* Pesto.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - DEBEDF1C1C3EF5D5004B614B /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0720; - ORGANIZATIONNAME = Google; - TargetAttributes = { - DEBEDF231C3EF5D5004B614B = { - CreatedOnToolsVersion = 7.2; - ProvisioningStyle = Automatic; - }; - }; - }; - buildConfigurationList = DEBEDF1F1C3EF5D5004B614B /* Build configuration list for PBXProject "Pesto" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = DEBEDF1B1C3EF5D5004B614B; - productRefGroup = DEBEDF251C3EF5D5004B614B /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - DEBEDF231C3EF5D5004B614B /* Pesto */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - DEBEDF221C3EF5D5004B614B /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DEBEDF371C3EF5D5004B614B /* LaunchScreen.storyboard in Resources */, - DEBEDF341C3EF5D5004B614B /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - F349B3654BA8D36A2345FF6D /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Pesto/Pods-Pesto-resources.sh", - "${PODS_ROOT}/../../../components/AppBar/src/MaterialAppBar.bundle", - "${PODS_ROOT}/../../../components/CollectionCells/src/MaterialCollectionCells.bundle", - "${PODS_ROOT}/../../../components/Collections/src/MaterialCollections.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/MaterialComponents/MaterialIcons_ic_arrow_back.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/MaterialComponents/MaterialIcons_ic_check.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/MaterialComponents/MaterialIcons_ic_check_circle.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/MaterialComponents/MaterialIcons_ic_chevron_right.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/MaterialComponents/MaterialIcons_ic_info.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/MaterialComponents/MaterialIcons_ic_radio_button_unchecked.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/MaterialComponents/MaterialIcons_ic_reorder.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialAppBar.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCollectionCells.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCollections.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons_ic_arrow_back.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons_ic_check.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons_ic_check_circle.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons_ic_chevron_right.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons_ic_info.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons_ic_radio_button_unchecked.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons_ic_reorder.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Pesto/Pods-Pesto-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - F647DB44E4F3B46B31211A92 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Pesto-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 */ - DEBEDF201C3EF5D5004B614B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DEB4A9331D10500F0052923F /* PestoIconMeat.m in Sources */, - DE3620651C73A0850026DF5D /* PestoCollectionViewController.m in Sources */, - C91F6A501C63A80F00EB4BA8 /* PestoRemoteImageService.m in Sources */, - DEB4A9301D10500F0052923F /* PestoIcon.m in Sources */, - DEB8F1441D19CF6900BF5CAB /* PestoIconTrending.m in Sources */, - DEB4A9351D10500F0052923F /* PestoIconSpicy.m in Sources */, - DEA791051C752B6A006301CC /* PestoViewController.m in Sources */, - C9A8552B1C4EDFAA003CADF7 /* PestoSettingsViewController.m in Sources */, - DEE21BC11C9AF56E0024CB5C /* PestoRecipeCardView.m in Sources */, - C91F6A4A1C62BC0400EB4BA8 /* PestoAvatarView.m in Sources */, - DE381E1A1C457CEE00019C1D /* PestoCardCollectionViewCell.m in Sources */, - DEB4A9321D10500F0052923F /* PestoIconMain.m in Sources */, - DEBEDF2C1C3EF5D5004B614B /* PestoAppDelegate.m in Sources */, - DEB4A9361D10500F0052923F /* PestoIconTimer.m in Sources */, - DEB4A9371D10500F0052923F /* PestoIconVeggie.m in Sources */, - DEBEDF291C3EF5D5004B614B /* main.m in Sources */, - DE288D0A1D5D213C00404D6D /* PestoDetailViewController.m in Sources */, - DEA791031C751D0D006301CC /* PestoData.m in Sources */, - DEB8F1411D19CF6200BF5CAB /* PestoIconHome.m in Sources */, - DEB8F13E1D19CF5700BF5CAB /* PestoIconFavorite.m in Sources */, - DEB4A9311D10500F0052923F /* PestoIconFish.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - DEBEDF351C3EF5D5004B614B /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - DEBEDF361C3EF5D5004B614B /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - DEBEDF391C3EF5D5004B614B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - 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; - 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 = 9.2; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - DEBEDF3A1C3EF5D5004B614B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - 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; - 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 = 9.2; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - DEBEDF3C1C3EF5D5004B614B /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 518069C539BDC77E476806E8 /* Pods-Pesto.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES; - CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES; - CLANG_WARN_ASSIGN_ENUM = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEVELOPMENT_TEAM = ""; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - "GCC_WARN_64_TO_32_BIT_CONVERSION[arch=*64]" = NO; - GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; - GCC_WARN_SHADOW = YES; - GCC_WARN_SIGN_COMPARE = YES; - GCC_WARN_UNUSED_LABEL = YES; - INFOPLIST_FILE = Pesto/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.google.Pesto; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - DEBEDF3D1C3EF5D5004B614B /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 85F856DC3E893E943B8687E5 /* Pods-Pesto.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES; - CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES; - CLANG_WARN_ASSIGN_ENUM = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEVELOPMENT_TEAM = ""; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - "GCC_WARN_64_TO_32_BIT_CONVERSION[arch=*64]" = NO; - GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; - GCC_WARN_SHADOW = YES; - GCC_WARN_SIGN_COMPARE = YES; - GCC_WARN_UNUSED_LABEL = YES; - INFOPLIST_FILE = Pesto/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.google.Pesto; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - DEBEDF1F1C3EF5D5004B614B /* Build configuration list for PBXProject "Pesto" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DEBEDF391C3EF5D5004B614B /* Debug */, - DEBEDF3A1C3EF5D5004B614B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - DEBEDF3B1C3EF5D5004B614B /* Build configuration list for PBXNativeTarget "Pesto" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DEBEDF3C1C3EF5D5004B614B /* Debug */, - DEBEDF3D1C3EF5D5004B614B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = DEBEDF1C1C3EF5D5004B614B /* Project object */; -} diff --git a/demos/Pesto/Pesto.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/demos/Pesto/Pesto.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 146a0e02f01..00000000000 --- a/demos/Pesto/Pesto.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/demos/Pesto/Pesto.xcodeproj/xcshareddata/xcschemes/Pesto.xcscheme b/demos/Pesto/Pesto.xcodeproj/xcshareddata/xcschemes/Pesto.xcscheme deleted file mode 100644 index 3f634818298..00000000000 --- a/demos/Pesto/Pesto.xcodeproj/xcshareddata/xcschemes/Pesto.xcscheme +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/demos/Pesto/Pesto.xcworkspace/contents.xcworkspacedata b/demos/Pesto/Pesto.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 65681342ed4..00000000000 --- a/demos/Pesto/Pesto.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/demos/Pesto/Pesto/Assets.xcassets/AppIcon.appiconset/Contents.json b/demos/Pesto/Pesto/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 3ca45dba87c..00000000000 --- a/demos/Pesto/Pesto/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "1x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "57x57", - "scale" : "1x" - }, - { - "idiom" : "iphone", - "size" : "57x57", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "pesto_app_icon_60_2x.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "pesto_app_icon_60_3x.png", - "scale" : "3x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "50x50", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "50x50", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "72x72", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "72x72", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "pesto_app_76.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "pesto_app_76_2x.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "pesto_app_icon_176.png", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/demos/Pesto/Pesto/Assets.xcassets/AppIcon.appiconset/pesto_app_76.png b/demos/Pesto/Pesto/Assets.xcassets/AppIcon.appiconset/pesto_app_76.png deleted file mode 100644 index 861a763e5c41f54faac7b325afb9834017d21453..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19045 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 diff --git a/demos/Pesto/Pesto/Assets.xcassets/AppIcon.appiconset/pesto_app_icon_60_2x.png b/demos/Pesto/Pesto/Assets.xcassets/AppIcon.appiconset/pesto_app_icon_60_2x.png deleted file mode 100644 index 866049788b23f26ae1bc74c7e9331d89e59d3d55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2408 zcmZ{mX*3&%7RQ51Yfsu*YHMRk39)ObDry%+sIAm88e3x2uCdc36zy0NL=oErO-r;W zMJ=&4Oey72YwW6seW~d)XXdfehP zU(2`hx#%F??X6Jk~u4it=IuTjD`1gqk9CzlT2V^`9+CdEP; z>ns@st&@h+6F~3Fq{ph7YFe7xPxQ5&rw^K2XkbRlW;kSe^CZOo^AG3MGX!;ss*ZjZ zfF*D1d2&Gu!r~q8Aa^1ItJyf$qkHc~LYrez+&kat?@9c#Y!e)|&qwP^BNB1boX37> zpVc79wC>^i&3$zAFXY1VfVWXLnwpPF-cubmrd+m-@W>YBa|Orh%kxZs2mFG=dVJ zHH$!I#}RMWp`0*|cjbI?eKa?vp-Fve)n%Ppenp=!KOibFy!6QLU$9fYjpq=qB;`Twlx(B#r&EFVX4#Fm~{T zB}PN(&~Ic}kVX7t-S}phbrxMw$5>Lz>S|s;zR_u)WN_4FOcq-ZkKO>MX2!!GgqR#u znlr6QVo<#VlO?ZCbUO06kC+?n_ex_=t75kOV_)L|aBfH>6n18GXvS?T87=v4GxFrGI`tQzYq++Xo?mQq?rg6ah-lj2fe-cEv)-;B*GavTr*lpzLRuG znb%Nfvpm7r#Ym4LSbt}FL&jA+L*vE$+Z%pr_XZGPgmYyu>b6GQEo3l^;PyR2w_8qK=ZCRW<7<-qI%IMGQZu{8=94R8J02b zWMEZ>DObOayL}T4{fITCPa;0XnImGO;&9rgBbpeu)uMEbU6b&UE7BAKR`I1CxI;!= zBKCnJBNy2z8=U#6;MiWrGIsbpxf|>4FXTGRygaXwk>#>WzKw3YIu-%{BTHR!2uS+F zBA;PYo8zPl6%xnCX!D4whFA3w1_Wo;i2bm(^7My~z%b$CV-zvl@!|<@@f7A?L6xbF73Oqqw1| zrAw{Nwlp=25dEiZR=YXgdbNcWxiy_aP?8RM&ZoZk?pfr;Axr4>pI#OFdO-eXc*e>A zt57JugdK(p8v9F=R`@K+btSWfKdI8Y8q@Ri{_=Jc=4(=lE}dTIDf~p6G1^IT+%4g* zW&WH<%(Iz$6g9)t#H+e1F7NAj`;_-HEWSpKlo%sOQ+#19OW8}Xw9jj#Du07`oQVN7 zIuMa;VAy+?r9El)`MjX)VvKdzal3!2S&(Bp?xfUROv|TD`a#~Blj|;60Oh78;31_o z4p#(8Bt{c+V5+#KvaD>vj1MjzOC`;+-78p#c7V}NbSQz|mqMn#3k zD%VmX+>*QQS0IhmamI62wbtjpJ~M6G~hw^m73tc7a5;@my(>(3CxLpHLqV!_^vg|uteIb4z$(={VviN|Ic zmW=Z%Fsz?Zp@qc;6GsjcIz~v(jo~rnR-deK8wzJbOc=l5t0sX777j4Tab-*Hd)FW{)4D*ylh diff --git a/demos/Pesto/Pesto/Assets.xcassets/AppIcon.appiconset/pesto_app_icon_60_3x.png b/demos/Pesto/Pesto/Assets.xcassets/AppIcon.appiconset/pesto_app_icon_60_3x.png deleted file mode 100644 index 945dde970b2e1cfceec47c774bb29ba05bc72e81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3507 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 WYJI!B3%YY*IO@vUN)^vdgZ>M17q(#l diff --git a/demos/Pesto/Pesto/Assets.xcassets/Back.imageset/Contents.json b/demos/Pesto/Pesto/Assets.xcassets/Back.imageset/Contents.json deleted file mode 100644 index 76e6b855b7b..00000000000 --- a/demos/Pesto/Pesto/Assets.xcassets/Back.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "ic_keyboard_arrow_left_white_1x_ios_36dp.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "ic_keyboard_arrow_left_white_2x_ios_36dp.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "ic_keyboard_arrow_left_white_3x_ios_36dp.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/demos/Pesto/Pesto/Assets.xcassets/Back.imageset/ic_keyboard_arrow_left_white_1x_ios_36dp.png b/demos/Pesto/Pesto/Assets.xcassets/Back.imageset/ic_keyboard_arrow_left_white_1x_ios_36dp.png deleted file mode 100644 index e9a1ed942a61174d962b7c5b5b8641473291f463..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K8f~SjPh{y5d1PRu~4Sf&xAFt?SGqt7iT~uiGhdy z9F>=wl?o^6c5j|+eDLOG3wE*PX@z|{=Q@vOM$Fkfhtu!$qms|}UT!x(H`UB&5_kWV zj~;7Penf7O2~y^?b80ZowOkT)Dg09Hwe5e|UrscA>D+cu(zDh~bh(Jg@iRd1X1^_? Y`On}(7bdyL0UgcY>FVdQ&MBb@0B}oQssI20 diff --git a/demos/Pesto/Pesto/Assets.xcassets/Back.imageset/ic_keyboard_arrow_left_white_3x_ios_36dp.png b/demos/Pesto/Pesto/Assets.xcassets/Back.imageset/ic_keyboard_arrow_left_white_3x_ios_36dp.png deleted file mode 100644 index 3b1cf4ae6f580974687885cfaeb7b93400b3b354..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz0wh)Q=eq%^y`Cy1gfuBnQ>IJ$d7pLU1BY}=;_lK1Cx$rVdX3R3Z$1V;Py+a!uM>3!yrj9g!I(QZx5 z7X2`}TTN4&!&1NcN2j{RBu}2a_3$AS@am`e<2{FVm7blIxV$1HF}P>xf`tngZoSZ# z0R*{Qn5CqoqNH>C+uGW$Iqg1fro8rlZ)m1v1b5W`^j%)B{|g2$eVV*CGkGG+4fPj= YMU$lWuE-Ko1bT$Q)78&qol`;+0GZ-v_y7O^ diff --git a/demos/Pesto/Pesto/Assets.xcassets/Contents.json b/demos/Pesto/Pesto/Assets.xcassets/Contents.json deleted file mode 100644 index da4a164c918..00000000000 --- a/demos/Pesto/Pesto/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/demos/Pesto/Pesto/Assets.xcassets/PestoLogoLarge.imageset/Contents.json b/demos/Pesto/Pesto/Assets.xcassets/PestoLogoLarge.imageset/Contents.json deleted file mode 100644 index d3fe95eed6b..00000000000 --- a/demos/Pesto/Pesto/Assets.xcassets/PestoLogoLarge.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "pesto_logo_large.pdf" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/demos/Pesto/Pesto/Assets.xcassets/PestoLogoLarge.imageset/pesto_logo_large.pdf b/demos/Pesto/Pesto/Assets.xcassets/PestoLogoLarge.imageset/pesto_logo_large.pdf deleted file mode 100644 index 3e31d264823d72014e76f986a26369475940fb38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44622 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 diff --git a/demos/Pesto/Pesto/Assets.xcassets/PestoLogoSmall.imageset/pesto_text.pdf b/demos/Pesto/Pesto/Assets.xcassets/PestoLogoSmall.imageset/pesto_text.pdf deleted file mode 100644 index e7c604aaff778e39822e94c43fa714c5961ba277..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41271 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 diff --git a/demos/Pesto/Pesto/Assets.xcassets/Settings.imageset/Contents.json b/demos/Pesto/Pesto/Assets.xcassets/Settings.imageset/Contents.json deleted file mode 100644 index 6b283d8a0f7..00000000000 --- a/demos/Pesto/Pesto/Assets.xcassets/Settings.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "ic_settings_white_1x_ios_24dp.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "ic_settings_white_2x_ios_24dp.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "ic_settings_white_3x_ios_24dp.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/demos/Pesto/Pesto/Assets.xcassets/Settings.imageset/ic_settings_white_1x_ios_24dp.png b/demos/Pesto/Pesto/Assets.xcassets/Settings.imageset/ic_settings_white_1x_ios_24dp.png deleted file mode 100644 index 8909c3553600d7e8148df21f8ef8a8ca655ade7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmV-M0lEH(P)>O6 zS70QgNAU8v+(?*#6#o9*V@~mgC;x#Rf^DRK!rxsIH1Y+{1W$v50*~CV#54`Q2vW|N zVwqbWh7Wvdgwql&RGT?0V4Y7)9ZgCcW4f$baDbN(6Vt-m zvtW!jvUC`+K-kE98fAa!hlpy;7r2s24Mgk2IZK^^iBh`hXFsLp$Hi^-XdC|o$nN|w}JYolv9aiaA3)AHJ#jL^+Vnw!iASI;~WiKXmD0RMEHO!?-j&6;kHOKLX;?@ zWGE7DPJUcs54$WqYC|tM?Dm*a5EB$J%My_f5ptOQ;JnO8utv}pJu;w=5<;?v>&>8 zhF?Y&EaUf-F4>V}ouDGUG9XTwpfwUQW0DePIU@2QLIJZP6AEI68g@DQ)P^_(>}pKO zkE?_$vBVfLVvMs)nQ&JW#5%6Ll?i8P;6j~onehS_p38;=e>tq*49Si(?RM$JF6|Z- zhLe1y=@Yj&%{<$LDKkeuxA{!dCfy3hWwyzZQVXYeKoyfe+#{|QF7lc(Gdc+Jm}KP& zE12AuD=c7gL#~j*pF diff --git a/demos/Pesto/Pesto/Assets.xcassets/Settings.imageset/ic_settings_white_3x_ios_24dp.png b/demos/Pesto/Pesto/Assets.xcassets/Settings.imageset/ic_settings_white_3x_ios_24dp.png deleted file mode 100644 index eabb0a2ba41bbe0e109263ee9b0d6ada40a6e792..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 843 zcmV-R1GM~!P)RPWZAHfP!)RVB2S(!`lt|Um(uYf2_cGfFjG~?QJ_SKM>Hu7Qz_%` zC^KY0j^p?%F-hrI#t?oEkx>e=^x$WZC9-20$8bAJMiyi_f!j|s$&C!#uq!e{4&*3d z*U4D<;$4cQ>yQUJNq3uf6oz@6$E?Ckd0-Y5%+4`a;aG`TuRL)UvsTrDjhJ=G6Wy3? zP%Zcjv%EY}z-*IhK|5x7d7^;XCe?zCn03h$-I#4qEm(P<#_c#+Sul>1xE*7f>{!k} z_~{|56pZ6*{0y;7>1g5}{!WmS0WF-w-(4mv4bw>oQKFMsszM7}DHGx$QauHt_cw57G zmNrf?VwFPCz(EGt%|eYrmJb-fVG|Z VF?y~eTbBR;002ovPDHLkV1i=jh>-vQ diff --git a/demos/Pesto/Pesto/Base.lproj/LaunchScreen.storyboard b/demos/Pesto/Pesto/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 0c2a6c85962..00000000000 --- a/demos/Pesto/Pesto/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/demos/Pesto/Pesto/Info.plist b/demos/Pesto/Pesto/Info.plist deleted file mode 100644 index c892bc15112..00000000000 --- a/demos/Pesto/Pesto/Info.plist +++ /dev/null @@ -1,51 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - com.google.mdc-pesto - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UIRequiresFullScreen - - UIStatusBarStyle - UIStatusBarStyleLightContent - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - - diff --git a/demos/Pesto/Pesto/PestoAppDelegate.h b/demos/Pesto/Pesto/PestoAppDelegate.h deleted file mode 100644 index 4e61cb977db..00000000000 --- a/demos/Pesto/Pesto/PestoAppDelegate.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -@interface PestoAppDelegate : UIResponder - -@property(strong, nonatomic) UIWindow *window; - -@end diff --git a/demos/Pesto/Pesto/PestoAppDelegate.m b/demos/Pesto/Pesto/PestoAppDelegate.m deleted file mode 100644 index ae3661c5bab..00000000000 --- a/demos/Pesto/Pesto/PestoAppDelegate.m +++ /dev/null @@ -1,59 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoAppDelegate.h" -#import "PestoViewController.h" - -#import "PestoIcons/PestoIconFavorite.h" -#import "PestoIcons/PestoIconHome.h" -#import "PestoIcons/PestoIconTrending.h" - -@interface PestoAppDelegate () - -@end - -@implementation PestoAppDelegate - -- (BOOL)application:(UIApplication *)application - didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - - self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; - [self.window makeKeyAndVisible]; - - CGRect iconFrame = CGRectMake(0, 0, 32, 32); - UITabBarController *tabBarController = [[UITabBarController alloc] init]; - - PestoViewController *homeViewController = [[PestoViewController alloc] init]; - PestoViewController *favoritesViewController = [[PestoViewController alloc] init]; - PestoViewController *trendingViewController = [[PestoViewController alloc] init]; - - homeViewController.tabBarItem.title = @"Home"; - homeViewController.tabBarItem.image = [PestoIconHome drawTileImage:iconFrame]; - favoritesViewController.tabBarItem.title = @"Favorites"; - favoritesViewController.tabBarItem.image = [PestoIconFavorite drawTileImage:iconFrame]; - trendingViewController.tabBarItem.title = @"Trending"; - trendingViewController.tabBarItem.image = [PestoIconTrending drawTileImage:iconFrame]; - tabBarController.viewControllers = - @[ homeViewController, favoritesViewController, trendingViewController ]; - UIColor *teal = [UIColor colorWithRed:0 green:0.67f blue:0.55f alpha:1.f]; - tabBarController.tabBar.tintColor = teal; - tabBarController.tabBar.translucent = NO; - self.window.rootViewController = tabBarController; - - return YES; -} - -@end diff --git a/demos/Pesto/Pesto/PestoAvatarView.h b/demos/Pesto/Pesto/PestoAvatarView.h deleted file mode 100644 index 6ca204f3839..00000000000 --- a/demos/Pesto/Pesto/PestoAvatarView.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -@interface PestoAvatarView : UIView - -@property(nonatomic, copy) NSURL *avatarImageURL; - -@end diff --git a/demos/Pesto/Pesto/PestoAvatarView.m b/demos/Pesto/Pesto/PestoAvatarView.m deleted file mode 100644 index 6405dbd36ed..00000000000 --- a/demos/Pesto/Pesto/PestoAvatarView.m +++ /dev/null @@ -1,77 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoAvatarView.h" -#import "PestoRemoteImageService.h" - -static CGFloat kPestoAvatarViewImageInset = 3.f; -static CGFloat kPestoAvatarViewCircleLineWidth = 2.f; - -@interface PestoAvatarView () - -@property(nonatomic) UIImageView *imageView; - -@end - -@implementation PestoAvatarView - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - CGFloat imageInset = kPestoAvatarViewImageInset + kPestoAvatarViewCircleLineWidth; - - _imageView = - [[UIImageView alloc] initWithFrame:CGRectInset(self.bounds, imageInset, imageInset)]; - _imageView.layer.masksToBounds = YES; - - CAShapeLayer *circleLayer = [CAShapeLayer layer]; - CGRect ovalRect = - CGRectInset(self.bounds, kPestoAvatarViewCircleLineWidth, kPestoAvatarViewCircleLineWidth); - circleLayer.path = [UIBezierPath bezierPathWithOvalInRect:ovalRect].CGPath; - UIColor *teal = [UIColor colorWithRed:0.0f green:0.67f blue:0.55f alpha:1.f]; - circleLayer.strokeColor = teal.CGColor; - circleLayer.fillColor = [UIColor clearColor].CGColor; - circleLayer.lineWidth = kPestoAvatarViewCircleLineWidth; - - [self.layer addSublayer:circleLayer]; - [self addSubview:_imageView]; - self.layer.masksToBounds = YES; - } - return self; -} - -- (void)layoutSubviews { - [super layoutSubviews]; - [CATransaction begin]; - [CATransaction setDisableActions:YES]; - self.imageView.layer.cornerRadius = self.imageView.bounds.size.width / 2.f; - [CATransaction commit]; -} - -- (void)setAvatarImageURL:(NSURL *)avatarImageURL { - _avatarImageURL = [avatarImageURL copy]; - - __weak __typeof__(self) weakSelf = self; - PestoRemoteImageService *imageService = [PestoRemoteImageService sharedService]; - [imageService fetchImageAndThumbnailFromURL:_avatarImageURL - completion:^(UIImage *image, UIImage *thumbnailImage) { - dispatch_sync(dispatch_get_main_queue(), ^{ - weakSelf.imageView.image = image; - }); - }]; -} - -@end diff --git a/demos/Pesto/Pesto/PestoCardCollectionViewCell.h b/demos/Pesto/Pesto/PestoCardCollectionViewCell.h deleted file mode 100644 index 457494c8196..00000000000 --- a/demos/Pesto/Pesto/PestoCardCollectionViewCell.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -#import "MaterialCollections.h" - -@interface PestoCardCollectionViewCell : MDCCollectionViewCell - -@property(nonatomic, copy) NSString *title; -@property(nonatomic, copy) NSString *iconImageName; -@property(nonatomic, copy) NSString *descText; -@property(nonatomic) UIImage *image; - -- (void)populateContentWithTitle:(NSString *)title - author:(NSString *)author - imageURL:(NSURL *)imageURL - iconName:(NSString *)iconName; - -@end diff --git a/demos/Pesto/Pesto/PestoCardCollectionViewCell.m b/demos/Pesto/Pesto/PestoCardCollectionViewCell.m deleted file mode 100644 index 0c3972df7fa..00000000000 --- a/demos/Pesto/Pesto/PestoCardCollectionViewCell.m +++ /dev/null @@ -1,149 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoCardCollectionViewCell.h" -#import "PestoRemoteImageService.h" - -#import "PestoIcons/PestoIconFish.h" -#import "PestoIcons/PestoIconMain.h" -#import "PestoIcons/PestoIconMeat.h" -#import "PestoIcons/PestoIconSpicy.h" -#import "PestoIcons/PestoIconTimer.h" -#import "PestoIcons/PestoIconVeggie.h" - -#import "MaterialShadowElevations.h" -#import "MaterialShadowLayer.h" -#import "MaterialTypography.h" - -static const CGFloat kPestoCardPadding = 15.f; -static const CGFloat kPestoCardIconSize = 72.f; - -@interface PestoCardCollectionViewCell () - -@property(nonatomic) UIImageView *iconImageView; -@property(nonatomic) UIImageView *thumbnailImageView; -@property(nonatomic) UILabel *authorLabel; -@property(nonatomic) UILabel *titleLabel; -@property(nonatomic) UIView *cellView; -@property(nonatomic) PestoRemoteImageService *imageService; - -@end - -@implementation PestoCardCollectionViewCell - -- (id)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - self.backgroundColor = [UIColor clearColor]; - _imageService = [PestoRemoteImageService sharedService]; - [self commonInit]; - } - return self; -} - -- (void)commonInit { - _cellView = [[UIView alloc] initWithFrame:self.bounds]; - _cellView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - _cellView.backgroundColor = [UIColor whiteColor]; - _cellView.clipsToBounds = YES; - [self addSubview:_cellView]; - - MDCShadowLayer *shadowLayer = (MDCShadowLayer *)self.layer; - shadowLayer.shadowMaskEnabled = NO; - [shadowLayer setElevation:MDCShadowElevationCardResting]; - - CGRect imageViewRect = - CGRectMake(0, 0, self.frame.size.width, self.frame.size.height - kPestoCardIconSize); - _thumbnailImageView = [[UIImageView alloc] initWithFrame:imageViewRect]; - _thumbnailImageView.backgroundColor = [UIColor lightGrayColor]; - _thumbnailImageView.contentMode = UIViewContentModeScaleAspectFill; - _thumbnailImageView.autoresizingMask = UIViewAutoresizingFlexibleWidth; - _thumbnailImageView.clipsToBounds = YES; - [_cellView addSubview:_thumbnailImageView]; - - CGRect iconImageViewFrame = CGRectMake(0, self.frame.size.height - kPestoCardIconSize, - kPestoCardIconSize, kPestoCardIconSize); - _iconImageView = [[UIImageView alloc] initWithFrame:iconImageViewFrame]; - _iconImageView.contentMode = UIViewContentModeCenter; - _iconImageView.alpha = 0.87f; - [_cellView addSubview:_iconImageView]; - - _authorLabel = [[UILabel alloc] init]; - _authorLabel.font = [MDCTypography captionFont]; - _authorLabel.alpha = [MDCTypography captionFontOpacity]; - _authorLabel.textColor = [UIColor colorWithWhite:0.5f alpha:1.f]; - _authorLabel.frame = CGRectMake( - kPestoCardIconSize, self.frame.size.height - _authorLabel.font.pointSize - kPestoCardPadding, - self.frame.size.width - iconImageViewFrame.size.width, self.authorLabel.font.pointSize + 2.f); - [_cellView addSubview:_authorLabel]; - - _titleLabel = [[UILabel alloc] init]; - _titleLabel.font = [MDCTypography headlineFont]; - _titleLabel.alpha = [MDCTypography headlineFontOpacity]; - _titleLabel.textColor = [UIColor colorWithWhite:0 alpha:0.87f]; - _titleLabel.frame = CGRectMake( - kPestoCardIconSize, - _authorLabel.frame.origin.y - _titleLabel.font.pointSize - kPestoCardPadding / 2.f, - self.frame.size.width - iconImageViewFrame.size.width, _titleLabel.font.pointSize + 2.f); - [_cellView addSubview:_titleLabel]; -} - -- (void)populateContentWithTitle:(NSString *)title - author:(NSString *)author - imageURL:(NSURL *)imageURL - iconName:(NSString *)iconName { - self.title = title; - self.titleLabel.text = title; - self.authorLabel.text = author; - self.iconImageName = iconName; - - CGRect iconFrame = CGRectMake(0, 0, 32, 32); - UIImage *icon = [PestoIconFish drawTileImage:iconFrame]; - if ([iconName isEqualToString:@"Main"]) { - icon = [PestoIconMain drawTileImage:iconFrame]; - } else if ([iconName isEqualToString:@"Meat"]) { - icon = [PestoIconMeat drawTileImage:iconFrame]; - } else if ([iconName isEqualToString:@"Spicy"]) { - icon = [PestoIconSpicy drawTileImage:iconFrame]; - } else if ([iconName isEqualToString:@"Timer"]) { - icon = [PestoIconTimer drawTileImage:iconFrame]; - } else if ([iconName isEqualToString:@"Veggie"]) { - icon = [PestoIconVeggie drawTileImage:iconFrame]; - } - - self.iconImageView.image = icon; - __weak __typeof__(self) weakSelf = self; - [self.imageService fetchImageAndThumbnailFromURL:imageURL - completion:^(UIImage *image, UIImage *thumbnailImage) { - [weakSelf setImage:image]; - dispatch_sync(dispatch_get_main_queue(), ^{ - [weakSelf.thumbnailImageView setImage:thumbnailImage]; - }); - }]; -} - -- (void)prepareForReuse { - [super prepareForReuse]; - self.title = nil; - self.image = nil; - [self.thumbnailImageView setImage:nil]; -} - -+ (Class)layerClass { - return [MDCShadowLayer class]; -} - -@end diff --git a/demos/Pesto/Pesto/PestoCollectionViewController.h b/demos/Pesto/Pesto/PestoCollectionViewController.h deleted file mode 100644 index ec01eb049d6..00000000000 --- a/demos/Pesto/Pesto/PestoCollectionViewController.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -#import "MaterialCollections.h" -#import "MaterialFlexibleHeader.h" -#import "PestoCardCollectionViewCell.h" - -@protocol PestoCollectionViewControllerDelegate - -@optional - -- (void)didSelectCell:(PestoCardCollectionViewCell *)cell - completion:(void (^)(void))completionBlock; - -@end - -@interface PestoCollectionViewController : MDCCollectionViewController - -@property(weak, nonatomic) id delegate; -@property(nonatomic) CGFloat scrollOffsetY; -@property(nonatomic) MDCFlexibleHeaderContainerViewController *flexHeaderContainerVC; - -@end diff --git a/demos/Pesto/Pesto/PestoCollectionViewController.m b/demos/Pesto/Pesto/PestoCollectionViewController.m deleted file mode 100644 index 4ecc21f81bf..00000000000 --- a/demos/Pesto/Pesto/PestoCollectionViewController.m +++ /dev/null @@ -1,222 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoCollectionViewController.h" -#import "PestoCardCollectionViewCell.h" -#import "PestoData.h" - -#import "MaterialInk.h" -#import "MaterialShadowElevations.h" -#import "MaterialShadowLayer.h" - -static NSString *const kReusableIdentifierItem = @"itemCellIdentifier"; - -static CGFloat kPestoCollectionViewControllerAnimationDuration = 0.33f; -static CGFloat kPestoCollectionViewControllerCellHeight = 300.f; -static CGFloat kPestoCollectionViewControllerDefaultHeaderHeight = 220.f; -static CGFloat kPestoCollectionViewControllerInset = 5.f; -static CGFloat kPestoCollectionViewControllerSmallHeaderHeight = 56.f; - -@interface PestoCollectionViewController () - -@property(nonatomic) CGFloat logoScale; -@property(nonatomic) MDCInkTouchController *inkTouchController; -@property(nonatomic) PestoData *pestoData; -@property(nonatomic) UIView *logoSmallView; -@property(nonatomic) UIView *logoView; - -@end - -@implementation PestoCollectionViewController - -- (instancetype)initWithCollectionViewLayout:(UICollectionViewLayout *)layout { - self = [super initWithCollectionViewLayout:layout]; - if (self) { - self.collectionView.backgroundColor = [UIColor whiteColor]; - [self.collectionView registerClass:[PestoCardCollectionViewCell class] - forCellWithReuseIdentifier:NSStringFromClass([PestoCardCollectionViewCell class])]; - _pestoData = [[PestoData alloc] init]; - } - return self; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - - // Customize collection view settings. - self.styler.cellStyle = MDCCollectionViewCellStyleCard; - self.styler.cellLayoutType = MDCCollectionViewCellLayoutTypeGrid; - self.styler.gridPadding = kPestoCollectionViewControllerInset * 2; - if (self.view.frame.size.width < self.view.frame.size.height) { - self.styler.gridColumnCount = 1; - } else { - self.styler.gridColumnCount = 2; - } -} - -- (void)viewWillTransitionToSize:(CGSize)size - withTransitionCoordinator:(id)coordinator { - if (size.width < size.height) { - self.styler.gridColumnCount = 1; - } else { - self.styler.gridColumnCount = 2; - } - [self.collectionView.collectionViewLayout invalidateLayout]; - [self centerHeaderWithSize:size]; -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - [self.collectionView.collectionViewLayout invalidateLayout]; - [self centerHeaderWithSize:self.view.frame.size]; -} - -#pragma mark - - -- (NSInteger)collectionView:(UICollectionView *)collectionView - numberOfItemsInSection:(NSInteger)section { - return (NSInteger)[self.pestoData.imageFileNames count]; -} - -- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView - cellForItemAtIndexPath:(NSIndexPath *)indexPath { - PestoCardCollectionViewCell *cell = [collectionView - dequeueReusableCellWithReuseIdentifier:NSStringFromClass([PestoCardCollectionViewCell class]) - forIndexPath:indexPath]; - NSUInteger itemNum = (NSUInteger)indexPath.row; - NSString *baseURL = PestoDataBaseURL; - NSString *imageURLString = - [baseURL stringByAppendingString:self.pestoData.imageFileNames[itemNum]]; - NSURL *imageURL = [NSURL URLWithString:imageURLString]; - NSString *title = self.pestoData.titles[itemNum]; - NSString *author = self.pestoData.authors[itemNum]; - NSString *iconName = self.pestoData.iconNames[itemNum]; - cell.descText = self.pestoData.descriptions[itemNum]; - [cell populateContentWithTitle:title author:author imageURL:imageURL iconName:iconName]; - - return cell; -} - -#pragma mark - - -- (void)collectionView:(UICollectionView *)collectionView - didSelectItemAtIndexPath:(NSIndexPath *)indexPath { - [super collectionView:collectionView didSelectItemAtIndexPath:indexPath]; - PestoCardCollectionViewCell *cell = - (PestoCardCollectionViewCell *)[collectionView cellForItemAtIndexPath:indexPath]; - [self.delegate didSelectCell:cell - completion:^{ - }]; -} - -#pragma mark - - -- (CGFloat)collectionView:(UICollectionView *)collectionView - cellHeightAtIndexPath:(NSIndexPath *)indexPath { - return kPestoCollectionViewControllerCellHeight; -} - -#pragma mark - - -- (void)scrollViewDidScroll:(UIScrollView *)scrollView { - self.scrollOffsetY = scrollView.contentOffset.y; - [self.flexHeaderContainerVC.headerViewController scrollViewDidScroll:scrollView]; - [self centerHeaderWithSize:self.view.frame.size]; - self.logoScale = scrollView.contentOffset.y / -kPestoCollectionViewControllerDefaultHeaderHeight; - if (self.logoScale < 0.5f) { - self.logoScale = 0.5f; - [UIView animateWithDuration:kPestoCollectionViewControllerAnimationDuration - delay:0 - options:UIViewAnimationOptionCurveEaseOut - animations:^{ - self.logoView.layer.opacity = 0; - self.logoSmallView.layer.opacity = 1.f; - } - completion:^(BOOL finished){ - }]; - } else { - [UIView animateWithDuration:kPestoCollectionViewControllerAnimationDuration - delay:0 - options:UIViewAnimationOptionCurveEaseOut - animations:^{ - self.logoView.layer.opacity = 1.f; - self.logoSmallView.layer.opacity = 0; - } - completion:^(BOOL finished){ - }]; - } - self.logoView.transform = - CGAffineTransformScale(CGAffineTransformIdentity, self.logoScale, self.logoScale); -} - -#pragma mark - Private methods - -- (void)centerHeaderWithSize:(CGSize)size { - CGFloat statusBarHeight = [[UIApplication sharedApplication] statusBarFrame].size.height; - CGFloat width = size.width; - CGRect headerFrame = self.flexHeaderContainerVC.headerViewController.headerView.bounds; - self.logoView.center = CGPointMake(width / 2.f, headerFrame.size.height / 2.f); - self.logoSmallView.center = - CGPointMake(width / 2.f, (headerFrame.size.height - statusBarHeight) / 2.f + statusBarHeight); -} - -- (UIView *)pestoHeaderView { - CGRect headerFrame = _flexHeaderContainerVC.headerViewController.headerView.bounds; - UIView *pestoHeaderView = [[UIView alloc] initWithFrame:headerFrame]; - UIColor *teal = [UIColor colorWithRed:0.f green:0.67f blue:0.55f alpha:1.f]; - pestoHeaderView.backgroundColor = teal; - pestoHeaderView.layer.masksToBounds = YES; - pestoHeaderView.autoresizingMask = - (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight); - - UIImage *image = [UIImage imageNamed:@"PestoLogoLarge"]; - _logoView = [[UIImageView alloc] initWithImage:image]; - _logoView.contentMode = UIViewContentModeScaleAspectFill; - _logoView.center = - CGPointMake(pestoHeaderView.frame.size.width / 2.f, pestoHeaderView.frame.size.height / 2.f); - [pestoHeaderView addSubview:_logoView]; - - UIImage *logoSmallImage = [UIImage imageNamed:@"PestoLogoSmall"]; - _logoSmallView = [[UIImageView alloc] initWithImage:logoSmallImage]; - _logoSmallView.contentMode = UIViewContentModeScaleAspectFill; - _logoSmallView.layer.opacity = 0; - [pestoHeaderView addSubview:_logoSmallView]; - - _inkTouchController = [[MDCInkTouchController alloc] initWithView:pestoHeaderView]; - [_inkTouchController addInkView]; - - return pestoHeaderView; -} - -- (void)setFlexHeaderContainerVC:(MDCFlexibleHeaderContainerViewController *)flexHeaderContainerVC { - _flexHeaderContainerVC = flexHeaderContainerVC; - MDCFlexibleHeaderView *headerView = _flexHeaderContainerVC.headerViewController.headerView; - headerView.trackingScrollView = self.collectionView; - headerView.maximumHeight = kPestoCollectionViewControllerDefaultHeaderHeight; - headerView.minimumHeight = kPestoCollectionViewControllerSmallHeaderHeight; - headerView.minMaxHeightIncludesSafeArea = NO; - [headerView addSubview:[self pestoHeaderView]]; - - // Use a custom shadow under the flexible header. - MDCShadowLayer *shadowLayer = [MDCShadowLayer layer]; - [headerView setShadowLayer:shadowLayer - intensityDidChangeBlock:^(CALayer *layer, CGFloat intensity) { - CGFloat elevation = MDCShadowElevationAppBar * intensity; - [(MDCShadowLayer *)layer setElevation:elevation]; - }]; -} - -@end diff --git a/demos/Pesto/Pesto/PestoData.h b/demos/Pesto/Pesto/PestoData.h deleted file mode 100644 index fca136d8a29..00000000000 --- a/demos/Pesto/Pesto/PestoData.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -CG_EXTERN NSString *const PestoDataBaseURL; - -@interface PestoData : NSObject - -@property(nonatomic) NSArray *authors; -@property(nonatomic) NSArray *iconNames; -@property(nonatomic) NSArray *imageFileNames; -@property(nonatomic) NSArray *titles; -@property(nonatomic) NSArray *descriptions; - -@end diff --git a/demos/Pesto/Pesto/PestoData.m b/demos/Pesto/Pesto/PestoData.m deleted file mode 100644 index 5aa7936f46e..00000000000 --- a/demos/Pesto/Pesto/PestoData.m +++ /dev/null @@ -1,104 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoData.h" - -NSString *const PestoDataBaseURL = @"https://www.gstatic.com/angular/material-adaptive/pesto/"; - -@interface PestoData () - -@end - -@implementation PestoData - -- (instancetype)init { - self = [super init]; - if (self) { - [self setupData]; - } - return self; -} - -- (void)setupData { - _imageFileNames = @[ - @"image2-01.png", @"blue-potato.jpg", @"image1-01.png", @"sausage.jpg", @"image5.png", - @"white-rice.jpg", @"IMG_0575.jpg", @"fish-steaks.jpg", @"IMG_5438.png", @"IMG_5332.png", - @"bok-choy.jpg", @"pasta.png", @"IMG_5447.jpg" - ]; - - _titles = @[ - @"Pesto bruchetta", @"Rustic mash", @"Bacon sprouts", @"Oven sausage", @"Chicken tostadas", - @"Coconut rice", @"Sicilian-style sardines", @"Seared sesame fish", @"Herb artichoke", - @"Pesto bruschetta", @"Garlic bok choy", @"Fresh fettuccine", @"Gin basil cocktail" - ]; - - _authors = @[ - @"Peter Carlsson", @"Trevor Hansen", @"Ali Connors", @"Sandra Adams", @"Peter Carlsson", - @"Ali Connors", @"Peter Carlsson", @"Ali Connors", @"Sandra Adams", @"Trevor Hansen", - @"Sandra Adams", @"Ali Connors", @"Trevor Hansen" - ]; - - _iconNames = @[ - @"Timer", @"Veggie", @"Main", @"Meat", @"Spicy", @"Veggie", @"Timer", @"Fish", @"Veggie", - @"Veggie", @"Spicy", @"Main", @"Timer" - ]; - -// The following string concatenations are deliberate and introduced by clang-format. -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wobjc-string-concatenation" - _descriptions = @[ - @"Bask in greens this season by trying this delightful take on traditional bruschetta. Top " - @"with a dollop of homemade pesto, and season with freshly ground sea salt and pepper.", - @"Abundant in color, and healthy, delicious goodness, cooking with these South American purple " - @"potatoes is a treat. Boil, mash, bake, or roast them. For taste cook with chicken stock, " - @"and a dash of extra virgin olive oil.", - @"This beautiful sprouts recipe is the most glorious side dish on a cold winter’s night. " - @"Construct it with bacon or fake-on, but always make sure the sprouts are deliciously " - @"seasoned and appropriately sautéed.", - @"Robust cuts of portuguese sausage add layers of flavour. Bake or fry until sausages are " - @"slightly browned and with a crispy skin. Serve warm and with cuts of pineapple for a " - @"delightful mix of sweet and savory flavour. This is the perfect dish after a swim in the " - @"sea.", - @"Crisp flavours and a bit of spice make this roasted chicken dish an easy go to when cooking " - @"for large groups. Top with Baja sauce for an extra kick of spice.", - @"This dish is a terrific pairing to almost any main. Bonus- it’s quick, easy to make, and " - @"turns even the simplest of dishes into a delicacy. Sweet coconut cream will leave your " - @"mouth watering, with yummy caramelized flecks of rice adding an extra bit of taste. Fluff " - @"with fork before serving for best results.", - @"My go to way to eat sardines is with a splash of tangy lemon and fresh fennel drizzled on " - @"top. The best thing about this dish is the flavour it packs. Prepaid with wild caught " - @"sardines or canned.", - @"Cuts of fish like this are perfect for simple searing with bright flavours. Try Sesame seeds " - @"on these fillets for crusty skin filled with crunch. For added flavour try dipping in a " - @"homemade ponzu sauce - delicious.", - @"This tasty and healthy veggie is a favorite. Artichoke like this can be paired with a hearty " - @"main or works well as a small meal with some white wine on the side. Simple and fresh, all " - @"foodies love tasty artichoke.", - @"Life is good when you add amazingly warm bread, fresh pesto sauce, and roasted tomatoes to " - @"the table. This a classic starter to break out in a pinch. It’s easy to make and extra " - @"tasty.", - @"Great stir-fried bok choy starts at the market. For me, nothing says tasty like garlic and " - @"baby bok choy. Choose fresh, crisp greens. Once home, wash, chop, and then ready for the " - @"wok. No family style spread is complete without these greens.", - @"Satisfy a need for rich, creamy homemade goodness with this classic. Creamy fettuccine " - @"alfredo will have you hitting the gym the next day, but it’s so good it’s worth it.", - @"This mellow and herb filled blending of simple ingredients is easy enough to mix that a " - @"novice host will feel like a seasoned bartender. Top with crushed basil, shake or stir." - ]; -#pragma clang diagnostic pop -} - -@end diff --git a/demos/Pesto/Pesto/PestoDetailViewController.h b/demos/Pesto/Pesto/PestoDetailViewController.h deleted file mode 100644 index 1a0899ceea0..00000000000 --- a/demos/Pesto/Pesto/PestoDetailViewController.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -@interface PestoDetailViewController : UIViewController - -@property(nonatomic, strong, nullable) UIScrollView *scrollView; -@property(nonatomic, strong, nullable) UIImageView *imageView; -@property(nonatomic, copy, nullable) NSString *descText; -@property(nonatomic, copy, nullable) NSString *iconImageName; - -@end diff --git a/demos/Pesto/Pesto/PestoDetailViewController.m b/demos/Pesto/Pesto/PestoDetailViewController.m deleted file mode 100644 index e7a281523db..00000000000 --- a/demos/Pesto/Pesto/PestoDetailViewController.m +++ /dev/null @@ -1,194 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -#import "PestoDetailViewController.h" -#import "PestoRecipeCardView.h" - -#import "MaterialAnimationTiming.h" -#import "MaterialAppBar.h" -#import "MaterialFlexibleHeader.h" - -static CGFloat kPestoDetailAnimationDelay = 0.1f; -static CGFloat kPestoDetailAnimationDuration = 0.33f; -static CGFloat kPestoDetailFlexibleHeaderLandscapeHeight = 160.f; -static CGFloat kPestoDetailFlexibleHeaderMinHeight = 320.f; -static CGFloat kPestoDetailRecipeCardHeight = 400.f; - -@interface PestoDetailViewController () - -@property(nonatomic, strong) MDCAppBar *appBar; -@property(nonatomic, strong) MDCFlexibleHeaderViewController *fhvc; -@property(nonatomic, strong) PestoRecipeCardView *bottomView; - -@end - -@implementation PestoDetailViewController - -- (instancetype)init { - self = [super init]; - if (self) { - [self commonInit]; - } - return self; -} - -- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; - if (self) { - [self commonInit]; - } - return self; -} - -- (instancetype)initWithCoder:(NSCoder *)aDecoder { - self = [super initWithCoder:aDecoder]; - if (self) { - [self commonInit]; - } - return self; -} - -- (void)commonInit { - _fhvc = [[MDCFlexibleHeaderViewController alloc] initWithNibName:nil bundle:nil]; - [self addChildViewController:_fhvc]; - - CGRect imageViewFrame = _fhvc.headerView.bounds; - _imageView = [[UIImageView alloc] initWithFrame:imageViewFrame]; - _imageView.contentMode = UIViewContentModeScaleAspectFill; - _imageView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - [_fhvc.headerView addSubview:_imageView]; - - _appBar = [[MDCAppBar alloc] init]; - [self addChildViewController:_appBar.headerViewController]; - - _appBar.headerViewController.headerView.backgroundColor = [UIColor clearColor]; - _appBar.navigationBar.tintColor = [UIColor whiteColor]; - - UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"" - style:UIBarButtonItemStyleDone - target:self - action:@selector(didTapBack:)]; - UIImage *backImage = [UIImage imageNamed:@"Back"]; - backButton.image = backImage; - self.navigationItem.leftBarButtonItem = backButton; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - - if (self.view.frame.size.height > self.view.frame.size.width) { - self.fhvc.headerView.minimumHeight = kPestoDetailFlexibleHeaderMinHeight; - } else { - self.fhvc.headerView.minimumHeight = kPestoDetailFlexibleHeaderLandscapeHeight; - self.fhvc.headerView.maximumHeight = kPestoDetailFlexibleHeaderLandscapeHeight; - } - - self.scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds]; - self.scrollView.backgroundColor = [UIColor whiteColor]; - self.scrollView.autoresizingMask = - UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - [self.view addSubview:self.scrollView]; - - self.scrollView.delegate = self; - self.fhvc.headerView.trackingScrollView = self.scrollView; - self.fhvc.headerView.clipsToBounds = YES; - - self.fhvc.view.frame = self.view.bounds; - [self.view addSubview:self.fhvc.view]; - [self.fhvc didMoveToParentViewController:self]; - - CGRect bottomFrame = CGRectMake(0, 0, self.view.bounds.size.width, kPestoDetailRecipeCardHeight); - self.bottomView = [[PestoRecipeCardView alloc] initWithFrame:bottomFrame]; - self.bottomView.descText = self.descText; - self.bottomView.title = self.title; - self.bottomView.iconImageName = self.iconImageName; - self.bottomView.alpha = 0; - self.bottomView.autoresizingMask = - UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - [self.scrollView addSubview:self.bottomView]; - - dispatch_async(dispatch_get_main_queue(), ^{ - [UIView animateWithDuration:kPestoDetailAnimationDuration - delay:kPestoDetailAnimationDelay - options:UIViewAnimationOptionCurveEaseOut - animations:^{ - CAMediaTimingFunction *quantumEaseInOut = [CAMediaTimingFunction - mdc_functionWithType:MDCAnimationTimingFunctionEaseInOut]; - [CATransaction setAnimationTimingFunction:quantumEaseInOut]; - self.bottomView.alpha = 1; - } - completion:^(BOOL finished){ - }]; - }); - [self.appBar addSubviewsToParent]; - - // Only display title in the bottom view with no title in the app bar. - self.bottomView.title = self.title; - self.appBar.navigationBar.title = @""; -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - - // If the MDCFlexibleHeaderViewController's view is not going to replace a navigation bar, - // comment this line: - [self.navigationController setNavigationBarHidden:YES animated:animated]; -} - -// This method must be implemented for MDCFlexibleHeaderViewController's -// MDCFlexibleHeaderView to properly support MDCFlexibleHeaderShiftBehavior should you choose -// to customize it. -- (UIViewController *)childViewControllerForStatusBarHidden { - return self.fhvc; -} - -- (void)viewWillTransitionToSize:(CGSize)size - withTransitionCoordinator:(id)coordinator { - if (size.height > size.width) { - _fhvc.headerView.minimumHeight = kPestoDetailFlexibleHeaderMinHeight; - } else { - _fhvc.headerView.minimumHeight = kPestoDetailFlexibleHeaderLandscapeHeight; - _fhvc.headerView.maximumHeight = kPestoDetailFlexibleHeaderLandscapeHeight; - } -} - -- (void)didTapBack:(id)button { - [self dismissViewControllerAnimated:YES completion:nil]; -} - -- (UIStatusBarStyle)preferredStatusBarStyle { - return UIStatusBarStyleLightContent; -} - -- (void)viewDidLayoutSubviews { - [super viewDidLayoutSubviews]; - self.scrollView.contentSize = - CGSizeMake(self.bottomView.bounds.size.width, kPestoDetailRecipeCardHeight); -} - -#pragma mark - - -- (void)scrollViewDidScroll:(UIScrollView *)scrollView { - CGFloat contentOffsetY = -scrollView.contentOffset.y; - if (contentOffsetY < kPestoDetailFlexibleHeaderMinHeight) { - contentOffsetY = kPestoDetailFlexibleHeaderMinHeight; - } - [self.fhvc scrollViewDidScroll:scrollView]; -} - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIcon.h b/demos/Pesto/Pesto/PestoIcons/PestoIcon.h deleted file mode 100644 index eb13a7ecd30..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIcon.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -@interface PestoIcon : NSObject - -+ (UIImage *)drawImageWithFrame:(CGRect)frame drawBlock:(void (^)(CGRect))drawBlock; - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIcon.m b/demos/Pesto/Pesto/PestoIcons/PestoIcon.m deleted file mode 100644 index 463a5c6c02d..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIcon.m +++ /dev/null @@ -1,30 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoIcon.h" - -@implementation PestoIcon - -+ (UIImage *)drawImageWithFrame:(CGRect)frame drawBlock:(void (^)(CGRect))drawBlock { - CGFloat scale = [UIScreen mainScreen].scale; - UIGraphicsBeginImageContextWithOptions(frame.size, false, scale); - drawBlock(frame); - UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - return image; -} - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIconFavorite.h b/demos/Pesto/Pesto/PestoIcons/PestoIconFavorite.h deleted file mode 100644 index 71b6b433548..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIconFavorite.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -#import "PestoIcon.h" - -@interface PestoIconFavorite : PestoIcon - -+ (UIImage *)drawTileImage:(CGRect)frame; - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIconFavorite.m b/demos/Pesto/Pesto/PestoIcons/PestoIconFavorite.m deleted file mode 100644 index 3a3e5c37c0d..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIconFavorite.m +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoIconFavorite.h" - -@implementation PestoIconFavorite - -+ (UIImage *)drawTileImage:(CGRect)frame { - void (^drawBlock)(CGRect) = ^(CGRect drawBlockFrame) { - [self draw:CGRectMake(0, 0, drawBlockFrame.size.width, drawBlockFrame.size.height)]; - }; - return [self drawImageWithFrame:frame drawBlock:drawBlock]; -} - -/* Auto-generated code using PaintCode and formatted with clang-format. */ -+ (void)draw:(CGRect)frame { - //// Color Declarations - UIColor *fillColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1]; - - //// Bezier Drawing - UIBezierPath *bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint:CGPointMake(CGRectGetMinX(frame) + 0.50000f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.88958f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.43958f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.83458f * CGRectGetHeight(frame))]; - [bezierPath addCurveToPoint:CGPointMake(CGRectGetMinX(frame) + 0.08333f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.35417f * CGRectGetHeight(frame)) - controlPoint1:CGPointMake(CGRectGetMinX(frame) + 0.22500f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.64000f * CGRectGetHeight(frame)) - controlPoint2:CGPointMake(CGRectGetMinX(frame) + 0.08333f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.51167f * CGRectGetHeight(frame))]; - [bezierPath addCurveToPoint:CGPointMake(CGRectGetMinX(frame) + 0.31250f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.12500f * CGRectGetHeight(frame)) - controlPoint1:CGPointMake(CGRectGetMinX(frame) + 0.08333f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.22583f * CGRectGetHeight(frame)) - controlPoint2:CGPointMake(CGRectGetMinX(frame) + 0.18417f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.12500f * CGRectGetHeight(frame))]; - [bezierPath addCurveToPoint:CGPointMake(CGRectGetMinX(frame) + 0.50000f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.21208f * CGRectGetHeight(frame)) - controlPoint1:CGPointMake(CGRectGetMinX(frame) + 0.38500f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.12500f * CGRectGetHeight(frame)) - controlPoint2:CGPointMake(CGRectGetMinX(frame) + 0.45458f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.15875f * CGRectGetHeight(frame))]; - [bezierPath addCurveToPoint:CGPointMake(CGRectGetMinX(frame) + 0.68750f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.12500f * CGRectGetHeight(frame)) - controlPoint1:CGPointMake(CGRectGetMinX(frame) + 0.54542f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.15875f * CGRectGetHeight(frame)) - controlPoint2:CGPointMake(CGRectGetMinX(frame) + 0.61500f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.12500f * CGRectGetHeight(frame))]; - [bezierPath addCurveToPoint:CGPointMake(CGRectGetMinX(frame) + 0.91667f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.35417f * CGRectGetHeight(frame)) - controlPoint1:CGPointMake(CGRectGetMinX(frame) + 0.81583f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.12500f * CGRectGetHeight(frame)) - controlPoint2:CGPointMake(CGRectGetMinX(frame) + 0.91667f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.22583f * CGRectGetHeight(frame))]; - [bezierPath addCurveToPoint:CGPointMake(CGRectGetMinX(frame) + 0.56042f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.83500f * CGRectGetHeight(frame)) - controlPoint1:CGPointMake(CGRectGetMinX(frame) + 0.91667f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.51167f * CGRectGetHeight(frame)) - controlPoint2:CGPointMake(CGRectGetMinX(frame) + 0.77500f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.64000f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.50000f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.88958f * CGRectGetHeight(frame))]; - [bezierPath closePath]; - [fillColor setFill]; - [bezierPath fill]; -} - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIconFish.h b/demos/Pesto/Pesto/PestoIcons/PestoIconFish.h deleted file mode 100644 index 3a13b83687f..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIconFish.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -#import "PestoIcon.h" - -@interface PestoIconFish : PestoIcon - -+ (UIImage *)drawTileImage:(CGRect)frame; - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIconFish.m b/demos/Pesto/Pesto/PestoIcons/PestoIconFish.m deleted file mode 100644 index c80c03a62f9..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIconFish.m +++ /dev/null @@ -1,270 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoIconFish.h" - -@implementation PestoIconFish - -+ (UIImage*)drawTileImage:(CGRect)frame { - void (^drawBlock)(CGRect) = ^(CGRect drawBlockFrame) { - [self draw:CGRectMake(0, 0, drawBlockFrame.size.width, drawBlockFrame.size.height)]; - }; - return [self drawImageWithFrame:frame drawBlock:drawBlock]; -} - -/* Auto-generated code using PaintCode and formatted with clang-format. */ -+ (void)draw:(CGRect)frame { - //// General Declarations - CGContextRef context = UIGraphicsGetCurrentContext(); - - //// Color Declarations - UIColor* fillColor = [UIColor colorWithRed:0.04f green:0.041f blue:0.037f alpha:1]; - - //// Subframes - CGRect group = CGRectMake( - CGRectGetMinX(frame) + (CGFloat)floor((CGRectGetWidth(frame) - 18.67f) * 0.53822f + 0.33f) + 0.17f, - CGRectGetMinY(frame) + (CGFloat)floor((CGRectGetHeight(frame) - 18.67f) * 0.59583f + 0.11f) + 0.39f, 18.67f, - 18.67f); - - //// Group - { - //// Rectangle Drawing - CGContextSaveGState(context); - CGContextTranslateCTM(context, CGRectGetMinX(group) + 9.88f, CGRectGetMinY(group) + 8.91f); - CGContextRotateCTM(context, -45 * (CGFloat)M_PI / 180); - - UIBezierPath* rectanglePath = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(-0.68f, -4.67f, 1.35f, 9.35f) - cornerRadius:0.4f]; - [fillColor setFill]; - [rectanglePath fill]; - - CGContextRestoreGState(context); - - //// Rectangle 2 Drawing - CGContextSaveGState(context); - CGContextTranslateCTM(context, CGRectGetMinX(group) + 4.23f, CGRectGetMinY(group) + 8.91f); - CGContextRotateCTM(context, 44.9f * (CGFloat)M_PI / 180.f); - - UIBezierPath* rectangle2Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(-0.68f, -2, 1.35f, 4) cornerRadius:0.4f]; - [fillColor setFill]; - [rectangle2Path fill]; - - CGContextRestoreGState(context); - - //// Rectangle 3 Drawing - CGContextSaveGState(context); - CGContextTranslateCTM(context, CGRectGetMinX(group) + 5.88f, CGRectGetMinY(group) + 11.06f); - CGContextRotateCTM(context, -45.f * (CGFloat)M_PI / 180.f); - - UIBezierPath* rectangle3Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(-2.33f, -0.68f, 4.65f, 1.35f) - cornerRadius:0.4f]; - [fillColor setFill]; - [rectangle3Path fill]; - - CGContextRestoreGState(context); - - //// Rectangle 4 Drawing - CGContextSaveGState(context); - CGContextTranslateCTM(context, CGRectGetMinX(group) + 7.98f, CGRectGetMinY(group) + 12.71f); - CGContextRotateCTM(context, 44.9f * (CGFloat)M_PI / 180.f); - - UIBezierPath* rectangle4Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(-0.68f, -2.f, 1.35f, 4.f) cornerRadius:0.4f]; - [fillColor setFill]; - [rectangle4Path fill]; - - CGContextRestoreGState(context); - - //// Rectangle 5 Drawing - CGContextSaveGState(context); - CGContextTranslateCTM(context, CGRectGetMinX(group) + 10.33f, CGRectGetMinY(group) + 14.11f); - CGContextRotateCTM(context, 45.f * (CGFloat)M_PI / 180.f); - - UIBezierPath* rectangle5Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(-0.68f, -1.33f, 1.35f, 2.65f) - cornerRadius:0.4f]; - [fillColor setFill]; - [rectangle5Path fill]; - - CGContextRestoreGState(context); - - //// Rectangle 6 Drawing - CGContextSaveGState(context); - CGContextTranslateCTM(context, CGRectGetMinX(group) + 9.83f, CGRectGetMinY(group) + 3.31f); - CGContextRotateCTM(context, -44.9f * (CGFloat)M_PI / 180.f); - - UIBezierPath* rectangle6Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(-2.f, -0.68f, 4.f, 1.35f) cornerRadius:0.4f]; - [fillColor setFill]; - [rectangle6Path fill]; - - CGContextRestoreGState(context); - - //// Rectangle 7 Drawing - CGContextSaveGState(context); - CGContextTranslateCTM(context, CGRectGetMinX(group) + 11.93f, CGRectGetMinY(group) + 4.96f); - CGContextRotateCTM(context, -45.f * (CGFloat)M_PI / 180.f); - - UIBezierPath* rectangle7Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(-2.33f, -0.68f, 4.65f, 1.35f) - cornerRadius:0.4f]; - [fillColor setFill]; - [rectangle7Path fill]; - - CGContextRestoreGState(context); - - //// Rectangle 8 Drawing - CGContextSaveGState(context); - CGContextTranslateCTM(context, CGRectGetMinX(group) + 13.58f, CGRectGetMinY(group) + 7.11f); - CGContextRotateCTM(context, -44.9f * (CGFloat)M_PI / 180.f); - - UIBezierPath* rectangle8Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(-2.f, -0.68f, 4.f, 1.35f) cornerRadius:0.4f]; - [fillColor setFill]; - [rectangle8Path fill]; - - CGContextRestoreGState(context); - - //// Rectangle 9 Drawing - CGContextSaveGState(context); - CGContextTranslateCTM(context, CGRectGetMinX(group) + 14.98f, CGRectGetMinY(group) + 9.46f); - CGContextRotateCTM(context, -45.f * (CGFloat)M_PI / 180.f); - - UIBezierPath* rectangle9Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(-1.33f, -0.68f, 2.65f, 1.35f) - cornerRadius:0.4f]; - [fillColor setFill]; - [rectangle9Path fill]; - - CGContextRestoreGState(context); - - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint:CGPointMake(CGRectGetMinX(group) + 14.3f, CGRectGetMinY(group) + 14.3f)]; - [bezierPath - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 14.3f, CGRectGetMinY(group) + 16.39f)]; - [bezierPath - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 16.39f, CGRectGetMinY(group) + 14.3f)]; - [bezierPath - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 14.3f, CGRectGetMinY(group) + 14.3f)]; - [bezierPath closePath]; - [bezierPath - moveToPoint:CGPointMake(CGRectGetMinX(group) + 13.16f, CGRectGetMinY(group) + 18.47f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 12.97f, CGRectGetMinY(group) + 18.f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 13.04f, CGRectGetMinY(group) + 18.35f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 12.97f, CGRectGetMinY(group) + 18.18f)]; - [bezierPath - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 12.97f, CGRectGetMinY(group) + 13.63f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 13.63f, CGRectGetMinY(group) + 12.97f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 12.97f, CGRectGetMinY(group) + 13.27f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 13.27f, CGRectGetMinY(group) + 12.97f)]; - [bezierPath - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 18.f, CGRectGetMinY(group) + 12.97f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 18.62f, CGRectGetMinY(group) + 13.38f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 18.27f, CGRectGetMinY(group) + 12.97f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 18.52f, CGRectGetMinY(group) + 13.13f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 18.47f, CGRectGetMinY(group) + 14.11f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 18.72f, CGRectGetMinY(group) + 13.63f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 18.66f, CGRectGetMinY(group) + 13.91f)]; - [bezierPath - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 14.11f, CGRectGetMinY(group) + 18.47f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 13.38f, CGRectGetMinY(group) + 18.62f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 13.91f, CGRectGetMinY(group) + 18.66f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 13.63f, CGRectGetMinY(group) + 18.72f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 13.16f, CGRectGetMinY(group) + 18.47f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 13.3f, CGRectGetMinY(group) + 18.58f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 13.22f, CGRectGetMinY(group) + 18.54f)]; - [bezierPath closePath]; - [fillColor setFill]; - [bezierPath fill]; - - //// Bezier 2 Drawing - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path moveToPoint:CGPointMake(CGRectGetMinX(group) + 1.65f, CGRectGetMinY(group) + 1.65f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 1.53f, CGRectGetMinY(group) + 5.89f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 1.27f, CGRectGetMinY(group) + 3.04f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 1.23f, CGRectGetMinY(group) + 4.49f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 3.22f, CGRectGetMinY(group) + 3.22f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 1.88f, CGRectGetMinY(group) + 4.9f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 2.45f, CGRectGetMinY(group) + 3.99f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 5.89f, CGRectGetMinY(group) + 1.53f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 3.99f, CGRectGetMinY(group) + 2.45f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 4.9f, CGRectGetMinY(group) + 1.88f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 1.65f, CGRectGetMinY(group) + 1.65f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 4.49f, CGRectGetMinY(group) + 1.23f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 3.04f, CGRectGetMinY(group) + 1.27f)]; - [bezier2Path closePath]; - [bezier2Path moveToPoint:CGPointMake(CGRectGetMinX(group) + 1.32f, CGRectGetMinY(group) + 8.98f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 1.2f, CGRectGetMinY(group) + 8.83f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 1.27f, CGRectGetMinY(group) + 8.94f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 1.23f, CGRectGetMinY(group) + 8.88f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 0.48f, CGRectGetMinY(group) + 0.91f) - controlPoint1:CGPointMake(CGRectGetMinX(group) - 0.09f, CGRectGetMinY(group) + 6.41f) - controlPoint2:CGPointMake(CGRectGetMinX(group) - 0.35f, CGRectGetMinY(group) + 3.52f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 0.91f, CGRectGetMinY(group) + 0.48f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 0.55f, CGRectGetMinY(group) + 0.71f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 0.71f, CGRectGetMinY(group) + 0.55f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 8.83f, CGRectGetMinY(group) + 1.2f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 3.52f, CGRectGetMinY(group) - 0.35f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 6.41f, CGRectGetMinY(group) - 0.09f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 9.15f, CGRectGetMinY(group) + 1.96f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 9.1f, CGRectGetMinY(group) + 1.35f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 9.23f, CGRectGetMinY(group) + 1.66f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 8.49f, CGRectGetMinY(group) + 2.45f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 9.07f, CGRectGetMinY(group) + 2.26f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 8.8f, CGRectGetMinY(group) + 2.46f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 4.17f, CGRectGetMinY(group) + 4.17f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 6.86f, CGRectGetMinY(group) + 2.4f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 5.32f, CGRectGetMinY(group) + 3.01f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 2.45f, CGRectGetMinY(group) + 8.49f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 3.01f, CGRectGetMinY(group) + 5.32f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 2.4f, CGRectGetMinY(group) + 6.86f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 1.96f, CGRectGetMinY(group) + 9.15f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 2.46f, CGRectGetMinY(group) + 8.8f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 2.26f, CGRectGetMinY(group) + 9.07f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 1.32f, CGRectGetMinY(group) + 8.98f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 1.73f, CGRectGetMinY(group) + 9.22f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 1.48f, CGRectGetMinY(group) + 9.15f)]; - [bezier2Path closePath]; - [fillColor setFill]; - [bezier2Path fill]; - } -} - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIconHome.h b/demos/Pesto/Pesto/PestoIcons/PestoIconHome.h deleted file mode 100644 index 1f905c4b4a7..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIconHome.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -#import "PestoIcon.h" - -@interface PestoIconHome : PestoIcon - -+ (UIImage *)drawTileImage:(CGRect)frame; - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIconHome.m b/demos/Pesto/Pesto/PestoIcons/PestoIconHome.m deleted file mode 100644 index e502e72148b..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIconHome.m +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoIconHome.h" - -@implementation PestoIconHome - -+ (UIImage *)drawTileImage:(CGRect)frame { - void (^drawBlock)(CGRect) = ^(CGRect drawBlockFrame) { - [self draw:CGRectMake(0, 0, drawBlockFrame.size.width, drawBlockFrame.size.height)]; - }; - return [self drawImageWithFrame:frame drawBlock:drawBlock]; -} - -/* Auto-generated code using PaintCode and formatted with clang-format. */ -+ (void)draw:(CGRect)frame { - //// Color Declarations - UIColor *fillColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1]; - - //// Bezier Drawing - UIBezierPath *bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint:CGPointMake(CGRectGetMinX(frame) + 0.41667f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.83333f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.41667f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.58333f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.58333f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.58333f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.58333f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.83333f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.79167f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.83333f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.79167f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.50000f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.91667f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.50000f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.50000f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.12500f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.08333f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.50000f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.20833f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.50000f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.20833f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.83333f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.41667f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.83333f * CGRectGetHeight(frame))]; - [bezierPath closePath]; - [fillColor setFill]; - [bezierPath fill]; -} - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIconMain.h b/demos/Pesto/Pesto/PestoIcons/PestoIconMain.h deleted file mode 100644 index d218204c6de..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIconMain.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -#import "PestoIcon.h" - -@interface PestoIconMain : PestoIcon - -+ (UIImage *)drawTileImage:(CGRect)frame; - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIconMain.m b/demos/Pesto/Pesto/PestoIcons/PestoIconMain.m deleted file mode 100644 index 7a71f2707b6..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIconMain.m +++ /dev/null @@ -1,199 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoIconMain.h" - -@implementation PestoIconMain - -+ (UIImage*)drawTileImage:(CGRect)frame { - void (^drawBlock)(CGRect) = ^(CGRect drawBlockFrame) { - [self draw:CGRectMake(0, 0, drawBlockFrame.size.width, drawBlockFrame.size.height)]; - }; - return [self drawImageWithFrame:frame drawBlock:drawBlock]; -} - -/* Auto-generated code using PaintCode and formatted with clang-format. */ -+ (void)draw:(CGRect)frame { - //// Color Declarations - UIColor* fillColor = [UIColor colorWithRed:0.04f green:0.041f blue:0.037f alpha:1]; - - //// Subframes - CGRect group = CGRectMake( - CGRectGetMinX(frame) + (CGFloat)floor((CGRectGetWidth(frame) - 19.83f) * 0.52934f + 0.06f) + 0.44f, - CGRectGetMinY(frame) + (CGFloat)floor((CGRectGetHeight(frame) - 17.25f) * 0.47003f - 0.32f) + 0.82f, 19.83f, - 17.25f); - - //// Group - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath - moveToPoint:CGPointMake(CGRectGetMinX(group) + 17.27f, CGRectGetMinY(group) + 12.13f)]; - [bezierPath - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 2.56f, CGRectGetMinY(group) + 12.13f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group), CGRectGetMinY(group) + 14.69f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 1.15f, CGRectGetMinY(group) + 12.13f) - controlPoint2:CGPointMake(CGRectGetMinX(group), CGRectGetMinY(group) + 13.28f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 2.56f, CGRectGetMinY(group) + 17.25f) - controlPoint1:CGPointMake(CGRectGetMinX(group), CGRectGetMinY(group) + 16.1f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 1.15f, CGRectGetMinY(group) + 17.25f)]; - [bezierPath - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 17.27f, CGRectGetMinY(group) + 17.25f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 19.83f, CGRectGetMinY(group) + 14.69f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 18.68f, CGRectGetMinY(group) + 17.25f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 19.83f, CGRectGetMinY(group) + 16.1f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 17.27f, CGRectGetMinY(group) + 12.13f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 19.83f, CGRectGetMinY(group) + 13.28f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 18.68f, CGRectGetMinY(group) + 12.13f)]; - [bezierPath closePath]; - [bezierPath - moveToPoint:CGPointMake(CGRectGetMinX(group) + 17.27f, CGRectGetMinY(group) + 13.47f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 18.5f, CGRectGetMinY(group) + 14.69f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 17.95f, CGRectGetMinY(group) + 13.47f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 18.5f, CGRectGetMinY(group) + 14.02f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 17.27f, CGRectGetMinY(group) + 15.92f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 18.5f, CGRectGetMinY(group) + 15.37f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 17.95f, CGRectGetMinY(group) + 15.92f)]; - [bezierPath - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 2.56f, CGRectGetMinY(group) + 15.92f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 1.33f, CGRectGetMinY(group) + 14.69f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 1.88f, CGRectGetMinY(group) + 15.92f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 1.33f, CGRectGetMinY(group) + 15.37f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 2.56f, CGRectGetMinY(group) + 13.47f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 1.33f, CGRectGetMinY(group) + 14.02f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 1.88f, CGRectGetMinY(group) + 13.47f)]; - [bezierPath - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 17.27f, CGRectGetMinY(group) + 13.47f)]; - [bezierPath closePath]; - [fillColor setFill]; - [bezierPath fill]; - - //// Bezier 2 Drawing - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path - moveToPoint:CGPointMake(CGRectGetMinX(group) + 11.23f, CGRectGetMinY(group) + 1.87f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 10.76f, CGRectGetMinY(group) + 1.68f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 11.06f, CGRectGetMinY(group) + 1.87f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 10.89f, CGRectGetMinY(group) + 1.81f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 9.1f, CGRectGetMinY(group) + 1.68f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 10.3f, CGRectGetMinY(group) + 1.22f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 9.56f, CGRectGetMinY(group) + 1.22f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 8.16f, CGRectGetMinY(group) + 1.68f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 8.84f, CGRectGetMinY(group) + 1.94f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 8.42f, CGRectGetMinY(group) + 1.94f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 8.16f, CGRectGetMinY(group) + 0.73f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 7.9f, CGRectGetMinY(group) + 1.41f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 7.9f, CGRectGetMinY(group) + 0.99f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 11.7f, CGRectGetMinY(group) + 0.73f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 9.13f, CGRectGetMinY(group) - 0.24f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 10.72f, CGRectGetMinY(group) - 0.25f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 11.7f, CGRectGetMinY(group) + 1.68f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 11.96f, CGRectGetMinY(group) + 0.99f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 11.96f, CGRectGetMinY(group) + 1.41f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 11.23f, CGRectGetMinY(group) + 1.87f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 11.57f, CGRectGetMinY(group) + 1.81f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 11.4f, CGRectGetMinY(group) + 1.87f)]; - [bezier2Path closePath]; - [fillColor setFill]; - [bezier2Path fill]; - - //// Bezier 3 Drawing - UIBezierPath* bezier3Path = [UIBezierPath bezierPath]; - [bezier3Path moveToPoint:CGPointMake(CGRectGetMinX(group) + 9.92f, CGRectGetMinY(group) + 2.32f)]; - [bezier3Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group), CGRectGetMinY(group) + 12.24f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 4.45f, CGRectGetMinY(group) + 2.32f) - controlPoint2:CGPointMake(CGRectGetMinX(group), CGRectGetMinY(group) + 6.77f)]; - [bezier3Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 1.33f, CGRectGetMinY(group) + 13.57f) - controlPoint1:CGPointMake(CGRectGetMinX(group), CGRectGetMinY(group) + 12.98f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 0.6f, CGRectGetMinY(group) + 13.57f)]; - [bezier3Path - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 18.5f, CGRectGetMinY(group) + 13.57f)]; - [bezier3Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 19.83f, CGRectGetMinY(group) + 12.24f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 19.24f, CGRectGetMinY(group) + 13.57f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 19.83f, CGRectGetMinY(group) + 12.98f)]; - [bezier3Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 9.92f, CGRectGetMinY(group) + 2.32f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 19.83f, CGRectGetMinY(group) + 6.77f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 15.38f, CGRectGetMinY(group) + 2.32f)]; - [bezier3Path closePath]; - [bezier3Path moveToPoint:CGPointMake(CGRectGetMinX(group) + 9.92f, CGRectGetMinY(group) + 3.66f)]; - [bezier3Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 18.5f, CGRectGetMinY(group) + 12.24f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 14.66f, CGRectGetMinY(group) + 3.66f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 18.5f, CGRectGetMinY(group) + 7.5f)]; - [bezier3Path - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 1.33f, CGRectGetMinY(group) + 12.24f)]; - [bezier3Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 9.92f, CGRectGetMinY(group) + 3.66f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 1.33f, CGRectGetMinY(group) + 7.5f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 5.18f, CGRectGetMinY(group) + 3.66f)]; - [bezier3Path closePath]; - [fillColor setFill]; - [bezier3Path fill]; - - //// Bezier 4 Drawing - UIBezierPath* bezier4Path = [UIBezierPath bezierPath]; - [bezier4Path - moveToPoint:CGPointMake(CGRectGetMinX(group) + 5.01f, CGRectGetMinY(group) + 10.45f)]; - [bezier4Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 4.34f, CGRectGetMinY(group) + 9.79f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 4.64f, CGRectGetMinY(group) + 10.45f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 4.34f, CGRectGetMinY(group) + 10.15f)]; - [bezier4Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 8.69f, CGRectGetMinY(group) + 5.44f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 4.34f, CGRectGetMinY(group) + 7.39f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 6.29f, CGRectGetMinY(group) + 5.44f)]; - [bezier4Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 9.36f, CGRectGetMinY(group) + 6.11f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 9.06f, CGRectGetMinY(group) + 5.44f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 9.36f, CGRectGetMinY(group) + 5.74f)]; - [bezier4Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 8.69f, CGRectGetMinY(group) + 6.78f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 9.36f, CGRectGetMinY(group) + 6.48f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 9.06f, CGRectGetMinY(group) + 6.78f)]; - [bezier4Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 5.68f, CGRectGetMinY(group) + 9.79f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 7.03f, CGRectGetMinY(group) + 6.78f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 5.68f, CGRectGetMinY(group) + 8.13f)]; - [bezier4Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 5.01f, CGRectGetMinY(group) + 10.45f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 5.68f, CGRectGetMinY(group) + 10.15f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 5.38f, CGRectGetMinY(group) + 10.45f)]; - [bezier4Path closePath]; - [fillColor setFill]; - [bezier4Path fill]; - } -} - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIconMeat.h b/demos/Pesto/Pesto/PestoIcons/PestoIconMeat.h deleted file mode 100644 index 43952fb9add..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIconMeat.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -#import "PestoIcon.h" - -@interface PestoIconMeat : PestoIcon - -+ (UIImage *)drawTileImage:(CGRect)frame; - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIconMeat.m b/demos/Pesto/Pesto/PestoIcons/PestoIconMeat.m deleted file mode 100644 index 8665110f0ad..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIconMeat.m +++ /dev/null @@ -1,214 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoIconMeat.h" - -@implementation PestoIconMeat - -+ (UIImage*)drawTileImage:(CGRect)frame { - void (^drawBlock)(CGRect) = ^(CGRect drawBlockFrame) { - [self draw:CGRectMake(0, 0, drawBlockFrame.size.width, drawBlockFrame.size.height)]; - }; - return [self drawImageWithFrame:frame drawBlock:drawBlock]; -} - -/* Auto-generated code using PaintCode and formatted with clang-format. */ -+ (void)draw:(CGRect)frame { - //// General Declarations - CGContextRef context = UIGraphicsGetCurrentContext(); - - //// Color Declarations - UIColor* fillColor = [UIColor colorWithRed:0.04f green:0.041f blue:0.037f alpha:1]; - - //// Subframes - CGRect group = CGRectMake( - CGRectGetMinX(frame) + (CGFloat)floor((CGRectGetWidth(frame) - 18.75f) * 0.48642f + 0.05f) + 0.45f, - CGRectGetMinY(frame) + (CGFloat)floor((CGRectGetHeight(frame) - 17.32f) * 0.46182f - 0.4f) + 0.9f, 18.75f, - 17.32f); - - //// Group - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint:CGPointMake(CGRectGetMinX(group) + 11.71f, CGRectGetMinY(group))]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 10.52f, CGRectGetMinY(group) + 0.1f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 11.32f, CGRectGetMinY(group)) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 10.92f, CGRectGetMinY(group) + 0.03f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 3.5f, CGRectGetMinY(group) + 5.05f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 7.69f, CGRectGetMinY(group) + 0.6f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 5.3f, CGRectGetMinY(group) + 2.96f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 3.39f, CGRectGetMinY(group) + 5.18f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 3.46f, CGRectGetMinY(group) + 5.1f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 3.42f, CGRectGetMinY(group) + 5.14f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 0.04f, CGRectGetMinY(group) + 12.36f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 1.74f, CGRectGetMinY(group) + 7.14f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 0.35f, CGRectGetMinY(group) + 9.82f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 3.1f, CGRectGetMinY(group) + 17.32f) - controlPoint1:CGPointMake(CGRectGetMinX(group) - 0.21f, CGRectGetMinY(group) + 14.43f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 0.68f, CGRectGetMinY(group) + 17.18f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 3.25f, CGRectGetMinY(group) + 17.32f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 3.15f, CGRectGetMinY(group) + 17.32f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 3.2f, CGRectGetMinY(group) + 17.32f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 7, CGRectGetMinY(group) + 15.45f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 4.68f, CGRectGetMinY(group) + 17.32f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 5.79f, CGRectGetMinY(group) + 16.07f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 16.43f, CGRectGetMinY(group) + 12.21f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 9.97f, CGRectGetMinY(group) + 13.93f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 13.86f, CGRectGetMinY(group) + 14.53f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 16.94f, CGRectGetMinY(group) + 2.31f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 19.31f, CGRectGetMinY(group) + 9.62f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 19.54f, CGRectGetMinY(group) + 5.19f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 11.71f, CGRectGetMinY(group)) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 15.61f, CGRectGetMinY(group) + 0.83f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 13.68f, CGRectGetMinY(group))]; - [bezierPath closePath]; - [bezierPath moveToPoint:CGPointMake(CGRectGetMinX(group) + 11.71f, CGRectGetMinY(group) + 1.33f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 15.95f, CGRectGetMinY(group) + 3.21f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 13.33f, CGRectGetMinY(group) + 1.33f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 14.88f, CGRectGetMinY(group) + 2.02f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 15.54f, CGRectGetMinY(group) + 11.22f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 18.05f, CGRectGetMinY(group) + 5.53f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 17.86f, CGRectGetMinY(group) + 9.13f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 10.82f, CGRectGetMinY(group) + 12.98f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 14.33f, CGRectGetMinY(group) + 12.32f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 12.62f, CGRectGetMinY(group) + 12.64f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 6.39f, CGRectGetMinY(group) + 14.27f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 9.34f, CGRectGetMinY(group) + 13.25f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 7.81f, CGRectGetMinY(group) + 13.54f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 5.08f, CGRectGetMinY(group) + 15.09f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 5.92f, CGRectGetMinY(group) + 14.51f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 5.49f, CGRectGetMinY(group) + 14.8f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 3.25f, CGRectGetMinY(group) + 15.99f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 4.42f, CGRectGetMinY(group) + 15.55f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 3.8f, CGRectGetMinY(group) + 15.99f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 3.18f, CGRectGetMinY(group) + 15.99f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 3.23f, CGRectGetMinY(group) + 15.99f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 3.2f, CGRectGetMinY(group) + 15.99f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 2.05f, CGRectGetMinY(group) + 15.41f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 2.72f, CGRectGetMinY(group) + 15.96f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 2.36f, CGRectGetMinY(group) + 15.78f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 1.36f, CGRectGetMinY(group) + 12.52f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 1.51f, CGRectGetMinY(group) + 14.76f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 1.23f, CGRectGetMinY(group) + 13.6f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 4.41f, CGRectGetMinY(group) + 6.04f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 1.62f, CGRectGetMinY(group) + 10.43f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 2.75f, CGRectGetMinY(group) + 8.01f)]; - [bezierPath - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 4.51f, CGRectGetMinY(group) + 5.92f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 10.75f, CGRectGetMinY(group) + 1.42f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 5.99f, CGRectGetMinY(group) + 4.2f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 8.26f, CGRectGetMinY(group) + 1.86f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 11.71f, CGRectGetMinY(group) + 1.33f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 11.07f, CGRectGetMinY(group) + 1.36f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 11.39f, CGRectGetMinY(group) + 1.33f)]; - [bezierPath closePath]; - [fillColor setFill]; - [bezierPath fill]; - - //// Rectangle Drawing - CGContextSaveGState(context); - CGContextTranslateCTM(context, CGRectGetMinX(group) + 9.1f, CGRectGetMinY(group) + 7.97f); - CGContextRotateCTM(context, 44.9f * (CGFloat)M_PI / 180); - - UIBezierPath* rectanglePath = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(-2.68f, -0.68f, 5.35f, 1.35f) - cornerRadius:0.6f]; - [fillColor setFill]; - [rectanglePath fill]; - - CGContextRestoreGState(context); - - //// Rectangle 2 Drawing - CGContextSaveGState(context); - CGContextTranslateCTM(context, CGRectGetMinX(group) + 6.95f, CGRectGetMinY(group) + 8.67f); - CGContextRotateCTM(context, -44.9f * (CGFloat)M_PI / 180); - - UIBezierPath* rectangle2Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(-0.68f, -1.68f, 1.35f, 3.35f) - cornerRadius:0.6f]; - [fillColor setFill]; - [rectangle2Path fill]; - - CGContextRestoreGState(context); - - //// Bezier 2 Drawing - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path - moveToPoint:CGPointMake(CGRectGetMinX(group) + 13.37f, CGRectGetMinY(group) + 3.99f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 12.71f, CGRectGetMinY(group) + 4.66f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 13.01f, CGRectGetMinY(group) + 3.99f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 12.71f, CGRectGetMinY(group) + 4.29f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 13.37f, CGRectGetMinY(group) + 5.33f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 12.71f, CGRectGetMinY(group) + 5.03f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 13.01f, CGRectGetMinY(group) + 5.33f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 14.04f, CGRectGetMinY(group) + 4.66f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 13.74f, CGRectGetMinY(group) + 5.33f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 14.04f, CGRectGetMinY(group) + 5.03f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 13.37f, CGRectGetMinY(group) + 3.99f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 14.04f, CGRectGetMinY(group) + 4.29f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 13.74f, CGRectGetMinY(group) + 3.99f)]; - [bezier2Path closePath]; - [bezier2Path - moveToPoint:CGPointMake(CGRectGetMinX(group) + 13.37f, CGRectGetMinY(group) + 6.66f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 11.37f, CGRectGetMinY(group) + 4.66f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 12.27f, CGRectGetMinY(group) + 6.66f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 11.37f, CGRectGetMinY(group) + 5.76f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 13.37f, CGRectGetMinY(group) + 2.66f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 11.37f, CGRectGetMinY(group) + 3.56f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 12.27f, CGRectGetMinY(group) + 2.66f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 15.37f, CGRectGetMinY(group) + 4.66f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 14.48f, CGRectGetMinY(group) + 2.66f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 15.37f, CGRectGetMinY(group) + 3.56f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 13.37f, CGRectGetMinY(group) + 6.66f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 15.37f, CGRectGetMinY(group) + 5.76f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 14.48f, CGRectGetMinY(group) + 6.66f)]; - [bezier2Path closePath]; - [fillColor setFill]; - [bezier2Path fill]; - } -} - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIconSpicy.h b/demos/Pesto/Pesto/PestoIcons/PestoIconSpicy.h deleted file mode 100644 index 541a6df19ab..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIconSpicy.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0f (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0f - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -#import "PestoIcon.h" - -@interface PestoIconSpicy : PestoIcon - -+ (UIImage *)drawTileImage:(CGRect)frame; - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIconSpicy.m b/demos/Pesto/Pesto/PestoIcons/PestoIconSpicy.m deleted file mode 100644 index a57d2ded1a5..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIconSpicy.m +++ /dev/null @@ -1,227 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0f (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0f - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoIconSpicy.h" - -@implementation PestoIconSpicy - -+ (UIImage*)drawTileImage:(CGRect)frame { - void (^drawBlock)(CGRect) = ^(CGRect drawBlockFrame) { - [self draw:CGRectMake(0, 0, drawBlockFrame.size.width, drawBlockFrame.size.height)]; - }; - return [self drawImageWithFrame:frame drawBlock:drawBlock]; -} - -/* Auto-generated code using PaintCode and formatted with clang-format. */ -+ (void)draw:(CGRect)frame { - //// Color Declarations - UIColor* fillColor = [UIColor colorWithRed:0.04f green:0.041f blue:0.037f alpha:1]; - - //// Subframes - CGRect group = CGRectMake( - CGRectGetMinX(frame) + (CGFloat)floor((CGRectGetWidth(frame) - 20.19f) * 0.50018f - 0.41f) + 0.91f, - CGRectGetMinY(frame) + (CGFloat)floor((CGRectGetHeight(frame) - 16.36f) * 0.46418f + 0.12f) + 0.38f, 20.19f, - 16.36f); - - //// Group - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint:CGPointMake(CGRectGetMinX(group) + 6.29f, CGRectGetMinY(group) + 2.06f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 5.75f, CGRectGetMinY(group) + 2.12f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 6.11f, CGRectGetMinY(group) + 2.06f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 5.93f, CGRectGetMinY(group) + 2.08f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 3.58f, CGRectGetMinY(group) + 2.97f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 4.98f, CGRectGetMinY(group) + 2.31f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 4.26f, CGRectGetMinY(group) + 2.52f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 1.6f, CGRectGetMinY(group) + 6.51f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 2.54f, CGRectGetMinY(group) + 3.66f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 1.36f, CGRectGetMinY(group) + 5.18f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 1.61f, CGRectGetMinY(group) + 6.55f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 1.6f, CGRectGetMinY(group) + 6.52f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 1.6f, CGRectGetMinY(group) + 6.53f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 2.58f, CGRectGetMinY(group) + 8.52f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 1.74f, CGRectGetMinY(group) + 7.2f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 2.24f, CGRectGetMinY(group) + 7.94f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 5.94f, CGRectGetMinY(group) + 12.63f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 3.48f, CGRectGetMinY(group) + 10.05f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 4.61f, CGRectGetMinY(group) + 11.45f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 12.96f, CGRectGetMinY(group) + 16.05f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 7.92f, CGRectGetMinY(group) + 14.39f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 10.37f, CGRectGetMinY(group) + 15.54f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 16.26f, CGRectGetMinY(group) + 16.36f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 14.05f, CGRectGetMinY(group) + 16.26f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 15.15f, CGRectGetMinY(group) + 16.36f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 16.93f, CGRectGetMinY(group) + 16.34f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 16.48f, CGRectGetMinY(group) + 16.36f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 16.71f, CGRectGetMinY(group) + 16.35f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 19, CGRectGetMinY(group) + 16.16f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 17.62f, CGRectGetMinY(group) + 16.32f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 18.32f, CGRectGetMinY(group) + 16.26f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 20.17f, CGRectGetMinY(group) + 15.47f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 19.48f, CGRectGetMinY(group) + 16.09f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 20.34f, CGRectGetMinY(group) + 16.09f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 18.06f, CGRectGetMinY(group) + 14) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 19.98f, CGRectGetMinY(group) + 14.81f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 18.57f, CGRectGetMinY(group) + 14.25f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 10.82f, CGRectGetMinY(group) + 8.61f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 15.41f, CGRectGetMinY(group) + 12.67f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 12.4f, CGRectGetMinY(group) + 11.24f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 7.54f, CGRectGetMinY(group) + 2.42f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 9.63f, CGRectGetMinY(group) + 6.65f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 9.7f, CGRectGetMinY(group) + 3.77f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 6.29f, CGRectGetMinY(group) + 2.06f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 7.15f, CGRectGetMinY(group) + 2.19f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 6.73f, CGRectGetMinY(group) + 2.06f)]; - [bezierPath closePath]; - [bezierPath moveToPoint:CGPointMake(CGRectGetMinX(group) + 6.29f, CGRectGetMinY(group) + 3.39f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 6.83f, CGRectGetMinY(group) + 3.56f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 6.47f, CGRectGetMinY(group) + 3.39f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 6.66f, CGRectGetMinY(group) + 3.45f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 8.59f, CGRectGetMinY(group) + 6.64f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 7.79f, CGRectGetMinY(group) + 4.15f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 8.16f, CGRectGetMinY(group) + 5.31f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 9.68f, CGRectGetMinY(group) + 9.3f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 8.87f, CGRectGetMinY(group) + 7.53f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 9.16f, CGRectGetMinY(group) + 8.46f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 17.09f, CGRectGetMinY(group) + 15) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 11.39f, CGRectGetMinY(group) + 12.14f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 14.41f, CGRectGetMinY(group) + 13.67f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 16.88f, CGRectGetMinY(group) + 15.01f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 17.02f, CGRectGetMinY(group) + 15.01f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 16.95f, CGRectGetMinY(group) + 15.01f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 16.26f, CGRectGetMinY(group) + 15.02f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 16.68f, CGRectGetMinY(group) + 15.02f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 16.47f, CGRectGetMinY(group) + 15.02f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 13.21f, CGRectGetMinY(group) + 14.74f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 15.21f, CGRectGetMinY(group) + 15.02f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 14.19f, CGRectGetMinY(group) + 14.93f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 6.82f, CGRectGetMinY(group) + 11.63f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 10.8f, CGRectGetMinY(group) + 14.27f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 8.59f, CGRectGetMinY(group) + 13.2f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 3.73f, CGRectGetMinY(group) + 7.84f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 5.62f, CGRectGetMinY(group) + 10.57f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 4.58f, CGRectGetMinY(group) + 9.29f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 3.54f, CGRectGetMinY(group) + 7.53f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 3.67f, CGRectGetMinY(group) + 7.74f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 3.6f, CGRectGetMinY(group) + 7.64f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 2.91f, CGRectGetMinY(group) + 6.28f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 3.3f, CGRectGetMinY(group) + 7.14f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 2.98f, CGRectGetMinY(group) + 6.6f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 4.32f, CGRectGetMinY(group) + 4.08f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 2.81f, CGRectGetMinY(group) + 5.7f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 3.49f, CGRectGetMinY(group) + 4.63f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 6.06f, CGRectGetMinY(group) + 3.42f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 4.8f, CGRectGetMinY(group) + 3.76f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 5.34f, CGRectGetMinY(group) + 3.59f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 6.29f, CGRectGetMinY(group) + 3.39f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 6.14f, CGRectGetMinY(group) + 3.4f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 6.21f, CGRectGetMinY(group) + 3.39f)]; - [bezierPath closePath]; - [fillColor setFill]; - [bezierPath fill]; - - //// Bezier 2 Drawing - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path moveToPoint:CGPointMake(CGRectGetMinX(group) + 4.5f, CGRectGetMinY(group) + 6.69f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 3.83f, CGRectGetMinY(group) + 6.02f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 4.13f, CGRectGetMinY(group) + 6.69f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 3.83f, CGRectGetMinY(group) + 6.39f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 4.5f, CGRectGetMinY(group) + 5.36f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 3.83f, CGRectGetMinY(group) + 5.66f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 4.13f, CGRectGetMinY(group) + 5.36f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 5.19f, CGRectGetMinY(group) + 4.67f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 4.88f, CGRectGetMinY(group) + 5.36f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 5.19f, CGRectGetMinY(group) + 5.05f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 5.86f, CGRectGetMinY(group) + 4) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 5.19f, CGRectGetMinY(group) + 4.3f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 5.49f, CGRectGetMinY(group) + 4)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 6.52f, CGRectGetMinY(group) + 4.67f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 6.22f, CGRectGetMinY(group) + 4) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 6.52f, CGRectGetMinY(group) + 4.3f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 4.5f, CGRectGetMinY(group) + 6.69f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 6.52f, CGRectGetMinY(group) + 5.78f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 5.61f, CGRectGetMinY(group) + 6.69f)]; - [bezier2Path closePath]; - [fillColor setFill]; - [bezier2Path fill]; - - //// Bezier 3 Drawing - UIBezierPath* bezier3Path = [UIBezierPath bezierPath]; - [bezier3Path moveToPoint:CGPointMake(CGRectGetMinX(group) + 3.33f, CGRectGetMinY(group) + 4)]; - [bezier3Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 2.67f, CGRectGetMinY(group) + 3.33f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 2.96f, CGRectGetMinY(group) + 4) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 2.67f, CGRectGetMinY(group) + 3.7f)]; - [bezier3Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 0.67f, CGRectGetMinY(group) + 1.33f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 2.67f, CGRectGetMinY(group) + 2.23f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 1.77f, CGRectGetMinY(group) + 1.33f)]; - [bezier3Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group), CGRectGetMinY(group) + 0.67f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 0.3f, CGRectGetMinY(group) + 1.33f) - controlPoint2:CGPointMake(CGRectGetMinX(group), CGRectGetMinY(group) + 1.04f)]; - [bezier3Path addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 0.67f, CGRectGetMinY(group)) - controlPoint1:CGPointMake(CGRectGetMinX(group), CGRectGetMinY(group) + 0.3f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 0.3f, CGRectGetMinY(group))]; - [bezier3Path addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 4, CGRectGetMinY(group) + 3.33f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 2.5f, CGRectGetMinY(group)) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 4, CGRectGetMinY(group) + 1.5f)]; - [bezier3Path addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 3.33f, CGRectGetMinY(group) + 4) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 4, CGRectGetMinY(group) + 3.7f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 3.7f, CGRectGetMinY(group) + 4)]; - [bezier3Path closePath]; - [fillColor setFill]; - [bezier3Path fill]; - } -} - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIconTimer.h b/demos/Pesto/Pesto/PestoIcons/PestoIconTimer.h deleted file mode 100644 index 02b28ba0ba4..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIconTimer.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -#import "PestoIcon.h" - -@interface PestoIconTimer : PestoIcon - -+ (UIImage *)drawTileImage:(CGRect)frame; - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIconTimer.m b/demos/Pesto/Pesto/PestoIcons/PestoIconTimer.m deleted file mode 100644 index 584a02d9c7c..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIconTimer.m +++ /dev/null @@ -1,177 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoIconTimer.h" - -@implementation PestoIconTimer - -+ (UIImage*)drawTileImage:(CGRect)frame { - void (^drawBlock)(CGRect) = ^(CGRect drawBlockFrame) { - [self draw:CGRectMake(0, 0, drawBlockFrame.size.width, drawBlockFrame.size.height)]; - }; - return [self drawImageWithFrame:frame drawBlock:drawBlock]; -} - -/* Auto-generated code using PaintCode and formatted with clang-format. */ -+ (void)draw:(CGRect)frame { - //// General Declarations - CGContextRef context = UIGraphicsGetCurrentContext(); - - //// Color Declarations - UIColor* fillColor = [UIColor colorWithRed:0.041f green:0.043f blue:0.038f alpha:1]; - - //// Subframes - CGRect group = CGRectMake( - CGRectGetMinX(frame) + (CGFloat)floor((CGRectGetWidth(frame) - 29.19f) * 0.40011f + 0.38f) + 0.12f, - CGRectGetMinY(frame) + (CGFloat)floor((CGRectGetHeight(frame) - 19.97f) * 0.55597f + 0.16f) + 0.34f, 29.19f, - 19.97f); - - //// Group - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint:CGPointMake(CGRectGetMinX(group) + 18.8f, CGRectGetMinY(group) + 1.06f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 9.35f, CGRectGetMinY(group) + 10.52f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 13.58f, CGRectGetMinY(group) + 1.06f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 9.35f, CGRectGetMinY(group) + 5.3f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 18.8f, CGRectGetMinY(group) + 19.97f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 9.35f, CGRectGetMinY(group) + 15.74f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 13.58f, CGRectGetMinY(group) + 19.97f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 28.26f, CGRectGetMinY(group) + 10.52f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 24.02f, CGRectGetMinY(group) + 19.97f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 28.26f, CGRectGetMinY(group) + 15.74f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 18.8f, CGRectGetMinY(group) + 1.06f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 28.26f, CGRectGetMinY(group) + 5.3f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 24.02f, CGRectGetMinY(group) + 1.06f)]; - [bezierPath closePath]; - [bezierPath moveToPoint:CGPointMake(CGRectGetMinX(group) + 18.8f, CGRectGetMinY(group) + 2.84f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 26.48f, CGRectGetMinY(group) + 10.52f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 23.03f, CGRectGetMinY(group) + 2.84f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 26.48f, CGRectGetMinY(group) + 6.29f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 18.8f, CGRectGetMinY(group) + 18.19f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 26.48f, CGRectGetMinY(group) + 14.75f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 23.03f, CGRectGetMinY(group) + 18.19f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 11.12f, CGRectGetMinY(group) + 10.52f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 14.57f, CGRectGetMinY(group) + 18.19f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 11.12f, CGRectGetMinY(group) + 14.75f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 18.8f, CGRectGetMinY(group) + 2.84f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 11.12f, CGRectGetMinY(group) + 6.29f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 14.57f, CGRectGetMinY(group) + 2.84f)]; - [bezierPath closePath]; - [fillColor setFill]; - [bezierPath fill]; - - //// Rectangle Drawing - UIBezierPath* rectanglePath = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(CGRectGetMinX(group) + 3.18f, - CGRectGetMinY(group) + 14.31f, 4.7f, 1.8f) - cornerRadius:0.8f]; - [fillColor setFill]; - [rectanglePath fill]; - - //// Rectangle 2 Drawing - UIBezierPath* rectangle2Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(CGRectGetMinX(group), - CGRectGetMinY(group) + 11.16f, 7.05f, 1.8f) - cornerRadius:0.8f]; - [fillColor setFill]; - [rectangle2Path fill]; - - //// Rectangle 3 Drawing - UIBezierPath* rectangle3Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(CGRectGetMinX(group) + 3.18f, - CGRectGetMinY(group) + 4.91f, 4.7f, 1.8f) - cornerRadius:0.8f]; - [fillColor setFill]; - [rectangle3Path fill]; - - //// Rectangle 4 Drawing - CGContextSaveGState(context); - CGContextTranslateCTM(context, CGRectGetMinX(group) + 10.88f, CGRectGetMinY(group) + 2.56f); - CGContextRotateCTM(context, 45 * (CGFloat)M_PI / 180); - - UIBezierPath* rectangle4Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(-0.9f, -2.73f, 1.8f, 5.45f) - cornerRadius:0.8f]; - [fillColor setFill]; - [rectangle4Path fill]; - - CGContextRestoreGState(context); - - //// Rectangle 5 Drawing - CGContextSaveGState(context); - CGContextTranslateCTM(context, CGRectGetMinX(group) + 26.62f, CGRectGetMinY(group) + 2.66f); - CGContextRotateCTM(context, -45 *(CGFloat) M_PI / 180); - - UIBezierPath* rectangle5Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(-0.9f, -2.73f, 1.8f, 5.45f) - cornerRadius:0.8f]; - [fillColor setFill]; - [rectangle5Path fill]; - - CGContextRestoreGState(context); - - //// Bezier 2 Drawing - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path - moveToPoint:CGPointMake(CGRectGetMinX(group) + 18.14f, CGRectGetMinY(group) + 10.96f)]; - [bezier2Path - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 15.87f, CGRectGetMinY(group) + 8.7f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 15.87f, CGRectGetMinY(group) + 7.64f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 15.58f, CGRectGetMinY(group) + 8.41f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 15.58f, CGRectGetMinY(group) + 7.93f)]; - [bezier2Path - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 15.92f, CGRectGetMinY(group) + 7.59f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 16.98f, CGRectGetMinY(group) + 7.59f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 16.21f, CGRectGetMinY(group) + 7.3f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 16.69f, CGRectGetMinY(group) + 7.3f)]; - [bezier2Path - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 19.24f, CGRectGetMinY(group) + 9.85f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 19.24f, CGRectGetMinY(group) + 10.91f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 19.53f, CGRectGetMinY(group) + 10.15f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 19.53f, CGRectGetMinY(group) + 10.62f)]; - [bezier2Path - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 19.19f, CGRectGetMinY(group) + 10.96f)]; - [bezier2Path - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 18.14f, CGRectGetMinY(group) + 10.96f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 18.9f, CGRectGetMinY(group) + 11.25f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 18.43f, CGRectGetMinY(group) + 11.25f)]; - [bezier2Path closePath]; - [fillColor setFill]; - [bezier2Path fill]; - - //// Rectangle 6 Drawing - UIBezierPath* rectangle6Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(CGRectGetMinX(group), - CGRectGetMinY(group) + 8.06f, 7.05f, 1.8f) - cornerRadius:0.8f]; - [fillColor setFill]; - [rectangle6Path fill]; - } -} - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIconTrending.h b/demos/Pesto/Pesto/PestoIcons/PestoIconTrending.h deleted file mode 100644 index 3bb72e51b88..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIconTrending.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0f (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0f - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -#import "PestoIcon.h" - -@interface PestoIconTrending : PestoIcon - -+ (UIImage *)drawTileImage:(CGRect)frame; - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIconTrending.m b/demos/Pesto/Pesto/PestoIcons/PestoIconTrending.m deleted file mode 100644 index 76f5d52a7af..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIconTrending.m +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0f (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0f - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoIconTrending.h" - -@implementation PestoIconTrending - -+ (UIImage *)drawTileImage:(CGRect)frame { - void (^drawBlock)(CGRect) = ^(CGRect drawBlockFrame) { - [self draw:CGRectMake(0, 0, drawBlockFrame.size.width, drawBlockFrame.size.height)]; - }; - return [self drawImageWithFrame:frame drawBlock:drawBlock]; -} - -/* Auto-generated code using PaintCode and formatted with clang-format. */ -+ (void)draw:(CGRect)frame { - //// Color Declarations - UIColor *fillColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1]; - - //// Bezier Drawing - UIBezierPath *bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint:CGPointMake(CGRectGetMinX(frame) + 0.66667f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.25000f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.76208f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.34542f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.55875f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.54875f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.39208f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.38208f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.08333f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.69125f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.14208f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.75000f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.39208f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.50000f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.55875f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.66667f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.82125f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.40458f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.91667f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.50000f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.91667f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.25000f * CGRectGetHeight(frame))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame) + 0.66667f * CGRectGetWidth(frame), - CGRectGetMinY(frame) + 0.25000f * CGRectGetHeight(frame))]; - [bezierPath closePath]; - [fillColor setFill]; - [bezierPath fill]; -} - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIconVeggie.h b/demos/Pesto/Pesto/PestoIcons/PestoIconVeggie.h deleted file mode 100644 index b0117a269c5..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIconVeggie.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0f (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0f - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -#import "PestoIcon.h" - -@interface PestoIconVeggie : PestoIcon - -+ (UIImage *)drawTileImage:(CGRect)frame; - -@end diff --git a/demos/Pesto/Pesto/PestoIcons/PestoIconVeggie.m b/demos/Pesto/Pesto/PestoIcons/PestoIconVeggie.m deleted file mode 100644 index f1efedc719a..00000000000 --- a/demos/Pesto/Pesto/PestoIcons/PestoIconVeggie.m +++ /dev/null @@ -1,241 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0f (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0f - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoIconVeggie.h" - -@implementation PestoIconVeggie - -+ (UIImage*)drawTileImage:(CGRect)frame { - void (^drawBlock)(CGRect) = ^(CGRect drawBlockFrame) { - [self draw:CGRectMake(0, 0, drawBlockFrame.size.width, drawBlockFrame.size.height)]; - }; - return [self drawImageWithFrame:frame drawBlock:drawBlock]; -} - -/* Auto-generated code using PaintCode and formatted with clang-format. */ -+ (void)draw:(CGRect)frame { - //// General Declarations - CGContextRef context = UIGraphicsGetCurrentContext(); - - //// Color Declarations - UIColor* fillColor = [UIColor colorWithRed:0.04f green:0.041f blue:0.037f alpha:1]; - - //// Subframes - CGRect group = CGRectMake( - CGRectGetMinX(frame) + (CGFloat)floor((CGRectGetWidth(frame) - 14.08f) * 0.47855f - 0.08f) + 0.58f, - CGRectGetMinY(frame) + (CGFloat)floor((CGRectGetHeight(frame) - 26.64f) * 0.58262f + 0.26f) + 0.24f, 14.08f, - 26.64f); - - //// Group - { - //// Rectangle Drawing - UIBezierPath* rectanglePath = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(CGRectGetMinX(group) + 6.12f, - CGRectGetMinY(group), 1.8f, 5.15f) - cornerRadius:0.8f]; - [fillColor setFill]; - [rectanglePath fill]; - - //// Rectangle 2 Drawing - CGContextSaveGState(context); - CGContextTranslateCTM(context, CGRectGetMinX(group) + 8.72f, CGRectGetMinY(group) + 3.33f); - CGContextRotateCTM(context, 44.9f * (CGFloat)M_PI / 180); - - UIBezierPath* rectangle2Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(-0.9f, -2.58f, 1.8f, 5.15f) - cornerRadius:0.8f]; - [fillColor setFill]; - [rectangle2Path fill]; - - CGContextRestoreGState(context); - - //// Rectangle 3 Drawing - CGContextSaveGState(context); - CGContextTranslateCTM(context, CGRectGetMinX(group) + 5.32f, CGRectGetMinY(group) + 3.38f); - CGContextRotateCTM(context, 44.9f * (CGFloat)M_PI / 180); - - UIBezierPath* rectangle3Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(-2.58f, -0.9f, 5.15f, 1.8f) - cornerRadius:0.8f]; - [fillColor setFill]; - [rectangle3Path fill]; - - CGContextRestoreGState(context); - - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint:CGPointMake(CGRectGetMinX(group) + 7.03f, CGRectGetMinY(group) + 6.8f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 2.46f, CGRectGetMinY(group) + 9.52f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 5.25f, CGRectGetMinY(group) + 6.8f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 3.41f, CGRectGetMinY(group) + 7.9f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 1.94f, CGRectGetMinY(group) + 10.76f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 2.22f, CGRectGetMinY(group) + 9.92f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 2.05f, CGRectGetMinY(group) + 10.33f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 2.2f, CGRectGetMinY(group) + 15.12f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 1.59f, CGRectGetMinY(group) + 12.18f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 1.87f, CGRectGetMinY(group) + 13.76f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 4.26f, CGRectGetMinY(group) + 21.13f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 2.7f, CGRectGetMinY(group) + 17.23f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 3.4f, CGRectGetMinY(group) + 19.25f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 6.27f, CGRectGetMinY(group) + 24.28f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 4.74f, CGRectGetMinY(group) + 22.17f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 5.36f, CGRectGetMinY(group) + 23.36f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 7.34f, CGRectGetMinY(group) + 24.85f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 6.68f, CGRectGetMinY(group) + 24.7f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 7.1f, CGRectGetMinY(group) + 24.91f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 7.97f, CGRectGetMinY(group) + 24.26f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 7.56f, CGRectGetMinY(group) + 24.79f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 7.81f, CGRectGetMinY(group) + 24.48f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 10.11f, CGRectGetMinY(group) + 20.22f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 8.83f, CGRectGetMinY(group) + 23.11f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 9.45f, CGRectGetMinY(group) + 21.81f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 12.05f, CGRectGetMinY(group) + 14.31f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 10.78f, CGRectGetMinY(group) + 18.62f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 11.61f, CGRectGetMinY(group) + 16.51f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 12.02f, CGRectGetMinY(group) + 10.27f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 12.39f, CGRectGetMinY(group) + 12.61f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 12.38f, CGRectGetMinY(group) + 11.33f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 7.89f, CGRectGetMinY(group) + 6.87f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 11.45f, CGRectGetMinY(group) + 8.63f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 9.84f, CGRectGetMinY(group) + 7.3f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 7.05f, CGRectGetMinY(group) + 6.8f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 7.63f, CGRectGetMinY(group) + 6.81f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 7.37f, CGRectGetMinY(group) + 6.8f)]; - [bezierPath - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 7.03f, CGRectGetMinY(group) + 6.8f)]; - [bezierPath closePath]; - [bezierPath moveToPoint:CGPointMake(CGRectGetMinX(group) + 7.25f, CGRectGetMinY(group) + 26.64f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 5.01f, CGRectGetMinY(group) + 25.53f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 6.5f, CGRectGetMinY(group) + 26.64f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 5.73f, CGRectGetMinY(group) + 26.26f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 2.65f, CGRectGetMinY(group) + 21.87f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 3.89f, CGRectGetMinY(group) + 24.41f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 3.16f, CGRectGetMinY(group) + 22.99f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 0.47f, CGRectGetMinY(group) + 15.53f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 1.73f, CGRectGetMinY(group) + 19.89f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 1, CGRectGetMinY(group) + 17.75f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 0.22f, CGRectGetMinY(group) + 10.32f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 0.09f, CGRectGetMinY(group) + 13.96f) - controlPoint2:CGPointMake(CGRectGetMinX(group) - 0.23f, CGRectGetMinY(group) + 12.12f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 0.92f, CGRectGetMinY(group) + 8.62f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 0.37f, CGRectGetMinY(group) + 9.73f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 0.61f, CGRectGetMinY(group) + 9.16f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 6.06f, CGRectGetMinY(group) + 5.1f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 2.01f, CGRectGetMinY(group) + 6.76f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 4, CGRectGetMinY(group) + 5.43f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 6.43f, CGRectGetMinY(group) + 5.02f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 6.17f, CGRectGetMinY(group) + 5.05f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 6.3f, CGRectGetMinY(group) + 5.02f)]; - [bezierPath - addLineToPoint:CGPointMake(CGRectGetMinX(group) + 7.66f, CGRectGetMinY(group) + 5.02f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 7.97f, CGRectGetMinY(group) + 5.08f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 7.77f, CGRectGetMinY(group) + 5.02f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 7.88f, CGRectGetMinY(group) + 5.04f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 8.28f, CGRectGetMinY(group) + 5.14f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 8.07f, CGRectGetMinY(group) + 5.1f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 8.17f, CGRectGetMinY(group) + 5.11f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 13.7f, CGRectGetMinY(group) + 9.69f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 10.85f, CGRectGetMinY(group) + 5.7f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 12.93f, CGRectGetMinY(group) + 7.45f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 13.79f, CGRectGetMinY(group) + 14.66f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 14.32f, CGRectGetMinY(group) + 11.49f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 14.05f, CGRectGetMinY(group) + 13.39f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 11.75f, CGRectGetMinY(group) + 20.91f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 13.32f, CGRectGetMinY(group) + 17.01f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 12.46f, CGRectGetMinY(group) + 19.23f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 9.4f, CGRectGetMinY(group) + 25.32f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 11.13f, CGRectGetMinY(group) + 22.39f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 10.42f, CGRectGetMinY(group) + 23.95f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 7.81f, CGRectGetMinY(group) + 26.56f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 9.05f, CGRectGetMinY(group) + 25.79f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 8.55f, CGRectGetMinY(group) + 26.36f)]; - [bezierPath - addCurveToPoint:CGPointMake(CGRectGetMinX(group) + 7.25f, CGRectGetMinY(group) + 26.64f) - controlPoint1:CGPointMake(CGRectGetMinX(group) + 7.62f, CGRectGetMinY(group) + 26.61f) - controlPoint2:CGPointMake(CGRectGetMinX(group) + 7.44f, CGRectGetMinY(group) + 26.64f)]; - [bezierPath closePath]; - [fillColor setFill]; - [bezierPath fill]; - - //// Rectangle 4 Drawing - UIBezierPath* rectangle4Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(CGRectGetMinX(group) + 1.2f, - CGRectGetMinY(group) + 10.27f, 5.85f, 1.8f) - cornerRadius:0.8f]; - [fillColor setFill]; - [rectangle4Path fill]; - - //// Rectangle 5 Drawing - UIBezierPath* rectangle5Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(CGRectGetMinX(group) + 7.05f, - CGRectGetMinY(group) + 12.82f, 5.85f, 1.8f) - cornerRadius:0.8f]; - [fillColor setFill]; - [rectangle5Path fill]; - - //// Rectangle 6 Drawing - UIBezierPath* rectangle6Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(CGRectGetMinX(group) + 1.12f, - CGRectGetMinY(group) + 15.37f, 4.2f, 1.8f) - cornerRadius:0.8f]; - [fillColor setFill]; - [rectangle6Path fill]; - - //// Rectangle 7 Drawing - UIBezierPath* rectangle7Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(CGRectGetMinX(group) + 3.6f, - CGRectGetMinY(group) + 20.52f, 2.85f, 1.8f) - cornerRadius:0.8f]; - [fillColor setFill]; - [rectangle7Path fill]; - - //// Rectangle 8 Drawing - UIBezierPath* rectangle8Path = - [UIBezierPath bezierPathWithRoundedRect:CGRectMake(CGRectGetMinX(group) + 8.72f, - CGRectGetMinY(group) + 17.93f, 3.4f, 1.8f) - cornerRadius:0.8f]; - [fillColor setFill]; - [rectangle8Path fill]; - } -} - -@end diff --git a/demos/Pesto/Pesto/PestoRecipeCardView.h b/demos/Pesto/Pesto/PestoRecipeCardView.h deleted file mode 100644 index 22bad6c59c3..00000000000 --- a/demos/Pesto/Pesto/PestoRecipeCardView.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -@interface PestoRecipeCardView : UIView - -@property(nonatomic, copy) NSString *title; -@property(nonatomic, copy) NSString *iconImageName; -@property(nonatomic, copy) NSString *descText; -@property(nonatomic) UILabel *titleLabel; - -@end diff --git a/demos/Pesto/Pesto/PestoRecipeCardView.m b/demos/Pesto/Pesto/PestoRecipeCardView.m deleted file mode 100644 index 6cebf009acb..00000000000 --- a/demos/Pesto/Pesto/PestoRecipeCardView.m +++ /dev/null @@ -1,263 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoRecipeCardView.h" - -#import "PestoIcons/PestoIconFish.h" -#import "PestoIcons/PestoIconMain.h" -#import "PestoIcons/PestoIconMeat.h" -#import "PestoIcons/PestoIconSpicy.h" -#import "PestoIcons/PestoIconTimer.h" -#import "PestoIcons/PestoIconVeggie.h" - -#import "MaterialShadowElevations.h" -#import "MaterialShadowLayer.h" -#import "MaterialTypography.h" - -static CGFloat kPestoDetailDescTextHeight = 140; -static CGFloat kPestoDetailPadding = 28; -static CGFloat kPestoDetailSplitWidth = 64; - -@interface PestoSplitView : UIView - -@property(nonatomic) UIView *leftView; -@property(nonatomic) UIView *rightView; -@property(nonatomic) CGSize originalSize; - -@end - -@implementation PestoSplitView - -- (instancetype)initWithFrame:(CGRect)frame - leftView:(UIView *)leftView - rightView:(UIView *)rightView { - self = [super initWithFrame:frame]; - if (self) { - _originalSize = frame.size; - - CGFloat leftWidth = kPestoDetailSplitWidth; - CGFloat height = frame.size.height; - _leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 1, leftWidth, height)]; - [_leftView addSubview:leftView]; - [self addSubview:_leftView]; - CGRect rightFrame = CGRectMake(leftWidth, 0, self.frame.size.width - leftWidth, height); - _rightView = [[UIView alloc] initWithFrame:rightFrame]; - [_rightView addSubview:rightView]; - _rightView.autoresizingMask = - UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - [self addSubview:_rightView]; - } - return self; -} - -- (CGSize)intrinsicContentSize { - return self.originalSize; -} - -@end - -@interface PestoRecipeCardView () - -@property(nonatomic) CGRect contentViewFrame; -@property(nonatomic) UIImageView *iconImageView; -@property(nonatomic) UILabel *amount1; -@property(nonatomic) UILabel *amount2; -@property(nonatomic) UILabel *amount3; -@property(nonatomic) UILabel *amount4; -@property(nonatomic) UILabel *ingredient1; -@property(nonatomic) UILabel *ingredient2; -@property(nonatomic) UILabel *ingredient3; -@property(nonatomic) UILabel *ingredient4; -@property(nonatomic) UILabel *labelDesc; -@property(nonatomic) UIStackView *stackView; - -@end - -@implementation PestoRecipeCardView - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - self.backgroundColor = [UIColor whiteColor]; - [self commonInit]; - } - return self; -} - -- (void)commonInit { - _contentViewFrame = CGRectMake(kPestoDetailPadding, kPestoDetailPadding, - self.frame.size.width - kPestoDetailPadding * 2.f, - self.frame.size.height - kPestoDetailPadding * 2.f); - UIView *contentView = [[UIView alloc] initWithFrame:_contentViewFrame]; - contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - [self addSubview:contentView]; - - CGRect iconFrame = CGRectMake(0, 0, 32, 32); - UIImage *image = [PestoIconTimer drawTileImage:iconFrame]; - _iconImageView = [[UIImageView alloc] initWithImage:image]; - _iconImageView.frame = - CGRectMake(0, 1.f, _iconImageView.frame.size.width, _iconImageView.frame.size.height); - _titleLabel = [[UILabel alloc] init]; - _titleLabel.font = [MDCTypography headlineFont]; - _titleLabel.alpha = [MDCTypography headlineFontOpacity]; - _titleLabel.textColor = [UIColor colorWithWhite:0 alpha:0.87f]; - _titleLabel.frame = CGRectMake(0, 0, _contentViewFrame.size.width - kPestoDetailSplitWidth, - [MDCTypography display1Font].pointSize + 4.f); - _labelDesc = [[UILabel alloc] init]; - _labelDesc.lineBreakMode = NSLineBreakByWordWrapping; - _labelDesc.numberOfLines = 8; - _labelDesc.font = [MDCTypography body1Font]; - _labelDesc.alpha = [MDCTypography body1FontOpacity]; - _labelDesc.autoresizingMask = UIViewAutoresizingFlexibleWidth; - - UIFont *bodyFont = [MDCTypography body1Font]; - CGFloat bodyFontOpacity = [MDCTypography body1FontOpacity]; - _ingredient1 = [[UILabel alloc] init]; - _ingredient1.text = @"Mozzarella cheese"; - _ingredient1.font = bodyFont; - _ingredient1.alpha = bodyFontOpacity; - [_ingredient1 sizeToFit]; - - _ingredient2 = [[UILabel alloc] init]; - _ingredient2.text = @"Toasts"; - _ingredient2.font = bodyFont; - _ingredient2.alpha = bodyFontOpacity; - [_ingredient2 sizeToFit]; - - _ingredient3 = [[UILabel alloc] init]; - _ingredient3.text = @"Homemade pesto"; - _ingredient3.font = bodyFont; - _ingredient3.alpha = bodyFontOpacity; - [_ingredient3 sizeToFit]; - - _ingredient4 = [[UILabel alloc] init]; - _ingredient4.text = @"Freshly ground pepper"; - _ingredient4.font = bodyFont; - _ingredient4.alpha = bodyFontOpacity; - [_ingredient4 sizeToFit]; - - UIColor *teal = [UIColor colorWithRed:0.09f green:0.54f blue:0.44f alpha:1.f]; - UIFont *captionFont = [MDCTypography captionFont]; - CGFloat captionFontOpacity = [MDCTypography captionFontOpacity]; - - _amount1 = [[UILabel alloc] init]; - _amount1.text = @"6 pieces"; - _amount1.font = captionFont; - _amount1.alpha = captionFontOpacity; - _amount1.textColor = teal; - [_amount1 sizeToFit]; - - _amount2 = [[UILabel alloc] init]; - _amount2.text = @"6 pieces"; - _amount2.font = captionFont; - _amount2.alpha = captionFontOpacity; - _amount2.textColor = teal; - [_amount2 sizeToFit]; - - _amount3 = [[UILabel alloc] init]; - _amount3.text = @"2/3 cup"; - _amount3.font = captionFont; - _amount3.alpha = captionFontOpacity; - _amount3.textColor = teal; - [_amount3 sizeToFit]; - - _amount4 = [[UILabel alloc] init]; - _amount4.text = @"1 tbsp"; - _amount4.font = captionFont; - _amount4.alpha = captionFontOpacity; - _amount4.textColor = teal; - [_amount4 sizeToFit]; - - CGRect splitViewTitleFrame = - CGRectMake(0, 0, _contentViewFrame.size.width, [MDCTypography display1Font].pointSize + 4.f); - PestoSplitView *splitViewTitle = [[PestoSplitView alloc] initWithFrame:splitViewTitleFrame - leftView:_iconImageView - rightView:_titleLabel]; - CGRect splitViewDescFrame = - CGRectMake(0, 0, _contentViewFrame.size.width, kPestoDetailDescTextHeight); - PestoSplitView *splitViewDesc = - [[PestoSplitView alloc] initWithFrame:splitViewDescFrame leftView:nil rightView:_labelDesc]; - CGRect splitViewRect = CGRectMake(0, 0, _contentViewFrame.size.width, 18.f); - PestoSplitView *splitView1 = - [[PestoSplitView alloc] initWithFrame:splitViewRect leftView:_amount1 rightView:_ingredient1]; - PestoSplitView *splitView2 = - [[PestoSplitView alloc] initWithFrame:splitViewRect leftView:_amount2 rightView:_ingredient2]; - PestoSplitView *splitView3 = - [[PestoSplitView alloc] initWithFrame:splitViewRect leftView:_amount3 rightView:_ingredient3]; - PestoSplitView *splitView4 = - [[PestoSplitView alloc] initWithFrame:splitViewRect leftView:_amount4 rightView:_ingredient4]; - - CGRect stackFrame = - CGRectMake(kPestoDetailPadding, 0, self.bounds.size.width - kPestoDetailPadding * 2.f, - self.bounds.size.height); - _stackView = [[UIStackView alloc] initWithFrame:stackFrame]; - _stackView.axis = UILayoutConstraintAxisVertical; - _stackView.spacing = 12.f; - _stackView.translatesAutoresizingMaskIntoConstraints = NO; - [contentView addSubview:_stackView]; - - [_stackView addArrangedSubview:splitViewTitle]; - [_stackView addArrangedSubview:splitViewDesc]; - [_stackView addArrangedSubview:splitView1]; - [_stackView addArrangedSubview:splitView2]; - [_stackView addArrangedSubview:splitView3]; - [_stackView addArrangedSubview:splitView4]; - - [_stackView.topAnchor constraintEqualToAnchor:contentView.topAnchor].active = YES; - [_stackView.leftAnchor constraintEqualToAnchor:contentView.leftAnchor].active = YES; - [_stackView.rightAnchor constraintEqualToAnchor:contentView.rightAnchor].active = YES; - [_stackView.widthAnchor constraintEqualToAnchor:contentView.widthAnchor].active = YES; -} - -- (void)setTitle:(NSString *)title { - _title = [title copy]; - self.titleLabel.text = _title; -} - -- (void)setIconImageName:(NSString *)iconImageName { - _iconImageName = [iconImageName copy]; - CGRect iconFrame = CGRectMake(0, 0, 32, 32); - UIImage *icon = [PestoIconFish drawTileImage:iconFrame]; - if ([_iconImageName isEqualToString:@"Main"]) { - icon = [PestoIconMain drawTileImage:iconFrame]; - } else if ([_iconImageName isEqualToString:@"Meat"]) { - icon = [PestoIconMeat drawTileImage:iconFrame]; - } else if ([_iconImageName isEqualToString:@"Spicy"]) { - icon = [PestoIconSpicy drawTileImage:iconFrame]; - } else if ([_iconImageName isEqualToString:@"Timer"]) { - icon = [PestoIconTimer drawTileImage:iconFrame]; - } else if ([_iconImageName isEqualToString:@"Veggie"]) { - icon = [PestoIconVeggie drawTileImage:iconFrame]; - } - _iconImageView.image = icon; -} - -- (void)setDescText:(NSString *)descText { - _descText = [descText copy]; - - NSMutableParagraphStyle *descParagraphStyle = [[NSMutableParagraphStyle alloc] init]; - descParagraphStyle.lineHeightMultiple = 1.2f; - NSMutableAttributedString *descAttrString = - [[NSMutableAttributedString alloc] initWithString:_descText]; - [descAttrString addAttribute:NSParagraphStyleAttributeName - value:descParagraphStyle - range:NSMakeRange(0, descAttrString.length)]; - self.labelDesc.attributedText = descAttrString; - self.labelDesc.frame = CGRectMake(0, 0, self.contentViewFrame.size.width - kPestoDetailSplitWidth, - kPestoDetailDescTextHeight); -} - -@end diff --git a/demos/Pesto/Pesto/PestoRemoteImageService.h b/demos/Pesto/Pesto/PestoRemoteImageService.h deleted file mode 100644 index a4daa8d3cb5..00000000000 --- a/demos/Pesto/Pesto/PestoRemoteImageService.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -@interface PestoRemoteImageService : NSObject - -- (void)fetchImageAndThumbnailFromURL:(NSURL *)url - completion:(void (^)(UIImage *, UIImage *))completion; - -+ (instancetype)sharedService; - -@end diff --git a/demos/Pesto/Pesto/PestoRemoteImageService.m b/demos/Pesto/Pesto/PestoRemoteImageService.m deleted file mode 100644 index c8cbab98ced..00000000000 --- a/demos/Pesto/Pesto/PestoRemoteImageService.m +++ /dev/null @@ -1,115 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoRemoteImageService.h" - -@interface PestoRemoteImageService () - -@property(nonatomic) NSCache *dataCache; -@property(nonatomic) NSCache *imageCache; -@property(nonatomic) NSCache *thumbnailImageCache; -@property(nonatomic) NSCache *networkImageRequested; - -@end - -@implementation PestoRemoteImageService - -- (instancetype)init { - self = [super init]; - if (self) { - _dataCache = [[NSCache alloc] init]; - _imageCache = [[NSCache alloc] init]; - _thumbnailImageCache = [[NSCache alloc] init]; - _networkImageRequested = [[NSCache alloc] init]; - } - return self; -} - -- (UIImage *)fetchImageFromURL:(NSURL *)url { - UIImage *image = [self.imageCache objectForKey:url]; - if (image) { - return image; - } else { - // Prevent the same image from being requested again if a network request is in progress. - if ([self.networkImageRequested objectForKey:url.absoluteString] != nil) { - return nil; - } else { - [self.networkImageRequested setObject:url forKey:url.absoluteString]; - } - } - - NSData *imageData = [[NSData alloc] initWithContentsOfURL:url]; - if (!imageData) { - return nil; - } - if (imageData) { - [self.dataCache setObject:imageData forKey:url]; - } else { - return nil; - } - image = [[UIImage alloc] initWithData:imageData]; - [self.imageCache setObject:image forKey:url]; - return image; -} - -- (UIImage *)fetchThumbnailImageFromURL:(NSURL *)url { - UIImage *thumbnailImage = [self.thumbnailImageCache objectForKey:url]; - if (thumbnailImage == nil) { - UIImage *image = [self fetchImageFromURL:url]; - if (!image) { - return nil; - } - thumbnailImage = [self createThumbnailWithImage:image]; - [self.thumbnailImageCache setObject:thumbnailImage forKey:url]; - } - return thumbnailImage; -} - -- (void)fetchImageAndThumbnailFromURL:(NSURL *)url - completion:(void (^)(UIImage *, UIImage *))completion { - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ - UIImage *image = [self fetchImageFromURL:url]; - UIImage *thumbnailImage = [self fetchThumbnailImageFromURL:url]; - completion(image, thumbnailImage); - }); -} - -- (UIImage *)createThumbnailWithImage:(UIImage *)image { - CGFloat scaleFactor = 0.4f; - CGSize scaledSize = CGSizeMake(image.size.width * scaleFactor, image.size.height * scaleFactor); - UIImage *thumbnailImage = [PestoRemoteImageService imageWithImage:image scaledToSize:scaledSize]; - return thumbnailImage; -} - -+ (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize { - UIGraphicsBeginImageContextWithOptions(newSize, NO, 0); - [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; - UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - return newImage; -} - -+ (instancetype)sharedService { - static PestoRemoteImageService *instance = nil; - static dispatch_once_t onceToken = 0; - dispatch_once(&onceToken, ^{ - instance = [[PestoRemoteImageService alloc] init]; - }); - - return instance; -} - -@end diff --git a/demos/Pesto/Pesto/PestoSettingsViewController.h b/demos/Pesto/Pesto/PestoSettingsViewController.h deleted file mode 100644 index dd4dc1530a3..00000000000 --- a/demos/Pesto/Pesto/PestoSettingsViewController.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -#import "MaterialCollections.h" - -@interface PestoSettingsViewController : MDCCollectionViewController -@end diff --git a/demos/Pesto/Pesto/PestoSettingsViewController.m b/demos/Pesto/Pesto/PestoSettingsViewController.m deleted file mode 100644 index d792721c5b1..00000000000 --- a/demos/Pesto/Pesto/PestoSettingsViewController.m +++ /dev/null @@ -1,136 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoSettingsViewController.h" - -#import "MaterialAppBar.h" - -static NSString *const kReusableIdentifierItem = @"itemCellIdentifier"; - -@interface PestoSettingsViewController () - -@property(nonatomic, strong) MDCAppBar *appBar; -@property(nonatomic, strong) UIColor *tealColor; - -@end - -@implementation PestoSettingsViewController { - NSMutableArray *_content; -} - -- (id)init { - self = [super init]; - if (self) { - self.title = @"Settings"; - - _appBar = [[MDCAppBar alloc] init]; - [self addChildViewController:_appBar.headerViewController]; - - _tealColor = [UIColor colorWithRed:0 green:0.67f blue:0.55f alpha:1.f]; - _appBar.headerViewController.headerView.backgroundColor = _tealColor; - _appBar.navigationBar.tintColor = [UIColor whiteColor]; - _appBar.navigationBar.titleTextAttributes = - @{NSForegroundColorAttributeName : [UIColor whiteColor]}; - } - return self; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - - self.appBar.headerViewController.headerView.trackingScrollView = self.collectionView; - [self.appBar addSubviewsToParent]; - - UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"" - style:UIBarButtonItemStyleDone - target:self - action:@selector(didTapBack:)]; - UIImage *backImage = [UIImage imageNamed:@"Back"]; - backButton.image = backImage; - self.navigationItem.leftBarButtonItem = backButton; - self.navigationItem.rightBarButtonItem = nil; - - // Register cell. - [self.collectionView registerClass:[MDCCollectionViewTextCell class] - forCellWithReuseIdentifier:kReusableIdentifierItem]; - - // Register header. - [self.collectionView registerClass:[MDCCollectionViewTextCell class] - forSupplementaryViewOfKind:UICollectionElementKindSectionHeader - withReuseIdentifier:UICollectionElementKindSectionHeader]; - - _content = [NSMutableArray array]; - [_content addObject:@[ @"Public Profile", @"Subscribe to Daily Digest" ]]; - [_content addObject:@[ @"Get Email Notifications", @"Get Text Notifications" ]]; - - // Customize collection view settings. - self.styler.cellStyle = MDCCollectionViewCellStyleCard; -} - -#pragma mark - - -- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { - return (NSInteger)[_content count]; -} - -- (NSInteger)collectionView:(UICollectionView *)collectionView - numberOfItemsInSection:(NSInteger)section { - NSArray *sectionContent = _content[(NSUInteger)section]; - return (NSInteger)sectionContent.count; -} - -- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView - cellForItemAtIndexPath:(NSIndexPath *)indexPath { - MDCCollectionViewTextCell *cell = - [collectionView dequeueReusableCellWithReuseIdentifier:kReusableIdentifierItem - forIndexPath:indexPath]; - cell.textLabel.text = _content[(NSUInteger)indexPath.section][(NSUInteger)indexPath.item]; - UISwitch *editingSwitch = [[UISwitch alloc] initWithFrame:CGRectZero]; - cell.accessoryView = editingSwitch; - return cell; -} - -- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView - viewForSupplementaryElementOfKind:(NSString *)kind - atIndexPath:(NSIndexPath *)indexPath { - MDCCollectionViewTextCell *supplementaryView = - [collectionView dequeueReusableSupplementaryViewOfKind:kind - withReuseIdentifier:kind - forIndexPath:indexPath]; - if ([kind isEqualToString:UICollectionElementKindSectionHeader]) { - if (indexPath.section == 0) { - supplementaryView.textLabel.text = @"Account"; - } else if (indexPath.section == 1) { - supplementaryView.textLabel.text = @"Notification"; - } - supplementaryView.textLabel.textColor = self.tealColor; - } - return supplementaryView; -} - -- (void)didTapBack:(id)button { - [self dismissViewControllerAnimated:YES completion:nil]; -} - -#pragma mark - - -- (CGSize)collectionView:(UICollectionView *)collectionView - layout:(UICollectionViewLayout *)collectionViewLayout - referenceSizeForHeaderInSection:(NSInteger)section { - return CGSizeMake(collectionView.bounds.size.width, MDCCellDefaultOneLineHeight); -} - -@end diff --git a/demos/Pesto/Pesto/PestoViewController.h b/demos/Pesto/Pesto/PestoViewController.h deleted file mode 100644 index 67fa5371cd9..00000000000 --- a/demos/Pesto/Pesto/PestoViewController.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "MaterialFlexibleHeader.h" - -@interface PestoViewController : MDCFlexibleHeaderContainerViewController - -@end diff --git a/demos/Pesto/Pesto/PestoViewController.m b/demos/Pesto/Pesto/PestoViewController.m deleted file mode 100644 index 90bf7a4c987..00000000000 --- a/demos/Pesto/Pesto/PestoViewController.m +++ /dev/null @@ -1,200 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "PestoViewController.h" -#import "PestoCollectionViewController.h" -#import "PestoDetailViewController.h" -#import "PestoSettingsViewController.h" - -#import "MaterialAnimationTiming.h" -#import "MaterialAppBar.h" - -static CGFloat kPestoAnimationDuration = 0.33f; -static CGFloat kPestoInset = 5.f; - -@interface PestoViewController () - -@property(nonatomic, strong) MDCAppBar *appBar; -@property(nonatomic, strong) PestoCollectionViewController *collectionViewController; -@property(nonatomic, strong) UIImageView *zoomableView; -@property(nonatomic, strong) UIView *zoomableCardView; - -@end - -@implementation PestoViewController - -- (instancetype)init { - UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; - layout.minimumInteritemSpacing = 0; - CGFloat sectionInset = kPestoInset * 2.f; - [layout setSectionInset:UIEdgeInsetsMake(sectionInset, sectionInset, sectionInset, sectionInset)]; - PestoCollectionViewController *collectionVC = - [[PestoCollectionViewController alloc] initWithCollectionViewLayout:layout]; - self = [super initWithContentViewController:collectionVC]; - if (self) { - _collectionViewController = collectionVC; - _collectionViewController.flexHeaderContainerVC = self; - _collectionViewController.delegate = self; - - _appBar = [[MDCAppBar alloc] init]; - [self addChildViewController:_appBar.headerViewController]; - - _appBar.headerViewController.headerView.backgroundColor = [UIColor clearColor]; - _appBar.navigationBar.tintColor = [UIColor whiteColor]; - - UIImage *icon = [UIImage imageNamed:@"Settings"]; - UIBarButtonItem *menuButton = - [[UIBarButtonItem alloc] initWithImage:icon - style:UIBarButtonItemStyleDone - target:self - action:@selector(didSelectSettings)]; - self.navigationItem.rightBarButtonItem = menuButton; - } - return self; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - [self.appBar addSubviewsToParent]; - - self.zoomableCardView = [[UIView alloc] initWithFrame:CGRectZero]; - self.zoomableCardView.backgroundColor = [UIColor whiteColor]; - [self.view addSubview:self.zoomableCardView]; - - self.zoomableView = [[UIImageView alloc] initWithFrame:CGRectZero]; - self.zoomableView.backgroundColor = [UIColor lightGrayColor]; - self.zoomableView.contentMode = UIViewContentModeScaleAspectFill; - [self.view addSubview:self.zoomableView]; -} - -#pragma mark - PestoCollectionViewControllerDelegate - -- (void)didSelectCell:(PestoCardCollectionViewCell *)cell completion:(void (^)(void))completionBlock { - self.zoomableView.frame = CGRectMake( - cell.frame.origin.x, cell.frame.origin.y - self.collectionViewController.scrollOffsetY, - cell.frame.size.width, cell.frame.size.height - 50.f); - self.zoomableCardView.frame = CGRectMake( - cell.frame.origin.x, cell.frame.origin.y - self.collectionViewController.scrollOffsetY, - cell.frame.size.width, cell.frame.size.height); - dispatch_async(dispatch_get_main_queue(), ^{ - self.zoomableView.image = cell.image; - [UIView animateWithDuration:kPestoAnimationDuration - delay:0.0 - options:UIViewAnimationOptionCurveEaseOut - animations:^{ - CAMediaTimingFunction *quantumEaseInOut = - [CAMediaTimingFunction mdc_functionWithType:MDCAnimationTimingFunctionEaseInOut]; - [CATransaction setAnimationTimingFunction:quantumEaseInOut]; - CGRect zoomFrame = CGRectMake(0, 0, self.view.bounds.size.width, 320.f); - self.zoomableView.frame = zoomFrame; - self.zoomableCardView.frame = self.view.bounds; - } - completion:^(BOOL finished) { - PestoDetailViewController *detailVC = [[PestoDetailViewController alloc] init]; - detailVC.imageView.image = cell.image; - detailVC.title = cell.title; - detailVC.descText = cell.descText; - detailVC.iconImageName = cell.iconImageName; - detailVC.modalPresentationStyle = UIModalPresentationOverFullScreen; - [self presentViewController:detailVC - animated:NO - completion:^() { - self.zoomableView.frame = CGRectZero; - self.zoomableCardView.frame = CGRectZero; - completionBlock(); - }]; - }]; - }); -} - -#pragma mark - UIViewControllerTransitioningDelegate - -- (nullable id) - animationControllerForPresentedController:(UIViewController *)presented - presentingController:(UIViewController *)presenting - sourceController:(UIViewController *)source { - return nil; -} - -- (nullable id)animationControllerForDismissedController: - (UIViewController *)dismissed { - return self; -} - -#pragma mark - UIViewControllerAnimatedTransitioning - -- (void)animateTransition:(id)transitionContext { - UIViewController *const fromController = - [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey]; - - UIViewController *const toController = - [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey]; - - if ([fromController isKindOfClass:[PestoDetailViewController class]] && - [toController isKindOfClass:self.class]) { - CGRect detailFrame = fromController.view.frame; - detailFrame.origin.y = self.view.frame.size.height; - - [UIView animateWithDuration:[self transitionDuration:transitionContext] - delay:0.f - options:UIViewAnimationOptionCurveEaseIn - animations:^{ - fromController.view.frame = detailFrame; - } - completion:^(BOOL finished) { - [fromController.view removeFromSuperview]; - [transitionContext completeTransition:YES]; - }]; - } -} - -- (NSTimeInterval)transitionDuration:(id)transitionContext { - return 0.2; -} - -#pragma mark - PestoSideViewDelegate - -- (void)didSelectSettings { - PestoSettingsViewController *settingsVC = [[PestoSettingsViewController alloc] init]; - settingsVC.title = @"Settings"; - - UIColor *white = [UIColor whiteColor]; - UIColor *teal = [UIColor colorWithRed:0 green:0.67f blue:0.55f alpha:1.f]; - UIBarButtonItem *rightBarButton = - [[UIBarButtonItem alloc] initWithTitle:@"Done" - style:UIBarButtonItemStylePlain - target:self - action:@selector(closeViewController)]; - rightBarButton.tintColor = white; - settingsVC.navigationItem.rightBarButtonItem = rightBarButton; - - UINavigationController *navVC = - [[UINavigationController alloc] initWithRootViewController:settingsVC]; - navVC.navigationBar.barTintColor = teal; - navVC.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName : white}; - navVC.navigationBar.translucent = NO; - navVC.navigationBarHidden = YES; - - [self presentViewController:navVC animated:YES completion:nil]; -} - -- (void)closeViewController { - [self dismissViewControllerAnimated:true completion:nil]; -} - -@end diff --git a/demos/Pesto/Pesto/main.m b/demos/Pesto/Pesto/main.m deleted file mode 100644 index 229fce72d0c..00000000000 --- a/demos/Pesto/Pesto/main.m +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import -#import "PestoAppDelegate.h" - -int main(int argc, char *argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([PestoAppDelegate class])); - } -} diff --git a/demos/Pesto/Podfile b/demos/Pesto/Podfile deleted file mode 100644 index d1721809181..00000000000 --- a/demos/Pesto/Podfile +++ /dev/null @@ -1,13 +0,0 @@ -target 'Pesto' do - platform :ios, '10.0' - project 'Pesto.xcodeproj' - pod 'MaterialComponents/AnimationTiming', :path => '../../' - pod 'MaterialComponents/AppBar', :path => '../../' - pod 'MaterialComponents/Collections', :path => '../../' - pod 'MaterialComponents/FlexibleHeader', :path => '../../' - pod 'MaterialComponents/Ink', :path => '../../' - pod 'MaterialComponents/ShadowElevations', :path => '../../' - pod 'MaterialComponents/ShadowLayer', :path => '../../' - pod 'MaterialComponents/Typography', :path => '../../' -end - diff --git a/demos/Pesto/README.md b/demos/Pesto/README.md deleted file mode 100644 index 326da4df5c2..00000000000 --- a/demos/Pesto/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Pesto - -An Example app demonstrating the use of Material Components for iOS - -## Installation/Building - -Pesto uses [cocoapods](https://cocoapods.org/) for dependency -management. You will need cocoapods as well as SSH access to -[material-components-ios](https://github.com/material-components/material-components-ios). -Needing SSH access is only temporary until MDC launches publicly. - -To install/build, cd into this directory and run `pod install`. -Then run `open Pesto.xcworkspace`. Do **not** open `Pesto.xcodeproj` -or the project will not build. diff --git a/demos/README.md b/demos/README.md index 443bc15ab1b..7eb5b2f8cdb 100644 --- a/demos/README.md +++ b/demos/README.md @@ -2,7 +2,6 @@ The following demo apps can be found in this directory: -- [Pesto](Pesto/) - a simple recipe app, incorporating a flexible header, floating action button, and collections - [Shrine](Shrine/) - a demo shopping app, incorporating a flexible header, custom typography, and collections - [Bare](Bare/) - a skeleton example app used to measure the size of Material Components for iOS From b64b0ec23150deef32205c38b0a274171639644b Mon Sep 17 00:00:00 2001 From: Jeff Verkoeyen Date: Mon, 1 Mar 2021 11:02:07 -0800 Subject: [PATCH 2/7] Internal change PiperOrigin-RevId: 360230236 --- .../src/MDCFeatureHighlightViewController.m | 5 +--- .../CollectionListCellExampleTypicalUse.m | 8 +----- components/Tabs/src/private/MDCItemBarCell.m | 8 +++--- .../MDCTextControlConfiguratorExample.m | 23 +++++++--------- .../MDCTextControlContentViewController.m | 5 +--- ...TextControlTextAreaContentViewController.m | 26 +++++++++---------- ...extControlTextFieldContentViewController.m | 26 +++++++++---------- .../src/BaseTextAreas/MDCBaseTextArea.m | 12 +++------ 8 files changed, 43 insertions(+), 70 deletions(-) diff --git a/components/FeatureHighlight/src/MDCFeatureHighlightViewController.m b/components/FeatureHighlight/src/MDCFeatureHighlightViewController.m index a32c11ba2e7..2ddb2a781ac 100644 --- a/components/FeatureHighlight/src/MDCFeatureHighlightViewController.m +++ b/components/FeatureHighlight/src/MDCFeatureHighlightViewController.m @@ -65,10 +65,7 @@ - (void)viewDidLoad { UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; self.featureHighlightView.mdc_adjustsFontForContentSizeCategory = _mdc_adjustsFontForContentSizeCategory; - if (@available(iOS 10.0, *)) { - self.featureHighlightView.adjustsFontForContentSizeCategory = - _adjustsFontForContentSizeCategory; - } + self.featureHighlightView.adjustsFontForContentSizeCategory = _adjustsFontForContentSizeCategory; self.featureHighlightView.mdc_legacyFontScaling = _mdc_legacyFontScaling; __weak MDCFeatureHighlightViewController *weakSelf = self; diff --git a/components/List/examples/CollectionListCellExampleTypicalUse.m b/components/List/examples/CollectionListCellExampleTypicalUse.m index 0bfa4d88c19..10780f6c03a 100644 --- a/components/List/examples/CollectionListCellExampleTypicalUse.m +++ b/components/List/examples/CollectionListCellExampleTypicalUse.m @@ -21,8 +21,6 @@ static NSString *const kExampleDetailText = @"Pellentesque non quam ornare, porta urna sed, malesuada felis. Praesent at gravida felis, " "non facilisis enim. Proin dapibus laoreet lorem, in viverra leo dapibus a."; -static const CGFloat kSmallestCellHeight = 40; -static const CGFloat kSmallArbitraryCellWidth = 100; @implementation CollectionListCellExampleTypicalUse { NSMutableArray *_content; @@ -35,11 +33,7 @@ - (instancetype)init { flowLayout.minimumInteritemSpacing = 0; flowLayout.minimumLineSpacing = 1; flowLayout.scrollDirection = UICollectionViewScrollDirectionVertical; - if (@available(iOS 10.0, *)) { - flowLayout.estimatedItemSize = UICollectionViewFlowLayoutAutomaticSize; - } else { - flowLayout.estimatedItemSize = CGSizeMake(kSmallArbitraryCellWidth, kSmallestCellHeight); - } + flowLayout.estimatedItemSize = UICollectionViewFlowLayoutAutomaticSize; return [self initWithCollectionViewLayout:flowLayout]; } diff --git a/components/Tabs/src/private/MDCItemBarCell.m b/components/Tabs/src/private/MDCItemBarCell.m index b83c175fe2a..84dac0b8d46 100644 --- a/components/Tabs/src/private/MDCItemBarCell.m +++ b/components/Tabs/src/private/MDCItemBarCell.m @@ -228,11 +228,9 @@ - (void)updateWithItem:(UITabBarItem *)item self.selectedImage = item.selectedImage; self.image = item.image; self.badgeValue = item.badgeValue; - if (@available(iOS 10.0, *)) { - if (item.badgeColor) { - self.style.badgeColor = item.badgeColor; - self.badge.badgeColor = item.badgeColor; - } + if (item.badgeColor) { + self.style.badgeColor = item.badgeColor; + self.badge.badgeColor = item.badgeColor; } self.accessibilityIdentifier = item.accessibilityIdentifier; self.accessibilityLabel = item.accessibilityLabel; diff --git a/components/TextControls/examples/supplemental/MDCTextControlConfiguratorExample.m b/components/TextControls/examples/supplemental/MDCTextControlConfiguratorExample.m index 15ef6faf222..a0982fc13f3 100644 --- a/components/TextControls/examples/supplemental/MDCTextControlConfiguratorExample.m +++ b/components/TextControls/examples/supplemental/MDCTextControlConfiguratorExample.m @@ -131,23 +131,18 @@ - (void)decreaseContentSizeForChildViewController:(UIViewController *)childViewC - (void)setContentSizeCategory:(UIContentSizeCategory)contentSizeCategory onChildViewController:(UIViewController *)viewController { - if (@available(iOS 10.0, *)) { - UITraitCollection *contentSizeCategoryTraitCollection = - [UITraitCollection traitCollectionWithPreferredContentSizeCategory:contentSizeCategory]; - UITraitCollection *currentTraitCollection = viewController.traitCollection; - NSArray *traitCollections = @[ currentTraitCollection, contentSizeCategoryTraitCollection ]; - UITraitCollection *traitCollection = - [UITraitCollection traitCollectionWithTraitsFromCollections:traitCollections]; - [self setOverrideTraitCollection:traitCollection forChildViewController:viewController]; - [self.view setNeedsLayout]; - } + UITraitCollection *contentSizeCategoryTraitCollection = + [UITraitCollection traitCollectionWithPreferredContentSizeCategory:contentSizeCategory]; + UITraitCollection *currentTraitCollection = viewController.traitCollection; + NSArray *traitCollections = @[ currentTraitCollection, contentSizeCategoryTraitCollection ]; + UITraitCollection *traitCollection = + [UITraitCollection traitCollectionWithTraitsFromCollections:traitCollections]; + [self setOverrideTraitCollection:traitCollection forChildViewController:viewController]; + [self.view setNeedsLayout]; } - (UIContentSizeCategory)contentSizeCategoryForViewController:(UIViewController *)viewController { - if (@available(iOS 10.0, *)) { - return viewController.traitCollection.preferredContentSizeCategory; - } - return nil; + return viewController.traitCollection.preferredContentSizeCategory; } - (void)setContainerScheme:(id)containerScheme { diff --git a/components/TextControls/examples/supplemental/MDCTextControlContentViewController.m b/components/TextControls/examples/supplemental/MDCTextControlContentViewController.m index 628f8d11a17..3c70aa76bf9 100644 --- a/components/TextControls/examples/supplemental/MDCTextControlContentViewController.m +++ b/components/TextControls/examples/supplemental/MDCTextControlContentViewController.m @@ -144,10 +144,7 @@ - (MDCButton *)createContentSizeButtonWithTitle:(NSString *)title selector:(SEL) [button addTarget:self action:selector forControlEvents:UIControlEventTouchUpInside]; [button applyContainedThemeWithScheme:self.containerScheme]; [button sizeToFit]; - button.enabled = NO; - if (@available(iOS 10.0, *)) { - button.enabled = YES; - } + button.enabled = YES; return button; } diff --git a/components/TextControls/examples/supplemental/MDCTextControlTextAreaContentViewController.m b/components/TextControls/examples/supplemental/MDCTextControlTextAreaContentViewController.m index 72e1f7fc5e9..5c222b178e9 100644 --- a/components/TextControls/examples/supplemental/MDCTextControlTextAreaContentViewController.m +++ b/components/TextControls/examples/supplemental/MDCTextControlTextAreaContentViewController.m @@ -147,20 +147,18 @@ - (void)resizeScrollViewSubviews { - (void)enforcePreferredFonts { [super enforcePreferredFonts]; - if (@available(iOS 10.0, *)) { - [self.allTextAreas - enumerateObjectsUsingBlock:^(MDCBaseTextArea *textArea, NSUInteger idx, BOOL *stop) { - textArea.textView.adjustsFontForContentSizeCategory = YES; - textArea.textView.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody - compatibleWithTraitCollection:textArea.traitCollection]; - textArea.leadingAssistiveLabel.font = - [UIFont preferredFontForTextStyle:UIFontTextStyleCaption2 - compatibleWithTraitCollection:textArea.traitCollection]; - textArea.trailingAssistiveLabel.font = - [UIFont preferredFontForTextStyle:UIFontTextStyleCaption2 - compatibleWithTraitCollection:textArea.traitCollection]; - }]; - } + [self.allTextAreas + enumerateObjectsUsingBlock:^(MDCBaseTextArea *textArea, NSUInteger idx, BOOL *stop) { + textArea.textView.adjustsFontForContentSizeCategory = YES; + textArea.textView.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody + compatibleWithTraitCollection:textArea.traitCollection]; + textArea.leadingAssistiveLabel.font = + [UIFont preferredFontForTextStyle:UIFontTextStyleCaption2 + compatibleWithTraitCollection:textArea.traitCollection]; + textArea.trailingAssistiveLabel.font = + [UIFont preferredFontForTextStyle:UIFontTextStyleCaption2 + compatibleWithTraitCollection:textArea.traitCollection]; + }]; } - (void)handleResignFirstResponderTapped { diff --git a/components/TextControls/examples/supplemental/MDCTextControlTextFieldContentViewController.m b/components/TextControls/examples/supplemental/MDCTextControlTextFieldContentViewController.m index e366336f169..7d2ad6a6ad9 100644 --- a/components/TextControls/examples/supplemental/MDCTextControlTextFieldContentViewController.m +++ b/components/TextControls/examples/supplemental/MDCTextControlTextFieldContentViewController.m @@ -172,20 +172,18 @@ - (void)resizeScrollViewSubviews { - (void)enforcePreferredFonts { [super enforcePreferredFonts]; - if (@available(iOS 10.0, *)) { - [self.allTextFields - enumerateObjectsUsingBlock:^(MDCBaseTextField *textField, NSUInteger idx, BOOL *stop) { - textField.adjustsFontForContentSizeCategory = YES; - textField.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody - compatibleWithTraitCollection:textField.traitCollection]; - textField.leadingAssistiveLabel.font = - [UIFont preferredFontForTextStyle:UIFontTextStyleCaption2 - compatibleWithTraitCollection:textField.traitCollection]; - textField.trailingAssistiveLabel.font = - [UIFont preferredFontForTextStyle:UIFontTextStyleCaption2 - compatibleWithTraitCollection:textField.traitCollection]; - }]; - } + [self.allTextFields + enumerateObjectsUsingBlock:^(MDCBaseTextField *textField, NSUInteger idx, BOOL *stop) { + textField.adjustsFontForContentSizeCategory = YES; + textField.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody + compatibleWithTraitCollection:textField.traitCollection]; + textField.leadingAssistiveLabel.font = + [UIFont preferredFontForTextStyle:UIFontTextStyleCaption2 + compatibleWithTraitCollection:textField.traitCollection]; + textField.trailingAssistiveLabel.font = + [UIFont preferredFontForTextStyle:UIFontTextStyleCaption2 + compatibleWithTraitCollection:textField.traitCollection]; + }]; } - (void)handleResignFirstResponderTapped { diff --git a/components/TextControls/src/BaseTextAreas/MDCBaseTextArea.m b/components/TextControls/src/BaseTextAreas/MDCBaseTextArea.m index b9f3b933227..d7741596387 100644 --- a/components/TextControls/src/BaseTextAreas/MDCBaseTextArea.m +++ b/components/TextControls/src/BaseTextAreas/MDCBaseTextArea.m @@ -398,14 +398,10 @@ - (CGFloat)numberOfLinesOfVisibleText { #pragma mark Dynamic Type - (void)setAdjustsFontForContentSizeCategory:(BOOL)adjustsFontForContentSizeCategory { - if (@available(iOS 10.0, *)) { - _adjustsFontForContentSizeCategory = adjustsFontForContentSizeCategory; - self.textView.adjustsFontForContentSizeCategory = adjustsFontForContentSizeCategory; - self.leadingAssistiveLabel.adjustsFontForContentSizeCategory = - adjustsFontForContentSizeCategory; - self.trailingAssistiveLabel.adjustsFontForContentSizeCategory = - adjustsFontForContentSizeCategory; - } + _adjustsFontForContentSizeCategory = adjustsFontForContentSizeCategory; + self.textView.adjustsFontForContentSizeCategory = adjustsFontForContentSizeCategory; + self.leadingAssistiveLabel.adjustsFontForContentSizeCategory = adjustsFontForContentSizeCategory; + self.trailingAssistiveLabel.adjustsFontForContentSizeCategory = adjustsFontForContentSizeCategory; } #pragma mark MDCTextControlState From a29eb2c3c7408a891dadca4613e97ddc67bdbbf5 Mon Sep 17 00:00:00 2001 From: Andrew Overton Date: Tue, 2 Mar 2021 09:46:03 -0800 Subject: [PATCH 3/7] [TextFields] Deprecate MDCTextField and its associated classes/protocols PiperOrigin-RevId: 360449716 --- components/TextFields/src/MDCIntrinsicHeightTextView.h | 4 +++- components/TextFields/src/MDCMultilineTextField.h | 6 ++++-- components/TextFields/src/MDCMultilineTextInputDelegate.h | 4 +++- .../TextFields/src/MDCMultilineTextInputLayoutDelegate.h | 4 +++- components/TextFields/src/MDCTextField.h | 6 ++++-- .../TextFields/src/MDCTextFieldPositioningDelegate.h | 4 +++- components/TextFields/src/MDCTextInput.h | 8 ++++++-- components/TextFields/src/MDCTextInputBorderView.h | 4 +++- components/TextFields/src/MDCTextInputCharacterCounter.h | 8 ++++++-- components/TextFields/src/MDCTextInputController.h | 4 +++- components/TextFields/src/MDCTextInputControllerBase.h | 4 +++- components/TextFields/src/MDCTextInputControllerFilled.h | 4 +++- .../src/MDCTextInputControllerFloatingPlaceholder.h | 4 +++- .../TextFields/src/MDCTextInputControllerFullWidth.h | 4 +++- .../TextFields/src/MDCTextInputControllerLegacyDefault.h | 4 +++- .../src/MDCTextInputControllerLegacyFullWidth.h | 4 +++- .../TextFields/src/MDCTextInputControllerOutlined.h | 4 +++- .../src/MDCTextInputControllerOutlinedTextArea.h | 4 +++- .../TextFields/src/MDCTextInputControllerUnderline.h | 4 +++- components/TextFields/src/MDCTextInputUnderlineView.h | 4 +++- 20 files changed, 68 insertions(+), 24 deletions(-) diff --git a/components/TextFields/src/MDCIntrinsicHeightTextView.h b/components/TextFields/src/MDCIntrinsicHeightTextView.h index 25bb32f5236..b74a1b098c7 100644 --- a/components/TextFields/src/MDCIntrinsicHeightTextView.h +++ b/components/TextFields/src/MDCIntrinsicHeightTextView.h @@ -22,6 +22,8 @@ NOTE: UITextView is a subclass of UIScrollView. That's why it has a contentSize. */ -@interface MDCIntrinsicHeightTextView : UITextView +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @interface MDCIntrinsicHeightTextView : UITextView @end diff --git a/components/TextFields/src/MDCMultilineTextField.h b/components/TextFields/src/MDCMultilineTextField.h index 49301dc292f..4e5ecaa018a 100644 --- a/components/TextFields/src/MDCMultilineTextField.h +++ b/components/TextFields/src/MDCMultilineTextField.h @@ -29,8 +29,10 @@ Material Design themed mutiline text field (multiline text input). https://www.google.com/design/spec/components/text-fields.html#text-fields-multi-line-text-field */ -@interface MDCMultilineTextField - : UIView +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @interface MDCMultilineTextField + : UIView /** A mirror of the same property that already exists on UITextField, UITextView, and UILabel. */ @property(nonatomic, assign) BOOL adjustsFontForContentSizeCategory; diff --git a/components/TextFields/src/MDCMultilineTextInputDelegate.h b/components/TextFields/src/MDCMultilineTextInputDelegate.h index b04a1883f1f..7f3055addae 100644 --- a/components/TextFields/src/MDCMultilineTextInputDelegate.h +++ b/components/TextFields/src/MDCMultilineTextInputDelegate.h @@ -19,7 +19,9 @@ #import -@protocol MDCMultilineTextInputDelegate +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @protocol MDCMultilineTextInputDelegate @optional diff --git a/components/TextFields/src/MDCMultilineTextInputLayoutDelegate.h b/components/TextFields/src/MDCMultilineTextInputLayoutDelegate.h index 291bebea223..18b4996d540 100644 --- a/components/TextFields/src/MDCMultilineTextInputLayoutDelegate.h +++ b/components/TextFields/src/MDCMultilineTextInputLayoutDelegate.h @@ -16,7 +16,9 @@ @protocol MDCMultilineTextInput; -@protocol MDCMultilineTextInputLayoutDelegate +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @protocol MDCMultilineTextInputLayoutDelegate @optional /** diff --git a/components/TextFields/src/MDCTextField.h b/components/TextFields/src/MDCTextField.h index 2d81182884b..52e226f672a 100644 --- a/components/TextFields/src/MDCTextField.h +++ b/components/TextFields/src/MDCTextField.h @@ -27,8 +27,10 @@ extern NSString *_Nonnull const MDCTextInputDidToggleEnabledNotification; Material Design compliant single-line text input. https://www.google.com/design/spec/components/text-fields.html#text-fields-single-line-text-field */ -@interface MDCTextField - : UITextField +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @interface MDCTextField + : UITextField /** MDCTextField does not implement borders that conform to UITextBorderStyle. */ @property(nonatomic, assign) UITextBorderStyle borderStyle NS_UNAVAILABLE; diff --git a/components/TextFields/src/MDCTextFieldPositioningDelegate.h b/components/TextFields/src/MDCTextFieldPositioningDelegate.h index 5fd91c319b0..f50442621f4 100644 --- a/components/TextFields/src/MDCTextFieldPositioningDelegate.h +++ b/components/TextFields/src/MDCTextFieldPositioningDelegate.h @@ -21,7 +21,9 @@ Usually, these methods are direct mirrors of internal methods with the addition of a default value. */ -@protocol MDCTextInputPositioningDelegate +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @protocol MDCTextInputPositioningDelegate @optional diff --git a/components/TextFields/src/MDCTextInput.h b/components/TextFields/src/MDCTextInput.h index a1ca6a5c0dd..fc256f51006 100644 --- a/components/TextFields/src/MDCTextInput.h +++ b/components/TextFields/src/MDCTextInput.h @@ -42,7 +42,9 @@ typedef NS_ENUM(NSUInteger, MDCTextInputTextInsetsMode) { @protocol MDCTextInputPositioningDelegate; /** Common API for Material Design compliant text inputs. */ -@protocol MDCTextInput +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @protocol MDCTextInput /** The attributed text string of the placeholder label. @@ -232,7 +234,9 @@ Common API for text inputs that support having a leading view. MDCTextField implements this protocol but MDCMultilineTextField does not because the designers determined multiline text fields should only have trailing views. */ -@protocol MDCLeadingViewTextInput +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @protocol MDCLeadingViewTextInput /** An overlay view on the leading side. diff --git a/components/TextFields/src/MDCTextInputBorderView.h b/components/TextFields/src/MDCTextInputBorderView.h index 51bfcb9bcd6..8a136812e0f 100644 --- a/components/TextFields/src/MDCTextInputBorderView.h +++ b/components/TextFields/src/MDCTextInputBorderView.h @@ -14,7 +14,9 @@ #import -@interface MDCTextInputBorderView : UIView +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @interface MDCTextInputBorderView : UIView /** The color of the area inside the border. diff --git a/components/TextFields/src/MDCTextInputCharacterCounter.h b/components/TextFields/src/MDCTextInputCharacterCounter.h index b2960889541..b10b60ae4c2 100644 --- a/components/TextFields/src/MDCTextInputCharacterCounter.h +++ b/components/TextFields/src/MDCTextInputCharacterCounter.h @@ -23,7 +23,9 @@ of context), this object can instead choose to do sophisticated counting (ie: ignoring whitespace, ignoring url strings, ignoring usernames, etc). */ -@protocol MDCTextInputCharacterCounter +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @protocol MDCTextInputCharacterCounter /** Returns the count of characters for the text field. @@ -41,6 +43,8 @@ MDCTextInputAllCharactersCounter is naive (counts each character regardless of context). */ -@interface MDCTextInputAllCharactersCounter : NSObject +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @interface MDCTextInputAllCharactersCounter : NSObject @end diff --git a/components/TextFields/src/MDCTextInputController.h b/components/TextFields/src/MDCTextInputController.h index a21f0ed9666..a9028971bb6 100644 --- a/components/TextFields/src/MDCTextInputController.h +++ b/components/TextFields/src/MDCTextInputController.h @@ -20,7 +20,9 @@ @protocol MDCTextInputCharacterCounter; /** Controllers that manipulate styling and animation of text inputs. */ -@protocol MDCTextInputController +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @protocol MDCTextInputController /** Color for decorations that indicates the input is currently editing. diff --git a/components/TextFields/src/MDCTextInputControllerBase.h b/components/TextFields/src/MDCTextInputControllerBase.h index 3164d6a0640..171a7a5e623 100644 --- a/components/TextFields/src/MDCTextInputControllerBase.h +++ b/components/TextFields/src/MDCTextInputControllerBase.h @@ -57,7 +57,9 @@ placeholder as distinct from `label text`. The placeholder-related properties of this class most closely align with the "label text" as described in the guidance. */ -@interface MDCTextInputControllerBase : NSObject +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @interface MDCTextInputControllerBase : NSObject /** The color behind the input and label that defines the preferred tap zone. diff --git a/components/TextFields/src/MDCTextInputControllerFilled.h b/components/TextFields/src/MDCTextInputControllerFilled.h index 26702dbbc7a..f10cfb897ef 100644 --- a/components/TextFields/src/MDCTextInputControllerFilled.h +++ b/components/TextFields/src/MDCTextInputControllerFilled.h @@ -55,6 +55,8 @@ placeholder as distinct from `label text`. The placeholder-related properties of this class most closely align with the "label text" as described in the guidance. */ -@interface MDCTextInputControllerFilled : MDCTextInputControllerBase +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @interface MDCTextInputControllerFilled : MDCTextInputControllerBase @end diff --git a/components/TextFields/src/MDCTextInputControllerFloatingPlaceholder.h b/components/TextFields/src/MDCTextInputControllerFloatingPlaceholder.h index 8b4260a2708..da1e8adee24 100644 --- a/components/TextFields/src/MDCTextInputControllerFloatingPlaceholder.h +++ b/components/TextFields/src/MDCTextInputControllerFloatingPlaceholder.h @@ -21,7 +21,9 @@ placeholder as distinct from `label text`. The placeholder-related properties of this class most closely align with the "label text" as described in the guidance. */ -@protocol MDCTextInputControllerFloatingPlaceholder +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @protocol MDCTextInputControllerFloatingPlaceholder /** The color applied to the placeholder when floating and the text field is first responder. However, diff --git a/components/TextFields/src/MDCTextInputControllerFullWidth.h b/components/TextFields/src/MDCTextInputControllerFullWidth.h index abbfe32d7c5..5b411615319 100644 --- a/components/TextFields/src/MDCTextInputControllerFullWidth.h +++ b/components/TextFields/src/MDCTextInputControllerFullWidth.h @@ -52,7 +52,9 @@ Underline View Mode - While editing */ -@interface MDCTextInputControllerFullWidth : NSObject +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @interface MDCTextInputControllerFullWidth : NSObject /** Color for background for the various views making up a text field. diff --git a/components/TextFields/src/MDCTextInputControllerLegacyDefault.h b/components/TextFields/src/MDCTextInputControllerLegacyDefault.h index 53e0c666f43..5256dda1a5a 100644 --- a/components/TextFields/src/MDCTextInputControllerLegacyDefault.h +++ b/components/TextFields/src/MDCTextInputControllerLegacyDefault.h @@ -61,6 +61,8 @@ placeholder as distinct from `label text`. The placeholder-related properties of this class most closely align with the "label text" as described in the guidance. */ -@interface MDCTextInputControllerLegacyDefault : MDCTextInputControllerBase +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @interface MDCTextInputControllerLegacyDefault : MDCTextInputControllerBase @end diff --git a/components/TextFields/src/MDCTextInputControllerLegacyFullWidth.h b/components/TextFields/src/MDCTextInputControllerLegacyFullWidth.h index 175408cb94f..bebd5866280 100644 --- a/components/TextFields/src/MDCTextInputControllerLegacyFullWidth.h +++ b/components/TextFields/src/MDCTextInputControllerLegacyFullWidth.h @@ -54,6 +54,8 @@ placeholder as distinct from `label text`. The placeholder-related properties of this class most closely align with the "label text" as described in the guidance. */ -@interface MDCTextInputControllerLegacyFullWidth : MDCTextInputControllerFullWidth +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @interface MDCTextInputControllerLegacyFullWidth : MDCTextInputControllerFullWidth @end diff --git a/components/TextFields/src/MDCTextInputControllerOutlined.h b/components/TextFields/src/MDCTextInputControllerOutlined.h index 5769f177f29..9ddca99a5f6 100644 --- a/components/TextFields/src/MDCTextInputControllerOutlined.h +++ b/components/TextFields/src/MDCTextInputControllerOutlined.h @@ -59,6 +59,8 @@ placeholder as distinct from `label text`. The placeholder-related properties of this class most closely align with the "label text" as described in the guidance. */ -@interface MDCTextInputControllerOutlined : MDCTextInputControllerBase +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @interface MDCTextInputControllerOutlined : MDCTextInputControllerBase @end diff --git a/components/TextFields/src/MDCTextInputControllerOutlinedTextArea.h b/components/TextFields/src/MDCTextInputControllerOutlinedTextArea.h index 1abfe423a0c..cefbd2e06b6 100644 --- a/components/TextFields/src/MDCTextInputControllerOutlinedTextArea.h +++ b/components/TextFields/src/MDCTextInputControllerOutlinedTextArea.h @@ -67,6 +67,8 @@ closely align with the "label text" as described in the guidance. */ -@interface MDCTextInputControllerOutlinedTextArea : MDCTextInputControllerBase +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @interface MDCTextInputControllerOutlinedTextArea : MDCTextInputControllerBase @end diff --git a/components/TextFields/src/MDCTextInputControllerUnderline.h b/components/TextFields/src/MDCTextInputControllerUnderline.h index c9d723d6558..93c10e0e36c 100644 --- a/components/TextFields/src/MDCTextInputControllerUnderline.h +++ b/components/TextFields/src/MDCTextInputControllerUnderline.h @@ -54,6 +54,8 @@ placeholder as distinct from `label text`. The placeholder-related properties of this class most closely align with the "label text" as described in the guidance. */ -@interface MDCTextInputControllerUnderline : MDCTextInputControllerBase +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @interface MDCTextInputControllerUnderline : MDCTextInputControllerBase @end diff --git a/components/TextFields/src/MDCTextInputUnderlineView.h b/components/TextFields/src/MDCTextInputUnderlineView.h index ea66bf2bb66..ad16db9bf61 100644 --- a/components/TextFields/src/MDCTextInputUnderlineView.h +++ b/components/TextFields/src/MDCTextInputUnderlineView.h @@ -18,7 +18,9 @@ A view that draws the underline effect for an instance of MDCTextInput. The underline has 2 possible states enabled and disabled. Disabled shows a dotted line instead of solid. */ -@interface MDCTextInputUnderlineView : UIView +__deprecated_msg( + "MDCTextField and its associated classes are deprecated. Please use TextControls instead.") + @interface MDCTextInputUnderlineView : UIView @property(nonatomic, strong) UIColor *color; @property(nonatomic, strong) UIColor *disabledColor; From 6b54696e6a1d8c174fc7d6b354dff31dfb19dc02 Mon Sep 17 00:00:00 2001 From: Cody Weaver Date: Thu, 4 Mar 2021 09:20:12 -0800 Subject: [PATCH 4/7] Automatic changelog preparation for release. --- .gitattributes | 28 +++++++++++++++++++++++++--- CHANGELOG.md | 26 ++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 3 deletions(-) diff --git a/.gitattributes b/.gitattributes index c13f46c3bdc..f56e2dfb895 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,25 @@ -# Do not merge this version into `stable`. # DO NOT CHANGE THIS FILE -snapshot_test_goldens/**/*.png filter=lfs diff=lfs merge=lfs -text # DO NOT EDIT THE LINE BELOW. -.gitattributes merge=gitattributes +# DO NOT CHANGE THIS FILE +# DO NOT EDIT THE LINE BELOW. +/.gitattributes merge=gitattributes +# DO NOT EDIT THE LINE ABOVE. +# +# You can of course edit this file, but make sure you understand what you are +# doing. This file defines a custom filter driver that prevents snapshot test +# images from being merged into `stable`. Snapshot test images are only +# valuable in `develop` because they are only intended to help developers +# identify changes in the appearance of the library. +# +# Before you change this file, please carefully consider whether such a change +# is actually necessary. When you do change this file, it should almost always +# be done in a dedicated commit directly on the `stable` branch and not part +# of a release. If you see this file being changed as part of a release, +# block the release and work with the releaser to ensure that the change needs +# to be propagated from the `develop` branch to the `stable` branch. In nearly +# all cases, it should not be propagated from `develop` to `stable`. +# +# If you are a releaser and see this file change and you're not sure why, you +# might have accidentally skipped [setting the correct +# driver in your cloned +# repository](https://github.com/material-components/material-components-ios/blob/develop/contributing/releasing.md#configure-the-merge-strategy-for-gitattributes). +# If that's the case, please either revert the accidental change manually or +# restart the release with a fresh clone and the correct driver. diff --git a/CHANGELOG.md b/CHANGELOG.md index 621eae17a3e..2f01588b6b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,29 @@ +# #develop# + +Replace this text with a summarized description of this release's contents. +## Breaking changes + +Replace this explanations for how to resolve the breaking changes. +## New deprecations + +Replace this text with links to deprecation guides. +## New features + +Replace this text with example code for each new feature. +## API changes + +## Component changes + +### TextFields + +* [Deprecate MDCTextField and its associated classes/protocols](https://github.com/material-components/material-components-ios/commit/a29eb2c3c7408a891dadca4613e97ddc67bdbbf5) (Andrew Overton) + +## Multi-component changes + +* [Internal change](https://github.com/material-components/material-components-ios/commit/b64b0ec23150deef32205c38b0a274171639644b) (Jeff Verkoeyen) + +--- + # 123.0.0 In this major release we have made the MDCBottomNavigationBarController class and its APIs only be available from iOS 12 and up. From 15b57bb9e855f1295fcfaf5cea02cc2a1dee3382 Mon Sep 17 00:00:00 2001 From: Cody Weaver Date: Thu, 4 Mar 2021 12:29:00 -0800 Subject: [PATCH 5/7] Hand-modified CHANGELOG.md API diff. --- CHANGELOG.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f01588b6b9..7bf845b78e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,17 +1,15 @@ -# #develop# +# 124.0.0 -Replace this text with a summarized description of this release's contents. -## Breaking changes +In this release `MDCTextField` and its associated classes and protocols are deprecated. As well as cleaning up pre iOS 12 checks in the library. -Replace this explanations for how to resolve the breaking changes. -## New deprecations +## Breaking changes -Replace this text with links to deprecation guides. -## New features +`MDCTextField` and its associated classes and protocols are deprecated. -Replace this text with example code for each new feature. ## API changes + * All classes and protocols under in the `components/TextFields` folder are now deprecated. + ## Component changes ### TextFields From 86c1bc4f38ca3522c7f41b99a10e49e231e22283 Mon Sep 17 00:00:00 2001 From: Cody Weaver Date: Thu, 4 Mar 2021 12:29:59 -0800 Subject: [PATCH 6/7] Bumped version number to 124.0.0. --- MaterialComponents.podspec | 2 +- MaterialComponentsEarlGreyTests.podspec | 2 +- MaterialComponentsExamples.podspec | 2 +- MaterialComponentsSnapshotTests.podspec | 2 +- VERSION | 2 +- catalog/MDCCatalog/Info.plist | 4 ++-- catalog/MDCDragons/Info.plist | 4 ++-- catalog/MaterialCatalog/MaterialCatalog.podspec | 2 +- components/LibraryInfo/src/MDCLibraryInfo.m | 2 +- components/LibraryInfo/tests/unit/LibraryInfoTests.m | 2 +- demos/supplemental/RemoteImageServiceForMDCDemos.podspec | 2 +- 11 files changed, 13 insertions(+), 13 deletions(-) diff --git a/MaterialComponents.podspec b/MaterialComponents.podspec index 133dfc6d0aa..1170ab78915 100644 --- a/MaterialComponents.podspec +++ b/MaterialComponents.podspec @@ -2,7 +2,7 @@ load 'scripts/generated/icons.rb' Pod::Spec.new do |mdc| mdc.name = "MaterialComponents" - mdc.version = "123.0.0" + mdc.version = "124.0.0" mdc.authors = "The Material Components authors." mdc.summary = "A collection of stand-alone production-ready UI libraries focused on design details." mdc.homepage = "https://github.com/material-components/material-components-ios" diff --git a/MaterialComponentsEarlGreyTests.podspec b/MaterialComponentsEarlGreyTests.podspec index 9ffd674958a..9a35519120a 100644 --- a/MaterialComponentsEarlGreyTests.podspec +++ b/MaterialComponentsEarlGreyTests.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "MaterialComponentsEarlGreyTests" - s.version = "123.0.0" + s.version = "124.0.0" s.authors = "The Material Components authors." s.summary = "This spec is an aggregate of all the Material Components EarlGrey tests." s.description = "This spec is made for use in the MDC Catalog." diff --git a/MaterialComponentsExamples.podspec b/MaterialComponentsExamples.podspec index 19a1e6cac89..c6db8be5920 100644 --- a/MaterialComponentsExamples.podspec +++ b/MaterialComponentsExamples.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "MaterialComponentsExamples" - s.version = "123.0.0" + s.version = "124.0.0" s.authors = "The Material Components authors." s.summary = "This spec is an aggregate of all the Material Components examples." s.description = "This spec is made for use in the MDC Catalog. Used in conjunction with CatalogByConvention we create our Material Catalog." diff --git a/MaterialComponentsSnapshotTests.podspec b/MaterialComponentsSnapshotTests.podspec index 7d7e5a8e7cc..870a6671de3 100644 --- a/MaterialComponentsSnapshotTests.podspec +++ b/MaterialComponentsSnapshotTests.podspec @@ -53,7 +53,7 @@ end Pod::Spec.new do |s| s.name = "MaterialComponentsSnapshotTests" - s.version = "123.0.0" + s.version = "124.0.0" s.authors = "The Material Components authors." s.summary = "This spec is an aggregate of all the Material Components snapshot tests." s.homepage = "https://github.com/material-components/material-components-ios" diff --git a/VERSION b/VERSION index 8d13f3f699d..f71621dd906 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -123.0.0 +124.0.0 diff --git a/catalog/MDCCatalog/Info.plist b/catalog/MDCCatalog/Info.plist index f0795f1c34b..4a6c3d3a324 100644 --- a/catalog/MDCCatalog/Info.plist +++ b/catalog/MDCCatalog/Info.plist @@ -15,11 +15,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 123.0.0 + 124.0.0 CFBundleSignature ???? CFBundleVersion - 123.0.0 + 124.0.0 LSRequiresIPhoneOS UIAppFonts diff --git a/catalog/MDCDragons/Info.plist b/catalog/MDCDragons/Info.plist index 7de5c402c1a..bed55bf159f 100644 --- a/catalog/MDCDragons/Info.plist +++ b/catalog/MDCDragons/Info.plist @@ -15,9 +15,9 @@ CFBundlePackageType APPL CFBundleShortVersionString - 123.0.0 + 124.0.0 CFBundleVersion - 123.0.0 + 124.0.0 LSRequiresIPhoneOS UILaunchStoryboardName diff --git a/catalog/MaterialCatalog/MaterialCatalog.podspec b/catalog/MaterialCatalog/MaterialCatalog.podspec index 2eb74a76c21..0bc8213de45 100644 --- a/catalog/MaterialCatalog/MaterialCatalog.podspec +++ b/catalog/MaterialCatalog/MaterialCatalog.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "MaterialCatalog" - s.version = "123.0.0" + s.version = "124.0.0" s.summary = "Helper Objective-C classes for the MDC catalog." s.description = "This spec is made for use in the MDC Catalog." s.homepage = "https://github.com/material-components/material-components-ios" diff --git a/components/LibraryInfo/src/MDCLibraryInfo.m b/components/LibraryInfo/src/MDCLibraryInfo.m index 62efaf429a6..64a893f9e91 100644 --- a/components/LibraryInfo/src/MDCLibraryInfo.m +++ b/components/LibraryInfo/src/MDCLibraryInfo.m @@ -19,7 +19,7 @@ // This string is updated automatically as a part of the release process and should not be edited // manually. Do not rename this constant or change the formatting without updating the release // scripts. -static NSString* const kMDCLibraryInfoVersionString = @"123.0.0"; +static NSString* const kMDCLibraryInfoVersionString = @"124.0.0"; @implementation MDCLibraryInfo diff --git a/components/LibraryInfo/tests/unit/LibraryInfoTests.m b/components/LibraryInfo/tests/unit/LibraryInfoTests.m index 64cc4d44365..131660b3b7e 100644 --- a/components/LibraryInfo/tests/unit/LibraryInfoTests.m +++ b/components/LibraryInfo/tests/unit/LibraryInfoTests.m @@ -26,7 +26,7 @@ - (void)testVersionFormat { // Given // This regex pattern does the following: - // Accept: "123.0.0", etc. + // Accept: "124.0.0", etc. // Reject: "0.0.0", "1.2", "1", "-1.2.3", "Hi, I'm a version 1.2.3", "1.2.3 is my version", etc. // // Note the major version must be >= 1 since "0.0.0" is used as the version when something goes diff --git a/demos/supplemental/RemoteImageServiceForMDCDemos.podspec b/demos/supplemental/RemoteImageServiceForMDCDemos.podspec index 74bfbf1d45a..c4ddff963fb 100644 --- a/demos/supplemental/RemoteImageServiceForMDCDemos.podspec +++ b/demos/supplemental/RemoteImageServiceForMDCDemos.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RemoteImageServiceForMDCDemos" - s.version = "123.0.0" + s.version = "124.0.0" s.summary = "A helper image class for the MDC demos." s.description = "This spec is made for use in the MDC demos. It gets images via url." s.homepage = "https://github.com/material-components/material-components-ios" From 43fad8d52e9dff989926355b0dd65c78b6dc2815 Mon Sep 17 00:00:00 2001 From: Cody Weaver Date: Thu, 4 Mar 2021 12:47:35 -0800 Subject: [PATCH 7/7] Hand-modified CHANGELOG.md API diff. --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7bf845b78e6..d5778394845 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # 124.0.0 -In this release `MDCTextField` and its associated classes and protocols are deprecated. As well as cleaning up pre iOS 12 checks in the library. +In this release `MDCTextField` and its associated classes and protocols are deprecated. We also deleted the Pesto example application and cleaned up pre iOS 12 checks in the library. ## Breaking changes