Files
eqn.ios/Sources/Earthquake Network/model/EQNUtility.m
T

221 lines
7.9 KiB
Objective-C

//
// EQNUtility.m
// Earthquake Network
//
// Created by Luca Beretta on 02/11/18.
// Copyright © 2018 Luca Beretta. All rights reserved.
//
#import "EQNUtility.h"
#import "EQNSegnalazione.h"
#import "EQNSegnalazione.h"
#import "EQNPastquakes.h"
#import "EQNSisma.h"
@implementation EQNUtility
+(NSDate *)getDataFromString:(NSString *)stringData{
NSDateFormatter *dataFormatter = [[NSDateFormatter alloc] init];
[dataFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
return [dataFormatter dateFromString:stringData];
}
+(NSDate *)impostaFiltroWithTime:(EQNFiltriMappa )filtro{
unsigned unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute;
NSDate *now = [NSDate date];
NSCalendar *gregorian = [NSCalendar currentCalendar];
NSDateComponents *comps = [gregorian components:unitFlags fromDate:now];
switch (filtro) {
case unAnno:
[comps setYear:[comps year] - 1];
break;
case unMese:
[comps setMonth:[comps month] - 1];
break;
case unaSettimana:
[comps setDay:[comps day] - 7];
break;
case unGiorno:
[comps setDay:[comps day] - 1];
break;
case dodiciOre:
[comps setHour:[comps hour] - 10];
break;
case dueOre:
[comps setHour:[comps hour] - 2];
break;
case unOra:
[comps setHour:[comps hour] - 1];
break;
case dieciMinuti:
[comps setMinute:[comps minute] - 10];
break;
default:
break;
}
return [gregorian dateFromComponents:comps];
}
+(NSArray *)applicaFiltroWithTime:(EQNFiltriMappa )filtro withList:(NSArray *)list {
NSDate *date = [self impostaFiltroWithTime:filtro];
NSMutableArray *temp = [NSMutableArray array];
for (id object in list) {
if ([object isKindOfClass:[EQNPastquakes class]]) {
EQNPastquakes *anPasq = (EQNPastquakes *)object;
if ([anPasq.date compare:date] == NSOrderedDescending) {
[temp addObject:anPasq];
NSLog(@"\n\naggiunto %@ filtro %@", anPasq.date, date);
}
else{
NSLog(@"\n\nNon aggiunto %@ filtro %@", anPasq.date, date);
}
} else if ([object isKindOfClass:[EQNSegnalazione class]]){
EQNSegnalazione *anSegn = (EQNSegnalazione *)object;
if ([anSegn.date compare:date] == NSOrderedDescending) {
[temp addObject:anSegn];
NSLog(@"\n\naggiunto %@ filtro %@", anSegn.date, date);
}
else{
NSLog(@"\n\nNon aggiunto %@ filtro %@", anSegn.date, date);
}
}
}
NSLog(@"filtrati %lu tutti %lu", (unsigned long)temp.count, (unsigned long)list.count);
return temp;
}
+(void)writeArrayWithCustomObjToUserDefaults:(NSString *)keyName withArray:(NSArray *)myArray
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:myArray requiringSecureCoding:NO error:nil];
[defaults setObject:data forKey:keyName];
[defaults synchronize];
[[NSUserDefaults standardUserDefaults] synchronize];
}
+(NSArray *)readArrayWithCustomObjFromUserDefaults:(NSString*)keyName
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *data = [defaults objectForKey:keyName];
NSArray *myArray = [NSKeyedUnarchiver unarchiveObjectWithData:data];
[defaults synchronize];
return myArray;
}
+(void)writeArrayWithCustomObjToUserDefaults:(NSString *)keyName withDict:(NSDictionary *)myDict
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:myDict requiringSecureCoding:NO error:nil];
[defaults setObject:data forKey:keyName];
[defaults synchronize];
[[NSUserDefaults standardUserDefaults] synchronize];
}
+(NSDictionary *)readDictyWithCustomObjFromUserDefaults:(NSString*)keyName
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *data = [defaults objectForKey:keyName];
NSDictionary *myDict = [NSKeyedUnarchiver unarchiveObjectWithData:data];
[defaults synchronize];
return myDict;
}
+ (void)saveCustomObject:(id)object key:(NSString *)key {
NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:object requiringSecureCoding:NO error:nil];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:encodedObject forKey:key];
[defaults synchronize];
}
+ (id )loadCustomObjectWithKey:(NSString *)key {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *encodedObject = [defaults objectForKey:key];
id object = [NSKeyedUnarchiver unarchiveObjectWithData:encodedObject];
return object;
}
+(NSString *)clearStringMessaggi:(NSString *)messaggio{
NSString *clearString = [messaggio stringByReplacingOccurrencesOfString:@" " withString:@""];
clearString = [clearString stringByReplacingOccurrencesOfString:@"[" withString:@""];
clearString = [clearString stringByReplacingOccurrencesOfString:@"]" withString:@""];
clearString = [clearString stringByReplacingOccurrencesOfString:@"\"" withString:@""];
clearString = [clearString stringByReplacingOccurrencesOfString:@"<" withString:@""];
clearString = [clearString stringByReplacingOccurrencesOfString:@">" withString:@""];
clearString = [clearString stringByReplacingOccurrencesOfString:@"/" withString:@""];
clearString = [clearString stringByReplacingOccurrencesOfString:@"span" withString:@""];
return clearString;
}
+(NSInteger )getDifferenceMinute:(NSDate *)date{
NSDate *now = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:NSCalendarUnitMinute
fromDate:date
toDate:now
options:0];
return components.minute;
}
+ (GADBannerView *)ottieniBannerWithController:(UIViewController *)controller position:(BOOL)isButton
{
if ([EQNPurchaseUtility isProVersionEnabled]) {
return nil;
}
GADBannerView *bannerView = [[GADBannerView alloc]
initWithAdSize:kGADAdSizeBanner];
bannerView.adUnitID = EQN_ADMOB_ANNUNCIO_IDA;
bannerView.rootViewController = controller;
bannerView.backgroundColor = [UIColor whiteColor];
[bannerView loadRequest:[GADRequest request]];
[self addBanner:bannerView toController:controller isTopAnchored:isButton];
return bannerView;
}
+ (void)addBanner:(UIView *)bannerView toController:(UIViewController *)controller isTopAnchored:(BOOL)isButton
{
bannerView.translatesAutoresizingMaskIntoConstraints = NO;
[controller.view addSubview:bannerView];
[[bannerView.centerXAnchor constraintEqualToAnchor:controller.view.centerXAnchor] setActive:YES];
NSLayoutAnchor *parentAnchor = isButton ? controller.view.safeAreaLayoutGuide.bottomAnchor : controller.view.safeAreaLayoutGuide.topAnchor;
NSLayoutAnchor *bannerAnchor = isButton ? bannerView.bottomAnchor : bannerView.topAnchor;
[[bannerAnchor constraintEqualToAnchor:parentAnchor] setActive:YES];
}
+(UIViewController *)shareFileWithPath:(id )path{
NSArray* dataToShare = @[path];
UIActivityViewController* activityViewController =[[UIActivityViewController alloc] initWithActivityItems:dataToShare applicationActivities:nil];
activityViewController.excludedActivityTypes = @[UIActivityTypeAirDrop];
return activityViewController;
}
@end