Skip to content

Instantly share code, notes, and snippets.

@Duraiamuthan
Created April 21, 2014 16:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Duraiamuthan/11147386 to your computer and use it in GitHub Desktop.
Save Duraiamuthan/11147386 to your computer and use it in GitHub Desktop.
Objective C CommonFunctions
//Header
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
#import "NSString+UrlEncode.h"
@interface CommonFunctions:NSObject
+(void)MakeIOS6StyleStatusBar:(UIView*)vu;
-(void)showAlertWithMsg:(NSString *)msg;
-(void)lockAppWithMsg:(NSString *)msg;
-(void)saveValue:(NSString *)Value forKey:(NSString *)Key;
-(void)sleepforSecs:(float)secs;
-(NSString *)GetUDID;
-(NSString *)retrieveValueforKey:(NSString *)Key;
-(NSString *)replaceApostrophe:(NSString *)str;
-(NSString *)turnIntoNSStringfromDoubleValue:(double)doubleValue;
-(BOOL)checkandActuponDeviceCompatability;
-(BOOL)CheckAndActUponVersionCompatability;
-(BOOL)isLblTruncated:(UILabel *)lbl;
-(float)GetActualWidth:(UILabel *)lbl;
-(void)removeAllSubViewsOf:(UIView *)vu;
-(NSString *)GetNow;
-(BOOL)PingServiceServer;
-(NSString*)AddressforLatitude:(NSString *)Latitude Longitude:(NSString *)Longitude;
-(NSData *)CallWebServiceWithURL:(NSURL *)ServiceURL WithData:(NSString *)ServiceData;
+(NSString *) base64StringFromData: (NSData *)data length: (int)length;
+(UIImage*)Base64ToImage:(NSString *)Base64;
-(void)customizeUISwitch:(UISwitch *)swtch;
-(NSString *)GetIntValueOfNSString:(NSString *)strValue;
-(UILabel *)GetMeLabelwithText:(NSString *)text withRect:(CGRect)Rect;
-(UILabel *)GetMeLabelWithLabel:(UILabel *)lbl withText:(NSString *)text withRect:(CGRect)Rect;
-(NSString *)URLEncode:(NSString *)url;
-(NSString *)GetServiceResponseStatusfor:(NSData*)ServiceResponseData;
-(NSString *)GetCurrentYear;
-(NSString *)GetCurrentMonth;
-(void)ShowText:(NSString *)Text AloneOnView:(UIView *)vuContentHolder;
-(NSString *)ReplaceZeroWithHyphen:(NSString *)Input;
-(BOOL)isEmpty:(NSString *)Val;
-(void)ChangeAlignmentFor:(UILabel *)lbl;
-(void)RoundTheCornerOf:(UIView *)vu with:(NSNumber*)radius;
-(void)JustRoundTheCornerOf:(UIView *)vu with:(NSNumber*)radius;
-(void)JustPutTheBorderTo:(UIView *)vu withWidth:(NSNumber*)BorderWidth withColor:(UIColor*)borderColor;
- (UIColor *)getUIColorObjectFromHexString:(NSString *)hexStr alpha:(CGFloat)alpha;
-(void)DisableTouchEvents;
-(void)EnableTouchEvents;
-(void)DoNotAllowIpad2LockScreen;
-(void)AllowIpad2LockScreen;
-(CGSize)sizeWithFont:(UIFont *)fnt withText:(NSString *)str;
-(void)ShowNetworkActivityIndicator;
-(void)HideNetworkActivityIndicator;
-(void)SetAppBadgeNumber:(int)badgeNumber;
-(int)RoundOffValues:(float)val;
-(NSNumber*)ConvertStringToNumber:(NSString*)str;
-(NSString*)FormatTheNumber:(NSString*)currency;
-(NSString*)FormatTheNumberAsIndianCurrency:(NSString*)currency;
-(BOOL)Contains:(NSString *)StrSearchTerm on:(NSString *)StrText;
-(void)OpenApps:(NSString*)url;
-(NSString*)FormatTheNumberAsCommaSeparatedValues:(float)Input;
-(NSString*)FormatTheNumberAsCommaSeparatedCurrencyValues:(float)Input;
-(NSString*)ChangeTheNumberIntoText:(int)Number;
-(NSString*)ChangeTheFloatNumberIntoText:(double)Number;
-(NSString*)GetPresentDateTimeStamp;
-(NSDate*)GetDateFromDDMMYYHHMMSSAA:(NSString*)strDate;
-(NSDate*)GetDateFromYYYYMMDD:(NSString*)strDate;
-(NSDate*)GetTimeFromHHMMAA:(NSString*)strTime;
-(NSString*)DateToDDMMYYYYHHMMAA:(NSString*)strDate;
-(NSString*)CompareFirstDate:(NSDate *)firstDate with:(NSDate *)secondDate;
-(NSString*)CompareFirstTime:(NSString *)firstTime with:(NSString *)secondTime;
-(NSString *)TrimAndConvertDateTimeToNSString:(NSDate *)datTime;
-(NSString *)TurnInToIndianDateTimeFormat:(NSDate *)dat;
-(NSArray*)GetAllTimeZones;
-(NSString*)DateToYYYYMMDD:(NSDate*)date;
-(NSString*)DateToHHMM:(NSDate*)date;
-(NSString*)DateToYYYYMMDDWithoutSpace:(NSDate*)date;
-(NSDate*)SubtractDays:(int)days fromDate:(NSDate*)date;
-(NSDate*)GetDateFromDay:(int)Day Month:(int)Month Year:(int)Year Hour:(int)Hour Minutes:(int)Minutes Seconds:(int)Seconds;
-(NSString*)BuildDateTimeStringForDate:(NSString*)Date Time:(NSString*)Time;
-(NSDate*)ConvertToDateFromString:(NSString*)strDate;
-(NSString*)GetDateFromDateTime:(NSString*)strDate;
-(NSString*)GetTimeFromDateTime:(NSString*)strDate;
-(NSString*)ReturnThePriorityForSlide:(UISlider*)sdr;
-(NSString*)ReturnThePriorityForVal:(NSString*)val;
-(NSString*)TrimTheString:(NSString*)Str;
-(BOOL)IsTextFieldEmpty:(UITextField*)txtFi;
-(BOOL)IsTextViewEmpty:(UITextView*)txtVu withPlaceHolder:(NSString*)placeholder;
-(void)InstallApp:(NSString*)url;
-(NSString*)ReadCurrentAppVersionLong;
-(NSString*)ReadCurrentAppVersionShort;
-(NSString*)ReadAppDelegateInstanceVariable:(NSString*)InstVar;
-(void)CallAppDelegateSelector:(NSString*)selector;
-(NSString*)GetLastException;
-(BOOL)HasExceptionOccured;
-(void)ResetLastException;
-(void)SaveException:(NSString*)Exception;
-(double)GetLatitude;
-(double)GetLongitude;
-(BOOL) validEmailAddress:(NSString*) emailStr;
-(UIImage*)ExtractImageOn:(CGPoint)pointExtractedImg ofSize:(CGSize)sizeExtractedImg FromSpriteSheet:(UIImage*)imgSpriteSheet;
//If any doubt on sprite sheet refer the project SpriteSheet
-(UIImage *)writeText:(NSString *)text1 toImage:(UIImage *)img;
+ (NSString *)currentWifiSSID;
+ (NSString *)currentWifiBSSID;
//-(int)GetSignalStrength;
-(NSString*)GetCarrierName;
-(void)PersistStandardUserDefaults;
-(BOOL)IsParam1:(NSString*)param1 EqualTo:(NSString*)param2;
-(void)LoadLocalHtmlFile:(NSString *)file onWebView:(UIWebView*)webVu;
-(BOOL)IsValidTextField:(UITextField*)textField WithRange:(NSRange)range WithReplacementString:(NSString*)string withCharacterLimit:(int)characterLimit andAllowedChars:(NSString*)AllowedCharacters;
-(void)HideAllTheViewsInView:(UIView*)vu;
-(void)AddAppLogFor:(NSString*)AccessedModule;
@end
//Implementation
#import "CommonFunctions.h"
#import "AppDelegate.h"
#import "GeoLocation.h"
#import <SystemConfiguration/CaptiveNetwork.h>
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
#import <CoreTelephony/CTCarrier.h>
#import "AppLog.h"
#import <AdSupport/ASIdentifierManager.h>
//Object of appDelegate using this we can call properties and methods of appDelegate globally..FYI:Singleton class
#define appDelegate ((SGGI_AppDelegate*)[UIApplication sharedApplication].delegate)
@interface CommonFunctions ()
-(UIUserInterfaceIdiom)getUserInterfaceIdiom;
-(BOOL)CheckJsonResponseOf:(NSString *)Status for:(NSDictionary*)ServiceResponseDict;
- (unsigned int)intFromHexString:(NSString *)hexStr;
-(NSDate*)GetDateTimeFromTime:(NSString*)time;
@end
@implementation CommonFunctions
#warning we have replace * with + as usual because we found a better function to url encode so no problem stringByAddingPercentEscapesUsingEncoding didn't url encode correctly now we opted a better function so when we have enough time we can change * with + as usual and we've to reflect the change in other objective c functions as well and webservice
//In the below table character in 63rd position is actually + but when we stream the data the plus is turned into space so we use * in place of that
//We can't afford replace bcuz the string is 1 mb in length
static char base64EncodingTable[64] = {
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '/'
};
+(void)MakeIOS6StyleStatusBar:(UIView*)vu
{
CGRect vuBounds = [vu bounds];
vuBounds.origin.y = -18;
[vu setBackgroundColor:[UIColor whiteColor]];
// [vu setBackgroundColor:[UIColor colorWithRed:225.0/255.0 green:227.0/255.0 blue:231.0/255.0 alpha:1.0]];
[vu setBounds:vuBounds];
}
+ (NSString *) base64StringFromData: (NSData *)data length: (int)length {
unsigned long ixtext, lentext;
long ctremaining;
unsigned char input[3], output[4];
short i, charsonline = 0, ctcopy;
const unsigned char *raw;
NSMutableString *result;
lentext = [data length];
if (lentext < 1)
return @"";
result = [NSMutableString stringWithCapacity: lentext];
raw = [data bytes];
ixtext = 0;
while (true) {
ctremaining = lentext - ixtext;
if (ctremaining <= 0)
break;
for (i = 0; i < 3; i++) {
unsigned long ix = ixtext + i;
if (ix < lentext)
input[i] = raw[ix];
else
input[i] = 0;
}
output[0] = (input[0] & 0xFC) >> 2;
output[1] = ((input[0] & 0x03) << 4) | ((input[1] & 0xF0) >> 4);
output[2] = ((input[1] & 0x0F) << 2) | ((input[2] & 0xC0) >> 6);
output[3] = input[2] & 0x3F;
ctcopy = 4;
switch (ctremaining) {
case 1:
ctcopy = 2;
break;
case 2:
ctcopy = 3;
break;
}
for (i = 0; i < ctcopy; i++)
[result appendString: [NSString stringWithFormat: @"%c", base64EncodingTable[output[i]]]];
for (i = ctcopy; i < 4; i++)
[result appendString: @"="];
ixtext += 3;
charsonline += 4;
if ((length > 0) && (charsonline >= length))
charsonline = 0;
}
return result;
}
-(NSString *)TrimAndConvertDateTimeToNSString:(NSDate *)datTime
{
NSString *dt=[[NSString alloc]initWithFormat:@"%@",datTime];
if([dt length]>=20)
return [dt substringToIndex:19];
else
return dt;
}
-(NSDate*)GetDateFromDDMMYYHHMMSSAA:(NSString*)strDate
{
NSDateFormatter *dateFormat=[[NSDateFormatter alloc]init];
[dateFormat setDateFormat:@"mm/dd/yyyy hh:mm:ss aa"];
return [dateFormat dateFromString:strDate];
}
-(BOOL)PingServiceServer
{
// return NO;
NSURL *url=[NSURL URLWithString:@"http://10.87.253.32/MobilityServices/service.asmx/Ping"];
NSMutableURLRequest *urlReq=[NSMutableURLRequest requestWithURL:url];
[urlReq setTimeoutInterval:12];
NSURLResponse *response;
NSError *error = nil;
NSData *receivedData = [NSURLConnection sendSynchronousRequest:urlReq
returningResponse:&response
error:&error];
if(receivedData !=nil)
{
return YES;
}
else
{
return NO;
}
}
-(NSString*)AddressforLatitude:(NSString *)Latitude Longitude:(NSString *)Longitude
{
NSString *latlngVal=[[NSString alloc]initWithFormat:@"%@,%@",Latitude,Longitude];
NSString *queryString =[NSString stringWithFormat:@"http://maps.googleapis.com/maps/api/geocode/json?latlng=%@&sensor=true",latlngVal];
NSURL *url = [NSURL URLWithString:queryString];
NSMutableURLRequest *urlReq=[NSMutableURLRequest requestWithURL:url];
NSURLResponse *response;
NSError *error = nil;
NSData *receivedData = [NSURLConnection sendSynchronousRequest:urlReq
returningResponse:&response
error:&error];
__block NSString *strFormattedAddress=@"NA";
if(receivedData !=nil)
{
NSDictionary* json =[NSJSONSerialization
JSONObjectWithData:receivedData
options:kNilOptions
error:&error];
if([[json objectForKey:@"status"] isEqual:@"OK"])
{
NSArray *arrResults=[json objectForKey:@"results"];
NSDictionary *dictResults=[arrResults objectAtIndex:0];
[dictResults enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop)
{
if([key isEqualToString:@"formatted_address"])
{
// strFormattedAddress
NSString *address=[[NSString alloc]initWithFormat:@"%@",obj];
strFormattedAddress=address;
}
}
];
}
}
return strFormattedAddress;
}
-(NSData *)CallWebServiceWithURL:(NSURL *)ServiceURL WithData:(NSString *)ServiceData
{
[self ShowNetworkActivityIndicator];
NSString *postData=[[NSString alloc]initWithFormat:@"JsonData=%@",ServiceData.urlencode];
NSLog(@"URL:%@",ServiceURL);
NSLog(@"ServiceData:%@",ServiceData);
NSData *dataPost=[postData dataUsingEncoding:NSUTF8StringEncoding];
NSString *postLength=[[NSString alloc]initWithFormat:@"%d",[dataPost length]];
NSMutableURLRequest *urlReq=[NSMutableURLRequest requestWithURL:ServiceURL];
if([ServiceURL isEqual:[NSURL URLWithString:@"http://10.87.253.32/MobilityServices/service.asmx/SynchronizeMainDB"]])
{
[urlReq setTimeoutInterval:360];
}
else
{
[urlReq setTimeoutInterval:120];
}
[urlReq setHTTPMethod:@"POST"];
[urlReq setHTTPBody:dataPost];
[urlReq setValue:postLength forHTTPHeaderField:@"Content-Length"];
[urlReq setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
NSURLResponse *response;
NSError *error = nil;
NSData *receivedData = [NSURLConnection sendSynchronousRequest:urlReq
returningResponse:&response
error:&error];
[self HideNetworkActivityIndicator];
if(error!=nil)
{
NSLog(@"Error:%@",error);
}
return receivedData;
}
-(NSString *)GetNow
{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd MMM yyyy hh:mm:ss a"];
//Optionally for time zone converstions
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"..."]];
NSString *DateTimeStamp = [formatter stringFromDate:[NSDate date]];
return DateTimeStamp;
}
-(void)showAlertWithMsg:(NSString *)msg
{
if(msg.length>0)
{
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Information" message:msg delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
if([NSThread isMainThread])
{
[alert show];
}
else
{
dispatch_sync(dispatch_get_main_queue(), ^{
[alert show];
});
}
}
}
-(void)lockAppWithMsg:(NSString *)msg
{
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Information" message:msg delegate:self cancelButtonTitle:nil otherButtonTitles:nil, nil];
[alert show];
}
-(void)removeAllSubViewsOf:(UIView *)vu
{
NSArray *subVus=vu.subviews;
for (UIView *view in subVus) {
[view removeFromSuperview];
}
}
-(BOOL)isLblTruncated:(UILabel *)lbl
{
CGSize actualTextSize=[lbl.text sizeWithFont:lbl.font];
CGSize actuallblSize=lbl.bounds.size;
if(actualTextSize.width>actuallblSize.width)
{
return TRUE;
}
return FALSE;
}
-(float)GetActualWidth:(UILabel *)lbl
{
CGSize actualTextSize=[lbl.text sizeWithFont:lbl.font];
return actualTextSize.width;
}
-(NSString *)GetUDID
{
return [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
// return @"8f9d31066786572e9bdff30495d0737100000000";
// return @"27299f03a5b358578b23eee7b7adfb1200000000";
//return [[UIDevice currentDevice]uniqueIdentifier];
}
-(void)saveValue:(NSString *)Value forKey:(NSString *)Key
{
NSUserDefaults *SGGI_prefs = [NSUserDefaults standardUserDefaults];
[SGGI_prefs setObject:Value forKey:Key];
}
-(NSString *)retrieveValueforKey:(NSString *)Key
{
NSUserDefaults *SGGI_prefs = [NSUserDefaults standardUserDefaults];
return [SGGI_prefs stringForKey:Key];
}
-(void)SaveException:(NSString*)Exception
{
[self saveValue:Exception forKey:@"LastException"];
[self PersistStandardUserDefaults];
}
-(void)PersistStandardUserDefaults
{
[[NSUserDefaults standardUserDefaults]synchronize];
}
-(BOOL)IsParam1:(NSString*)param1 EqualTo:(NSString*)param2
{
return ([param1 caseInsensitiveCompare:param2] == NSOrderedSame);
}
-(BOOL)HasExceptionOccured
{
return [self GetLastException].length>0?YES:NO;
}
-(void)ResetLastException
{
[self saveValue:@"" forKey:@"LastException"];
}
-(NSString*)GetLastException
{
return [self retrieveValueforKey:@"LastException"];
}
-(void)sleepforSecs:(float)secs
{
usleep(secs*1000000);
}
-(NSString *)replaceApostrophe:(NSString *)str
{
return [str stringByReplacingOccurrencesOfString:@"'" withString:@"\""];
}
-(UIUserInterfaceIdiom)getUserInterfaceIdiom
{
return [[UIDevice currentDevice]userInterfaceIdiom];
}
-(BOOL)checkandActuponDeviceCompatability
{
if(!(self.getUserInterfaceIdiom==UIUserInterfaceIdiomPad))
{
[self lockAppWithMsg:@"Only iPad is supported"];
return NO;
}
return YES;
}
-(BOOL)CheckAndActUponVersionCompatability
{
if(![[UIDevice currentDevice]systemVersion].integerValue>=6)
{
[self lockAppWithMsg:@"iOs versions greater than 6 only supported"];
return NO;
}
return YES;
}
-(NSString *)turnIntoNSStringfromDoubleValue:(double)doubleValue
{
NSString *Val=[[NSString alloc]initWithFormat:@"%e",doubleValue];
return Val;
}
-(NSString *)GetIntValueOfNSString:(NSString *)strValue
{
NSString *intValue=[[NSString alloc]initWithFormat:@"%d",strValue.intValue];
return intValue;
}
-(NSString *)TurnInToIndianDateTimeFormat:(NSDate *)dat
{
NSDateFormatter *dateFormater = [[NSDateFormatter alloc] init];
[dateFormater setDateFormat: @"dd-MMM-yyyy hh:mm a"];
//HH means railyway hours
//a means am pm
//zzz means gmt time
return [dateFormater stringFromDate:dat];
}
-(void)customizeUISwitch:(UISwitch *)swtch
{
[swtch setOnImage:[UIImage imageNamed:@"UISwitch-Yes"]];
[swtch setOffImage:[UIImage imageNamed:@"UISwitch-No"]];
}
-(UILabel *)GetMeLabelwithText:(NSString *)text withRect:(CGRect)Rect
{
UILabel *label = [[UILabel alloc] initWithFrame:Rect];
label.adjustsFontSizeToFitWidth = NO;
label.alpha = 1.000;
label.autoresizesSubviews = YES;
label.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin;
label.baselineAdjustment = UIBaselineAdjustmentAlignBaselines;
label.clearsContextBeforeDrawing = YES;
label.clipsToBounds = YES;
label.contentMode = UIViewContentModeLeft;
label.enabled = YES;
label.frame = Rect;
label.hidden = NO;
label.multipleTouchEnabled = NO;
label.numberOfLines = 1;
label.opaque = NO;
label.shadowOffset = CGSizeMake(0.0, -1.0);
label.tag = 0;
label.text = text;
label.userInteractionEnabled = NO;
return label;
}
-(UILabel *)GetMeLabelWithLabel:(UILabel *)label withText:(NSString *)text withRect:(CGRect)Rect
{
label = [[UILabel alloc] initWithFrame:Rect];
label.adjustsFontSizeToFitWidth = NO;
label.alpha = 1.000;
label.autoresizesSubviews = YES;
label.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin;
label.baselineAdjustment = UIBaselineAdjustmentAlignBaselines;
label.clearsContextBeforeDrawing = YES;
label.clipsToBounds = YES;
label.contentMode = UIViewContentModeLeft;
label.enabled = YES;
label.frame = Rect;
label.hidden = NO;
label.multipleTouchEnabled = NO;
label.numberOfLines = 1;
label.opaque = NO;
label.shadowOffset = CGSizeMake(0.0, -1.0);
label.tag = 0;
label.text =text;
label.userInteractionEnabled = NO;
return label;
}
-(NSString *)URLEncode:(NSString *)url
{
return [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}
-(NSString*)DateToDDMMYYYYHHMMAA:(NSString*)strDate
{
NSDate *dat=[self GetDateFromDDMMYYHHMMSSAA:strDate];
NSDateFormatter *dateFormater = [[NSDateFormatter alloc] init];
[dateFormater setDateFormat: @"dd-MM-yyyy hh:mm a"];
return [dateFormater stringFromDate:dat];
}
-(NSString *)GetServiceResponseStatusfor:(NSData*)ServiceResponseData
{
NSError *jsonParsingError;
NSLog(@"Dat:%@",[[NSString alloc]initWithData:ServiceResponseData encoding:NSUTF8StringEncoding]);
if(ServiceResponseData!=nil)
{
NSMutableDictionary *ServiceResponseDict=[NSJSONSerialization JSONObjectWithData:ServiceResponseData options:kNilOptions error:&jsonParsingError];
if(jsonParsingError==nil)
{
if([self CheckJsonResponseOf:@"Empty" for:ServiceResponseDict])
{
return @"Data not available";
}
else if([self CheckJsonResponseOf:@"Success" for:ServiceResponseDict])
{
return @"Success";
}
else if([self CheckJsonResponseOf:@"Failure" for:ServiceResponseDict])
{
return @"Failed";
}
else if([self CheckJsonResponseOf:@"Error" for:ServiceResponseDict])
{
return @"Error occured in service";
}
else
{
return @"DataAvailable";
}
}
else if(ServiceResponseDict==nil)
{
return @"Service is not responding";
}
else
{
return @"Error occured in JSON parsing";
}
}
else
{
return @"Service is not responding";
}
}
-(BOOL)CheckJsonResponseOf:(NSString *)Status for:(NSDictionary*)ServiceResponseDict
{
NSString *JsonStatus;
if([Status isEqualToString:@"Empty"])
{
JsonStatus=@"{\"Status\":\"NA\"}";
}
else if ([Status isEqualToString:@"Success"])
{
JsonStatus=@"{\"Status\":\"Success\"}";
}
else if([Status isEqualToString:@"Failure"])
{
JsonStatus=@"{\"Status\":\"Failed\"}";
}
else if([Status isEqualToString:@"Error"])
{
JsonStatus=@"{\"Status\":\"Error\"}";
}
NSData *datJsonStatus=[JsonStatus dataUsingEncoding:NSUTF8StringEncoding];
NSError *Error;
NSDictionary *dictStatus=[NSJSONSerialization JSONObjectWithData:datJsonStatus options:kNilOptions error:&Error];
if([ServiceResponseDict isEqual:dictStatus])
{
return YES;
}
else
{
return NO;
}
}
-(NSString *)GetCurrentYear
{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy"];
NSString *yearString = [formatter stringFromDate:[NSDate date]];
return yearString;
}
-(NSString *)GetCurrentMonth
{
NSDateFormatter *formatter=[[NSDateFormatter alloc]init];
[formatter setDateFormat:@"MMM"];
NSString *monthString=[formatter stringFromDate:[NSDate date]];
return monthString;
}
-(void)ShowText:(NSString *)Text AloneOnView:(UIView *)vuContentHolder
{
if([Text isEqualToString:@"Empty"])
{
Text=@"No records.";
}
if([NSThread isMainThread])
{
[self ShowTheText:Text AloneOnView:vuContentHolder];
}
else
{
dispatch_sync(dispatch_get_main_queue(), ^{
[self ShowTheText:Text AloneOnView:vuContentHolder];
});
}
}
-(void)ShowTheText:(NSString *)Text AloneOnView:(UIView *)vuContentHolder
{
NSArray *ChildViews = [vuContentHolder subviews];
for (UIView *childView in ChildViews) {
[childView removeFromSuperview];
}
/// vuContentHolder.frame.origin
UIView *vuwarning=[[UIView alloc]initWithFrame:CGRectMake(50,0,500,145)];
[vuwarning setBackgroundColor:[UIColor whiteColor]];
UIImageView *imgVuWarningMsg=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"Problem_exclamation"]];
[imgVuWarningMsg setFrame:CGRectMake(10,10,125,125)];
UIFont *fnt=[UIFont fontWithName:@"Palatino" size:20];
UITextView *txtVuObj=[[UITextView alloc]initWithFrame:CGRectMake(150,55,350,30)];
[txtVuObj setUserInteractionEnabled:NO];
[txtVuObj setFont:fnt];
[txtVuObj setText:Text];
[vuwarning addSubview:txtVuObj];
[vuwarning addSubview:imgVuWarningMsg];
[vuContentHolder addSubview:vuwarning];
}
-(NSString *)ReplaceZeroWithHyphen:(NSString *)Input
{
if (Input.floatValue==0.0f) {
return @" - ";
}
return Input;
}
+(UIImage*)Base64ToImage:(NSString *)Base64
{
NSString* base64String=[[NSString alloc]initWithFormat:@"data:image/png;base64,%@",Base64];
base64String=[base64String stringByReplacingOccurrencesOfString:@"*" withString:@"+"];
NSURL *base64url = [NSURL URLWithString:base64String];
NSData *imageData = [NSData dataWithContentsOfURL:base64url];
UIImage *img=[UIImage imageWithData:imageData];
return img;
}
-(BOOL)isEmpty:(NSString *)Val
{
if (Val.floatValue==0.0f || Val.intValue==0 || Val.floatValue==0.00) {
return TRUE;
}
return false;
}
-(void)ChangeAlignmentFor:(UILabel *)lbl
{
if([self isEmpty:[lbl text]] || [[lbl text] isEqualToString:@"-"])
{
[lbl setText:@"-"];
[lbl setTextAlignment:NSTextAlignmentCenter];
}
else
{
[lbl setText:[[lbl text] stringByAppendingString:@" "]];
[lbl setTextAlignment:NSTextAlignmentRight];
}
// [self ReplaceZeroWithHyphen:[lbl text]];
}
-(void)RoundTheCornerOf:(UIView *)vu with:(NSNumber*)radius
{
[vu.layer setCornerRadius:radius.floatValue];
//Providing shadow effect
[vu.layer setMasksToBounds:NO];
// [centreView.layer setShadowColor:self.vuSyncProgressIndicator.backgroundColor.CGColor];
[vu.layer setShadowOpacity:0.65f];
[vu.layer setShadowRadius:100.0f];
[vu.layer setShadowOffset:CGSizeMake(0,0)];
}
-(void)JustRoundTheCornerOf:(UIView *)vu with:(NSNumber*)radius
{
[vu.layer setCornerRadius:radius.floatValue];
}
-(void)JustPutTheBorderTo:(UIView *)vu withWidth:(NSNumber*)BorderWidth withColor:(UIColor*)borderColor
{
[vu.layer setMasksToBounds:YES];
[vu.layer setBorderWidth:BorderWidth.floatValue];
[vu.layer setBorderColor:[borderColor CGColor]];
}
-(NSString*)CompareFirstDate:(NSDate *)firstDate with:(NSDate *)secondDate
{
NSComparisonResult result;
result = [firstDate compare:secondDate]; // comparing two dates
if(result==NSOrderedAscending)
return @"firstDateIsLess";
else if(result==NSOrderedDescending)
return @"secondDateIsLess";
else
return @"bothDatesRSame";
}
-(NSString*)CompareFirstTime:(NSString *)firstTime with:(NSString *)secondTime
{
return [self CompareFirstDate:[self GetDateTimeFromTime:firstTime] with:[self GetDateTimeFromTime:secondTime]];
}
-(NSDate*)GetDateTimeFromTime:(NSString*)time
{
NSDateFormatter *datFormatObj=[[NSDateFormatter alloc]init];
[datFormatObj setDateFormat:@"dd-MMM-yyyy hh:mm a"];
[datFormatObj setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
NSString *dat=[[NSString alloc]initWithFormat:@"01-Jan-2013 %@",time];
return [datFormatObj dateFromString:dat];
}
- (UIColor *)getUIColorObjectFromHexString:(NSString *)hexStr alpha:(CGFloat)alpha
{
// Convert hex string to an integer
unsigned int hexint = [self intFromHexString:hexStr];
// Create color object, specifying alpha as well
UIColor *color =
[UIColor colorWithRed:((CGFloat) ((hexint & 0xFF0000) >> 16))/255
green:((CGFloat) ((hexint & 0xFF00) >> 8))/255
blue:((CGFloat) (hexint & 0xFF))/255
alpha:alpha];
return color;
}
- (unsigned int)intFromHexString:(NSString *)hexStr
{
unsigned int hexInt = 0;
// Create scanner
NSScanner *scanner = [NSScanner scannerWithString:hexStr];
// Tell scanner to skip the # character
[scanner setCharactersToBeSkipped:[NSCharacterSet characterSetWithCharactersInString:@"#"]];
// Scan hex value
[scanner scanHexInt:&hexInt];
return hexInt;
}
-(void)DisableTouchEvents;
{
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
}
-(void)EnableTouchEvents
{
[[UIApplication sharedApplication] endIgnoringInteractionEvents];
}
-(void)DoNotAllowIpad2LockScreen
{
// Disable the idle timer
[[UIApplication sharedApplication] setIdleTimerDisabled: YES];
}
-(void)AllowIpad2LockScreen
{
// Disable the idle timer
[[UIApplication sharedApplication] setIdleTimerDisabled: NO];
}
-(CGSize)sizeWithFont:(UIFont *)fnt withText:(NSString *)str
{
// Get the width of a string ...
CGSize size = [str sizeWithFont:fnt];
return size;
}
-(void)ShowNetworkActivityIndicator
{
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
}
-(void)HideNetworkActivityIndicator
{
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
}
-(void)SetAppBadgeNumber:(int)badgeNumber
{ NSLog(@"AppIconBadgeNumber:%d",badgeNumber);
[[UIApplication sharedApplication]setApplicationIconBadgeNumber:badgeNumber];
}
-(NSString*)FormatTheNumber:(NSString*)currency
{
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSString *formattedString = [numberFormatter stringFromNumber:[self ConvertStringToNumber:currency]];
formattedString = [formattedString stringByReplacingOccurrencesOfString:@"$" withString:@""];
formattedString = [formattedString stringByReplacingOccurrencesOfString:@"₹" withString:@""];
formattedString = [formattedString stringByReplacingOccurrencesOfString:@".00" withString:@""];
formattedString= [formattedString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
return formattedString;
}
-(NSString*)FormatTheNumberAsIndianCurrency:(NSString*)currency
{
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSString *formattedString = [numberFormatter stringFromNumber:[self ConvertStringToNumber:currency]];
formattedString = [formattedString stringByReplacingOccurrencesOfString:@"$" withString:@"₹"];
formattedString = [formattedString stringByReplacingOccurrencesOfString:@".00" withString:@""];
formattedString= [formattedString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
return formattedString;
}
-(NSNumber*)ConvertStringToNumber:(NSString *)str
{
NSNumber *num=[[NSNumber alloc]initWithInt:[self RoundOffValues:str.floatValue]];
return num;
}
-(BOOL)Contains:(NSString *)StrSearchTerm on:(NSString *)StrText
{
return [StrText rangeOfString:StrSearchTerm options:NSCaseInsensitiveSearch].location==NSNotFound?FALSE:TRUE;
}
-(int)RoundOffValues:(float)val
{
return lround(val);
}
-(void)InstallApp:(NSString*)url
{
NSString *installtionURL=[[NSString alloc]initWithFormat:@"itms-services:///?action=download-manifest&url=%@",url];
[self OpenApps:installtionURL];
}
-(void)OpenApps:(NSString *)url//if u give a url it is opened up in safari or if u custom app url app gets opened up
{
NSURL *urlObj = [NSURL URLWithString:url];
[[UIApplication sharedApplication] openURL:urlObj];
}
-(NSString*)FormatTheNumberAsCommaSeparatedValues:(float)Input
{
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSString *strFloat = [formatter stringFromNumber:[NSNumber numberWithDouble:Input]];
return strFloat;
}
-(NSString*)FormatTheNumberAsCommaSeparatedCurrencyValues:(float)Input
{
NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
double d2 = 234567.89;
NSString *strCurrency = [currencyFormatter stringFromNumber:[NSNumber numberWithDouble:d2]];
return strCurrency;
}
-(NSString*)ChangeTheNumberIntoText:(int)Number
{
NSNumber *value = [NSNumber numberWithInt:Number];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle: NSNumberFormatterSpellOutStyle];
return [formatter stringFromNumber:value];
}
-(NSString*)ChangeTheFloatNumberIntoText:(double)Number
{
// Number to output
NSDecimalNumber *value = [NSDecimalNumber decimalNumberWithMantissa:106299 exponent:-2 isNegative:NO];
// Create formatter
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
// Set formatter style to spell out
[formatter setNumberStyle: NSNumberFormatterSpellOutStyle];
return [formatter stringFromNumber:value];
}
-(NSString*)DateToYYYYMMDD:(NSDate*)date
{
NSDateFormatter *datFormatYYYYMMDD=[[NSDateFormatter alloc]init];
[datFormatYYYYMMDD setDateFormat:@"yyyy-MM-dd"];
return [datFormatYYYYMMDD stringFromDate:date];
}
-(NSString*)DateToYYYYMMDDWithoutSpace:(NSDate*)date
{
NSCalendar *calObj=[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *dtComponents=[calObj components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:date];
NSString *strDate=[[NSString alloc]initWithFormat:@"%d%02d%02d",dtComponents.year,dtComponents.month,dtComponents.day];
return strDate;
}
-(NSDate*)SubtractDays:(int)days fromDate:(NSDate*)date
{
NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
[dateComponents setDay:-days];
NSDate *newDate = [[NSCalendar currentCalendar] dateByAddingComponents:dateComponents toDate:date options:0];
return newDate;
}
-(NSString*)GetPresentDateTimeStamp
{
NSDateFormatter *fromat=[[NSDateFormatter alloc]init];
[fromat setDateFormat:@"dd-MM-YYYY hh:mm:ss"];
[fromat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"Asia/Kolkata"]];
return [fromat stringFromDate:[NSDate date]];
}
-(NSString*)DateToHHMM:(NSDate *)date
{
NSDateFormatter *fromat=[[NSDateFormatter alloc]init];
[fromat setDateFormat:@"HH:mm aaa"];
[fromat setTimeStyle:NSDateFormatterShortStyle];
[fromat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
return [fromat stringFromDate:date];
}
-(NSDate*)GetDateFromDay:(int)Day Month:(int)Month Year:(int)Year Hour:(int)Hour Minutes:(int)Minutes Seconds:(int)Seconds
{
NSDateComponents *datComp=[[NSDateComponents alloc]init];
[datComp setDay:Day];
[datComp setMonth:Month];
[datComp setYear:Year];
[datComp setHour:5+Hour];
[datComp setMinute:30+Minutes];
[datComp setSecond:0+Seconds];
NSCalendar *gregCalObj=[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
return [gregCalObj dateFromComponents:datComp];
}
-(NSString*)BuildDateTimeStringForDate:(NSString*)Date Time:(NSString*)Time
{
BOOL isPM;
int hours,minutes;
if([self Contains:@"PM" on:Time])
{
isPM=YES;
}
else
{
isPM=NO;
}
Time=[Time stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
Time=[Time substringToIndex:Time.length-2];
Time=[Time stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSArray *arr=[Time componentsSeparatedByString:@":"];
NSString *hrs=[arr objectAtIndex:0];
hours=hrs.intValue;
NSString *mins=[arr objectAtIndex:1];
minutes=mins.intValue;
if(isPM)
{
if (hours!=12) {
hours+=12;
}
}
NSString *strDate=[[NSString alloc]initWithFormat:@"%@ %d:%d:00",Date,hours,minutes];
return strDate;
}
-(NSDate*)ConvertToDateFromString:(NSString*)strDate
{
NSDateFormatter *datFormatter=[[NSDateFormatter alloc]init];
[datFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[datFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
return [datFormatter dateFromString:strDate];
}
-(NSString*)ReturnThePriorityForSlide:(UISlider*)sdr
{
if(sdr.value==0)
{
return @"Low";
}
else if (sdr.value==1)
{
return @"High";
}
else
{
return @"Medium";
}
}
-(NSString*)ReturnThePriorityForVal:(NSString*)val
{
if (val.floatValue==1)
{
return @"High";
}
else if(val.floatValue>0)
{
return @"Medium";
}
else
{
return @"Low";
}
}
-(NSString*)TrimTheString:(NSString *)Str
{
return [Str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
-(BOOL)IsTextFieldEmpty:(UITextField*)txtFi
{
if([self TrimTheString:txtFi.text].length==0)
return YES;
else
return NO;
}
-(BOOL)IsTextViewEmpty:(UITextView*)txtVu withPlaceHolder:(NSString*)placeholder
{
if([self TrimTheString:[txtVu.text stringByReplacingOccurrencesOfString:placeholder withString:@""]].length==0)
return YES;
else
return NO;
}
-(NSDate*)GetDateFromYYYYMMDD:(NSString*)strDate
{
NSDateFormatter *datFormatter=[[NSDateFormatter alloc]init];
[datFormatter setDateFormat:@"yyyy-MM-dd"];
// NSTimeZone *tmZoneObj=[NSTimeZone timeZoneWithName:@"UTC"];
// [datFormatter setTimeZone:tmZoneObj];
return [datFormatter dateFromString:strDate];
}
-(NSDate*)GetTimeFromHHMMAA:(NSString *)strTime
{
NSDateFormatter *datFormatter=[[NSDateFormatter alloc]init];
[datFormatter setDateFormat:@"hh:mm a"];
// NSTimeZone *tmZoneObj=[NSTimeZone timeZoneWithName:@"UTC"];
// [datFormatter setTimeZone:tmZoneObj];
return [datFormatter dateFromString:strTime];
}
-(NSArray*)GetAllTimeZones
{
return [NSTimeZone knownTimeZoneNames];
}
-(NSString*)ReadCurrentAppVersionLong
{
return [[NSBundle mainBundle]objectForInfoDictionaryKey:@"CFBundleVersion"];
}
-(NSString*)ReadCurrentAppVersionShort
{
return [[NSBundle mainBundle]objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
}
-(NSString*)ReadAppDelegateInstanceVariable:(NSString*)InstVar
{
SGGI_AppDelegate *appDel=(SGGI_AppDelegate*)[UIApplication sharedApplication].delegate;
return [appDel valueForKey:InstVar];
// [appDelegate valueForKey:InstVar];
//Both are correct
}
-(void)CallAppDelegateSelector:(NSString*)selector
{
SGGI_AppDelegate *appDel=(SGGI_AppDelegate*)[UIApplication sharedApplication].delegate;
SEL selectorAppDel=NSSelectorFromString(selector);
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
[appDel performSelector:selectorAppDel];
#pragma clang diagnostic pop
//[appDelegate performSelector:selectorAppDel];
//Both are correct
}
-(double)GetLatitude
{
SGGI_GeoLocation *geoLocObj=[SGGI_GeoLocation sharedGeoLocationManager];
return [geoLocObj GetLatitude];
}
-(double)GetLongitude
{
SGGI_GeoLocation *geoLocObj=[SGGI_GeoLocation sharedGeoLocationManager];
return [geoLocObj GetLongitude];
}
-(UIImage*)ExtractImageOn:(CGPoint)pointExtractedImg ofSize:(CGSize)sizeExtractedImg FromSpriteSheet:(UIImage*)imgSpriteSheet
{
UIImage *ExtractedImage;
CGRect rectExtractedImage;
rectExtractedImage=CGRectMake(pointExtractedImg.x,pointExtractedImg.y,sizeExtractedImg.width,sizeExtractedImg.height);
CGImageRef imgRefSpriteSheet=imgSpriteSheet.CGImage;
CGImageRef imgRefExtracted=CGImageCreateWithImageInRect(imgRefSpriteSheet,rectExtractedImage);
ExtractedImage=[UIImage imageWithCGImage:imgRefExtracted];
CGImageRelease(imgRefExtracted);
//CGImageRelease(imgRefSpriteSheet); I have commented it because we should not release the object that we don't own..So why do we release imgRefExtracted alone? bcuz it has name create in its method so the ownership comes to us so we have to release it.
return ExtractedImage;
}
-(UIImage *)writeText:(NSString *)text1 toImage:(UIImage *)img{
CGSize sizeText = [text1 sizeWithFont:[UIFont fontWithName:@"Helvetica" size:36] minFontSize:36 actualFontSize:nil forWidth:783 lineBreakMode:NSLineBreakByTruncatingTail];
CGFloat posX = 1024.0 - 230.0 - sizeText.width;
UIGraphicsBeginImageContextWithOptions(img.size, NO, 0.0f);
[img drawAtPoint:CGPointMake(0.0f, 0.0f)];
[text1 drawAtPoint:CGPointMake(posX, 588.0) withFont:[UIFont fontWithName:@"Helvetica" size:36]];
UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return result;
}
-(BOOL) validEmailAddress:(NSString*) emailStr {
NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailValidation = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
if (![emailValidation evaluateWithObject:emailStr]) {
return FALSE;
}
return TRUE;
}
//SSID-Srevice Set Identifier(Wifi network name)
+ (NSString *)currentWifiSSID {
NSString *ssid = nil;
NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();
for (NSString *ifnam in ifs) {
NSDictionary *info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
NSLog(@"info:%@",info);
if (info[@"SSID"]) {
ssid = info[@"SSID"];
}
}
return ssid;
}
//BSSID-Basic Service Set Identifier(Wifi access point physicall address)
+ (NSString *)currentWifiBSSID {
NSString *bssid = nil;
NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();
for (NSString *ifnam in ifs) {
NSDictionary *info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
NSLog(@"info:%@",info);
if (info[@"BSSID"]) {
bssid = info[@"BSSID"];
}
}
return bssid;
}
-(NSString*)GetCarrierName
{
CTTelephonyNetworkInfo *netInfo=[[CTTelephonyNetworkInfo alloc]init];
CTCarrier *carrier=[netInfo subscriberCellularProvider];
NSLog(@"Carrier Name:%@ mobileCountryCode:%@ mobileNetworkCode:%@",[carrier carrierName],[carrier mobileCountryCode],[carrier mobileNetworkCode]);
return [carrier carrierName];
}
-(void)LoadLocalHtmlFile:(NSString *)file onWebView:(UIWebView*)webVu
{
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:file ofType:@"html"];
NSString* htmlString = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil];
[webVu loadHTMLString:htmlString baseURL:nil];
//[web loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"Test" ofType:@"html"]isDirectory:NO]]];
}
//-(int)GetSignalStrength
//{
// return CTGetSignalStrength();
//}
-(BOOL)IsValidTextField:(UITextField*)textField WithRange:(NSRange)range WithReplacementString:(NSString*)string withCharacterLimit:(int)characterLimit andAllowedChars:(NSString*)AllowedCharacters
{
NSUInteger newLength = [textField.text length] + [string length] - range.length;
NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:AllowedCharacters] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
return (([string isEqualToString:filtered])&&(newLength <= characterLimit));
}
-(void)HideAllTheViewsInView:(UIView *)vu
{
NSArray *arrVu=[vu subviews];
for (UIView *vu in arrVu) {
[vu setHidden:YES];
}
}
-(void)AddAppLogFor:(NSString*)AccessedModule
{
SGGI_AppLog *appLogObj=[[SGGI_AppLog alloc]init];
[appLogObj setActivityId:[self retrieveValueforKey:@"LastActivityId"]];
[appLogObj setLicenseKey:[self retrieveValueforKey:@"LicenseKey"]];
[appLogObj setLatitude:[[NSString alloc]initWithFormat:@"%f",[self GetLatitude]]];
[appLogObj setLongitude:[[NSString alloc]initWithFormat:@"%f",[self GetLongitude]]];
[appLogObj setAccessedModule:AccessedModule];
[appLogObj AddAppLog];
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment