diff --git a/FlinkChallenge/FlinkChallenge.xcodeproj/project.pbxproj b/FlinkChallenge/FlinkChallenge.xcodeproj/project.pbxproj index e53c59e..2d94bb5 100644 --- a/FlinkChallenge/FlinkChallenge.xcodeproj/project.pbxproj +++ b/FlinkChallenge/FlinkChallenge.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 50; + objectVersion = 51; objects = { /* Begin PBXBuildFile section */ @@ -15,6 +15,18 @@ BD6A5E4A23FC7FF9003B1E4D /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BD6A5E4923FC7FF9003B1E4D /* Preview Assets.xcassets */; }; BD6A5E4D23FC7FF9003B1E4D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BD6A5E4B23FC7FF9003B1E4D /* LaunchScreen.storyboard */; }; BD6A5E5823FC7FF9003B1E4D /* FlinkChallengeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD6A5E5723FC7FF9003B1E4D /* FlinkChallengeTests.swift */; }; + BD6A5E6423FC823D003B1E4D /* APICharacter.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD6A5E6323FC823D003B1E4D /* APICharacter.swift */; }; + BD6A5E6623FC855D003B1E4D /* CharacterFeedController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD6A5E6523FC855D003B1E4D /* CharacterFeedController.swift */; }; + BD6A5E6923FC8F02003B1E4D /* CharacterFeedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD6A5E6823FC8F01003B1E4D /* CharacterFeedView.swift */; }; + BD6A5E6C23FC9ADF003B1E4D /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD6A5E6B23FC9ADF003B1E4D /* CardView.swift */; }; + BD6A5E6E23FCBC01003B1E4D /* CharacterDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD6A5E6D23FCBC01003B1E4D /* CharacterDetailView.swift */; }; + BD6A5E7123FCEB6C003B1E4D /* EpisodeController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD6A5E7023FCEB6C003B1E4D /* EpisodeController.swift */; }; + BD6A5E7323FCEBA0003B1E4D /* Episode.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD6A5E7223FCEBA0003B1E4D /* Episode.swift */; }; + BD6A5E7723FD003A003B1E4D /* SearchBarUIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD6A5E7623FD003A003B1E4D /* SearchBarUIView.swift */; }; + BD810CEF23FDB95F00D7853A /* AdvancedFilterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD810CEE23FDB95F00D7853A /* AdvancedFilterView.swift */; }; + BD810D3723FDD82B00D7853A /* CharacterFilteringController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD810D3623FDD82B00D7853A /* CharacterFilteringController.swift */; }; + BD810D3923FDDC4200D7853A /* CharacterFilterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD810D3823FDDC4200D7853A /* CharacterFilterView.swift */; }; + BD810D3C23FDFDFE00D7853A /* Color+UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD810D3B23FDFDFE00D7853A /* Color+UIColor.swift */; }; EB91B40C69510498EB2574BC /* Pods_FlinkChallengeTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DFA73F2EF25F32DFDB17F885 /* Pods_FlinkChallengeTests.framework */; }; /* End PBXBuildFile section */ @@ -45,6 +57,18 @@ BD6A5E5323FC7FF9003B1E4D /* FlinkChallengeTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FlinkChallengeTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; BD6A5E5723FC7FF9003B1E4D /* FlinkChallengeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FlinkChallengeTests.swift; sourceTree = ""; }; BD6A5E5923FC7FF9003B1E4D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + BD6A5E6323FC823D003B1E4D /* APICharacter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APICharacter.swift; sourceTree = ""; }; + BD6A5E6523FC855D003B1E4D /* CharacterFeedController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CharacterFeedController.swift; sourceTree = ""; }; + BD6A5E6823FC8F01003B1E4D /* CharacterFeedView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CharacterFeedView.swift; sourceTree = ""; }; + BD6A5E6B23FC9ADF003B1E4D /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; + BD6A5E6D23FCBC01003B1E4D /* CharacterDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CharacterDetailView.swift; sourceTree = ""; }; + BD6A5E7023FCEB6C003B1E4D /* EpisodeController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EpisodeController.swift; sourceTree = ""; }; + BD6A5E7223FCEBA0003B1E4D /* Episode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Episode.swift; sourceTree = ""; }; + BD6A5E7623FD003A003B1E4D /* SearchBarUIView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBarUIView.swift; sourceTree = ""; }; + BD810CEE23FDB95F00D7853A /* AdvancedFilterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdvancedFilterView.swift; sourceTree = ""; }; + BD810D3623FDD82B00D7853A /* CharacterFilteringController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CharacterFilteringController.swift; sourceTree = ""; }; + BD810D3823FDDC4200D7853A /* CharacterFilterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CharacterFilterView.swift; sourceTree = ""; }; + BD810D3B23FDFDFE00D7853A /* Color+UIColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+UIColor.swift"; sourceTree = ""; }; DFA73F2EF25F32DFDB17F885 /* Pods_FlinkChallengeTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_FlinkChallengeTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -76,7 +100,6 @@ 7372D724071D9791B8207220 /* Pods-FlinkChallengeTests.debug.xcconfig */, 8C8AEE81F909A839ED76E0B9 /* Pods-FlinkChallengeTests.release.xcconfig */, ); - name = Pods; path = Pods; sourceTree = ""; }; @@ -103,9 +126,12 @@ BD6A5E3F23FC7FF7003B1E4D /* FlinkChallenge */ = { isa = PBXGroup; children = ( + BD810D3A23FDFDE000D7853A /* Extensions */, + BD6A5E6F23FCEB3A003B1E4D /* Controller */, + BD6A5E6723FC8EEC003B1E4D /* Views */, + BD6A5E6223FC81E2003B1E4D /* Model */, BD6A5E4023FC7FF7003B1E4D /* AppDelegate.swift */, BD6A5E4223FC7FF7003B1E4D /* SceneDelegate.swift */, - BD6A5E4423FC7FF7003B1E4D /* ContentView.swift */, BD6A5E4623FC7FF9003B1E4D /* Assets.xcassets */, BD6A5E4B23FC7FF9003B1E4D /* LaunchScreen.storyboard */, BD6A5E4E23FC7FF9003B1E4D /* Info.plist */, @@ -131,6 +157,47 @@ path = FlinkChallengeTests; sourceTree = ""; }; + BD6A5E6223FC81E2003B1E4D /* Model */ = { + isa = PBXGroup; + children = ( + BD6A5E6323FC823D003B1E4D /* APICharacter.swift */, + BD6A5E7223FCEBA0003B1E4D /* Episode.swift */, + ); + path = Model; + sourceTree = ""; + }; + BD6A5E6723FC8EEC003B1E4D /* Views */ = { + isa = PBXGroup; + children = ( + BD6A5E4423FC7FF7003B1E4D /* ContentView.swift */, + BD6A5E6823FC8F01003B1E4D /* CharacterFeedView.swift */, + BD6A5E6B23FC9ADF003B1E4D /* CardView.swift */, + BD6A5E6D23FCBC01003B1E4D /* CharacterDetailView.swift */, + BD6A5E7623FD003A003B1E4D /* SearchBarUIView.swift */, + BD810CEE23FDB95F00D7853A /* AdvancedFilterView.swift */, + BD810D3823FDDC4200D7853A /* CharacterFilterView.swift */, + ); + path = Views; + sourceTree = ""; + }; + BD6A5E6F23FCEB3A003B1E4D /* Controller */ = { + isa = PBXGroup; + children = ( + BD6A5E6523FC855D003B1E4D /* CharacterFeedController.swift */, + BD6A5E7023FCEB6C003B1E4D /* EpisodeController.swift */, + BD810D3623FDD82B00D7853A /* CharacterFilteringController.swift */, + ); + path = Controller; + sourceTree = ""; + }; + BD810D3A23FDFDE000D7853A /* Extensions */ = { + isa = PBXGroup; + children = ( + BD810D3B23FDFDFE00D7853A /* Color+UIColor.swift */, + ); + path = Extensions; + sourceTree = ""; + }; DC42C48C82B2AC45F8F56004 /* Frameworks */ = { isa = PBXGroup; children = ( @@ -308,9 +375,21 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + BD6A5E6E23FCBC01003B1E4D /* CharacterDetailView.swift in Sources */, + BD810CEF23FDB95F00D7853A /* AdvancedFilterView.swift in Sources */, + BD810D3723FDD82B00D7853A /* CharacterFilteringController.swift in Sources */, + BD6A5E6C23FC9ADF003B1E4D /* CardView.swift in Sources */, + BD6A5E6923FC8F02003B1E4D /* CharacterFeedView.swift in Sources */, + BD6A5E7323FCEBA0003B1E4D /* Episode.swift in Sources */, + BD6A5E7723FD003A003B1E4D /* SearchBarUIView.swift in Sources */, + BD6A5E7123FCEB6C003B1E4D /* EpisodeController.swift in Sources */, + BD810D3C23FDFDFE00D7853A /* Color+UIColor.swift in Sources */, BD6A5E4123FC7FF7003B1E4D /* AppDelegate.swift in Sources */, BD6A5E4323FC7FF7003B1E4D /* SceneDelegate.swift in Sources */, + BD6A5E6423FC823D003B1E4D /* APICharacter.swift in Sources */, BD6A5E4523FC7FF7003B1E4D /* ContentView.swift in Sources */, + BD810D3923FDDC4200D7853A /* CharacterFilterView.swift in Sources */, + BD6A5E6623FC855D003B1E4D /* CharacterFeedController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/FlinkChallenge/FlinkChallenge.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/FlinkChallenge/FlinkChallenge.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/FlinkChallenge/FlinkChallenge.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/Contents.json b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/Contents.json index 9221b9b..3c72470 100644 --- a/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,51 +1,67 @@ { "images" : [ { + "filename" : "icon_20pt@2x.png", "idiom" : "iphone", "scale" : "2x", "size" : "20x20" }, { + "filename" : "icon_20pt@3x.png", "idiom" : "iphone", "scale" : "3x", "size" : "20x20" }, { + "filename" : "icon_29pt.png", + "idiom" : "iphone", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "icon_29pt@2x.png", "idiom" : "iphone", "scale" : "2x", "size" : "29x29" }, { + "filename" : "icon_29pt@3x.png", "idiom" : "iphone", "scale" : "3x", "size" : "29x29" }, { + "filename" : "icon_40pt@2x.png", "idiom" : "iphone", "scale" : "2x", "size" : "40x40" }, { + "filename" : "icon_40pt@3x.png", "idiom" : "iphone", "scale" : "3x", "size" : "40x40" }, { + "filename" : "icon_60pt@2x.png", "idiom" : "iphone", "scale" : "2x", "size" : "60x60" }, { + "filename" : "icon_60pt@3x.png", "idiom" : "iphone", "scale" : "3x", "size" : "60x60" }, { + "filename" : "icon_20pt.png", "idiom" : "ipad", "scale" : "1x", "size" : "20x20" }, { + "filename" : "icon_40pt.png", "idiom" : "ipad", "scale" : "2x", "size" : "20x20" @@ -71,21 +87,25 @@ "size" : "40x40" }, { + "filename" : "icon_76pt.png", "idiom" : "ipad", "scale" : "1x", "size" : "76x76" }, { + "filename" : "icon_76pt@2x.png", "idiom" : "ipad", "scale" : "2x", "size" : "76x76" }, { + "filename" : "icon_83.5@2x.png", "idiom" : "ipad", "scale" : "2x", "size" : "83.5x83.5" }, { + "filename" : "Icon.png", "idiom" : "ios-marketing", "scale" : "1x", "size" : "1024x1024" diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/Icon.png b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/Icon.png new file mode 100644 index 0000000..598d6ab Binary files /dev/null and b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/Icon.png differ diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_20pt.png b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_20pt.png new file mode 100644 index 0000000..ab0b45b Binary files /dev/null and b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_20pt.png differ diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_20pt@2x.png b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_20pt@2x.png new file mode 100644 index 0000000..e7e3e1e Binary files /dev/null and b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_20pt@2x.png differ diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_20pt@3x.png b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_20pt@3x.png new file mode 100644 index 0000000..be510b6 Binary files /dev/null and b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_20pt@3x.png differ diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_29pt.png b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_29pt.png new file mode 100644 index 0000000..311b685 Binary files /dev/null and b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_29pt.png differ diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_29pt@2x.png b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_29pt@2x.png new file mode 100644 index 0000000..8e38540 Binary files /dev/null and b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_29pt@2x.png differ diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_29pt@3x.png b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_29pt@3x.png new file mode 100644 index 0000000..36c4e1e Binary files /dev/null and b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_29pt@3x.png differ diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_40pt.png b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_40pt.png new file mode 100644 index 0000000..e7e3e1e Binary files /dev/null and b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_40pt.png differ diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_40pt@2x.png b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_40pt@2x.png new file mode 100644 index 0000000..13c5772 Binary files /dev/null and b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_40pt@2x.png differ diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_40pt@3x.png b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_40pt@3x.png new file mode 100644 index 0000000..9779eca Binary files /dev/null and b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_40pt@3x.png differ diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_60pt@2x.png b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_60pt@2x.png new file mode 100644 index 0000000..9779eca Binary files /dev/null and b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_60pt@2x.png differ diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_60pt@3x.png b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_60pt@3x.png new file mode 100644 index 0000000..1066434 Binary files /dev/null and b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_60pt@3x.png differ diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_76pt.png b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_76pt.png new file mode 100644 index 0000000..affb84b Binary files /dev/null and b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_76pt.png differ diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_76pt@2x.png b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_76pt@2x.png new file mode 100644 index 0000000..5cc3b2a Binary files /dev/null and b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_76pt@2x.png differ diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_83.5@2x.png b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_83.5@2x.png new file mode 100644 index 0000000..b221d4f Binary files /dev/null and b/FlinkChallenge/FlinkChallenge/Assets.xcassets/AppIcon.appiconset/icon_83.5@2x.png differ diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/background.imageset/Contents.json b/FlinkChallenge/FlinkChallenge/Assets.xcassets/background.imageset/Contents.json new file mode 100644 index 0000000..39bd641 --- /dev/null +++ b/FlinkChallenge/FlinkChallenge/Assets.xcassets/background.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "wallpaperflare.com_wallpaper.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/background.imageset/wallpaperflare.com_wallpaper.jpg b/FlinkChallenge/FlinkChallenge/Assets.xcassets/background.imageset/wallpaperflare.com_wallpaper.jpg new file mode 100644 index 0000000..0ae994c Binary files /dev/null and b/FlinkChallenge/FlinkChallenge/Assets.xcassets/background.imageset/wallpaperflare.com_wallpaper.jpg differ diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/image.imageset/Contents.json b/FlinkChallenge/FlinkChallenge/Assets.xcassets/image.imageset/Contents.json new file mode 100644 index 0000000..41e025d --- /dev/null +++ b/FlinkChallenge/FlinkChallenge/Assets.xcassets/image.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "image.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/FlinkChallenge/FlinkChallenge/Assets.xcassets/image.imageset/image.jpg b/FlinkChallenge/FlinkChallenge/Assets.xcassets/image.imageset/image.jpg new file mode 100644 index 0000000..290ca26 Binary files /dev/null and b/FlinkChallenge/FlinkChallenge/Assets.xcassets/image.imageset/image.jpg differ diff --git a/FlinkChallenge/FlinkChallenge/ContentView.swift b/FlinkChallenge/FlinkChallenge/ContentView.swift deleted file mode 100644 index 0319c40..0000000 --- a/FlinkChallenge/FlinkChallenge/ContentView.swift +++ /dev/null @@ -1,21 +0,0 @@ -// -// ContentView.swift -// FlinkChallenge -// -// Created by Fernando Martin Garcia Del Angel on 18/02/20. -// Copyright © 2020 Fernando Martin Garcia Del Angel. All rights reserved. -// - -import SwiftUI - -struct ContentView: View { - var body: some View { - Text("Here we go Flink!") - } -} - -struct ContentView_Previews: PreviewProvider { - static var previews: some View { - ContentView() - } -} diff --git a/FlinkChallenge/FlinkChallenge/Controller/CharacterFeedController.swift b/FlinkChallenge/FlinkChallenge/Controller/CharacterFeedController.swift new file mode 100644 index 0000000..a3d4eaf --- /dev/null +++ b/FlinkChallenge/FlinkChallenge/Controller/CharacterFeedController.swift @@ -0,0 +1,137 @@ +// +// FeedModels.swift +// FlinkChallenge +// +// Created by Fernando Martin Garcia Del Angel on 18/02/20. +// Copyright © 2020 Fernando Martin Garcia Del Angel. All rights reserved. +// + +import Foundation + +enum LoadStatus { + case ready (nextPage: Int) + case loading (page: Int) + case parseError + case done +} + +class CharacterFeed : ObservableObject, RandomAccessCollection { + typealias Element = APICharacter + @Published var characterListItems = [APICharacter]() + + var startIndex: Int { characterListItems.startIndex } + var endIndex: Int { characterListItems.endIndex } + var loadStatus = LoadStatus.ready(nextPage: 1) + + var baseURL = "https://rickandmortyapi.com/api/character/?page=" + + init(){ + loadMoreCharacters() + } + + subscript(position: Int) -> APICharacter { + return characterListItems[position] + } + + /** + Loads Characters from URL + - Parameter currentItem: Receives the currentItem that is displayed to determine if it should load more characters + */ + func loadMoreCharacters(currentItem: APICharacter? = nil) { + // Check if data should or shouldn't be loaded + if !shouldLoadMoreData(currentItem: currentItem) { + return + } + + // Check if the page we need to load is ready to be loaded + guard case let .ready(page) = loadStatus else { + return + } + // Start downloading using URLSession + loadStatus = .loading(page: page) + let completeURL = "\(baseURL)\(page)" + let url = URL(string: completeURL)! + let task = URLSession.shared.dataTask(with: url,completionHandler: parseCharactersFromResponse(data:response:error:)) + task.resume() + } + + /** + Determines if more characters are needed to be downloaded + - Parameter currentItem: Receives the currentItem that is displayed to determine if it should load more characters + - Returns: True if more characters should be loaded or false otherwise + */ + func shouldLoadMoreData(currentItem : APICharacter? = nil) -> Bool{ + guard let currentItem = currentItem else { + return true + } + + // If the current character retrieved is within 4 of the last element of the page, we should load more + for n in (characterListItems.count - 4)...(characterListItems.count - 1) { + if n >= 0 && currentItem.id == characterListItems[n].id { + return true + } + } + return false + } + + /** + Parses the response from Rick and Morty's API to the required structure + - Parameters: + - data: Response data from the URLRequest Closure + - response: URLResponse object to check for any data we should find useful + - error: Error object to retrieve possible mistakes + */ + func parseCharactersFromResponse(data: Data?, response : URLResponse?, error : Error?) { + // Check if any error occurred and pass the status as a bad state + guard error == nil else { + print("Error: \(error?.localizedDescription ?? "Unknown error produced")") + loadStatus = .parseError + return + } + // Check if data is present, else, pass it as a bad state + guard let data = data else { + print("Error: \(error?.localizedDescription ?? "Unknown error produced")") + loadStatus = .parseError + return + } + + // Parse Data into an array of characters + let apiCharacters = parseCharactersFromData(data: data) + + // Pass characters through main.async to display them on the List + DispatchQueue.main.async { + // Pass all new characters to the list + self.characterListItems.append(contentsOf: apiCharacters) + // If no more characters are available, we're done + if apiCharacters.count == 0 { + self.loadStatus = .done + } else { + // If we passed all characters and we still HAVE some, something weird is happening + guard case let .loading(page) = self.loadStatus else { + fatalError("Load status is in a bad state") + } + // If everything is done, we can load the next page + self.loadStatus = .ready(nextPage: page + 1) + } + } + } + + /** + Parses the Data from Rick and Morty's request to an array of characters + - Parameters: + - data: Response data from the URLRequest Closure + - Returns: Array of APICharacters + */ + func parseCharactersFromData(data: Data) -> [APICharacter] { + var response : APICharactersResponse + do { + response = try JSONDecoder().decode(APICharactersResponse.self, from: data) + } catch { + print(error.localizedDescription) + return [] + } + + return response.results ?? [] + } + +} diff --git a/FlinkChallenge/FlinkChallenge/Controller/CharacterFilteringController.swift b/FlinkChallenge/FlinkChallenge/Controller/CharacterFilteringController.swift new file mode 100644 index 0000000..065a172 --- /dev/null +++ b/FlinkChallenge/FlinkChallenge/Controller/CharacterFilteringController.swift @@ -0,0 +1,98 @@ +// +// CharacterFilteringController.swift +// FlinkChallenge +// +// Created by Fernando Martin Garcia Del Angel on 19/02/20. +// Copyright © 2020 Fernando Martin Garcia Del Angel. All rights reserved. +// + +import Foundation + +class CharacterFiltering : ObservableObject, RandomAccessCollection { + typealias Element = APICharacter + @Published var characterListItems = [APICharacter]() + + var startIndex: Int { characterListItems.startIndex } + var endIndex: Int { characterListItems.endIndex } + var loadStatus = LoadStatus.ready(nextPage: 1) + + var baseURL = "https://rickandmortyapi.com/api/character/?" + + init(name : String, status : String, species: String, type : String, gender: String){ + loadFilteredCharacters(params: [name,status,species,type, gender]) + } + + subscript(position: Int) -> APICharacter { + return characterListItems[position] + } + + /** + Retrieves a character array based on passed parameters + - Parameters: + - params: Array of possible search params (name, status, species, type, and gender) + */ + func loadFilteredCharacters(params : [String]) { + var leadingQueryString : String = "" + let labels = ["name","status","species","type","gender"] + for (index, param) in params.enumerated() { + if !param.isEmpty { + leadingQueryString += "\(labels[index])=\(param.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed) ?? "")" + } + + if index != params.count { + leadingQueryString += "&" + } + } + let completeURL = "\(baseURL)\(leadingQueryString)" + let url = URL(string: completeURL)! + let task = URLSession.shared.dataTask(with: url,completionHandler: parseCharactersFromResponse(data:response:error:)) + task.resume() + } + + /** + Parses characters from response and error handles any possible issue + - Parameters: + - data: Response data from the URLRequest Closure + - response: URLResponse object to check for any data we should find useful + - error: Error object to retrieve possible mistakes + */ + func parseCharactersFromResponse(data: Data?, response : URLResponse?, error : Error?) { + guard error == nil else { + print("Error: \(error?.localizedDescription ?? "Unknown error produced")") + return + } + + guard let data = data else { + print("Error: \(error?.localizedDescription ?? "Unknown error produced")") + return + } + + let apiCharacters = parseCharactersFromData(data: data) + DispatchQueue.main.async { + self.characterListItems.append(contentsOf: apiCharacters) + if apiCharacters.count == 0 { + print("load status done") + } else { + print("load status unknown") + } + } + } + + /** + Parses the Data from Rick and Morty's request to an array of characters + - Parameters: + - data: Response data from the URLRequest Closure + - Returns: Array of APICharacters + */ + func parseCharactersFromData(data: Data) -> [APICharacter] { + var response : APICharactersResponse + do { + response = try JSONDecoder().decode(APICharactersResponse.self, from: data) + } catch { + print(error.localizedDescription) + return [] + } + + return response.results ?? [] + } +} diff --git a/FlinkChallenge/FlinkChallenge/Controller/EpisodeController.swift b/FlinkChallenge/FlinkChallenge/Controller/EpisodeController.swift new file mode 100644 index 0000000..a1b6b8f --- /dev/null +++ b/FlinkChallenge/FlinkChallenge/Controller/EpisodeController.swift @@ -0,0 +1,58 @@ +// +// EpisodeController.swift +// FlinkChallenge +// +// Created by Fernando Martin Garcia Del Angel on 18/02/20. +// Copyright © 2020 Fernando Martin Garcia Del Angel. All rights reserved. +// + +import Foundation + +class EpisodeController : ObservableObject, RandomAccessCollection{ + typealias Element = Episode + @Published var episodeList = [Episode]() + + var startIndex: Int { episodeList.startIndex } + var endIndex: Int { episodeList.endIndex } + + subscript(position: Int) -> Episode { + return episodeList[position] + } + + init(episodes : [String]) { + getEpisodes(episodes: episodes) + } + + /** + Retrieves an episode from a given URL and appends it to the episode list + - Parameters: + - url: Episode URL + */ + private func getEpisodeFromURL(with url : String) { + if let url = URL(string: url) { + URLSession.shared.dataTask(with: url) { data, response, error in + if let data = data { + do { + let response = try JSONDecoder().decode(Episode.self, from: data) + self.episodeList.append(response) + } catch { + print(error.localizedDescription) + } + } + }.resume() + } + } + + /** + Retrieves all episodes and appends it to the list observable + - Parameters: + - episodes: Episode Array + */ + func getEpisodes(episodes : [String]) { + for episode in episodes { + DispatchQueue.main.async { + self.getEpisodeFromURL(with: episode) + } + } + } +} diff --git a/FlinkChallenge/FlinkChallenge/Extensions/Color+UIColor.swift b/FlinkChallenge/FlinkChallenge/Extensions/Color+UIColor.swift new file mode 100644 index 0000000..a09304b --- /dev/null +++ b/FlinkChallenge/FlinkChallenge/Extensions/Color+UIColor.swift @@ -0,0 +1,130 @@ +// +// Color+UIColor.swift +// FlinkChallenge +// +// Created by Fernando Martin Garcia Del Angel on 19/02/20. +// Copyright © 2020 Fernando Martin Garcia Del Angel. All rights reserved. +// Color bride created by: https://medium.com/@masamichiueta/bridging-uicolor-system-color-to-swiftui-color-ef98f6e21206 +// + +import UIKit +import SwiftUI + +extension Color { + + static var label: Color { + return Color(UIColor.label) + } + + static var secondaryLabel: Color { + return Color(UIColor.secondaryLabel) + } + + static var tertiaryLabel: Color { + return Color(UIColor.tertiaryLabel) + } + + static var quaternaryLabel: Color { + return Color(UIColor.quaternaryLabel) + } + + static var systemFill: Color { + return Color(UIColor.systemFill) + } + + static var secondarySystemFill: Color { + return Color(UIColor.secondarySystemFill) + } + + static var tertiarySystemFill: Color { + return Color(UIColor.tertiarySystemFill) + } + + static var quaternarySystemFill: Color { + return Color(UIColor.quaternarySystemFill) + } + + static var systemBackground: Color { + return Color(UIColor.systemBackground) + } + + static var secondarySystemBackground: Color { + return Color(UIColor.secondarySystemBackground) + } + + static var tertiarySystemBackground: Color { + return Color(UIColor.tertiarySystemBackground) + } + + static var systemGroupedBackground: Color { + return Color(UIColor.systemGroupedBackground) + } + + static var secondarySystemGroupedBackground: Color { + return Color(UIColor.secondarySystemGroupedBackground) + } + + static var tertiarySystemGroupedBackground: Color { + return Color(UIColor.tertiarySystemGroupedBackground) + } + + static var systemRed: Color { + return Color(UIColor.systemRed) + } + + static var systemBlue: Color { + return Color(UIColor.systemBlue) + } + + static var systemPink: Color { + return Color(UIColor.systemPink) + } + + static var systemTeal: Color { + return Color(UIColor.systemTeal) + } + + static var systemGreen: Color { + return Color(UIColor.systemGreen) + } + + static var systemIndigo: Color { + return Color(UIColor.systemIndigo) + } + + static var systemOrange: Color { + return Color(UIColor.systemOrange) + } + + static var systemPurple: Color { + return Color(UIColor.systemPurple) + } + + static var systemYellow: Color { + return Color(UIColor.systemYellow) + } + + static var systemGray: Color { + return Color(UIColor.systemGray) + } + + static var systemGray2: Color { + return Color(UIColor.systemGray2) + } + + static var systemGray3: Color { + return Color(UIColor.systemGray3) + } + + static var systemGray4: Color { + return Color(UIColor.systemGray4) + } + + static var systemGray5: Color { + return Color(UIColor.systemGray5) + } + + static var systemGray6: Color { + return Color(UIColor.systemGray6) + } +} diff --git a/FlinkChallenge/FlinkChallenge/Model/APICharacter.swift b/FlinkChallenge/FlinkChallenge/Model/APICharacter.swift new file mode 100644 index 0000000..f474d6f --- /dev/null +++ b/FlinkChallenge/FlinkChallenge/Model/APICharacter.swift @@ -0,0 +1,60 @@ +// +// RickAndMortyModels.swift +// FlinkChallenge +// +// Created by Fernando Martin Garcia Del Angel on 18/02/20. +// Copyright © 2020 Fernando Martin Garcia Del Angel. All rights reserved. +// + +import Foundation + +class APICharactersResponse : Codable { + var info : Info? + var results : [APICharacter]? +} + +class APICharacter : Identifiable, Codable { + var id : Int? + var name: String? + var status : String? + var type: String? + var gender : String? + var origin : Location? + var location : Location? + var species : String? + var image : String? + var episode : [String]? + var url : String? + var created : String? + + init(){ + self.id = 1 + self.name = "Rick Sanchez" + self.status = "Alive" + self.species = "Human" + self.type = "" + self.gender = "Male" + self.origin = Location.init() + self.location = Location.init() + self.image = "https://rickandmortyapi.com/api/character/avatar/1.jpeg" + self.episode = ["https://rickandmortyapi.com/api/episode/1"] + self.url = "https://rickandmortyapi.com/api/character/1" + self.created = "2017-11-04T18:48:46.250Z" + } +} + +class Location : Codable { + var name : String? + var url : String? + init() { + self.name = "Earth" + self.url = "https://rickandmortyapi.com/api/location/20" + } +} + +class Info : Codable { + var count : Int? + var pages: Int? + var next : String? + var prev: String? +} diff --git a/FlinkChallenge/FlinkChallenge/Model/Episode.swift b/FlinkChallenge/FlinkChallenge/Model/Episode.swift new file mode 100644 index 0000000..35d5128 --- /dev/null +++ b/FlinkChallenge/FlinkChallenge/Model/Episode.swift @@ -0,0 +1,41 @@ +// +// Episode.swift +// FlinkChallenge +// +// Created by Fernando Martin Garcia Del Angel on 18/02/20. +// Copyright © 2020 Fernando Martin Garcia Del Angel. All rights reserved. +// + +import Foundation + +class Episode : Identifiable, Codable, Hashable { + static func == (lhs: Episode, rhs: Episode) -> Bool { + return lhs.id == rhs.id + } + + func hash(into hasher: inout Hasher) { + hasher.combine(id) + hasher.combine(name) + hasher.combine(air_date) + hasher.combine(episode) + hasher.combine(characters) + } + + var id: Int? + var name : String? + var air_date : String? + var episode : String? + var characters : [String]? + var url : String + var created : String + + init() { + id = 0 + name = "No episode was found" + air_date = "N/A" + episode = "N/A" + characters = ["N/A"] + url = "http" + created = "once" + } +} diff --git a/FlinkChallenge/FlinkChallenge/Views/AdvancedFilterView.swift b/FlinkChallenge/FlinkChallenge/Views/AdvancedFilterView.swift new file mode 100644 index 0000000..90dba37 --- /dev/null +++ b/FlinkChallenge/FlinkChallenge/Views/AdvancedFilterView.swift @@ -0,0 +1,85 @@ +// +// AdvancedFilterView.swift +// FlinkChallenge +// +// Created by Fernando Martin Garcia Del Angel on 19/02/20. +// Copyright © 2020 Fernando Martin Garcia Del Angel. All rights reserved. +// + +import SwiftUI + +struct RoundedButton : View { + var name : String = "" + var status : String = "" + var species : String = "" + var type: String = "" + var gender : String = "" + + var body: some View { + NavigationLink(destination: + CharacterFilterView(name: name, + status: status, + species: species, + type: type, + gender: gender)) { + Button(action: {}){ + HStack { + Spacer() + Text("Search") + .font(.headline) + Spacer() + } + } + .padding(.vertical, 10.0) + .padding(.horizontal, 50) + } + } +} + +struct AdvancedFilterView: View { + var statuses = ["alive","dead","unknown"] + var genders = ["female","male","genderless","unknown"] + @State private var selectedStatus = 0 + @State private var selectedGender = 0 + @State private var name: String = "" + @State private var status: String = "" + @State private var species : String = "" + @State private var type : String = "" + @State private var gender : String = "" + + var body: some View { + Form { + Section(header: Text("Basic Data")) { + TextField("Name",text: $name) + } + + Section(header: Text("Other data")) { + Picker (selection: $selectedStatus, label: Text("Status")) { + ForEach(0 ..< statuses.count) { + Text(self.statuses[$0].capitalized) + } + }.pickerStyle(SegmentedPickerStyle()) + + Picker (selection: $selectedGender, label: Text("Gender")) { + ForEach(0 ..< genders.count) { + Text(self.genders[$0].capitalized) + } + }.pickerStyle(SegmentedPickerStyle()) + TextField("Species",text: $species) + TextField("Type",text: $type) + + } + RoundedButton(name: name, + status: statuses[selectedStatus], + species: species, + type: type, + gender: genders[selectedGender]) + } + } +} + +struct AdvancedFilterView_Previews: PreviewProvider { + static var previews: some View { + AdvancedFilterView() + } +} diff --git a/FlinkChallenge/FlinkChallenge/Views/CardView.swift b/FlinkChallenge/FlinkChallenge/Views/CardView.swift new file mode 100644 index 0000000..7e16380 --- /dev/null +++ b/FlinkChallenge/FlinkChallenge/Views/CardView.swift @@ -0,0 +1,51 @@ +// +// CardView.swift +// FlinkChallenge +// +// Created by Fernando Martin Garcia Del Angel on 18/02/20. +// Copyright © 2020 Fernando Martin Garcia Del Angel. All rights reserved. +// + +import SwiftUI +import SDWebImageSwiftUI + + +struct Card: View { + var image : String? + var name : String? + var status : String? + var episodeCount : Int? + + var body: some View { + GeometryReader { geometry in + VStack(alignment: .leading) { + WebImage(url: URL(string: self.image ?? "")) + .resizable() + .scaledToFill() + .frame(width: geometry.size.width, height: geometry.size.height * 0.5) + .clipped() + HStack { + VStack(alignment: .leading, spacing: 6) { + Text(self.name ?? "Not nameable character").font(.title).bold() + Text(self.status ?? "Unknown").font(.subheadline) + Text("Appears in \(self.episodeCount ?? 0) episodes") + .font(.subheadline) + .foregroundColor(.gray) + } + Spacer() + + }.padding(.horizontal) + }.padding(.bottom) + .background(Color.systemGray6) + .cornerRadius(10) + .shadow(radius: 5) + } + } +} + + +struct CardView_Previews: PreviewProvider { + static var previews: some View { + Card(image: "https://rickandmortyapi.com/api/character/avatar/17.jpeg", name: "Annie", status: "Alive", episodeCount: 5) + } +} diff --git a/FlinkChallenge/FlinkChallenge/Views/CharacterDetailView.swift b/FlinkChallenge/FlinkChallenge/Views/CharacterDetailView.swift new file mode 100644 index 0000000..7b59f5d --- /dev/null +++ b/FlinkChallenge/FlinkChallenge/Views/CharacterDetailView.swift @@ -0,0 +1,165 @@ +// +// CharacterDetail.swift +// FlinkChallenge +// +// Created by Fernando Martin Garcia Del Angel on 18/02/20. +// Copyright © 2020 Fernando Martin Garcia Del Angel. All rights reserved. +// + +import SwiftUI +import SDWebImageSwiftUI + +struct CircleImage: View { + var url : String + var body: some View { + WebImage(url: URL(string: url)) + .resizable() + .clipShape(Circle()) + .overlay(Circle().stroke(Color.gray,lineWidth: 4)) + .shadow(radius: 10) + } +} + +struct BackgroundView: View { + var body: some View { + Image("background").resizable() + } +} + + +struct MainCharacterAttributes : View { + var character: APICharacter + var body: some View { + HStack { + VStack { + Text("Status") + .font(.headline) + Text(character.status ?? "Unknown") + .font(.caption) + } + Spacer() + VStack { + Text("Species") + .font(.headline) + Text(character.species ?? "Unknown") + .font(.caption) + } + Spacer() + if !character.type!.isEmpty { + VStack { + Text("Type") + .font(.headline) + Text(character.type ?? "Unknown") + .font(.caption) + } + Spacer() + } + VStack { + Text("Gender") + .font(.headline) + Text(character.gender ?? "Unknown") + .font(.caption) + } + }.padding() + } +} + +struct DataCard : View { + var character : APICharacter + var body: some View { + VStack { + VStack { + VStack { + Text("Origin").font(.headline).bold() + Text(character.origin?.name ?? "Location Unknown") + .font(.subheadline) + .foregroundColor(.gray) + }.padding() + + VStack { + Text("Location").font(.headline).bold() + Text(character.location?.name ?? "Location Unknown") + .font(.subheadline) + .foregroundColor(.gray) + }.padding() + + VStack() { + Text("Episodes \(character.name ?? "this character") appears in").bold().multilineTextAlignment(.center).font(.headline) + Text("\(character.episode?.count ?? 0)") + .font(.subheadline) + .foregroundColor(.gray) + }.padding() + }.padding().frame(width: 300, height: 500, alignment: .center) + } + .background(Color.systemGray6) + .cornerRadius(10) + .shadow(radius: 5) + .padding(.bottom) + } +} + +struct EpisodeView : View { + var episode : Episode + var body: some View { + HStack { + Text(episode.name!).font(.headline).bold() + Text("(\(episode.episode!))").font(.caption) + } + .frame(width: 300, height: 100, alignment: .center) + .background(Color.systemGray6) + .cornerRadius(10) + .shadow(radius: 5) + .padding() + } +} + +struct CharacterDetail: View { + var character : APICharacter + @State private var show_modal = false + + @ObservedObject var episodes : EpisodeController + + init(character: APICharacter){ + self.character = character + episodes = EpisodeController(episodes: character.episode ?? []) + } + + var body: some View { + ScrollView { + VStack { + BackgroundView() + .frame(height: 300) + CircleImage(url: character.image ?? "") + .frame(width: 200, height: 200) + .offset(y: -130) + .padding(.bottom, -130) + VStack(alignment: .center) { + Text(character.name ?? "Unknown") + .font(.title) + MainCharacterAttributes(character: character) + }.padding() + DataCard(character: character) + if episodes.count != 0 { + Text("Episodes").font(.title).bold() + } + ScrollView { + VStack { + ForEach (episodes ,id: \.id) { episode in + Button(action: { + self.show_modal = true + }) { + EpisodeView(episode: episode) + } + } + } + } + } + }.edgesIgnoringSafeArea(.top) + } +} + +struct CharacterDetail_Previews: PreviewProvider { + static var previews: some View { + CharacterDetail(character: APICharacter.init()) + } +} diff --git a/FlinkChallenge/FlinkChallenge/Views/CharacterFeedView.swift b/FlinkChallenge/FlinkChallenge/Views/CharacterFeedView.swift new file mode 100644 index 0000000..93bc5a2 --- /dev/null +++ b/FlinkChallenge/FlinkChallenge/Views/CharacterFeedView.swift @@ -0,0 +1,44 @@ +// +// CharacterFeedView.swift +// FlinkChallenge +// +// Created by Fernando Martin Garcia Del Angel on 18/02/20. +// Copyright © 2020 Fernando Martin Garcia Del Angel. All rights reserved. +// + +import SwiftUI + +struct CharacterFeedView: View { + @ObservedObject var characterFeed = CharacterFeed() + @State private var searchText : String = "" + + var body: some View { + VStack { + SearchBar(text: $searchText, placeholder: "Search for characters") + List { + ForEach(self.characterFeed.filter { + self.searchText.isEmpty ? true : $0.name!.lowercased().contains(self.searchText.lowercased()) + }, id: \.id) { character in + ZStack { + Card(image: character.image, + name: character.name, + status: character.status, + episodeCount: character.episode?.count).frame(width: 300, height: 300) + .onAppear { + self.characterFeed.loadMoreCharacters(currentItem: character) + } + NavigationLink(destination: CharacterDetail(character: character)) { + EmptyView() + }.buttonStyle(PlainButtonStyle()) + } + } + } + } + } +} + +struct CharacterFeedView_Previews: PreviewProvider { + static var previews: some View { + CharacterFeedView() + } +} diff --git a/FlinkChallenge/FlinkChallenge/Views/CharacterFilterView.swift b/FlinkChallenge/FlinkChallenge/Views/CharacterFilterView.swift new file mode 100644 index 0000000..629e306 --- /dev/null +++ b/FlinkChallenge/FlinkChallenge/Views/CharacterFilterView.swift @@ -0,0 +1,45 @@ +// +// CharacterFilterView.swift +// FlinkChallenge +// +// Created by Fernando Martin Garcia Del Angel on 19/02/20. +// Copyright © 2020 Fernando Martin Garcia Del Angel. All rights reserved. +// + +import SwiftUI + +struct CharacterFilterView: View { + @ObservedObject var characterFeed : CharacterFiltering + @State private var searchText : String = "" + + init(name : String, status: String, species : String, type: String, gender: String) { + characterFeed = CharacterFiltering(name: name, status: status, species: species, type: type, gender: gender) + } + + var body: some View { + VStack { + SearchBar(text: $searchText, placeholder: "Search for characters") + List { + ForEach(self.characterFeed.filter { + self.searchText.isEmpty ? true : $0.name!.lowercased().contains(self.searchText.lowercased()) + }, id: \.id) { character in + ZStack { + Card(image: character.image, + name: character.name, + status: character.status, + episodeCount: character.episode?.count).frame(width: 300, height: 300) + NavigationLink(destination: CharacterDetail(character: character)) { + EmptyView() + }.buttonStyle(PlainButtonStyle()) + } + } + } + }.navigationBarTitle(Text("Search Results")) + } +} + +struct CharacterFilterView_Previews: PreviewProvider { + static var previews: some View { + CharacterFilterView(name: "Rick", status: "", species: "", type: "", gender: "") + } +} diff --git a/FlinkChallenge/FlinkChallenge/Views/ContentView.swift b/FlinkChallenge/FlinkChallenge/Views/ContentView.swift new file mode 100644 index 0000000..9722af7 --- /dev/null +++ b/FlinkChallenge/FlinkChallenge/Views/ContentView.swift @@ -0,0 +1,51 @@ +// +// ContentView.swift +// FlinkChallenge +// +// Created by Fernando Martin Garcia Del Angel on 18/02/20. +// Copyright © 2020 Fernando Martin Garcia Del Angel. All rights reserved. +// + +import SwiftUI + +struct ContentView: View { + var body: some View { + TabView { + NavigationView { + CharacterFeedView().navigationBarTitle(Text("Characters")) + }.accentColor(Color(red: 0, green: 0.6, blue: 0.6)) + .tag(0) + .tabItem { + VStack { + Image(systemName: "person.circle.fill") + .foregroundColor(.gray) + Text("Advanced Search") + } + } + + NavigationView { + AdvancedFilterView().navigationBarTitle(Text("Advanced Search")) + } + .tag(1) + .tabItem { + VStack { + Image(systemName: "magnifyingglass.circle.fill") + .foregroundColor(.gray) + Text("Advanced Search") + } + } + } + } +} + +struct dummyView : View { + var body: some View { + Text("rendering...") + } +} + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + } +} diff --git a/FlinkChallenge/FlinkChallenge/Views/SearchBarUIView.swift b/FlinkChallenge/FlinkChallenge/Views/SearchBarUIView.swift new file mode 100644 index 0000000..4caf5ef --- /dev/null +++ b/FlinkChallenge/FlinkChallenge/Views/SearchBarUIView.swift @@ -0,0 +1,43 @@ +// +// SearchBar.swift +// FlinkChallenge +// +// Created by Fernando Martin Garcia Del Angel on 18/02/20. +// Copyright © 2020 Fernando Martin Garcia Del Angel. All rights reserved. +// + +import SwiftUI + +struct SearchBar: UIViewRepresentable { + @Binding var text : String + var placeholder : String + + class Coordinator : NSObject, UISearchBarDelegate { + @Binding var text : String + + init(text: Binding) { + _text = text + } + + func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) { + text = searchText + } + } + + func makeCoordinator() -> SearchBar.Coordinator { + return Coordinator(text: $text) + } + + func makeUIView(context: UIViewRepresentableContext) -> UISearchBar { + let searchBar = UISearchBar(frame: .zero) + searchBar.delegate = context.coordinator + searchBar.placeholder = placeholder + searchBar.searchBarStyle = .minimal + searchBar.autocapitalizationType = .none + return searchBar + } + + func updateUIView(_ uiView: UISearchBar, context: UIViewRepresentableContext) { + uiView.text = text + } +} diff --git a/FlinkChallenge/Podfile b/FlinkChallenge/Podfile index 5a38d4b..26aedc5 100644 --- a/FlinkChallenge/Podfile +++ b/FlinkChallenge/Podfile @@ -7,7 +7,6 @@ target 'FlinkChallenge' do # Pods for FlinkChallenge pod 'SDWebImageSwiftUI' - pod 'SVProgressHUD' target 'FlinkChallengeTests' do inherit! :search_paths diff --git a/FlinkChallenge/Podfile.lock b/FlinkChallenge/Podfile.lock index a936ce4..24e752a 100644 --- a/FlinkChallenge/Podfile.lock +++ b/FlinkChallenge/Podfile.lock @@ -4,23 +4,19 @@ PODS: - SDWebImage/Core (5.5.2) - SDWebImageSwiftUI (0.10.3): - SDWebImage (~> 5.3) - - SVProgressHUD (2.2.5) DEPENDENCIES: - SDWebImageSwiftUI - - SVProgressHUD SPEC REPOS: https://github.com/cocoapods/specs.git: - SDWebImage - SDWebImageSwiftUI - - SVProgressHUD SPEC CHECKSUMS: SDWebImage: 4d5c027c935438f341ed33dbac53ff9f479922ca SDWebImageSwiftUI: 52a2dda1f76e2e5bf0b5ea4c0831737358656905 - SVProgressHUD: 1428aafac632c1f86f62aa4243ec12008d7a51d6 -PODFILE CHECKSUM: d84abdbe3a1633dd96d9514a2f1a088bd84c6bcc +PODFILE CHECKSUM: 9ec3068d6819665c776ac1524f437080836fa61c COCOAPODS: 1.7.5 diff --git a/FlinkChallenge/Pods/Manifest.lock b/FlinkChallenge/Pods/Manifest.lock index a936ce4..24e752a 100644 --- a/FlinkChallenge/Pods/Manifest.lock +++ b/FlinkChallenge/Pods/Manifest.lock @@ -4,23 +4,19 @@ PODS: - SDWebImage/Core (5.5.2) - SDWebImageSwiftUI (0.10.3): - SDWebImage (~> 5.3) - - SVProgressHUD (2.2.5) DEPENDENCIES: - SDWebImageSwiftUI - - SVProgressHUD SPEC REPOS: https://github.com/cocoapods/specs.git: - SDWebImage - SDWebImageSwiftUI - - SVProgressHUD SPEC CHECKSUMS: SDWebImage: 4d5c027c935438f341ed33dbac53ff9f479922ca SDWebImageSwiftUI: 52a2dda1f76e2e5bf0b5ea4c0831737358656905 - SVProgressHUD: 1428aafac632c1f86f62aa4243ec12008d7a51d6 -PODFILE CHECKSUM: d84abdbe3a1633dd96d9514a2f1a088bd84c6bcc +PODFILE CHECKSUM: 9ec3068d6819665c776ac1524f437080836fa61c COCOAPODS: 1.7.5 diff --git a/FlinkChallenge/Pods/Pods.xcodeproj/project.pbxproj b/FlinkChallenge/Pods/Pods.xcodeproj/project.pbxproj index 8d789b6..27a48ad 100644 --- a/FlinkChallenge/Pods/Pods.xcodeproj/project.pbxproj +++ b/FlinkChallenge/Pods/Pods.xcodeproj/project.pbxproj @@ -3,204 +3,177 @@ archiveVersion = 1; classes = { }; - objectVersion = 50; + objectVersion = 51; objects = { /* Begin PBXBuildFile section */ - 00D5660CE5CCDBEF481E7B7058B73B5D /* SDImageLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = F6803D57ADDD5CF9F7FD6E5A16CBA608 /* SDImageLoader.m */; }; - 014E4979B1ACA493BF3639717D60771E /* NSButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 012336948580AA8BF086BC269E0CF113 /* NSButton+WebCache.m */; }; - 0853CDDE4C0E066DC07A39D5C7FF8BE7 /* SDMemoryCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 75FEE65F14A1AEF3CAB3B015E129BA89 /* SDMemoryCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 08C1D118966FF9E4A0BC56212EEA9FC7 /* SDWebImageCacheKeyFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D30E1E1A52721091E589091940B610F /* SDWebImageCacheKeyFilter.m */; }; - 0C902DFF6C0EA6FF7E7A390880F94BBD /* SDWebImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = 385500D2A0F1025FAD2945BE5BD71471 /* SDWebImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0CA80ED7E59E6BCE64CEEE649A3C6D2F /* SVProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AB8855C702379C8EBC447E24355FA /* SVProgressHUD.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0CE7F8BC70AE632DB66708DB827699BC /* UIImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = B818B27075D0F67621EEA9762D633D34 /* UIImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0EC6BD88158F44764CD415575208BA5F /* UIImage+Metadata.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FC93E2EFC4D7B268518214B89A51AEC /* UIImage+Metadata.m */; }; - 0FC7147B55978351A7B34F7639229805 /* SDWebImagePrefetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = F6C965560639A1670EAB263967E5685C /* SDWebImagePrefetcher.m */; }; - 104136CB09810A979475A1E2FF28EAB0 /* SDFileAttributeHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BCDDE428DC46E2F840DDE76E9AC9137 /* SDFileAttributeHelper.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 112CF1DD197E368DF360F88773AFC003 /* NSImage+Compatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = 9874E47165D6787587F3A964EA852F38 /* NSImage+Compatibility.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 118394F39D0A318CFDADB5BF470E9754 /* UIButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F5096E0FF39E1A5B1D355585EE8215E /* UIButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 118A7F4865756B97273927D799721F57 /* SDWebImageDownloaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D850B2BFBD243950770283CB4F85BFC /* SDWebImageDownloaderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 11CEBCD276D34E1D2F396EE308366C6D /* NSImage+Compatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = CE741CE21D4D63F78184BEEC504F0ED6 /* NSImage+Compatibility.m */; }; + 00D5660CE5CCDBEF481E7B7058B73B5D /* SDImageLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 63FFFED0E1ECFCA8DB48B165311D04ED /* SDImageLoader.m */; }; + 014E4979B1ACA493BF3639717D60771E /* NSButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 83199578466B1814D498D562383CB06E /* NSButton+WebCache.m */; }; + 0853CDDE4C0E066DC07A39D5C7FF8BE7 /* SDMemoryCache.h in Headers */ = {isa = PBXBuildFile; fileRef = C67C69F78A771F0B436632C7CAA125BE /* SDMemoryCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 08C1D118966FF9E4A0BC56212EEA9FC7 /* SDWebImageCacheKeyFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = D66D79E3DB6517327045CC46D45D4019 /* SDWebImageCacheKeyFilter.m */; }; + 0C902DFF6C0EA6FF7E7A390880F94BBD /* SDWebImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C5E7B6CD87ACE97B5601F5A02C37D7D /* SDWebImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0CE7F8BC70AE632DB66708DB827699BC /* UIImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 94CABB432767374F797A984161775219 /* UIImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0EC6BD88158F44764CD415575208BA5F /* UIImage+Metadata.m in Sources */ = {isa = PBXBuildFile; fileRef = 02945C48A31AA92C63B9FFEBFA46197B /* UIImage+Metadata.m */; }; + 0FC7147B55978351A7B34F7639229805 /* SDWebImagePrefetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 19345F1D14EBCCE5232A2013D29809A1 /* SDWebImagePrefetcher.m */; }; + 104136CB09810A979475A1E2FF28EAB0 /* SDFileAttributeHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A1B8230F7389986FB4CB101BC0ADE28 /* SDFileAttributeHelper.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 112CF1DD197E368DF360F88773AFC003 /* NSImage+Compatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = B8408B756F17472E30C89656601911C1 /* NSImage+Compatibility.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 118394F39D0A318CFDADB5BF470E9754 /* UIButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 606EC942D9566EEF91E29C34EABDDE5E /* UIButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 118A7F4865756B97273927D799721F57 /* SDWebImageDownloaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = EC356B896F7FD9129E5E68644DB894AB /* SDWebImageDownloaderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 11CEBCD276D34E1D2F396EE308366C6D /* NSImage+Compatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = 883CDB15E638EF90BD56DF0C78B44DC8 /* NSImage+Compatibility.m */; }; 11D6B803FAA0BAA7C501E9FD0D845C7B /* Pods-FlinkChallengeTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 112D5DFAFE7099B69B1DA28854E4767B /* Pods-FlinkChallengeTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 126BEC0620C16F291A2D424BF4ACADF7 /* SDWebImageIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = D2F9F11021BFC644730B6CE45DF331A0 /* SDWebImageIndicator.m */; }; - 13634B6C73FEF3BBC9C40F663DC54BFB /* SDImageIOAnimatedCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = B124A1C8ADEC8006539AA6639312010E /* SDImageIOAnimatedCoder.m */; }; - 158E9EFFA178BAA23CB34C6081B9466A /* SDAssociatedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 561767A4F95D63E0D9B5991B56C14169 /* SDAssociatedObject.m */; }; - 160270E5721B4FA848B23281EE9434A7 /* SDImageCacheDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 790A04825CAF9577D87A49310E437CB5 /* SDImageCacheDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1756D111D32A9D049FECF40A7484EECE /* SDImageCoderHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D87D6054E976475706D82A430D64EE4 /* SDImageCoderHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 192B15DC371C3315E3DA7B0835948D46 /* SDMemoryCache.m in Sources */ = {isa = PBXBuildFile; fileRef = EA1245C38500AD2801EEB0AB8BC7BAAF /* SDMemoryCache.m */; }; - 19455B45062FA4F53103B762C5B9AF97 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC3614998EA35AEFFF5A66542468F26B /* Foundation.framework */; }; - 1AE03868F4E31F62BCBE9051978180FF /* SDImageCodersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 02090A03A849CB6A4C5DA56D9E219B7B /* SDImageCodersManager.m */; }; - 1B0372EA385B6F1CCAC0CA0AC17F3651 /* SDImageAPNGCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 07D94E99F5160BEBBBEEC837D23CFE0D /* SDImageAPNGCoder.m */; }; - 1BB3AAAA83FAACC8DE7A841E2273B4BB /* SDImageLoadersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8341A04CC97F3E05DA01AB6999D28912 /* SDImageLoadersManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1CAE9F5738F169D40B741137CD7FF06C /* SDImageHEICCoderInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = A50BBADF5BA9494B88D43EA5317C3C31 /* SDImageHEICCoderInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 1D43414EC34B38C807E95E6B37A77114 /* SDAsyncBlockOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = C8F79DDFEE0525C002E71F87990119DE /* SDAsyncBlockOperation.m */; }; - 1D470F9DB162E15EC3364ADCF32CD1FB /* SDImageCachesManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B40682EA093B9A16403A3D7CDDA32CA8 /* SDImageCachesManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E1BFD1D2135616B46FCAD4D7F296ADD /* UIView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = D378ECCED2AEF31B445AFF4DC6878101 /* UIView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 22B458313D70FC26ED7F5CB5F39057E9 /* SDImageCachesManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 60796BBF107B28A48ADAF2725984123A /* SDImageCachesManager.m */; }; - 22ECBCA7BF00C97BFC96E845CE28C3F1 /* SDGraphicsImageRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = F58C57130D4A7F5073D49427D1E33E7D /* SDGraphicsImageRenderer.m */; }; - 23C7E04F0710AA1726CC374DB5A2839C /* SDWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 9228E9A49CA464EEEBC5F0E6DF36D757 /* SDWebImageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 264E1A478BDFA31DA6842749C72EA535 /* SVProgressHUD.bundle in Resources */ = {isa = PBXBuildFile; fileRef = F3B5694B66A8A18B588965B2A1FA72B7 /* SVProgressHUD.bundle */; }; - 278F3B7DE414E62D282ED8B0E2AEDAEC /* SDWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CDB33705FA7A3567C2D603C37A7CCAA /* SDWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D56B1EDB6CF4FC42EF0505C76303631 /* Transition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0512D7EBA0D13DBEE39AB58B57E97009 /* Transition.swift */; }; - 2EF1808076E440C3950587ECBBC4EFBF /* SDAnimatedImagePlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CF27D539A7C92C54AE8755374BE7ECD /* SDAnimatedImagePlayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2F9303485B676A6B00C427E54F651797 /* SDDeviceHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = E04D1464DBB3EC2383324A80A559F810 /* SDDeviceHelper.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 2FB46D97A5518BA99F11818BAF4E02CE /* Pods-FlinkChallenge-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CB766A5934CC3CCA90AB94AED7F66E9 /* Pods-FlinkChallenge-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3086B5C783C9E48FF561052ED3618C63 /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4364A4748498DEB00DE6769F767EFF02 /* SDWebImage.framework */; }; - 322B2048DF5D6C3C8E2ECA67486D2D76 /* SDImageCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7A4F3E8587FE20A75E63FFFFD28549 /* SDImageCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 332F8152E7D50E99E8A3F510E10E2205 /* SDImageCoderHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 90D0C094BAB3959DB3BCF784C1044E54 /* SDImageCoderHelper.m */; }; - 33836ABEE1FD025EC9A7037C3E85739D /* SDDeviceHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = CD4A295B69D11864669E615D6E593B70 /* SDDeviceHelper.m */; }; - 3392F8407B8C6F47A4E47436894642D8 /* SVProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E5361302ECC7806DE163694A105419C /* SVProgressHUD.m */; }; - 3455D1D8559F40ABB94505E8DD4B5758 /* UIImage+MemoryCacheCost.h in Headers */ = {isa = PBXBuildFile; fileRef = BA71D8C2628D9DD0E71CCD5659F4BBD8 /* UIImage+MemoryCacheCost.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 358DA05F6B74D2343A284822E10E3997 /* SDImageCacheConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = F93A48F3C1CD92FEB3C0FB853760B6AD /* SDImageCacheConfig.m */; }; - 376DB4F7F99BD69CC116D0871279AE25 /* SDAsyncBlockOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = A27EE748219625D1A578498A3FA81C5B /* SDAsyncBlockOperation.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 39E5B526BD73D5A812D62019DE4526E6 /* SDDiskCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FDD0434497D4518ADEA73AADB0B2C9F /* SDDiskCache.m */; }; - 3A06D764805295B14ABBDABD50935B4D /* UIImage+ExtendedCacheData.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A6533A44AEA21971F8153B97E7EBF90 /* UIImage+ExtendedCacheData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3A3DAC9704D5248CE262D6300F60A94B /* SDInternalMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = D4B6213FB174B4E6CFFE03256C128019 /* SDInternalMacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 3E153BF6AB35E65D1B89B954FBBBC496 /* SDWebImageCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = 989DAECB09F2949C884B55AEE6FFBCED /* SDWebImageCompat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3F48C4E304E3500ECF35848EAB3600D1 /* SDWebImageDownloaderOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 435C4A9BCC1411C77DB4EE0D4F17CA9D /* SDWebImageDownloaderOperation.m */; }; - 414F8B1C371AD4C19EA5753105923EE3 /* SDWebImageSwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2110E1344558933A8E5FDBE9C655482F /* SDWebImageSwiftUI.swift */; }; - 4582E2C5ED67C8CF3322A5E2B41A6B77 /* UIImage+GIF.m in Sources */ = {isa = PBXBuildFile; fileRef = 775E5CB983BDAA35A1DBBF333FABEAF4 /* UIImage+GIF.m */; }; - 463792E77E43A2D086CC8561D81120D0 /* SDWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8ECDD0D00227B261C05F38E0B7A718A9 /* SDWebImageManager.m */; }; - 47F36D10A5498BC6E388999E74C6116B /* NSData+ImageContentType.m in Sources */ = {isa = PBXBuildFile; fileRef = 38E9AA3C157D42055DC35A6DC46E8E29 /* NSData+ImageContentType.m */; }; - 486BB1A57587DEAEC3C3D98779C4CB1E /* SDAnimatedImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 2298C37C57558E66AE733441FA898B3C /* SDAnimatedImage.m */; }; - 48D3FCE0D96726A8863B34853C72EEB7 /* NSBezierPath+RoundedCorners.h in Headers */ = {isa = PBXBuildFile; fileRef = D13428180570C75E17D46E49ED13B780 /* NSBezierPath+RoundedCorners.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 4A2A99EC242EBBB2E149F0A055A057C6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC3614998EA35AEFFF5A66542468F26B /* Foundation.framework */; }; - 4CBBAAE18A14064FB7D4C1C86BE93C0F /* SDWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 5737CADDDB16C068465E544BFDCCF921 /* SDWeakProxy.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 4E03B4B71941E6A2CEE27CC9D7A537F1 /* Pods-FlinkChallenge-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 136B257FE4F1E5738AED1F81035EB0D2 /* Pods-FlinkChallenge-dummy.m */; }; - 4F5D3630A5C11432971240D65B4664C4 /* SDDisplayLink.m in Sources */ = {isa = PBXBuildFile; fileRef = E7A886DD14ABF54A91C95764E99439F7 /* SDDisplayLink.m */; }; - 50532304ED12B172CAFE09F6E4CE12B9 /* UIColor+HexString.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D4FDB1E14E32349E0E087EE2000BC76 /* UIColor+HexString.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 51CCBCC66C9C0EAC5A2663B97C46FDA3 /* SDWebImagePrefetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 17A71BA6C1889208D487DE7E785416AB /* SDWebImagePrefetcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 55E7E9CE51F5B699BCEEA8CF17A83119 /* SDImageFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 49007A9B33E1F324863DC1EAB3DBAE80 /* SDImageFrame.m */; }; - 56A9EEEF02261C84DB8BA6119968EE7E /* SDImageCachesManagerOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 8783833B9E8755852E8AFE7557A8DB4F /* SDImageCachesManagerOperation.m */; }; - 57E85DBBAA5B1BFBA65C4F1C9723E26F /* UIView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = AF4BA9457F2B3C063C5F7F28A94B4FB2 /* UIView+WebCache.m */; }; - 588902B9C27AA75941EEF32E97FD515B /* SDWebImageError.h in Headers */ = {isa = PBXBuildFile; fileRef = AC5F316C0AEF1C2387E803CCC2C427A1 /* SDWebImageError.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5BD126FB925F0EDF79EEF50124DB62A2 /* SDWebImageError.m in Sources */ = {isa = PBXBuildFile; fileRef = 95290E5F7BAE0927EE2D709E040925A9 /* SDWebImageError.m */; }; - 5CB09AC6238B57FE94994203B408DC92 /* ActivityIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6510CD487D6EED590B8FFCB5D51693A8 /* ActivityIndicator.swift */; }; - 5D6ED21F85EF70191E62C209C97B3C27 /* SDAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = B02D8C40DAF58D478F864CD3ECDE2DB3 /* SDAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5EDD97522C143C415E1E46DC69C036F7 /* SDImageIOCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DA408D7DC7046AEA0A92E5B47501BC3 /* SDImageIOCoder.m */; }; - 63DF3990E451E4752DDD1D7EBD22D489 /* UIImageView+HighlightedWebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 8841BA5A9E66AC1AA4153E3519D9F591 /* UIImageView+HighlightedWebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 643EAE5CBA6EF3F775F1B5DBEFF600DE /* SDWebImageTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 729F498B32664DF0F7E57061238D6C91 /* SDWebImageTransition.m */; }; - 64E2BD880852C6683121AA1DC8DA573E /* UIView+WebCacheOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AD418BA0A626E2A112D2B64D705C44A /* UIView+WebCacheOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 678628C10D335350CEF873E334172625 /* SDWebImageDownloaderConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC3E0B0A9321C4F47D99E8829CE631A /* SDWebImageDownloaderConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 68435747676265C2A96CE14CA985F7EB /* ImageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = E645FD9503046B184FE62CE6FD3A7A09 /* ImageManager.swift */; }; - 6C0FCFD1B41369A64AA972331A6544C0 /* SDImageTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 036CC3F5D29490B020BD01D3C6B6A6D6 /* SDImageTransformer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6E2BE4334E89DF90FCDB91C7FE3B5B9F /* SDDisplayLink.h in Headers */ = {isa = PBXBuildFile; fileRef = CBC9A5D45F18734090A5C5ADCB339B35 /* SDDisplayLink.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 7118507682D1DDE50D431472607B14FF /* SDWebImageOptionsProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = E2BD31B4445816DBEA274F6A1F167F11 /* SDWebImageOptionsProcessor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7235AD887413EB5E575800AA3E695D85 /* SDDiskCache.h in Headers */ = {isa = PBXBuildFile; fileRef = F8F3CEBD6D1FD555D969D28410E9C5B4 /* SDDiskCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 72C0616AE56D3FDCF8FFCBC3ADA5DDC5 /* UIImage+ForceDecode.m in Sources */ = {isa = PBXBuildFile; fileRef = 45A79BC196EBF9AFCB6AA27F86E431AF /* UIImage+ForceDecode.m */; }; - 740531F28EA97E980654CB55E6C96486 /* AnimatedImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA590654C745D04EF1123B709A971577 /* AnimatedImage.swift */; }; - 779E48E74D6C4C3524B0FEC1C5F66D6A /* SDAnimatedImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F73D6E21AA99DC667717298163E979C /* SDAnimatedImageView+WebCache.m */; }; - 789F4BDAB0553E3C2B38D9D73EA89E0B /* SDImageHEICCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 76DE972E81C716A081FD18D5099B5B86 /* SDImageHEICCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 78AD8518D12426C9EB983AF7696388AA /* SDWebImageCacheKeyFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 970C2176B3B753B1755368554BF16832 /* SDWebImageCacheKeyFilter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7A502EB9D217422CADC8F6D65462D0D1 /* SDWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DB41E7B00F2AA550223F7BF6BF82827 /* SDWeakProxy.m */; }; - 7DE4AC715F0C443F8B5B547CF73954C3 /* SDImageTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7361BB87FB37003E4B57307070E2738A /* SDImageTransformer.m */; }; - 7F5564793E785690B783FBDD43F83E00 /* ProgressIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C9B7637547F70D60AFC26043FD8EF2E /* ProgressIndicator.swift */; }; - 806159ED0DEDFF3634ABD9918AB9BFEC /* SDImageGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = 942A338C4CE6B26475D87CE70F634320 /* SDImageGraphics.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 82EEB27BE3132E53DA0203632BAB8991 /* SDAnimatedImageRep.h in Headers */ = {isa = PBXBuildFile; fileRef = 978245DB0C9B133F0A0CC687A4F8E015 /* SDAnimatedImageRep.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 85483C2849A00449F2E24C20CFB9CEF0 /* SDImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 51EC684EF89D59218B5AE1218EF04696 /* SDImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8632E8D94A4EC51C31AE6FEBC762157E /* UIImage+ForceDecode.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E9C504B8003F6CDD087F44FAC8D7038 /* UIImage+ForceDecode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 869D6900AB8C3E547DF05D4C57DD8C43 /* UIImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = B55BC2E615E9E96AF95867920FB9BB63 /* UIImageView+WebCache.m */; }; - 876AFE5D11F7801AA18E6AABC9A5B61B /* UIView+WebCacheOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AB6271232956D9EC03E964FF4F42996 /* UIView+WebCacheOperation.m */; }; - 87B87DEF9717F4FEE64EC905FE032AD0 /* SDmetamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = E86C8F5D1CE60DA2D2014ABBC771139F /* SDmetamacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 89FAC5171D537B4520F6744CD2004484 /* SDAnimatedImagePlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = DB6C0EB41719B68B7D1F159CA6C3D1B9 /* SDAnimatedImagePlayer.m */; }; - 8A31E02DF7F688B5EAD0BD5E81220868 /* SDWebImageOptionsProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 967DDF8EABBB4B74D3AD1F4E53CBDE34 /* SDWebImageOptionsProcessor.m */; }; - 8DED1A3C69E99329B835321A676AA90A /* SDWebImageTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = F40C2678DBC75B28E4C2951767144DD5 /* SDWebImageTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8E317C4C079094248391EE3A5F600ACB /* SDWebImageDownloaderRequestModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = D76B2DD4DD0432710700837566220AC4 /* SDWebImageDownloaderRequestModifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8EDB9E985C02E082F406F509BD832823 /* SDImageLoadersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = CBDD316FB4CB508250E96CE460415399 /* SDImageLoadersManager.m */; }; - 8FBC254CDA0F96953D8E6F3C281AE052 /* SDInternalMacros.m in Sources */ = {isa = PBXBuildFile; fileRef = 37B4A75DDBA05F6563121C664391D6FC /* SDInternalMacros.m */; }; - 9025CF7D7AB01C5426C478E75AA264FF /* SDFileAttributeHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 6990DF58FBF577476378BFC34CF36C82 /* SDFileAttributeHelper.m */; }; - 91253CDB31E5ADDBD1CECC022DD2A618 /* UIImage+GIF.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D4F1930F7F196C99AFF40DABCA4EA14 /* UIImage+GIF.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 92C2E242ADD10755E484F42574B582DC /* SDImageCodersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 33265145DAC8AD8C196702A1A55E064D /* SDImageCodersManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9651BDAC69449B000C1D7A1B452A5F16 /* SDWebImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A6F8EAB3CE417149DAEC5E4004B00FD5 /* SDWebImage-dummy.m */; }; - 96EADE99073DBA8FCE7904627E2D18EE /* SVIndefiniteAnimatedView.h in Headers */ = {isa = PBXBuildFile; fileRef = FBC671E431E2AA8801DFD9E9A9348626 /* SVIndefiniteAnimatedView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 99456829035D2883017E8EBCDB82C231 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BAAB5921F25A6107C88F6EC6675122F2 /* QuartzCore.framework */; }; + 126BEC0620C16F291A2D424BF4ACADF7 /* SDWebImageIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 98918DA7068A1C99431244138BF46A1E /* SDWebImageIndicator.m */; }; + 13634B6C73FEF3BBC9C40F663DC54BFB /* SDImageIOAnimatedCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = F6C508AE2C31AB6D42DE64C8D1A4B206 /* SDImageIOAnimatedCoder.m */; }; + 158E9EFFA178BAA23CB34C6081B9466A /* SDAssociatedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6889FE57ED4A47AB3AD869921851AF /* SDAssociatedObject.m */; }; + 160270E5721B4FA848B23281EE9434A7 /* SDImageCacheDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = D9A708F39819BF6A71474CF672AD2418 /* SDImageCacheDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1756D111D32A9D049FECF40A7484EECE /* SDImageCoderHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = CB8BFCE61BA27F02A9D41D3D91905628 /* SDImageCoderHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 192B15DC371C3315E3DA7B0835948D46 /* SDMemoryCache.m in Sources */ = {isa = PBXBuildFile; fileRef = A81AECFF8E1F73B77CAA85317535033B /* SDMemoryCache.m */; }; + 19455B45062FA4F53103B762C5B9AF97 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B824E5AF2221D092BE5A1A822E873BE /* Foundation.framework */; }; + 1AE03868F4E31F62BCBE9051978180FF /* SDImageCodersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F81BACDC9B577015CBEFAE1A80FBE26 /* SDImageCodersManager.m */; }; + 1B0372EA385B6F1CCAC0CA0AC17F3651 /* SDImageAPNGCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = AD5A1EB39CE236BD6C92CDB7DD8C1AF1 /* SDImageAPNGCoder.m */; }; + 1BB3AAAA83FAACC8DE7A841E2273B4BB /* SDImageLoadersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA60A64A833A4B8DC23F989F1C2E9D9 /* SDImageLoadersManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1CAE9F5738F169D40B741137CD7FF06C /* SDImageHEICCoderInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C9074C0D6316F4B7DADF577304855A3 /* SDImageHEICCoderInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 1D43414EC34B38C807E95E6B37A77114 /* SDAsyncBlockOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = DDD57922D2276A46856E9B5968FEF9ED /* SDAsyncBlockOperation.m */; }; + 1D470F9DB162E15EC3364ADCF32CD1FB /* SDImageCachesManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B146E8C1E1E2B8288F5C436A48C96848 /* SDImageCachesManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E1BFD1D2135616B46FCAD4D7F296ADD /* UIView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = B776BB779BE8F078BFE7951C7834A9C0 /* UIView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 210E21FA8E55A7877318D33EEC09231F /* Pods-FlinkChallenge-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 136B257FE4F1E5738AED1F81035EB0D2 /* Pods-FlinkChallenge-dummy.m */; }; + 22B458313D70FC26ED7F5CB5F39057E9 /* SDImageCachesManager.m in Sources */ = {isa = PBXBuildFile; fileRef = F042B2A1EFA687659376AE78B6C51113 /* SDImageCachesManager.m */; }; + 22ECBCA7BF00C97BFC96E845CE28C3F1 /* SDGraphicsImageRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A9CFD9F9B13C957E6E1D3CE893B82C7 /* SDGraphicsImageRenderer.m */; }; + 23C7E04F0710AA1726CC374DB5A2839C /* SDWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 64C82F31B215D15E8F532BB74328730E /* SDWebImageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 278F3B7DE414E62D282ED8B0E2AEDAEC /* SDWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E47C5DC59846B430D90AAC649D5A437 /* SDWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2D56B1EDB6CF4FC42EF0505C76303631 /* Transition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25EA370B85694F988D549C40EC1BFD1A /* Transition.swift */; }; + 2EF1808076E440C3950587ECBBC4EFBF /* SDAnimatedImagePlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DF1FF7D493EA476A176442737993B05 /* SDAnimatedImagePlayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2F9303485B676A6B00C427E54F651797 /* SDDeviceHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 04DCE39BF0C72025B7C8DB1CCFAF631D /* SDDeviceHelper.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 3086B5C783C9E48FF561052ED3618C63 /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 46CADD225887D9E729105DF6BCBD3466 /* SDWebImage.framework */; }; + 322B2048DF5D6C3C8E2ECA67486D2D76 /* SDImageCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = B3762388D9EB7668E7F9630315615F4B /* SDImageCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 332F8152E7D50E99E8A3F510E10E2205 /* SDImageCoderHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = F16BFBD1B61857E1B2FAECA87CEF0633 /* SDImageCoderHelper.m */; }; + 33836ABEE1FD025EC9A7037C3E85739D /* SDDeviceHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = AD5E8E783C441A54839F242D9C03ED66 /* SDDeviceHelper.m */; }; + 3455D1D8559F40ABB94505E8DD4B5758 /* UIImage+MemoryCacheCost.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A86A86EF1D3F198B49F782D7C861497 /* UIImage+MemoryCacheCost.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 358DA05F6B74D2343A284822E10E3997 /* SDImageCacheConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 83CABE05A7EB2F78061260983A13BAFE /* SDImageCacheConfig.m */; }; + 376DB4F7F99BD69CC116D0871279AE25 /* SDAsyncBlockOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = BA8CCBD6E209F27E733AB0AF50C57F73 /* SDAsyncBlockOperation.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 39E5B526BD73D5A812D62019DE4526E6 /* SDDiskCache.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C87DEF0CD545B55F895849FF2659C7 /* SDDiskCache.m */; }; + 3A06D764805295B14ABBDABD50935B4D /* UIImage+ExtendedCacheData.h in Headers */ = {isa = PBXBuildFile; fileRef = 00331F9E3D9953042E5FDB318E39E1D5 /* UIImage+ExtendedCacheData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3A3DAC9704D5248CE262D6300F60A94B /* SDInternalMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F2CEEF00CFFA06E846F2082B7D7D282 /* SDInternalMacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 3E153BF6AB35E65D1B89B954FBBBC496 /* SDWebImageCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = 9725183A5B6D4B5C501C572763D2A520 /* SDWebImageCompat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3F48C4E304E3500ECF35848EAB3600D1 /* SDWebImageDownloaderOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 91DFCDEA082D435D1A8AA7FE59C30B7B /* SDWebImageDownloaderOperation.m */; }; + 414F8B1C371AD4C19EA5753105923EE3 /* SDWebImageSwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0278760B10298475F836F339AD177E7A /* SDWebImageSwiftUI.swift */; }; + 4582E2C5ED67C8CF3322A5E2B41A6B77 /* UIImage+GIF.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A17E28ED3FAFE8336DB7180AB644D6D /* UIImage+GIF.m */; }; + 463792E77E43A2D086CC8561D81120D0 /* SDWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D71B62A2B71ECF03593A62B7AFE1C7D4 /* SDWebImageManager.m */; }; + 47F36D10A5498BC6E388999E74C6116B /* NSData+ImageContentType.m in Sources */ = {isa = PBXBuildFile; fileRef = AC441725DBDA71E77ADABFFDD1C393F5 /* NSData+ImageContentType.m */; }; + 486BB1A57587DEAEC3C3D98779C4CB1E /* SDAnimatedImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 997E750BEC4D2D37B1E30DCB95A0755E /* SDAnimatedImage.m */; }; + 48D3FCE0D96726A8863B34853C72EEB7 /* NSBezierPath+RoundedCorners.h in Headers */ = {isa = PBXBuildFile; fileRef = FE6A4C8D049AB4E3215F41963DEDB092 /* NSBezierPath+RoundedCorners.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 4A2A99EC242EBBB2E149F0A055A057C6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B824E5AF2221D092BE5A1A822E873BE /* Foundation.framework */; }; + 4CBBAAE18A14064FB7D4C1C86BE93C0F /* SDWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 29602839AB38F63DA66AF94EA7E6C900 /* SDWeakProxy.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 4F5D3630A5C11432971240D65B4664C4 /* SDDisplayLink.m in Sources */ = {isa = PBXBuildFile; fileRef = D6B1A7017C6831E7A3524937C106664C /* SDDisplayLink.m */; }; + 50532304ED12B172CAFE09F6E4CE12B9 /* UIColor+HexString.h in Headers */ = {isa = PBXBuildFile; fileRef = DCE47DCC5A963DAF0BD85C9AD6624409 /* UIColor+HexString.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 51CCBCC66C9C0EAC5A2663B97C46FDA3 /* SDWebImagePrefetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = FA1AC9D9ABFC23B18E2A5289BED38D31 /* SDWebImagePrefetcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 55E7E9CE51F5B699BCEEA8CF17A83119 /* SDImageFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 319A808BABC275F737C08AB383315E50 /* SDImageFrame.m */; }; + 56A9EEEF02261C84DB8BA6119968EE7E /* SDImageCachesManagerOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = A54321916697656C6F9BA7ACE050FD00 /* SDImageCachesManagerOperation.m */; }; + 57E85DBBAA5B1BFBA65C4F1C9723E26F /* UIView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B357648CAA68C9E7BFA3E8BC8D332BA /* UIView+WebCache.m */; }; + 588902B9C27AA75941EEF32E97FD515B /* SDWebImageError.h in Headers */ = {isa = PBXBuildFile; fileRef = A6A6B9AB6BB23ADEDE9790AD66E5D732 /* SDWebImageError.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5BD126FB925F0EDF79EEF50124DB62A2 /* SDWebImageError.m in Sources */ = {isa = PBXBuildFile; fileRef = 056064E3F6A2AE248C86056C8AA54996 /* SDWebImageError.m */; }; + 5CB09AC6238B57FE94994203B408DC92 /* ActivityIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46E7F3B7A726E8843DEF7045A384CFB7 /* ActivityIndicator.swift */; }; + 5D4B6B10F2B4A60D4B539898C5CD2C1D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B824E5AF2221D092BE5A1A822E873BE /* Foundation.framework */; }; + 5D6ED21F85EF70191E62C209C97B3C27 /* SDAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F93C7A5F49BD98DE912046D3CBCA03C /* SDAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5EDD97522C143C415E1E46DC69C036F7 /* SDImageIOCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FBDC614C4DA9E3958C7C9B44B096B34 /* SDImageIOCoder.m */; }; + 63DF3990E451E4752DDD1D7EBD22D489 /* UIImageView+HighlightedWebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = A2DD9AB210C6A35EFF5FCE0714322ED3 /* UIImageView+HighlightedWebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 643EAE5CBA6EF3F775F1B5DBEFF600DE /* SDWebImageTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 57DF2CC2EF2725A9A0F2F224234B6D57 /* SDWebImageTransition.m */; }; + 64E2BD880852C6683121AA1DC8DA573E /* UIView+WebCacheOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E6C00B0542293F53C23EE9BD4AFFAB7 /* UIView+WebCacheOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 678628C10D335350CEF873E334172625 /* SDWebImageDownloaderConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 763E8DB4B7B558C628646920252D2544 /* SDWebImageDownloaderConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 68435747676265C2A96CE14CA985F7EB /* ImageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62A88A76F0CB9CE353BE408C2C26CE62 /* ImageManager.swift */; }; + 6C0FCFD1B41369A64AA972331A6544C0 /* SDImageTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 44B403CA37DDD006462E3EF983262F12 /* SDImageTransformer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6E2BE4334E89DF90FCDB91C7FE3B5B9F /* SDDisplayLink.h in Headers */ = {isa = PBXBuildFile; fileRef = A97309D833F04A2C33F4FC0408292F88 /* SDDisplayLink.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 7118507682D1DDE50D431472607B14FF /* SDWebImageOptionsProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 748CCFC3007CF059391378B86D04DD42 /* SDWebImageOptionsProcessor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7235AD887413EB5E575800AA3E695D85 /* SDDiskCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 366283774DA6DC0DD2FB85EC9BDF0C13 /* SDDiskCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 72C0616AE56D3FDCF8FFCBC3ADA5DDC5 /* UIImage+ForceDecode.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AF608A8354D74FE317A7FF0E6ACCF3B /* UIImage+ForceDecode.m */; }; + 740531F28EA97E980654CB55E6C96486 /* AnimatedImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 896737F5F44A2CE935146F7EBD0F0795 /* AnimatedImage.swift */; }; + 779E48E74D6C4C3524B0FEC1C5F66D6A /* SDAnimatedImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = C8FE632BF2A4AE36FD3EDD498C772D33 /* SDAnimatedImageView+WebCache.m */; }; + 789F4BDAB0553E3C2B38D9D73EA89E0B /* SDImageHEICCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 187C86FBFD7B09AEBDD37E5C2F5813C7 /* SDImageHEICCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 78AD8518D12426C9EB983AF7696388AA /* SDWebImageCacheKeyFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A087A4ADC5FD9A02367F0CD7F6CEAAE /* SDWebImageCacheKeyFilter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7A502EB9D217422CADC8F6D65462D0D1 /* SDWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 639FEB216FEB25D3823E8B2F3145F269 /* SDWeakProxy.m */; }; + 7DE4AC715F0C443F8B5B547CF73954C3 /* SDImageTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 33F0EE80D26815CEEC97D06E0CFFC103 /* SDImageTransformer.m */; }; + 7F5564793E785690B783FBDD43F83E00 /* ProgressIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34E3639414F00503227876AD742B0D6D /* ProgressIndicator.swift */; }; + 806159ED0DEDFF3634ABD9918AB9BFEC /* SDImageGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = 172EE6CFC06CB7BD0C2A400528CB0111 /* SDImageGraphics.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 82EEB27BE3132E53DA0203632BAB8991 /* SDAnimatedImageRep.h in Headers */ = {isa = PBXBuildFile; fileRef = E33967B26615117BF2D1BCDA786D34D3 /* SDAnimatedImageRep.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 85483C2849A00449F2E24C20CFB9CEF0 /* SDImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 66F78E80F537955882CA3E2BE2656D95 /* SDImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8632E8D94A4EC51C31AE6FEBC762157E /* UIImage+ForceDecode.h in Headers */ = {isa = PBXBuildFile; fileRef = A946820F9CDA2B69A09397A9C2F21E0D /* UIImage+ForceDecode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 869D6900AB8C3E547DF05D4C57DD8C43 /* UIImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 335130CF9E5356C6F7C0E378E43D30AF /* UIImageView+WebCache.m */; }; + 876AFE5D11F7801AA18E6AABC9A5B61B /* UIView+WebCacheOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A43E87382AA30EB2198B81DA1282339 /* UIView+WebCacheOperation.m */; }; + 87B87DEF9717F4FEE64EC905FE032AD0 /* SDmetamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 74E19CDD0CA2AA3D0662C3C43E2BFA2F /* SDmetamacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 89FAC5171D537B4520F6744CD2004484 /* SDAnimatedImagePlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D7024D9B75E59BADE50711449F88E33 /* SDAnimatedImagePlayer.m */; }; + 8A31E02DF7F688B5EAD0BD5E81220868 /* SDWebImageOptionsProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FC2A6D967CFF1E79492EC5E0B7FCEF8 /* SDWebImageOptionsProcessor.m */; }; + 8DED1A3C69E99329B835321A676AA90A /* SDWebImageTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = A12E7CD66668919E69A686D7F8151DD9 /* SDWebImageTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8E317C4C079094248391EE3A5F600ACB /* SDWebImageDownloaderRequestModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D7C396367D99520E2BEF7B65F85DD28 /* SDWebImageDownloaderRequestModifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8EDB9E985C02E082F406F509BD832823 /* SDImageLoadersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 483C81B476430AB8FEA4C2DDF9ABC605 /* SDImageLoadersManager.m */; }; + 8FBC254CDA0F96953D8E6F3C281AE052 /* SDInternalMacros.m in Sources */ = {isa = PBXBuildFile; fileRef = AA80F11E652E7F69C9839B23E9AF4ACC /* SDInternalMacros.m */; }; + 9025CF7D7AB01C5426C478E75AA264FF /* SDFileAttributeHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = F1885669B3A9DCBFF256CC48ED65E243 /* SDFileAttributeHelper.m */; }; + 91253CDB31E5ADDBD1CECC022DD2A618 /* UIImage+GIF.h in Headers */ = {isa = PBXBuildFile; fileRef = FBA896A8B1711AA950E91B88CDC4F6F1 /* UIImage+GIF.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 92C2E242ADD10755E484F42574B582DC /* SDImageCodersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 74F5BFBC90770B38B0A6664DBFC6BA14 /* SDImageCodersManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9651BDAC69449B000C1D7A1B452A5F16 /* SDWebImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E5B0F82B5F4AD48E6EDC70513B22A79C /* SDWebImage-dummy.m */; }; 9B23EB72E50226026D156764FC36C4C7 /* Pods-FlinkChallengeTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 669414A5902881839E342AFC74AC862F /* Pods-FlinkChallengeTests-dummy.m */; }; - 9D18B7FA1CC31C3FF45B94FBCBAAE632 /* NSData+ImageContentType.h in Headers */ = {isa = PBXBuildFile; fileRef = F994B93050F6B2221CFA0139095E9347 /* NSData+ImageContentType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9D6A1DEB240715D777FED81A8F4953C3 /* SDWebImageDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = D7687A0DCD34F208F673601D84AE2D94 /* SDWebImageDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9E2ABE06CB1F4C73B8A7EC8FA113BDC1 /* SDWebImageDownloaderResponseModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 2037E0D33B1413BAF48C45B1F6051AFB /* SDWebImageDownloaderResponseModifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9E778105D59FB98F6B8528F92ACEAC56 /* SDImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 49D5D88B1EC09DE6E61BE00E943AC5E0 /* SDImageCache.m */; }; - 9FDEEEE37349769B84A30B0105DFF456 /* SVProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 89F2FEFCFBF175EE0D0E41A4EF75DC0E /* SVProgressHUD-dummy.m */; }; - A1667A1C69C1BF757BA223B11EE52533 /* SDImageHEICCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A913CAB3C4221F901C34D296F09F578 /* SDImageHEICCoder.m */; }; - A1988D5290EC5CE33E4389BE7A96FEDE /* SDImageAssetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E72595D9B1A8653BEB4EDD19C7DFF98A /* SDImageAssetManager.m */; }; - A21CDBD84A381EABD64C6CBD1BB22C03 /* SDAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = D692E88FF1DB3990431C5D07C8ED768C /* SDAnimatedImageView.m */; }; - A53206CF6B601A31C9A26A7FD702B755 /* SDGraphicsImageRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = 7902BBFD44072883FDA039C5FE91223C /* SDGraphicsImageRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A6AC0E104B89E55FF20F71AD1378327F /* UIImage+Metadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 272013C86DD8549FEA2BB7451E222F9D /* UIImage+Metadata.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A88826605A1404C982370C2899A90453 /* SDWebImageDownloaderConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 81279A01D3AB912CC139D2EFA54920FC /* SDWebImageDownloaderConfig.m */; }; - AA49358A8DAAFCF4AC5C3D35C019DBA1 /* SDImageGIFCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C6C4072C217ED7ED434A8F7CA75306A /* SDImageGIFCoder.m */; }; - AA7BF183545ABF4F95F990B643DEFE36 /* UIImage+MultiFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 44E52D44FB0A5181FF0B80821AB15245 /* UIImage+MultiFormat.m */; }; - AC7D6ACE2B56F7390C12C5F198926947 /* SDImageFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E306DD74ED66609CFC627AD311C8341 /* SDImageFrame.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AFE09BA1226B65A8734DC44AB016DD37 /* UIButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EA5F6ED133D395B22506572D6CFE642 /* UIButton+WebCache.m */; }; - B213BE7B6CDF6B11C2F923BAA1503E60 /* SDWebImageCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = C730F9E8B9192A5ACA781F274DBC3923 /* SDWebImageCompat.m */; }; - B2EFFFB946E3DA10CC8FAFDF13F303F8 /* NSButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = A2F6EF6F65AEB0A6A6D029FE402E6A97 /* NSButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B5B9915F785CB47C5C07F0B698911B00 /* SVIndefiniteAnimatedView.m in Sources */ = {isa = PBXBuildFile; fileRef = 54E893EBFC81298577BCD2D55951516F /* SVIndefiniteAnimatedView.m */; }; - B6434ED43270F7B2122777D9FC20B563 /* SDImageLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = CCEF4FD7CF856706C61D2B26742527E6 /* SDImageLoader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BB166BC9C29E7EE6FB9B809499596DB2 /* SDWebImageIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = D70D9F6B2B134E98E40463884C2686AF /* SDWebImageIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BC6ABA96897E957B50B45578E5EBABDF /* SDAnimatedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 08C403741518BDC894889C8A9568EC18 /* SDAnimatedImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BE52A331791DB9E924EBA0B25E1FE15A /* SDWebImageCacheSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = DADF3EFD983BEA37C50B479B9776409E /* SDWebImageCacheSerializer.m */; }; - BED9BAE56C415C337E0938A0B673E5A6 /* SDImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D012F61959E829EC38335E8E2E9800A /* SDImageCoder.m */; }; - BF5E4B6607B21963C4532392164148D4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC3614998EA35AEFFF5A66542468F26B /* Foundation.framework */; }; - C045B694CAEF45CD65B43F26DBE23055 /* UIImage+Transform.h in Headers */ = {isa = PBXBuildFile; fileRef = 28109F72ECBA723B976024C998B9D074 /* UIImage+Transform.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C1A37CCEAA883B05B54421B69015AF84 /* NSBezierPath+RoundedCorners.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BB86C26529231B013CDD5FF20B3F572 /* NSBezierPath+RoundedCorners.m */; }; - C20A4DB9B8D39D25340A0605F7990BC6 /* UIImage+ExtendedCacheData.m in Sources */ = {isa = PBXBuildFile; fileRef = F214808C4152205E118D589C77F25B52 /* UIImage+ExtendedCacheData.m */; }; - C2678A6316F49AD455DC529AA5D6283A /* SDWebImageDownloaderRequestModifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 09AE3D7DAB52B5124D6F747E0137CA00 /* SDWebImageDownloaderRequestModifier.m */; }; - C62F8BE97BFFD3EA1E778638470ECEAD /* SDImageGIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 049954F0373BDD4AE7981178D42EEE31 /* SDImageGIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C6C524BE279B52DAECD66A58626F0E05 /* SDWebImageSwiftUI-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FF65112BE06EC1D3CC2071A04D29E39A /* SDWebImageSwiftUI-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CA1D4B2F6509B769AB99701947E2A81B /* UIColor+HexString.m in Sources */ = {isa = PBXBuildFile; fileRef = 40EC2945EA2EFDD97545D2FA3AD4E8AB /* UIColor+HexString.m */; }; - CB08BC5FF3D0D56F644D630ADD66B2BF /* SDWebImageDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = 6967EAFBD579274F5D681C2DCD9D7445 /* SDWebImageDefine.m */; }; - CDD81477DA2C0D62BA69784E28A72EB6 /* UIImageView+HighlightedWebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 5995C888DC67487A9182108ACF505CBC /* UIImageView+HighlightedWebCache.m */; }; - CE7AEF52A506D5D262575E1B4CCA8897 /* SDAnimatedImageRep.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C73DFE94500168EFCBAD79BB8FBAE7A /* SDAnimatedImageRep.m */; }; - CFD42B688AC057D7822A2031C4F71829 /* SDImageCacheConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = AF79E1C3FE3C01CFF8E572AA5432EB20 /* SDImageCacheConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D12D56E30739DA73F235BC17ACF87566 /* UIImage+MultiFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = B149E4652B36FCA250DE847A88DBD102 /* UIImage+MultiFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D2246BE5AF9C116D84444CC5C955BC02 /* SVRadialGradientLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = EBAA428493C57844440E4E4B10F32E5C /* SVRadialGradientLayer.m */; }; - D4826BAAEACCB493F7E94B24256E82AE /* Indicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C0F527EBD6C19E807D58706AC651355 /* Indicator.swift */; }; - D4914107FF5A197B9D0BC6D1C089E33D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC3614998EA35AEFFF5A66542468F26B /* Foundation.framework */; }; - D5AD10F58C4BE73F8C8815DB99D1D885 /* SDWebImageCacheSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D0F2694C66EAF7B3345895796802814 /* SDWebImageCacheSerializer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D6ACAD28CB3AA58B148E695F94F5823D /* SDWebImage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C372A28D3F15964F4C9E5B028862669C /* SDWebImage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D87B2D5ED73534ACF97CE0A52FA18AE4 /* SVRadialGradientLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EE7870C95FAD574A17C5831D945CAB1 /* SVRadialGradientLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DCFBE9CE8A3BFF1138C75E940E189588 /* SDWebImageSwiftUI-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 92889D2F6A48CB2E718285B84D2E0801 /* SDWebImageSwiftUI-dummy.m */; }; - DE12057AB8895931A0E9499619C5CFC8 /* SVProgressHUD-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D8CE87AE35A48075E7FC2C39E1EE213F /* SVProgressHUD-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DEAC387A22B816446BA3C64F77E5613F /* SDAnimatedImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 32CAB1DB6DB39533D1EB1A0EA150BC15 /* SDAnimatedImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DFC4EAAC5CB1A34E2AF6D5066E4EE04A /* SDImageGraphics.m in Sources */ = {isa = PBXBuildFile; fileRef = D7A2812970DFB6B7FD171E84B35BB4C5 /* SDImageGraphics.m */; }; - E0186A63060F0EB3676F95CD0ACE0E18 /* SVProgressAnimatedView.h in Headers */ = {isa = PBXBuildFile; fileRef = 01B27D764711FB6235ABB00A55C022D7 /* SVProgressAnimatedView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E0C71956B1B27615D7CE012C477A12C0 /* SDImageIOAnimatedCoderInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E81999F539A7553A8459E6A7D1C262D /* SDImageIOAnimatedCoderInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - E0DF427BD4DCEEAA6B284D35CE817449 /* WebImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = B305804ECD7455CDF357BD37989B6CEF /* WebImage.swift */; }; - E0FF5E72295F0C9DEFEE8271D2DE93FD /* SDWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = DC96DD8C81DA03BFB0414B83D98684D5 /* SDWebImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E156B54B3B08115FD554C0531C157EDE /* SDWebImageDownloaderDecryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 87E369366B10E5EACC3325FBF9004D25 /* SDWebImageDownloaderDecryptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E4295C693DAA26B92ECE1AC55F06D963 /* SDWebImageDownloaderDecryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 83E356D49AD6C96EF038F303EE5B3371 /* SDWebImageDownloaderDecryptor.m */; }; - E44C0609FB4C512F292144A83A621FAF /* SDImageIOCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C0D4053BD208D6F61E8918DA5C1BEB6 /* SDImageIOCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E4B61E1C722789734C64C7E250B95276 /* SDImageAssetManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A3777410DB7F0EA0C655891218691F8 /* SDImageAssetManager.h */; settings = {ATTRIBUTES = (Private, ); }; }; - E6E70125913AE18AF7C23C8911C9C0ED /* SDAssociatedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = DF76CE1FBBD7F2E3CFAE16D32BC1E756 /* SDAssociatedObject.h */; settings = {ATTRIBUTES = (Private, ); }; }; - EB39B90C593DA747957473CEF4888E5A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC3614998EA35AEFFF5A66542468F26B /* Foundation.framework */; }; - EBFA160D075EFDCD8E970FF3DAEABABC /* SDImageIOAnimatedCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C7856B12E2902EEF5D3544931106E4D /* SDImageIOAnimatedCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EDE3D4123FC73F3BE764A38B022258E4 /* SDImageCachesManagerOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 76DA4CE342A392FE2B2178837B9A9A37 /* SDImageCachesManagerOperation.h */; settings = {ATTRIBUTES = (Private, ); }; }; - EDF82D821ECA4B260D88514C63E3D43C /* SDWebImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 7549952B9C1DCE4FB3B4623E5FCADE8A /* SDWebImageDownloader.m */; }; - EEAA1518C49804736C3F40117D064CBE /* SVProgressAnimatedView.m in Sources */ = {isa = PBXBuildFile; fileRef = AE70A68950F956C47D677966ACD15281 /* SVProgressAnimatedView.m */; }; - EFE29C62AF47237394BF6BF690B87B30 /* SDImageAPNGCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = EA78DF08F4EF3EDDF7059FA4E9C77879 /* SDImageAPNGCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F00565485DA2B9BF62861391344EB39F /* SDWebImageSwiftUI.h in Headers */ = {isa = PBXBuildFile; fileRef = A56ED5FFDFBEB60BD6C9EC22CFEB9500 /* SDWebImageSwiftUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F03488A96162CD4E7A408FB5AD200239 /* ImageViewWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28ADAB1ED4D4C9D135C49D1714D18E9E /* ImageViewWrapper.swift */; }; - F0FCA263692550D4FD0D7CADE1336EA6 /* SDWebImageDownloaderResponseModifier.m in Sources */ = {isa = PBXBuildFile; fileRef = B3E0D614A6A95DD5D62B73BB7865A6C8 /* SDWebImageDownloaderResponseModifier.m */; }; - F5446FC83EE429EF1164D15A7679CC5C /* UIImage+MemoryCacheCost.m in Sources */ = {isa = PBXBuildFile; fileRef = EE8B3F49B69C130DDD7DEA21E4CAB422 /* UIImage+MemoryCacheCost.m */; }; - F5C59AD186DA3A84879B599C396E5082 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0CD7AD0B624A7E748E818D75557B16F4 /* ImageIO.framework */; }; - F92E7DE32374697CBAA106986E7EB201 /* UIImage+Transform.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D890C89F980CB78483120F2863B4A9F /* UIImage+Transform.m */; }; - FD9034019C5606F468FC86A91AF0EAF3 /* SDImageCacheDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = 5828A8AC0E688C7F6A6A9EDA721A898B /* SDImageCacheDefine.m */; }; + 9D18B7FA1CC31C3FF45B94FBCBAAE632 /* NSData+ImageContentType.h in Headers */ = {isa = PBXBuildFile; fileRef = 604A4C137A0EC9392D3AC4A826B89C28 /* NSData+ImageContentType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9D6A1DEB240715D777FED81A8F4953C3 /* SDWebImageDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 31574246F689CE3741DA89C7DD1080CC /* SDWebImageDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9E2ABE06CB1F4C73B8A7EC8FA113BDC1 /* SDWebImageDownloaderResponseModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DDEB69EA7BB87536DE8576A3EBDF5FA /* SDWebImageDownloaderResponseModifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9E778105D59FB98F6B8528F92ACEAC56 /* SDImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = FC4DAD1653FB05D7804EABEB17306FA9 /* SDImageCache.m */; }; + A1667A1C69C1BF757BA223B11EE52533 /* SDImageHEICCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D1EC35ABFA3630EFA311FDF6B39ED13 /* SDImageHEICCoder.m */; }; + A1988D5290EC5CE33E4389BE7A96FEDE /* SDImageAssetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E50ADC23317B8083C5849800777A56C0 /* SDImageAssetManager.m */; }; + A21CDBD84A381EABD64C6CBD1BB22C03 /* SDAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = CD9787286866A9A791CD038D24D9FB21 /* SDAnimatedImageView.m */; }; + A53206CF6B601A31C9A26A7FD702B755 /* SDGraphicsImageRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C9D576C7267A749171F2282DA01E2B8 /* SDGraphicsImageRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A6AC0E104B89E55FF20F71AD1378327F /* UIImage+Metadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 1159DDE377D719B4E8ED78046EA7CFF5 /* UIImage+Metadata.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A88826605A1404C982370C2899A90453 /* SDWebImageDownloaderConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 04A59DF2A740EF9103C9D00B81F8521E /* SDWebImageDownloaderConfig.m */; }; + AA49358A8DAAFCF4AC5C3D35C019DBA1 /* SDImageGIFCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C16791E79ACB37BA6DBF5F140CB553A /* SDImageGIFCoder.m */; }; + AA7BF183545ABF4F95F990B643DEFE36 /* UIImage+MultiFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 7657A89ECB131537E6E118C911E3E280 /* UIImage+MultiFormat.m */; }; + AC7D6ACE2B56F7390C12C5F198926947 /* SDImageFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C9DC434546BE3B91591E9A463607DAA /* SDImageFrame.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AFE09BA1226B65A8734DC44AB016DD37 /* UIButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E8021A60B1C6879E05F36CA0AE73415 /* UIButton+WebCache.m */; }; + B213BE7B6CDF6B11C2F923BAA1503E60 /* SDWebImageCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = 610EA1B815C7C16BA686744C8CAB43F3 /* SDWebImageCompat.m */; }; + B2EFFFB946E3DA10CC8FAFDF13F303F8 /* NSButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = F2268387BC57987FA920B46F0E6A9F62 /* NSButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B6434ED43270F7B2122777D9FC20B563 /* SDImageLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = ACF4429A390C63AAA5CDAEC362AE3382 /* SDImageLoader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BB166BC9C29E7EE6FB9B809499596DB2 /* SDWebImageIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C1E68DCCF96A553029332423DDE77D1 /* SDWebImageIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC6ABA96897E957B50B45578E5EBABDF /* SDAnimatedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 5310BEBDD7710C53B3311C954109F8B8 /* SDAnimatedImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BE52A331791DB9E924EBA0B25E1FE15A /* SDWebImageCacheSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = D170C0DEAB467EF3750DFB6E643D42E1 /* SDWebImageCacheSerializer.m */; }; + BED9BAE56C415C337E0938A0B673E5A6 /* SDImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 904EA8EA4F1AAC6985EB7D44BCAD21D8 /* SDImageCoder.m */; }; + C045B694CAEF45CD65B43F26DBE23055 /* UIImage+Transform.h in Headers */ = {isa = PBXBuildFile; fileRef = 31FC9A2F7A641E7ADF39E81337563D9B /* UIImage+Transform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C1A37CCEAA883B05B54421B69015AF84 /* NSBezierPath+RoundedCorners.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B117F1063EED6DF826FFA7651449AFE /* NSBezierPath+RoundedCorners.m */; }; + C20A4DB9B8D39D25340A0605F7990BC6 /* UIImage+ExtendedCacheData.m in Sources */ = {isa = PBXBuildFile; fileRef = 06AF23753386CB5CB0A29A611C47FF0F /* UIImage+ExtendedCacheData.m */; }; + C2678A6316F49AD455DC529AA5D6283A /* SDWebImageDownloaderRequestModifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EB1B519DE169B23173A3F0DA46F99FE /* SDWebImageDownloaderRequestModifier.m */; }; + C62F8BE97BFFD3EA1E778638470ECEAD /* SDImageGIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 2EA531D86DCCA39BDA3743872D47BB0F /* SDImageGIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C6C524BE279B52DAECD66A58626F0E05 /* SDWebImageSwiftUI-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 795D09CFB6D3DC4EA6490E63695F89D9 /* SDWebImageSwiftUI-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA1D4B2F6509B769AB99701947E2A81B /* UIColor+HexString.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F0A803CA599D21B14176E04B0C17FC2 /* UIColor+HexString.m */; }; + CB08BC5FF3D0D56F644D630ADD66B2BF /* SDWebImageDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DA65C489E9C5D35F0901BBDA828AF94 /* SDWebImageDefine.m */; }; + CDD81477DA2C0D62BA69784E28A72EB6 /* UIImageView+HighlightedWebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A977DB8D5B1B000C760B5982A8F21DC /* UIImageView+HighlightedWebCache.m */; }; + CE7AEF52A506D5D262575E1B4CCA8897 /* SDAnimatedImageRep.m in Sources */ = {isa = PBXBuildFile; fileRef = 89049E5937E4EAA858DB0A7599EDB522 /* SDAnimatedImageRep.m */; }; + CFD42B688AC057D7822A2031C4F71829 /* SDImageCacheConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = BA320D76763623BAB26F8AF18A5AEB55 /* SDImageCacheConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D12D56E30739DA73F235BC17ACF87566 /* UIImage+MultiFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 32CE41E69F82E8D5F1D5FA1FC872AE6E /* UIImage+MultiFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D4826BAAEACCB493F7E94B24256E82AE /* Indicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A09A92927EE3BEFE56F469AB63BDF6C /* Indicator.swift */; }; + D5AD10F58C4BE73F8C8815DB99D1D885 /* SDWebImageCacheSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = D12A96594105AE39AB7DB4CAC307E480 /* SDWebImageCacheSerializer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D6ACAD28CB3AA58B148E695F94F5823D /* SDWebImage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E8AB468C4562262408CD193FC330400 /* SDWebImage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DCFBE9CE8A3BFF1138C75E940E189588 /* SDWebImageSwiftUI-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 96F83922C0609C89DF506953D0B030FA /* SDWebImageSwiftUI-dummy.m */; }; + DEAC387A22B816446BA3C64F77E5613F /* SDAnimatedImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = EDDEAC84ECD9A72046E2068BD33FAC17 /* SDAnimatedImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DFC4EAAC5CB1A34E2AF6D5066E4EE04A /* SDImageGraphics.m in Sources */ = {isa = PBXBuildFile; fileRef = F3E4B92637606AF74B96DE35EF2BE863 /* SDImageGraphics.m */; }; + E0C71956B1B27615D7CE012C477A12C0 /* SDImageIOAnimatedCoderInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = CDF631BB3B1D614A8666573249A448F4 /* SDImageIOAnimatedCoderInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + E0DF427BD4DCEEAA6B284D35CE817449 /* WebImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2AD9B07E3C4BDD2B3332A408BAC47ADD /* WebImage.swift */; }; + E0FF5E72295F0C9DEFEE8271D2DE93FD /* SDWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CDB4BF4EB268FD1BE0FDB1CBA453D2A0 /* SDWebImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E156B54B3B08115FD554C0531C157EDE /* SDWebImageDownloaderDecryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = F4FA8DACF440E20A1A4DA8C043714096 /* SDWebImageDownloaderDecryptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E4052573B166F76043AA5ECEB01682E9 /* Pods-FlinkChallenge-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CB766A5934CC3CCA90AB94AED7F66E9 /* Pods-FlinkChallenge-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E4295C693DAA26B92ECE1AC55F06D963 /* SDWebImageDownloaderDecryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = F5E058AB4F1C9923E359F8EF8E26CD0F /* SDWebImageDownloaderDecryptor.m */; }; + E44C0609FB4C512F292144A83A621FAF /* SDImageIOCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = E312F8875484F482DFFFEEB5748D7D87 /* SDImageIOCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E4B61E1C722789734C64C7E250B95276 /* SDImageAssetManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 73EC18EA177FD4CBF85C7EFBAC3D68A1 /* SDImageAssetManager.h */; settings = {ATTRIBUTES = (Private, ); }; }; + E6E70125913AE18AF7C23C8911C9C0ED /* SDAssociatedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 1BC428F74567C7F2DB4EFA81B91F649C /* SDAssociatedObject.h */; settings = {ATTRIBUTES = (Private, ); }; }; + EB39B90C593DA747957473CEF4888E5A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B824E5AF2221D092BE5A1A822E873BE /* Foundation.framework */; }; + EBFA160D075EFDCD8E970FF3DAEABABC /* SDImageIOAnimatedCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 02C55A062BA684225818A48E10A9D8B8 /* SDImageIOAnimatedCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDE3D4123FC73F3BE764A38B022258E4 /* SDImageCachesManagerOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C3676502CEF4DAE69C14EE4DCF16C08 /* SDImageCachesManagerOperation.h */; settings = {ATTRIBUTES = (Private, ); }; }; + EDF82D821ECA4B260D88514C63E3D43C /* SDWebImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F0D9705B1058066A55F155EA15EBA89 /* SDWebImageDownloader.m */; }; + EFE29C62AF47237394BF6BF690B87B30 /* SDImageAPNGCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 518BBBB8EA5DD253C9A61E1289D789A6 /* SDImageAPNGCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F00565485DA2B9BF62861391344EB39F /* SDWebImageSwiftUI.h in Headers */ = {isa = PBXBuildFile; fileRef = 896E67ACDD2F42848B67E9F3CB3728AD /* SDWebImageSwiftUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F03488A96162CD4E7A408FB5AD200239 /* ImageViewWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4579ED34AB26D09DE42339BC75E68B9D /* ImageViewWrapper.swift */; }; + F0FCA263692550D4FD0D7CADE1336EA6 /* SDWebImageDownloaderResponseModifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 277ADB427377F841FE1B43A0C5142AAF /* SDWebImageDownloaderResponseModifier.m */; }; + F5446FC83EE429EF1164D15A7679CC5C /* UIImage+MemoryCacheCost.m in Sources */ = {isa = PBXBuildFile; fileRef = D7A3139E79A276EE7F1817B6D5FB738F /* UIImage+MemoryCacheCost.m */; }; + F5C59AD186DA3A84879B599C396E5082 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DBC3A183D77004891A7FE072A39CC95 /* ImageIO.framework */; }; + F92E7DE32374697CBAA106986E7EB201 /* UIImage+Transform.m in Sources */ = {isa = PBXBuildFile; fileRef = D3D2294354EC9A4985E4F46E027F75A5 /* UIImage+Transform.m */; }; + FD9034019C5606F468FC86A91AF0EAF3 /* SDImageCacheDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = 15A9A8B9C7F1FD0808A3D765000B7507 /* SDImageCacheDefine.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 1FAE64F300DDA9017387568FC6E1C5BA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1C8D67D8B72D6BA42CCEDB648537A340; - remoteInfo = SVProgressHUD; - }; - 26F29D5C2DE77C4541793777F7AE2B67 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 92EBFA3E7005B4C18A9C0B44324EB80F; - remoteInfo = SDWebImageSwiftUI; - }; - 9D080CA55458EA709A283666D7E820A9 /* PBXContainerItemProxy */ = { + 763CD611A2A45D29D4ED9E95E4FE4E2F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; @@ -221,212 +194,202 @@ remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; remoteInfo = SDWebImage; }; + EEDD64474F280846C5878FC1ACB19C71 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 92EBFA3E7005B4C18A9C0B44324EB80F; + remoteInfo = SDWebImageSwiftUI; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 012336948580AA8BF086BC269E0CF113 /* NSButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSButton+WebCache.m"; path = "SDWebImage/Core/NSButton+WebCache.m"; sourceTree = ""; }; - 01B27D764711FB6235ABB00A55C022D7 /* SVProgressAnimatedView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVProgressAnimatedView.h; path = SVProgressHUD/SVProgressAnimatedView.h; sourceTree = ""; }; - 02090A03A849CB6A4C5DA56D9E219B7B /* SDImageCodersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCodersManager.m; path = SDWebImage/Core/SDImageCodersManager.m; sourceTree = ""; }; - 036CC3F5D29490B020BD01D3C6B6A6D6 /* SDImageTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageTransformer.h; path = SDWebImage/Core/SDImageTransformer.h; sourceTree = ""; }; - 037765E1A4249C503A3EB9732C9EC8FF /* SDWebImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SDWebImage-Info.plist"; sourceTree = ""; }; - 049954F0373BDD4AE7981178D42EEE31 /* SDImageGIFCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGIFCoder.h; path = SDWebImage/Core/SDImageGIFCoder.h; sourceTree = ""; }; - 0512D7EBA0D13DBEE39AB58B57E97009 /* Transition.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Transition.swift; path = SDWebImageSwiftUI/Classes/Transition/Transition.swift; sourceTree = ""; }; - 07D94E99F5160BEBBBEEC837D23CFE0D /* SDImageAPNGCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAPNGCoder.m; path = SDWebImage/Core/SDImageAPNGCoder.m; sourceTree = ""; }; - 08C403741518BDC894889C8A9568EC18 /* SDAnimatedImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImage.h; path = SDWebImage/Core/SDAnimatedImage.h; sourceTree = ""; }; - 09AE3D7DAB52B5124D6F747E0137CA00 /* SDWebImageDownloaderRequestModifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderRequestModifier.m; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.m; sourceTree = ""; }; - 0C73DFE94500168EFCBAD79BB8FBAE7A /* SDAnimatedImageRep.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageRep.m; path = SDWebImage/Core/SDAnimatedImageRep.m; sourceTree = ""; }; - 0C9B7637547F70D60AFC26043FD8EF2E /* ProgressIndicator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ProgressIndicator.swift; path = SDWebImageSwiftUI/Classes/Indicator/ProgressIndicator.swift; sourceTree = ""; }; - 0CD7AD0B624A7E748E818D75557B16F4 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/ImageIO.framework; sourceTree = DEVELOPER_DIR; }; - 0CF27D539A7C92C54AE8755374BE7ECD /* SDAnimatedImagePlayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImagePlayer.h; path = SDWebImage/Core/SDAnimatedImagePlayer.h; sourceTree = ""; }; + 00331F9E3D9953042E5FDB318E39E1D5 /* UIImage+ExtendedCacheData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+ExtendedCacheData.h"; path = "SDWebImage/Core/UIImage+ExtendedCacheData.h"; sourceTree = ""; }; + 0278760B10298475F836F339AD177E7A /* SDWebImageSwiftUI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SDWebImageSwiftUI.swift; path = SDWebImageSwiftUI/Classes/SDWebImageSwiftUI.swift; sourceTree = ""; }; + 02945C48A31AA92C63B9FFEBFA46197B /* UIImage+Metadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Metadata.m"; path = "SDWebImage/Core/UIImage+Metadata.m"; sourceTree = ""; }; + 02C55A062BA684225818A48E10A9D8B8 /* SDImageIOAnimatedCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoder.h; path = SDWebImage/Core/SDImageIOAnimatedCoder.h; sourceTree = ""; }; + 04A59DF2A740EF9103C9D00B81F8521E /* SDWebImageDownloaderConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderConfig.m; path = SDWebImage/Core/SDWebImageDownloaderConfig.m; sourceTree = ""; }; + 04DCE39BF0C72025B7C8DB1CCFAF631D /* SDDeviceHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDeviceHelper.h; path = SDWebImage/Private/SDDeviceHelper.h; sourceTree = ""; }; + 056064E3F6A2AE248C86056C8AA54996 /* SDWebImageError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageError.m; path = SDWebImage/Core/SDWebImageError.m; sourceTree = ""; }; + 06AF23753386CB5CB0A29A611C47FF0F /* UIImage+ExtendedCacheData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ExtendedCacheData.m"; path = "SDWebImage/Core/UIImage+ExtendedCacheData.m"; sourceTree = ""; }; + 0A17E28ED3FAFE8336DB7180AB644D6D /* UIImage+GIF.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+GIF.m"; path = "SDWebImage/Core/UIImage+GIF.m"; sourceTree = ""; }; + 0C9D576C7267A749171F2282DA01E2B8 /* SDGraphicsImageRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDGraphicsImageRenderer.h; path = SDWebImage/Core/SDGraphicsImageRenderer.h; sourceTree = ""; }; + 0DF5F211CBCE4CE38CE65F0987DCD8FD /* SDWebImageSwiftUI.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SDWebImageSwiftUI.modulemap; sourceTree = ""; }; + 0E47C5DC59846B430D90AAC649D5A437 /* SDWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImage.h; path = WebImage/SDWebImage.h; sourceTree = ""; }; 112D5DFAFE7099B69B1DA28854E4767B /* Pods-FlinkChallengeTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-FlinkChallengeTests-umbrella.h"; sourceTree = ""; }; + 1159DDE377D719B4E8ED78046EA7CFF5 /* UIImage+Metadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Metadata.h"; path = "SDWebImage/Core/UIImage+Metadata.h"; sourceTree = ""; }; 136B257FE4F1E5738AED1F81035EB0D2 /* Pods-FlinkChallenge-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-FlinkChallenge-dummy.m"; sourceTree = ""; }; - 17749DE54A01A3B36B28E07FA21497E0 /* SVProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SVProgressHUD-prefix.pch"; sourceTree = ""; }; - 17A71BA6C1889208D487DE7E785416AB /* SDWebImagePrefetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImagePrefetcher.h; path = SDWebImage/Core/SDWebImagePrefetcher.h; sourceTree = ""; }; + 15A9A8B9C7F1FD0808A3D765000B7507 /* SDImageCacheDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheDefine.m; path = SDWebImage/Core/SDImageCacheDefine.m; sourceTree = ""; }; + 172EE6CFC06CB7BD0C2A400528CB0111 /* SDImageGraphics.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGraphics.h; path = SDWebImage/Core/SDImageGraphics.h; sourceTree = ""; }; + 187C86FBFD7B09AEBDD37E5C2F5813C7 /* SDImageHEICCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageHEICCoder.h; path = SDWebImage/Core/SDImageHEICCoder.h; sourceTree = ""; }; + 19345F1D14EBCCE5232A2013D29809A1 /* SDWebImagePrefetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImagePrefetcher.m; path = SDWebImage/Core/SDWebImagePrefetcher.m; sourceTree = ""; }; 1A40DE3ACBE6821E8E920CB18823D125 /* Pods-FlinkChallengeTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-FlinkChallengeTests-acknowledgements.plist"; sourceTree = ""; }; - 1C0D4053BD208D6F61E8918DA5C1BEB6 /* SDImageIOCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOCoder.h; path = SDWebImage/Core/SDImageIOCoder.h; sourceTree = ""; }; - 1D012F61959E829EC38335E8E2E9800A /* SDImageCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoder.m; path = SDWebImage/Core/SDImageCoder.m; sourceTree = ""; }; - 1DB41E7B00F2AA550223F7BF6BF82827 /* SDWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWeakProxy.m; path = SDWebImage/Private/SDWeakProxy.m; sourceTree = ""; }; - 1EA5F6ED133D395B22506572D6CFE642 /* UIButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+WebCache.m"; path = "SDWebImage/Core/UIButton+WebCache.m"; sourceTree = ""; }; + 1B357648CAA68C9E7BFA3E8BC8D332BA /* UIView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCache.m"; path = "SDWebImage/Core/UIView+WebCache.m"; sourceTree = ""; }; + 1BC428F74567C7F2DB4EFA81B91F649C /* SDAssociatedObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAssociatedObject.h; path = SDWebImage/Private/SDAssociatedObject.h; sourceTree = ""; }; + 1D1EC35ABFA3630EFA311FDF6B39ED13 /* SDImageHEICCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageHEICCoder.m; path = SDWebImage/Core/SDImageHEICCoder.m; sourceTree = ""; }; + 1E8021A60B1C6879E05F36CA0AE73415 /* UIButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+WebCache.m"; path = "SDWebImage/Core/UIButton+WebCache.m"; sourceTree = ""; }; + 1E8AB468C4562262408CD193FC330400 /* SDWebImage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-umbrella.h"; sourceTree = ""; }; 1EDC98827B00FBC9297CD273815FDBEB /* Pods-FlinkChallengeTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-FlinkChallengeTests.debug.xcconfig"; sourceTree = ""; }; - 2037E0D33B1413BAF48C45B1F6051AFB /* SDWebImageDownloaderResponseModifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderResponseModifier.h; path = SDWebImage/Core/SDWebImageDownloaderResponseModifier.h; sourceTree = ""; }; - 2110E1344558933A8E5FDBE9C655482F /* SDWebImageSwiftUI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SDWebImageSwiftUI.swift; path = SDWebImageSwiftUI/Classes/SDWebImageSwiftUI.swift; sourceTree = ""; }; - 2298C37C57558E66AE733441FA898B3C /* SDAnimatedImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImage.m; path = SDWebImage/Core/SDAnimatedImage.m; sourceTree = ""; }; + 1FBDC614C4DA9E3958C7C9B44B096B34 /* SDImageIOCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOCoder.m; path = SDWebImage/Core/SDImageIOCoder.m; sourceTree = ""; }; 24E1DAFCBBC9521F0A3088BDF7F0E100 /* Pods-FlinkChallenge-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-FlinkChallenge-frameworks.sh"; sourceTree = ""; }; - 272013C86DD8549FEA2BB7451E222F9D /* UIImage+Metadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Metadata.h"; path = "SDWebImage/Core/UIImage+Metadata.h"; sourceTree = ""; }; - 28109F72ECBA723B976024C998B9D074 /* UIImage+Transform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Transform.h"; path = "SDWebImage/Core/UIImage+Transform.h"; sourceTree = ""; }; - 28ADAB1ED4D4C9D135C49D1714D18E9E /* ImageViewWrapper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageViewWrapper.swift; path = SDWebImageSwiftUI/Classes/ImageViewWrapper.swift; sourceTree = ""; }; + 25EA370B85694F988D549C40EC1BFD1A /* Transition.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Transition.swift; path = SDWebImageSwiftUI/Classes/Transition/Transition.swift; sourceTree = ""; }; + 277ADB427377F841FE1B43A0C5142AAF /* SDWebImageDownloaderResponseModifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderResponseModifier.m; path = SDWebImage/Core/SDWebImageDownloaderResponseModifier.m; sourceTree = ""; }; + 29602839AB38F63DA66AF94EA7E6C900 /* SDWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWeakProxy.h; path = SDWebImage/Private/SDWeakProxy.h; sourceTree = ""; }; + 2A09A92927EE3BEFE56F469AB63BDF6C /* Indicator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Indicator.swift; path = SDWebImageSwiftUI/Classes/Indicator/Indicator.swift; sourceTree = ""; }; + 2A86A86EF1D3F198B49F782D7C861497 /* UIImage+MemoryCacheCost.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MemoryCacheCost.h"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.h"; sourceTree = ""; }; + 2AD9B07E3C4BDD2B3332A408BAC47ADD /* WebImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WebImage.swift; path = SDWebImageSwiftUI/Classes/WebImage.swift; sourceTree = ""; }; + 2C1E68DCCF96A553029332423DDE77D1 /* SDWebImageIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageIndicator.h; path = SDWebImage/Core/SDWebImageIndicator.h; sourceTree = ""; }; 2CB766A5934CC3CCA90AB94AED7F66E9 /* Pods-FlinkChallenge-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-FlinkChallenge-umbrella.h"; sourceTree = ""; }; - 2D4FDB1E14E32349E0E087EE2000BC76 /* UIColor+HexString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+HexString.h"; path = "SDWebImage/Private/UIColor+HexString.h"; sourceTree = ""; }; - 2F73D6E21AA99DC667717298163E979C /* SDAnimatedImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDAnimatedImageView+WebCache.m"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.m"; sourceTree = ""; }; - 2FC93E2EFC4D7B268518214B89A51AEC /* UIImage+Metadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Metadata.m"; path = "SDWebImage/Core/UIImage+Metadata.m"; sourceTree = ""; }; - 2FDD0434497D4518ADEA73AADB0B2C9F /* SDDiskCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDiskCache.m; path = SDWebImage/Core/SDDiskCache.m; sourceTree = ""; }; - 32CAB1DB6DB39533D1EB1A0EA150BC15 /* SDAnimatedImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDAnimatedImageView+WebCache.h"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.h"; sourceTree = ""; }; - 33265145DAC8AD8C196702A1A55E064D /* SDImageCodersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCodersManager.h; path = SDWebImage/Core/SDImageCodersManager.h; sourceTree = ""; }; - 37B4A75DDBA05F6563121C664391D6FC /* SDInternalMacros.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDInternalMacros.m; path = SDWebImage/Private/SDInternalMacros.m; sourceTree = ""; }; - 385500D2A0F1025FAD2945BE5BD71471 /* SDWebImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloader.h; path = SDWebImage/Core/SDWebImageDownloader.h; sourceTree = ""; }; - 38E9AA3C157D42055DC35A6DC46E8E29 /* NSData+ImageContentType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+ImageContentType.m"; path = "SDWebImage/Core/NSData+ImageContentType.m"; sourceTree = ""; }; - 3A3777410DB7F0EA0C655891218691F8 /* SDImageAssetManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAssetManager.h; path = SDWebImage/Private/SDImageAssetManager.h; sourceTree = ""; }; - 3A6533A44AEA21971F8153B97E7EBF90 /* UIImage+ExtendedCacheData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+ExtendedCacheData.h"; path = "SDWebImage/Core/UIImage+ExtendedCacheData.h"; sourceTree = ""; }; - 3BB86C26529231B013CDD5FF20B3F572 /* NSBezierPath+RoundedCorners.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBezierPath+RoundedCorners.m"; path = "SDWebImage/Private/NSBezierPath+RoundedCorners.m"; sourceTree = ""; }; - 3BCDDE428DC46E2F840DDE76E9AC9137 /* SDFileAttributeHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDFileAttributeHelper.h; path = SDWebImage/Private/SDFileAttributeHelper.h; sourceTree = ""; }; - 3D30E1E1A52721091E589091940B610F /* SDWebImageCacheKeyFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheKeyFilter.m; path = SDWebImage/Core/SDWebImageCacheKeyFilter.m; sourceTree = ""; }; - 3D890C89F980CB78483120F2863B4A9F /* UIImage+Transform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Transform.m"; path = "SDWebImage/Core/UIImage+Transform.m"; sourceTree = ""; }; - 3E81999F539A7553A8459E6A7D1C262D /* SDImageIOAnimatedCoderInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoderInternal.h; path = SDWebImage/Private/SDImageIOAnimatedCoderInternal.h; sourceTree = ""; }; + 2DA65C489E9C5D35F0901BBDA828AF94 /* SDWebImageDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDefine.m; path = SDWebImage/Core/SDWebImageDefine.m; sourceTree = ""; }; + 2EA531D86DCCA39BDA3743872D47BB0F /* SDImageGIFCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGIFCoder.h; path = SDWebImage/Core/SDImageGIFCoder.h; sourceTree = ""; }; + 2F0A803CA599D21B14176E04B0C17FC2 /* UIColor+HexString.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+HexString.m"; path = "SDWebImage/Private/UIColor+HexString.m"; sourceTree = ""; }; + 31574246F689CE3741DA89C7DD1080CC /* SDWebImageDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDefine.h; path = SDWebImage/Core/SDWebImageDefine.h; sourceTree = ""; }; + 319A808BABC275F737C08AB383315E50 /* SDImageFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageFrame.m; path = SDWebImage/Core/SDImageFrame.m; sourceTree = ""; }; + 31FC9A2F7A641E7ADF39E81337563D9B /* UIImage+Transform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Transform.h"; path = "SDWebImage/Core/UIImage+Transform.h"; sourceTree = ""; }; + 32CE41E69F82E8D5F1D5FA1FC872AE6E /* UIImage+MultiFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MultiFormat.h"; path = "SDWebImage/Core/UIImage+MultiFormat.h"; sourceTree = ""; }; + 335130CF9E5356C6F7C0E378E43D30AF /* UIImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+WebCache.m"; path = "SDWebImage/Core/UIImageView+WebCache.m"; sourceTree = ""; }; + 33F0EE80D26815CEEC97D06E0CFFC103 /* SDImageTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageTransformer.m; path = SDWebImage/Core/SDImageTransformer.m; sourceTree = ""; }; + 34E3639414F00503227876AD742B0D6D /* ProgressIndicator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ProgressIndicator.swift; path = SDWebImageSwiftUI/Classes/Indicator/ProgressIndicator.swift; sourceTree = ""; }; + 366283774DA6DC0DD2FB85EC9BDF0C13 /* SDDiskCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDiskCache.h; path = SDWebImage/Core/SDDiskCache.h; sourceTree = ""; }; + 3A087A4ADC5FD9A02367F0CD7F6CEAAE /* SDWebImageCacheKeyFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheKeyFilter.h; path = SDWebImage/Core/SDWebImageCacheKeyFilter.h; sourceTree = ""; }; + 3A43E87382AA30EB2198B81DA1282339 /* UIView+WebCacheOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCacheOperation.m"; path = "SDWebImage/Core/UIView+WebCacheOperation.m"; sourceTree = ""; }; + 3B824E5AF2221D092BE5A1A822E873BE /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 3C16791E79ACB37BA6DBF5F140CB553A /* SDImageGIFCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGIFCoder.m; path = SDWebImage/Core/SDImageGIFCoder.m; sourceTree = ""; }; + 3C9DC434546BE3B91591E9A463607DAA /* SDImageFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageFrame.h; path = SDWebImage/Core/SDImageFrame.h; sourceTree = ""; }; + 3D7024D9B75E59BADE50711449F88E33 /* SDAnimatedImagePlayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImagePlayer.m; path = SDWebImage/Core/SDAnimatedImagePlayer.m; sourceTree = ""; }; 3F246748AAEF5F516506AF5D3E890A30 /* Pods-FlinkChallengeTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-FlinkChallengeTests.release.xcconfig"; sourceTree = ""; }; - 40EC2945EA2EFDD97545D2FA3AD4E8AB /* UIColor+HexString.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+HexString.m"; path = "SDWebImage/Private/UIColor+HexString.m"; sourceTree = ""; }; - 435C4A9BCC1411C77DB4EE0D4F17CA9D /* SDWebImageDownloaderOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderOperation.m; path = SDWebImage/Core/SDWebImageDownloaderOperation.m; sourceTree = ""; }; - 4364A4748498DEB00DE6769F767EFF02 /* SDWebImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SDWebImage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3FC2A6D967CFF1E79492EC5E0B7FCEF8 /* SDWebImageOptionsProcessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageOptionsProcessor.m; path = SDWebImage/Core/SDWebImageOptionsProcessor.m; sourceTree = ""; }; 43E316D4B8B13067237946F98CDE36D6 /* Pods-FlinkChallenge.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-FlinkChallenge.debug.xcconfig"; sourceTree = ""; }; - 44E52D44FB0A5181FF0B80821AB15245 /* UIImage+MultiFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MultiFormat.m"; path = "SDWebImage/Core/UIImage+MultiFormat.m"; sourceTree = ""; }; - 45A79BC196EBF9AFCB6AA27F86E431AF /* UIImage+ForceDecode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ForceDecode.m"; path = "SDWebImage/Core/UIImage+ForceDecode.m"; sourceTree = ""; }; - 49007A9B33E1F324863DC1EAB3DBAE80 /* SDImageFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageFrame.m; path = SDWebImage/Core/SDImageFrame.m; sourceTree = ""; }; - 49D5D88B1EC09DE6E61BE00E943AC5E0 /* SDImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCache.m; path = SDWebImage/Core/SDImageCache.m; sourceTree = ""; }; - 4E9C504B8003F6CDD087F44FAC8D7038 /* UIImage+ForceDecode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+ForceDecode.h"; path = "SDWebImage/Core/UIImage+ForceDecode.h"; sourceTree = ""; }; - 50167CEDB2D9AFF4255F82C056092986 /* SDWebImage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.xcconfig; sourceTree = ""; }; - 51EC684EF89D59218B5AE1218EF04696 /* SDImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCache.h; path = SDWebImage/Core/SDImageCache.h; sourceTree = ""; }; - 54E893EBFC81298577BCD2D55951516F /* SVIndefiniteAnimatedView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVIndefiniteAnimatedView.m; path = SVProgressHUD/SVIndefiniteAnimatedView.m; sourceTree = ""; }; - 561767A4F95D63E0D9B5991B56C14169 /* SDAssociatedObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAssociatedObject.m; path = SDWebImage/Private/SDAssociatedObject.m; sourceTree = ""; }; + 44B403CA37DDD006462E3EF983262F12 /* SDImageTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageTransformer.h; path = SDWebImage/Core/SDImageTransformer.h; sourceTree = ""; }; + 451660592FD8FE25D06DFA58713A0ED9 /* SDWebImageSwiftUI-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImageSwiftUI-prefix.pch"; sourceTree = ""; }; + 4579ED34AB26D09DE42339BC75E68B9D /* ImageViewWrapper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageViewWrapper.swift; path = SDWebImageSwiftUI/Classes/ImageViewWrapper.swift; sourceTree = ""; }; + 46CADD225887D9E729105DF6BCBD3466 /* SDWebImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SDWebImage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 46E7F3B7A726E8843DEF7045A384CFB7 /* ActivityIndicator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ActivityIndicator.swift; path = SDWebImageSwiftUI/Classes/Indicator/ActivityIndicator.swift; sourceTree = ""; }; + 483C81B476430AB8FEA4C2DDF9ABC605 /* SDImageLoadersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoadersManager.m; path = SDWebImage/Core/SDImageLoadersManager.m; sourceTree = ""; }; + 4E6C00B0542293F53C23EE9BD4AFFAB7 /* UIView+WebCacheOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCacheOperation.h"; path = "SDWebImage/Core/UIView+WebCacheOperation.h"; sourceTree = ""; }; + 4EB1B519DE169B23173A3F0DA46F99FE /* SDWebImageDownloaderRequestModifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderRequestModifier.m; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.m; sourceTree = ""; }; + 4F81BACDC9B577015CBEFAE1A80FBE26 /* SDImageCodersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCodersManager.m; path = SDWebImage/Core/SDImageCodersManager.m; sourceTree = ""; }; + 518BBBB8EA5DD253C9A61E1289D789A6 /* SDImageAPNGCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAPNGCoder.h; path = SDWebImage/Core/SDImageAPNGCoder.h; sourceTree = ""; }; + 5310BEBDD7710C53B3311C954109F8B8 /* SDAnimatedImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImage.h; path = SDWebImage/Core/SDAnimatedImage.h; sourceTree = ""; }; 5639D170DC753D0ED400E20DD9241C0A /* Pods-FlinkChallenge.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-FlinkChallenge.modulemap"; sourceTree = ""; }; - 5737CADDDB16C068465E544BFDCCF921 /* SDWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWeakProxy.h; path = SDWebImage/Private/SDWeakProxy.h; sourceTree = ""; }; - 5828A8AC0E688C7F6A6A9EDA721A898B /* SDImageCacheDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheDefine.m; path = SDWebImage/Core/SDImageCacheDefine.m; sourceTree = ""; }; - 5995C888DC67487A9182108ACF505CBC /* UIImageView+HighlightedWebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+HighlightedWebCache.m"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.m"; sourceTree = ""; }; - 5A913CAB3C4221F901C34D296F09F578 /* SDImageHEICCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageHEICCoder.m; path = SDWebImage/Core/SDImageHEICCoder.m; sourceTree = ""; }; + 563B8C31B83416F17148B9F8677AA3FF /* SDWebImage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.xcconfig; sourceTree = ""; }; + 57DF2CC2EF2725A9A0F2F224234B6D57 /* SDWebImageTransition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageTransition.m; path = SDWebImage/Core/SDWebImageTransition.m; sourceTree = ""; }; + 5A1B8230F7389986FB4CB101BC0ADE28 /* SDFileAttributeHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDFileAttributeHelper.h; path = SDWebImage/Private/SDFileAttributeHelper.h; sourceTree = ""; }; 5A99EF5045D063353CBB71C511EBC2E6 /* Pods-FlinkChallenge-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-FlinkChallenge-Info.plist"; sourceTree = ""; }; + 5B117F1063EED6DF826FFA7651449AFE /* NSBezierPath+RoundedCorners.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBezierPath+RoundedCorners.m"; path = "SDWebImage/Private/NSBezierPath+RoundedCorners.m"; sourceTree = ""; }; 5B9A03D6CCDB82AC45222654FA9D4146 /* Pods-FlinkChallenge.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-FlinkChallenge.release.xcconfig"; sourceTree = ""; }; - 5D87D6054E976475706D82A430D64EE4 /* SDImageCoderHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoderHelper.h; path = SDWebImage/Core/SDImageCoderHelper.h; sourceTree = ""; }; - 5F5096E0FF39E1A5B1D355585EE8215E /* UIButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+WebCache.h"; path = "SDWebImage/Core/UIButton+WebCache.h"; sourceTree = ""; }; - 60796BBF107B28A48ADAF2725984123A /* SDImageCachesManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManager.m; path = SDWebImage/Core/SDImageCachesManager.m; sourceTree = ""; }; - 6510CD487D6EED590B8FFCB5D51693A8 /* ActivityIndicator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ActivityIndicator.swift; path = SDWebImageSwiftUI/Classes/Indicator/ActivityIndicator.swift; sourceTree = ""; }; + 5C9074C0D6316F4B7DADF577304855A3 /* SDImageHEICCoderInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageHEICCoderInternal.h; path = SDWebImage/Private/SDImageHEICCoderInternal.h; sourceTree = ""; }; + 5DBC3A183D77004891A7FE072A39CC95 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/ImageIO.framework; sourceTree = DEVELOPER_DIR; }; + 604A4C137A0EC9392D3AC4A826B89C28 /* NSData+ImageContentType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+ImageContentType.h"; path = "SDWebImage/Core/NSData+ImageContentType.h"; sourceTree = ""; }; + 606EC942D9566EEF91E29C34EABDDE5E /* UIButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+WebCache.h"; path = "SDWebImage/Core/UIButton+WebCache.h"; sourceTree = ""; }; + 610EA1B815C7C16BA686744C8CAB43F3 /* SDWebImageCompat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCompat.m; path = SDWebImage/Core/SDWebImageCompat.m; sourceTree = ""; }; + 62A88A76F0CB9CE353BE408C2C26CE62 /* ImageManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageManager.swift; path = SDWebImageSwiftUI/Classes/ImageManager.swift; sourceTree = ""; }; + 639FEB216FEB25D3823E8B2F3145F269 /* SDWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWeakProxy.m; path = SDWebImage/Private/SDWeakProxy.m; sourceTree = ""; }; + 63FFFED0E1ECFCA8DB48B165311D04ED /* SDImageLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoader.m; path = SDWebImage/Core/SDImageLoader.m; sourceTree = ""; }; + 64C82F31B215D15E8F532BB74328730E /* SDWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOperation.h; path = SDWebImage/Core/SDWebImageOperation.h; sourceTree = ""; }; 669414A5902881839E342AFC74AC862F /* Pods-FlinkChallengeTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-FlinkChallengeTests-dummy.m"; sourceTree = ""; }; - 6967EAFBD579274F5D681C2DCD9D7445 /* SDWebImageDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDefine.m; path = SDWebImage/Core/SDWebImageDefine.m; sourceTree = ""; }; - 6990DF58FBF577476378BFC34CF36C82 /* SDFileAttributeHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDFileAttributeHelper.m; path = SDWebImage/Private/SDFileAttributeHelper.m; sourceTree = ""; }; + 66F78E80F537955882CA3E2BE2656D95 /* SDImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCache.h; path = SDWebImage/Core/SDImageCache.h; sourceTree = ""; }; + 6A9CFD9F9B13C957E6E1D3CE893B82C7 /* SDGraphicsImageRenderer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDGraphicsImageRenderer.m; path = SDWebImage/Core/SDGraphicsImageRenderer.m; sourceTree = ""; }; 6B1B10F952F684F6767E6903C2F5E816 /* SDWebImageSwiftUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SDWebImageSwiftUI.framework; path = SDWebImageSwiftUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6D4F1930F7F196C99AFF40DABCA4EA14 /* UIImage+GIF.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+GIF.h"; path = "SDWebImage/Core/UIImage+GIF.h"; sourceTree = ""; }; - 6DA408D7DC7046AEA0A92E5B47501BC3 /* SDImageIOCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOCoder.m; path = SDWebImage/Core/SDImageIOCoder.m; sourceTree = ""; }; - 729F498B32664DF0F7E57061238D6C91 /* SDWebImageTransition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageTransition.m; path = SDWebImage/Core/SDWebImageTransition.m; sourceTree = ""; }; - 7361BB87FB37003E4B57307070E2738A /* SDImageTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageTransformer.m; path = SDWebImage/Core/SDImageTransformer.m; sourceTree = ""; }; - 7549952B9C1DCE4FB3B4623E5FCADE8A /* SDWebImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloader.m; path = SDWebImage/Core/SDWebImageDownloader.m; sourceTree = ""; }; - 75FEE65F14A1AEF3CAB3B015E129BA89 /* SDMemoryCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDMemoryCache.h; path = SDWebImage/Core/SDMemoryCache.h; sourceTree = ""; }; - 76DA4CE342A392FE2B2178837B9A9A37 /* SDImageCachesManagerOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManagerOperation.h; path = SDWebImage/Private/SDImageCachesManagerOperation.h; sourceTree = ""; }; - 76DE972E81C716A081FD18D5099B5B86 /* SDImageHEICCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageHEICCoder.h; path = SDWebImage/Core/SDImageHEICCoder.h; sourceTree = ""; }; - 775E5CB983BDAA35A1DBBF333FABEAF4 /* UIImage+GIF.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+GIF.m"; path = "SDWebImage/Core/UIImage+GIF.m"; sourceTree = ""; }; - 7902BBFD44072883FDA039C5FE91223C /* SDGraphicsImageRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDGraphicsImageRenderer.h; path = SDWebImage/Core/SDGraphicsImageRenderer.h; sourceTree = ""; }; - 790A04825CAF9577D87A49310E437CB5 /* SDImageCacheDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheDefine.h; path = SDWebImage/Core/SDImageCacheDefine.h; sourceTree = ""; }; - 7C6C4072C217ED7ED434A8F7CA75306A /* SDImageGIFCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGIFCoder.m; path = SDWebImage/Core/SDImageGIFCoder.m; sourceTree = ""; }; - 7D0F2694C66EAF7B3345895796802814 /* SDWebImageCacheSerializer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheSerializer.h; path = SDWebImage/Core/SDWebImageCacheSerializer.h; sourceTree = ""; }; - 7E306DD74ED66609CFC627AD311C8341 /* SDImageFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageFrame.h; path = SDWebImage/Core/SDImageFrame.h; sourceTree = ""; }; + 6C5E7B6CD87ACE97B5601F5A02C37D7D /* SDWebImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloader.h; path = SDWebImage/Core/SDWebImageDownloader.h; sourceTree = ""; }; + 6D7C396367D99520E2BEF7B65F85DD28 /* SDWebImageDownloaderRequestModifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderRequestModifier.h; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.h; sourceTree = ""; }; + 72F97CBD733AEC593E99393A11CBAA97 /* SDWebImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SDWebImage-Info.plist"; sourceTree = ""; }; + 73EC18EA177FD4CBF85C7EFBAC3D68A1 /* SDImageAssetManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAssetManager.h; path = SDWebImage/Private/SDImageAssetManager.h; sourceTree = ""; }; + 748CCFC3007CF059391378B86D04DD42 /* SDWebImageOptionsProcessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOptionsProcessor.h; path = SDWebImage/Core/SDWebImageOptionsProcessor.h; sourceTree = ""; }; + 74E19CDD0CA2AA3D0662C3C43E2BFA2F /* SDmetamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDmetamacros.h; path = SDWebImage/Private/SDmetamacros.h; sourceTree = ""; }; + 74F5BFBC90770B38B0A6664DBFC6BA14 /* SDImageCodersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCodersManager.h; path = SDWebImage/Core/SDImageCodersManager.h; sourceTree = ""; }; + 763E8DB4B7B558C628646920252D2544 /* SDWebImageDownloaderConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderConfig.h; path = SDWebImage/Core/SDWebImageDownloaderConfig.h; sourceTree = ""; }; + 7657A89ECB131537E6E118C911E3E280 /* UIImage+MultiFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MultiFormat.m"; path = "SDWebImage/Core/UIImage+MultiFormat.m"; sourceTree = ""; }; + 795D09CFB6D3DC4EA6490E63695F89D9 /* SDWebImageSwiftUI-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImageSwiftUI-umbrella.h"; sourceTree = ""; }; + 7A977DB8D5B1B000C760B5982A8F21DC /* UIImageView+HighlightedWebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+HighlightedWebCache.m"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.m"; sourceTree = ""; }; 7ED17855CF90F603448D3B2F5AE127D8 /* Pods-FlinkChallengeTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-FlinkChallengeTests-acknowledgements.markdown"; sourceTree = ""; }; - 81279A01D3AB912CC139D2EFA54920FC /* SDWebImageDownloaderConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderConfig.m; path = SDWebImage/Core/SDWebImageDownloaderConfig.m; sourceTree = ""; }; - 8341A04CC97F3E05DA01AB6999D28912 /* SDImageLoadersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoadersManager.h; path = SDWebImage/Core/SDImageLoadersManager.h; sourceTree = ""; }; - 83E356D49AD6C96EF038F303EE5B3371 /* SDWebImageDownloaderDecryptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderDecryptor.m; path = SDWebImage/Core/SDWebImageDownloaderDecryptor.m; sourceTree = ""; }; - 8783833B9E8755852E8AFE7557A8DB4F /* SDImageCachesManagerOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManagerOperation.m; path = SDWebImage/Private/SDImageCachesManagerOperation.m; sourceTree = ""; }; - 87E369366B10E5EACC3325FBF9004D25 /* SDWebImageDownloaderDecryptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderDecryptor.h; path = SDWebImage/Core/SDWebImageDownloaderDecryptor.h; sourceTree = ""; }; - 8841BA5A9E66AC1AA4153E3519D9F591 /* UIImageView+HighlightedWebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+HighlightedWebCache.h"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.h"; sourceTree = ""; }; - 89F2FEFCFBF175EE0D0E41A4EF75DC0E /* SVProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SVProgressHUD-dummy.m"; sourceTree = ""; }; - 8AB6271232956D9EC03E964FF4F42996 /* UIView+WebCacheOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCacheOperation.m"; path = "SDWebImage/Core/UIView+WebCacheOperation.m"; sourceTree = ""; }; - 8B7A4F3E8587FE20A75E63FFFFD28549 /* SDImageCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoder.h; path = SDWebImage/Core/SDImageCoder.h; sourceTree = ""; }; - 8B8AB8855C702379C8EBC447E24355FA /* SVProgressHUD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVProgressHUD.h; path = SVProgressHUD/SVProgressHUD.h; sourceTree = ""; }; - 8C0F527EBD6C19E807D58706AC651355 /* Indicator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Indicator.swift; path = SDWebImageSwiftUI/Classes/Indicator/Indicator.swift; sourceTree = ""; }; - 8ECDD0D00227B261C05F38E0B7A718A9 /* SDWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageManager.m; path = SDWebImage/Core/SDWebImageManager.m; sourceTree = ""; }; - 8EE7870C95FAD574A17C5831D945CAB1 /* SVRadialGradientLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVRadialGradientLayer.h; path = SVProgressHUD/SVRadialGradientLayer.h; sourceTree = ""; }; - 90D0C094BAB3959DB3BCF784C1044E54 /* SDImageCoderHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoderHelper.m; path = SDWebImage/Core/SDImageCoderHelper.m; sourceTree = ""; }; - 9228E9A49CA464EEEBC5F0E6DF36D757 /* SDWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOperation.h; path = SDWebImage/Core/SDWebImageOperation.h; sourceTree = ""; }; - 92889D2F6A48CB2E718285B84D2E0801 /* SDWebImageSwiftUI-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SDWebImageSwiftUI-dummy.m"; sourceTree = ""; }; + 81527E7870173C6C82D4A7F47474A4D6 /* SDWebImageSwiftUI.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImageSwiftUI.xcconfig; sourceTree = ""; }; + 83199578466B1814D498D562383CB06E /* NSButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSButton+WebCache.m"; path = "SDWebImage/Core/NSButton+WebCache.m"; sourceTree = ""; }; + 83CABE05A7EB2F78061260983A13BAFE /* SDImageCacheConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheConfig.m; path = SDWebImage/Core/SDImageCacheConfig.m; sourceTree = ""; }; + 883CDB15E638EF90BD56DF0C78B44DC8 /* NSImage+Compatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSImage+Compatibility.m"; path = "SDWebImage/Core/NSImage+Compatibility.m"; sourceTree = ""; }; + 89049E5937E4EAA858DB0A7599EDB522 /* SDAnimatedImageRep.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageRep.m; path = SDWebImage/Core/SDAnimatedImageRep.m; sourceTree = ""; }; + 896737F5F44A2CE935146F7EBD0F0795 /* AnimatedImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedImage.swift; path = SDWebImageSwiftUI/Classes/AnimatedImage.swift; sourceTree = ""; }; + 896E67ACDD2F42848B67E9F3CB3728AD /* SDWebImageSwiftUI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageSwiftUI.h; path = SDWebImageSwiftUI/Module/SDWebImageSwiftUI.h; sourceTree = ""; }; + 8C3676502CEF4DAE69C14EE4DCF16C08 /* SDImageCachesManagerOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManagerOperation.h; path = SDWebImage/Private/SDImageCachesManagerOperation.h; sourceTree = ""; }; + 8DF1FF7D493EA476A176442737993B05 /* SDAnimatedImagePlayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImagePlayer.h; path = SDWebImage/Core/SDAnimatedImagePlayer.h; sourceTree = ""; }; + 904EA8EA4F1AAC6985EB7D44BCAD21D8 /* SDImageCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoder.m; path = SDWebImage/Core/SDImageCoder.m; sourceTree = ""; }; + 91DFCDEA082D435D1A8AA7FE59C30B7B /* SDWebImageDownloaderOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderOperation.m; path = SDWebImage/Core/SDWebImageDownloaderOperation.m; sourceTree = ""; }; 93CD76756C0E5098B46DA764C488DFAA /* Pods-FlinkChallengeTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-FlinkChallengeTests.modulemap"; sourceTree = ""; }; - 942A338C4CE6B26475D87CE70F634320 /* SDImageGraphics.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGraphics.h; path = SDWebImage/Core/SDImageGraphics.h; sourceTree = ""; }; - 95290E5F7BAE0927EE2D709E040925A9 /* SDWebImageError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageError.m; path = SDWebImage/Core/SDWebImageError.m; sourceTree = ""; }; - 967DDF8EABBB4B74D3AD1F4E53CBDE34 /* SDWebImageOptionsProcessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageOptionsProcessor.m; path = SDWebImage/Core/SDWebImageOptionsProcessor.m; sourceTree = ""; }; - 970C2176B3B753B1755368554BF16832 /* SDWebImageCacheKeyFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheKeyFilter.h; path = SDWebImage/Core/SDWebImageCacheKeyFilter.h; sourceTree = ""; }; - 978245DB0C9B133F0A0CC687A4F8E015 /* SDAnimatedImageRep.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageRep.h; path = SDWebImage/Core/SDAnimatedImageRep.h; sourceTree = ""; }; - 9874E47165D6787587F3A964EA852F38 /* NSImage+Compatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSImage+Compatibility.h"; path = "SDWebImage/Core/NSImage+Compatibility.h"; sourceTree = ""; }; - 989DAECB09F2949C884B55AEE6FFBCED /* SDWebImageCompat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCompat.h; path = SDWebImage/Core/SDWebImageCompat.h; sourceTree = ""; }; - 99B24BB00D97AFF72D936BAC6F125FBA /* SVProgressHUD.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SVProgressHUD.xcconfig; sourceTree = ""; }; - 9AD418BA0A626E2A112D2B64D705C44A /* UIView+WebCacheOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCacheOperation.h"; path = "SDWebImage/Core/UIView+WebCacheOperation.h"; sourceTree = ""; }; - 9C7856B12E2902EEF5D3544931106E4D /* SDImageIOAnimatedCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoder.h; path = SDWebImage/Core/SDImageIOAnimatedCoder.h; sourceTree = ""; }; - 9CDB33705FA7A3567C2D603C37A7CCAA /* SDWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImage.h; path = WebImage/SDWebImage.h; sourceTree = ""; }; - 9D35957489DB4E00B4288E14B3E4B338 /* SDWebImageSwiftUI.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SDWebImageSwiftUI.modulemap; sourceTree = ""; }; - 9D850B2BFBD243950770283CB4F85BFC /* SDWebImageDownloaderOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderOperation.h; path = SDWebImage/Core/SDWebImageDownloaderOperation.h; sourceTree = ""; }; + 94CABB432767374F797A984161775219 /* UIImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+WebCache.h"; path = "SDWebImage/Core/UIImageView+WebCache.h"; sourceTree = ""; }; + 96F83922C0609C89DF506953D0B030FA /* SDWebImageSwiftUI-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SDWebImageSwiftUI-dummy.m"; sourceTree = ""; }; + 9725183A5B6D4B5C501C572763D2A520 /* SDWebImageCompat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCompat.h; path = SDWebImage/Core/SDWebImageCompat.h; sourceTree = ""; }; + 98918DA7068A1C99431244138BF46A1E /* SDWebImageIndicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageIndicator.m; path = SDWebImage/Core/SDWebImageIndicator.m; sourceTree = ""; }; + 997E750BEC4D2D37B1E30DCB95A0755E /* SDAnimatedImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImage.m; path = SDWebImage/Core/SDAnimatedImage.m; sourceTree = ""; }; + 9AF608A8354D74FE317A7FF0E6ACCF3B /* UIImage+ForceDecode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ForceDecode.m"; path = "SDWebImage/Core/UIImage+ForceDecode.m"; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9E5361302ECC7806DE163694A105419C /* SVProgressHUD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVProgressHUD.m; path = SVProgressHUD/SVProgressHUD.m; sourceTree = ""; }; + 9DDEB69EA7BB87536DE8576A3EBDF5FA /* SDWebImageDownloaderResponseModifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderResponseModifier.h; path = SDWebImage/Core/SDWebImageDownloaderResponseModifier.h; sourceTree = ""; }; + 9F0D9705B1058066A55F155EA15EBA89 /* SDWebImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloader.m; path = SDWebImage/Core/SDWebImageDownloader.m; sourceTree = ""; }; + 9F2CEEF00CFFA06E846F2082B7D7D282 /* SDInternalMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDInternalMacros.h; path = SDWebImage/Private/SDInternalMacros.h; sourceTree = ""; }; + 9F93C7A5F49BD98DE912046D3CBCA03C /* SDAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageView.h; path = SDWebImage/Core/SDAnimatedImageView.h; sourceTree = ""; }; + A12E7CD66668919E69A686D7F8151DD9 /* SDWebImageTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageTransition.h; path = SDWebImage/Core/SDWebImageTransition.h; sourceTree = ""; }; A1905BFF6EBFBD57A369AF78DA7B8782 /* Pods-FlinkChallenge-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-FlinkChallenge-acknowledgements.plist"; sourceTree = ""; }; - A27EE748219625D1A578498A3FA81C5B /* SDAsyncBlockOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAsyncBlockOperation.h; path = SDWebImage/Private/SDAsyncBlockOperation.h; sourceTree = ""; }; - A2F6EF6F65AEB0A6A6D029FE402E6A97 /* NSButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSButton+WebCache.h"; path = "SDWebImage/Core/NSButton+WebCache.h"; sourceTree = ""; }; - A50BBADF5BA9494B88D43EA5317C3C31 /* SDImageHEICCoderInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageHEICCoderInternal.h; path = SDWebImage/Private/SDImageHEICCoderInternal.h; sourceTree = ""; }; - A56ED5FFDFBEB60BD6C9EC22CFEB9500 /* SDWebImageSwiftUI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageSwiftUI.h; path = SDWebImageSwiftUI/Module/SDWebImageSwiftUI.h; sourceTree = ""; }; - A6F8EAB3CE417149DAEC5E4004B00FD5 /* SDWebImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SDWebImage-dummy.m"; sourceTree = ""; }; - AAC3E0B0A9321C4F47D99E8829CE631A /* SDWebImageDownloaderConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderConfig.h; path = SDWebImage/Core/SDWebImageDownloaderConfig.h; sourceTree = ""; }; - AC5F316C0AEF1C2387E803CCC2C427A1 /* SDWebImageError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageError.h; path = SDWebImage/Core/SDWebImageError.h; sourceTree = ""; }; - AE70A68950F956C47D677966ACD15281 /* SVProgressAnimatedView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVProgressAnimatedView.m; path = SVProgressHUD/SVProgressAnimatedView.m; sourceTree = ""; }; - AF4BA9457F2B3C063C5F7F28A94B4FB2 /* UIView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCache.m"; path = "SDWebImage/Core/UIView+WebCache.m"; sourceTree = ""; }; - AF79E1C3FE3C01CFF8E572AA5432EB20 /* SDImageCacheConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheConfig.h; path = SDWebImage/Core/SDImageCacheConfig.h; sourceTree = ""; }; - AF8CBAA65BF2A09AFA61303F00551D33 /* SVProgressHUD.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SVProgressHUD.modulemap; sourceTree = ""; }; - B02D8C40DAF58D478F864CD3ECDE2DB3 /* SDAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageView.h; path = SDWebImage/Core/SDAnimatedImageView.h; sourceTree = ""; }; + A2DD9AB210C6A35EFF5FCE0714322ED3 /* UIImageView+HighlightedWebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+HighlightedWebCache.h"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.h"; sourceTree = ""; }; + A54321916697656C6F9BA7ACE050FD00 /* SDImageCachesManagerOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManagerOperation.m; path = SDWebImage/Private/SDImageCachesManagerOperation.m; sourceTree = ""; }; + A6A6B9AB6BB23ADEDE9790AD66E5D732 /* SDWebImageError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageError.h; path = SDWebImage/Core/SDWebImageError.h; sourceTree = ""; }; + A81AECFF8E1F73B77CAA85317535033B /* SDMemoryCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDMemoryCache.m; path = SDWebImage/Core/SDMemoryCache.m; sourceTree = ""; }; + A946820F9CDA2B69A09397A9C2F21E0D /* UIImage+ForceDecode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+ForceDecode.h"; path = "SDWebImage/Core/UIImage+ForceDecode.h"; sourceTree = ""; }; + A97309D833F04A2C33F4FC0408292F88 /* SDDisplayLink.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDisplayLink.h; path = SDWebImage/Private/SDDisplayLink.h; sourceTree = ""; }; + AA80F11E652E7F69C9839B23E9AF4ACC /* SDInternalMacros.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDInternalMacros.m; path = SDWebImage/Private/SDInternalMacros.m; sourceTree = ""; }; + AC441725DBDA71E77ADABFFDD1C393F5 /* NSData+ImageContentType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+ImageContentType.m"; path = "SDWebImage/Core/NSData+ImageContentType.m"; sourceTree = ""; }; + ACF4429A390C63AAA5CDAEC362AE3382 /* SDImageLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoader.h; path = SDWebImage/Core/SDImageLoader.h; sourceTree = ""; }; + AD5A1EB39CE236BD6C92CDB7DD8C1AF1 /* SDImageAPNGCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAPNGCoder.m; path = SDWebImage/Core/SDImageAPNGCoder.m; sourceTree = ""; }; + AD5E8E783C441A54839F242D9C03ED66 /* SDDeviceHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDeviceHelper.m; path = SDWebImage/Private/SDDeviceHelper.m; sourceTree = ""; }; B0B214D775196BA7CA8E17E53048A493 /* SDWebImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SDWebImage.framework; path = SDWebImage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B124A1C8ADEC8006539AA6639312010E /* SDImageIOAnimatedCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOAnimatedCoder.m; path = SDWebImage/Core/SDImageIOAnimatedCoder.m; sourceTree = ""; }; - B149E4652B36FCA250DE847A88DBD102 /* UIImage+MultiFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MultiFormat.h"; path = "SDWebImage/Core/UIImage+MultiFormat.h"; sourceTree = ""; }; + B146E8C1E1E2B8288F5C436A48C96848 /* SDImageCachesManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManager.h; path = SDWebImage/Core/SDImageCachesManager.h; sourceTree = ""; }; B19BBACE30AFB8222D2D446B0BFFB83C /* Pods-FlinkChallenge-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-FlinkChallenge-acknowledgements.markdown"; sourceTree = ""; }; - B305804ECD7455CDF357BD37989B6CEF /* WebImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WebImage.swift; path = SDWebImageSwiftUI/Classes/WebImage.swift; sourceTree = ""; }; - B3E0D614A6A95DD5D62B73BB7865A6C8 /* SDWebImageDownloaderResponseModifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderResponseModifier.m; path = SDWebImage/Core/SDWebImageDownloaderResponseModifier.m; sourceTree = ""; }; - B40682EA093B9A16403A3D7CDDA32CA8 /* SDImageCachesManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManager.h; path = SDWebImage/Core/SDImageCachesManager.h; sourceTree = ""; }; - B55BC2E615E9E96AF95867920FB9BB63 /* UIImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+WebCache.m"; path = "SDWebImage/Core/UIImageView+WebCache.m"; sourceTree = ""; }; - B818B27075D0F67621EEA9762D633D34 /* UIImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+WebCache.h"; path = "SDWebImage/Core/UIImageView+WebCache.h"; sourceTree = ""; }; - BA71D8C2628D9DD0E71CCD5659F4BBD8 /* UIImage+MemoryCacheCost.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MemoryCacheCost.h"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.h"; sourceTree = ""; }; - BAAB5921F25A6107C88F6EC6675122F2 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; - C03C98E69717226D2C4315EB2E83A5EF /* SDWebImageSwiftUI-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImageSwiftUI-prefix.pch"; sourceTree = ""; }; - C14E006E70CDEA30EEEE9005A45CBEC9 /* SDWebImageSwiftUI-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SDWebImageSwiftUI-Info.plist"; sourceTree = ""; }; - C372A28D3F15964F4C9E5B028862669C /* SDWebImage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-umbrella.h"; sourceTree = ""; }; + B3762388D9EB7668E7F9630315615F4B /* SDImageCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoder.h; path = SDWebImage/Core/SDImageCoder.h; sourceTree = ""; }; + B776BB779BE8F078BFE7951C7834A9C0 /* UIView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCache.h"; path = "SDWebImage/Core/UIView+WebCache.h"; sourceTree = ""; }; + B8408B756F17472E30C89656601911C1 /* NSImage+Compatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSImage+Compatibility.h"; path = "SDWebImage/Core/NSImage+Compatibility.h"; sourceTree = ""; }; + BA320D76763623BAB26F8AF18A5AEB55 /* SDImageCacheConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheConfig.h; path = SDWebImage/Core/SDImageCacheConfig.h; sourceTree = ""; }; + BA8CCBD6E209F27E733AB0AF50C57F73 /* SDAsyncBlockOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAsyncBlockOperation.h; path = SDWebImage/Private/SDAsyncBlockOperation.h; sourceTree = ""; }; C52E46DEA545BA29FAC51E82E3C4C767 /* Pods_FlinkChallenge.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_FlinkChallenge.framework; path = "Pods-FlinkChallenge.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - C730F9E8B9192A5ACA781F274DBC3923 /* SDWebImageCompat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCompat.m; path = SDWebImage/Core/SDWebImageCompat.m; sourceTree = ""; }; - C8F79DDFEE0525C002E71F87990119DE /* SDAsyncBlockOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAsyncBlockOperation.m; path = SDWebImage/Private/SDAsyncBlockOperation.m; sourceTree = ""; }; - CBC9A5D45F18734090A5C5ADCB339B35 /* SDDisplayLink.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDisplayLink.h; path = SDWebImage/Private/SDDisplayLink.h; sourceTree = ""; }; - CBDD316FB4CB508250E96CE460415399 /* SDImageLoadersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoadersManager.m; path = SDWebImage/Core/SDImageLoadersManager.m; sourceTree = ""; }; - CC41EB8516D83530CA904CDEA6BA321B /* SDWebImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-prefix.pch"; sourceTree = ""; }; - CCEF4FD7CF856706C61D2B26742527E6 /* SDImageLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoader.h; path = SDWebImage/Core/SDImageLoader.h; sourceTree = ""; }; - CD4A295B69D11864669E615D6E593B70 /* SDDeviceHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDeviceHelper.m; path = SDWebImage/Private/SDDeviceHelper.m; sourceTree = ""; }; - CDD451EECA662733524532711DD08B62 /* SDWebImage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SDWebImage.modulemap; sourceTree = ""; }; - CE741CE21D4D63F78184BEEC504F0ED6 /* NSImage+Compatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSImage+Compatibility.m"; path = "SDWebImage/Core/NSImage+Compatibility.m"; sourceTree = ""; }; - CEB9E88802224DCEB7109D2E392972FE /* SVProgressHUD-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SVProgressHUD-Info.plist"; sourceTree = ""; }; - D13428180570C75E17D46E49ED13B780 /* NSBezierPath+RoundedCorners.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBezierPath+RoundedCorners.h"; path = "SDWebImage/Private/NSBezierPath+RoundedCorners.h"; sourceTree = ""; }; - D2F9F11021BFC644730B6CE45DF331A0 /* SDWebImageIndicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageIndicator.m; path = SDWebImage/Core/SDWebImageIndicator.m; sourceTree = ""; }; - D378ECCED2AEF31B445AFF4DC6878101 /* UIView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCache.h"; path = "SDWebImage/Core/UIView+WebCache.h"; sourceTree = ""; }; - D4B6213FB174B4E6CFFE03256C128019 /* SDInternalMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDInternalMacros.h; path = SDWebImage/Private/SDInternalMacros.h; sourceTree = ""; }; - D692E88FF1DB3990431C5D07C8ED768C /* SDAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageView.m; path = SDWebImage/Core/SDAnimatedImageView.m; sourceTree = ""; }; - D70D9F6B2B134E98E40463884C2686AF /* SDWebImageIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageIndicator.h; path = SDWebImage/Core/SDWebImageIndicator.h; sourceTree = ""; }; - D7687A0DCD34F208F673601D84AE2D94 /* SDWebImageDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDefine.h; path = SDWebImage/Core/SDWebImageDefine.h; sourceTree = ""; }; - D76B2DD4DD0432710700837566220AC4 /* SDWebImageDownloaderRequestModifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderRequestModifier.h; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.h; sourceTree = ""; }; - D7A2812970DFB6B7FD171E84B35BB4C5 /* SDImageGraphics.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGraphics.m; path = SDWebImage/Core/SDImageGraphics.m; sourceTree = ""; }; - D8CE87AE35A48075E7FC2C39E1EE213F /* SVProgressHUD-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SVProgressHUD-umbrella.h"; sourceTree = ""; }; - DA590654C745D04EF1123B709A971577 /* AnimatedImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedImage.swift; path = SDWebImageSwiftUI/Classes/AnimatedImage.swift; sourceTree = ""; }; - DADF3EFD983BEA37C50B479B9776409E /* SDWebImageCacheSerializer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheSerializer.m; path = SDWebImage/Core/SDWebImageCacheSerializer.m; sourceTree = ""; }; - DB6C0EB41719B68B7D1F159CA6C3D1B9 /* SDAnimatedImagePlayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImagePlayer.m; path = SDWebImage/Core/SDAnimatedImagePlayer.m; sourceTree = ""; }; - DC96DD8C81DA03BFB0414B83D98684D5 /* SDWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageManager.h; path = SDWebImage/Core/SDWebImageManager.h; sourceTree = ""; }; - DF76CE1FBBD7F2E3CFAE16D32BC1E756 /* SDAssociatedObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAssociatedObject.h; path = SDWebImage/Private/SDAssociatedObject.h; sourceTree = ""; }; + C67C69F78A771F0B436632C7CAA125BE /* SDMemoryCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDMemoryCache.h; path = SDWebImage/Core/SDMemoryCache.h; sourceTree = ""; }; + C8FE632BF2A4AE36FD3EDD498C772D33 /* SDAnimatedImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDAnimatedImageView+WebCache.m"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.m"; sourceTree = ""; }; + CB8BFCE61BA27F02A9D41D3D91905628 /* SDImageCoderHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoderHelper.h; path = SDWebImage/Core/SDImageCoderHelper.h; sourceTree = ""; }; + CD9787286866A9A791CD038D24D9FB21 /* SDAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageView.m; path = SDWebImage/Core/SDAnimatedImageView.m; sourceTree = ""; }; + CDB4BF4EB268FD1BE0FDB1CBA453D2A0 /* SDWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageManager.h; path = SDWebImage/Core/SDWebImageManager.h; sourceTree = ""; }; + CDF631BB3B1D614A8666573249A448F4 /* SDImageIOAnimatedCoderInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoderInternal.h; path = SDWebImage/Private/SDImageIOAnimatedCoderInternal.h; sourceTree = ""; }; + CE6889FE57ED4A47AB3AD869921851AF /* SDAssociatedObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAssociatedObject.m; path = SDWebImage/Private/SDAssociatedObject.m; sourceTree = ""; }; + D0C87DEF0CD545B55F895849FF2659C7 /* SDDiskCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDiskCache.m; path = SDWebImage/Core/SDDiskCache.m; sourceTree = ""; }; + D12A96594105AE39AB7DB4CAC307E480 /* SDWebImageCacheSerializer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheSerializer.h; path = SDWebImage/Core/SDWebImageCacheSerializer.h; sourceTree = ""; }; + D170C0DEAB467EF3750DFB6E643D42E1 /* SDWebImageCacheSerializer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheSerializer.m; path = SDWebImage/Core/SDWebImageCacheSerializer.m; sourceTree = ""; }; + D3D2294354EC9A4985E4F46E027F75A5 /* UIImage+Transform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Transform.m"; path = "SDWebImage/Core/UIImage+Transform.m"; sourceTree = ""; }; + D66D79E3DB6517327045CC46D45D4019 /* SDWebImageCacheKeyFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheKeyFilter.m; path = SDWebImage/Core/SDWebImageCacheKeyFilter.m; sourceTree = ""; }; + D6B1A7017C6831E7A3524937C106664C /* SDDisplayLink.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDisplayLink.m; path = SDWebImage/Private/SDDisplayLink.m; sourceTree = ""; }; + D71B62A2B71ECF03593A62B7AFE1C7D4 /* SDWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageManager.m; path = SDWebImage/Core/SDWebImageManager.m; sourceTree = ""; }; + D7A3139E79A276EE7F1817B6D5FB738F /* UIImage+MemoryCacheCost.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MemoryCacheCost.m"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.m"; sourceTree = ""; }; + D9A708F39819BF6A71474CF672AD2418 /* SDImageCacheDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheDefine.h; path = SDWebImage/Core/SDImageCacheDefine.h; sourceTree = ""; }; + DCE47DCC5A963DAF0BD85C9AD6624409 /* UIColor+HexString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+HexString.h"; path = "SDWebImage/Private/UIColor+HexString.h"; sourceTree = ""; }; + DDD57922D2276A46856E9B5968FEF9ED /* SDAsyncBlockOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAsyncBlockOperation.m; path = SDWebImage/Private/SDAsyncBlockOperation.m; sourceTree = ""; }; + DE961395AB36CC6574299E7F2FFD76CA /* SDWebImageSwiftUI-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SDWebImageSwiftUI-Info.plist"; sourceTree = ""; }; DFF4776E3DD4E629A7F5839EE068DC37 /* Pods-FlinkChallengeTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-FlinkChallengeTests-Info.plist"; sourceTree = ""; }; - E04D1464DBB3EC2383324A80A559F810 /* SDDeviceHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDeviceHelper.h; path = SDWebImage/Private/SDDeviceHelper.h; sourceTree = ""; }; - E2BD31B4445816DBEA274F6A1F167F11 /* SDWebImageOptionsProcessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOptionsProcessor.h; path = SDWebImage/Core/SDWebImageOptionsProcessor.h; sourceTree = ""; }; - E645FD9503046B184FE62CE6FD3A7A09 /* ImageManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageManager.swift; path = SDWebImageSwiftUI/Classes/ImageManager.swift; sourceTree = ""; }; - E72595D9B1A8653BEB4EDD19C7DFF98A /* SDImageAssetManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAssetManager.m; path = SDWebImage/Private/SDImageAssetManager.m; sourceTree = ""; }; - E7A886DD14ABF54A91C95764E99439F7 /* SDDisplayLink.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDisplayLink.m; path = SDWebImage/Private/SDDisplayLink.m; sourceTree = ""; }; - E86C8F5D1CE60DA2D2014ABBC771139F /* SDmetamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDmetamacros.h; path = SDWebImage/Private/SDmetamacros.h; sourceTree = ""; }; - E97D43C46A45EE515A4DA3AF94398441 /* SVProgressHUD.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SVProgressHUD.framework; path = SVProgressHUD.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EA1245C38500AD2801EEB0AB8BC7BAAF /* SDMemoryCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDMemoryCache.m; path = SDWebImage/Core/SDMemoryCache.m; sourceTree = ""; }; - EA78DF08F4EF3EDDF7059FA4E9C77879 /* SDImageAPNGCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAPNGCoder.h; path = SDWebImage/Core/SDImageAPNGCoder.h; sourceTree = ""; }; + E306151B09823289DE58B1F9D0313E42 /* SDWebImage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SDWebImage.modulemap; sourceTree = ""; }; + E312F8875484F482DFFFEEB5748D7D87 /* SDImageIOCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOCoder.h; path = SDWebImage/Core/SDImageIOCoder.h; sourceTree = ""; }; + E33967B26615117BF2D1BCDA786D34D3 /* SDAnimatedImageRep.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageRep.h; path = SDWebImage/Core/SDAnimatedImageRep.h; sourceTree = ""; }; + E50ADC23317B8083C5849800777A56C0 /* SDImageAssetManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAssetManager.m; path = SDWebImage/Private/SDImageAssetManager.m; sourceTree = ""; }; + E5B0F82B5F4AD48E6EDC70513B22A79C /* SDWebImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SDWebImage-dummy.m"; sourceTree = ""; }; EAD0A36A4E523F54A1E42B2E530540F2 /* Pods_FlinkChallengeTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_FlinkChallengeTests.framework; path = "Pods-FlinkChallengeTests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - EBAA428493C57844440E4E4B10F32E5C /* SVRadialGradientLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SVRadialGradientLayer.m; path = SVProgressHUD/SVRadialGradientLayer.m; sourceTree = ""; }; - EE8B3F49B69C130DDD7DEA21E4CAB422 /* UIImage+MemoryCacheCost.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MemoryCacheCost.m"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.m"; sourceTree = ""; }; - F214808C4152205E118D589C77F25B52 /* UIImage+ExtendedCacheData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ExtendedCacheData.m"; path = "SDWebImage/Core/UIImage+ExtendedCacheData.m"; sourceTree = ""; }; - F3B5694B66A8A18B588965B2A1FA72B7 /* SVProgressHUD.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = SVProgressHUD.bundle; path = SVProgressHUD/SVProgressHUD.bundle; sourceTree = ""; }; - F40C2678DBC75B28E4C2951767144DD5 /* SDWebImageTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageTransition.h; path = SDWebImage/Core/SDWebImageTransition.h; sourceTree = ""; }; - F58C57130D4A7F5073D49427D1E33E7D /* SDGraphicsImageRenderer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDGraphicsImageRenderer.m; path = SDWebImage/Core/SDGraphicsImageRenderer.m; sourceTree = ""; }; - F6803D57ADDD5CF9F7FD6E5A16CBA608 /* SDImageLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoader.m; path = SDWebImage/Core/SDImageLoader.m; sourceTree = ""; }; - F6C965560639A1670EAB263967E5685C /* SDWebImagePrefetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImagePrefetcher.m; path = SDWebImage/Core/SDWebImagePrefetcher.m; sourceTree = ""; }; - F8F3CEBD6D1FD555D969D28410E9C5B4 /* SDDiskCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDiskCache.h; path = SDWebImage/Core/SDDiskCache.h; sourceTree = ""; }; - F91130F8B2BA1392387BE2F2654F1D18 /* SDWebImageSwiftUI.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImageSwiftUI.xcconfig; sourceTree = ""; }; - F93A48F3C1CD92FEB3C0FB853760B6AD /* SDImageCacheConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheConfig.m; path = SDWebImage/Core/SDImageCacheConfig.m; sourceTree = ""; }; - F994B93050F6B2221CFA0139095E9347 /* NSData+ImageContentType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+ImageContentType.h"; path = "SDWebImage/Core/NSData+ImageContentType.h"; sourceTree = ""; }; - FBC671E431E2AA8801DFD9E9A9348626 /* SVIndefiniteAnimatedView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SVIndefiniteAnimatedView.h; path = SVProgressHUD/SVIndefiniteAnimatedView.h; sourceTree = ""; }; - FC3614998EA35AEFFF5A66542468F26B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - FF65112BE06EC1D3CC2071A04D29E39A /* SDWebImageSwiftUI-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImageSwiftUI-umbrella.h"; sourceTree = ""; }; + EC356B896F7FD9129E5E68644DB894AB /* SDWebImageDownloaderOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderOperation.h; path = SDWebImage/Core/SDWebImageDownloaderOperation.h; sourceTree = ""; }; + EDDEAC84ECD9A72046E2068BD33FAC17 /* SDAnimatedImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDAnimatedImageView+WebCache.h"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.h"; sourceTree = ""; }; + EF6E6E151E5274C2680C604F84D796DA /* SDWebImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-prefix.pch"; sourceTree = ""; }; + F042B2A1EFA687659376AE78B6C51113 /* SDImageCachesManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManager.m; path = SDWebImage/Core/SDImageCachesManager.m; sourceTree = ""; }; + F16BFBD1B61857E1B2FAECA87CEF0633 /* SDImageCoderHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoderHelper.m; path = SDWebImage/Core/SDImageCoderHelper.m; sourceTree = ""; }; + F1885669B3A9DCBFF256CC48ED65E243 /* SDFileAttributeHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDFileAttributeHelper.m; path = SDWebImage/Private/SDFileAttributeHelper.m; sourceTree = ""; }; + F2268387BC57987FA920B46F0E6A9F62 /* NSButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSButton+WebCache.h"; path = "SDWebImage/Core/NSButton+WebCache.h"; sourceTree = ""; }; + F3E4B92637606AF74B96DE35EF2BE863 /* SDImageGraphics.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGraphics.m; path = SDWebImage/Core/SDImageGraphics.m; sourceTree = ""; }; + F4FA8DACF440E20A1A4DA8C043714096 /* SDWebImageDownloaderDecryptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderDecryptor.h; path = SDWebImage/Core/SDWebImageDownloaderDecryptor.h; sourceTree = ""; }; + F5E058AB4F1C9923E359F8EF8E26CD0F /* SDWebImageDownloaderDecryptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderDecryptor.m; path = SDWebImage/Core/SDWebImageDownloaderDecryptor.m; sourceTree = ""; }; + F6C508AE2C31AB6D42DE64C8D1A4B206 /* SDImageIOAnimatedCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOAnimatedCoder.m; path = SDWebImage/Core/SDImageIOAnimatedCoder.m; sourceTree = ""; }; + FA1AC9D9ABFC23B18E2A5289BED38D31 /* SDWebImagePrefetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImagePrefetcher.h; path = SDWebImage/Core/SDWebImagePrefetcher.h; sourceTree = ""; }; + FBA896A8B1711AA950E91B88CDC4F6F1 /* UIImage+GIF.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+GIF.h"; path = "SDWebImage/Core/UIImage+GIF.h"; sourceTree = ""; }; + FC4DAD1653FB05D7804EABEB17306FA9 /* SDImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCache.m; path = SDWebImage/Core/SDImageCache.m; sourceTree = ""; }; + FDA60A64A833A4B8DC23F989F1C2E9D9 /* SDImageLoadersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoadersManager.h; path = SDWebImage/Core/SDImageLoadersManager.h; sourceTree = ""; }; + FE6A4C8D049AB4E3215F41963DEDB092 /* NSBezierPath+RoundedCorners.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBezierPath+RoundedCorners.h"; path = "SDWebImage/Private/NSBezierPath+RoundedCorners.h"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -447,12 +410,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - B3D1D1191F24E31CEEA04BDB3FB4C0F2 /* Frameworks */ = { + C09CB989F7CB531E802E65E94051746F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D4914107FF5A197B9D0BC6D1C089E33D /* Foundation.framework in Frameworks */, - 99456829035D2883017E8EBCDB82C231 /* QuartzCore.framework in Frameworks */, + 5D4B6B10F2B4A60D4B539898C5CD2C1D /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -465,79 +427,40 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - EF7EA5D082B4EB34C6DA3A7E71F73896 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - BF5E4B6607B21963C4532392164148D4 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 26031D9B1CD1B6F059E70A33F86AC729 /* Support Files */ = { + 0EBECF425F32A19CFBC17769EA404BEB /* Support Files */ = { isa = PBXGroup; children = ( - AF8CBAA65BF2A09AFA61303F00551D33 /* SVProgressHUD.modulemap */, - 99B24BB00D97AFF72D936BAC6F125FBA /* SVProgressHUD.xcconfig */, - 89F2FEFCFBF175EE0D0E41A4EF75DC0E /* SVProgressHUD-dummy.m */, - CEB9E88802224DCEB7109D2E392972FE /* SVProgressHUD-Info.plist */, - 17749DE54A01A3B36B28E07FA21497E0 /* SVProgressHUD-prefix.pch */, - D8CE87AE35A48075E7FC2C39E1EE213F /* SVProgressHUD-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/SVProgressHUD"; - sourceTree = ""; - }; - 2A5F9D6A8DA954C3297A69D15E5D12C2 /* Pods */ = { - isa = PBXGroup; - children = ( - 7CAFB0E4BF00B4B4206470C38BF1308E /* SDWebImage */, - EE91353F8BB536AB5922E30E4F9E1ED5 /* SDWebImageSwiftUI */, - 743EB785B76695C163907679438BF17B /* SVProgressHUD */, - ); - name = Pods; - sourceTree = ""; - }; - 3ED3895BED58C58DF00C3EE925CBA6AD /* Support Files */ = { - isa = PBXGroup; - children = ( - 9D35957489DB4E00B4288E14B3E4B338 /* SDWebImageSwiftUI.modulemap */, - F91130F8B2BA1392387BE2F2654F1D18 /* SDWebImageSwiftUI.xcconfig */, - 92889D2F6A48CB2E718285B84D2E0801 /* SDWebImageSwiftUI-dummy.m */, - C14E006E70CDEA30EEEE9005A45CBEC9 /* SDWebImageSwiftUI-Info.plist */, - C03C98E69717226D2C4315EB2E83A5EF /* SDWebImageSwiftUI-prefix.pch */, - FF65112BE06EC1D3CC2071A04D29E39A /* SDWebImageSwiftUI-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/SDWebImageSwiftUI"; - sourceTree = ""; - }; - 59BA78B28A61F53D27B54A1DDDEA3833 /* Support Files */ = { - isa = PBXGroup; - children = ( - CDD451EECA662733524532711DD08B62 /* SDWebImage.modulemap */, - 50167CEDB2D9AFF4255F82C056092986 /* SDWebImage.xcconfig */, - A6F8EAB3CE417149DAEC5E4004B00FD5 /* SDWebImage-dummy.m */, - 037765E1A4249C503A3EB9732C9EC8FF /* SDWebImage-Info.plist */, - CC41EB8516D83530CA904CDEA6BA321B /* SDWebImage-prefix.pch */, - C372A28D3F15964F4C9E5B028862669C /* SDWebImage-umbrella.h */, + E306151B09823289DE58B1F9D0313E42 /* SDWebImage.modulemap */, + 563B8C31B83416F17148B9F8677AA3FF /* SDWebImage.xcconfig */, + E5B0F82B5F4AD48E6EDC70513B22A79C /* SDWebImage-dummy.m */, + 72F97CBD733AEC593E99393A11CBAA97 /* SDWebImage-Info.plist */, + EF6E6E151E5274C2680C604F84D796DA /* SDWebImage-prefix.pch */, + 1E8AB468C4562262408CD193FC330400 /* SDWebImage-umbrella.h */, ); name = "Support Files"; path = "../Target Support Files/SDWebImage"; sourceTree = ""; }; - 5FB1F4B09E0EF64DE883ED86E6B5D526 /* Products */ = { + 40D66F2972E8D692E08D12773894C709 /* SDWebImageSwiftUI */ = { isa = PBXGroup; children = ( - C52E46DEA545BA29FAC51E82E3C4C767 /* Pods_FlinkChallenge.framework */, - EAD0A36A4E523F54A1E42B2E530540F2 /* Pods_FlinkChallengeTests.framework */, - B0B214D775196BA7CA8E17E53048A493 /* SDWebImage.framework */, - 6B1B10F952F684F6767E6903C2F5E816 /* SDWebImageSwiftUI.framework */, - E97D43C46A45EE515A4DA3AF94398441 /* SVProgressHUD.framework */, + 46E7F3B7A726E8843DEF7045A384CFB7 /* ActivityIndicator.swift */, + 896737F5F44A2CE935146F7EBD0F0795 /* AnimatedImage.swift */, + 62A88A76F0CB9CE353BE408C2C26CE62 /* ImageManager.swift */, + 4579ED34AB26D09DE42339BC75E68B9D /* ImageViewWrapper.swift */, + 2A09A92927EE3BEFE56F469AB63BDF6C /* Indicator.swift */, + 34E3639414F00503227876AD742B0D6D /* ProgressIndicator.swift */, + 896E67ACDD2F42848B67E9F3CB3728AD /* SDWebImageSwiftUI.h */, + 0278760B10298475F836F339AD177E7A /* SDWebImageSwiftUI.swift */, + 25EA370B85694F988D549C40EC1BFD1A /* Transition.swift */, + 2AD9B07E3C4BDD2B3332A408BAC47ADD /* WebImage.swift */, + CF19FB901D903B32E8A0A4969D78154C /* Support Files */, ); - name = Products; + name = SDWebImageSwiftUI; + path = SDWebImageSwiftUI; sourceTree = ""; }; 61BF975CD55478B0BD9698786BD86171 /* Pods-FlinkChallengeTests */ = { @@ -556,38 +479,20 @@ path = "Target Support Files/Pods-FlinkChallengeTests"; sourceTree = ""; }; - 65F802F6ACFD9D57917DEA76197B22FE /* Frameworks */ = { - isa = PBXGroup; - children = ( - 4364A4748498DEB00DE6769F767EFF02 /* SDWebImage.framework */, - A910DE466ECBCB995F18D1226229C9D6 /* iOS */, - ); - name = Frameworks; - sourceTree = ""; - }; - 743EB785B76695C163907679438BF17B /* SVProgressHUD */ = { + 63701E9756ABFFB24EEA37041EF333F3 /* Pods */ = { isa = PBXGroup; children = ( - FBC671E431E2AA8801DFD9E9A9348626 /* SVIndefiniteAnimatedView.h */, - 54E893EBFC81298577BCD2D55951516F /* SVIndefiniteAnimatedView.m */, - 01B27D764711FB6235ABB00A55C022D7 /* SVProgressAnimatedView.h */, - AE70A68950F956C47D677966ACD15281 /* SVProgressAnimatedView.m */, - 8B8AB8855C702379C8EBC447E24355FA /* SVProgressHUD.h */, - 9E5361302ECC7806DE163694A105419C /* SVProgressHUD.m */, - 8EE7870C95FAD574A17C5831D945CAB1 /* SVRadialGradientLayer.h */, - EBAA428493C57844440E4E4B10F32E5C /* SVRadialGradientLayer.m */, - AB4F9A1F2F8CC443BB32AD4E94E84841 /* Resources */, - 26031D9B1CD1B6F059E70A33F86AC729 /* Support Files */, + 644D131156F8342A6AB2875F31C5DFE8 /* SDWebImage */, + 40D66F2972E8D692E08D12773894C709 /* SDWebImageSwiftUI */, ); - name = SVProgressHUD; - path = SVProgressHUD; + name = Pods; sourceTree = ""; }; - 7CAFB0E4BF00B4B4206470C38BF1308E /* SDWebImage */ = { + 644D131156F8342A6AB2875F31C5DFE8 /* SDWebImage */ = { isa = PBXGroup; children = ( - 98F8256FA63011EFBD7C0417F94AF41E /* Core */, - 59BA78B28A61F53D27B54A1DDDEA3833 /* Support Files */, + F1B3F7C64B4BEA8500031475FC2F87B1 /* Core */, + 0EBECF425F32A19CFBC17769EA404BEB /* Support Files */, ); name = SDWebImage; path = SDWebImage; @@ -602,179 +507,49 @@ name = "Targets Support Files"; sourceTree = ""; }; - 98F8256FA63011EFBD7C0417F94AF41E /* Core */ = { + A43E7847D75FB171087F71DFD60571F3 /* Products */ = { isa = PBXGroup; children = ( - D13428180570C75E17D46E49ED13B780 /* NSBezierPath+RoundedCorners.h */, - 3BB86C26529231B013CDD5FF20B3F572 /* NSBezierPath+RoundedCorners.m */, - A2F6EF6F65AEB0A6A6D029FE402E6A97 /* NSButton+WebCache.h */, - 012336948580AA8BF086BC269E0CF113 /* NSButton+WebCache.m */, - F994B93050F6B2221CFA0139095E9347 /* NSData+ImageContentType.h */, - 38E9AA3C157D42055DC35A6DC46E8E29 /* NSData+ImageContentType.m */, - 9874E47165D6787587F3A964EA852F38 /* NSImage+Compatibility.h */, - CE741CE21D4D63F78184BEEC504F0ED6 /* NSImage+Compatibility.m */, - 08C403741518BDC894889C8A9568EC18 /* SDAnimatedImage.h */, - 2298C37C57558E66AE733441FA898B3C /* SDAnimatedImage.m */, - 0CF27D539A7C92C54AE8755374BE7ECD /* SDAnimatedImagePlayer.h */, - DB6C0EB41719B68B7D1F159CA6C3D1B9 /* SDAnimatedImagePlayer.m */, - 978245DB0C9B133F0A0CC687A4F8E015 /* SDAnimatedImageRep.h */, - 0C73DFE94500168EFCBAD79BB8FBAE7A /* SDAnimatedImageRep.m */, - B02D8C40DAF58D478F864CD3ECDE2DB3 /* SDAnimatedImageView.h */, - D692E88FF1DB3990431C5D07C8ED768C /* SDAnimatedImageView.m */, - 32CAB1DB6DB39533D1EB1A0EA150BC15 /* SDAnimatedImageView+WebCache.h */, - 2F73D6E21AA99DC667717298163E979C /* SDAnimatedImageView+WebCache.m */, - DF76CE1FBBD7F2E3CFAE16D32BC1E756 /* SDAssociatedObject.h */, - 561767A4F95D63E0D9B5991B56C14169 /* SDAssociatedObject.m */, - A27EE748219625D1A578498A3FA81C5B /* SDAsyncBlockOperation.h */, - C8F79DDFEE0525C002E71F87990119DE /* SDAsyncBlockOperation.m */, - E04D1464DBB3EC2383324A80A559F810 /* SDDeviceHelper.h */, - CD4A295B69D11864669E615D6E593B70 /* SDDeviceHelper.m */, - F8F3CEBD6D1FD555D969D28410E9C5B4 /* SDDiskCache.h */, - 2FDD0434497D4518ADEA73AADB0B2C9F /* SDDiskCache.m */, - CBC9A5D45F18734090A5C5ADCB339B35 /* SDDisplayLink.h */, - E7A886DD14ABF54A91C95764E99439F7 /* SDDisplayLink.m */, - 3BCDDE428DC46E2F840DDE76E9AC9137 /* SDFileAttributeHelper.h */, - 6990DF58FBF577476378BFC34CF36C82 /* SDFileAttributeHelper.m */, - 7902BBFD44072883FDA039C5FE91223C /* SDGraphicsImageRenderer.h */, - F58C57130D4A7F5073D49427D1E33E7D /* SDGraphicsImageRenderer.m */, - EA78DF08F4EF3EDDF7059FA4E9C77879 /* SDImageAPNGCoder.h */, - 07D94E99F5160BEBBBEEC837D23CFE0D /* SDImageAPNGCoder.m */, - 3A3777410DB7F0EA0C655891218691F8 /* SDImageAssetManager.h */, - E72595D9B1A8653BEB4EDD19C7DFF98A /* SDImageAssetManager.m */, - 51EC684EF89D59218B5AE1218EF04696 /* SDImageCache.h */, - 49D5D88B1EC09DE6E61BE00E943AC5E0 /* SDImageCache.m */, - AF79E1C3FE3C01CFF8E572AA5432EB20 /* SDImageCacheConfig.h */, - F93A48F3C1CD92FEB3C0FB853760B6AD /* SDImageCacheConfig.m */, - 790A04825CAF9577D87A49310E437CB5 /* SDImageCacheDefine.h */, - 5828A8AC0E688C7F6A6A9EDA721A898B /* SDImageCacheDefine.m */, - B40682EA093B9A16403A3D7CDDA32CA8 /* SDImageCachesManager.h */, - 60796BBF107B28A48ADAF2725984123A /* SDImageCachesManager.m */, - 76DA4CE342A392FE2B2178837B9A9A37 /* SDImageCachesManagerOperation.h */, - 8783833B9E8755852E8AFE7557A8DB4F /* SDImageCachesManagerOperation.m */, - 8B7A4F3E8587FE20A75E63FFFFD28549 /* SDImageCoder.h */, - 1D012F61959E829EC38335E8E2E9800A /* SDImageCoder.m */, - 5D87D6054E976475706D82A430D64EE4 /* SDImageCoderHelper.h */, - 90D0C094BAB3959DB3BCF784C1044E54 /* SDImageCoderHelper.m */, - 33265145DAC8AD8C196702A1A55E064D /* SDImageCodersManager.h */, - 02090A03A849CB6A4C5DA56D9E219B7B /* SDImageCodersManager.m */, - 7E306DD74ED66609CFC627AD311C8341 /* SDImageFrame.h */, - 49007A9B33E1F324863DC1EAB3DBAE80 /* SDImageFrame.m */, - 049954F0373BDD4AE7981178D42EEE31 /* SDImageGIFCoder.h */, - 7C6C4072C217ED7ED434A8F7CA75306A /* SDImageGIFCoder.m */, - 942A338C4CE6B26475D87CE70F634320 /* SDImageGraphics.h */, - D7A2812970DFB6B7FD171E84B35BB4C5 /* SDImageGraphics.m */, - 76DE972E81C716A081FD18D5099B5B86 /* SDImageHEICCoder.h */, - 5A913CAB3C4221F901C34D296F09F578 /* SDImageHEICCoder.m */, - A50BBADF5BA9494B88D43EA5317C3C31 /* SDImageHEICCoderInternal.h */, - 9C7856B12E2902EEF5D3544931106E4D /* SDImageIOAnimatedCoder.h */, - B124A1C8ADEC8006539AA6639312010E /* SDImageIOAnimatedCoder.m */, - 3E81999F539A7553A8459E6A7D1C262D /* SDImageIOAnimatedCoderInternal.h */, - 1C0D4053BD208D6F61E8918DA5C1BEB6 /* SDImageIOCoder.h */, - 6DA408D7DC7046AEA0A92E5B47501BC3 /* SDImageIOCoder.m */, - CCEF4FD7CF856706C61D2B26742527E6 /* SDImageLoader.h */, - F6803D57ADDD5CF9F7FD6E5A16CBA608 /* SDImageLoader.m */, - 8341A04CC97F3E05DA01AB6999D28912 /* SDImageLoadersManager.h */, - CBDD316FB4CB508250E96CE460415399 /* SDImageLoadersManager.m */, - 036CC3F5D29490B020BD01D3C6B6A6D6 /* SDImageTransformer.h */, - 7361BB87FB37003E4B57307070E2738A /* SDImageTransformer.m */, - D4B6213FB174B4E6CFFE03256C128019 /* SDInternalMacros.h */, - 37B4A75DDBA05F6563121C664391D6FC /* SDInternalMacros.m */, - 75FEE65F14A1AEF3CAB3B015E129BA89 /* SDMemoryCache.h */, - EA1245C38500AD2801EEB0AB8BC7BAAF /* SDMemoryCache.m */, - E86C8F5D1CE60DA2D2014ABBC771139F /* SDmetamacros.h */, - 5737CADDDB16C068465E544BFDCCF921 /* SDWeakProxy.h */, - 1DB41E7B00F2AA550223F7BF6BF82827 /* SDWeakProxy.m */, - 9CDB33705FA7A3567C2D603C37A7CCAA /* SDWebImage.h */, - 970C2176B3B753B1755368554BF16832 /* SDWebImageCacheKeyFilter.h */, - 3D30E1E1A52721091E589091940B610F /* SDWebImageCacheKeyFilter.m */, - 7D0F2694C66EAF7B3345895796802814 /* SDWebImageCacheSerializer.h */, - DADF3EFD983BEA37C50B479B9776409E /* SDWebImageCacheSerializer.m */, - 989DAECB09F2949C884B55AEE6FFBCED /* SDWebImageCompat.h */, - C730F9E8B9192A5ACA781F274DBC3923 /* SDWebImageCompat.m */, - D7687A0DCD34F208F673601D84AE2D94 /* SDWebImageDefine.h */, - 6967EAFBD579274F5D681C2DCD9D7445 /* SDWebImageDefine.m */, - 385500D2A0F1025FAD2945BE5BD71471 /* SDWebImageDownloader.h */, - 7549952B9C1DCE4FB3B4623E5FCADE8A /* SDWebImageDownloader.m */, - AAC3E0B0A9321C4F47D99E8829CE631A /* SDWebImageDownloaderConfig.h */, - 81279A01D3AB912CC139D2EFA54920FC /* SDWebImageDownloaderConfig.m */, - 87E369366B10E5EACC3325FBF9004D25 /* SDWebImageDownloaderDecryptor.h */, - 83E356D49AD6C96EF038F303EE5B3371 /* SDWebImageDownloaderDecryptor.m */, - 9D850B2BFBD243950770283CB4F85BFC /* SDWebImageDownloaderOperation.h */, - 435C4A9BCC1411C77DB4EE0D4F17CA9D /* SDWebImageDownloaderOperation.m */, - D76B2DD4DD0432710700837566220AC4 /* SDWebImageDownloaderRequestModifier.h */, - 09AE3D7DAB52B5124D6F747E0137CA00 /* SDWebImageDownloaderRequestModifier.m */, - 2037E0D33B1413BAF48C45B1F6051AFB /* SDWebImageDownloaderResponseModifier.h */, - B3E0D614A6A95DD5D62B73BB7865A6C8 /* SDWebImageDownloaderResponseModifier.m */, - AC5F316C0AEF1C2387E803CCC2C427A1 /* SDWebImageError.h */, - 95290E5F7BAE0927EE2D709E040925A9 /* SDWebImageError.m */, - D70D9F6B2B134E98E40463884C2686AF /* SDWebImageIndicator.h */, - D2F9F11021BFC644730B6CE45DF331A0 /* SDWebImageIndicator.m */, - DC96DD8C81DA03BFB0414B83D98684D5 /* SDWebImageManager.h */, - 8ECDD0D00227B261C05F38E0B7A718A9 /* SDWebImageManager.m */, - 9228E9A49CA464EEEBC5F0E6DF36D757 /* SDWebImageOperation.h */, - E2BD31B4445816DBEA274F6A1F167F11 /* SDWebImageOptionsProcessor.h */, - 967DDF8EABBB4B74D3AD1F4E53CBDE34 /* SDWebImageOptionsProcessor.m */, - 17A71BA6C1889208D487DE7E785416AB /* SDWebImagePrefetcher.h */, - F6C965560639A1670EAB263967E5685C /* SDWebImagePrefetcher.m */, - F40C2678DBC75B28E4C2951767144DD5 /* SDWebImageTransition.h */, - 729F498B32664DF0F7E57061238D6C91 /* SDWebImageTransition.m */, - 5F5096E0FF39E1A5B1D355585EE8215E /* UIButton+WebCache.h */, - 1EA5F6ED133D395B22506572D6CFE642 /* UIButton+WebCache.m */, - 2D4FDB1E14E32349E0E087EE2000BC76 /* UIColor+HexString.h */, - 40EC2945EA2EFDD97545D2FA3AD4E8AB /* UIColor+HexString.m */, - 3A6533A44AEA21971F8153B97E7EBF90 /* UIImage+ExtendedCacheData.h */, - F214808C4152205E118D589C77F25B52 /* UIImage+ExtendedCacheData.m */, - 4E9C504B8003F6CDD087F44FAC8D7038 /* UIImage+ForceDecode.h */, - 45A79BC196EBF9AFCB6AA27F86E431AF /* UIImage+ForceDecode.m */, - 6D4F1930F7F196C99AFF40DABCA4EA14 /* UIImage+GIF.h */, - 775E5CB983BDAA35A1DBBF333FABEAF4 /* UIImage+GIF.m */, - BA71D8C2628D9DD0E71CCD5659F4BBD8 /* UIImage+MemoryCacheCost.h */, - EE8B3F49B69C130DDD7DEA21E4CAB422 /* UIImage+MemoryCacheCost.m */, - 272013C86DD8549FEA2BB7451E222F9D /* UIImage+Metadata.h */, - 2FC93E2EFC4D7B268518214B89A51AEC /* UIImage+Metadata.m */, - B149E4652B36FCA250DE847A88DBD102 /* UIImage+MultiFormat.h */, - 44E52D44FB0A5181FF0B80821AB15245 /* UIImage+MultiFormat.m */, - 28109F72ECBA723B976024C998B9D074 /* UIImage+Transform.h */, - 3D890C89F980CB78483120F2863B4A9F /* UIImage+Transform.m */, - 8841BA5A9E66AC1AA4153E3519D9F591 /* UIImageView+HighlightedWebCache.h */, - 5995C888DC67487A9182108ACF505CBC /* UIImageView+HighlightedWebCache.m */, - B818B27075D0F67621EEA9762D633D34 /* UIImageView+WebCache.h */, - B55BC2E615E9E96AF95867920FB9BB63 /* UIImageView+WebCache.m */, - D378ECCED2AEF31B445AFF4DC6878101 /* UIView+WebCache.h */, - AF4BA9457F2B3C063C5F7F28A94B4FB2 /* UIView+WebCache.m */, - 9AD418BA0A626E2A112D2B64D705C44A /* UIView+WebCacheOperation.h */, - 8AB6271232956D9EC03E964FF4F42996 /* UIView+WebCacheOperation.m */, + C52E46DEA545BA29FAC51E82E3C4C767 /* Pods_FlinkChallenge.framework */, + EAD0A36A4E523F54A1E42B2E530540F2 /* Pods_FlinkChallengeTests.framework */, + B0B214D775196BA7CA8E17E53048A493 /* SDWebImage.framework */, + 6B1B10F952F684F6767E6903C2F5E816 /* SDWebImageSwiftUI.framework */, ); - name = Core; + name = Products; sourceTree = ""; }; - A910DE466ECBCB995F18D1226229C9D6 /* iOS */ = { + CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( - FC3614998EA35AEFFF5A66542468F26B /* Foundation.framework */, - 0CD7AD0B624A7E748E818D75557B16F4 /* ImageIO.framework */, - BAAB5921F25A6107C88F6EC6675122F2 /* QuartzCore.framework */, + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + FE2269534DDAD28BD872938D6CC2E2EF /* Frameworks */, + 63701E9756ABFFB24EEA37041EF333F3 /* Pods */, + A43E7847D75FB171087F71DFD60571F3 /* Products */, + 87B39EDD15CC9FEBC41593FFFC912F22 /* Targets Support Files */, ); - name = iOS; sourceTree = ""; }; - AB4F9A1F2F8CC443BB32AD4E94E84841 /* Resources */ = { + CF19FB901D903B32E8A0A4969D78154C /* Support Files */ = { isa = PBXGroup; children = ( - F3B5694B66A8A18B588965B2A1FA72B7 /* SVProgressHUD.bundle */, + 0DF5F211CBCE4CE38CE65F0987DCD8FD /* SDWebImageSwiftUI.modulemap */, + 81527E7870173C6C82D4A7F47474A4D6 /* SDWebImageSwiftUI.xcconfig */, + 96F83922C0609C89DF506953D0B030FA /* SDWebImageSwiftUI-dummy.m */, + DE961395AB36CC6574299E7F2FFD76CA /* SDWebImageSwiftUI-Info.plist */, + 451660592FD8FE25D06DFA58713A0ED9 /* SDWebImageSwiftUI-prefix.pch */, + 795D09CFB6D3DC4EA6490E63695F89D9 /* SDWebImageSwiftUI-umbrella.h */, ); - name = Resources; + name = "Support Files"; + path = "../Target Support Files/SDWebImageSwiftUI"; sourceTree = ""; }; - CF1408CF629C7361332E53B88F7BD30C = { + D24974A17EF9D2DB216A357CCECF7808 /* iOS */ = { isa = PBXGroup; children = ( - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - 65F802F6ACFD9D57917DEA76197B22FE /* Frameworks */, - 2A5F9D6A8DA954C3297A69D15E5D12C2 /* Pods */, - 5FB1F4B09E0EF64DE883ED86E6B5D526 /* Products */, - 87B39EDD15CC9FEBC41593FFFC912F22 /* Targets Support Files */, + 3B824E5AF2221D092BE5A1A822E873BE /* Foundation.framework */, + 5DBC3A183D77004891A7FE072A39CC95 /* ImageIO.framework */, ); + name = iOS; sourceTree = ""; }; EB56D4BE7CE40773B0623CCFBD9E4D28 /* Pods-FlinkChallenge */ = { @@ -794,23 +569,159 @@ path = "Target Support Files/Pods-FlinkChallenge"; sourceTree = ""; }; - EE91353F8BB536AB5922E30E4F9E1ED5 /* SDWebImageSwiftUI */ = { + F1B3F7C64B4BEA8500031475FC2F87B1 /* Core */ = { isa = PBXGroup; children = ( - 6510CD487D6EED590B8FFCB5D51693A8 /* ActivityIndicator.swift */, - DA590654C745D04EF1123B709A971577 /* AnimatedImage.swift */, - E645FD9503046B184FE62CE6FD3A7A09 /* ImageManager.swift */, - 28ADAB1ED4D4C9D135C49D1714D18E9E /* ImageViewWrapper.swift */, - 8C0F527EBD6C19E807D58706AC651355 /* Indicator.swift */, - 0C9B7637547F70D60AFC26043FD8EF2E /* ProgressIndicator.swift */, - A56ED5FFDFBEB60BD6C9EC22CFEB9500 /* SDWebImageSwiftUI.h */, - 2110E1344558933A8E5FDBE9C655482F /* SDWebImageSwiftUI.swift */, - 0512D7EBA0D13DBEE39AB58B57E97009 /* Transition.swift */, - B305804ECD7455CDF357BD37989B6CEF /* WebImage.swift */, - 3ED3895BED58C58DF00C3EE925CBA6AD /* Support Files */, + FE6A4C8D049AB4E3215F41963DEDB092 /* NSBezierPath+RoundedCorners.h */, + 5B117F1063EED6DF826FFA7651449AFE /* NSBezierPath+RoundedCorners.m */, + F2268387BC57987FA920B46F0E6A9F62 /* NSButton+WebCache.h */, + 83199578466B1814D498D562383CB06E /* NSButton+WebCache.m */, + 604A4C137A0EC9392D3AC4A826B89C28 /* NSData+ImageContentType.h */, + AC441725DBDA71E77ADABFFDD1C393F5 /* NSData+ImageContentType.m */, + B8408B756F17472E30C89656601911C1 /* NSImage+Compatibility.h */, + 883CDB15E638EF90BD56DF0C78B44DC8 /* NSImage+Compatibility.m */, + 5310BEBDD7710C53B3311C954109F8B8 /* SDAnimatedImage.h */, + 997E750BEC4D2D37B1E30DCB95A0755E /* SDAnimatedImage.m */, + 8DF1FF7D493EA476A176442737993B05 /* SDAnimatedImagePlayer.h */, + 3D7024D9B75E59BADE50711449F88E33 /* SDAnimatedImagePlayer.m */, + E33967B26615117BF2D1BCDA786D34D3 /* SDAnimatedImageRep.h */, + 89049E5937E4EAA858DB0A7599EDB522 /* SDAnimatedImageRep.m */, + 9F93C7A5F49BD98DE912046D3CBCA03C /* SDAnimatedImageView.h */, + CD9787286866A9A791CD038D24D9FB21 /* SDAnimatedImageView.m */, + EDDEAC84ECD9A72046E2068BD33FAC17 /* SDAnimatedImageView+WebCache.h */, + C8FE632BF2A4AE36FD3EDD498C772D33 /* SDAnimatedImageView+WebCache.m */, + 1BC428F74567C7F2DB4EFA81B91F649C /* SDAssociatedObject.h */, + CE6889FE57ED4A47AB3AD869921851AF /* SDAssociatedObject.m */, + BA8CCBD6E209F27E733AB0AF50C57F73 /* SDAsyncBlockOperation.h */, + DDD57922D2276A46856E9B5968FEF9ED /* SDAsyncBlockOperation.m */, + 04DCE39BF0C72025B7C8DB1CCFAF631D /* SDDeviceHelper.h */, + AD5E8E783C441A54839F242D9C03ED66 /* SDDeviceHelper.m */, + 366283774DA6DC0DD2FB85EC9BDF0C13 /* SDDiskCache.h */, + D0C87DEF0CD545B55F895849FF2659C7 /* SDDiskCache.m */, + A97309D833F04A2C33F4FC0408292F88 /* SDDisplayLink.h */, + D6B1A7017C6831E7A3524937C106664C /* SDDisplayLink.m */, + 5A1B8230F7389986FB4CB101BC0ADE28 /* SDFileAttributeHelper.h */, + F1885669B3A9DCBFF256CC48ED65E243 /* SDFileAttributeHelper.m */, + 0C9D576C7267A749171F2282DA01E2B8 /* SDGraphicsImageRenderer.h */, + 6A9CFD9F9B13C957E6E1D3CE893B82C7 /* SDGraphicsImageRenderer.m */, + 518BBBB8EA5DD253C9A61E1289D789A6 /* SDImageAPNGCoder.h */, + AD5A1EB39CE236BD6C92CDB7DD8C1AF1 /* SDImageAPNGCoder.m */, + 73EC18EA177FD4CBF85C7EFBAC3D68A1 /* SDImageAssetManager.h */, + E50ADC23317B8083C5849800777A56C0 /* SDImageAssetManager.m */, + 66F78E80F537955882CA3E2BE2656D95 /* SDImageCache.h */, + FC4DAD1653FB05D7804EABEB17306FA9 /* SDImageCache.m */, + BA320D76763623BAB26F8AF18A5AEB55 /* SDImageCacheConfig.h */, + 83CABE05A7EB2F78061260983A13BAFE /* SDImageCacheConfig.m */, + D9A708F39819BF6A71474CF672AD2418 /* SDImageCacheDefine.h */, + 15A9A8B9C7F1FD0808A3D765000B7507 /* SDImageCacheDefine.m */, + B146E8C1E1E2B8288F5C436A48C96848 /* SDImageCachesManager.h */, + F042B2A1EFA687659376AE78B6C51113 /* SDImageCachesManager.m */, + 8C3676502CEF4DAE69C14EE4DCF16C08 /* SDImageCachesManagerOperation.h */, + A54321916697656C6F9BA7ACE050FD00 /* SDImageCachesManagerOperation.m */, + B3762388D9EB7668E7F9630315615F4B /* SDImageCoder.h */, + 904EA8EA4F1AAC6985EB7D44BCAD21D8 /* SDImageCoder.m */, + CB8BFCE61BA27F02A9D41D3D91905628 /* SDImageCoderHelper.h */, + F16BFBD1B61857E1B2FAECA87CEF0633 /* SDImageCoderHelper.m */, + 74F5BFBC90770B38B0A6664DBFC6BA14 /* SDImageCodersManager.h */, + 4F81BACDC9B577015CBEFAE1A80FBE26 /* SDImageCodersManager.m */, + 3C9DC434546BE3B91591E9A463607DAA /* SDImageFrame.h */, + 319A808BABC275F737C08AB383315E50 /* SDImageFrame.m */, + 2EA531D86DCCA39BDA3743872D47BB0F /* SDImageGIFCoder.h */, + 3C16791E79ACB37BA6DBF5F140CB553A /* SDImageGIFCoder.m */, + 172EE6CFC06CB7BD0C2A400528CB0111 /* SDImageGraphics.h */, + F3E4B92637606AF74B96DE35EF2BE863 /* SDImageGraphics.m */, + 187C86FBFD7B09AEBDD37E5C2F5813C7 /* SDImageHEICCoder.h */, + 1D1EC35ABFA3630EFA311FDF6B39ED13 /* SDImageHEICCoder.m */, + 5C9074C0D6316F4B7DADF577304855A3 /* SDImageHEICCoderInternal.h */, + 02C55A062BA684225818A48E10A9D8B8 /* SDImageIOAnimatedCoder.h */, + F6C508AE2C31AB6D42DE64C8D1A4B206 /* SDImageIOAnimatedCoder.m */, + CDF631BB3B1D614A8666573249A448F4 /* SDImageIOAnimatedCoderInternal.h */, + E312F8875484F482DFFFEEB5748D7D87 /* SDImageIOCoder.h */, + 1FBDC614C4DA9E3958C7C9B44B096B34 /* SDImageIOCoder.m */, + ACF4429A390C63AAA5CDAEC362AE3382 /* SDImageLoader.h */, + 63FFFED0E1ECFCA8DB48B165311D04ED /* SDImageLoader.m */, + FDA60A64A833A4B8DC23F989F1C2E9D9 /* SDImageLoadersManager.h */, + 483C81B476430AB8FEA4C2DDF9ABC605 /* SDImageLoadersManager.m */, + 44B403CA37DDD006462E3EF983262F12 /* SDImageTransformer.h */, + 33F0EE80D26815CEEC97D06E0CFFC103 /* SDImageTransformer.m */, + 9F2CEEF00CFFA06E846F2082B7D7D282 /* SDInternalMacros.h */, + AA80F11E652E7F69C9839B23E9AF4ACC /* SDInternalMacros.m */, + C67C69F78A771F0B436632C7CAA125BE /* SDMemoryCache.h */, + A81AECFF8E1F73B77CAA85317535033B /* SDMemoryCache.m */, + 74E19CDD0CA2AA3D0662C3C43E2BFA2F /* SDmetamacros.h */, + 29602839AB38F63DA66AF94EA7E6C900 /* SDWeakProxy.h */, + 639FEB216FEB25D3823E8B2F3145F269 /* SDWeakProxy.m */, + 0E47C5DC59846B430D90AAC649D5A437 /* SDWebImage.h */, + 3A087A4ADC5FD9A02367F0CD7F6CEAAE /* SDWebImageCacheKeyFilter.h */, + D66D79E3DB6517327045CC46D45D4019 /* SDWebImageCacheKeyFilter.m */, + D12A96594105AE39AB7DB4CAC307E480 /* SDWebImageCacheSerializer.h */, + D170C0DEAB467EF3750DFB6E643D42E1 /* SDWebImageCacheSerializer.m */, + 9725183A5B6D4B5C501C572763D2A520 /* SDWebImageCompat.h */, + 610EA1B815C7C16BA686744C8CAB43F3 /* SDWebImageCompat.m */, + 31574246F689CE3741DA89C7DD1080CC /* SDWebImageDefine.h */, + 2DA65C489E9C5D35F0901BBDA828AF94 /* SDWebImageDefine.m */, + 6C5E7B6CD87ACE97B5601F5A02C37D7D /* SDWebImageDownloader.h */, + 9F0D9705B1058066A55F155EA15EBA89 /* SDWebImageDownloader.m */, + 763E8DB4B7B558C628646920252D2544 /* SDWebImageDownloaderConfig.h */, + 04A59DF2A740EF9103C9D00B81F8521E /* SDWebImageDownloaderConfig.m */, + F4FA8DACF440E20A1A4DA8C043714096 /* SDWebImageDownloaderDecryptor.h */, + F5E058AB4F1C9923E359F8EF8E26CD0F /* SDWebImageDownloaderDecryptor.m */, + EC356B896F7FD9129E5E68644DB894AB /* SDWebImageDownloaderOperation.h */, + 91DFCDEA082D435D1A8AA7FE59C30B7B /* SDWebImageDownloaderOperation.m */, + 6D7C396367D99520E2BEF7B65F85DD28 /* SDWebImageDownloaderRequestModifier.h */, + 4EB1B519DE169B23173A3F0DA46F99FE /* SDWebImageDownloaderRequestModifier.m */, + 9DDEB69EA7BB87536DE8576A3EBDF5FA /* SDWebImageDownloaderResponseModifier.h */, + 277ADB427377F841FE1B43A0C5142AAF /* SDWebImageDownloaderResponseModifier.m */, + A6A6B9AB6BB23ADEDE9790AD66E5D732 /* SDWebImageError.h */, + 056064E3F6A2AE248C86056C8AA54996 /* SDWebImageError.m */, + 2C1E68DCCF96A553029332423DDE77D1 /* SDWebImageIndicator.h */, + 98918DA7068A1C99431244138BF46A1E /* SDWebImageIndicator.m */, + CDB4BF4EB268FD1BE0FDB1CBA453D2A0 /* SDWebImageManager.h */, + D71B62A2B71ECF03593A62B7AFE1C7D4 /* SDWebImageManager.m */, + 64C82F31B215D15E8F532BB74328730E /* SDWebImageOperation.h */, + 748CCFC3007CF059391378B86D04DD42 /* SDWebImageOptionsProcessor.h */, + 3FC2A6D967CFF1E79492EC5E0B7FCEF8 /* SDWebImageOptionsProcessor.m */, + FA1AC9D9ABFC23B18E2A5289BED38D31 /* SDWebImagePrefetcher.h */, + 19345F1D14EBCCE5232A2013D29809A1 /* SDWebImagePrefetcher.m */, + A12E7CD66668919E69A686D7F8151DD9 /* SDWebImageTransition.h */, + 57DF2CC2EF2725A9A0F2F224234B6D57 /* SDWebImageTransition.m */, + 606EC942D9566EEF91E29C34EABDDE5E /* UIButton+WebCache.h */, + 1E8021A60B1C6879E05F36CA0AE73415 /* UIButton+WebCache.m */, + DCE47DCC5A963DAF0BD85C9AD6624409 /* UIColor+HexString.h */, + 2F0A803CA599D21B14176E04B0C17FC2 /* UIColor+HexString.m */, + 00331F9E3D9953042E5FDB318E39E1D5 /* UIImage+ExtendedCacheData.h */, + 06AF23753386CB5CB0A29A611C47FF0F /* UIImage+ExtendedCacheData.m */, + A946820F9CDA2B69A09397A9C2F21E0D /* UIImage+ForceDecode.h */, + 9AF608A8354D74FE317A7FF0E6ACCF3B /* UIImage+ForceDecode.m */, + FBA896A8B1711AA950E91B88CDC4F6F1 /* UIImage+GIF.h */, + 0A17E28ED3FAFE8336DB7180AB644D6D /* UIImage+GIF.m */, + 2A86A86EF1D3F198B49F782D7C861497 /* UIImage+MemoryCacheCost.h */, + D7A3139E79A276EE7F1817B6D5FB738F /* UIImage+MemoryCacheCost.m */, + 1159DDE377D719B4E8ED78046EA7CFF5 /* UIImage+Metadata.h */, + 02945C48A31AA92C63B9FFEBFA46197B /* UIImage+Metadata.m */, + 32CE41E69F82E8D5F1D5FA1FC872AE6E /* UIImage+MultiFormat.h */, + 7657A89ECB131537E6E118C911E3E280 /* UIImage+MultiFormat.m */, + 31FC9A2F7A641E7ADF39E81337563D9B /* UIImage+Transform.h */, + D3D2294354EC9A4985E4F46E027F75A5 /* UIImage+Transform.m */, + A2DD9AB210C6A35EFF5FCE0714322ED3 /* UIImageView+HighlightedWebCache.h */, + 7A977DB8D5B1B000C760B5982A8F21DC /* UIImageView+HighlightedWebCache.m */, + 94CABB432767374F797A984161775219 /* UIImageView+WebCache.h */, + 335130CF9E5356C6F7C0E378E43D30AF /* UIImageView+WebCache.m */, + B776BB779BE8F078BFE7951C7834A9C0 /* UIView+WebCache.h */, + 1B357648CAA68C9E7BFA3E8BC8D332BA /* UIView+WebCache.m */, + 4E6C00B0542293F53C23EE9BD4AFFAB7 /* UIView+WebCacheOperation.h */, + 3A43E87382AA30EB2198B81DA1282339 /* UIView+WebCacheOperation.m */, ); - name = SDWebImageSwiftUI; - path = SDWebImageSwiftUI; + name = Core; + sourceTree = ""; + }; + FE2269534DDAD28BD872938D6CC2E2EF /* Frameworks */ = { + isa = PBXGroup; + children = ( + 46CADD225887D9E729105DF6BCBD3466 /* SDWebImage.framework */, + D24974A17EF9D2DB216A357CCECF7808 /* iOS */, + ); + name = Frameworks; sourceTree = ""; }; /* End PBXGroup section */ @@ -905,15 +816,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 7C044C67F11489EFA3459B8399E7061C /* Headers */ = { + 7EE5399AB57E9A322B92BF636E9EA0F1 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 96EADE99073DBA8FCE7904627E2D18EE /* SVIndefiniteAnimatedView.h in Headers */, - E0186A63060F0EB3676F95CD0ACE0E18 /* SVProgressAnimatedView.h in Headers */, - DE12057AB8895931A0E9499619C5CFC8 /* SVProgressHUD-umbrella.h in Headers */, - 0CA80ED7E59E6BCE64CEEE649A3C6D2F /* SVProgressHUD.h in Headers */, - D87B2D5ED73534ACF97CE0A52FA18AE4 /* SVRadialGradientLayer.h in Headers */, + E4052573B166F76043AA5ECEB01682E9 /* Pods-FlinkChallenge-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -925,14 +832,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - F97D5E8CC075CFEBFF18F2A40AD82F11 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 2FB46D97A5518BA99F11818BAF4E02CE /* Pods-FlinkChallenge-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ @@ -955,24 +854,6 @@ productReference = EAD0A36A4E523F54A1E42B2E530540F2 /* Pods_FlinkChallengeTests.framework */; productType = "com.apple.product-type.framework"; }; - 1C8D67D8B72D6BA42CCEDB648537A340 /* SVProgressHUD */ = { - isa = PBXNativeTarget; - buildConfigurationList = E76C288BA44757915CF3700D8A326EB7 /* Build configuration list for PBXNativeTarget "SVProgressHUD" */; - buildPhases = ( - 7C044C67F11489EFA3459B8399E7061C /* Headers */, - D0233C648200ED130A278D7164E80914 /* Sources */, - B3D1D1191F24E31CEEA04BDB3FB4C0F2 /* Frameworks */, - 7BB2E885B360CCC1AEF0C191542BA06E /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SVProgressHUD; - productName = SVProgressHUD; - productReference = E97D43C46A45EE515A4DA3AF94398441 /* SVProgressHUD.framework */; - productType = "com.apple.product-type.framework"; - }; 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */ = { isa = PBXNativeTarget; buildConfigurationList = B79FF5DBE1C44D436B8044A9E0F0AB31 /* Build configuration list for PBXNativeTarget "SDWebImage" */; @@ -993,19 +874,18 @@ }; 4125C2357916145F5466286F97FB6A87 /* Pods-FlinkChallenge */ = { isa = PBXNativeTarget; - buildConfigurationList = F8ED874FA4877D0125A1B3947FF914FA /* Build configuration list for PBXNativeTarget "Pods-FlinkChallenge" */; + buildConfigurationList = 01D1F41D28CE29D05B15FDBDCA0AD744 /* Build configuration list for PBXNativeTarget "Pods-FlinkChallenge" */; buildPhases = ( - F97D5E8CC075CFEBFF18F2A40AD82F11 /* Headers */, - DD2A7E377ED0A9EA9EFB3E0055D2186A /* Sources */, - EF7EA5D082B4EB34C6DA3A7E71F73896 /* Frameworks */, - D702E2EDC192C7B030B049ECB76D4ED8 /* Resources */, + 7EE5399AB57E9A322B92BF636E9EA0F1 /* Headers */, + 8FCFC9D1902A9BDD5499DCE244126605 /* Sources */, + C09CB989F7CB531E802E65E94051746F /* Frameworks */, + 7DBE8427E28DE2F12E484D931A166383 /* Resources */, ); buildRules = ( ); dependencies = ( - B3C3A1287582E6A7939A669266B40CF2 /* PBXTargetDependency */, - F344273AB83019CB300D1601138300F5 /* PBXTargetDependency */, - D6934067008B7F89B66C601B69C85236 /* PBXTargetDependency */, + C4AD9D2BE728AE35EE0C427160D1F4FA /* PBXTargetDependency */, + B9280C323E2EACD8BBB2B738F7702520 /* PBXTargetDependency */, ); name = "Pods-FlinkChallenge"; productName = "Pods-FlinkChallenge"; @@ -1041,14 +921,14 @@ LastUpgradeCheck = 1100; }; buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; - compatibilityVersion = "Xcode 9.3"; + compatibilityVersion = "Xcode 10.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; - productRefGroup = 5FB1F4B09E0EF64DE883ED86E6B5D526 /* Products */; + productRefGroup = A43E7847D75FB171087F71DFD60571F3 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -1056,7 +936,6 @@ 01BC0A15A1DC2E7F54D21EB4F285ABEC /* Pods-FlinkChallengeTests */, 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */, 92EBFA3E7005B4C18A9C0B44324EB80F /* SDWebImageSwiftUI */, - 1C8D67D8B72D6BA42CCEDB648537A340 /* SVProgressHUD */, ); }; /* End PBXProject section */ @@ -1069,11 +948,10 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 7BB2E885B360CCC1AEF0C191542BA06E /* Resources */ = { + 7DBE8427E28DE2F12E484D931A166383 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 264E1A478BDFA31DA6842749C72EA535 /* SVProgressHUD.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1091,13 +969,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - D702E2EDC192C7B030B049ECB76D4ED8 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -1184,15 +1055,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - D0233C648200ED130A278D7164E80914 /* Sources */ = { + 8FCFC9D1902A9BDD5499DCE244126605 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - B5B9915F785CB47C5C07F0B698911B00 /* SVIndefiniteAnimatedView.m in Sources */, - EEAA1518C49804736C3F40117D064CBE /* SVProgressAnimatedView.m in Sources */, - 9FDEEEE37349769B84A30B0105DFF456 /* SVProgressHUD-dummy.m in Sources */, - 3392F8407B8C6F47A4E47436894642D8 /* SVProgressHUD.m in Sources */, - D2246BE5AF9C116D84444CC5C955BC02 /* SVRadialGradientLayer.m in Sources */, + 210E21FA8E55A7877318D33EEC09231F /* Pods-FlinkChallenge-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1213,14 +1080,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - DD2A7E377ED0A9EA9EFB3E0055D2186A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4E03B4B71941E6A2CEE27CC9D7A537F1 /* Pods-FlinkChallenge-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -1236,30 +1095,24 @@ target = 4125C2357916145F5466286F97FB6A87 /* Pods-FlinkChallenge */; targetProxy = B16E1A9402F89D40FECF0EAE502C267E /* PBXContainerItemProxy */; }; - B3C3A1287582E6A7939A669266B40CF2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SDWebImage; - target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; - targetProxy = 9D080CA55458EA709A283666D7E820A9 /* PBXContainerItemProxy */; - }; - D6934067008B7F89B66C601B69C85236 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SVProgressHUD; - target = 1C8D67D8B72D6BA42CCEDB648537A340 /* SVProgressHUD */; - targetProxy = 1FAE64F300DDA9017387568FC6E1C5BA /* PBXContainerItemProxy */; - }; - F344273AB83019CB300D1601138300F5 /* PBXTargetDependency */ = { + B9280C323E2EACD8BBB2B738F7702520 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = SDWebImageSwiftUI; target = 92EBFA3E7005B4C18A9C0B44324EB80F /* SDWebImageSwiftUI */; - targetProxy = 26F29D5C2DE77C4541793777F7AE2B67 /* PBXContainerItemProxy */; + targetProxy = EEDD64474F280846C5878FC1ACB19C71 /* PBXContainerItemProxy */; + }; + C4AD9D2BE728AE35EE0C427160D1F4FA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SDWebImage; + target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; + targetProxy = 763CD611A2A45D29D4ED9E95E4FE4E2F /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ 15C76860A6739D1AA38DE8C646036332 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 50167CEDB2D9AFF4255F82C056092986 /* SDWebImage.xcconfig */; + baseConfigurationReference = 563B8C31B83416F17148B9F8677AA3FF /* SDWebImage.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -1292,9 +1145,47 @@ }; name = Debug; }; + 178521DCF28B7DA7150588FD640952DC /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 43E316D4B8B13067237946F98CDE36D6 /* Pods-FlinkChallenge.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; 3897B2719AAD1FFD7B7DA35AB76C2D25 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F91130F8B2BA1392387BE2F2654F1D18 /* SDWebImageSwiftUI.xcconfig */; + baseConfigurationReference = 81527E7870173C6C82D4A7F47474A4D6 /* SDWebImageSwiftUI.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; @@ -1393,6 +1284,45 @@ }; name = Debug; }; + 6F9E7F5D3C2864379B355C6B437FEC6B /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5B9A03D6CCDB82AC45222654FA9D4146 /* Pods-FlinkChallenge.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; 7DC5F11AFBEAE473E8D3C24A2D11338D /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1453,45 +1383,6 @@ }; name = Release; }; - 96D321F4D3AD5EB63676008CD386FC76 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5B9A03D6CCDB82AC45222654FA9D4146 /* Pods-FlinkChallenge.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; 978CB6AB395E61B63DAEAC622B3F770F /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 1EDC98827B00FBC9297CD273815FDBEB /* Pods-FlinkChallengeTests.debug.xcconfig */; @@ -1530,80 +1421,9 @@ }; name = Debug; }; - 996001DAD20CED9D9EFFCC0503E4E0DF /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 99B24BB00D97AFF72D936BAC6F125FBA /* SVProgressHUD.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SVProgressHUD/SVProgressHUD-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SVProgressHUD/SVProgressHUD-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/SVProgressHUD/SVProgressHUD.modulemap"; - PRODUCT_MODULE_NAME = SVProgressHUD; - PRODUCT_NAME = SVProgressHUD; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - AB556174290E39DE9C082CA03D93CCB1 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 99B24BB00D97AFF72D936BAC6F125FBA /* SVProgressHUD.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SVProgressHUD/SVProgressHUD-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SVProgressHUD/SVProgressHUD-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/SVProgressHUD/SVProgressHUD.modulemap"; - PRODUCT_MODULE_NAME = SVProgressHUD; - PRODUCT_NAME = SVProgressHUD; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; B336F1B638268635281D3CF49C5334DB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 50167CEDB2D9AFF4255F82C056092986 /* SDWebImage.xcconfig */; + baseConfigurationReference = 563B8C31B83416F17148B9F8677AA3FF /* SDWebImage.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -1637,44 +1457,6 @@ }; name = Release; }; - B802019BFC1FCA811AAE4EBB865E3719 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 43E316D4B8B13067237946F98CDE36D6 /* Pods-FlinkChallenge.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; E5E658CF5D8455E1D217099CDDAA4ABF /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 3F246748AAEF5F516506AF5D3E890A30 /* Pods-FlinkChallengeTests.release.xcconfig */; @@ -1716,7 +1498,7 @@ }; F06FBAF03E4DEA1A2F1CFFF0A4DD021B /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F91130F8B2BA1392387BE2F2654F1D18 /* SDWebImageSwiftUI.xcconfig */; + baseConfigurationReference = 81527E7870173C6C82D4A7F47474A4D6 /* SDWebImageSwiftUI.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; @@ -1753,6 +1535,15 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + 01D1F41D28CE29D05B15FDBDCA0AD744 /* Build configuration list for PBXNativeTarget "Pods-FlinkChallenge" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 178521DCF28B7DA7150588FD640952DC /* Debug */, + 6F9E7F5D3C2864379B355C6B437FEC6B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 46EB848B5F5E894B2A74FE85C6D05F8C /* Build configuration list for PBXNativeTarget "Pods-FlinkChallengeTests" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -1789,24 +1580,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E76C288BA44757915CF3700D8A326EB7 /* Build configuration list for PBXNativeTarget "SVProgressHUD" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - AB556174290E39DE9C082CA03D93CCB1 /* Debug */, - 996001DAD20CED9D9EFFCC0503E4E0DF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - F8ED874FA4877D0125A1B3947FF914FA /* Build configuration list for PBXNativeTarget "Pods-FlinkChallenge" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - B802019BFC1FCA811AAE4EBB865E3719 /* Debug */, - 96D321F4D3AD5EB63676008CD386FC76 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; /* End XCConfigurationList section */ }; rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; diff --git a/FlinkChallenge/Pods/SVProgressHUD/LICENSE b/FlinkChallenge/Pods/SVProgressHUD/LICENSE deleted file mode 100644 index f8c911b..0000000 --- a/FlinkChallenge/Pods/SVProgressHUD/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2011-2018 Sam Vermette, Tobias Tiemerding and contributors. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/FlinkChallenge/Pods/SVProgressHUD/README.md b/FlinkChallenge/Pods/SVProgressHUD/README.md deleted file mode 100644 index a9ce9e0..0000000 --- a/FlinkChallenge/Pods/SVProgressHUD/README.md +++ /dev/null @@ -1,218 +0,0 @@ -# SVProgressHUD - -![Pod Version](https://img.shields.io/cocoapods/v/SVProgressHUD.svg?style=flat) -![Pod Platform](https://img.shields.io/cocoapods/p/SVProgressHUD.svg?style=flat) -![Pod License](https://img.shields.io/cocoapods/l/SVProgressHUD.svg?style=flat) -[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-green.svg?style=flat)](https://github.com/Carthage/Carthage) -[![CocoaPods compatible](https://img.shields.io/badge/CocoaPods-compatible-green.svg?style=flat)](https://cocoapods.org) - -`SVProgressHUD` is a clean and easy-to-use HUD meant to display the progress of an ongoing task on iOS and tvOS. - -![SVProgressHUD](http://f.cl.ly/items/2G1F1Z0M0k0h2U3V1p39/SVProgressHUD.gif) - -## Demo - -Try `SVProgressHUD` on [Appetize.io](https://appetize.io/app/p8r2cvy8kq74x7q7tjqf5gyatr). - -## Installation - -### From CocoaPods - -[CocoaPods](http://cocoapods.org) is a dependency manager for Objective-C, which automates and simplifies the process of using 3rd-party libraries like `SVProgressHUD` in your projects. First, add the following line to your [Podfile](http://guides.cocoapods.org/using/using-cocoapods.html): - -```ruby -pod 'SVProgressHUD' -``` - -If you want to use the latest features of `SVProgressHUD` use normal external source dependencies. - -```ruby -pod 'SVProgressHUD', :git => 'https://github.com/SVProgressHUD/SVProgressHUD.git' -``` - -This pulls from the `master` branch directly. - -Second, install `SVProgressHUD` into your project: - -```ruby -pod install -``` - -### Carthage - -[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. To integrate `SVProgressHUD` into your Xcode project using Carthage, specify it in your `Cartfile`: - -```ogdl -github "SVProgressHUD/SVProgressHUD" -``` - -Run `carthage bootstrap` to build the framework in your repository's Carthage directory. You can then include it in your target's `carthage copy-frameworks` build phase. For more information on this, please see [Carthage's documentation](https://github.com/carthage/carthage#if-youre-building-for-ios-tvos-or-watchos). - -### Manually - -* Drag the `SVProgressHUD/SVProgressHUD` folder into your project. -* Take care that `SVProgressHUD.bundle` is added to `Targets->Build Phases->Copy Bundle Resources`. -* Add the **QuartzCore** framework to your project. - -## Swift - -Even though `SVProgressHUD` is written in Objective-C, it can be used in Swift with no hassle. If you use [CocoaPods](http://cocoapods.org) add the following line to your [Podfile](http://guides.cocoapods.org/using/using-cocoapods.html): - -```ruby -use_frameworks! -``` - -If you added `SVProgressHUD` manually, just add a [bridging header](https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html) file to your project with the `SVProgressHUD` header included. - -## Usage - -(see sample Xcode project in `/Demo`) - -`SVProgressHUD` is created as a singleton (i.e. it doesn't need to be explicitly allocated and instantiated; you directly call `[SVProgressHUD method]`). - -**Use `SVProgressHUD` wisely! Only use it if you absolutely need to perform a task before taking the user forward. Bad use case examples: pull to refresh, infinite scrolling, sending message.** - -Using `SVProgressHUD` in your app will usually look as simple as this (using Grand Central Dispatch): - -```objective-c -[SVProgressHUD show]; -dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ - // time-consuming task - dispatch_async(dispatch_get_main_queue(), ^{ - [SVProgressHUD dismiss]; - }); -}); -``` - -### Showing the HUD - -You can show the status of indeterminate tasks using one of the following: - -```objective-c -+ (void)show; -+ (void)showWithStatus:(NSString*)string; -``` - -If you'd like the HUD to reflect the progress of a task, use one of these: - -```objective-c -+ (void)showProgress:(CGFloat)progress; -+ (void)showProgress:(CGFloat)progress status:(NSString*)status; -``` - -### Dismissing the HUD - -The HUD can be dismissed using: - -```objective-c -+ (void)dismiss; -+ (void)dismissWithDelay:(NSTimeInterval)delay; -``` - -If you'd like to stack HUDs, you can balance out every show call using: - -``` -+ (void)popActivity; -``` - -The HUD will get dismissed once the popActivity calls will match the number of show calls. - -Or show a confirmation glyph before before getting dismissed a little bit later. The display time depends on `minimumDismissTimeInterval` and the length of the given string. - -```objective-c -+ (void)showInfoWithStatus:(NSString*)string; -+ (void)showSuccessWithStatus:(NSString*)string; -+ (void)showErrorWithStatus:(NSString*)string; -+ (void)showImage:(UIImage*)image status:(NSString*)string; -``` - -## Customization - -`SVProgressHUD` can be customized via the following methods: - -```objective-c -+ (void)setDefaultStyle:(SVProgressHUDStyle)style; // default is SVProgressHUDStyleLight -+ (void)setDefaultMaskType:(SVProgressHUDMaskType)maskType; // default is SVProgressHUDMaskTypeNone -+ (void)setDefaultAnimationType:(SVProgressHUDAnimationType)type; // default is SVProgressHUDAnimationTypeFlat -+ (void)setContainerView:(UIView*)containerView; // default is window level -+ (void)setMinimumSize:(CGSize)minimumSize; // default is CGSizeZero, can be used to avoid resizing -+ (void)setRingThickness:(CGFloat)width; // default is 2 pt -+ (void)setRingRadius:(CGFloat)radius; // default is 18 pt -+ (void)setRingNoTextRadius:(CGFloat)radius; // default is 24 pt -+ (void)setCornerRadius:(CGFloat)cornerRadius; // default is 14 pt -+ (void)setBorderColor:(nonnull UIColor*)color; // default is nil -+ (void)setBorderWidth:(CGFloat)width; // default is 0 -+ (void)setFont:(UIFont*)font; // default is [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline] -+ (void)setForegroundColor:(UIColor*)color; // default is [UIColor blackColor], only used for SVProgressHUDStyleCustom -+ (void)setBackgroundColor:(UIColor*)color; // default is [UIColor whiteColor], only used for SVProgressHUDStyleCustom -+ (void)setBackgroundLayerColor:(UIColor*)color; // default is [UIColor colorWithWhite:0 alpha:0.4], only used for SVProgressHUDMaskTypeCustom -+ (void)setImageViewSize:(CGSize)size; // default is 28x28 pt -+ (void)setShouldTintImages:(BOOL)shouldTintImages; // default is YES -+ (void)setInfoImage:(UIImage*)image; // default is the bundled info image provided by Freepik -+ (void)setSuccessImage:(UIImage*)image; // default is bundled success image from Freepik -+ (void)setErrorImage:(UIImage*)image; // default is bundled error image from Freepik -+ (void)setViewForExtension:(UIView*)view; // default is nil, only used if #define SV_APP_EXTENSIONS is set -+ (void)setGraceTimeInterval:(NSTimeInterval)interval; // default is 0 seconds -+ (void)setMinimumDismissTimeInterval:(NSTimeInterval)interval; // default is 5.0 seconds -+ (void)setMaximumDismissTimeInterval:(NSTimeInterval)interval; // default is CGFLOAT_MAX -+ (void)setFadeInAnimationDuration:(NSTimeInterval)duration; // default is 0.15 seconds -+ (void)setFadeOutAnimationDuration:(NSTimeInterval)duration; // default is 0.15 seconds -+ (void)setMaxSupportedWindowLevel:(UIWindowLevel)windowLevel; // default is UIWindowLevelNormal -+ (void)setHapticsEnabled:(BOOL)hapticsEnabled; // default is NO -``` - -Additionally `SVProgressHUD` supports the `UIAppearance` protocol for most of the above methods. - -### Hint - -As standard `SVProgressHUD` offers two preconfigured styles: - -* `SVProgressHUDStyleLight`: White background with black spinner and text -* `SVProgressHUDStyleDark`: Black background with white spinner and text - -If you want to use custom colors use `setForegroundColor` and `setBackgroundColor:`. These implicitly set the HUD's style to `SVProgressHUDStyleCustom`. - -## Haptic Feedback - -For users with newer devices (starting with the iPhone 7), `SVProgressHUD` can automatically trigger haptic feedback depending on which HUD is being displayed. The feedback maps as follows: - -* `showSuccessWithStatus:` <-> `UINotificationFeedbackTypeSuccess` -* `showInfoWithStatus:` <-> `UINotificationFeedbackTypeWarning` -* `showErrorWithStatus:` <-> `UINotificationFeedbackTypeError` - -To enable this functionality, use `setHapticsEnabled:`. - -Users with devices prior to iPhone 7 will have no change in functionality. - -## Notifications - -`SVProgressHUD` posts four notifications via `NSNotificationCenter` in response to being shown/dismissed: -* `SVProgressHUDWillAppearNotification` when the show animation starts -* `SVProgressHUDDidAppearNotification` when the show animation completes -* `SVProgressHUDWillDisappearNotification` when the dismiss animation starts -* `SVProgressHUDDidDisappearNotification` when the dismiss animation completes - -Each notification passes a `userInfo` dictionary holding the HUD's status string (if any), retrievable via `SVProgressHUDStatusUserInfoKey`. - -`SVProgressHUD` also posts `SVProgressHUDDidReceiveTouchEventNotification` when users touch on the overall screen or `SVProgressHUDDidTouchDownInsideNotification` when a user touches on the HUD directly. For this notifications `userInfo` is not passed but the object parameter contains the `UIEvent` that related to the touch. - -## App Extensions - -When using `SVProgressHUD` in an App Extension, `#define SV_APP_EXTENSIONS` to avoid using unavailable APIs. Additionally call `setViewForExtension:` from your extensions view controller with `self.view`. - -## Contributing to this project - -If you have feature requests or bug reports, feel free to help out by sending pull requests or by [creating new issues](https://github.com/SVProgressHUD/SVProgressHUD/issues/new). Please take a moment to -review the guidelines written by [Nicolas Gallagher](https://github.com/necolas): - -* [Bug reports](https://github.com/necolas/issue-guidelines/blob/master/CONTRIBUTING.md#bugs) -* [Feature requests](https://github.com/necolas/issue-guidelines/blob/master/CONTRIBUTING.md#features) -* [Pull requests](https://github.com/necolas/issue-guidelines/blob/master/CONTRIBUTING.md#pull-requests) - -## License - -`SVProgressHUD` is distributed under the terms and conditions of the [MIT license](https://github.com/SVProgressHUD/SVProgressHUD/blob/master/LICENSE.txt). The success, error and info icons are made by [Freepik](http://www.freepik.com) from [Flaticon](http://www.flaticon.com) and are licensed under [Creative Commons BY 3.0](http://creativecommons.org/licenses/by/3.0/). - -## Credits - -`SVProgressHUD` is brought to you by [Sam Vermette](http://samvermette.com), [Tobias Tiemerding](http://tiemerding.com) and [contributors to the project](https://github.com/SVProgressHUD/SVProgressHUD/contributors). If you're using `SVProgressHUD` in your project, attribution would be very appreciated. diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVIndefiniteAnimatedView.h b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVIndefiniteAnimatedView.h deleted file mode 100644 index b624dd0..0000000 --- a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVIndefiniteAnimatedView.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// SVIndefiniteAnimatedView.h -// SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD -// -// Copyright (c) 2014-2018 Guillaume Campagna. All rights reserved. -// - -#import - -@interface SVIndefiniteAnimatedView : UIView - -@property (nonatomic, assign) CGFloat strokeThickness; -@property (nonatomic, assign) CGFloat radius; -@property (nonatomic, strong) UIColor *strokeColor; - -@end - diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVIndefiniteAnimatedView.m b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVIndefiniteAnimatedView.m deleted file mode 100644 index 09a38d0..0000000 --- a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVIndefiniteAnimatedView.m +++ /dev/null @@ -1,137 +0,0 @@ -// -// SVIndefiniteAnimatedView.m -// SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD -// -// Copyright (c) 2014-2018 Guillaume Campagna. All rights reserved. -// - -#import "SVIndefiniteAnimatedView.h" -#import "SVProgressHUD.h" - -@interface SVIndefiniteAnimatedView () - -@property (nonatomic, strong) CAShapeLayer *indefiniteAnimatedLayer; - -@end - -@implementation SVIndefiniteAnimatedView - -- (void)willMoveToSuperview:(UIView*)newSuperview { - if (newSuperview) { - [self layoutAnimatedLayer]; - } else { - [_indefiniteAnimatedLayer removeFromSuperlayer]; - _indefiniteAnimatedLayer = nil; - } -} - -- (void)layoutAnimatedLayer { - CALayer *layer = self.indefiniteAnimatedLayer; - [self.layer addSublayer:layer]; - - CGFloat widthDiff = CGRectGetWidth(self.bounds) - CGRectGetWidth(layer.bounds); - CGFloat heightDiff = CGRectGetHeight(self.bounds) - CGRectGetHeight(layer.bounds); - layer.position = CGPointMake(CGRectGetWidth(self.bounds) - CGRectGetWidth(layer.bounds) / 2 - widthDiff / 2, CGRectGetHeight(self.bounds) - CGRectGetHeight(layer.bounds) / 2 - heightDiff / 2); -} - -- (CAShapeLayer*)indefiniteAnimatedLayer { - if(!_indefiniteAnimatedLayer) { - CGPoint arcCenter = CGPointMake(self.radius+self.strokeThickness/2+5, self.radius+self.strokeThickness/2+5); - UIBezierPath* smoothedPath = [UIBezierPath bezierPathWithArcCenter:arcCenter radius:self.radius startAngle:(CGFloat) (M_PI*3/2) endAngle:(CGFloat) (M_PI/2+M_PI*5) clockwise:YES]; - - _indefiniteAnimatedLayer = [CAShapeLayer layer]; - _indefiniteAnimatedLayer.contentsScale = [[UIScreen mainScreen] scale]; - _indefiniteAnimatedLayer.frame = CGRectMake(0.0f, 0.0f, arcCenter.x*2, arcCenter.y*2); - _indefiniteAnimatedLayer.fillColor = [UIColor clearColor].CGColor; - _indefiniteAnimatedLayer.strokeColor = self.strokeColor.CGColor; - _indefiniteAnimatedLayer.lineWidth = self.strokeThickness; - _indefiniteAnimatedLayer.lineCap = kCALineCapRound; - _indefiniteAnimatedLayer.lineJoin = kCALineJoinBevel; - _indefiniteAnimatedLayer.path = smoothedPath.CGPath; - - CALayer *maskLayer = [CALayer layer]; - - NSBundle *bundle = [NSBundle bundleForClass:[SVProgressHUD class]]; - NSURL *url = [bundle URLForResource:@"SVProgressHUD" withExtension:@"bundle"]; - NSBundle *imageBundle = [NSBundle bundleWithURL:url]; - - NSString *path = [imageBundle pathForResource:@"angle-mask" ofType:@"png"]; - - maskLayer.contents = (__bridge id)[[UIImage imageWithContentsOfFile:path] CGImage]; - maskLayer.frame = _indefiniteAnimatedLayer.bounds; - _indefiniteAnimatedLayer.mask = maskLayer; - - NSTimeInterval animationDuration = 1; - CAMediaTimingFunction *linearCurve = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; - - CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; - animation.fromValue = (id) 0; - animation.toValue = @(M_PI*2); - animation.duration = animationDuration; - animation.timingFunction = linearCurve; - animation.removedOnCompletion = NO; - animation.repeatCount = INFINITY; - animation.fillMode = kCAFillModeForwards; - animation.autoreverses = NO; - [_indefiniteAnimatedLayer.mask addAnimation:animation forKey:@"rotate"]; - - CAAnimationGroup *animationGroup = [CAAnimationGroup animation]; - animationGroup.duration = animationDuration; - animationGroup.repeatCount = INFINITY; - animationGroup.removedOnCompletion = NO; - animationGroup.timingFunction = linearCurve; - - CABasicAnimation *strokeStartAnimation = [CABasicAnimation animationWithKeyPath:@"strokeStart"]; - strokeStartAnimation.fromValue = @0.015; - strokeStartAnimation.toValue = @0.515; - - CABasicAnimation *strokeEndAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"]; - strokeEndAnimation.fromValue = @0.485; - strokeEndAnimation.toValue = @0.985; - - animationGroup.animations = @[strokeStartAnimation, strokeEndAnimation]; - [_indefiniteAnimatedLayer addAnimation:animationGroup forKey:@"progress"]; - - } - return _indefiniteAnimatedLayer; -} - -- (void)setFrame:(CGRect)frame { - if(!CGRectEqualToRect(frame, super.frame)) { - [super setFrame:frame]; - - if(self.superview) { - [self layoutAnimatedLayer]; - } - } - -} - -- (void)setRadius:(CGFloat)radius { - if(radius != _radius) { - _radius = radius; - - [_indefiniteAnimatedLayer removeFromSuperlayer]; - _indefiniteAnimatedLayer = nil; - - if(self.superview) { - [self layoutAnimatedLayer]; - } - } -} - -- (void)setStrokeColor:(UIColor*)strokeColor { - _strokeColor = strokeColor; - _indefiniteAnimatedLayer.strokeColor = strokeColor.CGColor; -} - -- (void)setStrokeThickness:(CGFloat)strokeThickness { - _strokeThickness = strokeThickness; - _indefiniteAnimatedLayer.lineWidth = _strokeThickness; -} - -- (CGSize)sizeThatFits:(CGSize)size { - return CGSizeMake((self.radius+self.strokeThickness/2+5)*2, (self.radius+self.strokeThickness/2+5)*2); -} - -@end diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressAnimatedView.h b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressAnimatedView.h deleted file mode 100644 index 6de23b4..0000000 --- a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressAnimatedView.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// SVProgressAnimatedView.h -// SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD -// -// Copyright (c) 2017-2018 Tobias Tiemerding. All rights reserved. -// - -#import - -@interface SVProgressAnimatedView : UIView - -@property (nonatomic, assign) CGFloat radius; -@property (nonatomic, assign) CGFloat strokeThickness; -@property (nonatomic, strong) UIColor *strokeColor; -@property (nonatomic, assign) CGFloat strokeEnd; - -@end diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressAnimatedView.m b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressAnimatedView.m deleted file mode 100644 index a347c85..0000000 --- a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressAnimatedView.m +++ /dev/null @@ -1,96 +0,0 @@ -// -// SVProgressAnimatedView.m -// SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD -// -// Copyright (c) 2017-2018 Tobias Tiemerding. All rights reserved. -// - -#import "SVProgressAnimatedView.h" - -@interface SVProgressAnimatedView () - -@property (nonatomic, strong) CAShapeLayer *ringAnimatedLayer; - -@end - -@implementation SVProgressAnimatedView - -- (void)willMoveToSuperview:(UIView*)newSuperview { - if (newSuperview) { - [self layoutAnimatedLayer]; - } else { - [_ringAnimatedLayer removeFromSuperlayer]; - _ringAnimatedLayer = nil; - } -} - -- (void)layoutAnimatedLayer { - CALayer *layer = self.ringAnimatedLayer; - [self.layer addSublayer:layer]; - - CGFloat widthDiff = CGRectGetWidth(self.bounds) - CGRectGetWidth(layer.bounds); - CGFloat heightDiff = CGRectGetHeight(self.bounds) - CGRectGetHeight(layer.bounds); - layer.position = CGPointMake(CGRectGetWidth(self.bounds) - CGRectGetWidth(layer.bounds) / 2 - widthDiff / 2, CGRectGetHeight(self.bounds) - CGRectGetHeight(layer.bounds) / 2 - heightDiff / 2); -} - -- (CAShapeLayer*)ringAnimatedLayer { - if(!_ringAnimatedLayer) { - CGPoint arcCenter = CGPointMake(self.radius+self.strokeThickness/2+5, self.radius+self.strokeThickness/2+5); - UIBezierPath* smoothedPath = [UIBezierPath bezierPathWithArcCenter:arcCenter radius:self.radius startAngle:(CGFloat)-M_PI_2 endAngle:(CGFloat) (M_PI + M_PI_2) clockwise:YES]; - - _ringAnimatedLayer = [CAShapeLayer layer]; - _ringAnimatedLayer.contentsScale = [[UIScreen mainScreen] scale]; - _ringAnimatedLayer.frame = CGRectMake(0.0f, 0.0f, arcCenter.x*2, arcCenter.y*2); - _ringAnimatedLayer.fillColor = [UIColor clearColor].CGColor; - _ringAnimatedLayer.strokeColor = self.strokeColor.CGColor; - _ringAnimatedLayer.lineWidth = self.strokeThickness; - _ringAnimatedLayer.lineCap = kCALineCapRound; - _ringAnimatedLayer.lineJoin = kCALineJoinBevel; - _ringAnimatedLayer.path = smoothedPath.CGPath; - } - return _ringAnimatedLayer; -} - -- (void)setFrame:(CGRect)frame { - if(!CGRectEqualToRect(frame, super.frame)) { - [super setFrame:frame]; - - if(self.superview) { - [self layoutAnimatedLayer]; - } - } -} - -- (void)setRadius:(CGFloat)radius { - if(radius != _radius) { - _radius = radius; - - [_ringAnimatedLayer removeFromSuperlayer]; - _ringAnimatedLayer = nil; - - if(self.superview) { - [self layoutAnimatedLayer]; - } - } -} - -- (void)setStrokeColor:(UIColor*)strokeColor { - _strokeColor = strokeColor; - _ringAnimatedLayer.strokeColor = strokeColor.CGColor; -} - -- (void)setStrokeThickness:(CGFloat)strokeThickness { - _strokeThickness = strokeThickness; - _ringAnimatedLayer.lineWidth = _strokeThickness; -} - -- (void)setStrokeEnd:(CGFloat)strokeEnd { - _strokeEnd = strokeEnd; - _ringAnimatedLayer.strokeEnd = _strokeEnd; -} - -- (CGSize)sizeThatFits:(CGSize)size { - return CGSizeMake((self.radius+self.strokeThickness/2+5)*2, (self.radius+self.strokeThickness/2+5)*2); -} - -@end diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png deleted file mode 100644 index 0150a03..0000000 Binary files a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png and /dev/null differ diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@2x.png b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@2x.png deleted file mode 100644 index 9a302b6..0000000 Binary files a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@2x.png and /dev/null differ diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png deleted file mode 100644 index d07f3ce..0000000 Binary files a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png and /dev/null differ diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error.png b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error.png deleted file mode 100644 index a57c8e4..0000000 Binary files a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error.png and /dev/null differ diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@2x.png b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@2x.png deleted file mode 100644 index aaf6798..0000000 Binary files a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@2x.png and /dev/null differ diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@3x.png b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@3x.png deleted file mode 100644 index c92518f..0000000 Binary files a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@3x.png and /dev/null differ diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info.png b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info.png deleted file mode 100644 index a3a1f75..0000000 Binary files a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info.png and /dev/null differ diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@2x.png b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@2x.png deleted file mode 100644 index 1b333e7..0000000 Binary files a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@2x.png and /dev/null differ diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@3x.png b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@3x.png deleted file mode 100644 index d56aa0c..0000000 Binary files a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@3x.png and /dev/null differ diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success.png b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success.png deleted file mode 100644 index 44769d0..0000000 Binary files a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success.png and /dev/null differ diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@2x.png b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@2x.png deleted file mode 100644 index a9d1653..0000000 Binary files a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@2x.png and /dev/null differ diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@3x.png b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@3x.png deleted file mode 100644 index 42bad9b..0000000 Binary files a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@3x.png and /dev/null differ diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.h b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.h deleted file mode 100644 index 6aa935c..0000000 --- a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.h +++ /dev/null @@ -1,147 +0,0 @@ -// -// SVProgressHUD.h -// SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD -// -// Copyright (c) 2011-2018 Sam Vermette and contributors. All rights reserved. -// - -#import -#import - -extern NSString * _Nonnull const SVProgressHUDDidReceiveTouchEventNotification; -extern NSString * _Nonnull const SVProgressHUDDidTouchDownInsideNotification; -extern NSString * _Nonnull const SVProgressHUDWillDisappearNotification; -extern NSString * _Nonnull const SVProgressHUDDidDisappearNotification; -extern NSString * _Nonnull const SVProgressHUDWillAppearNotification; -extern NSString * _Nonnull const SVProgressHUDDidAppearNotification; - -extern NSString * _Nonnull const SVProgressHUDStatusUserInfoKey; - -typedef NS_ENUM(NSInteger, SVProgressHUDStyle) { - SVProgressHUDStyleLight, // default style, white HUD with black text, HUD background will be blurred - SVProgressHUDStyleDark, // black HUD and white text, HUD background will be blurred - SVProgressHUDStyleCustom // uses the fore- and background color properties -}; - -typedef NS_ENUM(NSUInteger, SVProgressHUDMaskType) { - SVProgressHUDMaskTypeNone = 1, // default mask type, allow user interactions while HUD is displayed - SVProgressHUDMaskTypeClear, // don't allow user interactions with background objects - SVProgressHUDMaskTypeBlack, // don't allow user interactions with background objects and dim the UI in the back of the HUD (as seen in iOS 7 and above) - SVProgressHUDMaskTypeGradient, // don't allow user interactions with background objects and dim the UI with a a-la UIAlertView background gradient (as seen in iOS 6) - SVProgressHUDMaskTypeCustom // don't allow user interactions with background objects and dim the UI in the back of the HUD with a custom color -}; - -typedef NS_ENUM(NSUInteger, SVProgressHUDAnimationType) { - SVProgressHUDAnimationTypeFlat, // default animation type, custom flat animation (indefinite animated ring) - SVProgressHUDAnimationTypeNative // iOS native UIActivityIndicatorView -}; - -typedef void (^SVProgressHUDShowCompletion)(void); -typedef void (^SVProgressHUDDismissCompletion)(void); - -@interface SVProgressHUD : UIView - -#pragma mark - Customization - -@property (assign, nonatomic) SVProgressHUDStyle defaultStyle UI_APPEARANCE_SELECTOR; // default is SVProgressHUDStyleLight -@property (assign, nonatomic) SVProgressHUDMaskType defaultMaskType UI_APPEARANCE_SELECTOR; // default is SVProgressHUDMaskTypeNone -@property (assign, nonatomic) SVProgressHUDAnimationType defaultAnimationType UI_APPEARANCE_SELECTOR; // default is SVProgressHUDAnimationTypeFlat -@property (strong, nonatomic, nullable) UIView *containerView; // if nil then use default window level -@property (assign, nonatomic) CGSize minimumSize UI_APPEARANCE_SELECTOR; // default is CGSizeZero, can be used to avoid resizing for a larger message -@property (assign, nonatomic) CGFloat ringThickness UI_APPEARANCE_SELECTOR; // default is 2 pt -@property (assign, nonatomic) CGFloat ringRadius UI_APPEARANCE_SELECTOR; // default is 18 pt -@property (assign, nonatomic) CGFloat ringNoTextRadius UI_APPEARANCE_SELECTOR; // default is 24 pt -@property (assign, nonatomic) CGFloat cornerRadius UI_APPEARANCE_SELECTOR; // default is 14 pt -@property (strong, nonatomic, nonnull) UIFont *font UI_APPEARANCE_SELECTOR; // default is [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline] -@property (strong, nonatomic, nonnull) UIColor *backgroundColor UI_APPEARANCE_SELECTOR; // default is [UIColor whiteColor] -@property (strong, nonatomic, nonnull) UIColor *foregroundColor UI_APPEARANCE_SELECTOR; // default is [UIColor blackColor] -@property (strong, nonatomic, nonnull) UIColor *backgroundLayerColor UI_APPEARANCE_SELECTOR;// default is [UIColor colorWithWhite:0 alpha:0.4] -@property (assign, nonatomic) CGSize imageViewSize UI_APPEARANCE_SELECTOR; // default is 28x28 pt -@property (assign, nonatomic) BOOL shouldTintImages UI_APPEARANCE_SELECTOR; // default is YES -@property (strong, nonatomic, nonnull) UIImage *infoImage UI_APPEARANCE_SELECTOR; // default is the bundled info image provided by Freepik -@property (strong, nonatomic, nonnull) UIImage *successImage UI_APPEARANCE_SELECTOR; // default is the bundled success image provided by Freepik -@property (strong, nonatomic, nonnull) UIImage *errorImage UI_APPEARANCE_SELECTOR; // default is the bundled error image provided by Freepik -@property (strong, nonatomic, nonnull) UIView *viewForExtension UI_APPEARANCE_SELECTOR; // default is nil, only used if #define SV_APP_EXTENSIONS is set -@property (assign, nonatomic) NSTimeInterval graceTimeInterval; // default is 0 seconds -@property (assign, nonatomic) NSTimeInterval minimumDismissTimeInterval; // default is 5.0 seconds -@property (assign, nonatomic) NSTimeInterval maximumDismissTimeInterval; // default is CGFLOAT_MAX - -@property (assign, nonatomic) UIOffset offsetFromCenter UI_APPEARANCE_SELECTOR; // default is 0, 0 - -@property (assign, nonatomic) NSTimeInterval fadeInAnimationDuration UI_APPEARANCE_SELECTOR; // default is 0.15 -@property (assign, nonatomic) NSTimeInterval fadeOutAnimationDuration UI_APPEARANCE_SELECTOR; // default is 0.15 - -@property (assign, nonatomic) UIWindowLevel maxSupportedWindowLevel; // default is UIWindowLevelNormal - -@property (assign, nonatomic) BOOL hapticsEnabled; // default is NO - -+ (void)setDefaultStyle:(SVProgressHUDStyle)style; // default is SVProgressHUDStyleLight -+ (void)setDefaultMaskType:(SVProgressHUDMaskType)maskType; // default is SVProgressHUDMaskTypeNone -+ (void)setDefaultAnimationType:(SVProgressHUDAnimationType)type; // default is SVProgressHUDAnimationTypeFlat -+ (void)setContainerView:(nullable UIView*)containerView; // default is window level -+ (void)setMinimumSize:(CGSize)minimumSize; // default is CGSizeZero, can be used to avoid resizing for a larger message -+ (void)setRingThickness:(CGFloat)ringThickness; // default is 2 pt -+ (void)setRingRadius:(CGFloat)radius; // default is 18 pt -+ (void)setRingNoTextRadius:(CGFloat)radius; // default is 24 pt -+ (void)setCornerRadius:(CGFloat)cornerRadius; // default is 14 pt -+ (void)setBorderColor:(nonnull UIColor*)color; // default is nil -+ (void)setBorderWidth:(CGFloat)width; // default is 0 -+ (void)setFont:(nonnull UIFont*)font; // default is [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline] -+ (void)setForegroundColor:(nonnull UIColor*)color; // default is [UIColor blackColor], only used for SVProgressHUDStyleCustom -+ (void)setBackgroundColor:(nonnull UIColor*)color; // default is [UIColor whiteColor], only used for SVProgressHUDStyleCustom -+ (void)setBackgroundLayerColor:(nonnull UIColor*)color; // default is [UIColor colorWithWhite:0 alpha:0.5], only used for SVProgressHUDMaskTypeCustom -+ (void)setImageViewSize:(CGSize)size; // default is 28x28 pt -+ (void)setShouldTintImages:(BOOL)shouldTintImages; // default is YES -+ (void)setInfoImage:(nonnull UIImage*)image; // default is the bundled info image provided by Freepik -+ (void)setSuccessImage:(nonnull UIImage*)image; // default is the bundled success image provided by Freepik -+ (void)setErrorImage:(nonnull UIImage*)image; // default is the bundled error image provided by Freepik -+ (void)setViewForExtension:(nonnull UIView*)view; // default is nil, only used if #define SV_APP_EXTENSIONS is set -+ (void)setGraceTimeInterval:(NSTimeInterval)interval; // default is 0 seconds -+ (void)setMinimumDismissTimeInterval:(NSTimeInterval)interval; // default is 5.0 seconds -+ (void)setMaximumDismissTimeInterval:(NSTimeInterval)interval; // default is infinite -+ (void)setFadeInAnimationDuration:(NSTimeInterval)duration; // default is 0.15 seconds -+ (void)setFadeOutAnimationDuration:(NSTimeInterval)duration; // default is 0.15 seconds -+ (void)setMaxSupportedWindowLevel:(UIWindowLevel)windowLevel; // default is UIWindowLevelNormal -+ (void)setHapticsEnabled:(BOOL)hapticsEnabled; // default is NO - -#pragma mark - Show Methods - -+ (void)show; -+ (void)showWithMaskType:(SVProgressHUDMaskType)maskType __attribute__((deprecated("Use show and setDefaultMaskType: instead."))); -+ (void)showWithStatus:(nullable NSString*)status; -+ (void)showWithStatus:(nullable NSString*)status maskType:(SVProgressHUDMaskType)maskType __attribute__((deprecated("Use showWithStatus: and setDefaultMaskType: instead."))); - -+ (void)showProgress:(float)progress; -+ (void)showProgress:(float)progress maskType:(SVProgressHUDMaskType)maskType __attribute__((deprecated("Use showProgress: and setDefaultMaskType: instead."))); -+ (void)showProgress:(float)progress status:(nullable NSString*)status; -+ (void)showProgress:(float)progress status:(nullable NSString*)status maskType:(SVProgressHUDMaskType)maskType __attribute__((deprecated("Use showProgress:status: and setDefaultMaskType: instead."))); - -+ (void)setStatus:(nullable NSString*)status; // change the HUD loading status while it's showing - -// stops the activity indicator, shows a glyph + status, and dismisses the HUD a little bit later -+ (void)showInfoWithStatus:(nullable NSString*)status; -+ (void)showInfoWithStatus:(nullable NSString*)status maskType:(SVProgressHUDMaskType)maskType __attribute__((deprecated("Use showInfoWithStatus: and setDefaultMaskType: instead."))); -+ (void)showSuccessWithStatus:(nullable NSString*)status; -+ (void)showSuccessWithStatus:(nullable NSString*)status maskType:(SVProgressHUDMaskType)maskType __attribute__((deprecated("Use showSuccessWithStatus: and setDefaultMaskType: instead."))); -+ (void)showErrorWithStatus:(nullable NSString*)status; -+ (void)showErrorWithStatus:(nullable NSString*)status maskType:(SVProgressHUDMaskType)maskType __attribute__((deprecated("Use showErrorWithStatus: and setDefaultMaskType: instead."))); - -// shows a image + status, use white PNGs with the imageViewSize (default is 28x28 pt) -+ (void)showImage:(nonnull UIImage*)image status:(nullable NSString*)status; -+ (void)showImage:(nonnull UIImage*)image status:(nullable NSString*)status maskType:(SVProgressHUDMaskType)maskType __attribute__((deprecated("Use showImage:status: and setDefaultMaskType: instead."))); - -+ (void)setOffsetFromCenter:(UIOffset)offset; -+ (void)resetOffsetFromCenter; - -+ (void)popActivity; // decrease activity count, if activity count == 0 the HUD is dismissed -+ (void)dismiss; -+ (void)dismissWithCompletion:(nullable SVProgressHUDDismissCompletion)completion; -+ (void)dismissWithDelay:(NSTimeInterval)delay; -+ (void)dismissWithDelay:(NSTimeInterval)delay completion:(nullable SVProgressHUDDismissCompletion)completion; - -+ (BOOL)isVisible; - -+ (NSTimeInterval)displayDurationForString:(nullable NSString*)string; - -@end - diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.m b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.m deleted file mode 100644 index 2b66992..0000000 --- a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.m +++ /dev/null @@ -1,1509 +0,0 @@ -// -// SVProgressHUD.h -// SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD -// -// Copyright (c) 2011-2018 Sam Vermette and contributors. All rights reserved. -// - -#if !__has_feature(objc_arc) -#error SVProgressHUD is ARC only. Either turn on ARC for the project or use -fobjc-arc flag -#endif - -#import "SVProgressHUD.h" -#import "SVIndefiniteAnimatedView.h" -#import "SVProgressAnimatedView.h" -#import "SVRadialGradientLayer.h" - -NSString * const SVProgressHUDDidReceiveTouchEventNotification = @"SVProgressHUDDidReceiveTouchEventNotification"; -NSString * const SVProgressHUDDidTouchDownInsideNotification = @"SVProgressHUDDidTouchDownInsideNotification"; -NSString * const SVProgressHUDWillDisappearNotification = @"SVProgressHUDWillDisappearNotification"; -NSString * const SVProgressHUDDidDisappearNotification = @"SVProgressHUDDidDisappearNotification"; -NSString * const SVProgressHUDWillAppearNotification = @"SVProgressHUDWillAppearNotification"; -NSString * const SVProgressHUDDidAppearNotification = @"SVProgressHUDDidAppearNotification"; - -NSString * const SVProgressHUDStatusUserInfoKey = @"SVProgressHUDStatusUserInfoKey"; - -static const CGFloat SVProgressHUDParallaxDepthPoints = 10.0f; -static const CGFloat SVProgressHUDUndefinedProgress = -1; -static const CGFloat SVProgressHUDDefaultAnimationDuration = 0.15f; -static const CGFloat SVProgressHUDVerticalSpacing = 12.0f; -static const CGFloat SVProgressHUDHorizontalSpacing = 12.0f; -static const CGFloat SVProgressHUDLabelSpacing = 8.0f; - - -@interface SVProgressHUD () - -@property (nonatomic, strong) NSTimer *graceTimer; -@property (nonatomic, strong) NSTimer *fadeOutTimer; - -@property (nonatomic, strong) UIControl *controlView; -@property (nonatomic, strong) UIView *backgroundView; -@property (nonatomic, strong) SVRadialGradientLayer *backgroundRadialGradientLayer; -@property (nonatomic, strong) UIVisualEffectView *hudView; -@property (nonatomic, strong) UILabel *statusLabel; -@property (nonatomic, strong) UIImageView *imageView; - -@property (nonatomic, strong) UIView *indefiniteAnimatedView; -@property (nonatomic, strong) SVProgressAnimatedView *ringView; -@property (nonatomic, strong) SVProgressAnimatedView *backgroundRingView; - -@property (nonatomic, readwrite) CGFloat progress; -@property (nonatomic, readwrite) NSUInteger activityCount; - -@property (nonatomic, readonly) CGFloat visibleKeyboardHeight; -@property (nonatomic, readonly) UIWindow *frontWindow; - -#if TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 -@property (nonatomic, strong) UINotificationFeedbackGenerator *hapticGenerator NS_AVAILABLE_IOS(10_0); -#endif - -@end - -@implementation SVProgressHUD { - BOOL _isInitializing; -} - -+ (SVProgressHUD*)sharedView { - static dispatch_once_t once; - - static SVProgressHUD *sharedView; -#if !defined(SV_APP_EXTENSIONS) - dispatch_once(&once, ^{ sharedView = [[self alloc] initWithFrame:[[[UIApplication sharedApplication] delegate] window].bounds]; }); -#else - dispatch_once(&once, ^{ sharedView = [[self alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; }); -#endif - return sharedView; -} - - -#pragma mark - Setters - -+ (void)setStatus:(NSString*)status { - [[self sharedView] setStatus:status]; -} - -+ (void)setDefaultStyle:(SVProgressHUDStyle)style { - [self sharedView].defaultStyle = style; -} - -+ (void)setDefaultMaskType:(SVProgressHUDMaskType)maskType { - [self sharedView].defaultMaskType = maskType; -} - -+ (void)setDefaultAnimationType:(SVProgressHUDAnimationType)type { - [self sharedView].defaultAnimationType = type; -} - -+ (void)setContainerView:(nullable UIView*)containerView { - [self sharedView].containerView = containerView; -} - -+ (void)setMinimumSize:(CGSize)minimumSize { - [self sharedView].minimumSize = minimumSize; -} - -+ (void)setRingThickness:(CGFloat)ringThickness { - [self sharedView].ringThickness = ringThickness; -} - -+ (void)setRingRadius:(CGFloat)radius { - [self sharedView].ringRadius = radius; -} - -+ (void)setRingNoTextRadius:(CGFloat)radius { - [self sharedView].ringNoTextRadius = radius; -} - -+ (void)setCornerRadius:(CGFloat)cornerRadius { - [self sharedView].cornerRadius = cornerRadius; -} - -+ (void)setBorderColor:(nonnull UIColor*)color { - [self sharedView].hudView.layer.borderColor = color.CGColor; -} - -+ (void)setBorderWidth:(CGFloat)width { - [self sharedView].hudView.layer.borderWidth = width; -} - -+ (void)setFont:(UIFont*)font { - [self sharedView].font = font; -} - -+ (void)setForegroundColor:(UIColor*)color { - [self sharedView].foregroundColor = color; - [self setDefaultStyle:SVProgressHUDStyleCustom]; -} - -+ (void)setBackgroundColor:(UIColor*)color { - [self sharedView].backgroundColor = color; - [self setDefaultStyle:SVProgressHUDStyleCustom]; -} - -+ (void)setBackgroundLayerColor:(UIColor*)color { - [self sharedView].backgroundLayerColor = color; -} - -+ (void)setImageViewSize:(CGSize)size { - [self sharedView].imageViewSize = size; -} - -+ (void)setShouldTintImages:(BOOL)shouldTintImages { - [self sharedView].shouldTintImages = shouldTintImages; -} - -+ (void)setInfoImage:(UIImage*)image { - [self sharedView].infoImage = image; -} - -+ (void)setSuccessImage:(UIImage*)image { - [self sharedView].successImage = image; -} - -+ (void)setErrorImage:(UIImage*)image { - [self sharedView].errorImage = image; -} - -+ (void)setViewForExtension:(UIView*)view { - [self sharedView].viewForExtension = view; -} - -+ (void)setGraceTimeInterval:(NSTimeInterval)interval { - [self sharedView].graceTimeInterval = interval; -} - -+ (void)setMinimumDismissTimeInterval:(NSTimeInterval)interval { - [self sharedView].minimumDismissTimeInterval = interval; -} - -+ (void)setMaximumDismissTimeInterval:(NSTimeInterval)interval { - [self sharedView].maximumDismissTimeInterval = interval; -} - -+ (void)setFadeInAnimationDuration:(NSTimeInterval)duration { - [self sharedView].fadeInAnimationDuration = duration; -} - -+ (void)setFadeOutAnimationDuration:(NSTimeInterval)duration { - [self sharedView].fadeOutAnimationDuration = duration; -} - -+ (void)setMaxSupportedWindowLevel:(UIWindowLevel)windowLevel { - [self sharedView].maxSupportedWindowLevel = windowLevel; -} - -+ (void)setHapticsEnabled:(BOOL)hapticsEnabled { - [self sharedView].hapticsEnabled = hapticsEnabled; -} - -#pragma mark - Show Methods - -+ (void)show { - [self showWithStatus:nil]; -} - -+ (void)showWithMaskType:(SVProgressHUDMaskType)maskType { - SVProgressHUDMaskType existingMaskType = [self sharedView].defaultMaskType; - [self setDefaultMaskType:maskType]; - [self show]; - [self setDefaultMaskType:existingMaskType]; -} - -+ (void)showWithStatus:(NSString*)status { - [self showProgress:SVProgressHUDUndefinedProgress status:status]; -} - -+ (void)showWithStatus:(NSString*)status maskType:(SVProgressHUDMaskType)maskType { - SVProgressHUDMaskType existingMaskType = [self sharedView].defaultMaskType; - [self setDefaultMaskType:maskType]; - [self showWithStatus:status]; - [self setDefaultMaskType:existingMaskType]; -} - -+ (void)showProgress:(float)progress { - [self showProgress:progress status:nil]; -} - -+ (void)showProgress:(float)progress maskType:(SVProgressHUDMaskType)maskType { - SVProgressHUDMaskType existingMaskType = [self sharedView].defaultMaskType; - [self setDefaultMaskType:maskType]; - [self showProgress:progress]; - [self setDefaultMaskType:existingMaskType]; -} - -+ (void)showProgress:(float)progress status:(NSString*)status { - [[self sharedView] showProgress:progress status:status]; -} - -+ (void)showProgress:(float)progress status:(NSString*)status maskType:(SVProgressHUDMaskType)maskType { - SVProgressHUDMaskType existingMaskType = [self sharedView].defaultMaskType; - [self setDefaultMaskType:maskType]; - [self showProgress:progress status:status]; - [self setDefaultMaskType:existingMaskType]; -} - - -#pragma mark - Show, then automatically dismiss methods - -+ (void)showInfoWithStatus:(NSString*)status { - [self showImage:[self sharedView].infoImage status:status]; - -#if TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 - if (@available(iOS 10.0, *)) { - dispatch_async(dispatch_get_main_queue(), ^{ - [[self sharedView].hapticGenerator notificationOccurred:UINotificationFeedbackTypeWarning]; - }); - } -#endif -} - -+ (void)showInfoWithStatus:(NSString*)status maskType:(SVProgressHUDMaskType)maskType { - SVProgressHUDMaskType existingMaskType = [self sharedView].defaultMaskType; - [self setDefaultMaskType:maskType]; - [self showInfoWithStatus:status]; - [self setDefaultMaskType:existingMaskType]; -} - -+ (void)showSuccessWithStatus:(NSString*)status { - [self showImage:[self sharedView].successImage status:status]; - -#if TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 - if (@available(iOS 10, *)) { - dispatch_async(dispatch_get_main_queue(), ^{ - [[self sharedView].hapticGenerator notificationOccurred:UINotificationFeedbackTypeSuccess]; - }); - } -#endif -} - -+ (void)showSuccessWithStatus:(NSString*)status maskType:(SVProgressHUDMaskType)maskType { - SVProgressHUDMaskType existingMaskType = [self sharedView].defaultMaskType; - [self setDefaultMaskType:maskType]; - [self showSuccessWithStatus:status]; - [self setDefaultMaskType:existingMaskType]; - -#if TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 - if (@available(iOS 10.0, *)) { - dispatch_async(dispatch_get_main_queue(), ^{ - [[self sharedView].hapticGenerator notificationOccurred:UINotificationFeedbackTypeSuccess]; - }); - } -#endif -} - -+ (void)showErrorWithStatus:(NSString*)status { - [self showImage:[self sharedView].errorImage status:status]; - -#if TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 - if (@available(iOS 10.0, *)) { - dispatch_async(dispatch_get_main_queue(), ^{ - [[self sharedView].hapticGenerator notificationOccurred:UINotificationFeedbackTypeError]; - }); - } -#endif -} - -+ (void)showErrorWithStatus:(NSString*)status maskType:(SVProgressHUDMaskType)maskType { - SVProgressHUDMaskType existingMaskType = [self sharedView].defaultMaskType; - [self setDefaultMaskType:maskType]; - [self showErrorWithStatus:status]; - [self setDefaultMaskType:existingMaskType]; - -#if TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 - if (@available(iOS 10.0, *)) { - dispatch_async(dispatch_get_main_queue(), ^{ - [[self sharedView].hapticGenerator notificationOccurred:UINotificationFeedbackTypeError]; - }); - } -#endif -} - -+ (void)showImage:(UIImage*)image status:(NSString*)status { - NSTimeInterval displayInterval = [self displayDurationForString:status]; - [[self sharedView] showImage:image status:status duration:displayInterval]; -} - -+ (void)showImage:(UIImage*)image status:(NSString*)status maskType:(SVProgressHUDMaskType)maskType { - SVProgressHUDMaskType existingMaskType = [self sharedView].defaultMaskType; - [self setDefaultMaskType:maskType]; - [self showImage:image status:status]; - [self setDefaultMaskType:existingMaskType]; -} - - -#pragma mark - Dismiss Methods - -+ (void)popActivity { - if([self sharedView].activityCount > 0) { - [self sharedView].activityCount--; - } - if([self sharedView].activityCount == 0) { - [[self sharedView] dismiss]; - } -} - -+ (void)dismiss { - [self dismissWithDelay:0.0 completion:nil]; -} - -+ (void)dismissWithCompletion:(SVProgressHUDDismissCompletion)completion { - [self dismissWithDelay:0.0 completion:completion]; -} - -+ (void)dismissWithDelay:(NSTimeInterval)delay { - [self dismissWithDelay:delay completion:nil]; -} - -+ (void)dismissWithDelay:(NSTimeInterval)delay completion:(SVProgressHUDDismissCompletion)completion { - [[self sharedView] dismissWithDelay:delay completion:completion]; -} - - -#pragma mark - Offset - -+ (void)setOffsetFromCenter:(UIOffset)offset { - [self sharedView].offsetFromCenter = offset; -} - -+ (void)resetOffsetFromCenter { - [self setOffsetFromCenter:UIOffsetZero]; -} - - -#pragma mark - Instance Methods - -- (instancetype)initWithFrame:(CGRect)frame { - if((self = [super initWithFrame:frame])) { - _isInitializing = YES; - - self.userInteractionEnabled = NO; - self.activityCount = 0; - - self.backgroundView.alpha = 0.0f; - self.imageView.alpha = 0.0f; - self.statusLabel.alpha = 0.0f; - self.indefiniteAnimatedView.alpha = 0.0f; - self.ringView.alpha = self.backgroundRingView.alpha = 0.0f; - - - _backgroundColor = [UIColor whiteColor]; - _foregroundColor = [UIColor blackColor]; - _backgroundLayerColor = [UIColor colorWithWhite:0 alpha:0.4]; - - // Set default values - _defaultMaskType = SVProgressHUDMaskTypeNone; - _defaultStyle = SVProgressHUDStyleLight; - _defaultAnimationType = SVProgressHUDAnimationTypeFlat; - _minimumSize = CGSizeZero; - _font = [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline]; - - _imageViewSize = CGSizeMake(28.0f, 28.0f); - _shouldTintImages = YES; - - NSBundle *bundle = [NSBundle bundleForClass:[SVProgressHUD class]]; - NSURL *url = [bundle URLForResource:@"SVProgressHUD" withExtension:@"bundle"]; - NSBundle *imageBundle = [NSBundle bundleWithURL:url]; - - _infoImage = [UIImage imageWithContentsOfFile:[imageBundle pathForResource:@"info" ofType:@"png"]]; - _successImage = [UIImage imageWithContentsOfFile:[imageBundle pathForResource:@"success" ofType:@"png"]]; - _errorImage = [UIImage imageWithContentsOfFile:[imageBundle pathForResource:@"error" ofType:@"png"]]; - - _ringThickness = 2.0f; - _ringRadius = 18.0f; - _ringNoTextRadius = 24.0f; - - _cornerRadius = 14.0f; - - _graceTimeInterval = 0.0f; - _minimumDismissTimeInterval = 5.0; - _maximumDismissTimeInterval = CGFLOAT_MAX; - - _fadeInAnimationDuration = SVProgressHUDDefaultAnimationDuration; - _fadeOutAnimationDuration = SVProgressHUDDefaultAnimationDuration; - - _maxSupportedWindowLevel = UIWindowLevelNormal; - - _hapticsEnabled = NO; - - // Accessibility support - self.accessibilityIdentifier = @"SVProgressHUD"; - self.isAccessibilityElement = YES; - - _isInitializing = NO; - } - return self; -} - -- (void)updateHUDFrame { - // Check if an image or progress ring is displayed - BOOL imageUsed = (self.imageView.image) && !(self.imageView.hidden); - BOOL progressUsed = self.imageView.hidden; - - // Calculate size of string - CGRect labelRect = CGRectZero; - CGFloat labelHeight = 0.0f; - CGFloat labelWidth = 0.0f; - - if(self.statusLabel.text) { - CGSize constraintSize = CGSizeMake(200.0f, 300.0f); - labelRect = [self.statusLabel.text boundingRectWithSize:constraintSize - options:(NSStringDrawingOptions)(NSStringDrawingUsesFontLeading | NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin) - attributes:@{NSFontAttributeName: self.statusLabel.font} - context:NULL]; - labelHeight = ceilf(CGRectGetHeight(labelRect)); - labelWidth = ceilf(CGRectGetWidth(labelRect)); - } - - // Calculate hud size based on content - // For the beginning use default values, these - // might get update if string is too large etc. - CGFloat hudWidth; - CGFloat hudHeight; - - CGFloat contentWidth = 0.0f; - CGFloat contentHeight = 0.0f; - - if(imageUsed || progressUsed) { - contentWidth = CGRectGetWidth(imageUsed ? self.imageView.frame : self.indefiniteAnimatedView.frame); - contentHeight = CGRectGetHeight(imageUsed ? self.imageView.frame : self.indefiniteAnimatedView.frame); - } - - // |-spacing-content-spacing-| - hudWidth = SVProgressHUDHorizontalSpacing + MAX(labelWidth, contentWidth) + SVProgressHUDHorizontalSpacing; - - // |-spacing-content-(labelSpacing-label-)spacing-| - hudHeight = SVProgressHUDVerticalSpacing + labelHeight + contentHeight + SVProgressHUDVerticalSpacing; - if(self.statusLabel.text && (imageUsed || progressUsed)){ - // Add spacing if both content and label are used - hudHeight += SVProgressHUDLabelSpacing; - } - - // Update values on subviews - self.hudView.bounds = CGRectMake(0.0f, 0.0f, MAX(self.minimumSize.width, hudWidth), MAX(self.minimumSize.height, hudHeight)); - - // Animate value update - [CATransaction begin]; - [CATransaction setDisableActions:YES]; - - // Spinner and image view - CGFloat centerY; - if(self.statusLabel.text) { - CGFloat yOffset = MAX(SVProgressHUDVerticalSpacing, (self.minimumSize.height - contentHeight - SVProgressHUDLabelSpacing - labelHeight) / 2.0f); - centerY = yOffset + contentHeight / 2.0f; - } else { - centerY = CGRectGetMidY(self.hudView.bounds); - } - self.indefiniteAnimatedView.center = CGPointMake(CGRectGetMidX(self.hudView.bounds), centerY); - if(self.progress != SVProgressHUDUndefinedProgress) { - self.backgroundRingView.center = self.ringView.center = CGPointMake(CGRectGetMidX(self.hudView.bounds), centerY); - } - self.imageView.center = CGPointMake(CGRectGetMidX(self.hudView.bounds), centerY); - - // Label - if(imageUsed || progressUsed) { - centerY = CGRectGetMaxY(imageUsed ? self.imageView.frame : self.indefiniteAnimatedView.frame) + SVProgressHUDLabelSpacing + labelHeight / 2.0f; - } else { - centerY = CGRectGetMidY(self.hudView.bounds); - } - self.statusLabel.frame = labelRect; - self.statusLabel.center = CGPointMake(CGRectGetMidX(self.hudView.bounds), centerY); - - [CATransaction commit]; -} - -#if TARGET_OS_IOS -- (void)updateMotionEffectForOrientation:(UIInterfaceOrientation)orientation { - UIInterpolatingMotionEffectType xMotionEffectType = UIInterfaceOrientationIsPortrait(orientation) ? UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis : UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis; - UIInterpolatingMotionEffectType yMotionEffectType = UIInterfaceOrientationIsPortrait(orientation) ? UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis : UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis; - [self updateMotionEffectForXMotionEffectType:xMotionEffectType yMotionEffectType:yMotionEffectType]; -} -#endif - -- (void)updateMotionEffectForXMotionEffectType:(UIInterpolatingMotionEffectType)xMotionEffectType yMotionEffectType:(UIInterpolatingMotionEffectType)yMotionEffectType { - UIInterpolatingMotionEffect *effectX = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"center.x" type:xMotionEffectType]; - effectX.minimumRelativeValue = @(-SVProgressHUDParallaxDepthPoints); - effectX.maximumRelativeValue = @(SVProgressHUDParallaxDepthPoints); - - UIInterpolatingMotionEffect *effectY = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"center.y" type:yMotionEffectType]; - effectY.minimumRelativeValue = @(-SVProgressHUDParallaxDepthPoints); - effectY.maximumRelativeValue = @(SVProgressHUDParallaxDepthPoints); - - UIMotionEffectGroup *effectGroup = [UIMotionEffectGroup new]; - effectGroup.motionEffects = @[effectX, effectY]; - - // Clear old motion effect, then add new motion effects - self.hudView.motionEffects = @[]; - [self.hudView addMotionEffect:effectGroup]; -} - -- (void)updateViewHierarchy { - // Add the overlay to the application window if necessary - if(!self.controlView.superview) { - if(self.containerView){ - [self.containerView addSubview:self.controlView]; - } else { -#if !defined(SV_APP_EXTENSIONS) - [self.frontWindow addSubview:self.controlView]; -#else - // If SVProgressHUD is used inside an app extension add it to the given view - if(self.viewForExtension) { - [self.viewForExtension addSubview:self.controlView]; - } -#endif - } - } else { - // The HUD is already on screen, but maybe not in front. Therefore - // ensure that overlay will be on top of rootViewController (which may - // be changed during runtime). - [self.controlView.superview bringSubviewToFront:self.controlView]; - } - - // Add self to the overlay view - if(!self.superview) { - [self.controlView addSubview:self]; - } -} - -- (void)setStatus:(NSString*)status { - self.statusLabel.text = status; - self.statusLabel.hidden = status.length == 0; - [self updateHUDFrame]; -} - -- (void)setGraceTimer:(NSTimer*)timer { - if(_graceTimer) { - [_graceTimer invalidate]; - _graceTimer = nil; - } - if(timer) { - _graceTimer = timer; - } -} - -- (void)setFadeOutTimer:(NSTimer*)timer { - if(_fadeOutTimer) { - [_fadeOutTimer invalidate]; - _fadeOutTimer = nil; - } - if(timer) { - _fadeOutTimer = timer; - } -} - - -#pragma mark - Notifications and their handling - -- (void)registerNotifications { -#if TARGET_OS_IOS - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(positionHUD:) - name:UIApplicationDidChangeStatusBarOrientationNotification - object:nil]; - - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(positionHUD:) - name:UIKeyboardWillHideNotification - object:nil]; - - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(positionHUD:) - name:UIKeyboardDidHideNotification - object:nil]; - - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(positionHUD:) - name:UIKeyboardWillShowNotification - object:nil]; - - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(positionHUD:) - name:UIKeyboardDidShowNotification - object:nil]; -#endif - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(positionHUD:) - name:UIApplicationDidBecomeActiveNotification - object:nil]; -} - -- (NSDictionary*)notificationUserInfo { - return (self.statusLabel.text ? @{SVProgressHUDStatusUserInfoKey : self.statusLabel.text} : nil); -} - -- (void)positionHUD:(NSNotification*)notification { - CGFloat keyboardHeight = 0.0f; - double animationDuration = 0.0; - -#if !defined(SV_APP_EXTENSIONS) && TARGET_OS_IOS - self.frame = [[[UIApplication sharedApplication] delegate] window].bounds; - UIInterfaceOrientation orientation = UIApplication.sharedApplication.statusBarOrientation; -#elif !defined(SV_APP_EXTENSIONS) && !TARGET_OS_IOS - self.frame= [UIApplication sharedApplication].keyWindow.bounds; -#else - if (self.viewForExtension) { - self.frame = self.viewForExtension.frame; - } else { - self.frame = UIScreen.mainScreen.bounds; - } -#if TARGET_OS_IOS - UIInterfaceOrientation orientation = CGRectGetWidth(self.frame) > CGRectGetHeight(self.frame) ? UIInterfaceOrientationLandscapeLeft : UIInterfaceOrientationPortrait; -#endif -#endif - -#if TARGET_OS_IOS - // Get keyboardHeight in regard to current state - if(notification) { - NSDictionary* keyboardInfo = [notification userInfo]; - CGRect keyboardFrame = [keyboardInfo[UIKeyboardFrameBeginUserInfoKey] CGRectValue]; - animationDuration = [keyboardInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]; - - if(notification.name == UIKeyboardWillShowNotification || notification.name == UIKeyboardDidShowNotification) { - keyboardHeight = CGRectGetWidth(keyboardFrame); - - if(UIInterfaceOrientationIsPortrait(orientation)) { - keyboardHeight = CGRectGetHeight(keyboardFrame); - } - } - } else { - keyboardHeight = self.visibleKeyboardHeight; - } -#endif - - // Get the currently active frame of the display (depends on orientation) - CGRect orientationFrame = self.bounds; - -#if !defined(SV_APP_EXTENSIONS) && TARGET_OS_IOS - CGRect statusBarFrame = UIApplication.sharedApplication.statusBarFrame; -#else - CGRect statusBarFrame = CGRectZero; -#endif - -#if TARGET_OS_IOS - // Update the motion effects in regard to orientation - [self updateMotionEffectForOrientation:orientation]; -#else - [self updateMotionEffectForXMotionEffectType:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis yMotionEffectType:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis]; -#endif - - // Calculate available height for display - CGFloat activeHeight = CGRectGetHeight(orientationFrame); - if(keyboardHeight > 0) { - activeHeight += CGRectGetHeight(statusBarFrame) * 2; - } - activeHeight -= keyboardHeight; - - CGFloat posX = CGRectGetMidX(orientationFrame); - CGFloat posY = floorf(activeHeight*0.45f); - - CGFloat rotateAngle = 0.0; - CGPoint newCenter = CGPointMake(posX, posY); - - if(notification) { - // Animate update if notification was present - [UIView animateWithDuration:animationDuration - delay:0 - options:(UIViewAnimationOptions) (UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionBeginFromCurrentState) - animations:^{ - [self moveToPoint:newCenter rotateAngle:rotateAngle]; - [self.hudView setNeedsDisplay]; - } completion:nil]; - } else { - [self moveToPoint:newCenter rotateAngle:rotateAngle]; - } -} - -- (void)moveToPoint:(CGPoint)newCenter rotateAngle:(CGFloat)angle { - self.hudView.transform = CGAffineTransformMakeRotation(angle); - if (self.containerView) { - self.hudView.center = CGPointMake(self.containerView.center.x + self.offsetFromCenter.horizontal, self.containerView.center.y + self.offsetFromCenter.vertical); - } else { - self.hudView.center = CGPointMake(newCenter.x + self.offsetFromCenter.horizontal, newCenter.y + self.offsetFromCenter.vertical); - } -} - - -#pragma mark - Event handling - -- (void)controlViewDidReceiveTouchEvent:(id)sender forEvent:(UIEvent*)event { - [[NSNotificationCenter defaultCenter] postNotificationName:SVProgressHUDDidReceiveTouchEventNotification - object:self - userInfo:[self notificationUserInfo]]; - - UITouch *touch = event.allTouches.anyObject; - CGPoint touchLocation = [touch locationInView:self]; - - if(CGRectContainsPoint(self.hudView.frame, touchLocation)) { - [[NSNotificationCenter defaultCenter] postNotificationName:SVProgressHUDDidTouchDownInsideNotification - object:self - userInfo:[self notificationUserInfo]]; - } -} - - -#pragma mark - Master show/dismiss methods - -- (void)showProgress:(float)progress status:(NSString*)status { - __weak SVProgressHUD *weakSelf = self; - [[NSOperationQueue mainQueue] addOperationWithBlock:^{ - __strong SVProgressHUD *strongSelf = weakSelf; - if(strongSelf){ - if(strongSelf.fadeOutTimer) { - strongSelf.activityCount = 0; - } - - // Stop timer - strongSelf.fadeOutTimer = nil; - strongSelf.graceTimer = nil; - - // Update / Check view hierarchy to ensure the HUD is visible - [strongSelf updateViewHierarchy]; - - // Reset imageView and fadeout timer if an image is currently displayed - strongSelf.imageView.hidden = YES; - strongSelf.imageView.image = nil; - - // Update text and set progress to the given value - strongSelf.statusLabel.hidden = status.length == 0; - strongSelf.statusLabel.text = status; - strongSelf.progress = progress; - - // Choose the "right" indicator depending on the progress - if(progress >= 0) { - // Cancel the indefiniteAnimatedView, then show the ringLayer - [strongSelf cancelIndefiniteAnimatedViewAnimation]; - - // Add ring to HUD - if(!strongSelf.ringView.superview){ - [strongSelf.hudView.contentView addSubview:strongSelf.ringView]; - } - if(!strongSelf.backgroundRingView.superview){ - [strongSelf.hudView.contentView addSubview:strongSelf.backgroundRingView]; - } - - // Set progress animated - [CATransaction begin]; - [CATransaction setDisableActions:YES]; - strongSelf.ringView.strokeEnd = progress; - [CATransaction commit]; - - // Update the activity count - if(progress == 0) { - strongSelf.activityCount++; - } - } else { - // Cancel the ringLayer animation, then show the indefiniteAnimatedView - [strongSelf cancelRingLayerAnimation]; - - // Add indefiniteAnimatedView to HUD - [strongSelf.hudView.contentView addSubview:strongSelf.indefiniteAnimatedView]; - if([strongSelf.indefiniteAnimatedView respondsToSelector:@selector(startAnimating)]) { - [(id)strongSelf.indefiniteAnimatedView startAnimating]; - } - - // Update the activity count - strongSelf.activityCount++; - } - - // Fade in delayed if a grace time is set - if (self.graceTimeInterval > 0.0 && self.backgroundView.alpha == 0.0f) { - strongSelf.graceTimer = [NSTimer timerWithTimeInterval:self.graceTimeInterval target:strongSelf selector:@selector(fadeIn:) userInfo:nil repeats:NO]; - [[NSRunLoop mainRunLoop] addTimer:strongSelf.graceTimer forMode:NSRunLoopCommonModes]; - } else { - [strongSelf fadeIn:nil]; - } - - // Tell the Haptics Generator to prepare for feedback, which may come soon -#if TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 - if (@available(iOS 10.0, *)) { - [strongSelf.hapticGenerator prepare]; - } -#endif - } - }]; -} - -- (void)showImage:(UIImage*)image status:(NSString*)status duration:(NSTimeInterval)duration { - __weak SVProgressHUD *weakSelf = self; - [[NSOperationQueue mainQueue] addOperationWithBlock:^{ - __strong SVProgressHUD *strongSelf = weakSelf; - if(strongSelf){ - // Stop timer - strongSelf.fadeOutTimer = nil; - strongSelf.graceTimer = nil; - - // Update / Check view hierarchy to ensure the HUD is visible - [strongSelf updateViewHierarchy]; - - // Reset progress and cancel any running animation - strongSelf.progress = SVProgressHUDUndefinedProgress; - [strongSelf cancelRingLayerAnimation]; - [strongSelf cancelIndefiniteAnimatedViewAnimation]; - - // Update imageView - if (self.shouldTintImages) { - if (image.renderingMode != UIImageRenderingModeAlwaysTemplate) { - strongSelf.imageView.image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; - } - strongSelf.imageView.tintColor = strongSelf.foregroundColorForStyle;; - } else { - strongSelf.imageView.image = image; - } - strongSelf.imageView.hidden = NO; - - // Update text - strongSelf.statusLabel.hidden = status.length == 0; - strongSelf.statusLabel.text = status; - - // Fade in delayed if a grace time is set - // An image will be dismissed automatically. Thus pass the duration as userInfo. - if (self.graceTimeInterval > 0.0 && self.backgroundView.alpha == 0.0f) { - strongSelf.graceTimer = [NSTimer timerWithTimeInterval:self.graceTimeInterval target:strongSelf selector:@selector(fadeIn:) userInfo:@(duration) repeats:NO]; - [[NSRunLoop mainRunLoop] addTimer:strongSelf.graceTimer forMode:NSRunLoopCommonModes]; - } else { - [strongSelf fadeIn:@(duration)]; - } - } - }]; -} - -- (void)fadeIn:(id)data { - // Update the HUDs frame to the new content and position HUD - [self updateHUDFrame]; - [self positionHUD:nil]; - - // Update accessibility as well as user interaction - if(self.defaultMaskType != SVProgressHUDMaskTypeNone) { - self.controlView.userInteractionEnabled = YES; - self.accessibilityLabel = self.statusLabel.text ?: NSLocalizedString(@"Loading", nil); - self.isAccessibilityElement = YES; - } else { - self.controlView.userInteractionEnabled = NO; - self.hudView.accessibilityLabel = self.statusLabel.text ?: NSLocalizedString(@"Loading", nil); - self.hudView.isAccessibilityElement = YES; - } - - // Get duration - id duration = [data isKindOfClass:[NSTimer class]] ? ((NSTimer *)data).userInfo : data; - - // Show if not already visible - if(self.backgroundView.alpha != 1.0f) { - // Post notification to inform user - [[NSNotificationCenter defaultCenter] postNotificationName:SVProgressHUDWillAppearNotification - object:self - userInfo:[self notificationUserInfo]]; - - // Shrink HUD to to make a nice appear / pop up animation - self.hudView.transform = self.hudView.transform = CGAffineTransformScale(self.hudView.transform, 1/1.5f, 1/1.5f); - - __block void (^animationsBlock)(void) = ^{ - // Zoom HUD a little to make a nice appear / pop up animation - self.hudView.transform = CGAffineTransformIdentity; - - // Fade in all effects (colors, blur, etc.) - [self fadeInEffects]; - }; - - __block void (^completionBlock)(void) = ^{ - // Check if we really achieved to show the HUD (<=> alpha) - // and the change of these values has not been cancelled in between e.g. due to a dismissal - if(self.backgroundView.alpha == 1.0f){ - // Register observer <=> we now have to handle orientation changes etc. - [self registerNotifications]; - - // Post notification to inform user - [[NSNotificationCenter defaultCenter] postNotificationName:SVProgressHUDDidAppearNotification - object:self - userInfo:[self notificationUserInfo]]; - - // Update accessibility - UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, nil); - UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, self.statusLabel.text); - - // Dismiss automatically if a duration was passed as userInfo. We start a timer - // which then will call dismiss after the predefined duration - if(duration){ - self.fadeOutTimer = [NSTimer timerWithTimeInterval:[(NSNumber *)duration doubleValue] target:self selector:@selector(dismiss) userInfo:nil repeats:NO]; - [[NSRunLoop mainRunLoop] addTimer:self.fadeOutTimer forMode:NSRunLoopCommonModes]; - } - } - }; - - // Animate appearance - if (self.fadeInAnimationDuration > 0) { - // Animate appearance - [UIView animateWithDuration:self.fadeInAnimationDuration - delay:0 - options:(UIViewAnimationOptions) (UIViewAnimationOptionAllowUserInteraction | UIViewAnimationCurveEaseIn | UIViewAnimationOptionBeginFromCurrentState) - animations:^{ - animationsBlock(); - } completion:^(BOOL finished) { - completionBlock(); - }]; - } else { - animationsBlock(); - completionBlock(); - } - - // Inform iOS to redraw the view hierarchy - [self setNeedsDisplay]; - } else { - // Update accessibility - UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, nil); - UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, self.statusLabel.text); - - // Dismiss automatically if a duration was passed as userInfo. We start a timer - // which then will call dismiss after the predefined duration - if(duration){ - self.fadeOutTimer = [NSTimer timerWithTimeInterval:[(NSNumber *)duration doubleValue] target:self selector:@selector(dismiss) userInfo:nil repeats:NO]; - [[NSRunLoop mainRunLoop] addTimer:self.fadeOutTimer forMode:NSRunLoopCommonModes]; - } - } -} - -- (void)dismiss { - [self dismissWithDelay:0.0 completion:nil]; -} - -- (void)dismissWithDelay:(NSTimeInterval)delay completion:(SVProgressHUDDismissCompletion)completion { - __weak SVProgressHUD *weakSelf = self; - [[NSOperationQueue mainQueue] addOperationWithBlock:^{ - __strong SVProgressHUD *strongSelf = weakSelf; - if(strongSelf){ - // Stop timer - strongSelf.graceTimer = nil; - - // Post notification to inform user - [[NSNotificationCenter defaultCenter] postNotificationName:SVProgressHUDWillDisappearNotification - object:nil - userInfo:[strongSelf notificationUserInfo]]; - - // Reset activity count - strongSelf.activityCount = 0; - - __block void (^animationsBlock)(void) = ^{ - // Shrink HUD a little to make a nice disappear animation - strongSelf.hudView.transform = CGAffineTransformScale(strongSelf.hudView.transform, 1/1.3f, 1/1.3f); - - // Fade out all effects (colors, blur, etc.) - [strongSelf fadeOutEffects]; - }; - - __block void (^completionBlock)(void) = ^{ - // Check if we really achieved to dismiss the HUD (<=> alpha values are applied) - // and the change of these values has not been cancelled in between e.g. due to a new show - if(self.backgroundView.alpha == 0.0f){ - // Clean up view hierarchy (overlays) - [strongSelf.controlView removeFromSuperview]; - [strongSelf.backgroundView removeFromSuperview]; - [strongSelf.hudView removeFromSuperview]; - [strongSelf removeFromSuperview]; - - // Reset progress and cancel any running animation - strongSelf.progress = SVProgressHUDUndefinedProgress; - [strongSelf cancelRingLayerAnimation]; - [strongSelf cancelIndefiniteAnimatedViewAnimation]; - - // Remove observer <=> we do not have to handle orientation changes etc. - [[NSNotificationCenter defaultCenter] removeObserver:strongSelf]; - - // Post notification to inform user - [[NSNotificationCenter defaultCenter] postNotificationName:SVProgressHUDDidDisappearNotification - object:strongSelf - userInfo:[strongSelf notificationUserInfo]]; - - // Tell the rootViewController to update the StatusBar appearance -#if !defined(SV_APP_EXTENSIONS) && TARGET_OS_IOS - UIViewController *rootController = [[UIApplication sharedApplication] keyWindow].rootViewController; - [rootController setNeedsStatusBarAppearanceUpdate]; -#endif - - // Run an (optional) completionHandler - if (completion) { - completion(); - } - } - }; - - // UIViewAnimationOptionBeginFromCurrentState AND a delay doesn't always work as expected - // When UIViewAnimationOptionBeginFromCurrentState is set, animateWithDuration: evaluates the current - // values to check if an animation is necessary. The evaluation happens at function call time and not - // after the delay => the animation is sometimes skipped. Therefore we delay using dispatch_after. - - dispatch_time_t dipatchTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC)); - dispatch_after(dipatchTime, dispatch_get_main_queue(), ^{ - if (strongSelf.fadeOutAnimationDuration > 0) { - // Animate appearance - [UIView animateWithDuration:strongSelf.fadeOutAnimationDuration - delay:0 - options:(UIViewAnimationOptions) (UIViewAnimationOptionAllowUserInteraction | UIViewAnimationCurveEaseOut | UIViewAnimationOptionBeginFromCurrentState) - animations:^{ - animationsBlock(); - } completion:^(BOOL finished) { - completionBlock(); - }]; - } else { - animationsBlock(); - completionBlock(); - } - }); - - // Inform iOS to redraw the view hierarchy - [strongSelf setNeedsDisplay]; - } - }]; -} - - -#pragma mark - Ring progress animation - -- (UIView*)indefiniteAnimatedView { - // Get the correct spinner for defaultAnimationType - if(self.defaultAnimationType == SVProgressHUDAnimationTypeFlat){ - // Check if spinner exists and is an object of different class - if(_indefiniteAnimatedView && ![_indefiniteAnimatedView isKindOfClass:[SVIndefiniteAnimatedView class]]){ - [_indefiniteAnimatedView removeFromSuperview]; - _indefiniteAnimatedView = nil; - } - - if(!_indefiniteAnimatedView){ - _indefiniteAnimatedView = [[SVIndefiniteAnimatedView alloc] initWithFrame:CGRectZero]; - } - - // Update styling - SVIndefiniteAnimatedView *indefiniteAnimatedView = (SVIndefiniteAnimatedView*)_indefiniteAnimatedView; - indefiniteAnimatedView.strokeColor = self.foregroundColorForStyle; - indefiniteAnimatedView.strokeThickness = self.ringThickness; - indefiniteAnimatedView.radius = self.statusLabel.text ? self.ringRadius : self.ringNoTextRadius; - } else { - // Check if spinner exists and is an object of different class - if(_indefiniteAnimatedView && ![_indefiniteAnimatedView isKindOfClass:[UIActivityIndicatorView class]]){ - [_indefiniteAnimatedView removeFromSuperview]; - _indefiniteAnimatedView = nil; - } - - if(!_indefiniteAnimatedView){ - _indefiniteAnimatedView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; - } - - // Update styling - UIActivityIndicatorView *activityIndicatorView = (UIActivityIndicatorView*)_indefiniteAnimatedView; - activityIndicatorView.color = self.foregroundColorForStyle; - } - [_indefiniteAnimatedView sizeToFit]; - - return _indefiniteAnimatedView; -} - -- (SVProgressAnimatedView*)ringView { - if(!_ringView) { - _ringView = [[SVProgressAnimatedView alloc] initWithFrame:CGRectZero]; - } - - // Update styling - _ringView.strokeColor = self.foregroundColorForStyle; - _ringView.strokeThickness = self.ringThickness; - _ringView.radius = self.statusLabel.text ? self.ringRadius : self.ringNoTextRadius; - - return _ringView; -} - -- (SVProgressAnimatedView*)backgroundRingView { - if(!_backgroundRingView) { - _backgroundRingView = [[SVProgressAnimatedView alloc] initWithFrame:CGRectZero]; - _backgroundRingView.strokeEnd = 1.0f; - } - - // Update styling - _backgroundRingView.strokeColor = [self.foregroundColorForStyle colorWithAlphaComponent:0.1f]; - _backgroundRingView.strokeThickness = self.ringThickness; - _backgroundRingView.radius = self.statusLabel.text ? self.ringRadius : self.ringNoTextRadius; - - return _backgroundRingView; -} - -- (void)cancelRingLayerAnimation { - // Animate value update, stop animation - [CATransaction begin]; - [CATransaction setDisableActions:YES]; - - [self.hudView.layer removeAllAnimations]; - self.ringView.strokeEnd = 0.0f; - - [CATransaction commit]; - - // Remove from view - [self.ringView removeFromSuperview]; - [self.backgroundRingView removeFromSuperview]; -} - -- (void)cancelIndefiniteAnimatedViewAnimation { - // Stop animation - if([self.indefiniteAnimatedView respondsToSelector:@selector(stopAnimating)]) { - [(id)self.indefiniteAnimatedView stopAnimating]; - } - // Remove from view - [self.indefiniteAnimatedView removeFromSuperview]; -} - - -#pragma mark - Utilities - -+ (BOOL)isVisible { - // Checking one alpha value is sufficient as they are all the same - return [self sharedView].backgroundView.alpha > 0.0f; -} - - -#pragma mark - Getters - -+ (NSTimeInterval)displayDurationForString:(NSString*)string { - CGFloat minimum = MAX((CGFloat)string.length * 0.06 + 0.5, [self sharedView].minimumDismissTimeInterval); - return MIN(minimum, [self sharedView].maximumDismissTimeInterval); -} - -- (UIColor*)foregroundColorForStyle { - if(self.defaultStyle == SVProgressHUDStyleLight) { - return [UIColor blackColor]; - } else if(self.defaultStyle == SVProgressHUDStyleDark) { - return [UIColor whiteColor]; - } else { - return self.foregroundColor; - } -} - -- (UIColor*)backgroundColorForStyle { - if(self.defaultStyle == SVProgressHUDStyleLight) { - return [UIColor whiteColor]; - } else if(self.defaultStyle == SVProgressHUDStyleDark) { - return [UIColor blackColor]; - } else { - return self.backgroundColor; - } -} - -- (UIControl*)controlView { - if(!_controlView) { - _controlView = [UIControl new]; - _controlView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - _controlView.backgroundColor = [UIColor clearColor]; - _controlView.userInteractionEnabled = YES; - [_controlView addTarget:self action:@selector(controlViewDidReceiveTouchEvent:forEvent:) forControlEvents:UIControlEventTouchDown]; - } - - // Update frames -#if !defined(SV_APP_EXTENSIONS) - CGRect windowBounds = [[[UIApplication sharedApplication] delegate] window].bounds; - _controlView.frame = windowBounds; -#else - _controlView.frame = [UIScreen mainScreen].bounds; -#endif - - return _controlView; -} - --(UIView *)backgroundView { - if(!_backgroundView){ - _backgroundView = [UIView new]; - _backgroundView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - } - if(!_backgroundView.superview){ - [self insertSubview:_backgroundView belowSubview:self.hudView]; - } - - // Update styling - if(self.defaultMaskType == SVProgressHUDMaskTypeGradient){ - if(!_backgroundRadialGradientLayer){ - _backgroundRadialGradientLayer = [SVRadialGradientLayer layer]; - } - if(!_backgroundRadialGradientLayer.superlayer){ - [_backgroundView.layer insertSublayer:_backgroundRadialGradientLayer atIndex:0]; - } - _backgroundView.backgroundColor = [UIColor clearColor]; - } else { - if(_backgroundRadialGradientLayer && _backgroundRadialGradientLayer.superlayer){ - [_backgroundRadialGradientLayer removeFromSuperlayer]; - } - if(self.defaultMaskType == SVProgressHUDMaskTypeBlack){ - _backgroundView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.4]; - } else if(self.defaultMaskType == SVProgressHUDMaskTypeCustom){ - _backgroundView.backgroundColor = self.backgroundLayerColor; - } else { - _backgroundView.backgroundColor = [UIColor clearColor]; - } - } - - // Update frame - if(_backgroundView){ - _backgroundView.frame = self.bounds; - } - if(_backgroundRadialGradientLayer){ - _backgroundRadialGradientLayer.frame = self.bounds; - - // Calculate the new center of the gradient, it may change if keyboard is visible - CGPoint gradientCenter = self.center; - gradientCenter.y = (self.bounds.size.height - self.visibleKeyboardHeight)/2; - _backgroundRadialGradientLayer.gradientCenter = gradientCenter; - [_backgroundRadialGradientLayer setNeedsDisplay]; - } - - return _backgroundView; -} -- (UIVisualEffectView*)hudView { - if(!_hudView) { - _hudView = [UIVisualEffectView new]; - _hudView.layer.masksToBounds = YES; - _hudView.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin; - } - if(!_hudView.superview) { - [self addSubview:_hudView]; - } - - // Update styling - _hudView.layer.cornerRadius = self.cornerRadius; - - return _hudView; -} - -- (UILabel*)statusLabel { - if(!_statusLabel) { - _statusLabel = [[UILabel alloc] initWithFrame:CGRectZero]; - _statusLabel.backgroundColor = [UIColor clearColor]; - _statusLabel.adjustsFontSizeToFitWidth = YES; - _statusLabel.textAlignment = NSTextAlignmentCenter; - _statusLabel.baselineAdjustment = UIBaselineAdjustmentAlignCenters; - _statusLabel.numberOfLines = 0; - } - if(!_statusLabel.superview) { - [self.hudView.contentView addSubview:_statusLabel]; - } - - // Update styling - _statusLabel.textColor = self.foregroundColorForStyle; - _statusLabel.font = self.font; - - return _statusLabel; -} - -- (UIImageView*)imageView { - if(_imageView && !CGSizeEqualToSize(_imageView.bounds.size, _imageViewSize)) { - [_imageView removeFromSuperview]; - _imageView = nil; - } - - if(!_imageView) { - _imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, _imageViewSize.width, _imageViewSize.height)]; - } - if(!_imageView.superview) { - [self.hudView.contentView addSubview:_imageView]; - } - - return _imageView; -} - - -#pragma mark - Helper - -- (CGFloat)visibleKeyboardHeight { -#if !defined(SV_APP_EXTENSIONS) - UIWindow *keyboardWindow = nil; - for (UIWindow *testWindow in UIApplication.sharedApplication.windows) { - if(![testWindow.class isEqual:UIWindow.class]) { - keyboardWindow = testWindow; - break; - } - } - - for (__strong UIView *possibleKeyboard in keyboardWindow.subviews) { - NSString *viewName = NSStringFromClass(possibleKeyboard.class); - if([viewName hasPrefix:@"UI"]){ - if([viewName hasSuffix:@"PeripheralHostView"] || [viewName hasSuffix:@"Keyboard"]){ - return CGRectGetHeight(possibleKeyboard.bounds); - } else if ([viewName hasSuffix:@"InputSetContainerView"]){ - for (__strong UIView *possibleKeyboardSubview in possibleKeyboard.subviews) { - viewName = NSStringFromClass(possibleKeyboardSubview.class); - if([viewName hasPrefix:@"UI"] && [viewName hasSuffix:@"InputSetHostView"]) { - CGRect convertedRect = [possibleKeyboard convertRect:possibleKeyboardSubview.frame toView:self]; - CGRect intersectedRect = CGRectIntersection(convertedRect, self.bounds); - if (!CGRectIsNull(intersectedRect)) { - return CGRectGetHeight(intersectedRect); - } - } - } - } - } - } -#endif - return 0; -} - -- (UIWindow *)frontWindow { -#if !defined(SV_APP_EXTENSIONS) - NSEnumerator *frontToBackWindows = [UIApplication.sharedApplication.windows reverseObjectEnumerator]; - for (UIWindow *window in frontToBackWindows) { - BOOL windowOnMainScreen = window.screen == UIScreen.mainScreen; - BOOL windowIsVisible = !window.hidden && window.alpha > 0; - BOOL windowLevelSupported = (window.windowLevel >= UIWindowLevelNormal && window.windowLevel <= self.maxSupportedWindowLevel); - BOOL windowKeyWindow = window.isKeyWindow; - - if(windowOnMainScreen && windowIsVisible && windowLevelSupported && windowKeyWindow) { - return window; - } - } -#endif - return nil; -} - -- (void)fadeInEffects { - if(self.defaultStyle != SVProgressHUDStyleCustom) { - // Add blur effect - UIBlurEffectStyle blurEffectStyle = self.defaultStyle == SVProgressHUDStyleDark ? UIBlurEffectStyleDark : UIBlurEffectStyleLight; - UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:blurEffectStyle]; - self.hudView.effect = blurEffect; - - // We omit UIVibrancy effect and use a suitable background color as an alternative. - // This will make everything more readable. See the following for details: - // https://www.omnigroup.com/developer/how-to-make-text-in-a-uivisualeffectview-readable-on-any-background - - self.hudView.backgroundColor = [self.backgroundColorForStyle colorWithAlphaComponent:0.6f]; - } else { - self.hudView.backgroundColor = self.backgroundColorForStyle; - } - - // Fade in views - self.backgroundView.alpha = 1.0f; - - self.imageView.alpha = 1.0f; - self.statusLabel.alpha = 1.0f; - self.indefiniteAnimatedView.alpha = 1.0f; - self.ringView.alpha = self.backgroundRingView.alpha = 1.0f; -} - -- (void)fadeOutEffects -{ - if(self.defaultStyle != SVProgressHUDStyleCustom) { - // Remove blur effect - self.hudView.effect = nil; - } - - // Remove background color - self.hudView.backgroundColor = [UIColor clearColor]; - - // Fade out views - self.backgroundView.alpha = 0.0f; - - self.imageView.alpha = 0.0f; - self.statusLabel.alpha = 0.0f; - self.indefiniteAnimatedView.alpha = 0.0f; - self.ringView.alpha = self.backgroundRingView.alpha = 0.0f; -} - -#if TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 -- (UINotificationFeedbackGenerator *)hapticGenerator NS_AVAILABLE_IOS(10_0) { - // Only return if haptics are enabled - if(!self.hapticsEnabled) { - return nil; - } - - if(!_hapticGenerator) { - _hapticGenerator = [[UINotificationFeedbackGenerator alloc] init]; - } - return _hapticGenerator; -} -#endif - - -#pragma mark - UIAppearance Setters - -- (void)setDefaultStyle:(SVProgressHUDStyle)style { - if (!_isInitializing) _defaultStyle = style; -} - -- (void)setDefaultMaskType:(SVProgressHUDMaskType)maskType { - if (!_isInitializing) _defaultMaskType = maskType; -} - -- (void)setDefaultAnimationType:(SVProgressHUDAnimationType)animationType { - if (!_isInitializing) _defaultAnimationType = animationType; -} - -- (void)setContainerView:(UIView *)containerView { - if (!_isInitializing) _containerView = containerView; -} - -- (void)setMinimumSize:(CGSize)minimumSize { - if (!_isInitializing) _minimumSize = minimumSize; -} - -- (void)setRingThickness:(CGFloat)ringThickness { - if (!_isInitializing) _ringThickness = ringThickness; -} - -- (void)setRingRadius:(CGFloat)ringRadius { - if (!_isInitializing) _ringRadius = ringRadius; -} - -- (void)setRingNoTextRadius:(CGFloat)ringNoTextRadius { - if (!_isInitializing) _ringNoTextRadius = ringNoTextRadius; -} - -- (void)setCornerRadius:(CGFloat)cornerRadius { - if (!_isInitializing) _cornerRadius = cornerRadius; -} - -- (void)setFont:(UIFont*)font { - if (!_isInitializing) _font = font; -} - -- (void)setForegroundColor:(UIColor*)color { - if (!_isInitializing) _foregroundColor = color; -} - -- (void)setBackgroundColor:(UIColor*)color { - if (!_isInitializing) _backgroundColor = color; -} - -- (void)setBackgroundLayerColor:(UIColor*)color { - if (!_isInitializing) _backgroundLayerColor = color; -} - -- (void)setShouldTintImages:(BOOL)shouldTintImages { - if (!_isInitializing) _shouldTintImages = shouldTintImages; -} - -- (void)setInfoImage:(UIImage*)image { - if (!_isInitializing) _infoImage = image; -} - -- (void)setSuccessImage:(UIImage*)image { - if (!_isInitializing) _successImage = image; -} - -- (void)setErrorImage:(UIImage*)image { - if (!_isInitializing) _errorImage = image; -} - -- (void)setViewForExtension:(UIView*)view { - if (!_isInitializing) _viewForExtension = view; -} - -- (void)setOffsetFromCenter:(UIOffset)offset { - if (!_isInitializing) _offsetFromCenter = offset; -} - -- (void)setMinimumDismissTimeInterval:(NSTimeInterval)minimumDismissTimeInterval { - if (!_isInitializing) _minimumDismissTimeInterval = minimumDismissTimeInterval; -} - -- (void)setFadeInAnimationDuration:(NSTimeInterval)duration { - if (!_isInitializing) _fadeInAnimationDuration = duration; -} - -- (void)setFadeOutAnimationDuration:(NSTimeInterval)duration { - if (!_isInitializing) _fadeOutAnimationDuration = duration; -} - -- (void)setMaxSupportedWindowLevel:(UIWindowLevel)maxSupportedWindowLevel { - if (!_isInitializing) _maxSupportedWindowLevel = maxSupportedWindowLevel; -} - -@end diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVRadialGradientLayer.h b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVRadialGradientLayer.h deleted file mode 100644 index 68d452a..0000000 --- a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVRadialGradientLayer.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// SVRadialGradientLayer.h -// SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD -// -// Copyright (c) 2014-2018 Tobias Tiemerding. All rights reserved. -// - -#import - -@interface SVRadialGradientLayer : CALayer - -@property (nonatomic) CGPoint gradientCenter; - -@end diff --git a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVRadialGradientLayer.m b/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVRadialGradientLayer.m deleted file mode 100644 index c62e0f8..0000000 --- a/FlinkChallenge/Pods/SVProgressHUD/SVProgressHUD/SVRadialGradientLayer.m +++ /dev/null @@ -1,25 +0,0 @@ -// -// SVRadialGradientLayer.m -// SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD -// -// Copyright (c) 2014-2018 Tobias Tiemerding. All rights reserved. -// - -#import "SVRadialGradientLayer.h" - -@implementation SVRadialGradientLayer - -- (void)drawInContext:(CGContextRef)context { - size_t locationsCount = 2; - CGFloat locations[2] = {0.0f, 1.0f}; - CGFloat colors[8] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.75f}; - CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); - CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, colors, locations, locationsCount); - CGColorSpaceRelease(colorSpace); - - float radius = MIN(self.bounds.size.width , self.bounds.size.height); - CGContextDrawRadialGradient (context, gradient, self.gradientCenter, 0, self.gradientCenter, radius, kCGGradientDrawsAfterEndLocation); - CGGradientRelease(gradient); -} - -@end diff --git a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-acknowledgements.markdown b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-acknowledgements.markdown index 2f76386..67a81d0 100644 --- a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-acknowledgements.markdown +++ b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-acknowledgements.markdown @@ -47,29 +47,4 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -## SVProgressHUD - -MIT License - -Copyright (c) 2011-2018 Sam Vermette, Tobias Tiemerding and contributors. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - Generated by CocoaPods - https://cocoapods.org diff --git a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-acknowledgements.plist b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-acknowledgements.plist index 9dcd32b..a542cac 100644 --- a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-acknowledgements.plist +++ b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-acknowledgements.plist @@ -71,37 +71,6 @@ THE SOFTWARE. Type PSGroupSpecifier - - FooterText - MIT License - -Copyright (c) 2011-2018 Sam Vermette, Tobias Tiemerding and contributors. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - License - MIT - Title - SVProgressHUD - Type - PSGroupSpecifier - FooterText Generated by CocoaPods - https://cocoapods.org diff --git a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks-Debug-input-files.xcfilelist b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks-Debug-input-files.xcfilelist index 7b58f35..9cfced5 100644 --- a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks-Debug-input-files.xcfilelist +++ b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks-Debug-input-files.xcfilelist @@ -1,4 +1,3 @@ ${PODS_ROOT}/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks.sh ${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework -${BUILT_PRODUCTS_DIR}/SDWebImageSwiftUI/SDWebImageSwiftUI.framework -${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework \ No newline at end of file +${BUILT_PRODUCTS_DIR}/SDWebImageSwiftUI/SDWebImageSwiftUI.framework \ No newline at end of file diff --git a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks-Debug-output-files.xcfilelist b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks-Debug-output-files.xcfilelist index 53142f2..9772410 100644 --- a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks-Debug-output-files.xcfilelist +++ b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks-Debug-output-files.xcfilelist @@ -1,3 +1,2 @@ ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageSwiftUI.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SVProgressHUD.framework \ No newline at end of file +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageSwiftUI.framework \ No newline at end of file diff --git a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks-Release-input-files.xcfilelist b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks-Release-input-files.xcfilelist index 7b58f35..9cfced5 100644 --- a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks-Release-input-files.xcfilelist +++ b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks-Release-input-files.xcfilelist @@ -1,4 +1,3 @@ ${PODS_ROOT}/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks.sh ${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework -${BUILT_PRODUCTS_DIR}/SDWebImageSwiftUI/SDWebImageSwiftUI.framework -${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework \ No newline at end of file +${BUILT_PRODUCTS_DIR}/SDWebImageSwiftUI/SDWebImageSwiftUI.framework \ No newline at end of file diff --git a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks-Release-output-files.xcfilelist b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks-Release-output-files.xcfilelist index 53142f2..9772410 100644 --- a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks-Release-output-files.xcfilelist +++ b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks-Release-output-files.xcfilelist @@ -1,3 +1,2 @@ ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageSwiftUI.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SVProgressHUD.framework \ No newline at end of file +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageSwiftUI.framework \ No newline at end of file diff --git a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks.sh b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks.sh index 9d60dd3..907bbd0 100755 --- a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks.sh +++ b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge-frameworks.sh @@ -163,12 +163,10 @@ strip_invalid_archs() { if [[ "$CONFIGURATION" == "Debug" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework" install_framework "${BUILT_PRODUCTS_DIR}/SDWebImageSwiftUI/SDWebImageSwiftUI.framework" - install_framework "${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework" install_framework "${BUILT_PRODUCTS_DIR}/SDWebImageSwiftUI/SDWebImageSwiftUI.framework" - install_framework "${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework" fi if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then wait diff --git a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge.debug.xcconfig b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge.debug.xcconfig index 41711dc..8eeaf46 100644 --- a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge.debug.xcconfig +++ b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge.debug.xcconfig @@ -1,9 +1,9 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageSwiftUI" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageSwiftUI" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageSwiftUI/SDWebImageSwiftUI.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageSwiftUI/SDWebImageSwiftUI.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -framework "ImageIO" -framework "QuartzCore" -framework "SDWebImage" -framework "SDWebImageSwiftUI" -framework "SVProgressHUD" -weak_framework "Combine" -weak_framework "SwiftUI" +OTHER_LDFLAGS = $(inherited) -framework "ImageIO" -framework "SDWebImage" -framework "SDWebImageSwiftUI" -weak_framework "Combine" -weak_framework "SwiftUI" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge.release.xcconfig b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge.release.xcconfig index 41711dc..8eeaf46 100644 --- a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge.release.xcconfig +++ b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallenge/Pods-FlinkChallenge.release.xcconfig @@ -1,9 +1,9 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageSwiftUI" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageSwiftUI" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageSwiftUI/SDWebImageSwiftUI.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageSwiftUI/SDWebImageSwiftUI.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -framework "ImageIO" -framework "QuartzCore" -framework "SDWebImage" -framework "SDWebImageSwiftUI" -framework "SVProgressHUD" -weak_framework "Combine" -weak_framework "SwiftUI" +OTHER_LDFLAGS = $(inherited) -framework "ImageIO" -framework "SDWebImage" -framework "SDWebImageSwiftUI" -weak_framework "Combine" -weak_framework "SwiftUI" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallengeTests/Pods-FlinkChallengeTests.debug.xcconfig b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallengeTests/Pods-FlinkChallengeTests.debug.xcconfig index a9fd2e4..8099e41 100644 --- a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallengeTests/Pods-FlinkChallengeTests.debug.xcconfig +++ b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallengeTests/Pods-FlinkChallengeTests.debug.xcconfig @@ -1,7 +1,7 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageSwiftUI" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageSwiftUI" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageSwiftUI/SDWebImageSwiftUI.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "ImageIO" -framework "QuartzCore" -framework "SDWebImage" -framework "SDWebImageSwiftUI" -framework "SVProgressHUD" -weak_framework "Combine" -weak_framework "SwiftUI" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageSwiftUI/SDWebImageSwiftUI.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "ImageIO" -framework "SDWebImage" -framework "SDWebImageSwiftUI" -weak_framework "Combine" -weak_framework "SwiftUI" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallengeTests/Pods-FlinkChallengeTests.release.xcconfig b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallengeTests/Pods-FlinkChallengeTests.release.xcconfig index a9fd2e4..8099e41 100644 --- a/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallengeTests/Pods-FlinkChallengeTests.release.xcconfig +++ b/FlinkChallenge/Pods/Target Support Files/Pods-FlinkChallengeTests/Pods-FlinkChallengeTests.release.xcconfig @@ -1,7 +1,7 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageSwiftUI" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageSwiftUI" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageSwiftUI/SDWebImageSwiftUI.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "ImageIO" -framework "QuartzCore" -framework "SDWebImage" -framework "SDWebImageSwiftUI" -framework "SVProgressHUD" -weak_framework "Combine" -weak_framework "SwiftUI" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageSwiftUI/SDWebImageSwiftUI.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "ImageIO" -framework "SDWebImage" -framework "SDWebImageSwiftUI" -weak_framework "Combine" -weak_framework "SwiftUI" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/FlinkChallenge/Pods/Target Support Files/SVProgressHUD/SVProgressHUD-Info.plist b/FlinkChallenge/Pods/Target Support Files/SVProgressHUD/SVProgressHUD-Info.plist deleted file mode 100644 index ce4ba6f..0000000 --- a/FlinkChallenge/Pods/Target Support Files/SVProgressHUD/SVProgressHUD-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 2.2.5 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/FlinkChallenge/Pods/Target Support Files/SVProgressHUD/SVProgressHUD-dummy.m b/FlinkChallenge/Pods/Target Support Files/SVProgressHUD/SVProgressHUD-dummy.m deleted file mode 100644 index 696032a..0000000 --- a/FlinkChallenge/Pods/Target Support Files/SVProgressHUD/SVProgressHUD-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_SVProgressHUD : NSObject -@end -@implementation PodsDummy_SVProgressHUD -@end diff --git a/FlinkChallenge/Pods/Target Support Files/SVProgressHUD/SVProgressHUD-prefix.pch b/FlinkChallenge/Pods/Target Support Files/SVProgressHUD/SVProgressHUD-prefix.pch deleted file mode 100644 index beb2a24..0000000 --- a/FlinkChallenge/Pods/Target Support Files/SVProgressHUD/SVProgressHUD-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/FlinkChallenge/Pods/Target Support Files/SVProgressHUD/SVProgressHUD-umbrella.h b/FlinkChallenge/Pods/Target Support Files/SVProgressHUD/SVProgressHUD-umbrella.h deleted file mode 100644 index bff1d78..0000000 --- a/FlinkChallenge/Pods/Target Support Files/SVProgressHUD/SVProgressHUD-umbrella.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - -#import "SVIndefiniteAnimatedView.h" -#import "SVProgressAnimatedView.h" -#import "SVProgressHUD.h" -#import "SVRadialGradientLayer.h" - -FOUNDATION_EXPORT double SVProgressHUDVersionNumber; -FOUNDATION_EXPORT const unsigned char SVProgressHUDVersionString[]; - diff --git a/FlinkChallenge/Pods/Target Support Files/SVProgressHUD/SVProgressHUD.modulemap b/FlinkChallenge/Pods/Target Support Files/SVProgressHUD/SVProgressHUD.modulemap deleted file mode 100644 index 2eaf140..0000000 --- a/FlinkChallenge/Pods/Target Support Files/SVProgressHUD/SVProgressHUD.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module SVProgressHUD { - umbrella header "SVProgressHUD-umbrella.h" - - export * - module * { export * } -} diff --git a/FlinkChallenge/Pods/Target Support Files/SVProgressHUD/SVProgressHUD.xcconfig b/FlinkChallenge/Pods/Target Support Files/SVProgressHUD/SVProgressHUD.xcconfig deleted file mode 100644 index 38bb9b9..0000000 --- a/FlinkChallenge/Pods/Target Support Files/SVProgressHUD/SVProgressHUD.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_LDFLAGS = $(inherited) -framework "QuartzCore" -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/SVProgressHUD -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES