From 114483d925e104f69b6c3a87e11122c87c742206 Mon Sep 17 00:00:00 2001 From: Antonio Casero Palmero Date: Sun, 25 Jan 2015 18:12:19 +0100 Subject: [PATCH] [Update] Only screenshots&gif --- ACPDownload.podspec | 17 - ACPDownload.xcodeproj/project.pbxproj | 409 ------------------ ACPDownload/ACPDownloadConstants.h | 24 - ACPDownload/ACPDownloadConstants.m | 16 - ACPDownload/ACPDownloadView.h | 80 ---- ACPDownload/ACPDownloadView.m | 181 -------- ACPDownload/ACPIndeterminateGoogleLayer.h | 14 - ACPDownload/ACPIndeterminateGoogleLayer.m | 128 ------ ACPDownload/ACPIndeterminateLayer.h | 16 - ACPDownload/ACPIndeterminateLayer.m | 90 ---- ACPDownload/ACPLayerProtocol.h | 81 ---- ACPDownload/ACPProgressLayer.h | 14 - ACPDownload/ACPProgressLayer.m | 101 ----- ACPDownload/ACPStaticImages.h | 16 - ACPDownload/ACPStaticImages.m | 160 ------- ACPDownload/ACPStaticImagesAlternative.h | 14 - ACPDownload/ACPStaticImagesAlternative.m | 140 ------ ACPDownload/ACPStaticImagesProtocol.h | 66 --- Example/AppDelegate.h | 17 - Example/AppDelegate.m | 45 -- Example/Base.lproj/LaunchScreen.xib | 41 -- Example/Base.lproj/Main.storyboard | 133 ------ Example/ExampleCell.h | 18 - Example/ExampleCell.m | 13 - .../AppIcon.appiconset/Contents.json | 68 --- Example/Info.plist | 47 -- Example/ViewController.h | 15 - Example/ViewController.m | 118 ----- Example/main.m | 16 - LICENSE | 21 - screenshots/acpdownload-gif.gif | Bin 0 -> 186503 bytes screenshots/acpdownload-screenshot-1.png | Bin 0 -> 34178 bytes screenshots/acpdownload-screenshot-2.png | Bin 0 -> 15602 bytes 33 files changed, 2119 deletions(-) delete mode 100644 ACPDownload.podspec delete mode 100644 ACPDownload.xcodeproj/project.pbxproj delete mode 100644 ACPDownload/ACPDownloadConstants.h delete mode 100644 ACPDownload/ACPDownloadConstants.m delete mode 100644 ACPDownload/ACPDownloadView.h delete mode 100644 ACPDownload/ACPDownloadView.m delete mode 100644 ACPDownload/ACPIndeterminateGoogleLayer.h delete mode 100644 ACPDownload/ACPIndeterminateGoogleLayer.m delete mode 100644 ACPDownload/ACPIndeterminateLayer.h delete mode 100644 ACPDownload/ACPIndeterminateLayer.m delete mode 100644 ACPDownload/ACPLayerProtocol.h delete mode 100644 ACPDownload/ACPProgressLayer.h delete mode 100644 ACPDownload/ACPProgressLayer.m delete mode 100644 ACPDownload/ACPStaticImages.h delete mode 100644 ACPDownload/ACPStaticImages.m delete mode 100644 ACPDownload/ACPStaticImagesAlternative.h delete mode 100644 ACPDownload/ACPStaticImagesAlternative.m delete mode 100644 ACPDownload/ACPStaticImagesProtocol.h delete mode 100644 Example/AppDelegate.h delete mode 100644 Example/AppDelegate.m delete mode 100644 Example/Base.lproj/LaunchScreen.xib delete mode 100644 Example/Base.lproj/Main.storyboard delete mode 100644 Example/ExampleCell.h delete mode 100644 Example/ExampleCell.m delete mode 100644 Example/Images.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 Example/Info.plist delete mode 100644 Example/ViewController.h delete mode 100644 Example/ViewController.m delete mode 100644 Example/main.m delete mode 100644 LICENSE create mode 100644 screenshots/acpdownload-gif.gif create mode 100644 screenshots/acpdownload-screenshot-1.png create mode 100644 screenshots/acpdownload-screenshot-2.png diff --git a/ACPDownload.podspec b/ACPDownload.podspec deleted file mode 100644 index 528abee..0000000 --- a/ACPDownload.podspec +++ /dev/null @@ -1,17 +0,0 @@ -Pod::Spec.new do |s| - s.name = 'ACPDownload' - s.version = '1.0.0' - s.license = { :type => 'MIT', :file => 'LICENSE' } - s.homepage = 'https://github.com/antoniocasero/ACPDownload' - s.authors = {'Antonio Casero' => 'anto.casero@gmail.com'} - s.summary = 'ACPDownload provides a download indicator with 4 different states, valid for any view size. Easy to customize and configure.' - -# Source Info - s.platform = :ios, '7.1' - s.source = { :git => "https://github.com/antoniocasero/ACPDownload.git", :tag => s.version.to_s } - s.source_files = 'ACPDownload' - s.requires_arc = true - -# Pod Dependencies - -end \ No newline at end of file diff --git a/ACPDownload.xcodeproj/project.pbxproj b/ACPDownload.xcodeproj/project.pbxproj deleted file mode 100644 index 7d534dd..0000000 --- a/ACPDownload.xcodeproj/project.pbxproj +++ /dev/null @@ -1,409 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 458EE6EA1A6C420200FDBE47 /* ExampleCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 458EE6E91A6C420200FDBE47 /* ExampleCell.m */; }; - 45BDEDAD1A6DA509004CC7B2 /* README.md in Sources */ = {isa = PBXBuildFile; fileRef = 45BDEDAC1A6DA509004CC7B2 /* README.md */; }; - 45CBADC31A619C280094E920 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 45CBADC21A619C280094E920 /* main.m */; }; - 45CBADC61A619C280094E920 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 45CBADC51A619C280094E920 /* AppDelegate.m */; }; - 45CBADC91A619C280094E920 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 45CBADC81A619C280094E920 /* ViewController.m */; }; - 45CBADCC1A619C280094E920 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 45CBADCA1A619C280094E920 /* Main.storyboard */; }; - 45CBADCE1A619C280094E920 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 45CBADCD1A619C280094E920 /* Images.xcassets */; }; - 45CBADD11A619C280094E920 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 45CBADCF1A619C280094E920 /* LaunchScreen.xib */; }; - 45CBADEB1A619FDA0094E920 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 45CBADEA1A619FDA0094E920 /* CoreGraphics.framework */; }; - 45D968311A7507AA0060B654 /* ACPDownloadConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 45D968221A7507AA0060B654 /* ACPDownloadConstants.m */; }; - 45D968321A7507AA0060B654 /* ACPDownloadView.m in Sources */ = {isa = PBXBuildFile; fileRef = 45D968241A7507AA0060B654 /* ACPDownloadView.m */; }; - 45D968331A7507AA0060B654 /* ACPIndeterminateGoogleLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 45D968261A7507AA0060B654 /* ACPIndeterminateGoogleLayer.m */; }; - 45D968341A7507AA0060B654 /* ACPIndeterminateLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 45D968281A7507AA0060B654 /* ACPIndeterminateLayer.m */; }; - 45D968351A7507AA0060B654 /* ACPProgressLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 45D9682B1A7507AA0060B654 /* ACPProgressLayer.m */; }; - 45D968361A7507AA0060B654 /* ACPStaticImages.m in Sources */ = {isa = PBXBuildFile; fileRef = 45D9682D1A7507AA0060B654 /* ACPStaticImages.m */; }; - 45D968371A7507AA0060B654 /* ACPStaticImagesAlternative.m in Sources */ = {isa = PBXBuildFile; fileRef = 45D9682F1A7507AA0060B654 /* ACPStaticImagesAlternative.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 458EE6E81A6C420200FDBE47 /* ExampleCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExampleCell.h; sourceTree = ""; }; - 458EE6E91A6C420200FDBE47 /* ExampleCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExampleCell.m; sourceTree = ""; }; - 45BDEDAC1A6DA509004CC7B2 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - 45CBADBD1A619C280094E920 /* ACPDownload.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ACPDownload.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 45CBADC11A619C280094E920 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 45CBADC21A619C280094E920 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 45CBADC41A619C280094E920 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 45CBADC51A619C280094E920 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 45CBADC71A619C280094E920 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; - 45CBADC81A619C280094E920 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; - 45CBADCB1A619C280094E920 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 45CBADCD1A619C280094E920 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; - 45CBADD01A619C280094E920 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; - 45CBADEA1A619FDA0094E920 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - 45D968211A7507AA0060B654 /* ACPDownloadConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ACPDownloadConstants.h; sourceTree = ""; }; - 45D968221A7507AA0060B654 /* ACPDownloadConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ACPDownloadConstants.m; sourceTree = ""; }; - 45D968231A7507AA0060B654 /* ACPDownloadView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ACPDownloadView.h; sourceTree = ""; }; - 45D968241A7507AA0060B654 /* ACPDownloadView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ACPDownloadView.m; sourceTree = ""; }; - 45D968251A7507AA0060B654 /* ACPIndeterminateGoogleLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ACPIndeterminateGoogleLayer.h; sourceTree = ""; }; - 45D968261A7507AA0060B654 /* ACPIndeterminateGoogleLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ACPIndeterminateGoogleLayer.m; sourceTree = ""; }; - 45D968271A7507AA0060B654 /* ACPIndeterminateLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ACPIndeterminateLayer.h; sourceTree = ""; }; - 45D968281A7507AA0060B654 /* ACPIndeterminateLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ACPIndeterminateLayer.m; sourceTree = ""; }; - 45D968291A7507AA0060B654 /* ACPLayerProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ACPLayerProtocol.h; sourceTree = ""; }; - 45D9682A1A7507AA0060B654 /* ACPProgressLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ACPProgressLayer.h; sourceTree = ""; }; - 45D9682B1A7507AA0060B654 /* ACPProgressLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ACPProgressLayer.m; sourceTree = ""; }; - 45D9682C1A7507AA0060B654 /* ACPStaticImages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ACPStaticImages.h; sourceTree = ""; }; - 45D9682D1A7507AA0060B654 /* ACPStaticImages.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ACPStaticImages.m; sourceTree = ""; }; - 45D9682E1A7507AA0060B654 /* ACPStaticImagesAlternative.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ACPStaticImagesAlternative.h; sourceTree = ""; }; - 45D9682F1A7507AA0060B654 /* ACPStaticImagesAlternative.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ACPStaticImagesAlternative.m; sourceTree = ""; }; - 45D968301A7507AA0060B654 /* ACPStaticImagesProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ACPStaticImagesProtocol.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 45CBADBA1A619C280094E920 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 45CBADEB1A619FDA0094E920 /* CoreGraphics.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 458EE6E41A6C41CF00FDBE47 /* Example */ = { - isa = PBXGroup; - children = ( - 45CBADC41A619C280094E920 /* AppDelegate.h */, - 45CBADC51A619C280094E920 /* AppDelegate.m */, - 45CBADC71A619C280094E920 /* ViewController.h */, - 45CBADC81A619C280094E920 /* ViewController.m */, - 45CBADCA1A619C280094E920 /* Main.storyboard */, - 458EE6E81A6C420200FDBE47 /* ExampleCell.h */, - 458EE6E91A6C420200FDBE47 /* ExampleCell.m */, - ); - name = Example; - sourceTree = ""; - }; - 45CBADB41A619C280094E920 = { - isa = PBXGroup; - children = ( - 45BDEDAC1A6DA509004CC7B2 /* README.md */, - 45CBADBF1A619C280094E920 /* Example */, - 45CBADBE1A619C280094E920 /* Products */, - 45CBADEA1A619FDA0094E920 /* CoreGraphics.framework */, - ); - sourceTree = ""; - }; - 45CBADBE1A619C280094E920 /* Products */ = { - isa = PBXGroup; - children = ( - 45CBADBD1A619C280094E920 /* ACPDownload.app */, - ); - name = Products; - sourceTree = ""; - }; - 45CBADBF1A619C280094E920 /* Example */ = { - isa = PBXGroup; - children = ( - 45D968201A7507AA0060B654 /* ACPDownload */, - 458EE6E41A6C41CF00FDBE47 /* Example */, - 45CBADCD1A619C280094E920 /* Images.xcassets */, - 45CBADCF1A619C280094E920 /* LaunchScreen.xib */, - 45CBADC01A619C280094E920 /* Supporting Files */, - ); - path = Example; - sourceTree = ""; - }; - 45CBADC01A619C280094E920 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 45CBADC11A619C280094E920 /* Info.plist */, - 45CBADC21A619C280094E920 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 45D968201A7507AA0060B654 /* ACPDownload */ = { - isa = PBXGroup; - children = ( - 45D9689E1A7551E10060B654 /* Images */, - 45D9689D1A7551CF0060B654 /* Animations */, - 45D9689C1A7551BE0060B654 /* Protocols */, - 45D968211A7507AA0060B654 /* ACPDownloadConstants.h */, - 45D968221A7507AA0060B654 /* ACPDownloadConstants.m */, - 45D968231A7507AA0060B654 /* ACPDownloadView.h */, - 45D968241A7507AA0060B654 /* ACPDownloadView.m */, - ); - path = ACPDownload; - sourceTree = SOURCE_ROOT; - }; - 45D9689C1A7551BE0060B654 /* Protocols */ = { - isa = PBXGroup; - children = ( - 45D968291A7507AA0060B654 /* ACPLayerProtocol.h */, - 45D968301A7507AA0060B654 /* ACPStaticImagesProtocol.h */, - ); - name = Protocols; - sourceTree = ""; - }; - 45D9689D1A7551CF0060B654 /* Animations */ = { - isa = PBXGroup; - children = ( - 45D968251A7507AA0060B654 /* ACPIndeterminateGoogleLayer.h */, - 45D968261A7507AA0060B654 /* ACPIndeterminateGoogleLayer.m */, - 45D968271A7507AA0060B654 /* ACPIndeterminateLayer.h */, - 45D968281A7507AA0060B654 /* ACPIndeterminateLayer.m */, - 45D9682A1A7507AA0060B654 /* ACPProgressLayer.h */, - 45D9682B1A7507AA0060B654 /* ACPProgressLayer.m */, - ); - name = Animations; - sourceTree = ""; - }; - 45D9689E1A7551E10060B654 /* Images */ = { - isa = PBXGroup; - children = ( - 45D9682C1A7507AA0060B654 /* ACPStaticImages.h */, - 45D9682D1A7507AA0060B654 /* ACPStaticImages.m */, - 45D9682E1A7507AA0060B654 /* ACPStaticImagesAlternative.h */, - 45D9682F1A7507AA0060B654 /* ACPStaticImagesAlternative.m */, - ); - name = Images; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 45CBADBC1A619C280094E920 /* ACPDownload */ = { - isa = PBXNativeTarget; - buildConfigurationList = 45CBADE01A619C290094E920 /* Build configuration list for PBXNativeTarget "ACPDownload" */; - buildPhases = ( - 45CBADB91A619C280094E920 /* Sources */, - 45CBADBA1A619C280094E920 /* Frameworks */, - 45CBADBB1A619C280094E920 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = ACPDownload; - productName = ACPDownload; - productReference = 45CBADBD1A619C280094E920 /* ACPDownload.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 45CBADB51A619C280094E920 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0610; - ORGANIZATIONNAME = "Antonio Casero Palmero"; - TargetAttributes = { - 45CBADBC1A619C280094E920 = { - CreatedOnToolsVersion = 6.1.1; - DevelopmentTeam = 9HX8L3BY3M; - }; - }; - }; - buildConfigurationList = 45CBADB81A619C280094E920 /* Build configuration list for PBXProject "ACPDownload" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 45CBADB41A619C280094E920; - productRefGroup = 45CBADBE1A619C280094E920 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 45CBADBC1A619C280094E920 /* ACPDownload */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 45CBADBB1A619C280094E920 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 45CBADCC1A619C280094E920 /* Main.storyboard in Resources */, - 45CBADD11A619C280094E920 /* LaunchScreen.xib in Resources */, - 45CBADCE1A619C280094E920 /* Images.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 45CBADB91A619C280094E920 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 45D968371A7507AA0060B654 /* ACPStaticImagesAlternative.m in Sources */, - 45D968341A7507AA0060B654 /* ACPIndeterminateLayer.m in Sources */, - 45D968351A7507AA0060B654 /* ACPProgressLayer.m in Sources */, - 45D968321A7507AA0060B654 /* ACPDownloadView.m in Sources */, - 45D968361A7507AA0060B654 /* ACPStaticImages.m in Sources */, - 458EE6EA1A6C420200FDBE47 /* ExampleCell.m in Sources */, - 45CBADC91A619C280094E920 /* ViewController.m in Sources */, - 45CBADC61A619C280094E920 /* AppDelegate.m in Sources */, - 45BDEDAD1A6DA509004CC7B2 /* README.md in Sources */, - 45D968311A7507AA0060B654 /* ACPDownloadConstants.m in Sources */, - 45CBADC31A619C280094E920 /* main.m in Sources */, - 45D968331A7507AA0060B654 /* ACPIndeterminateGoogleLayer.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 45CBADCA1A619C280094E920 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 45CBADCB1A619C280094E920 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 45CBADCF1A619C280094E920 /* LaunchScreen.xib */ = { - isa = PBXVariantGroup; - children = ( - 45CBADD01A619C280094E920 /* Base */, - ); - name = LaunchScreen.xib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 45CBADDE1A619C290094E920 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 45CBADDF1A619C290094E920 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 45CBADE11A619C290094E920 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - INFOPLIST_FILE = Example/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - }; - name = Debug; - }; - 45CBADE21A619C290094E920 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - INFOPLIST_FILE = Example/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 45CBADB81A619C280094E920 /* Build configuration list for PBXProject "ACPDownload" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 45CBADDE1A619C290094E920 /* Debug */, - 45CBADDF1A619C290094E920 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 45CBADE01A619C290094E920 /* Build configuration list for PBXNativeTarget "ACPDownload" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 45CBADE11A619C290094E920 /* Debug */, - 45CBADE21A619C290094E920 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 45CBADB51A619C280094E920 /* Project object */; -} diff --git a/ACPDownload/ACPDownloadConstants.h b/ACPDownload/ACPDownloadConstants.h deleted file mode 100644 index e931a63..0000000 --- a/ACPDownload/ACPDownloadConstants.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// ACPDownloadConstants.h -// ACPDownload -// -// Created by Palmero, Antonio on 1/16/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import - -@interface ACPDownloadConstants : NSObject - -extern NSString *const kACPStrokeAnimationKey; -extern NSString *const kACPRotationAnimationKey; - -typedef NS_ENUM(NSUInteger, ACPDownloadStatus) { - ACPDownloadStatusNone, - ACPDownloadStatusRunning, - ACPDownloadStatusIndeterminate, - ACPDownloadStatusCompleted, - -}; - -@end diff --git a/ACPDownload/ACPDownloadConstants.m b/ACPDownload/ACPDownloadConstants.m deleted file mode 100644 index 800fc3e..0000000 --- a/ACPDownload/ACPDownloadConstants.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// ACPDownloadConstants.m -// ACPDownload -// -// Created by Palmero, Antonio on 1/16/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import "ACPDownloadConstants.h" - -@implementation ACPDownloadConstants - -NSString *const kACPStrokeAnimationKey = @"com.acpdownload.animation.stroke"; -NSString *const kACPRotationAnimationKey = @"com.acpdownload.animation.rotation"; - -@end diff --git a/ACPDownload/ACPDownloadView.h b/ACPDownload/ACPDownloadView.h deleted file mode 100644 index a6f96c0..0000000 --- a/ACPDownload/ACPDownloadView.h +++ /dev/null @@ -1,80 +0,0 @@ -// -// ACPDownloadView.h -// ACPDownload -// -// Created by Antonio Casero Palmero on 10/01/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import -#import "ACPLayerProtocol.h" -#import "ACPStaticImagesProtocol.h" -#import "ACPDownloadConstants.h" - -@class ACPDownloadView; - -typedef void (^ACPViewTappedBlock)(ACPDownloadView * downloadView, ACPDownloadStatus status); - -/** - `ACPDownloadView` - - ##Purpose - Custom view. Provides a graphic representation of 4 different states. - *ACPDownloadStatusNone -> Initial state, nothing has been downloaded. - *ACPDownloadStatusRunning -> The download or process is in progress. - *ACPDownloadStatusIndeterminate -> Indeterminate state. (waiting, installing,...) - *ACPDownloadStatusCompleted -> Final state, the process is completed. - - - @see ACPDownloadConstants; - */ -@interface ACPDownloadView : UIView - -@property (nonatomic, readonly, assign) ACPDownloadStatus currentStatus; - -/** - * This method defines the state of the download indicator. - * - * @param newStatus current state of your process - */ -- (void)setIndicatorStatus:(ACPDownloadStatus)newStatus; - -/** - * Defines the progression of your process. - * @warning you can set the value when you want. But if the view state is not ACPDownloadStatusRunning you won't see - * the graphical representation. - - * @param progress Float value - from 0 to 1 - * @param animated Animation flag. - */ -- (void)setProgress:(float)progress animated:(BOOL)animated; - -/** - * Defines the behaviour when the user tap over it. - * The implementation is optional. - * - * @param blockAction The block input provides the view object and the current state. - */ -- (void)setActionForTap:(ACPViewTappedBlock)blockAction; - -/** - * Define a new indeterminate layer, replacing the default one. - * @see ACPLayerProtocol, ACPIndeterminateLayer - * @param layer Object who conforms the protocol ACPLayerProtocol. - */ -- (void)setIndeterminateLayer:(id)layer; - -/** - * Define a new progress layer, replacing the default one. - * @see ACPLayerProtocol, ACPProgressLater - * @param layer Object who conforms the protocol ACPLayerProtocol. - */ -- (void)setProgressLayer:(id)layer; - -/** - * Define a new set of images, replacing the default one. - * @see ACPStaticImagesProtocol - * @param layer Object who conforms the protocol ACPStaticImagesProtocol. - */ -- (void)setImages:(id)images; -@end diff --git a/ACPDownload/ACPDownloadView.m b/ACPDownload/ACPDownloadView.m deleted file mode 100644 index b31bdab..0000000 --- a/ACPDownload/ACPDownloadView.m +++ /dev/null @@ -1,181 +0,0 @@ - // -// ACPDownloadView.m -// ACPDownload -// -// Created by Antonio Casero Palmero on 10/01/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import "ACPDownloadView.h" -#import "ACPIndeterminateLayer.h" -#import "ACPProgressLayer.h" -#import "ACPStaticImages.h" - - -@interface ACPDownloadView() - -@property (nonatomic, readwrite, assign) ACPDownloadStatus currentStatus; -@property (nonatomic, copy) ACPViewTappedBlock viewTappedBlock; -@property (nonatomic, strong) id staticImages; -@property (nonatomic, strong) id indeterminateShapelayer; -@property (nonatomic, strong) id progressShapelayer; - - -@end - -@implementation ACPDownloadView - -- (instancetype)initWithFrame:(CGRect)frame { - if (self = [super initWithFrame:frame]) { - [self initialize]; - } - return self; -} - -- (instancetype)initWithCoder:(NSCoder *)aDecoder { - if (self = [super initWithCoder:aDecoder]) { - [self initialize]; - } - return self; -} - -- (void)initialize { - - [self setIndicatorStatus:ACPDownloadStatusNone]; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resetAnimations) name:UIApplicationDidBecomeActiveNotification object:nil]; - - UITapGestureRecognizer *singleFingerTap = - [[UITapGestureRecognizer alloc] initWithTarget:self - action:@selector(handleSingleTap:)]; - [self addGestureRecognizer:singleFingerTap]; - -} -- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer { - NSLog(@"Tap recieved"); - if(self.viewTappedBlock){ - self.viewTappedBlock(self, self.currentStatus); - } -} -- (void)dealloc -{ - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil]; -} -- (void)layoutSubviews { - //We set the bounds - [super layoutSubviews]; - if(!self.staticImages){ - self.staticImages = [ACPStaticImages new]; - [self.staticImages updateColor:self.tintColor]; - } - - [self.staticImages updateFrame:self.bounds]; - -} - -- (void)setIndicatorStatus:(ACPDownloadStatus)newStatus { - self.currentStatus = newStatus; - [self setNeedsDisplay]; -} - -- (void)resetAnimations { - - if (self.indeterminateLayer.isAnimating) { - [self.indeterminateLayer stopAnimating]; - [self.indeterminateLayer startAnimating]; - } -} - -- (void)setProgress:(float)progress animated:(BOOL)animated { - [self.progressShapelayer setProgress:progress animated:animated]; - -} -- (void)drawRect:(CGRect)rect { - - [self.indeterminateShapelayer removeLayer]; - [self.progressShapelayer removeLayer]; - switch (self.currentStatus) { - case ACPDownloadStatusNone:{ - [self.staticImages drawStatusNone]; - break; - } - case ACPDownloadStatusRunning:{ - - [self initializeProgress]; - [self.staticImages drawStatusRunning]; - break; - } - case ACPDownloadStatusIndeterminate:{ - - [self initializeIndeterminate]; - [self.indeterminateLayer startAnimating]; - [self.staticImages drawStatusIndeterminate]; - //Nothing - break; - } - case ACPDownloadStatusCompleted:{ - [self.staticImages drawStatusComplete]; - break; - } - default: - break; - } - [self setNeedsDisplay]; - -} - -- (id)progressShapelayer { - if (!_progressShapelayer) { - _progressShapelayer = [ACPProgressLayer new]; - } - return _progressShapelayer; -} -- (id)indeterminateLayer { - - if (!_indeterminateShapelayer) { - _indeterminateShapelayer = [ACPIndeterminateLayer new]; - } - return _indeterminateShapelayer; -} - -- (void)tintColorDidChange { - [super tintColorDidChange]; - [self.indeterminateLayer updateColor:self.tintColor]; - [self.progressShapelayer updateColor:self.tintColor]; - [self.staticImages updateColor:self.tintColor]; -} - - - -- (void)setActionForTap:(ACPViewTappedBlock)blockAction { - self.viewTappedBlock = blockAction; -} - -- (void)setIndeterminateLayer:(id)layer { - [layer updateFrame:CGRectMake(0, 0, CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds))]; - _indeterminateShapelayer = layer; - -} -- (void)setProgressLayer:(id)layer { - [layer updateFrame:CGRectMake(0, 0, CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds))]; - _progressShapelayer = layer; - -} - -- (void)initializeIndeterminate { - [self.indeterminateLayer updateColor:self.tintColor]; - [self.layer addSublayer:self.indeterminateLayer.layer]; - [self.indeterminateShapelayer updateFrame:CGRectMake(0, 0, CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds))]; -} - -- (void)initializeProgress{ - [self.progressShapelayer updateColor:self.tintColor]; - [self.layer addSublayer:self.progressShapelayer.layer]; - [self.progressShapelayer updateFrame:CGRectMake(0, 0, CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds))]; -} - -- (void)setImages:(id)images{ - self.staticImages = images; - [self.staticImages updateFrame:CGRectMake(0, 0, CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds))]; -} -@end diff --git a/ACPDownload/ACPIndeterminateGoogleLayer.h b/ACPDownload/ACPIndeterminateGoogleLayer.h deleted file mode 100644 index fc8a566..0000000 --- a/ACPDownload/ACPIndeterminateGoogleLayer.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// ACPIndeterminateGoogleLayer.h -// ACPDownload -// -// Created by Palmero, Antonio on 1/16/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import -#import "ACPLayerProtocol.h" - -@interface ACPIndeterminateGoogleLayer : NSObject - -@end diff --git a/ACPDownload/ACPIndeterminateGoogleLayer.m b/ACPDownload/ACPIndeterminateGoogleLayer.m deleted file mode 100644 index e45de80..0000000 --- a/ACPDownload/ACPIndeterminateGoogleLayer.m +++ /dev/null @@ -1,128 +0,0 @@ -// -// ACPIndeterminateGoogleLayer.m -// ACPDownload -// -// Created by Palmero, Antonio on 1/16/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import "ACPIndeterminateGoogleLayer.h" -#import "ACPDownloadConstants.h" - -@interface ACPIndeterminateGoogleLayer() - -@property (nonatomic, readwrite) CAShapeLayer * layer; -@property (nonatomic, readwrite) UIColor * colorLayer; -@property (nonatomic, assign) CGRect frame; -@property (nonatomic, assign, readwrite, getter= isAnimating) BOOL animate; - -@end - -@implementation ACPIndeterminateGoogleLayer - - - -- (CAShapeLayer *) layer { - if (!_layer) { - _layer = [CAShapeLayer layer]; - _layer.strokeColor = self.colorLayer.CGColor; - _layer.fillColor = nil; - _layer.lineWidth = 1.5f; - } - return _layer; -} - -- (void)updateFrame:(CGRect)frame { - self.frame = frame; - self.layer.frame = frame; - [self updatePath]; - -} - -- (void)updatePath { - - CGPoint center = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame)); - CGFloat radius = MIN(CGRectGetWidth(self.frame) / 2, CGRectGetHeight(self.frame) / 2) - self.layer.lineWidth / 2; - CGFloat startAngle = (CGFloat)(-M_PI_4); - CGFloat endAngle = (CGFloat)(3 * M_PI_2); - UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES]; - self.layer.path = path.CGPath; - -} - -#pragma mark - - -- (void)startAnimating{ - - CAMediaTimingFunction * timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; - CABasicAnimation *animation = [CABasicAnimation animation]; - animation.keyPath = @"transform.rotation"; - animation.duration = 4.f; - animation.fromValue = @(0.f); - animation.toValue = @(2 * M_PI); - animation.repeatCount = INFINITY; - [self.layer addAnimation:animation forKey:kACPRotationAnimationKey]; - - CABasicAnimation *headAnimation = [CABasicAnimation animation]; - headAnimation.keyPath = @"strokeStart"; - headAnimation.duration = 1.f; - headAnimation.fromValue = @(0.f); - headAnimation.toValue = @(0.25f); - headAnimation.timingFunction = timingFunction; - - CABasicAnimation *tailAnimation = [CABasicAnimation animation]; - tailAnimation.keyPath = @"strokeEnd"; - tailAnimation.duration = 1.f; - tailAnimation.fromValue = @(0.f); - tailAnimation.toValue = @(1.f); - tailAnimation.timingFunction = timingFunction; - - - CABasicAnimation *endHeadAnimation = [CABasicAnimation animation]; - endHeadAnimation.keyPath = @"strokeStart"; - endHeadAnimation.beginTime = 1.f; - endHeadAnimation.duration = 0.5f; - endHeadAnimation.fromValue = @(0.25f); - endHeadAnimation.toValue = @(1.f); - endHeadAnimation.timingFunction = timingFunction; - - CABasicAnimation *endTailAnimation = [CABasicAnimation animation]; - endTailAnimation.keyPath = @"strokeEnd"; - endTailAnimation.beginTime = 1.f; - endTailAnimation.duration = 0.5f; - endTailAnimation.fromValue = @(1.f); - endTailAnimation.toValue = @(1.f); - endTailAnimation.timingFunction = timingFunction; - - CAAnimationGroup *animations = [CAAnimationGroup animation]; - [animations setDuration:1.5f]; - [animations setAnimations:@[headAnimation, tailAnimation, endHeadAnimation, endTailAnimation]]; - animations.repeatCount = INFINITY; - [self.layer addAnimation:animations forKey:kACPStrokeAnimationKey]; - self.animate = YES; - -} -- (void)stopAnimating{ - - if (!self.isAnimating) - return; - - [self.layer removeAnimationForKey:kACPRotationAnimationKey]; - [self.layer removeAnimationForKey:kACPStrokeAnimationKey]; - self.animate = NO; - -} - -- (void)updateColor:(UIColor*)color { - self.layer.strokeColor = color.CGColor; -} - -- (void)setHidden:(BOOL)hidden { - self.layer.hidden = YES; - -} -- (void)removeLayer { - [self stopAnimating]; - [self.layer removeFromSuperlayer]; -} -@end diff --git a/ACPDownload/ACPIndeterminateLayer.h b/ACPDownload/ACPIndeterminateLayer.h deleted file mode 100644 index 08f3424..0000000 --- a/ACPDownload/ACPIndeterminateLayer.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// ACPIndeterminateLayer.h -// ACPDownload -// -// Created by Palmero, Antonio on 1/16/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import -#import "ACPLayerProtocol.h" - -@interface ACPIndeterminateLayer : NSObject - - - -@end diff --git a/ACPDownload/ACPIndeterminateLayer.m b/ACPDownload/ACPIndeterminateLayer.m deleted file mode 100644 index 346d124..0000000 --- a/ACPDownload/ACPIndeterminateLayer.m +++ /dev/null @@ -1,90 +0,0 @@ -// -// ACPIndeterminateLayer.m -// ACPDownload -// -// Created by Palmero, Antonio on 1/16/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import "ACPIndeterminateLayer.h" -#import "ACPDownloadConstants.h" - -@interface ACPIndeterminateLayer() - -@property (nonatomic, readwrite) CAShapeLayer * layer; -@property (nonatomic, readwrite) UIColor * colorLayer; -@property (nonatomic, assign) CGRect frame; -@property (nonatomic, assign, readwrite, getter= isAnimating) BOOL animate; - -@end - -@implementation ACPIndeterminateLayer - - - -- (CAShapeLayer *) layer { - if (!_layer) { - _layer = [CAShapeLayer layer]; - _layer.strokeColor = self.colorLayer.CGColor; - _layer.fillColor = nil; - _layer.lineWidth = 1.5f; - } - return _layer; -} - -- (void)updateFrame:(CGRect)frame { - self.frame = frame; - self.layer.frame = frame; - [self updatePath]; - -} - -- (void)updatePath { - - CGPoint center = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame)); - CGFloat radius = MIN(CGRectGetWidth(self.frame) / 2, CGRectGetHeight(self.frame) / 2) - self.layer.lineWidth / 2; - CGFloat startAngle = (CGFloat)(-M_PI_4); - CGFloat endAngle = (CGFloat)(3 * M_PI_2); - UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES]; - self.layer.path = path.CGPath; - -} - -#pragma mark - - -- (void)startAnimating{ - - CABasicAnimation *animation = [CABasicAnimation animation]; - animation.keyPath = @"transform.rotation"; - animation.duration = 1.0f; - animation.fromValue = @(0.0f); - animation.toValue = @(2 * M_PI); - animation.repeatCount = INFINITY; - animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; - - [self.layer addAnimation:animation forKey:kACPRotationAnimationKey]; - self.animate = YES; - -} -- (void)stopAnimating{ - - if (!self.isAnimating) - return; - - [self.layer removeAnimationForKey:kACPRotationAnimationKey]; - self.animate = NO; - -} - -- (void)updateColor:(UIColor*)color { - self.layer.strokeColor = color.CGColor; -} -- (void)setHidden:(BOOL)hidden { - self.layer.hidden = YES; - -} -- (void)removeLayer { - [self stopAnimating]; - [self.layer removeFromSuperlayer]; -} -@end diff --git a/ACPDownload/ACPLayerProtocol.h b/ACPDownload/ACPLayerProtocol.h deleted file mode 100644 index 85cb6de..0000000 --- a/ACPDownload/ACPLayerProtocol.h +++ /dev/null @@ -1,81 +0,0 @@ -// -// ACPLayerProtocol.h -// ACPDownload -// -// Created by Palmero, Antonio on 1/16/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import -#import - -/** - `ACPLayerProtocol` - - ##Purpose - Protocol to define the animated layers in the view container. It is defined for two animated states, Indeterminate and Running. - Any object who conform this protocol could replace any of the animated layer in the project. - @see ACPIndeterminateGoogleLayer ACPIndeterminateLayer - - #Optional methods. - - Indeterminate animation has to conform -startAnimating and -stopAnimating - Progress animation has to conform -setProgress - - @see ACPDownloadConstants; - */ - -@protocol ACPLayerProtocol - -@property (nonatomic, readonly) CAShapeLayer * layer; -@property (nonatomic, readonly) UIColor * colorLayer; -@property (nonatomic, assign, readonly, getter= isAnimating) BOOL animate; - -/** - * This method will set the right frame to layer - * - * @param frame current frame. - */ -- (void)updateFrame:(CGRect)frame; - -/** - * It will change the color of the layer. By default is tintColor. - * - * @param color color - */ -- (void)updateColor:(UIColor*)color; - -/** - * It will hidde the layer. - * - * @param hidden YES is hidden - */ -- (void)setHidden:(BOOL)hidden; - -/** - * Remove Layer, this method remove the animation first, and then remove the layer from superview - */ -- (void)removeLayer; - -@optional - -/** - * This method will start the animation associated. - * @warning the indeterminate layer has to implement it. - */ -- (void)startAnimating; - -/** -* This method will stop the animation associated. -* @warning the indeterminate layer has to implement it. -*/ -- (void)stopAnimating; - -/** - * This method will define the progress of our Progress layer - * @warning the progress layer has to implement it. - * @param progress Float value from 0 to 1. - * @param animated flag. - */ -- (void)setProgress:(float)progress animated:(BOOL)animated; -@end diff --git a/ACPDownload/ACPProgressLayer.h b/ACPDownload/ACPProgressLayer.h deleted file mode 100644 index 747ae61..0000000 --- a/ACPDownload/ACPProgressLayer.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// ACPProgressLayer.h -// ACPDownload -// -// Created by Palmero, Antonio on 1/16/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import -#import "ACPLayerProtocol.h" - -@interface ACPProgressLayer : NSObject - -@end diff --git a/ACPDownload/ACPProgressLayer.m b/ACPDownload/ACPProgressLayer.m deleted file mode 100644 index eda0c38..0000000 --- a/ACPDownload/ACPProgressLayer.m +++ /dev/null @@ -1,101 +0,0 @@ -// -// ACPProgressLayer.m -// ACPDownload -// -// Created by Palmero, Antonio on 1/16/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import "ACPProgressLayer.h" -#import "ACPDownloadConstants.h" - -@interface ACPProgressLayer() - -@property (nonatomic, readwrite) CAShapeLayer * layer; -@property (nonatomic, readwrite) UIColor * colorLayer; -@property (nonatomic, assign) CGRect frame; -@property (nonatomic, assign, readwrite, getter= isAnimating) BOOL animate; -@property (nonatomic, assign) float progress; - -@end - -@implementation ACPProgressLayer - -- (instancetype)init -{ - self = [super init]; - if (self) { - self.progress =0.f; - } - return self; -} -- (CAShapeLayer *) layer { - if (!_layer) { - _layer = [CAShapeLayer layer]; - _layer.strokeColor = self.colorLayer.CGColor; - _layer.fillColor = nil; - _layer.lineWidth = 3.f; - } - return _layer; -} - -- (void)updateFrame:(CGRect)frame { - self.frame = frame; - self.layer.frame = frame; - [self updatePath]; - -} - -- (void)updatePath { - - CGPoint center = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame)); - CGFloat radius = MIN(CGRectGetWidth(self.frame) / 2, CGRectGetHeight(self.frame) / 2) - self.layer.lineWidth / 2; - radius = radius - self.layer.lineWidth/2; - CGFloat startAngle = (CGFloat)(-M_PI/2); - CGFloat endAngle = (CGFloat)(3 * M_PI_2); - UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES]; - self.layer.path = path.CGPath; - -} - -#pragma mark - - -- (void)setProgress:(float)progress { - [self setProgress:progress animated:NO]; -} - -- (void)setProgress:(float)progress animated:(BOOL)animated { - if (progress > 0) { - if (animated) { - CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"]; - animation.fromValue = self.progress == 0 ? @0 : nil; - animation.toValue = @(progress); - animation.duration = 1; - self.layer.strokeEnd = progress; - [self.layer addAnimation:animation forKey:@"animation"]; - } else { - [CATransaction begin]; - [CATransaction setDisableActions:YES]; - self.layer.strokeEnd = progress; - [CATransaction commit]; - } - } else { - self.layer.strokeEnd = 0.0f; - [self.layer removeAnimationForKey:@"animation"]; - } - - _progress = progress; -} - -- (void)updateColor:(UIColor*)color { - self.layer.strokeColor = color.CGColor; -} - -- (void)setHidden:(BOOL)hidden { - self.layer.hidden = YES; - -} -- (void)removeLayer { - [self.layer removeFromSuperlayer]; -} -@end diff --git a/ACPDownload/ACPStaticImages.h b/ACPDownload/ACPStaticImages.h deleted file mode 100644 index d6225bd..0000000 --- a/ACPDownload/ACPStaticImages.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// ACPStaticImages.h -// ACPDownload -// -// Created by Antonio Casero Palmero on 18/01/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import -#import "ACPStaticImagesProtocol.h" - - -@interface ACPStaticImages : NSObject - - -@end diff --git a/ACPDownload/ACPStaticImages.m b/ACPDownload/ACPStaticImages.m deleted file mode 100644 index 5e4fa69..0000000 --- a/ACPDownload/ACPStaticImages.m +++ /dev/null @@ -1,160 +0,0 @@ -// -// ACPStaticImages.m -// ACPDownload -// -// Created by Antonio Casero Palmero on 18/01/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import "ACPStaticImages.h" - -@implementation ACPStaticImages -@synthesize bounds, strokeColor; - -- (void)updateFrame:(CGRect)frame { - self.bounds = frame; -} - -- (void) drawStatusNone{ - - CGRect frameContainer; - frameContainer.origin.x = CGRectGetMidX(self.bounds) - self.bounds.size.width / 3; - frameContainer.origin.y = CGRectGetMidY(self.bounds) - self.bounds.size.height / 3; - frameContainer.size.width = self.bounds.size.width / 1.5; - frameContainer.size.height = self.bounds.size.height / 1.5; - - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.48148 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.88542 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.36111 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.75000 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.33333 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.78125 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.50000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.96875 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.66667 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.78125 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.63889 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.75000 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.51852 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.88542 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.51852 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.41667 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.48148 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.41667 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.48148 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.88542 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.48148 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.88542 * CGRectGetHeight(frameContainer))]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.44444 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.66667 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.18529 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.66667 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.03704 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.50000 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.10363 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.66667 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.03704 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.59205 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.15189 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.33759 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.03704 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.42103 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.08610 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.35466 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.15189 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.33759 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.14815 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.29167 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.14943 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.32270 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.14815 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.30735 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.37037 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.04167 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.14815 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.15360 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.24764 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.04167 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.58005 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.20867 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.46724 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.04167 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.54963 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.11139 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.68519 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.16667 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.60873 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.18241 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.64532 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.16667 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.85128 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.33846 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.77253 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.16667 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.84418 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.24226 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.85128 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.33846 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.96296 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.50000 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.91535 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.35680 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.96296 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.42217 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.81471 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.66667 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.96296 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.59186 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.89659 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.66667 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.55556 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.66667 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.55556 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.70833 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.81484 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.70833 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 1.00000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.50000 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.91710 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.70833 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 1.00000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.61483 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.88455 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.30690 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 1.00000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.41265 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.95234 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.33785 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.88455 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.30690 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.68519 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.12500 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.86519 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.20301 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.78328 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.12500 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.59607 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.14804 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.65323 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.12500 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.62299 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.13328 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.37037 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.00000 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.55153 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.05964 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.46714 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.00000 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.11111 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.29167 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.22719 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.00000 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.11111 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.13058 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.11155 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.30881 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.11111 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.29742 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.11126 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.30314 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.11155 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.30881 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.00000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.50000 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.04591 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.34090 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.00000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.41455 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.18516 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.70833 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.00000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.61506 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.08268 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.70833 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.44444 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.70833 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.44444 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.66667 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.44444 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.66667 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.44444 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.66667 * CGRectGetHeight(frameContainer))]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - bezierPath.usesEvenOddFillRule = YES; - - [self.strokeColor setFill]; - [bezierPath fill]; -} -- (void) drawStatusIndeterminate{ - //Nothing, just the layer animation. -} -- (void) drawStatusRunning{ - - CGPoint center = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds)); - CGFloat radius = (MIN(CGRectGetWidth(self.bounds) / 2, CGRectGetHeight(self.bounds) / 2))-1; - CGFloat startAngle = (CGFloat)(0); - CGFloat endAngle = (CGFloat)(2*M_PI); - - - //// Oval Drawing - UIBezierPath* ovalPath = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES]; - [[UIColor clearColor] setFill]; - [ovalPath fill]; - [self.strokeColor setStroke]; - ovalPath.lineWidth = 1.5; - [ovalPath stroke]; - - CGRect page1 = self.bounds; - page1.origin.x = CGRectGetMidX(self.bounds) - self.bounds.size.width / 8; - page1.origin.y = CGRectGetMidY(self.bounds) - self.bounds.size.height / 8; - page1.size.width = self.bounds.size.width / 4; - page1.size.height = self.bounds.size.height /4; - - //// Rectangle Drawing - UIBezierPath* rectanglePath = [UIBezierPath bezierPathWithRect: page1]; - [self.strokeColor setFill]; - [rectanglePath fill]; - -} -- (void) drawStatusComplete{ - - CGRect frameContainer; - - frameContainer.origin.x = CGRectGetMidX(self.bounds) - self.bounds.size.width / 3; - frameContainer.origin.y = CGRectGetMidY(self.bounds) - self.bounds.size.height / 3; - frameContainer.size.width = self.bounds.size.width / 1.5; - frameContainer.size.height = self.bounds.size.height / 1.5; - - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.50000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 1.00000 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 1.00000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.50000 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.77614 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 1.00000 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 1.00000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.77614 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.50000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.00000 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 1.00000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.22386 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.77614 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.00000 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.00000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.50000 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.22386 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.00000 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.00000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.22386 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.50000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 1.00000 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.00000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.77614 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.22386 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 1.00000 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.50000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 1.00000 * CGRectGetHeight(frameContainer))]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.50000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.95455 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.95455 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.50000 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.75104 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.95455 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.95455 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.75104 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.50000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.04545 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.95455 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.24896 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.75104 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.04545 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.04545 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.50000 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.24896 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.04545 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.04545 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.24896 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.50000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.95455 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.04545 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.75104 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.24896 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.95455 * CGRectGetHeight(frameContainer))]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.30715 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.72499 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.27501 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.69285 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.46786 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.50000 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.27501 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.30715 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.30715 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.27501 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.50000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.46786 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.69285 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.27501 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.72499 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.30715 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.53214 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.50000 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.72499 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.69285 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.69285 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.72499 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.50000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.53214 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.30715 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.72499 * CGRectGetHeight(frameContainer))]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - bezierPath.usesEvenOddFillRule = YES; - - [self.strokeColor setFill]; - [bezierPath fill]; -} - - -- (void)updateColor:(UIColor*)color { - self.strokeColor = color; -} -@end diff --git a/ACPDownload/ACPStaticImagesAlternative.h b/ACPDownload/ACPStaticImagesAlternative.h deleted file mode 100644 index b086511..0000000 --- a/ACPDownload/ACPStaticImagesAlternative.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// ACPStaticImagesAlternative.h -// ACPDownload -// -// Created by Palmero, Antonio on 1/19/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import -#import "ACPStaticImagesProtocol.h" -@interface ACPStaticImagesAlternative : NSObject - - -@end diff --git a/ACPDownload/ACPStaticImagesAlternative.m b/ACPDownload/ACPStaticImagesAlternative.m deleted file mode 100644 index d8b3986..0000000 --- a/ACPDownload/ACPStaticImagesAlternative.m +++ /dev/null @@ -1,140 +0,0 @@ -// -// ACPStaticImagesAlternative.m -// ACPDownload -// -// Created by Palmero, Antonio on 1/19/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import "ACPStaticImagesAlternative.h" - -@implementation ACPStaticImagesAlternative - -@synthesize strokeColor,bounds; - -- (void)updateFrame:(CGRect)frame { - self.bounds = frame; -} - -- (void)updateColor:(UIColor*)color { - self.strokeColor = color; -} - -- (void) drawStatusNone{ - CGRect frameContainer; - frameContainer.origin.x = CGRectGetMidX(self.bounds) - self.bounds.size.width / 3; - frameContainer.origin.y = CGRectGetMidY(self.bounds) - self.bounds.size.height / 3; - frameContainer.size.width = self.bounds.size.width / 1.5; - frameContainer.size.height = self.bounds.size.height / 1.5; - - CGRect groupInFrame = CGRectMake(CGRectGetMinX(frameContainer) + floor(CGRectGetWidth(frameContainer) * 0.09375 + 0.5), CGRectGetMinY(frameContainer) + floor(CGRectGetHeight(frameContainer) * 0.02539 + 0.5), floor(CGRectGetWidth(frameContainer) * 0.90625 + 0.5) - floor(CGRectGetWidth(frameContainer) * 0.09375 + 0.5), floor(CGRectGetHeight(frameContainer) * 1.00000 + 0.5) - floor(CGRectGetHeight(frameContainer) * 0.02539 + 0.5)); - - //Arrow - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.28199 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.49896 * CGRectGetHeight(groupInFrame))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.24671 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.52837 * CGRectGetHeight(groupInFrame))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.50026 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.73975 * CGRectGetHeight(groupInFrame))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.75381 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.52837 * CGRectGetHeight(groupInFrame))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.71853 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.49896 * CGRectGetHeight(groupInFrame))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.52521 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.66013 * CGRectGetHeight(groupInFrame))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.52521 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.00179 * CGRectGetHeight(groupInFrame))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.47531 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.00179 * CGRectGetHeight(groupInFrame))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.47531 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.66013 * CGRectGetHeight(groupInFrame))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.28199 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.49896 * CGRectGetHeight(groupInFrame))]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - [self.strokeColor setFill]; - [bezierPath fill]; - - - //Cube - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path moveToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.62499 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.20975 * CGRectGetHeight(groupInFrame))]; - [bezier2Path addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.62499 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.25134 * CGRectGetHeight(groupInFrame))]; - [bezier2Path addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.94928 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.25134 * CGRectGetHeight(groupInFrame))]; - [bezier2Path addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.94928 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.95841 * CGRectGetHeight(groupInFrame))]; - [bezier2Path addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.05125 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.95841 * CGRectGetHeight(groupInFrame))]; - [bezier2Path addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.05125 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.25134 * CGRectGetHeight(groupInFrame))]; - [bezier2Path addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.37553 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.25134 * CGRectGetHeight(groupInFrame))]; - [bezier2Path addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.37553 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.20975 * CGRectGetHeight(groupInFrame))]; - [bezier2Path addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.00135 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.20975 * CGRectGetHeight(groupInFrame))]; - [bezier2Path addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.00135 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 1.00000 * CGRectGetHeight(groupInFrame))]; - [bezier2Path addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.99917 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 1.00000 * CGRectGetHeight(groupInFrame))]; - [bezier2Path addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.99917 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.20975 * CGRectGetHeight(groupInFrame))]; - [bezier2Path addLineToPoint: CGPointMake(CGRectGetMinX(groupInFrame) + 0.62499 * CGRectGetWidth(groupInFrame), CGRectGetMinY(groupInFrame) + 0.20975 * CGRectGetHeight(groupInFrame))]; - [bezier2Path closePath]; - bezier2Path.miterLimit = 4; - - [self.strokeColor setFill]; - [bezier2Path fill]; - - - - -} -- (void) drawStatusIndeterminate{ - //Nothing, just the layer animation. -} -- (void) drawStatusRunning{ - - CGPoint center = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds)); - CGFloat radius = (MIN(CGRectGetWidth(self.bounds) / 2, CGRectGetHeight(self.bounds) / 2))-1; - CGFloat startAngle = (CGFloat)(0); - CGFloat endAngle = (CGFloat)(2*M_PI); - - - //// The circle - UIBezierPath* ovalPath = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES]; - [[UIColor clearColor] setFill]; - [ovalPath fill]; - [self.strokeColor setStroke]; - ovalPath.lineWidth = 1.5; - [ovalPath stroke]; - - CGRect page1 = self.bounds; - page1.origin.x = CGRectGetMidX(self.bounds) - self.bounds.size.width / 8; - page1.origin.y = CGRectGetMidY(self.bounds) - self.bounds.size.height / 8; - page1.size.width = self.bounds.size.width / 4; - page1.size.height = self.bounds.size.height /4; - - //// The stop in the middle - UIBezierPath* rectanglePath = [UIBezierPath bezierPathWithRect: page1]; - [self.strokeColor setFill]; - [rectanglePath fill]; - -} -- (void) drawStatusComplete{ - - CGRect frameContainer; - frameContainer.origin.x = CGRectGetMidX(self.bounds) - self.bounds.size.width / 3; - frameContainer.origin.y = CGRectGetMidY(self.bounds) - self.bounds.size.height / 3; - frameContainer.size.width = self.bounds.size.width / 1.5; - frameContainer.size.height = self.bounds.size.height / 1.5; - - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.50000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.00000 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.00000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.50000 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.22500 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.00000 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.00000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.22500 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.50000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 1.00000 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.00000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.77500 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.22500 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 1.00000 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 1.00000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.50000 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 0.77500 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 1.00000 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 1.00000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.77500 * CGRectGetHeight(frameContainer))]; - [bezierPath addCurveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.50000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.00000 * CGRectGetHeight(frameContainer)) controlPoint1: CGPointMake(CGRectGetMinX(frameContainer) + 1.00000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.22500 * CGRectGetHeight(frameContainer)) controlPoint2: CGPointMake(CGRectGetMinX(frameContainer) + 0.77500 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.00000 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.50000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.00000 * CGRectGetHeight(frameContainer))]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.40000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.72500 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.40000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.27500 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.70000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.50000 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.40000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.72500 * CGRectGetHeight(frameContainer))]; - [bezierPath addLineToPoint: CGPointMake(CGRectGetMinX(frameContainer) + 0.40000 * CGRectGetWidth(frameContainer), CGRectGetMinY(frameContainer) + 0.72500 * CGRectGetHeight(frameContainer))]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - bezierPath.usesEvenOddFillRule = YES; - - [self.strokeColor setFill]; - [bezierPath fill]; - -} - - - -@end diff --git a/ACPDownload/ACPStaticImagesProtocol.h b/ACPDownload/ACPStaticImagesProtocol.h deleted file mode 100644 index 7766824..0000000 --- a/ACPDownload/ACPStaticImagesProtocol.h +++ /dev/null @@ -1,66 +0,0 @@ -// -// ACPStaticImages.h -// ACPDownload -// -// Created by Antonio Casero Palmero on 18/01/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import -#import - - -/** - `ACPStaticImagesProtocol` - - ##Purpose - Protocol to define the set of static images for any state in the main view. - @see ACPStaticImagesAlternative ACPStaticImages - - ##Note - No need for different resolutions, UIBezierPath is used to paint the images. - - @see UIBezierPath; - */ - -@protocol ACPStaticImagesProtocol -/** - * Basic properties. - */ -@property (nonatomic, assign) CGRect bounds; -@property (nonatomic, strong) UIColor * strokeColor; - -/** - * Draw the image for the ACPDownloadStatusNone - */ -- (void) drawStatusNone; - -/** - * Draw the image for the ACPDownloadStatusIndeterminate - */ -- (void) drawStatusIndeterminate; - -/** - * Draw the image for the ACPDownloadStatusRunning - */ -- (void) drawStatusRunning; - -/** - * Draw the image for the ACPDownloadStatusCompleted - */ -- (void) drawStatusComplete; - -/** - * Update the color of the images. By default is the tintColor. - * - * @param color Color selected. - */ -- (void) updateColor:(UIColor*)color; - -/** -* This method will set the right frame to layer -* -* @param frame current frame. -*/ -- (void)updateFrame:(CGRect)frame; -@end diff --git a/Example/AppDelegate.h b/Example/AppDelegate.h deleted file mode 100644 index 1aa214c..0000000 --- a/Example/AppDelegate.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// AppDelegate.h -// ACPDownload -// -// Created by Antonio Casero Palmero on 10/01/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import - -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - - -@end - diff --git a/Example/AppDelegate.m b/Example/AppDelegate.m deleted file mode 100644 index d237c37..0000000 --- a/Example/AppDelegate.m +++ /dev/null @@ -1,45 +0,0 @@ -// -// AppDelegate.m -// ACPDownload -// -// Created by Antonio Casero Palmero on 10/01/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import "AppDelegate.h" - -@interface AppDelegate () - -@end - -@implementation AppDelegate - - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - // Override point for customization after application launch. - return YES; -} - -- (void)applicationWillResignActive:(UIApplication *)application { - // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. - // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. -} - -- (void)applicationDidEnterBackground:(UIApplication *)application { - // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. - // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. -} - -- (void)applicationWillEnterForeground:(UIApplication *)application { - // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. -} - -- (void)applicationDidBecomeActive:(UIApplication *)application { - // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. -} - -- (void)applicationWillTerminate:(UIApplication *)application { - // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. -} - -@end diff --git a/Example/Base.lproj/LaunchScreen.xib b/Example/Base.lproj/LaunchScreen.xib deleted file mode 100644 index 331e1b1..0000000 --- a/Example/Base.lproj/LaunchScreen.xib +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Base.lproj/Main.storyboard b/Example/Base.lproj/Main.storyboard deleted file mode 100644 index 52f8104..0000000 --- a/Example/Base.lproj/Main.storyboard +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/ExampleCell.h b/Example/ExampleCell.h deleted file mode 100644 index e7ca0e8..0000000 --- a/Example/ExampleCell.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// ExampleCell.h -// ACPDownload -// -// Created by Antonio Casero Palmero on 18/01/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import -#import "ACPDownloadView.h" - -@interface ExampleCell : UITableViewCell - -@property (weak, nonatomic) IBOutlet UILabel *exampleLabel; -@property (weak, nonatomic) IBOutlet ACPDownloadView *exampleIndicator; - - -@end diff --git a/Example/ExampleCell.m b/Example/ExampleCell.m deleted file mode 100644 index 2dd3086..0000000 --- a/Example/ExampleCell.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// ExampleCell.m -// ACPDownload -// -// Created by Antonio Casero Palmero on 18/01/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import "ExampleCell.h" - -@implementation ExampleCell - -@end diff --git a/Example/Images.xcassets/AppIcon.appiconset/Contents.json b/Example/Images.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 36d2c80..0000000 --- a/Example/Images.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "3x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "76x76", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "76x76", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Example/Info.plist b/Example/Info.plist deleted file mode 100644 index e38a3bd..0000000 --- a/Example/Info.plist +++ /dev/null @@ -1,47 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - Uttopia.$(PRODUCT_NAME:rfc1034identifier) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Example/ViewController.h b/Example/ViewController.h deleted file mode 100644 index 378cb59..0000000 --- a/Example/ViewController.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// ViewController.h -// ACPDownload -// -// Created by Antonio Casero Palmero on 10/01/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import - -@interface ViewController : UIViewController - - -@end - diff --git a/Example/ViewController.m b/Example/ViewController.m deleted file mode 100644 index aa39dc8..0000000 --- a/Example/ViewController.m +++ /dev/null @@ -1,118 +0,0 @@ -// -// ViewController.m -// ACPDownload -// -// Created by Antonio Casero Palmero on 10/01/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import "ViewController.h" -#import "ACPDownloadView.h" -#import "ACPIndeterminateGoogleLayer.h" -#import "ExampleCell.h" -#import "ACPStaticImagesAlternative.h" -@interface ViewController () -{ - NSTimer *_timer; -} -@property (weak, nonatomic) IBOutlet ACPDownloadView *downloadView; -@property (nonatomic, assign) float progress; -@end - -@implementation ViewController - - -- (void)viewDidLoad { - [super viewDidLoad]; - - // If you want to change the animation in the indeterminate state - ACPIndeterminateGoogleLayer * layer = [ACPIndeterminateGoogleLayer new]; - [layer updateColor:[UIColor blueColor]]; - [self.downloadView setIndeterminateLayer:layer]; - - // You can define a behaviour if the view is tapped. (Optional) - [self.downloadView setActionForTap:^(ACPDownloadView *downloadView, ACPDownloadStatus status){ - switch (status) { - case ACPDownloadStatusNone: - [downloadView setIndicatorStatus:ACPDownloadStatusIndeterminate]; - break; - case ACPDownloadStatusRunning: - [downloadView setIndicatorStatus:ACPDownloadStatusCompleted]; - break; - case ACPDownloadStatusIndeterminate: - [downloadView setIndicatorStatus:ACPDownloadStatusRunning]; - break; - case ACPDownloadStatusCompleted: - [downloadView setIndicatorStatus:ACPDownloadStatusNone]; - break; - - default: - break; - } - }]; - // This timer has been written just for testing purposes. It's running and changing the value of the progress variable constantly. - _timer = [NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(increment:) userInfo:nil repeats:YES]; -} - -- (void)increment:(NSTimer *)timer { - - self.progress = (self.progress <= 0.8f ? self.progress + 0.2f : 0.0f); - NSLog(@"Progress %f", self.progress); - [self.downloadView setProgress:self.progress animated:YES]; -} - -#pragma mark - Tableview configuration. - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - return 1; -} - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - return 25; -} - - -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - static NSString* cellIdentifier = @"Cell"; - ExampleCell* cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath]; - - cell.exampleLabel.text = [NSString stringWithFormat:@"Package %zd", indexPath.row]; - - // If you want to change the images presented - ACPStaticImagesAlternative * myOwnImages = [ACPStaticImagesAlternative new]; - [myOwnImages updateColor:cell.tintColor]; - [cell.exampleIndicator setImages:myOwnImages]; - - //Status by default. - [cell.exampleIndicator setIndicatorStatus:ACPDownloadStatusNone]; - cell.selectionStyle = UITableViewCellSelectionStyleNone; - return cell; -} - -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { - ExampleCell * cellSelected = (ExampleCell*)[tableView cellForRowAtIndexPath:indexPath]; - - switch (cellSelected.exampleIndicator.currentStatus - ) { - case ACPDownloadStatusNone: - [cellSelected.exampleIndicator setIndicatorStatus:ACPDownloadStatusIndeterminate]; - break; - case ACPDownloadStatusRunning: - [cellSelected.exampleIndicator setIndicatorStatus:ACPDownloadStatusCompleted]; - break; - case ACPDownloadStatusIndeterminate: - [cellSelected.exampleIndicator setIndicatorStatus:ACPDownloadStatusRunning]; - [cellSelected.exampleIndicator setProgress:self.progress animated:YES]; - break; - case ACPDownloadStatusCompleted: - [cellSelected.exampleIndicator setIndicatorStatus:ACPDownloadStatusNone]; - break; - - default: - break; - } - - -} - -@end diff --git a/Example/main.m b/Example/main.m deleted file mode 100644 index 10fe2ca..0000000 --- a/Example/main.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// main.m -// ACPDownload -// -// Created by Antonio Casero Palmero on 10/01/15. -// Copyright (c) 2015 Antonio Casero Palmero. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/LICENSE b/LICENSE deleted file mode 100644 index e874435..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Antonio Casero - -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. \ No newline at end of file diff --git a/screenshots/acpdownload-gif.gif b/screenshots/acpdownload-gif.gif new file mode 100644 index 0000000000000000000000000000000000000000..1274a6cb0f64d0d99f4cf81561d24f5bc814bafb GIT binary patch literal 186503 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 HTKIneRAM`h literal 0 HcmV?d00001 diff --git a/screenshots/acpdownload-screenshot-1.png b/screenshots/acpdownload-screenshot-1.png new file mode 100644 index 0000000000000000000000000000000000000000..7b7b2e75df5d7b09451a2440eb81b57c0c0b00b8 GIT binary patch literal 34178 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

Uy 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