From 60e969db6af272c77213cbdf2dcac8cf263f6d8b Mon Sep 17 00:00:00 2001 From: josea Date: Fri, 22 Feb 2013 16:46:42 -0430 Subject: [PATCH] Update SDNetworkActivityIndicator.m Adding support to the class to work in collaboration with the AFNetworking activity indicator manager. That way there is no conflict when having requests from AFNetworking using the network indicator. --- SDNetworkActivityIndicator.m | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/SDNetworkActivityIndicator.m b/SDNetworkActivityIndicator.m index 91cc9a1..5175e47 100644 --- a/SDNetworkActivityIndicator.m +++ b/SDNetworkActivityIndicator.m @@ -8,6 +8,15 @@ #import "SDNetworkActivityIndicator.h" +/* if you define this precompiler variable the SDNetworkActivityIndicator will just + * be a proxy to the AFNetworkActivityIndicatorManager. It can be defined in the + * .pch file of the project. + */ +#ifdef SDNetworkActivityIndicatorAFNetworkSupport +#import "AFNetworkActivityIndicatorManager.h" +#endif + + static SDNetworkActivityIndicator *instance; @implementation SDNetworkActivityIndicator @@ -36,10 +45,14 @@ - (void)startActivity { @synchronized(self) { +#ifndef SDNetworkActivityIndicatorAFNetworkSupport if (counter == 0) { [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; } +#else + [[AFNetworkActivityIndicatorManager sharedManager] incrementActivityCount]; +#endif counter++; } } @@ -48,10 +61,17 @@ - (void)stopActivity { @synchronized(self) { +#ifdef SDNetworkActivityIndicatorAFNetworkSupport + if ( counter>0) { + [[AFNetworkActivityIndicatorManager sharedManager] decrementActivityCount]; + --counter; + } +#else if (counter > 0 && --counter == 0) { - [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO]; + [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO]; } +#endif } } @@ -59,8 +79,13 @@ - (void)stopAllActivity { @synchronized(self) { +#ifndef SDNetworkActivityIndicatorAFNetworkSupport counter = 0; [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO]; +#else + for(;counter>0; counter--) + [[AFNetworkActivityIndicatorManager sharedManager] decrementActivityCount]; +#endif } }