From 6efb0e5add9c52781491da1dac194444fed8f83a Mon Sep 17 00:00:00 2001 From: Derek Selander Date: Fri, 4 Sep 2020 21:34:55 -0600 Subject: [PATCH] Added SVProgress --- .gitignore | 4 + PsychicStapler.xcodeproj/project.pbxproj | 58 + .../UserInterfaceState.xcuserstate | Bin 834383 -> 0 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 251 --- PsychicStapler/CoreServices.h | 11 +- SVProgressHUD/SVIndefiniteAnimatedView.h | 17 + SVProgressHUD/SVIndefiniteAnimatedView.m | 146 ++ SVProgressHUD/SVProgressAnimatedView.h | 17 + SVProgressHUD/SVProgressAnimatedView.m | 96 + SVProgressHUD/SVProgressHUD-Prefix.pch | 7 + .../SVProgressHUD.bundle/angle-mask.png | Bin 0 -> 1845 bytes .../SVProgressHUD.bundle/angle-mask@2x.png | Bin 0 -> 4893 bytes .../SVProgressHUD.bundle/angle-mask@3x.png | Bin 0 -> 8319 bytes SVProgressHUD/SVProgressHUD.bundle/error.png | Bin 0 -> 184 bytes .../SVProgressHUD.bundle/error@2x.png | Bin 0 -> 306 bytes .../SVProgressHUD.bundle/error@3x.png | Bin 0 -> 398 bytes SVProgressHUD/SVProgressHUD.bundle/info.png | Bin 0 -> 365 bytes .../SVProgressHUD.bundle/info@2x.png | Bin 0 -> 816 bytes .../SVProgressHUD.bundle/info@3x.png | Bin 0 -> 1200 bytes .../SVProgressHUD.bundle/success.png | Bin 0 -> 262 bytes .../SVProgressHUD.bundle/success@2x.png | Bin 0 -> 462 bytes .../SVProgressHUD.bundle/success@3x.png | Bin 0 -> 714 bytes SVProgressHUD/SVProgressHUD.h | 152 ++ SVProgressHUD/SVProgressHUD.m | 1546 +++++++++++++++++ SVProgressHUD/SVRadialGradientLayer.h | 14 + SVProgressHUD/SVRadialGradientLayer.m | 25 + yacd/AirdropOnlyActivity.h | 17 + yacd/AirdropOnlyActivity.m | 38 + yacd/AppDelegate.m | 13 +- yacd/Models/ProcessModule.h | 21 + yacd/Models/ProcessModule.m | 29 + yacd/SSZipArchive/SSZipArchive.m | 18 +- .../ApplicationTableViewCell.m | 7 +- .../ProcessDetailsViewController.h | 6 + .../ProcessDetailsViewController.mm | 191 +- yacd/ViewControllers/ViewController.mm | 1 + 36 files changed, 2349 insertions(+), 336 deletions(-) delete mode 100644 PsychicStapler.xcodeproj/project.xcworkspace/xcuserdata/lolgrep.xcuserdatad/UserInterfaceState.xcuserstate delete mode 100644 PsychicStapler.xcodeproj/xcuserdata/lolgrep.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 SVProgressHUD/SVIndefiniteAnimatedView.h create mode 100644 SVProgressHUD/SVIndefiniteAnimatedView.m create mode 100644 SVProgressHUD/SVProgressAnimatedView.h create mode 100644 SVProgressHUD/SVProgressAnimatedView.m create mode 100644 SVProgressHUD/SVProgressHUD-Prefix.pch create mode 100644 SVProgressHUD/SVProgressHUD.bundle/angle-mask.png create mode 100644 SVProgressHUD/SVProgressHUD.bundle/angle-mask@2x.png create mode 100644 SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png create mode 100644 SVProgressHUD/SVProgressHUD.bundle/error.png create mode 100644 SVProgressHUD/SVProgressHUD.bundle/error@2x.png create mode 100644 SVProgressHUD/SVProgressHUD.bundle/error@3x.png create mode 100644 SVProgressHUD/SVProgressHUD.bundle/info.png create mode 100644 SVProgressHUD/SVProgressHUD.bundle/info@2x.png create mode 100644 SVProgressHUD/SVProgressHUD.bundle/info@3x.png create mode 100644 SVProgressHUD/SVProgressHUD.bundle/success.png create mode 100644 SVProgressHUD/SVProgressHUD.bundle/success@2x.png create mode 100644 SVProgressHUD/SVProgressHUD.bundle/success@3x.png create mode 100644 SVProgressHUD/SVProgressHUD.h create mode 100644 SVProgressHUD/SVProgressHUD.m create mode 100644 SVProgressHUD/SVRadialGradientLayer.h create mode 100644 SVProgressHUD/SVRadialGradientLayer.m create mode 100644 yacd/AirdropOnlyActivity.h create mode 100644 yacd/AirdropOnlyActivity.m create mode 100644 yacd/Models/ProcessModule.h create mode 100644 yacd/Models/ProcessModule.m diff --git a/.gitignore b/.gitignore index fd1dc16..3ea9f80 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,7 @@ fastlane/test_output iOSInjectionProject/ /.DS_Store +/media/.DS_Store +/PsychicStapler.xcodeproj/xcuserdata/lolgrep.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +/PsychicStapler.xcodeproj/project.xcworkspace/xcuserdata/lolgrep.xcuserdatad/UserInterfaceState.xcuserstate +.DS_Store diff --git a/PsychicStapler.xcodeproj/project.pbxproj b/PsychicStapler.xcodeproj/project.pbxproj index ffd6389..efd875c 100644 --- a/PsychicStapler.xcodeproj/project.pbxproj +++ b/PsychicStapler.xcodeproj/project.pbxproj @@ -45,6 +45,13 @@ 3FCA5CF524D762950021FEDB /* ProcessDetailsViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3FCA5CF424D762950021FEDB /* ProcessDetailsViewController.mm */; }; 3FE942D524C7B78E008FCB38 /* TaskHelpers.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3FE942D324C7B78E008FCB38 /* TaskHelpers.mm */; }; 3FE942F724CE771A008FCB38 /* libPsychicStapler.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F17A5FA24C3F485000227B5 /* libPsychicStapler.a */; }; + 3FF4B82525011E950047642E /* SVRadialGradientLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FF4B81B25011E950047642E /* SVRadialGradientLayer.m */; }; + 3FF4B82625011E950047642E /* SVProgressAnimatedView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FF4B81E25011E950047642E /* SVProgressAnimatedView.m */; }; + 3FF4B82725011E950047642E /* SVProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FF4B82125011E950047642E /* SVProgressHUD.m */; }; + 3FF4B82825011E950047642E /* SVIndefiniteAnimatedView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FF4B82225011E950047642E /* SVIndefiniteAnimatedView.m */; }; + 3FF4B82925011E950047642E /* SVProgressHUD.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 3FF4B82325011E950047642E /* SVProgressHUD.bundle */; }; + 3FF4B82C25012BFF0047642E /* AirdropOnlyActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FF4B82B25012BFF0047642E /* AirdropOnlyActivity.m */; }; + 3FF4B830250131DD0047642E /* ProcessModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FF4B82F250131DD0047642E /* ProcessModule.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -169,6 +176,20 @@ 3FE942F424CE7492008FCB38 /* evil_ent.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = evil_ent.xml; sourceTree = ""; }; 3FE942FA24CE818C008FCB38 /* commons.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = commons.h; sourceTree = ""; }; 3FE942FD24CF7371008FCB38 /* CoreServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CoreServices.h; sourceTree = ""; }; + 3FF4B81B25011E950047642E /* SVRadialGradientLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVRadialGradientLayer.m; sourceTree = ""; }; + 3FF4B81C25011E950047642E /* SVIndefiniteAnimatedView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVIndefiniteAnimatedView.h; sourceTree = ""; }; + 3FF4B81D25011E950047642E /* SVProgressHUD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVProgressHUD.h; sourceTree = ""; }; + 3FF4B81E25011E950047642E /* SVProgressAnimatedView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVProgressAnimatedView.m; sourceTree = ""; }; + 3FF4B81F25011E950047642E /* SVProgressHUD-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SVProgressHUD-Prefix.pch"; sourceTree = ""; }; + 3FF4B82025011E950047642E /* SVRadialGradientLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVRadialGradientLayer.h; sourceTree = ""; }; + 3FF4B82125011E950047642E /* SVProgressHUD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVProgressHUD.m; sourceTree = ""; }; + 3FF4B82225011E950047642E /* SVIndefiniteAnimatedView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVIndefiniteAnimatedView.m; sourceTree = ""; }; + 3FF4B82325011E950047642E /* SVProgressHUD.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = SVProgressHUD.bundle; sourceTree = ""; }; + 3FF4B82425011E950047642E /* SVProgressAnimatedView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVProgressAnimatedView.h; sourceTree = ""; }; + 3FF4B82A25012BFF0047642E /* AirdropOnlyActivity.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AirdropOnlyActivity.h; sourceTree = ""; }; + 3FF4B82B25012BFF0047642E /* AirdropOnlyActivity.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AirdropOnlyActivity.m; sourceTree = ""; }; + 3FF4B82E250131DD0047642E /* ProcessModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ProcessModule.h; sourceTree = ""; }; + 3FF4B82F250131DD0047642E /* ProcessModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ProcessModule.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -341,6 +362,8 @@ 3F7513D824C713A600DC892B /* yacd */ = { isa = PBXGroup; children = ( + 3FF4B82D250131C50047642E /* Models */, + 3FF4B81A25011E950047642E /* SVProgressHUD */, 3F6EA03E24F4005D001AD9C8 /* SSZipArchive */, 3F36E35D24E032060002EE58 /* ViewControllers */, 3FCD7B3E24E030FE00E7414A /* Helpers */, @@ -352,6 +375,8 @@ 3F7513E724C713A700DC892B /* LaunchScreen.storyboard */, 3F7513EA24C713A700DC892B /* Info.plist */, 3F7513EB24C713A700DC892B /* main.m */, + 3FF4B82A25012BFF0047642E /* AirdropOnlyActivity.h */, + 3FF4B82B25012BFF0047642E /* AirdropOnlyActivity.m */, ); path = yacd; sourceTree = ""; @@ -367,6 +392,32 @@ path = Helpers; sourceTree = ""; }; + 3FF4B81A25011E950047642E /* SVProgressHUD */ = { + isa = PBXGroup; + children = ( + 3FF4B81B25011E950047642E /* SVRadialGradientLayer.m */, + 3FF4B81C25011E950047642E /* SVIndefiniteAnimatedView.h */, + 3FF4B81D25011E950047642E /* SVProgressHUD.h */, + 3FF4B81E25011E950047642E /* SVProgressAnimatedView.m */, + 3FF4B81F25011E950047642E /* SVProgressHUD-Prefix.pch */, + 3FF4B82025011E950047642E /* SVRadialGradientLayer.h */, + 3FF4B82125011E950047642E /* SVProgressHUD.m */, + 3FF4B82225011E950047642E /* SVIndefiniteAnimatedView.m */, + 3FF4B82325011E950047642E /* SVProgressHUD.bundle */, + 3FF4B82425011E950047642E /* SVProgressAnimatedView.h */, + ); + path = SVProgressHUD; + sourceTree = SOURCE_ROOT; + }; + 3FF4B82D250131C50047642E /* Models */ = { + isa = PBXGroup; + children = ( + 3FF4B82E250131DD0047642E /* ProcessModule.h */, + 3FF4B82F250131DD0047642E /* ProcessModule.m */, + ); + path = Models; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -470,6 +521,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 3FF4B82925011E950047642E /* SVProgressHUD.bundle in Resources */, 3F7513E924C713A700DC892B /* LaunchScreen.storyboard in Resources */, 3F7513E624C713A700DC892B /* Assets.xcassets in Resources */, 3F6EA06724F4005D001AD9C8 /* LICENSE in Resources */, @@ -526,13 +578,17 @@ buildActionMask = 2147483647; files = ( 3F7513E124C713A700DC892B /* ViewController.mm in Sources */, + 3FF4B82625011E950047642E /* SVProgressAnimatedView.m in Sources */, 3F6EA07324F4005D001AD9C8 /* SSZipArchive.m in Sources */, 3FCA5CF524D762950021FEDB /* ProcessDetailsViewController.mm in Sources */, 3F6EA06524F4005D001AD9C8 /* mz_strm_zlib.c in Sources */, 3F6EA06824F4005D001AD9C8 /* mz_zip_rw.c in Sources */, 3F6EA06624F4005D001AD9C8 /* mz_zip.c in Sources */, 3F7513DB24C713A700DC892B /* AppDelegate.m in Sources */, + 3FF4B82C25012BFF0047642E /* AirdropOnlyActivity.m in Sources */, 3F6EA06A24F4005D001AD9C8 /* mz_strm_mem.c in Sources */, + 3FF4B82725011E950047642E /* SVProgressHUD.m in Sources */, + 3FF4B830250131DD0047642E /* ProcessModule.m in Sources */, 3F6EA06F24F4005D001AD9C8 /* mz_os_posix.c in Sources */, 3F6EA07124F4005D001AD9C8 /* mz_strm_split.c in Sources */, 3F6EA06B24F4005D001AD9C8 /* mz_crypt.c in Sources */, @@ -543,7 +599,9 @@ 3F4072FF24FC9CA90016831B /* NSError+ErrorHelper.m in Sources */, 3F6EA06424F4005D001AD9C8 /* mz_strm_pkcrypt.c in Sources */, 3F4072FB24FB580D0016831B /* ApplicationTableViewCell.m in Sources */, + 3FF4B82825011E950047642E /* SVIndefiniteAnimatedView.m in Sources */, 3F6EA06E24F4005D001AD9C8 /* mz_os.c in Sources */, + 3FF4B82525011E950047642E /* SVRadialGradientLayer.m in Sources */, 3F6EA06924F4005D001AD9C8 /* mz_crypt_apple.c in Sources */, 3FBDE5D824DD293900D53CB8 /* UIViewController+DisplayError.m in Sources */, 3F6EA07024F4005D001AD9C8 /* mz_strm_buf.c in Sources */, diff --git a/PsychicStapler.xcodeproj/project.xcworkspace/xcuserdata/lolgrep.xcuserdatad/UserInterfaceState.xcuserstate b/PsychicStapler.xcodeproj/project.xcworkspace/xcuserdata/lolgrep.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 1b097005b1a29fbd29e7599635d18612b31ccfa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 834383 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

0lG-fQ$0cr9L=x5{hx)_a@1EnbiJsrQ-px%W@+ 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 z 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

>FTGvvW8zOXV;CF!R0Rl`G7F_E^ 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

p0c=q7Msb^f>yMlBVEudOLvAckuYX3 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 diff --git a/PsychicStapler.xcodeproj/xcuserdata/lolgrep.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/PsychicStapler.xcodeproj/xcuserdata/lolgrep.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist deleted file mode 100644 index b34097c..0000000 --- a/PsychicStapler.xcodeproj/xcuserdata/lolgrep.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ /dev/null @@ -1,251 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PsychicStapler/CoreServices.h b/PsychicStapler/CoreServices.h index fe727f4..ee5b380 100644 --- a/PsychicStapler/CoreServices.h +++ b/PsychicStapler/CoreServices.h @@ -26,7 +26,14 @@ -(NSArray >*)allApplications; @end -//__attribute__((weak)) -//CGImageRef LICreateIconFromCachedBitmap(NSData* data); +#ifdef __cplusplus +extern "C" { +#endif +__attribute__((weak)) + CGImageRef LICreateIconFromCachedBitmap(NSData* data); + +#ifdef __cplusplus +} +#endif diff --git a/SVProgressHUD/SVIndefiniteAnimatedView.h b/SVProgressHUD/SVIndefiniteAnimatedView.h new file mode 100644 index 0000000..5e300ca --- /dev/null +++ b/SVProgressHUD/SVIndefiniteAnimatedView.h @@ -0,0 +1,17 @@ +// +// SVIndefiniteAnimatedView.h +// SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD +// +// Copyright (c) 2014-2019 Guillaume Campagna. All rights reserved. +// + +#import + +@interface SVIndefiniteAnimatedView : UIView + +@property (nonatomic, assign) CGFloat strokeThickness; +@property (nonatomic, assign) CGFloat radius; +@property (nonatomic, strong) UIColor *strokeColor; + +@end + diff --git a/SVProgressHUD/SVIndefiniteAnimatedView.m b/SVProgressHUD/SVIndefiniteAnimatedView.m new file mode 100644 index 0000000..9f7412a --- /dev/null +++ b/SVProgressHUD/SVIndefiniteAnimatedView.m @@ -0,0 +1,146 @@ +// +// SVIndefiniteAnimatedView.m +// SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD +// +// Copyright (c) 2014-2019 Guillaume Campagna. All rights reserved. +// + +#import "SVIndefiniteAnimatedView.h" +#import "SVProgressHUD.h" + +@interface SVIndefiniteAnimatedView () + +@property (nonatomic, strong) CAShapeLayer *indefiniteAnimatedLayer; + +@end + +@implementation SVIndefiniteAnimatedView + +- (void)willMoveToSuperview:(UIView*)newSuperview { + if (newSuperview) { + [self layoutAnimatedLayer]; + } else { + [_indefiniteAnimatedLayer removeFromSuperlayer]; + _indefiniteAnimatedLayer = nil; + } +} + +- (void)layoutSubviews { + [super layoutSubviews]; + + [self layoutAnimatedLayer]; +} + +- (void)layoutAnimatedLayer { + CALayer *layer = self.indefiniteAnimatedLayer; + + if (!layer.superlayer) { + [self.layer addSublayer:layer]; + } + + CGFloat widthDiff = CGRectGetWidth(self.bounds) - CGRectGetWidth(layer.bounds); + CGFloat heightDiff = CGRectGetHeight(self.bounds) - CGRectGetHeight(layer.bounds); + layer.position = CGPointMake(CGRectGetWidth(self.bounds) - CGRectGetWidth(layer.bounds) / 2 - widthDiff / 2, CGRectGetHeight(self.bounds) - CGRectGetHeight(layer.bounds) / 2 - heightDiff / 2); +} + +- (CAShapeLayer*)indefiniteAnimatedLayer { + if(!_indefiniteAnimatedLayer) { + CGPoint arcCenter = CGPointMake(self.radius+self.strokeThickness/2+5, self.radius+self.strokeThickness/2+5); + UIBezierPath* smoothedPath = [UIBezierPath bezierPathWithArcCenter:arcCenter radius:self.radius startAngle:(CGFloat) (M_PI*3/2) endAngle:(CGFloat) (M_PI/2+M_PI*5) clockwise:YES]; + + _indefiniteAnimatedLayer = [CAShapeLayer layer]; + _indefiniteAnimatedLayer.contentsScale = [[UIScreen mainScreen] scale]; + _indefiniteAnimatedLayer.frame = CGRectMake(0.0f, 0.0f, arcCenter.x*2, arcCenter.y*2); + _indefiniteAnimatedLayer.fillColor = [UIColor clearColor].CGColor; + _indefiniteAnimatedLayer.strokeColor = self.strokeColor.CGColor; + _indefiniteAnimatedLayer.lineWidth = self.strokeThickness; + _indefiniteAnimatedLayer.lineCap = kCALineCapRound; + _indefiniteAnimatedLayer.lineJoin = kCALineJoinBevel; + _indefiniteAnimatedLayer.path = smoothedPath.CGPath; + + CALayer *maskLayer = [CALayer layer]; + + NSBundle *bundle = [NSBundle bundleForClass:[SVProgressHUD class]]; + NSURL *url = [bundle URLForResource:@"SVProgressHUD" withExtension:@"bundle"]; + NSBundle *imageBundle = [NSBundle bundleWithURL:url]; + + NSString *path = [imageBundle pathForResource:@"angle-mask" ofType:@"png"]; + + maskLayer.contents = (__bridge id)[[UIImage imageWithContentsOfFile:path] CGImage]; + maskLayer.frame = _indefiniteAnimatedLayer.bounds; + _indefiniteAnimatedLayer.mask = maskLayer; + + NSTimeInterval animationDuration = 1; + CAMediaTimingFunction *linearCurve = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; + + CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; + animation.fromValue = (id) 0; + animation.toValue = @(M_PI*2); + animation.duration = animationDuration; + animation.timingFunction = linearCurve; + animation.removedOnCompletion = NO; + animation.repeatCount = INFINITY; + animation.fillMode = kCAFillModeForwards; + animation.autoreverses = NO; + [_indefiniteAnimatedLayer.mask addAnimation:animation forKey:@"rotate"]; + + CAAnimationGroup *animationGroup = [CAAnimationGroup animation]; + animationGroup.duration = animationDuration; + animationGroup.repeatCount = INFINITY; + animationGroup.removedOnCompletion = NO; + animationGroup.timingFunction = linearCurve; + + CABasicAnimation *strokeStartAnimation = [CABasicAnimation animationWithKeyPath:@"strokeStart"]; + strokeStartAnimation.fromValue = @0.015; + strokeStartAnimation.toValue = @0.515; + + CABasicAnimation *strokeEndAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"]; + strokeEndAnimation.fromValue = @0.485; + strokeEndAnimation.toValue = @0.985; + + animationGroup.animations = @[strokeStartAnimation, strokeEndAnimation]; + [_indefiniteAnimatedLayer addAnimation:animationGroup forKey:@"progress"]; + + } + return _indefiniteAnimatedLayer; +} + +- (void)setFrame:(CGRect)frame { + if(!CGRectEqualToRect(frame, super.frame)) { + [super setFrame:frame]; + + if(self.superview) { + [self layoutAnimatedLayer]; + } + } + +} + +- (void)setRadius:(CGFloat)radius { + if(radius != _radius) { + _radius = radius; + + [_indefiniteAnimatedLayer removeFromSuperlayer]; + _indefiniteAnimatedLayer = nil; + + if(self.superview) { + [self layoutAnimatedLayer]; + } + } +} + +- (void)setStrokeColor:(UIColor*)strokeColor { + _strokeColor = strokeColor; + _indefiniteAnimatedLayer.strokeColor = strokeColor.CGColor; +} + +- (void)setStrokeThickness:(CGFloat)strokeThickness { + _strokeThickness = strokeThickness; + _indefiniteAnimatedLayer.lineWidth = _strokeThickness; +} + +- (CGSize)sizeThatFits:(CGSize)size { + return CGSizeMake((self.radius+self.strokeThickness/2+5)*2, (self.radius+self.strokeThickness/2+5)*2); +} + +@end diff --git a/SVProgressHUD/SVProgressAnimatedView.h b/SVProgressHUD/SVProgressAnimatedView.h new file mode 100644 index 0000000..c730075 --- /dev/null +++ b/SVProgressHUD/SVProgressAnimatedView.h @@ -0,0 +1,17 @@ +// +// SVProgressAnimatedView.h +// SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD +// +// Copyright (c) 2017-2019 Tobias Tiemerding. All rights reserved. +// + +#import + +@interface SVProgressAnimatedView : UIView + +@property (nonatomic, assign) CGFloat radius; +@property (nonatomic, assign) CGFloat strokeThickness; +@property (nonatomic, strong) UIColor *strokeColor; +@property (nonatomic, assign) CGFloat strokeEnd; + +@end diff --git a/SVProgressHUD/SVProgressAnimatedView.m b/SVProgressHUD/SVProgressAnimatedView.m new file mode 100644 index 0000000..30587e6 --- /dev/null +++ b/SVProgressHUD/SVProgressAnimatedView.m @@ -0,0 +1,96 @@ +// +// SVProgressAnimatedView.m +// SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD +// +// Copyright (c) 2017-2019 Tobias Tiemerding. All rights reserved. +// + +#import "SVProgressAnimatedView.h" + +@interface SVProgressAnimatedView () + +@property (nonatomic, strong) CAShapeLayer *ringAnimatedLayer; + +@end + +@implementation SVProgressAnimatedView + +- (void)willMoveToSuperview:(UIView*)newSuperview { + if (newSuperview) { + [self layoutAnimatedLayer]; + } else { + [_ringAnimatedLayer removeFromSuperlayer]; + _ringAnimatedLayer = nil; + } +} + +- (void)layoutAnimatedLayer { + CALayer *layer = self.ringAnimatedLayer; + [self.layer addSublayer:layer]; + + CGFloat widthDiff = CGRectGetWidth(self.bounds) - CGRectGetWidth(layer.bounds); + CGFloat heightDiff = CGRectGetHeight(self.bounds) - CGRectGetHeight(layer.bounds); + layer.position = CGPointMake(CGRectGetWidth(self.bounds) - CGRectGetWidth(layer.bounds) / 2 - widthDiff / 2, CGRectGetHeight(self.bounds) - CGRectGetHeight(layer.bounds) / 2 - heightDiff / 2); +} + +- (CAShapeLayer*)ringAnimatedLayer { + if(!_ringAnimatedLayer) { + CGPoint arcCenter = CGPointMake(self.radius+self.strokeThickness/2+5, self.radius+self.strokeThickness/2+5); + UIBezierPath* smoothedPath = [UIBezierPath bezierPathWithArcCenter:arcCenter radius:self.radius startAngle:(CGFloat)-M_PI_2 endAngle:(CGFloat) (M_PI + M_PI_2) clockwise:YES]; + + _ringAnimatedLayer = [CAShapeLayer layer]; + _ringAnimatedLayer.contentsScale = [[UIScreen mainScreen] scale]; + _ringAnimatedLayer.frame = CGRectMake(0.0f, 0.0f, arcCenter.x*2, arcCenter.y*2); + _ringAnimatedLayer.fillColor = [UIColor clearColor].CGColor; + _ringAnimatedLayer.strokeColor = self.strokeColor.CGColor; + _ringAnimatedLayer.lineWidth = self.strokeThickness; + _ringAnimatedLayer.lineCap = kCALineCapRound; + _ringAnimatedLayer.lineJoin = kCALineJoinBevel; + _ringAnimatedLayer.path = smoothedPath.CGPath; + } + return _ringAnimatedLayer; +} + +- (void)setFrame:(CGRect)frame { + if(!CGRectEqualToRect(frame, super.frame)) { + [super setFrame:frame]; + + if(self.superview) { + [self layoutAnimatedLayer]; + } + } +} + +- (void)setRadius:(CGFloat)radius { + if(radius != _radius) { + _radius = radius; + + [_ringAnimatedLayer removeFromSuperlayer]; + _ringAnimatedLayer = nil; + + if(self.superview) { + [self layoutAnimatedLayer]; + } + } +} + +- (void)setStrokeColor:(UIColor*)strokeColor { + _strokeColor = strokeColor; + _ringAnimatedLayer.strokeColor = strokeColor.CGColor; +} + +- (void)setStrokeThickness:(CGFloat)strokeThickness { + _strokeThickness = strokeThickness; + _ringAnimatedLayer.lineWidth = _strokeThickness; +} + +- (void)setStrokeEnd:(CGFloat)strokeEnd { + _strokeEnd = strokeEnd; + _ringAnimatedLayer.strokeEnd = _strokeEnd; +} + +- (CGSize)sizeThatFits:(CGSize)size { + return CGSizeMake((self.radius+self.strokeThickness/2+5)*2, (self.radius+self.strokeThickness/2+5)*2); +} + +@end diff --git a/SVProgressHUD/SVProgressHUD-Prefix.pch b/SVProgressHUD/SVProgressHUD-Prefix.pch new file mode 100644 index 0000000..2fff997 --- /dev/null +++ b/SVProgressHUD/SVProgressHUD-Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'SVProgressHUD' target in the 'SVProgressHUD' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png b/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png new file mode 100644 index 0000000000000000000000000000000000000000..0150a03f535237397e5c16fbd4e96f79886889e0 GIT binary patch literal 1845 zcmV-52g>+~P)?Y5Wzn1U?G1701yYx!s6Oq#x>prVMm=a4v)>}Y)( zM3?vNL$ae)iEOPl7DBdDD^1^QJBxIyTg{~)X%@?KSe{&-OFmbOv$%1hO``&7JSne+hQz+Y=u&gJdv0YKtf8M$mfd_$ruiaC`%Lh z+!sSe02o3tP(blSJ{u;IJfr-Mx4DzOH+YT>68UV9NLU#-k0JcYpj!Svkx!8k7rD)F z1(5MoTJ#%~g1~ZI9k3Z#-HG3sRSN91>64lQ#u5ZT7GM%eK}L-DSTO=21G3L?vCoNo z%#19L0l?RHl6U2qaIt?BFw#7{y#1A(!K*={AyJ4+~H`wUl%b3DX=Xg0Ephp3`W4% zbWv^T;o=5}9Y%3ma>`bFkh_5GU*zW|tvU8w}u`HoY-m2)+vX z2F0`3>%B&!Q67R0d*JJ)*ZqYd3QHd-y*Xol>NChP32Fn55%0I@HD8PvLb(I9O8S$_N>fIz$5qV<;JKb0U?)!2~$0aq4?>wP2A4B|UMVC*pQt4sdZ^x}d~t?_=o>b=_8)QmU89@AU07{xjX3POJ55b$Mr24r_X0__p;J;0$Z4VodEs zNBUcTOo(5m@$c#Gq}J+$Pm4qPOTvS=r8@LKc?}Yg4Fu_ z9)oOfU>@$X>ACp$*lZmcb*$=OP3>R(JrVw%+P`&Q>y-&pyfcRPS&(O?u^cn7J~yk4 z4mp|Hv5xfb)c%?Jk&bJvL#$T(h;iivyK8zzW5}8-!bd~QdGtgIQk0|4C`eDlGwB%k zR>3%cJRPPm%%W2O(kaI?10bD|<+2_@o(c*&W2`&EAT#B}88f81Cz4ZOE=W++8N>7N zOlqtm_dGn4oHB$w$q@Ls{R4)0A|28(hUgGW#2`q4U5Fu1u#@wcM=$aL#4s~r0GT$62-Ajm#4+TdHQdv)c-dFP#q!An~*pv4TA)l?q5XQhgAQA|2 z?5TCnAP;~9hYOM+1Rtyb!o{w;2@&N1nRqTR+e(rLQ@A(XwIGj#GJxcaJd=Vf$RnU2 zD5#Er!jL_HD@HxE@v=_ z33jI?l%`uG4s1ce6JtPIR_J_!3Sx`QAVki|35-c71-W_f;AMnD1ViW@3}B47=nFy& zWd|z<#Q^3oz!T9;0VC(E2G_8f5fVy4AgDMK!KOk8tSHTciv30`bmfU~GJKDBc_PE# zksCG`phtoNM34gk00E=-f{YW%OFmC%d6^FqxgHon!EYOq7dlf4k|zSuZxtfAixasn jO$6o~vM95Mta|72R_?8} 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 P00000NkvXXu0mjfxROtc literal 0 HcmV?d00001 diff --git a/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png b/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..d07f3ce67e8076297b61e9b559f955d28938c2bf GIT binary patch literal 8319 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 literal 0 HcmV?d00001 diff --git a/SVProgressHUD/SVProgressHUD.bundle/error@2x.png b/SVProgressHUD/SVProgressHUD.bundle/error@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..aaf6798547863870637b959e44dfea4bc8239ef7 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^79h;Q0wkIGKTicxKRsO>Ln;{GUfUYU%E-X-u=bkq zI?i`Of)|D37=>c%CMA4NnRIX_+rRwHXODlqpVjqdsqp@|zTgzQwOt`Ai>CFRo4ed= zYWtR3-l>yx*PW`0DwSU4+I7d%igU8v@g?UCUl#lPl0jvv6x*Gg<8SnQ@|lw=#abul zco{99bY^ABe9P&3lKoU0gQfSZ*_~72vD@w2;pBHh9)Hunoe4e}bNt`NGp(MplP^7P z*kY-W+vhPiIq3O}E0$`deV$0n=EqhJOzD%({7ji`&E}`%A3ewS-O|vDk8(aKuATO2 l%2~1WiR`@QbK@`7n~J7%Ce;M|$^ixfgQu&X%Q~loCIH_Yh_L_w literal 0 HcmV?d00001 diff --git a/SVProgressHUD/SVProgressHUD.bundle/error@3x.png b/SVProgressHUD/SVProgressHUD.bundle/error@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..c92518f8534a47a1d2e43c760ccf80f0a045dc52 GIT binary patch literal 398 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 +#import + +extern NSString * _Nonnull const SVProgressHUDDidReceiveTouchEventNotification; +extern NSString * _Nonnull const SVProgressHUDDidTouchDownInsideNotification; +extern NSString * _Nonnull const SVProgressHUDWillDisappearNotification; +extern NSString * _Nonnull const SVProgressHUDDidDisappearNotification; +extern NSString * _Nonnull const SVProgressHUDWillAppearNotification; +extern NSString * _Nonnull const SVProgressHUDDidAppearNotification; + +extern NSString * _Nonnull const SVProgressHUDStatusUserInfoKey; + +typedef NS_ENUM(NSInteger, SVProgressHUDStyle) { + SVProgressHUDStyleLight NS_SWIFT_NAME(light), // default style, white HUD with black text, HUD background will be blurred + SVProgressHUDStyleDark NS_SWIFT_NAME(dark), // black HUD and white text, HUD background will be blurred + SVProgressHUDStyleCustom NS_SWIFT_NAME(custom) // uses the fore- and background color properties +}; + +typedef NS_ENUM(NSUInteger, SVProgressHUDMaskType) { + SVProgressHUDMaskTypeNone NS_SWIFT_NAME(none) = 1, // default mask type, allow user interactions while HUD is displayed + SVProgressHUDMaskTypeClear NS_SWIFT_NAME(clear), // don't allow user interactions with background objects + SVProgressHUDMaskTypeBlack NS_SWIFT_NAME(black), // don't allow user interactions with background objects and dim the UI in the back of the HUD (as seen in iOS 7 and above) + SVProgressHUDMaskTypeGradient NS_SWIFT_NAME(gradient), // don't allow user interactions with background objects and dim the UI with a a-la UIAlertView background gradient (as seen in iOS 6) + SVProgressHUDMaskTypeCustom NS_SWIFT_NAME(custom) // don't allow user interactions with background objects and dim the UI in the back of the HUD with a custom color +}; + +typedef NS_ENUM(NSUInteger, SVProgressHUDAnimationType) { + SVProgressHUDAnimationTypeFlat NS_SWIFT_NAME(flat), // default animation type, custom flat animation (indefinite animated ring) + SVProgressHUDAnimationTypeNative NS_SWIFT_NAME(native) // iOS native UIActivityIndicatorView +}; + +typedef void (^SVProgressHUDShowCompletion)(void); +typedef void (^SVProgressHUDDismissCompletion)(void); + +@interface SVProgressHUD : UIView + +#pragma mark - Customization + +@property (assign, nonatomic) SVProgressHUDStyle defaultStyle UI_APPEARANCE_SELECTOR; // default is SVProgressHUDStyleLight +@property (assign, nonatomic) SVProgressHUDMaskType defaultMaskType UI_APPEARANCE_SELECTOR; // default is SVProgressHUDMaskTypeNone +@property (assign, nonatomic) SVProgressHUDAnimationType defaultAnimationType UI_APPEARANCE_SELECTOR; // default is SVProgressHUDAnimationTypeFlat +@property (strong, nonatomic, nullable) UIView *containerView; // if nil then use default window level +@property (assign, nonatomic) CGSize minimumSize UI_APPEARANCE_SELECTOR; // default is CGSizeZero, can be used to avoid resizing for a larger message +@property (assign, nonatomic) CGFloat ringThickness UI_APPEARANCE_SELECTOR; // default is 2 pt +@property (assign, nonatomic) CGFloat ringRadius UI_APPEARANCE_SELECTOR; // default is 18 pt +@property (assign, nonatomic) CGFloat ringNoTextRadius UI_APPEARANCE_SELECTOR; // default is 24 pt +@property (assign, nonatomic) CGFloat cornerRadius UI_APPEARANCE_SELECTOR; // default is 14 pt +@property (strong, nonatomic, nonnull) UIFont *font UI_APPEARANCE_SELECTOR; // default is [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline] +@property (strong, nonatomic, nonnull) UIColor *backgroundColor UI_APPEARANCE_SELECTOR; // default is [UIColor whiteColor] +@property (strong, nonatomic, nonnull) UIColor *foregroundColor UI_APPEARANCE_SELECTOR; // default is [UIColor blackColor] +@property (strong, nonatomic, nullable) UIColor *foregroundImageColor UI_APPEARANCE_SELECTOR; // default is the same as foregroundColor +@property (strong, nonatomic, nonnull) UIColor *backgroundLayerColor UI_APPEARANCE_SELECTOR; // default is [UIColor colorWithWhite:0 alpha:0.4] +@property (assign, nonatomic) CGSize imageViewSize UI_APPEARANCE_SELECTOR; // default is 28x28 pt +@property (assign, nonatomic) BOOL shouldTintImages UI_APPEARANCE_SELECTOR; // default is YES +@property (strong, nonatomic, nonnull) UIImage *infoImage UI_APPEARANCE_SELECTOR; // default is the bundled info image provided by Freepik +@property (strong, nonatomic, nonnull) UIImage *successImage UI_APPEARANCE_SELECTOR; // default is the bundled success image provided by Freepik +@property (strong, nonatomic, nonnull) UIImage *errorImage UI_APPEARANCE_SELECTOR; // default is the bundled error image provided by Freepik +@property (strong, nonatomic, nonnull) UIView *viewForExtension UI_APPEARANCE_SELECTOR; // default is nil, only used if #define SV_APP_EXTENSIONS is set +@property (assign, nonatomic) NSTimeInterval graceTimeInterval; // default is 0 seconds +@property (assign, nonatomic) NSTimeInterval minimumDismissTimeInterval; // default is 5.0 seconds +@property (assign, nonatomic) NSTimeInterval maximumDismissTimeInterval; // default is CGFLOAT_MAX + +@property (assign, nonatomic) UIOffset offsetFromCenter UI_APPEARANCE_SELECTOR; // default is 0, 0 + +@property (assign, nonatomic) NSTimeInterval fadeInAnimationDuration UI_APPEARANCE_SELECTOR; // default is 0.15 +@property (assign, nonatomic) NSTimeInterval fadeOutAnimationDuration UI_APPEARANCE_SELECTOR; // default is 0.15 + +@property (assign, nonatomic) UIWindowLevel maxSupportedWindowLevel; // default is UIWindowLevelNormal + +@property (assign, nonatomic) BOOL hapticsEnabled; // default is NO +@property (assign, nonatomic) BOOL motionEffectEnabled; // default is YES + ++ (void)setDefaultStyle:(SVProgressHUDStyle)style; // default is SVProgressHUDStyleLight ++ (void)setDefaultMaskType:(SVProgressHUDMaskType)maskType; // default is SVProgressHUDMaskTypeNone ++ (void)setDefaultAnimationType:(SVProgressHUDAnimationType)type; // default is SVProgressHUDAnimationTypeFlat ++ (void)setContainerView:(nullable UIView*)containerView; // default is window level ++ (void)setMinimumSize:(CGSize)minimumSize; // default is CGSizeZero, can be used to avoid resizing for a larger message ++ (void)setRingThickness:(CGFloat)ringThickness; // default is 2 pt ++ (void)setRingRadius:(CGFloat)radius; // default is 18 pt ++ (void)setRingNoTextRadius:(CGFloat)radius; // default is 24 pt ++ (void)setCornerRadius:(CGFloat)cornerRadius; // default is 14 pt ++ (void)setBorderColor:(nonnull UIColor*)color; // default is nil ++ (void)setBorderWidth:(CGFloat)width; // default is 0 ++ (void)setFont:(nonnull UIFont*)font; // default is [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline] ++ (void)setForegroundColor:(nonnull UIColor*)color; // default is [UIColor blackColor], only used for SVProgressHUDStyleCustom ++ (void)setForegroundImageColor:(nullable UIColor*)color; // default is nil == foregroundColor, only used for SVProgressHUDStyleCustom ++ (void)setBackgroundColor:(nonnull UIColor*)color; // default is [UIColor whiteColor], only used for SVProgressHUDStyleCustom ++ (void)setHudViewCustomBlurEffect:(nullable UIBlurEffect*)blurEffect; // default is nil, only used for SVProgressHUDStyleCustom, can be combined with backgroundColor ++ (void)setBackgroundLayerColor:(nonnull UIColor*)color; // default is [UIColor colorWithWhite:0 alpha:0.5], only used for SVProgressHUDMaskTypeCustom ++ (void)setImageViewSize:(CGSize)size; // default is 28x28 pt ++ (void)setShouldTintImages:(BOOL)shouldTintImages; // default is YES ++ (void)setInfoImage:(nonnull UIImage*)image; // default is the bundled info image provided by Freepik ++ (void)setSuccessImage:(nonnull UIImage*)image; // default is the bundled success image provided by Freepik ++ (void)setErrorImage:(nonnull UIImage*)image; // default is the bundled error image provided by Freepik ++ (void)setViewForExtension:(nonnull UIView*)view; // default is nil, only used if #define SV_APP_EXTENSIONS is set ++ (void)setGraceTimeInterval:(NSTimeInterval)interval; // default is 0 seconds ++ (void)setMinimumDismissTimeInterval:(NSTimeInterval)interval; // default is 5.0 seconds ++ (void)setMaximumDismissTimeInterval:(NSTimeInterval)interval; // default is infinite ++ (void)setFadeInAnimationDuration:(NSTimeInterval)duration; // default is 0.15 seconds ++ (void)setFadeOutAnimationDuration:(NSTimeInterval)duration; // default is 0.15 seconds ++ (void)setMaxSupportedWindowLevel:(UIWindowLevel)windowLevel; // default is UIWindowLevelNormal ++ (void)setHapticsEnabled:(BOOL)hapticsEnabled; // default is NO ++ (void)setMotionEffectEnabled:(BOOL)motionEffectEnabled; // default is YES + +#pragma mark - Show Methods + ++ (void)show; ++ (void)showWithMaskType:(SVProgressHUDMaskType)maskType __attribute__((deprecated("Use show and setDefaultMaskType: instead."))); ++ (void)showWithStatus:(nullable NSString*)status; ++ (void)showWithStatus:(nullable NSString*)status maskType:(SVProgressHUDMaskType)maskType __attribute__((deprecated("Use showWithStatus: and setDefaultMaskType: instead."))); + ++ (void)showProgress:(float)progress; ++ (void)showProgress:(float)progress maskType:(SVProgressHUDMaskType)maskType __attribute__((deprecated("Use showProgress: and setDefaultMaskType: instead."))); ++ (void)showProgress:(float)progress status:(nullable NSString*)status; ++ (void)showProgress:(float)progress status:(nullable NSString*)status maskType:(SVProgressHUDMaskType)maskType __attribute__((deprecated("Use showProgress:status: and setDefaultMaskType: instead."))); + ++ (void)setStatus:(nullable NSString*)status; // change the HUD loading status while it's showing + +// stops the activity indicator, shows a glyph + status, and dismisses the HUD a little bit later ++ (void)showInfoWithStatus:(nullable NSString*)status; ++ (void)showInfoWithStatus:(nullable NSString*)status maskType:(SVProgressHUDMaskType)maskType __attribute__((deprecated("Use showInfoWithStatus: and setDefaultMaskType: instead."))); ++ (void)showSuccessWithStatus:(nullable NSString*)status; ++ (void)showSuccessWithStatus:(nullable NSString*)status maskType:(SVProgressHUDMaskType)maskType __attribute__((deprecated("Use showSuccessWithStatus: and setDefaultMaskType: instead."))); ++ (void)showErrorWithStatus:(nullable NSString*)status; ++ (void)showErrorWithStatus:(nullable NSString*)status maskType:(SVProgressHUDMaskType)maskType __attribute__((deprecated("Use showErrorWithStatus: and setDefaultMaskType: instead."))); + +// shows a image + status, use white PNGs with the imageViewSize (default is 28x28 pt) ++ (void)showImage:(nonnull UIImage*)image status:(nullable NSString*)status; ++ (void)showImage:(nonnull UIImage*)image status:(nullable NSString*)status maskType:(SVProgressHUDMaskType)maskType __attribute__((deprecated("Use showImage:status: and setDefaultMaskType: instead."))); + ++ (void)setOffsetFromCenter:(UIOffset)offset; ++ (void)resetOffsetFromCenter; + ++ (void)popActivity; // decrease activity count, if activity count == 0 the HUD is dismissed ++ (void)dismiss; ++ (void)dismissWithCompletion:(nullable SVProgressHUDDismissCompletion)completion; ++ (void)dismissWithDelay:(NSTimeInterval)delay; ++ (void)dismissWithDelay:(NSTimeInterval)delay completion:(nullable SVProgressHUDDismissCompletion)completion; + ++ (BOOL)isVisible; + ++ (NSTimeInterval)displayDurationForString:(nullable NSString*)string; + +@end + diff --git a/SVProgressHUD/SVProgressHUD.m b/SVProgressHUD/SVProgressHUD.m new file mode 100644 index 0000000..3b72759 --- /dev/null +++ b/SVProgressHUD/SVProgressHUD.m @@ -0,0 +1,1546 @@ +// +// SVProgressHUD.h +// SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD +// +// Copyright (c) 2011-2019 Sam Vermette and contributors. All rights reserved. +// + +#if !__has_feature(objc_arc) +#error SVProgressHUD is ARC only. Either turn on ARC for the project or use -fobjc-arc flag +#endif + +#import "SVProgressHUD.h" +#import "SVIndefiniteAnimatedView.h" +#import "SVProgressAnimatedView.h" +#import "SVRadialGradientLayer.h" + +NSString * const SVProgressHUDDidReceiveTouchEventNotification = @"SVProgressHUDDidReceiveTouchEventNotification"; +NSString * const SVProgressHUDDidTouchDownInsideNotification = @"SVProgressHUDDidTouchDownInsideNotification"; +NSString * const SVProgressHUDWillDisappearNotification = @"SVProgressHUDWillDisappearNotification"; +NSString * const SVProgressHUDDidDisappearNotification = @"SVProgressHUDDidDisappearNotification"; +NSString * const SVProgressHUDWillAppearNotification = @"SVProgressHUDWillAppearNotification"; +NSString * const SVProgressHUDDidAppearNotification = @"SVProgressHUDDidAppearNotification"; + +NSString * const SVProgressHUDStatusUserInfoKey = @"SVProgressHUDStatusUserInfoKey"; + +static const CGFloat SVProgressHUDParallaxDepthPoints = 10.0f; +static const CGFloat SVProgressHUDUndefinedProgress = -1; +static const CGFloat SVProgressHUDDefaultAnimationDuration = 0.15f; +static const CGFloat SVProgressHUDVerticalSpacing = 12.0f; +static const CGFloat SVProgressHUDHorizontalSpacing = 12.0f; +static const CGFloat SVProgressHUDLabelSpacing = 8.0f; + + +@interface SVProgressHUD () + +@property (nonatomic, strong) NSTimer *graceTimer; +@property (nonatomic, strong) NSTimer *fadeOutTimer; + +@property (nonatomic, strong) UIControl *controlView; +@property (nonatomic, strong) UIView *backgroundView; +@property (nonatomic, strong) SVRadialGradientLayer *backgroundRadialGradientLayer; +@property (nonatomic, strong) UIVisualEffectView *hudView; +@property (nonatomic, strong) UIBlurEffect *hudViewCustomBlurEffect; +@property (nonatomic, strong) UILabel *statusLabel; +@property (nonatomic, strong) UIImageView *imageView; + +@property (nonatomic, strong) UIView *indefiniteAnimatedView; +@property (nonatomic, strong) SVProgressAnimatedView *ringView; +@property (nonatomic, strong) SVProgressAnimatedView *backgroundRingView; + +@property (nonatomic, readwrite) CGFloat progress; +@property (nonatomic, readwrite) NSUInteger activityCount; + +@property (nonatomic, readonly) CGFloat visibleKeyboardHeight; +@property (nonatomic, readonly) UIWindow *frontWindow; + +#if TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 +@property (nonatomic, strong) UINotificationFeedbackGenerator *hapticGenerator NS_AVAILABLE_IOS(10_0); +#endif + +@end + +@implementation SVProgressHUD { + BOOL _isInitializing; +} + ++ (SVProgressHUD*)sharedView { + static dispatch_once_t once; + + static SVProgressHUD *sharedView; +#if !defined(SV_APP_EXTENSIONS) + dispatch_once(&once, ^{ sharedView = [[self alloc] initWithFrame:[[[UIApplication sharedApplication] delegate] window].bounds]; }); +#else + dispatch_once(&once, ^{ sharedView = [[self alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; }); +#endif + return sharedView; +} + + +#pragma mark - Setters + ++ (void)setStatus:(NSString*)status { + [[self sharedView] setStatus:status]; +} + ++ (void)setDefaultStyle:(SVProgressHUDStyle)style { + [self sharedView].defaultStyle = style; +} + ++ (void)setDefaultMaskType:(SVProgressHUDMaskType)maskType { + [self sharedView].defaultMaskType = maskType; +} + ++ (void)setDefaultAnimationType:(SVProgressHUDAnimationType)type { + [self sharedView].defaultAnimationType = type; +} + ++ (void)setContainerView:(nullable UIView*)containerView { + [self sharedView].containerView = containerView; +} + ++ (void)setMinimumSize:(CGSize)minimumSize { + [self sharedView].minimumSize = minimumSize; +} + ++ (void)setRingThickness:(CGFloat)ringThickness { + [self sharedView].ringThickness = ringThickness; +} + ++ (void)setRingRadius:(CGFloat)radius { + [self sharedView].ringRadius = radius; +} + ++ (void)setRingNoTextRadius:(CGFloat)radius { + [self sharedView].ringNoTextRadius = radius; +} + ++ (void)setCornerRadius:(CGFloat)cornerRadius { + [self sharedView].cornerRadius = cornerRadius; +} + ++ (void)setBorderColor:(nonnull UIColor*)color { + [self sharedView].hudView.layer.borderColor = color.CGColor; +} + ++ (void)setBorderWidth:(CGFloat)width { + [self sharedView].hudView.layer.borderWidth = width; +} + ++ (void)setFont:(UIFont*)font { + [self sharedView].font = font; +} + ++ (void)setForegroundColor:(UIColor*)color { + [self sharedView].foregroundColor = color; + [self setDefaultStyle:SVProgressHUDStyleCustom]; +} + ++ (void)setForegroundImageColor:(UIColor *)color { + [self sharedView].foregroundImageColor = color; + [self setDefaultStyle:SVProgressHUDStyleCustom]; +} + ++ (void)setBackgroundColor:(UIColor*)color { + [self sharedView].backgroundColor = color; + [self setDefaultStyle:SVProgressHUDStyleCustom]; +} + ++ (void)setHudViewCustomBlurEffect:(UIBlurEffect*)blurEffect { + [self sharedView].hudViewCustomBlurEffect = blurEffect; + [self setDefaultStyle:SVProgressHUDStyleCustom]; +} + ++ (void)setBackgroundLayerColor:(UIColor*)color { + [self sharedView].backgroundLayerColor = color; +} + ++ (void)setImageViewSize:(CGSize)size { + [self sharedView].imageViewSize = size; +} + ++ (void)setShouldTintImages:(BOOL)shouldTintImages { + [self sharedView].shouldTintImages = shouldTintImages; +} + ++ (void)setInfoImage:(UIImage*)image { + [self sharedView].infoImage = image; +} + ++ (void)setSuccessImage:(UIImage*)image { + [self sharedView].successImage = image; +} + ++ (void)setErrorImage:(UIImage*)image { + [self sharedView].errorImage = image; +} + ++ (void)setViewForExtension:(UIView*)view { + [self sharedView].viewForExtension = view; +} + ++ (void)setGraceTimeInterval:(NSTimeInterval)interval { + [self sharedView].graceTimeInterval = interval; +} + ++ (void)setMinimumDismissTimeInterval:(NSTimeInterval)interval { + [self sharedView].minimumDismissTimeInterval = interval; +} + ++ (void)setMaximumDismissTimeInterval:(NSTimeInterval)interval { + [self sharedView].maximumDismissTimeInterval = interval; +} + ++ (void)setFadeInAnimationDuration:(NSTimeInterval)duration { + [self sharedView].fadeInAnimationDuration = duration; +} + ++ (void)setFadeOutAnimationDuration:(NSTimeInterval)duration { + [self sharedView].fadeOutAnimationDuration = duration; +} + ++ (void)setMaxSupportedWindowLevel:(UIWindowLevel)windowLevel { + [self sharedView].maxSupportedWindowLevel = windowLevel; +} + ++ (void)setHapticsEnabled:(BOOL)hapticsEnabled { + [self sharedView].hapticsEnabled = hapticsEnabled; +} + ++ (void)setMotionEffectEnabled:(BOOL)motionEffectEnabled { + [self sharedView].motionEffectEnabled = motionEffectEnabled; +} + +#pragma mark - Show Methods + ++ (void)show { + [self showWithStatus:nil]; +} + ++ (void)showWithMaskType:(SVProgressHUDMaskType)maskType { + SVProgressHUDMaskType existingMaskType = [self sharedView].defaultMaskType; + [self setDefaultMaskType:maskType]; + [self show]; + [self setDefaultMaskType:existingMaskType]; +} + ++ (void)showWithStatus:(NSString*)status { + [self showProgress:SVProgressHUDUndefinedProgress status:status]; +} + ++ (void)showWithStatus:(NSString*)status maskType:(SVProgressHUDMaskType)maskType { + SVProgressHUDMaskType existingMaskType = [self sharedView].defaultMaskType; + [self setDefaultMaskType:maskType]; + [self showWithStatus:status]; + [self setDefaultMaskType:existingMaskType]; +} + ++ (void)showProgress:(float)progress { + [self showProgress:progress status:nil]; +} + ++ (void)showProgress:(float)progress maskType:(SVProgressHUDMaskType)maskType { + SVProgressHUDMaskType existingMaskType = [self sharedView].defaultMaskType; + [self setDefaultMaskType:maskType]; + [self showProgress:progress]; + [self setDefaultMaskType:existingMaskType]; +} + ++ (void)showProgress:(float)progress status:(NSString*)status { + [[self sharedView] showProgress:progress status:status]; +} + ++ (void)showProgress:(float)progress status:(NSString*)status maskType:(SVProgressHUDMaskType)maskType { + SVProgressHUDMaskType existingMaskType = [self sharedView].defaultMaskType; + [self setDefaultMaskType:maskType]; + [self showProgress:progress status:status]; + [self setDefaultMaskType:existingMaskType]; +} + + +#pragma mark - Show, then automatically dismiss methods + ++ (void)showInfoWithStatus:(NSString*)status { + [self showImage:[self sharedView].infoImage status:status]; + +#if TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 + if (@available(iOS 10.0, *)) { + dispatch_async(dispatch_get_main_queue(), ^{ + [[self sharedView].hapticGenerator notificationOccurred:UINotificationFeedbackTypeWarning]; + }); + } +#endif +} + ++ (void)showInfoWithStatus:(NSString*)status maskType:(SVProgressHUDMaskType)maskType { + SVProgressHUDMaskType existingMaskType = [self sharedView].defaultMaskType; + [self setDefaultMaskType:maskType]; + [self showInfoWithStatus:status]; + [self setDefaultMaskType:existingMaskType]; +} + ++ (void)showSuccessWithStatus:(NSString*)status { + [self showImage:[self sharedView].successImage status:status]; + +#if TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 + if (@available(iOS 10, *)) { + dispatch_async(dispatch_get_main_queue(), ^{ + [[self sharedView].hapticGenerator notificationOccurred:UINotificationFeedbackTypeSuccess]; + }); + } +#endif +} + ++ (void)showSuccessWithStatus:(NSString*)status maskType:(SVProgressHUDMaskType)maskType { + SVProgressHUDMaskType existingMaskType = [self sharedView].defaultMaskType; + [self setDefaultMaskType:maskType]; + [self showSuccessWithStatus:status]; + [self setDefaultMaskType:existingMaskType]; + +#if TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 + if (@available(iOS 10.0, *)) { + dispatch_async(dispatch_get_main_queue(), ^{ + [[self sharedView].hapticGenerator notificationOccurred:UINotificationFeedbackTypeSuccess]; + }); + } +#endif +} + ++ (void)showErrorWithStatus:(NSString*)status { + [self showImage:[self sharedView].errorImage status:status]; + +#if TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 + if (@available(iOS 10.0, *)) { + dispatch_async(dispatch_get_main_queue(), ^{ + [[self sharedView].hapticGenerator notificationOccurred:UINotificationFeedbackTypeError]; + }); + } +#endif +} + ++ (void)showErrorWithStatus:(NSString*)status maskType:(SVProgressHUDMaskType)maskType { + SVProgressHUDMaskType existingMaskType = [self sharedView].defaultMaskType; + [self setDefaultMaskType:maskType]; + [self showErrorWithStatus:status]; + [self setDefaultMaskType:existingMaskType]; + +#if TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 + if (@available(iOS 10.0, *)) { + dispatch_async(dispatch_get_main_queue(), ^{ + [[self sharedView].hapticGenerator notificationOccurred:UINotificationFeedbackTypeError]; + }); + } +#endif +} + ++ (void)showImage:(UIImage*)image status:(NSString*)status { + NSTimeInterval displayInterval = [self displayDurationForString:status]; + [[self sharedView] showImage:image status:status duration:displayInterval]; +} + ++ (void)showImage:(UIImage*)image status:(NSString*)status maskType:(SVProgressHUDMaskType)maskType { + SVProgressHUDMaskType existingMaskType = [self sharedView].defaultMaskType; + [self setDefaultMaskType:maskType]; + [self showImage:image status:status]; + [self setDefaultMaskType:existingMaskType]; +} + + +#pragma mark - Dismiss Methods + ++ (void)popActivity { + if([self sharedView].activityCount > 0) { + [self sharedView].activityCount--; + } + if([self sharedView].activityCount == 0) { + [[self sharedView] dismiss]; + } +} + ++ (void)dismiss { + [self dismissWithDelay:0.0 completion:nil]; +} + ++ (void)dismissWithCompletion:(SVProgressHUDDismissCompletion)completion { + [self dismissWithDelay:0.0 completion:completion]; +} + ++ (void)dismissWithDelay:(NSTimeInterval)delay { + [self dismissWithDelay:delay completion:nil]; +} + ++ (void)dismissWithDelay:(NSTimeInterval)delay completion:(SVProgressHUDDismissCompletion)completion { + [[self sharedView] dismissWithDelay:delay completion:completion]; +} + + +#pragma mark - Offset + ++ (void)setOffsetFromCenter:(UIOffset)offset { + [self sharedView].offsetFromCenter = offset; +} + ++ (void)resetOffsetFromCenter { + [self setOffsetFromCenter:UIOffsetZero]; +} + + +#pragma mark - Instance Methods + +- (instancetype)initWithFrame:(CGRect)frame { + if((self = [super initWithFrame:frame])) { + _isInitializing = YES; + + self.userInteractionEnabled = NO; + self.activityCount = 0; + + self.backgroundView.alpha = 0.0f; + self.imageView.alpha = 0.0f; + self.statusLabel.alpha = 0.0f; + self.indefiniteAnimatedView.alpha = 0.0f; + self.ringView.alpha = self.backgroundRingView.alpha = 0.0f; + + + _backgroundColor = [UIColor whiteColor]; + _foregroundColor = [UIColor blackColor]; + _backgroundLayerColor = [UIColor colorWithWhite:0 alpha:0.4]; + + // Set default values + _defaultMaskType = SVProgressHUDMaskTypeNone; + _defaultStyle = SVProgressHUDStyleLight; + _defaultAnimationType = SVProgressHUDAnimationTypeFlat; + _minimumSize = CGSizeZero; + _font = [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline]; + + _imageViewSize = CGSizeMake(28.0f, 28.0f); + _shouldTintImages = YES; + + NSBundle *bundle = [NSBundle bundleForClass:[SVProgressHUD class]]; + NSURL *url = [bundle URLForResource:@"SVProgressHUD" withExtension:@"bundle"]; + NSBundle *imageBundle = [NSBundle bundleWithURL:url]; + + _infoImage = [UIImage imageWithContentsOfFile:[imageBundle pathForResource:@"info" ofType:@"png"]]; + _successImage = [UIImage imageWithContentsOfFile:[imageBundle pathForResource:@"success" ofType:@"png"]]; + _errorImage = [UIImage imageWithContentsOfFile:[imageBundle pathForResource:@"error" ofType:@"png"]]; + + _ringThickness = 2.0f; + _ringRadius = 18.0f; + _ringNoTextRadius = 24.0f; + + _cornerRadius = 14.0f; + + _graceTimeInterval = 0.0f; + _minimumDismissTimeInterval = 5.0; + _maximumDismissTimeInterval = CGFLOAT_MAX; + + _fadeInAnimationDuration = SVProgressHUDDefaultAnimationDuration; + _fadeOutAnimationDuration = SVProgressHUDDefaultAnimationDuration; + + _maxSupportedWindowLevel = UIWindowLevelNormal; + + _hapticsEnabled = NO; + _motionEffectEnabled = YES; + + // Accessibility support + self.accessibilityIdentifier = @"SVProgressHUD"; + self.isAccessibilityElement = YES; + + _isInitializing = NO; + } + return self; +} + +- (void)updateHUDFrame { + // Check if an image or progress ring is displayed + BOOL imageUsed = (self.imageView.image) && !(self.imageView.hidden); + BOOL progressUsed = self.imageView.hidden; + + // Calculate size of string + CGRect labelRect = CGRectZero; + CGFloat labelHeight = 0.0f; + CGFloat labelWidth = 0.0f; + + if(self.statusLabel.text) { + CGSize constraintSize = CGSizeMake(200.0f, 300.0f); + labelRect = [self.statusLabel.text boundingRectWithSize:constraintSize + options:(NSStringDrawingOptions)(NSStringDrawingUsesFontLeading | NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin) + attributes:@{NSFontAttributeName: self.statusLabel.font} + context:NULL]; + labelHeight = ceilf(CGRectGetHeight(labelRect)); + labelWidth = ceilf(CGRectGetWidth(labelRect)); + } + + // Calculate hud size based on content + // For the beginning use default values, these + // might get update if string is too large etc. + CGFloat hudWidth; + CGFloat hudHeight; + + CGFloat contentWidth = 0.0f; + CGFloat contentHeight = 0.0f; + + if(imageUsed || progressUsed) { + contentWidth = CGRectGetWidth(imageUsed ? self.imageView.frame : self.indefiniteAnimatedView.frame); + contentHeight = CGRectGetHeight(imageUsed ? self.imageView.frame : self.indefiniteAnimatedView.frame); + } + + // |-spacing-content-spacing-| + hudWidth = SVProgressHUDHorizontalSpacing + MAX(labelWidth, contentWidth) + SVProgressHUDHorizontalSpacing; + + // |-spacing-content-(labelSpacing-label-)spacing-| + hudHeight = SVProgressHUDVerticalSpacing + labelHeight + contentHeight + SVProgressHUDVerticalSpacing; + if(self.statusLabel.text && (imageUsed || progressUsed)){ + // Add spacing if both content and label are used + hudHeight += SVProgressHUDLabelSpacing; + } + + // Update values on subviews + self.hudView.bounds = CGRectMake(0.0f, 0.0f, MAX(self.minimumSize.width, hudWidth), MAX(self.minimumSize.height, hudHeight)); + + // Animate value update + [CATransaction begin]; + [CATransaction setDisableActions:YES]; + + // Spinner and image view + CGFloat centerY; + if(self.statusLabel.text) { + CGFloat yOffset = MAX(SVProgressHUDVerticalSpacing, (self.minimumSize.height - contentHeight - SVProgressHUDLabelSpacing - labelHeight) / 2.0f); + centerY = yOffset + contentHeight / 2.0f; + } else { + centerY = CGRectGetMidY(self.hudView.bounds); + } + self.indefiniteAnimatedView.center = CGPointMake(CGRectGetMidX(self.hudView.bounds), centerY); + if(self.progress != SVProgressHUDUndefinedProgress) { + self.backgroundRingView.center = self.ringView.center = CGPointMake(CGRectGetMidX(self.hudView.bounds), centerY); + } + self.imageView.center = CGPointMake(CGRectGetMidX(self.hudView.bounds), centerY); + + // Label + if(imageUsed || progressUsed) { + centerY = CGRectGetMaxY(imageUsed ? self.imageView.frame : self.indefiniteAnimatedView.frame) + SVProgressHUDLabelSpacing + labelHeight / 2.0f; + } else { + centerY = CGRectGetMidY(self.hudView.bounds); + } + self.statusLabel.frame = labelRect; + self.statusLabel.center = CGPointMake(CGRectGetMidX(self.hudView.bounds), centerY); + + [CATransaction commit]; +} + +#if TARGET_OS_IOS +- (void)updateMotionEffectForOrientation:(UIInterfaceOrientation)orientation { + UIInterpolatingMotionEffectType xMotionEffectType = UIInterfaceOrientationIsPortrait(orientation) ? UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis : UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis; + UIInterpolatingMotionEffectType yMotionEffectType = UIInterfaceOrientationIsPortrait(orientation) ? UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis : UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis; + [self updateMotionEffectForXMotionEffectType:xMotionEffectType yMotionEffectType:yMotionEffectType]; +} +#endif + +- (void)updateMotionEffectForXMotionEffectType:(UIInterpolatingMotionEffectType)xMotionEffectType yMotionEffectType:(UIInterpolatingMotionEffectType)yMotionEffectType { + UIInterpolatingMotionEffect *effectX = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"center.x" type:xMotionEffectType]; + effectX.minimumRelativeValue = @(-SVProgressHUDParallaxDepthPoints); + effectX.maximumRelativeValue = @(SVProgressHUDParallaxDepthPoints); + + UIInterpolatingMotionEffect *effectY = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"center.y" type:yMotionEffectType]; + effectY.minimumRelativeValue = @(-SVProgressHUDParallaxDepthPoints); + effectY.maximumRelativeValue = @(SVProgressHUDParallaxDepthPoints); + + UIMotionEffectGroup *effectGroup = [UIMotionEffectGroup new]; + effectGroup.motionEffects = @[effectX, effectY]; + + // Clear old motion effect, then add new motion effects + self.hudView.motionEffects = @[]; + [self.hudView addMotionEffect:effectGroup]; +} + +- (void)updateViewHierarchy { + // Add the overlay to the application window if necessary + if(!self.controlView.superview) { + if(self.containerView){ + [self.containerView addSubview:self.controlView]; + } else { +#if !defined(SV_APP_EXTENSIONS) + [self.frontWindow addSubview:self.controlView]; +#else + // If SVProgressHUD is used inside an app extension add it to the given view + if(self.viewForExtension) { + [self.viewForExtension addSubview:self.controlView]; + } +#endif + } + } else { + // The HUD is already on screen, but maybe not in front. Therefore + // ensure that overlay will be on top of rootViewController (which may + // be changed during runtime). + [self.controlView.superview bringSubviewToFront:self.controlView]; + } + + // Add self to the overlay view + if(!self.superview) { + [self.controlView addSubview:self]; + } +} + +- (void)setStatus:(NSString*)status { + self.statusLabel.text = status; + self.statusLabel.hidden = status.length == 0; + [self updateHUDFrame]; +} + +- (void)setGraceTimer:(NSTimer*)timer { + if(_graceTimer) { + [_graceTimer invalidate]; + _graceTimer = nil; + } + if(timer) { + _graceTimer = timer; + } +} + +- (void)setFadeOutTimer:(NSTimer*)timer { + if(_fadeOutTimer) { + [_fadeOutTimer invalidate]; + _fadeOutTimer = nil; + } + if(timer) { + _fadeOutTimer = timer; + } +} + + +#pragma mark - Notifications and their handling + +- (void)registerNotifications { +#if TARGET_OS_IOS + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(positionHUD:) + name:UIApplicationDidChangeStatusBarOrientationNotification + object:nil]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(positionHUD:) + name:UIKeyboardWillHideNotification + object:nil]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(positionHUD:) + name:UIKeyboardDidHideNotification + object:nil]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(positionHUD:) + name:UIKeyboardWillShowNotification + object:nil]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(positionHUD:) + name:UIKeyboardDidShowNotification + object:nil]; +#endif + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(positionHUD:) + name:UIApplicationDidBecomeActiveNotification + object:nil]; +} + +- (NSDictionary*)notificationUserInfo { + return (self.statusLabel.text ? @{SVProgressHUDStatusUserInfoKey : self.statusLabel.text} : nil); +} + +- (void)positionHUD:(NSNotification*)notification { + CGFloat keyboardHeight = 0.0f; + double animationDuration = 0.0; + +#if !defined(SV_APP_EXTENSIONS) && TARGET_OS_IOS + self.frame = [[[UIApplication sharedApplication] delegate] window].bounds; + UIInterfaceOrientation orientation = UIApplication.sharedApplication.statusBarOrientation; +#elif !defined(SV_APP_EXTENSIONS) && !TARGET_OS_IOS + self.frame= [UIApplication sharedApplication].keyWindow.bounds; +#else + if (self.viewForExtension) { + self.frame = self.viewForExtension.frame; + } else { + self.frame = UIScreen.mainScreen.bounds; + } +#if TARGET_OS_IOS + UIInterfaceOrientation orientation = CGRectGetWidth(self.frame) > CGRectGetHeight(self.frame) ? UIInterfaceOrientationLandscapeLeft : UIInterfaceOrientationPortrait; +#endif +#endif + +#if TARGET_OS_IOS + // Get keyboardHeight in regard to current state + if(notification) { + NSDictionary* keyboardInfo = [notification userInfo]; + CGRect keyboardFrame = [keyboardInfo[UIKeyboardFrameBeginUserInfoKey] CGRectValue]; + animationDuration = [keyboardInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]; + + if(notification.name == UIKeyboardWillShowNotification || notification.name == UIKeyboardDidShowNotification) { + keyboardHeight = CGRectGetWidth(keyboardFrame); + + if(UIInterfaceOrientationIsPortrait(orientation)) { + keyboardHeight = CGRectGetHeight(keyboardFrame); + } + } + } else { + keyboardHeight = self.visibleKeyboardHeight; + } +#endif + + // Get the currently active frame of the display (depends on orientation) + CGRect orientationFrame = self.bounds; + +#if !defined(SV_APP_EXTENSIONS) && TARGET_OS_IOS + CGRect statusBarFrame = UIApplication.sharedApplication.statusBarFrame; +#else + CGRect statusBarFrame = CGRectZero; +#endif + + if (_motionEffectEnabled) { +#if TARGET_OS_IOS + // Update the motion effects in regard to orientation + [self updateMotionEffectForOrientation:orientation]; +#else + [self updateMotionEffectForXMotionEffectType:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis yMotionEffectType:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis]; +#endif + } + + // Calculate available height for display + CGFloat activeHeight = CGRectGetHeight(orientationFrame); + if(keyboardHeight > 0) { + activeHeight += CGRectGetHeight(statusBarFrame) * 2; + } + activeHeight -= keyboardHeight; + + CGFloat posX = CGRectGetMidX(orientationFrame); + CGFloat posY = floorf(activeHeight*0.45f); + + CGFloat rotateAngle = 0.0; + CGPoint newCenter = CGPointMake(posX, posY); + + if(notification) { + // Animate update if notification was present + [UIView animateWithDuration:animationDuration + delay:0 + options:(UIViewAnimationOptions) (UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionBeginFromCurrentState) + animations:^{ + [self moveToPoint:newCenter rotateAngle:rotateAngle]; + [self.hudView setNeedsDisplay]; + } completion:nil]; + } else { + [self moveToPoint:newCenter rotateAngle:rotateAngle]; + } +} + +- (void)moveToPoint:(CGPoint)newCenter rotateAngle:(CGFloat)angle { + self.hudView.transform = CGAffineTransformMakeRotation(angle); + if (self.containerView) { + self.hudView.center = CGPointMake(self.containerView.center.x + self.offsetFromCenter.horizontal, self.containerView.center.y + self.offsetFromCenter.vertical); + } else { + self.hudView.center = CGPointMake(newCenter.x + self.offsetFromCenter.horizontal, newCenter.y + self.offsetFromCenter.vertical); + } +} + + +#pragma mark - Event handling + +- (void)controlViewDidReceiveTouchEvent:(id)sender forEvent:(UIEvent*)event { + [[NSNotificationCenter defaultCenter] postNotificationName:SVProgressHUDDidReceiveTouchEventNotification + object:self + userInfo:[self notificationUserInfo]]; + + UITouch *touch = event.allTouches.anyObject; + CGPoint touchLocation = [touch locationInView:self]; + + if(CGRectContainsPoint(self.hudView.frame, touchLocation)) { + [[NSNotificationCenter defaultCenter] postNotificationName:SVProgressHUDDidTouchDownInsideNotification + object:self + userInfo:[self notificationUserInfo]]; + } +} + + +#pragma mark - Master show/dismiss methods + +- (void)showProgress:(float)progress status:(NSString*)status { + __weak SVProgressHUD *weakSelf = self; + [[NSOperationQueue mainQueue] addOperationWithBlock:^{ + __strong SVProgressHUD *strongSelf = weakSelf; + if(strongSelf){ + if(strongSelf.fadeOutTimer) { + strongSelf.activityCount = 0; + } + + // Stop timer + strongSelf.fadeOutTimer = nil; + strongSelf.graceTimer = nil; + + // Update / Check view hierarchy to ensure the HUD is visible + [strongSelf updateViewHierarchy]; + + // Reset imageView and fadeout timer if an image is currently displayed + strongSelf.imageView.hidden = YES; + strongSelf.imageView.image = nil; + + // Update text and set progress to the given value + strongSelf.statusLabel.hidden = status.length == 0; + strongSelf.statusLabel.text = status; + strongSelf.progress = progress; + + // Choose the "right" indicator depending on the progress + if(progress >= 0) { + // Cancel the indefiniteAnimatedView, then show the ringLayer + [strongSelf cancelIndefiniteAnimatedViewAnimation]; + + // Add ring to HUD + if(!strongSelf.ringView.superview){ + [strongSelf.hudView.contentView addSubview:strongSelf.ringView]; + } + if(!strongSelf.backgroundRingView.superview){ + [strongSelf.hudView.contentView addSubview:strongSelf.backgroundRingView]; + } + + // Set progress animated + [CATransaction begin]; + [CATransaction setDisableActions:YES]; + strongSelf.ringView.strokeEnd = progress; + [CATransaction commit]; + + // Update the activity count + if(progress == 0) { + strongSelf.activityCount++; + } + } else { + // Cancel the ringLayer animation, then show the indefiniteAnimatedView + [strongSelf cancelRingLayerAnimation]; + + // Add indefiniteAnimatedView to HUD + [strongSelf.hudView.contentView addSubview:strongSelf.indefiniteAnimatedView]; + if([strongSelf.indefiniteAnimatedView respondsToSelector:@selector(startAnimating)]) { + [(id)strongSelf.indefiniteAnimatedView startAnimating]; + } + + // Update the activity count + strongSelf.activityCount++; + } + + // Fade in delayed if a grace time is set + if (self.graceTimeInterval > 0.0 && self.backgroundView.alpha == 0.0f) { + strongSelf.graceTimer = [NSTimer timerWithTimeInterval:self.graceTimeInterval target:strongSelf selector:@selector(fadeIn:) userInfo:nil repeats:NO]; + [[NSRunLoop mainRunLoop] addTimer:strongSelf.graceTimer forMode:NSRunLoopCommonModes]; + } else { + [strongSelf fadeIn:nil]; + } + + // Tell the Haptics Generator to prepare for feedback, which may come soon +#if TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 + if (@available(iOS 10.0, *)) { + [strongSelf.hapticGenerator prepare]; + } +#endif + } + }]; +} + +- (void)showImage:(UIImage*)image status:(NSString*)status duration:(NSTimeInterval)duration { + __weak SVProgressHUD *weakSelf = self; + [[NSOperationQueue mainQueue] addOperationWithBlock:^{ + __strong SVProgressHUD *strongSelf = weakSelf; + if(strongSelf){ + // Stop timer + strongSelf.fadeOutTimer = nil; + strongSelf.graceTimer = nil; + + // Update / Check view hierarchy to ensure the HUD is visible + [strongSelf updateViewHierarchy]; + + // Reset progress and cancel any running animation + strongSelf.progress = SVProgressHUDUndefinedProgress; + [strongSelf cancelRingLayerAnimation]; + [strongSelf cancelIndefiniteAnimatedViewAnimation]; + + // Update imageView + if (self.shouldTintImages) { + if (image.renderingMode != UIImageRenderingModeAlwaysTemplate) { + strongSelf.imageView.image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; + } + strongSelf.imageView.tintColor = strongSelf.foregroundImageColorForStyle; + } else { + strongSelf.imageView.image = image; + } + strongSelf.imageView.hidden = NO; + + // Update text + strongSelf.statusLabel.hidden = status.length == 0; + strongSelf.statusLabel.text = status; + + // Fade in delayed if a grace time is set + // An image will be dismissed automatically. Thus pass the duration as userInfo. + if (self.graceTimeInterval > 0.0 && self.backgroundView.alpha == 0.0f) { + strongSelf.graceTimer = [NSTimer timerWithTimeInterval:self.graceTimeInterval target:strongSelf selector:@selector(fadeIn:) userInfo:@(duration) repeats:NO]; + [[NSRunLoop mainRunLoop] addTimer:strongSelf.graceTimer forMode:NSRunLoopCommonModes]; + } else { + [strongSelf fadeIn:@(duration)]; + } + } + }]; +} + +- (void)fadeIn:(id)data { + // Update the HUDs frame to the new content and position HUD + [self updateHUDFrame]; + [self positionHUD:nil]; + + // Update accessibility as well as user interaction + // \n cause to read text twice so remove "\n" new line character before setting up accessiblity label + NSString *accessibilityString = [[self.statusLabel.text componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] componentsJoinedByString:@" "]; + if(self.defaultMaskType != SVProgressHUDMaskTypeNone) { + self.controlView.userInteractionEnabled = YES; + self.accessibilityLabel = accessibilityString ?: NSLocalizedString(@"Loading", nil); + self.isAccessibilityElement = YES; + self.controlView.accessibilityViewIsModal = YES; + } else { + self.controlView.userInteractionEnabled = NO; + self.hudView.accessibilityLabel = accessibilityString ?: NSLocalizedString(@"Loading", nil); + self.hudView.isAccessibilityElement = YES; + self.controlView.accessibilityViewIsModal = NO; + } + + // Get duration + id duration = [data isKindOfClass:[NSTimer class]] ? ((NSTimer *)data).userInfo : data; + + // Show if not already visible + if(self.backgroundView.alpha != 1.0f) { + // Post notification to inform user + [[NSNotificationCenter defaultCenter] postNotificationName:SVProgressHUDWillAppearNotification + object:self + userInfo:[self notificationUserInfo]]; + + // Shrink HUD to to make a nice appear / pop up animation + self.hudView.transform = self.hudView.transform = CGAffineTransformScale(self.hudView.transform, 1/1.5f, 1/1.5f); + + __block void (^animationsBlock)(void) = ^{ + // Zoom HUD a little to make a nice appear / pop up animation + self.hudView.transform = CGAffineTransformIdentity; + + // Fade in all effects (colors, blur, etc.) + [self fadeInEffects]; + }; + + __block void (^completionBlock)(void) = ^{ + // Check if we really achieved to show the HUD (<=> alpha) + // and the change of these values has not been cancelled in between e.g. due to a dismissal + if(self.backgroundView.alpha == 1.0f){ + // Register observer <=> we now have to handle orientation changes etc. + [self registerNotifications]; + + // Post notification to inform user + [[NSNotificationCenter defaultCenter] postNotificationName:SVProgressHUDDidAppearNotification + object:self + userInfo:[self notificationUserInfo]]; + + // Update accessibility + UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, nil); + UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, self.statusLabel.text); + + // Dismiss automatically if a duration was passed as userInfo. We start a timer + // which then will call dismiss after the predefined duration + if(duration){ + self.fadeOutTimer = [NSTimer timerWithTimeInterval:[(NSNumber *)duration doubleValue] target:self selector:@selector(dismiss) userInfo:nil repeats:NO]; + [[NSRunLoop mainRunLoop] addTimer:self.fadeOutTimer forMode:NSRunLoopCommonModes]; + } + } + }; + + // Animate appearance + if (self.fadeInAnimationDuration > 0) { + // Animate appearance + [UIView animateWithDuration:self.fadeInAnimationDuration + delay:0 + options:(UIViewAnimationOptions) (UIViewAnimationOptionAllowUserInteraction | UIViewAnimationCurveEaseIn | UIViewAnimationOptionBeginFromCurrentState) + animations:^{ + animationsBlock(); + } completion:^(BOOL finished) { + completionBlock(); + }]; + } else { + animationsBlock(); + completionBlock(); + } + + // Inform iOS to redraw the view hierarchy + [self setNeedsDisplay]; + } else { + // Update accessibility + UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, nil); + UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, self.statusLabel.text); + + // Dismiss automatically if a duration was passed as userInfo. We start a timer + // which then will call dismiss after the predefined duration + if(duration){ + self.fadeOutTimer = [NSTimer timerWithTimeInterval:[(NSNumber *)duration doubleValue] target:self selector:@selector(dismiss) userInfo:nil repeats:NO]; + [[NSRunLoop mainRunLoop] addTimer:self.fadeOutTimer forMode:NSRunLoopCommonModes]; + } + } +} + +- (void)dismiss { + [self dismissWithDelay:0.0 completion:nil]; +} + +- (void)dismissWithDelay:(NSTimeInterval)delay completion:(SVProgressHUDDismissCompletion)completion { + __weak SVProgressHUD *weakSelf = self; + [[NSOperationQueue mainQueue] addOperationWithBlock:^{ + __strong SVProgressHUD *strongSelf = weakSelf; + if(strongSelf){ + + // Post notification to inform user + [[NSNotificationCenter defaultCenter] postNotificationName:SVProgressHUDWillDisappearNotification + object:nil + userInfo:[strongSelf notificationUserInfo]]; + + // Reset activity count + strongSelf.activityCount = 0; + + __block void (^animationsBlock)(void) = ^{ + // Shrink HUD a little to make a nice disappear animation + strongSelf.hudView.transform = CGAffineTransformScale(strongSelf.hudView.transform, 1/1.3f, 1/1.3f); + + // Fade out all effects (colors, blur, etc.) + [strongSelf fadeOutEffects]; + }; + + __block void (^completionBlock)(void) = ^{ + // Check if we really achieved to dismiss the HUD (<=> alpha values are applied) + // and the change of these values has not been cancelled in between e.g. due to a new show + if(self.backgroundView.alpha == 0.0f){ + // Clean up view hierarchy (overlays) + [strongSelf.controlView removeFromSuperview]; + [strongSelf.backgroundView removeFromSuperview]; + [strongSelf.hudView removeFromSuperview]; + [strongSelf removeFromSuperview]; + + // Reset progress and cancel any running animation + strongSelf.progress = SVProgressHUDUndefinedProgress; + [strongSelf cancelRingLayerAnimation]; + [strongSelf cancelIndefiniteAnimatedViewAnimation]; + + // Remove observer <=> we do not have to handle orientation changes etc. + [[NSNotificationCenter defaultCenter] removeObserver:strongSelf]; + + // Post notification to inform user + [[NSNotificationCenter defaultCenter] postNotificationName:SVProgressHUDDidDisappearNotification + object:strongSelf + userInfo:[strongSelf notificationUserInfo]]; + + // Tell the rootViewController to update the StatusBar appearance +#if !defined(SV_APP_EXTENSIONS) && TARGET_OS_IOS + UIViewController *rootController = [[UIApplication sharedApplication] keyWindow].rootViewController; + [rootController setNeedsStatusBarAppearanceUpdate]; +#endif + + // Run an (optional) completionHandler + if (completion) { + completion(); + } + } + }; + + // UIViewAnimationOptionBeginFromCurrentState AND a delay doesn't always work as expected + // When UIViewAnimationOptionBeginFromCurrentState is set, animateWithDuration: evaluates the current + // values to check if an animation is necessary. The evaluation happens at function call time and not + // after the delay => the animation is sometimes skipped. Therefore we delay using dispatch_after. + + dispatch_time_t dipatchTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC)); + dispatch_after(dipatchTime, dispatch_get_main_queue(), ^{ + + // Stop timer + strongSelf.graceTimer = nil; + + if (strongSelf.fadeOutAnimationDuration > 0) { + // Animate appearance + [UIView animateWithDuration:strongSelf.fadeOutAnimationDuration + delay:0 + options:(UIViewAnimationOptions) (UIViewAnimationOptionAllowUserInteraction | UIViewAnimationCurveEaseOut | UIViewAnimationOptionBeginFromCurrentState) + animations:^{ + animationsBlock(); + } completion:^(BOOL finished) { + completionBlock(); + }]; + } else { + animationsBlock(); + completionBlock(); + } + }); + + // Inform iOS to redraw the view hierarchy + [strongSelf setNeedsDisplay]; + } + }]; +} + + +#pragma mark - Ring progress animation + +- (UIView*)indefiniteAnimatedView { + // Get the correct spinner for defaultAnimationType + if(self.defaultAnimationType == SVProgressHUDAnimationTypeFlat){ + // Check if spinner exists and is an object of different class + if(_indefiniteAnimatedView && ![_indefiniteAnimatedView isKindOfClass:[SVIndefiniteAnimatedView class]]){ + [_indefiniteAnimatedView removeFromSuperview]; + _indefiniteAnimatedView = nil; + } + + if(!_indefiniteAnimatedView){ + _indefiniteAnimatedView = [[SVIndefiniteAnimatedView alloc] initWithFrame:CGRectZero]; + } + + // Update styling + SVIndefiniteAnimatedView *indefiniteAnimatedView = (SVIndefiniteAnimatedView*)_indefiniteAnimatedView; + indefiniteAnimatedView.strokeColor = self.foregroundImageColorForStyle; + indefiniteAnimatedView.strokeThickness = self.ringThickness; + indefiniteAnimatedView.radius = self.statusLabel.text ? self.ringRadius : self.ringNoTextRadius; + } else { + // Check if spinner exists and is an object of different class + if(_indefiniteAnimatedView && ![_indefiniteAnimatedView isKindOfClass:[UIActivityIndicatorView class]]){ + [_indefiniteAnimatedView removeFromSuperview]; + _indefiniteAnimatedView = nil; + } + + if(!_indefiniteAnimatedView){ + _indefiniteAnimatedView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; + } + + // Update styling + UIActivityIndicatorView *activityIndicatorView = (UIActivityIndicatorView*)_indefiniteAnimatedView; + activityIndicatorView.color = self.foregroundImageColorForStyle; + } + [_indefiniteAnimatedView sizeToFit]; + + return _indefiniteAnimatedView; +} + +- (SVProgressAnimatedView*)ringView { + if(!_ringView) { + _ringView = [[SVProgressAnimatedView alloc] initWithFrame:CGRectZero]; + } + + // Update styling + _ringView.strokeColor = self.foregroundImageColorForStyle; + _ringView.strokeThickness = self.ringThickness; + _ringView.radius = self.statusLabel.text ? self.ringRadius : self.ringNoTextRadius; + + return _ringView; +} + +- (SVProgressAnimatedView*)backgroundRingView { + if(!_backgroundRingView) { + _backgroundRingView = [[SVProgressAnimatedView alloc] initWithFrame:CGRectZero]; + _backgroundRingView.strokeEnd = 1.0f; + } + + // Update styling + _backgroundRingView.strokeColor = [self.foregroundImageColorForStyle colorWithAlphaComponent:0.1f]; + _backgroundRingView.strokeThickness = self.ringThickness; + _backgroundRingView.radius = self.statusLabel.text ? self.ringRadius : self.ringNoTextRadius; + + return _backgroundRingView; +} + +- (void)cancelRingLayerAnimation { + // Animate value update, stop animation + [CATransaction begin]; + [CATransaction setDisableActions:YES]; + + [self.hudView.layer removeAllAnimations]; + self.ringView.strokeEnd = 0.0f; + + [CATransaction commit]; + + // Remove from view + [self.ringView removeFromSuperview]; + [self.backgroundRingView removeFromSuperview]; +} + +- (void)cancelIndefiniteAnimatedViewAnimation { + // Stop animation + if([self.indefiniteAnimatedView respondsToSelector:@selector(stopAnimating)]) { + [(id)self.indefiniteAnimatedView stopAnimating]; + } + // Remove from view + [self.indefiniteAnimatedView removeFromSuperview]; +} + + +#pragma mark - Utilities + ++ (BOOL)isVisible { + // Checking one alpha value is sufficient as they are all the same + return [self sharedView].backgroundView.alpha > 0.0f; +} + + +#pragma mark - Getters + ++ (NSTimeInterval)displayDurationForString:(NSString*)string { + CGFloat minimum = MAX((CGFloat)string.length * 0.06 + 0.5, [self sharedView].minimumDismissTimeInterval); + return MIN(minimum, [self sharedView].maximumDismissTimeInterval); +} + +- (UIColor*)foregroundColorForStyle { + if(self.defaultStyle == SVProgressHUDStyleLight) { + return [UIColor blackColor]; + } else if(self.defaultStyle == SVProgressHUDStyleDark) { + return [UIColor whiteColor]; + } else { + return self.foregroundColor; + } +} + +- (UIColor*)foregroundImageColorForStyle { + if (self.foregroundImageColor) { + return self.foregroundImageColor; + } else { + return [self foregroundColorForStyle]; + } +} + +- (UIColor*)backgroundColorForStyle { + if(self.defaultStyle == SVProgressHUDStyleLight) { + return [UIColor whiteColor]; + } else if(self.defaultStyle == SVProgressHUDStyleDark) { + return [UIColor blackColor]; + } else { + return self.backgroundColor; + } +} + +- (UIControl*)controlView { + if(!_controlView) { + _controlView = [UIControl new]; + _controlView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; + _controlView.backgroundColor = [UIColor clearColor]; + _controlView.userInteractionEnabled = YES; + [_controlView addTarget:self action:@selector(controlViewDidReceiveTouchEvent:forEvent:) forControlEvents:UIControlEventTouchDown]; + } + + // Update frames +#if !defined(SV_APP_EXTENSIONS) + CGRect windowBounds = [[[UIApplication sharedApplication] delegate] window].bounds; + _controlView.frame = windowBounds; +#else + _controlView.frame = [UIScreen mainScreen].bounds; +#endif + + return _controlView; +} + +-(UIView *)backgroundView { + if(!_backgroundView){ + _backgroundView = [UIView new]; + _backgroundView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; + } + if(!_backgroundView.superview){ + [self insertSubview:_backgroundView belowSubview:self.hudView]; + } + + // Update styling + if(self.defaultMaskType == SVProgressHUDMaskTypeGradient){ + if(!_backgroundRadialGradientLayer){ + _backgroundRadialGradientLayer = [SVRadialGradientLayer layer]; + } + if(!_backgroundRadialGradientLayer.superlayer){ + [_backgroundView.layer insertSublayer:_backgroundRadialGradientLayer atIndex:0]; + } + _backgroundView.backgroundColor = [UIColor clearColor]; + } else { + if(_backgroundRadialGradientLayer && _backgroundRadialGradientLayer.superlayer){ + [_backgroundRadialGradientLayer removeFromSuperlayer]; + } + if(self.defaultMaskType == SVProgressHUDMaskTypeBlack){ + _backgroundView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.4]; + } else if(self.defaultMaskType == SVProgressHUDMaskTypeCustom){ + _backgroundView.backgroundColor = self.backgroundLayerColor; + } else { + _backgroundView.backgroundColor = [UIColor clearColor]; + } + } + + // Update frame + if(_backgroundView){ + _backgroundView.frame = self.bounds; + } + if(_backgroundRadialGradientLayer){ + _backgroundRadialGradientLayer.frame = self.bounds; + + // Calculate the new center of the gradient, it may change if keyboard is visible + CGPoint gradientCenter = self.center; + gradientCenter.y = (self.bounds.size.height - self.visibleKeyboardHeight)/2; + _backgroundRadialGradientLayer.gradientCenter = gradientCenter; + [_backgroundRadialGradientLayer setNeedsDisplay]; + } + + return _backgroundView; +} +- (UIVisualEffectView*)hudView { + if(!_hudView) { + _hudView = [UIVisualEffectView new]; + _hudView.layer.masksToBounds = YES; + _hudView.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin; + } + if(!_hudView.superview) { + [self addSubview:_hudView]; + } + + // Update styling + _hudView.layer.cornerRadius = self.cornerRadius; + + return _hudView; +} + +- (UILabel*)statusLabel { + if(!_statusLabel) { + _statusLabel = [[UILabel alloc] initWithFrame:CGRectZero]; + _statusLabel.backgroundColor = [UIColor clearColor]; + _statusLabel.adjustsFontSizeToFitWidth = YES; + _statusLabel.textAlignment = NSTextAlignmentCenter; + _statusLabel.baselineAdjustment = UIBaselineAdjustmentAlignCenters; + _statusLabel.numberOfLines = 0; + } + if(!_statusLabel.superview) { + [self.hudView.contentView addSubview:_statusLabel]; + } + + // Update styling + _statusLabel.textColor = self.foregroundColorForStyle; + _statusLabel.font = self.font; + + return _statusLabel; +} + +- (UIImageView*)imageView { + if(_imageView && !CGSizeEqualToSize(_imageView.bounds.size, _imageViewSize)) { + [_imageView removeFromSuperview]; + _imageView = nil; + } + + if(!_imageView) { + _imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, _imageViewSize.width, _imageViewSize.height)]; + } + if(!_imageView.superview) { + [self.hudView.contentView addSubview:_imageView]; + } + + return _imageView; +} + + +#pragma mark - Helper + +- (CGFloat)visibleKeyboardHeight { +#if !defined(SV_APP_EXTENSIONS) + UIWindow *keyboardWindow = nil; + for (UIWindow *testWindow in UIApplication.sharedApplication.windows) { + if(![testWindow.class isEqual:UIWindow.class]) { + keyboardWindow = testWindow; + break; + } + } + + for (__strong UIView *possibleKeyboard in keyboardWindow.subviews) { + NSString *viewName = NSStringFromClass(possibleKeyboard.class); + if([viewName hasPrefix:@"UI"]){ + if([viewName hasSuffix:@"PeripheralHostView"] || [viewName hasSuffix:@"Keyboard"]){ + return CGRectGetHeight(possibleKeyboard.bounds); + } else if ([viewName hasSuffix:@"InputSetContainerView"]){ + for (__strong UIView *possibleKeyboardSubview in possibleKeyboard.subviews) { + viewName = NSStringFromClass(possibleKeyboardSubview.class); + if([viewName hasPrefix:@"UI"] && [viewName hasSuffix:@"InputSetHostView"]) { + CGRect convertedRect = [possibleKeyboard convertRect:possibleKeyboardSubview.frame toView:self]; + CGRect intersectedRect = CGRectIntersection(convertedRect, self.bounds); + if (!CGRectIsNull(intersectedRect)) { + return CGRectGetHeight(intersectedRect); + } + } + } + } + } + } +#endif + return 0; +} + +- (UIWindow *)frontWindow { +#if !defined(SV_APP_EXTENSIONS) + NSEnumerator *frontToBackWindows = [UIApplication.sharedApplication.windows reverseObjectEnumerator]; + for (UIWindow *window in frontToBackWindows) { + BOOL windowOnMainScreen = window.screen == UIScreen.mainScreen; + BOOL windowIsVisible = !window.hidden && window.alpha > 0; + BOOL windowLevelSupported = (window.windowLevel >= UIWindowLevelNormal && window.windowLevel <= self.maxSupportedWindowLevel); + BOOL windowKeyWindow = window.isKeyWindow; + + if(windowOnMainScreen && windowIsVisible && windowLevelSupported && windowKeyWindow) { + return window; + } + } +#endif + return nil; +} + +- (void)fadeInEffects { + if(self.defaultStyle != SVProgressHUDStyleCustom) { + // Add blur effect + UIBlurEffectStyle blurEffectStyle = self.defaultStyle == SVProgressHUDStyleDark ? UIBlurEffectStyleDark : UIBlurEffectStyleLight; + UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:blurEffectStyle]; + self.hudView.effect = blurEffect; + + // We omit UIVibrancy effect and use a suitable background color as an alternative. + // This will make everything more readable. See the following for details: + // https://www.omnigroup.com/developer/how-to-make-text-in-a-uivisualeffectview-readable-on-any-background + + self.hudView.backgroundColor = [self.backgroundColorForStyle colorWithAlphaComponent:0.6f]; + } else { + self.hudView.effect = self.hudViewCustomBlurEffect; + self.hudView.backgroundColor = self.backgroundColorForStyle; + } + + // Fade in views + self.backgroundView.alpha = 1.0f; + + self.imageView.alpha = 1.0f; + self.statusLabel.alpha = 1.0f; + self.indefiniteAnimatedView.alpha = 1.0f; + self.ringView.alpha = self.backgroundRingView.alpha = 1.0f; +} + +- (void)fadeOutEffects +{ + if(self.defaultStyle != SVProgressHUDStyleCustom) { + // Remove blur effect + self.hudView.effect = nil; + } + + // Remove background color + self.hudView.backgroundColor = [UIColor clearColor]; + + // Fade out views + self.backgroundView.alpha = 0.0f; + + self.imageView.alpha = 0.0f; + self.statusLabel.alpha = 0.0f; + self.indefiniteAnimatedView.alpha = 0.0f; + self.ringView.alpha = self.backgroundRingView.alpha = 0.0f; +} + +#if TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 +- (UINotificationFeedbackGenerator *)hapticGenerator NS_AVAILABLE_IOS(10_0) { + // Only return if haptics are enabled + if(!self.hapticsEnabled) { + return nil; + } + + if(!_hapticGenerator) { + _hapticGenerator = [[UINotificationFeedbackGenerator alloc] init]; + } + return _hapticGenerator; +} +#endif + + +#pragma mark - UIAppearance Setters + +- (void)setDefaultStyle:(SVProgressHUDStyle)style { + if (!_isInitializing) _defaultStyle = style; +} + +- (void)setDefaultMaskType:(SVProgressHUDMaskType)maskType { + if (!_isInitializing) _defaultMaskType = maskType; +} + +- (void)setDefaultAnimationType:(SVProgressHUDAnimationType)animationType { + if (!_isInitializing) _defaultAnimationType = animationType; +} + +- (void)setContainerView:(UIView *)containerView { + if (!_isInitializing) _containerView = containerView; +} + +- (void)setMinimumSize:(CGSize)minimumSize { + if (!_isInitializing) _minimumSize = minimumSize; +} + +- (void)setRingThickness:(CGFloat)ringThickness { + if (!_isInitializing) _ringThickness = ringThickness; +} + +- (void)setRingRadius:(CGFloat)ringRadius { + if (!_isInitializing) _ringRadius = ringRadius; +} + +- (void)setRingNoTextRadius:(CGFloat)ringNoTextRadius { + if (!_isInitializing) _ringNoTextRadius = ringNoTextRadius; +} + +- (void)setCornerRadius:(CGFloat)cornerRadius { + if (!_isInitializing) _cornerRadius = cornerRadius; +} + +- (void)setFont:(UIFont*)font { + if (!_isInitializing) _font = font; +} + +- (void)setForegroundColor:(UIColor*)color { + if (!_isInitializing) _foregroundColor = color; +} + +- (void)setForegroundImageColor:(UIColor *)color { + if (!_isInitializing) _foregroundImageColor = color; +} + +- (void)setBackgroundColor:(UIColor*)color { + if (!_isInitializing) _backgroundColor = color; +} + +- (void)setBackgroundLayerColor:(UIColor*)color { + if (!_isInitializing) _backgroundLayerColor = color; +} + +- (void)setShouldTintImages:(BOOL)shouldTintImages { + if (!_isInitializing) _shouldTintImages = shouldTintImages; +} + +- (void)setInfoImage:(UIImage*)image { + if (!_isInitializing) _infoImage = image; +} + +- (void)setSuccessImage:(UIImage*)image { + if (!_isInitializing) _successImage = image; +} + +- (void)setErrorImage:(UIImage*)image { + if (!_isInitializing) _errorImage = image; +} + +- (void)setViewForExtension:(UIView*)view { + if (!_isInitializing) _viewForExtension = view; +} + +- (void)setOffsetFromCenter:(UIOffset)offset { + if (!_isInitializing) _offsetFromCenter = offset; +} + +- (void)setMinimumDismissTimeInterval:(NSTimeInterval)minimumDismissTimeInterval { + if (!_isInitializing) _minimumDismissTimeInterval = minimumDismissTimeInterval; +} + +- (void)setFadeInAnimationDuration:(NSTimeInterval)duration { + if (!_isInitializing) _fadeInAnimationDuration = duration; +} + +- (void)setFadeOutAnimationDuration:(NSTimeInterval)duration { + if (!_isInitializing) _fadeOutAnimationDuration = duration; +} + +- (void)setMaxSupportedWindowLevel:(UIWindowLevel)maxSupportedWindowLevel { + if (!_isInitializing) _maxSupportedWindowLevel = maxSupportedWindowLevel; +} + +@end diff --git a/SVProgressHUD/SVRadialGradientLayer.h b/SVProgressHUD/SVRadialGradientLayer.h new file mode 100644 index 0000000..b63aeba --- /dev/null +++ b/SVProgressHUD/SVRadialGradientLayer.h @@ -0,0 +1,14 @@ +// +// SVRadialGradientLayer.h +// SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD +// +// Copyright (c) 2014-2019 Tobias Tiemerding. All rights reserved. +// + +#import + +@interface SVRadialGradientLayer : CALayer + +@property (nonatomic) CGPoint gradientCenter; + +@end diff --git a/SVProgressHUD/SVRadialGradientLayer.m b/SVProgressHUD/SVRadialGradientLayer.m new file mode 100644 index 0000000..1c5d181 --- /dev/null +++ b/SVProgressHUD/SVRadialGradientLayer.m @@ -0,0 +1,25 @@ +// +// SVRadialGradientLayer.m +// SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD +// +// Copyright (c) 2014-2019 Tobias Tiemerding. All rights reserved. +// + +#import "SVRadialGradientLayer.h" + +@implementation SVRadialGradientLayer + +- (void)drawInContext:(CGContextRef)context { + size_t locationsCount = 2; + CGFloat locations[2] = {0.0f, 1.0f}; + CGFloat colors[8] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.75f}; + CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); + CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, colors, locations, locationsCount); + CGColorSpaceRelease(colorSpace); + + float radius = MIN(self.bounds.size.width , self.bounds.size.height); + CGContextDrawRadialGradient (context, gradient, self.gradientCenter, 0, self.gradientCenter, radius, kCGGradientDrawsAfterEndLocation); + CGGradientRelease(gradient); +} + +@end diff --git a/yacd/AirdropOnlyActivity.h b/yacd/AirdropOnlyActivity.h new file mode 100644 index 0000000..57e9cc6 --- /dev/null +++ b/yacd/AirdropOnlyActivity.h @@ -0,0 +1,17 @@ +// +// AirdropOnlyActivity.h +// yacd +// +// Created by Derek Selander on 9/3/20. +// Copyright © 2020 Selander. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface AirdropOnlyActivity : UIActivity +- (instancetype)initWithImage:(UIImage *)image appName:(NSString*)appName; +@end + +NS_ASSUME_NONNULL_END diff --git a/yacd/AirdropOnlyActivity.m b/yacd/AirdropOnlyActivity.m new file mode 100644 index 0000000..f5669c6 --- /dev/null +++ b/yacd/AirdropOnlyActivity.m @@ -0,0 +1,38 @@ +// +// AirdropOnlyActivity.m +// yacd +// +// Created by Derek Selander on 9/3/20. +// Copyright © 2020 Selander. All rights reserved. +// + +#import "AirdropOnlyActivity.h" + +@interface AirdropOnlyActivity () +@property (nonatomic, copy) NSString *appName; +@property (nonatomic, strong) UIImage *image; +@end + +@implementation AirdropOnlyActivity + +- (instancetype)initWithImage:(UIImage *)image appName:(NSString*)appName +{ + self = [super init]; + if (self) { + _image = image; + _appName = appName; + } + return self; +} + +- (UIActivityType)activityType { + return UIActivityTypeAirDrop; +} + +- (UIActivityCategory)activityCategory { + return UIActivityCategoryAction; +} + + + +@end diff --git a/yacd/AppDelegate.m b/yacd/AppDelegate.m index ef7f512..b355ec7 100644 --- a/yacd/AppDelegate.m +++ b/yacd/AppDelegate.m @@ -7,13 +7,24 @@ // #import "AppDelegate.h" +#import "SVProgressHUD.h" @interface AppDelegate () @end +void SSZipArchiveProgressCallback(float progress) { + [SVProgressHUD showProgress:progress status:@"Zipping Contents"]; +} + +void SSZipArchiveCompletionCallback(BOOL success) { + [SVProgressHUD dismiss]; +} + @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - // Override point for customization after application launch. + + [SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeGradient]; + [SVProgressHUD setMaximumDismissTimeInterval:1.5]; return YES; } diff --git a/yacd/Models/ProcessModule.h b/yacd/Models/ProcessModule.h new file mode 100644 index 0000000..aa1fa61 --- /dev/null +++ b/yacd/Models/ProcessModule.h @@ -0,0 +1,21 @@ +// +// ProcessModule.h +// yacd +// +// Created by Derek Selander on 9/3/20. +// Copyright © 2020 Selander. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ProcessModule : NSObject +@property (nonatomic, strong, readonly) NSString *path; +@property (nonatomic, strong, readonly) NSNumber *address; +@property (nonatomic, readonly, assign) BOOL isSharedCache; + +- (instancetype)initWithPath:(const char *)path startAddress:(uintptr_t)address task:(mach_port_t)task; +@end + +NS_ASSUME_NONNULL_END diff --git a/yacd/Models/ProcessModule.m b/yacd/Models/ProcessModule.m new file mode 100644 index 0000000..c0130e7 --- /dev/null +++ b/yacd/Models/ProcessModule.m @@ -0,0 +1,29 @@ +// +// ProcessModule.m +// yacd +// +// Created by Derek Selander on 9/3/20. +// Copyright © 2020 Selander. All rights reserved. +// + +#import "ProcessModule.h" +#import +#import +@implementation ProcessModule + +- (instancetype)initWithPath:(const char *)path startAddress:(uintptr_t)address task:(mach_port_t)task { + if (self = [super init]) { + _path = [NSString stringWithUTF8String:path]; + _address = @(address); + + mach_vm_size_t size = sizeof(struct mach_header_64); + struct mach_header_64 header = {}; + if (mach_vm_read_overwrite(task, address, sizeof(struct mach_header_64), (mach_vm_address_t)&header, &size)) { + return self; + } + _isSharedCache = (header.flags & MH_DYLIB_IN_CACHE) ? YES : NO; + + } + return self; +} +@end diff --git a/yacd/SSZipArchive/SSZipArchive.m b/yacd/SSZipArchive/SSZipArchive.m index 8a77c9b..9e38bbd 100644 --- a/yacd/SSZipArchive/SSZipArchive.m +++ b/yacd/SSZipArchive/SSZipArchive.m @@ -14,6 +14,8 @@ NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain"; +extern void SSZipArchiveProgressCallback(float progress); +extern void SSZipArchiveCompletionCallback(BOOL success); #define CHUNK 16384 int _zipOpenEntry(zipFile entry, NSString *name, const zip_fileinfo *zipfi, int level, NSString *password, BOOL aes); @@ -815,7 +817,18 @@ + (BOOL)createZipFileAtPath:(NSString *)path allObjects = @[@""]; total = 1; } - for (__strong NSString *fileName in allObjects) { + float mostRecentProgressUpdate = 0.0; + for (int i = 0; i < total; i++) { + + float prog = (float)i/(float)total; + if (prog - mostRecentProgressUpdate > 0.15) { + mostRecentProgressUpdate = prog; + dispatch_async(dispatch_get_main_queue(), ^{ + SSZipArchiveProgressCallback(prog); + }); + } + + NSString *fileName = allObjects[i]; NSString *fullFilePath = [directoryPath stringByAppendingPathComponent:fileName]; if ([fullFilePath isEqualToString:path]) { NSLog(@"[SSZipArchive] the archive path and the file path: %@ are the same, which is forbidden.", fullFilePath); @@ -845,6 +858,9 @@ + (BOOL)createZipFileAtPath:(NSString *)path } success &= [zipArchive close]; } + dispatch_async(dispatch_get_main_queue(), ^{ + SSZipArchiveCompletionCallback(success); + }); return success; } diff --git a/yacd/ViewControllers/ApplicationTableViewCell.m b/yacd/ViewControllers/ApplicationTableViewCell.m index 9444188..1652c05 100644 --- a/yacd/ViewControllers/ApplicationTableViewCell.m +++ b/yacd/ViewControllers/ApplicationTableViewCell.m @@ -8,15 +8,14 @@ #import "ApplicationTableViewCell.h" -__attribute__((weak)) -extern CGImageRef LICreateIconFromCachedBitmap(NSData* data); @implementation ApplicationTableViewCell - (void)setupCellWithApplicationProxy:(id ) applicationProxy pidInfo:(PIDInfo*)pidInfo { - NSData *data = [applicationProxy primaryIconDataForVariant:0x22]; + NSData *data = [applicationProxy primaryIconDataForVariant:0x20]; CGImageRef imageRef = LICreateIconFromCachedBitmap(data); - UIImage *image = [[UIImage alloc] initWithCGImage:imageRef scale:2.0 orientation:UIImageOrientationUp]; + CGFloat scale = [UIScreen mainScreen].scale; + UIImage *image = [[UIImage alloc] initWithCGImage:imageRef scale:scale orientation:UIImageOrientationUp]; self.appIconImageView.image = image; self.bundleIdentifierLabel.text = [applicationProxy bundleIdentifier]; diff --git a/yacd/ViewControllers/ProcessDetailsViewController.h b/yacd/ViewControllers/ProcessDetailsViewController.h index 26817e0..05252cd 100644 --- a/yacd/ViewControllers/ProcessDetailsViewController.h +++ b/yacd/ViewControllers/ProcessDetailsViewController.h @@ -8,6 +8,12 @@ #import #import + +#import "UIViewController+DisplayError.h" +#import "SSZipArchive.h" +#import "NSError+ErrorHelper.h" +#import "SVProgressHUD.h" +#import "AirdropOnlyActivity.h" #import "PIDInfo.h" NS_ASSUME_NONNULL_BEGIN diff --git a/yacd/ViewControllers/ProcessDetailsViewController.mm b/yacd/ViewControllers/ProcessDetailsViewController.mm index 7e00295..6723683 100644 --- a/yacd/ViewControllers/ProcessDetailsViewController.mm +++ b/yacd/ViewControllers/ProcessDetailsViewController.mm @@ -7,19 +7,20 @@ // #import "ProcessDetailsViewController.h" -#import -#import "UIViewController+DisplayError.h" -#import "SSZipArchive.h" -#import "NSError+ErrorHelper.h" +#import "ProcessModule.h" #define YACD_DIR @"yacd" #define ZIP_PAYLOAD @"payload.zip" +__attribute__((weak)) +extern CGImageRef LICreateIconFromCachedBitmap(NSData* data); + @interface ProcessDetailsViewController () @property (nonatomic, weak) IBOutlet UITableView *tableView; @property (nonatomic, strong) NSString *appPath; -@property (nonatomic, strong) NSArray * dataSource; -@property (nonatomic, assign) mach_port_name_t externalPort; +@property (nonatomic, strong) NSArray * dataSource; +@property (nonatomic, strong) NSArray * sharedDataSource; +@property (nonatomic, assign) mach_port_t externalPort; @end extern "C" { @@ -33,127 +34,163 @@ @implementation ProcessDetailsViewController - (void)viewDidLoad { [super viewDidLoad]; - NSError *err = nil; -// mach_port_name_t externalPort = MACH_PORT_NULL; self.appPath = [self.pidInfo.path stringByDeletingLastPathComponent]; if (!self.appPath) { - err = [NSError errorWithDescription:@"Malformed process"]; - [self displayModalErrorWithMessage:@"Error" andError:err]; + [SVProgressHUD showErrorWithStatus:@"Application must be launched first"]; return; } if (task_for_pid(mach_task_self(), self.pidInfo.pid.intValue, &_externalPort)) { - err = [NSError errorWithDescription:@"Unable to get task_for_pid"]; - [self displayModalErrorWithMessage:@"Error" andError:err]; + [SVProgressHUD showErrorWithStatus:@"Unable to get task for PID"]; return; } NSMutableArray *data = [NSMutableArray new]; - ::enumerate_encrypted_modules(_externalPort, ^(char *path, mach_vm_address_t module_start, uint32_t cryptoff, uint32_t cryptsize) { - - [data addObject:@{ @"module" : [NSString stringWithUTF8String:path], @"addr" : @(module_start)}]; + NSMutableArray *sharedData = [NSMutableArray new]; + BOOL success = enumerate_loaded_modules(_externalPort, ^(char *path, mach_vm_address_t module_start) { + ProcessModule *processModule = [[ProcessModule alloc] initWithPath:path startAddress:module_start task:self.externalPort]; + + + if (processModule.isSharedCache) { + [sharedData addObject:processModule]; + } else { + [data addObject:processModule]; + } }); + + if (!success) { + [SVProgressHUD showErrorWithStatus:@"task_info error (System App)?"]; + } self.dataSource = [data copy]; + self.sharedDataSource = [sharedData copy]; } +- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { + return section == 0 ? @"NON-Shared DYLD" : @"Shared DYLD"; +} - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - return self.dataSource.count; + return section == 0 ? self.dataSource.count : self.sharedDataSource.count; } +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 2; +} - (nonnull UITableViewCell *)tableView:(nonnull UITableView *)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath { - NSDictionary *dict = self.dataSource[indexPath.row]; + + ProcessModule *pm = indexPath.section == 0 ? self.dataSource[indexPath.row] : self.sharedDataSource[indexPath.row]; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"]; cell.textLabel.minimumScaleFactor = 0.5; - cell.textLabel.text = [dict[@"module"] lastPathComponent]; - NSNumber *addr = dict[@"addr"]; + + cell.textLabel.text = [pm.path lastPathComponent]; + NSNumber *addr = pm.address; cell.detailTextLabel.text = [NSString stringWithFormat:@"0x%012lx", [addr unsignedLongValue]]; return cell; } - (IBAction)decryptApplicationTapped:(id)sender { - NSError *err = nil; mach_port_name_t externalPort = MACH_PORT_NULL; + ((UIButton*)sender).enabled = NO; if (task_for_pid(mach_task_self(), self.pidInfo.pid.intValue, &externalPort)) { - err = [NSError errorWithDescription:@"Unable to get task_for_pid"]; - [self displayModalErrorWithMessage:@"Error" andError:err]; + [SVProgressHUD showErrorWithStatus:@"Unable to get task for PID"]; return; } // Create the path to/from - NSFileManager *manager = [NSFileManager defaultManager]; - NSString* tmpDir = NSTemporaryDirectory(); - NSString *appName = [self.appPath lastPathComponent]; - NSString *copyToDir = [tmpDir stringByAppendingPathComponent:YACD_DIR]; - NSString *fullPathToDir = [copyToDir stringByAppendingPathComponent:appName]; - NSString *zippedPath = [tmpDir stringByAppendingPathComponent:ZIP_PAYLOAD]; - - [manager removeItemAtPath:fullPathToDir error:&err]; - if (err) { - NSLog(@"%@", err); - err = nil; - } + [SVProgressHUD showInfoWithStatus:@"Copying .app contents"]; - [manager createDirectoryAtPath:copyToDir withIntermediateDirectories:YES attributes:nil error:&err]; - if (err) { - NSLog(@"%@", err); - err = nil; - } - - if (![manager copyItemAtPath:self.appPath toPath:fullPathToDir error:&err]) { + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ + + NSError *err = nil; + NSFileManager *manager = [NSFileManager defaultManager]; + NSString* tmpDir = NSTemporaryDirectory(); + NSString *appName = [self.appPath lastPathComponent]; + NSString *copyToDir = [tmpDir stringByAppendingPathComponent:YACD_DIR]; + NSString *fullPathToDir = [copyToDir stringByAppendingPathComponent:appName]; + NSString *zippedPath = [tmpDir stringByAppendingPathComponent:ZIP_PAYLOAD]; + + [manager removeItemAtPath:fullPathToDir error:&err]; if (err) { NSLog(@"%@", err); + err = nil; } - } - - // Replica at fullPathToDir, cross reference memory in process and grab decrypted parts - - ::enumerate_encrypted_modules(externalPort, ^(char *path, mach_vm_address_t module_start, uint32_t cryptoff, uint32_t cryptsize) { + [manager createDirectoryAtPath:copyToDir withIntermediateDirectories:YES attributes:nil error:&err]; + if (err) { + NSLog(@"%@", err); + err = nil; + } - NSString *fullPath = [NSString stringWithUTF8String:path]; - NSRange range = [fullPath rangeOfString:self.appPath]; - NSString *relativePath = [fullPath substringFromIndex:range.length]; - NSString *realizedPath = [fullPathToDir stringByAppendingPathComponent:relativePath]; - - // Grab the decrypted payload - void* payload = calloc(cryptsize, sizeof(char)); - mach_vm_size_t outsize = cryptsize; - kern_return_t kr = mach_vm_read_overwrite(self->_externalPort, module_start + cryptoff + sizeof(struct mach_header_64), cryptsize, (mach_vm_address_t)payload, &outsize); + if (![manager copyItemAtPath:self.appPath toPath:fullPathToDir error:&err]) { + if (err) { + NSLog(@"%@", err); + } + } - if (kr != KERN_SUCCESS || outsize != cryptsize) { - NSError *err = [NSError errorWithDescription:@"Error Patching"]; - [self displayModalErrorWithMessage:@"Error" andError:err]; + // Replica at fullPathToDir, cross reference memory in process and grab decrypted parts + [SVProgressHUD showInfoWithStatus:@"Patching encrypted modules"]; + ::enumerate_encrypted_modules(externalPort, ^(char *path, mach_vm_address_t module_start, uint32_t cryptoff, uint32_t cryptsize) { + + + NSString *fullPath = [NSString stringWithUTF8String:path]; + NSRange range = [fullPath rangeOfString:self.appPath]; + NSString *relativePath = [fullPath substringFromIndex:range.length]; + NSString *realizedPath = [fullPathToDir stringByAppendingPathComponent:relativePath]; + + // Grab the decrypted payload + void* payload = calloc(cryptsize, sizeof(char)); + mach_vm_size_t outsize = cryptsize; + kern_return_t kr = mach_vm_read_overwrite(self->_externalPort, module_start + cryptoff + sizeof(struct mach_header_64), cryptsize, (mach_vm_address_t)payload, &outsize); + + if (kr != KERN_SUCCESS || outsize != cryptsize) { + [SVProgressHUD showErrorWithStatus:@"Error reading encrypted module"]; + free(payload); + return; + } + + // Patch file from decrypted mem + if (!patch_encrypted_module_with_decrypted_memory((mach_vm_address_t)payload, cryptsize, cryptoff, realizedPath.UTF8String)) { + [SVProgressHUD showErrorWithStatus:@"Error replacing memory"]; + } free(payload); - return; - } + }); - // Patch file from decrypted mem - if (!patch_encrypted_module_with_decrypted_memory((mach_vm_address_t)payload, cryptsize, cryptoff, realizedPath.UTF8String)) { - NSError *err = [NSError errorWithDescription:@"Error Replacing Decrypted Memory"]; - [self displayModalErrorWithMessage:@"Error" andError:err]; - } - free(payload); + [self zipAndShare:zippedPath withContents:fullPathToDir]; + dispatch_async(dispatch_get_main_queue(), ^{ + ((UIButton*)sender).enabled = YES; + }); }); - - [self zipAndShare:zippedPath withContents:fullPathToDir]; } -- (void)zipAndShare:(NSString *)zippedPath withContents:(NSString *)contents { - if ([SSZipArchive createZipFileAtPath:zippedPath withContentsOfDirectory:contents keepParentDirectory:YES]) { - NSURL *url = [NSURL fileURLWithPath:zippedPath]; - UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[url] applicationActivities:nil]; - [self presentViewController:activityViewController animated:YES completion:nil]; - } else { - NSError *err = [NSError errorWithDescription:@"Zipping problem"]; - [self displayModalErrorWithMessage:@"Error" andError:err]; - } +- (void)zipAndShare:(NSString *)zippedPath withContents:(NSString *)contents { + [SVProgressHUD showInfoWithStatus:@"Zipping contents"]; + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ + BOOL success = [SSZipArchive createZipFileAtPath:zippedPath withContentsOfDirectory:contents keepParentDirectory:YES]; + dispatch_async(dispatch_get_main_queue(), ^{ + if (success) { + NSURL *url = [NSURL fileURLWithPath:zippedPath]; + + NSData *data = [self.application primaryIconDataForVariant:0x20]; + CGImageRef imageRef = LICreateIconFromCachedBitmap(data); + CGFloat scale = [UIScreen mainScreen].scale; + UIImage *image = [[UIImage alloc] initWithCGImage:imageRef scale:scale orientation:UIImageOrientationUp]; + + UIActivity *airdropActivity = [[AirdropOnlyActivity alloc] initWithImage:image appName:self.application.bundleIdentifier]; + UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[url] applicationActivities:@[airdropActivity]]; + + [self presentViewController:activityViewController animated:YES completion:nil]; + } else { + [SVProgressHUD showErrorWithStatus:@"Zipping problem"]; + } + + }); + }); } @end diff --git a/yacd/ViewControllers/ViewController.mm b/yacd/ViewControllers/ViewController.mm index 11a4db9..e324123 100644 --- a/yacd/ViewControllers/ViewController.mm +++ b/yacd/ViewControllers/ViewController.mm @@ -54,6 +54,7 @@ - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { NSIndexPath* indexPath = [self.tableView indexPathForSelectedRow]; ProcessDetailsViewController* vc = (ProcessDetailsViewController*)[segue destinationViewController]; auto application = self.filteredInstalledApplications[indexPath.row]; + vc.application = application; auto pidInfo = self.processDictionary[application.canonicalExecutablePath]; vc.pidInfo = pidInfo; }