diff --git a/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json b/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json new file mode 100644 index 00000000..f84499ba --- /dev/null +++ b/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Contents.json b/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Contents.json new file mode 100644 index 00000000..1571c7e5 --- /dev/null +++ b/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Contents.json @@ -0,0 +1,48 @@ +{ + "assets" : [ + { + "idiom" : "watch", + "filename" : "Circular.imageset", + "role" : "circular" + }, + { + "idiom" : "watch", + "filename" : "Extra Large.imageset", + "role" : "extra-large" + }, + { + "idiom" : "watch", + "filename" : "Graphic Bezel.imageset", + "role" : "graphic-bezel" + }, + { + "idiom" : "watch", + "filename" : "Graphic Circular.imageset", + "role" : "graphic-circular" + }, + { + "idiom" : "watch", + "filename" : "Graphic Corner.imageset", + "role" : "graphic-corner" + }, + { + "idiom" : "watch", + "filename" : "Graphic Large Rectangular.imageset", + "role" : "graphic-large-rectangular" + }, + { + "idiom" : "watch", + "filename" : "Modular.imageset", + "role" : "modular" + }, + { + "idiom" : "watch", + "filename" : "Utilitarian.imageset", + "role" : "utilitarian" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json b/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json new file mode 100644 index 00000000..f84499ba --- /dev/null +++ b/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/Contents.json b/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/Contents.json new file mode 100644 index 00000000..f84499ba --- /dev/null +++ b/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/Contents.json b/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/Contents.json new file mode 100644 index 00000000..f84499ba --- /dev/null +++ b/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/Contents.json b/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/Contents.json new file mode 100644 index 00000000..f84499ba --- /dev/null +++ b/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/Contents.json b/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/Contents.json new file mode 100644 index 00000000..f84499ba --- /dev/null +++ b/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json b/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json new file mode 100644 index 00000000..f84499ba --- /dev/null +++ b/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json b/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json new file mode 100644 index 00000000..f84499ba --- /dev/null +++ b/Eatery Watch App Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Eatery Watch App Extension/Assets.xcassets/Contents.json b/Eatery Watch App Extension/Assets.xcassets/Contents.json new file mode 100644 index 00000000..da4a164c --- /dev/null +++ b/Eatery Watch App Extension/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Eatery.xcodeproj/project.pbxproj b/Eatery.xcodeproj/project.pbxproj index b0f83e72..85a6295b 100644 --- a/Eatery.xcodeproj/project.pbxproj +++ b/Eatery.xcodeproj/project.pbxproj @@ -9,10 +9,8 @@ /* Begin PBXBuildFile section */ 1D07D27B1C86F9D400FABB7B /* UIScreen+Device.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D07D27A1C86F9D400FABB7B /* UIScreen+Device.swift */; }; 1D0A94441CC84280000B3974 /* UIViewController+Animation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D0A94431CC84280000B3974 /* UIViewController+Animation.swift */; }; - 2D773452E4D2AED31E061F62 /* Pods_Eatery_Watch_App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6AA6BF5F350CF47DF3D03031 /* Pods_Eatery_Watch_App.framework */; }; 44E4E8F41CD54E3500422867 /* NavigationTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44E4E8F21CD54E3500422867 /* NavigationTitleView.swift */; }; 44E4E8F51CD54E3500422867 /* NavigationTitleView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 44E4E8F31CD54E3500422867 /* NavigationTitleView.xib */; }; - 5C916CE33BFA2E80DB6E746F /* Pods_Eatery_Watch_App_Extension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 60166AD81C871497050C1B5B /* Pods_Eatery_Watch_App_Extension.framework */; }; 5DA9483021811A3200DD76B6 /* MealItemTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DA9482E21811A3200DD76B6 /* MealItemTableViewCell.swift */; }; 5DDD93A4C245320F6F3ECDE6 /* Pods_Eatery.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 19538C3B4917B0F73E5B6D62 /* Pods_Eatery.framework */; }; 60FF4E1C1CBEE03E0051FD01 /* MapViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60FF4E1B1CBEE03E0051FD01 /* MapViewController.swift */; }; @@ -22,6 +20,7 @@ 654E37411DEEA738000E4FAB /* Sort.swift in Sources */ = {isa = PBXBuildFile; fileRef = 654E37401DEEA738000E4FAB /* Sort.swift */; }; 65C36A722037D058005D8831 /* ARViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65C36A712037D058005D8831 /* ARViewController.swift */; }; 65E93179206C186B00547D14 /* Keys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65E93178206C186B00547D14 /* Keys.swift */; }; + 892A06E061931FC9506733A0 /* Pods_Eatery_Watch_App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A149DD6FAC488D584A8CB7E /* Pods_Eatery_Watch_App.framework */; }; 95495D2E1C0AA0790015B85E /* MenuImages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95495D2D1C0AA0790015B85E /* MenuImages.swift */; }; 9584FE471CDD6BDF001A3AB5 /* DINLight.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9584FE461CDD6BDF001A3AB5 /* DINLight.ttf */; }; 9584FE4E1CDD6C3B001A3AB5 /* BRBViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9584FE491CDD6C3B001A3AB5 /* BRBViewController.swift */; }; @@ -29,6 +28,7 @@ 9584FE511CDD6C3B001A3AB5 /* BRBLoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9584FE4C1CDD6C3B001A3AB5 /* BRBLoginView.swift */; }; 9584FE521CDD6C3B001A3AB5 /* KeychainItemWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9584FE4D1CDD6C3B001A3AB5 /* KeychainItemWrapper.swift */; }; 95F661FA1E2E9F3D00591A54 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 95F661F91E2E9F3D00591A54 /* LaunchScreen.storyboard */; }; + A7EBF8F274D563F7CE96F82D /* Pods_Eatery_Watch_App_Extension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E776653956F9723D00D92DD /* Pods_Eatery_Watch_App_Extension.framework */; }; C0497B0B1B64AA1800AC1C6C /* MealStationTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0497AE71B64AA1800AC1C6C /* MealStationTableViewCell.swift */; }; C0497B0C1B64AA1800AC1C6C /* MealStationTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C0497AE81B64AA1800AC1C6C /* MealStationTableViewCell.xib */; }; C0497B131B64AA1800AC1C6C /* UIColor+ColorScheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0497AF11B64AA1800AC1C6C /* UIColor+ColorScheme.swift */; }; @@ -135,6 +135,7 @@ /* Begin PBXFileReference section */ 019B364D52B66BC8F8B6C25F /* Pods-Eatery Watch App.app store.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Eatery Watch App.app store.xcconfig"; path = "Pods/Target Support Files/Pods-Eatery Watch App/Pods-Eatery Watch App.app store.xcconfig"; sourceTree = ""; }; 063BB995A36FB9F04B5D1D5F /* Pods-Eatery Watch App.external beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Eatery Watch App.external beta.xcconfig"; path = "Pods/Target Support Files/Pods-Eatery Watch App/Pods-Eatery Watch App.external beta.xcconfig"; sourceTree = ""; }; + 0A149DD6FAC488D584A8CB7E /* Pods_Eatery_Watch_App.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Eatery_Watch_App.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 19538C3B4917B0F73E5B6D62 /* Pods_Eatery.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Eatery.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 1D07D27A1C86F9D400FABB7B /* UIScreen+Device.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIScreen+Device.swift"; sourceTree = ""; }; 1D0A94431CC84280000B3974 /* UIViewController+Animation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIViewController+Animation.swift"; sourceTree = ""; }; @@ -145,7 +146,6 @@ 44E4E8F31CD54E3500422867 /* NavigationTitleView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NavigationTitleView.xib; sourceTree = ""; }; 561CC64F0A1AF41712E60CD0 /* Pods-Eatery.external beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Eatery.external beta.xcconfig"; path = "Pods/Target Support Files/Pods-Eatery/Pods-Eatery.external beta.xcconfig"; sourceTree = ""; }; 5DA9482E21811A3200DD76B6 /* MealItemTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MealItemTableViewCell.swift; sourceTree = ""; }; - 60166AD81C871497050C1B5B /* Pods_Eatery_Watch_App_Extension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Eatery_Watch_App_Extension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 60FF4E1B1CBEE03E0051FD01 /* MapViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MapViewController.swift; sourceTree = ""; }; 6502AF861DCFB9ED00390EAA /* FilterBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = FilterBar.swift; path = ../Controllers/FilterBar.swift; sourceTree = ""; }; 652AE53A1C707EBC00B7245A /* EateriesInterfaceController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EateriesInterfaceController.swift; sourceTree = ""; }; @@ -164,8 +164,8 @@ 659B21851C70796600F3B138 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 65C36A712037D058005D8831 /* ARViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ARViewController.swift; sourceTree = ""; }; 65E93178206C186B00547D14 /* Keys.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Keys.swift; sourceTree = ""; }; - 6AA6BF5F350CF47DF3D03031 /* Pods_Eatery_Watch_App.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Eatery_Watch_App.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 7B7FDD4784AB7A79D5069FFC /* Pods-Eatery Watch App Extension.internal beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Eatery Watch App Extension.internal beta.xcconfig"; path = "Pods/Target Support Files/Pods-Eatery Watch App Extension/Pods-Eatery Watch App Extension.internal beta.xcconfig"; sourceTree = ""; }; + 7E776653956F9723D00D92DD /* Pods_Eatery_Watch_App_Extension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Eatery_Watch_App_Extension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 94AE18508AA0B5D148EEA361 /* Pods-Eatery.internal beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Eatery.internal beta.xcconfig"; path = "Pods/Target Support Files/Pods-Eatery/Pods-Eatery.internal beta.xcconfig"; sourceTree = ""; }; 95495D2D1C0AA0790015B85E /* MenuImages.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MenuImages.swift; sourceTree = ""; }; 9584FE461CDD6BDF001A3AB5 /* DINLight.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = DINLight.ttf; sourceTree = ""; }; @@ -177,7 +177,7 @@ 95F661F91E2E9F3D00591A54 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; 977293368558D040AFA7B199 /* Pods-Eatery Watch App.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Eatery Watch App.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Eatery Watch App/Pods-Eatery Watch App.debug.xcconfig"; sourceTree = ""; }; 9BE935BDA323618D9A779B07 /* Pods-Eatery Watch App Extension.external beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Eatery Watch App Extension.external beta.xcconfig"; path = "Pods/Target Support Files/Pods-Eatery Watch App Extension/Pods-Eatery Watch App Extension.external beta.xcconfig"; sourceTree = ""; }; - BA0F42CF72757B43C3DF64BE /* Pods-Eatery.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Eatery.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Eatery/Pods-Eatery.debug.xcconfig"; sourceTree = ""; }; + BA0F42CF72757B43C3DF64BE /* Pods-Eatery.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Eatery.debug.xcconfig"; sourceTree = ""; }; C007CABF19E1BEAC00E3BD46 /* Eatery.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Eatery.app; sourceTree = BUILT_PRODUCTS_DIR; }; C0497AE71B64AA1800AC1C6C /* MealStationTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MealStationTableViewCell.swift; sourceTree = ""; }; C0497AE81B64AA1800AC1C6C /* MealStationTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MealStationTableViewCell.xib; sourceTree = ""; }; @@ -215,8 +215,6 @@ D971431C219A7F3D00E2EE05 /* TimeFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeFactory.swift; sourceTree = ""; }; D971431E219A7FE100E2EE05 /* Eatery+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Eatery+Extension.swift"; sourceTree = ""; }; DFAF014CFABFD9D8E6AC7021 /* Pods-Eatery Watch App Extension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Eatery Watch App Extension.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Eatery Watch App Extension/Pods-Eatery Watch App Extension.debug.xcconfig"; sourceTree = ""; }; - E0C3D466EB4300A3FE69189D /* Pods-Today Extension.app store.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Today Extension.app store.xcconfig"; path = "Pods/Target Support Files/Pods-Today Extension/Pods-Today Extension.app store.xcconfig"; sourceTree = ""; }; - E0FBC7365BFDDFC4EA5118D6 /* Pods-Today Extension.external beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Today Extension.external beta.xcconfig"; path = "Pods/Target Support Files/Pods-Today Extension/Pods-Today Extension.external beta.xcconfig"; sourceTree = ""; }; E418A28B1A4C3F8781B50F84 /* Pods-Eatery Watch App Extension.app store.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Eatery Watch App Extension.app store.xcconfig"; path = "Pods/Target Support Files/Pods-Eatery Watch App Extension/Pods-Eatery Watch App Extension.app store.xcconfig"; sourceTree = ""; }; E93CD4161BE67AC400089CE5 /* MenuViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MenuViewController.swift; sourceTree = ""; }; E93CD4181BE67C2300089CE5 /* TabbedPageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabbedPageViewController.swift; sourceTree = ""; }; @@ -234,8 +232,6 @@ E9EC97961BFD31BC00D06823 /* MenuHeaderView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MenuHeaderView.xib; sourceTree = ""; }; F06C7C101DDD032A000445E5 /* BRBAccountSettingsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BRBAccountSettingsViewController.swift; sourceTree = ""; }; F0EFD2451DDBBF9D007D63B1 /* BRBTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BRBTableViewCell.swift; sourceTree = ""; }; - F173EAFB0FD786428A00D8B7 /* Pods-Today Extension.internal beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Today Extension.internal beta.xcconfig"; path = "Pods/Target Support Files/Pods-Today Extension/Pods-Today Extension.internal beta.xcconfig"; sourceTree = ""; }; - F2F973D99BBC8F4DE6724792 /* Pods-Today Extension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Today Extension.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Today Extension/Pods-Today Extension.debug.xcconfig"; sourceTree = ""; }; FAA912BD1BE6A035003475A8 /* Eatery+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Eatery+Extensions.swift"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -244,7 +240,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2D773452E4D2AED31E061F62 /* Pods_Eatery_Watch_App.framework in Frameworks */, + 892A06E061931FC9506733A0 /* Pods_Eatery_Watch_App.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -261,7 +257,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 5C916CE33BFA2E80DB6E746F /* Pods_Eatery_Watch_App_Extension.framework in Frameworks */, + A7EBF8F274D563F7CE96F82D /* Pods_Eatery_Watch_App_Extension.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -292,8 +288,8 @@ children = ( 9584FE541CDD7A26001A3AB5 /* Security.framework */, 19538C3B4917B0F73E5B6D62 /* Pods_Eatery.framework */, - 6AA6BF5F350CF47DF3D03031 /* Pods_Eatery_Watch_App.framework */, - 60166AD81C871497050C1B5B /* Pods_Eatery_Watch_App_Extension.framework */, + 0A149DD6FAC488D584A8CB7E /* Pods_Eatery_Watch_App.framework */, + 7E776653956F9723D00D92DD /* Pods_Eatery_Watch_App_Extension.framework */, ); name = Frameworks; sourceTree = ""; @@ -547,10 +543,6 @@ 9BE935BDA323618D9A779B07 /* Pods-Eatery Watch App Extension.external beta.xcconfig */, 7B7FDD4784AB7A79D5069FFC /* Pods-Eatery Watch App Extension.internal beta.xcconfig */, E418A28B1A4C3F8781B50F84 /* Pods-Eatery Watch App Extension.app store.xcconfig */, - F2F973D99BBC8F4DE6724792 /* Pods-Today Extension.debug.xcconfig */, - E0FBC7365BFDDFC4EA5118D6 /* Pods-Today Extension.external beta.xcconfig */, - F173EAFB0FD786428A00D8B7 /* Pods-Today Extension.internal beta.xcconfig */, - E0C3D466EB4300A3FE69189D /* Pods-Today Extension.app store.xcconfig */, ); name = Pods; sourceTree = ""; @@ -563,7 +555,7 @@ buildConfigurationList = C007CADE19E1BEAC00E3BD46 /* Build configuration list for PBXNativeTarget "Eatery" */; buildPhases = ( E78631FC014922E867F30913 /* [CP] Check Pods Manifest.lock */, - 5D854A8521AF85A00067F745 /* ShellScript */, + 5D854A8521AF85A00067F745 /* [Apollo] Build Apollo */, C007CABB19E1BEAC00E3BD46 /* Sources */, C007CABC19E1BEAC00E3BD46 /* Frameworks */, C007CABD19E1BEAC00E3BD46 /* Resources */, @@ -669,7 +661,6 @@ knownRegions = ( en, Base, - he, ); mainGroup = C007CAB619E1BEAC00E3BD46; productRefGroup = C007CAC019E1BEAC00E3BD46 /* Products */; @@ -760,17 +751,14 @@ shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Eatery/Pods-Eatery-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 5D854A8521AF85A00067F745 /* ShellScript */ = { + 5D854A8521AF85A00067F745 /* [Apollo] Build Apollo */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - ); inputPaths = ( ); - outputFileListPaths = ( - ); + name = "[Apollo] Build Apollo"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -782,15 +770,11 @@ buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - ); inputPaths = ( "${PODS_PODFILE_DIR_PATH}/Podfile.lock", "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); outputPaths = ( "$(DERIVED_FILE_DIR)/Pods-Eatery Watch App-checkManifestLockResult.txt", ); @@ -804,8 +788,6 @@ buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - ); inputPaths = ( "${SRCROOT}/Pods/Target Support Files/Pods-Eatery Watch App Extension/Pods-Eatery Watch App Extension-frameworks.sh", "${BUILT_PRODUCTS_DIR}/SwiftyJSON-watchOS/SwiftyJSON.framework", @@ -813,8 +795,6 @@ "${BUILT_PRODUCTS_DIR}/DiningStack/DiningStack.framework", ); name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - ); outputPaths = ( "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework", @@ -830,15 +810,11 @@ buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - ); inputPaths = ( "${PODS_PODFILE_DIR_PATH}/Podfile.lock", "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); outputPaths = ( "$(DERIVED_FILE_DIR)/Pods-Eatery Watch App Extension-checkManifestLockResult.txt", ); @@ -1026,6 +1002,7 @@ CODE_SIGN_ENTITLEMENTS = Eatery/Eatery.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 17; DEVELOPMENT_TEAM = ZGMCXU7X3U; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; @@ -1100,6 +1077,7 @@ CODE_SIGN_ENTITLEMENTS = Eatery/Eatery.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 17; DEVELOPMENT_TEAM = ZGMCXU7X3U; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; @@ -1173,6 +1151,7 @@ CODE_SIGN_ENTITLEMENTS = Eatery/Eatery.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 17; DEVELOPMENT_TEAM = ZGMCXU7X3U; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; @@ -1246,6 +1225,7 @@ CODE_SIGN_ENTITLEMENTS = Eatery/Eatery.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 17; DEVELOPMENT_TEAM = ZGMCXU7X3U; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; diff --git a/Eatery/Controllers/MealTableViewController.swift b/Eatery/Controllers/MealTableViewController.swift index 3e1246e3..3501c36c 100644 --- a/Eatery/Controllers/MealTableViewController.swift +++ b/Eatery/Controllers/MealTableViewController.swift @@ -104,9 +104,9 @@ class MealTableViewController: UITableViewController { return 1 } - if menu.count == 1, eatery.eateryType != .Dining, let first = menu.first { + if menu.count == 1, eatery.eateryType != .Dining, let item = menu.first { // display menu items (of the only "dining station") as a table - return menu.first?.value.count ?? 0 + return item.value.count } else { // display the menu items return menu.count @@ -118,7 +118,7 @@ class MealTableViewController: UITableViewController { return emptyMenuCell(in: tableView, forRowAt: indexPath) } - if menu.count == 1 && eatery.eateryType != .Dining { + if menu.count == 1, eatery.eateryType != .Dining { return menuItemCell(in: tableView, forRowAt: indexPath) } else { return diningStationsCell(in: tableView, forRowAt: indexPath) diff --git a/Eatery/Models/Eatery.swift b/Eatery/Models/Eatery.swift index 795d8a8e..175b809d 100644 --- a/Eatery/Models/Eatery.swift +++ b/Eatery/Models/Eatery.swift @@ -88,26 +88,32 @@ public enum Area: String { case Central = "Central" } -private func makeFormatter () -> DateFormatter { - let formatter = DateFormatter() - formatter.dateFormat = "YYYY-MM-dd" - return formatter -} - /// Represents a Cornell Dining Facility and information about it /// such as open times, menus, location, etc. public struct Eatery: Hashable { + public typealias MenuCategory = String + + public typealias Menu = [MenuCategory: [MenuItem]] + + /// A string of the form YYYY-MM-dd + public typealias DateString = String + + public typealias EventName = String + public static func == (lhs: Eatery, rhs: Eatery) -> Bool { return lhs.id == rhs.id } - private static let dateFormatter = makeFormatter() + private static let dateFormatter: DateFormatter = { + let formatter = DateFormatter() + formatter.dateFormat = "YYYY-MM-dd" + return formatter + }() public var hashValue: Int { return id } - /// Unique Identifier public let id: Int @@ -141,11 +147,11 @@ public struct Eatery: Hashable { /// A menu of constant dining items. Exists if this eatery's menu /// never changes. This should be used if it exists. - public var diningItems: [String: [MenuItem]]? + public var diningItems: Menu? /// A constant hardcoded menu if this Eatery has one. /// This should be used if it exists yet diningItems does not. - public let hardcodedMenu: [String: [MenuItem]]? + public let hardcodedMenu: Menu? /// GPS Location public let location: CLLocation @@ -157,12 +163,11 @@ public struct Eatery: Hashable { /// Maps the date the event occurs to a list of the event name /// to the event itself e.g.: /// [ "2015-03-01": ["Lunch": Event]] - public let events: [String: [String: Event]] + public let events: [DateString: [EventName: Event]] /// ="This is an external eatery, i.e. a completely hardcoded eatery" public let external: Bool - // Gives a string full of all the menus for this eatery today // this is used for searching. private var _todaysEventsString: String? = nil @@ -181,7 +186,6 @@ public struct Eatery: Hashable { } } - init(id: Int, name: String, nameShort: String, slug: String, eateryType: EateryType, about: String, phone: String, area: Area, address: String, paymentMethods: [PaymentType], diningItems: [String : [MenuItem]]?, events: [String: [String: Event]], hardcodedMenu: [String : [MenuItem]]?, location: CLLocation, external: Bool) { self.id = id self.name = name @@ -224,7 +228,6 @@ public struct Eatery: Hashable { return false } - // /** Tells if eatery is open within the calendar date given. This is distinct from `isOpenOnDate` in that it does not check a specific time, just the day, month, and year. @@ -310,18 +313,18 @@ public struct Eatery: Hashable { and the food items available for the category as a string list. Used to easily iterate over all items in the hardcoded menu. Ex: [("Entrees",["Chicken", "Steak", "Fish"]), ("Fruit", ["Apples"])] */ - private func getMenuIterable(_ menuList: [String: [MenuItem]]?) -> [(String,[String])] { - guard let menu = menuList else { return [] } + private func getMenuIterable(_ menu: Menu?) -> [(String,[String])] { + guard let menu = menu else { return [] } return menu.map({ (name, items) -> (String, [String]) in (name, items.map({ ($0.name) })) }) } - public func getHardcodeMenuIterable() -> [(String,[String])] { + public func getHardcodeMenuIterable() -> [(String, [String])] { return getMenuIterable(hardcodedMenu) } - public func getDiningItemMenuIterable() -> [(String,[String])] { + public func getDiningItemMenuIterable() -> [(String, [String])] { return getMenuIterable(diningItems) } diff --git a/Eatery/Network/NetworkManager.swift b/Eatery/Network/NetworkManager.swift index d1d9f2d7..9f9e7a49 100644 --- a/Eatery/Network/NetworkManager.swift +++ b/Eatery/Network/NetworkManager.swift @@ -64,10 +64,9 @@ struct NetworkManager { let timeDateFormatter = DateFormatter() timeDateFormatter.dateFormat = "YYYY-MM-dd:h:mma" - timeDateFormatter.locale = Locale(identifier: "en_US_POSIX") + timeDateFormatter.locale = Locale(identifier: "en_US_POSIX") // force the date formatter to use 12-hour time eatery.operatingHours.compactMap { $0 }.forEach { operatingHour in let dateString = operatingHour.date - let date = dateFormatter.date(from: dateString) ?? Date() let events = operatingHour.events.compactMap { $0 } var allMenuItems: [MenuItem] = [] diff --git a/Pods-Eatery.debug.xcconfig b/Pods-Eatery.debug.xcconfig new file mode 100644 index 00000000..ec5e039b --- /dev/null +++ b/Pods-Eatery.debug.xcconfig @@ -0,0 +1,11 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ARCL" "${PODS_CONFIGURATION_BUILD_DIR}/Apollo" "${PODS_CONFIGURATION_BUILD_DIR}/FLEX" "${PODS_CONFIGURATION_BUILD_DIR}/Hero" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/NVActivityIndicatorView" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON-iOS" "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/ARCL/ARCL.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Apollo/Apollo.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/FLEX/FLEX.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Hero/Hero.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/NVActivityIndicatorView/NVActivityIndicatorView.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON-iOS/SwiftyJSON.framework/Headers" +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"z" -framework "ARCL" -framework "Apollo" -framework "Crashlytics" -framework "FLEX" -framework "Fabric" -framework "Hero" -framework "Kingfisher" -framework "NVActivityIndicatorView" -framework "Security" -framework "SnapKit" -framework "SwiftyJSON" -framework "SystemConfiguration" -framework "UIKit" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods