4d8bbdc7ef
Add to Git the current app version (the same available in the OriginalZip folder)
93 lines
3.8 KiB
Objective-C
93 lines
3.8 KiB
Objective-C
//
|
|
// FiltroEnti.m
|
|
// Earthquake Network
|
|
//
|
|
// Created by Luca Beretta on 09/03/2019.
|
|
// Copyright © 2019 Luca Beretta. All rights reserved.
|
|
//
|
|
|
|
#import "FiltroEnti.h"
|
|
#import "costanti.h"
|
|
|
|
@implementation FiltroEnti
|
|
|
|
static FiltroEnti *_sharedInstance = nil;
|
|
|
|
|
|
+(FiltroEnti *)defaultFiltro{
|
|
|
|
static FiltroEnti *instance = nil;
|
|
static dispatch_once_t onceToken;
|
|
dispatch_once(&onceToken, ^{
|
|
instance = [[self alloc]init];
|
|
[instance initSingleton];
|
|
});
|
|
return instance;
|
|
}
|
|
|
|
-(void)initSingleton{
|
|
|
|
self.magnitudoMinima = [[NSUserDefaults standardUserDefaults] objectForKey:EQN_MAGNITUDO_MINIMA];
|
|
if (!self.magnitudoMinima)
|
|
self.magnitudoMinima = @"2.0";
|
|
self.distanzaMassima = [[NSUserDefaults standardUserDefaults] objectForKey:EQN_DISTANZA_MASSIMA];
|
|
if (!self.distanzaMassima)
|
|
self.distanzaMassima = NSLocalizedString(@"Qualsiasi distanza", @"");
|
|
self.etaMassima = [[NSUserDefaults standardUserDefaults] objectForKey:EQN_ETA_MASSIMA];
|
|
if (!self.etaMassima)
|
|
self.etaMassima = NSLocalizedString(@"Un giorno", @"");
|
|
self.sismiForti = [[NSUserDefaults standardUserDefaults] objectForKey:EQN_SISMI_FORTI];
|
|
if (!self.sismiForti)
|
|
self.sismiForti = @"5.5";
|
|
}
|
|
|
|
-(void)saveFiltro;
|
|
{
|
|
[[NSUserDefaults standardUserDefaults] setObject:self.magnitudoMinima forKey:EQN_MAGNITUDO_MINIMA];
|
|
[[NSUserDefaults standardUserDefaults] setObject:self.distanzaMassima forKey:EQN_DISTANZA_MASSIMA];
|
|
[[NSUserDefaults standardUserDefaults] setObject:self.etaMassima forKey:EQN_ETA_MASSIMA];
|
|
[[NSUserDefaults standardUserDefaults] setObject:self.sismiForti forKey:EQN_SISMI_FORTI];
|
|
}
|
|
|
|
-(NSPredicate *)getPredicateWithFilter{
|
|
|
|
NSString * predicateFormat = [NSString stringWithFormat:@"(SELF.magnitude.doubleValue >= %f)", self.magnitudoMinima.doubleValue];
|
|
|
|
if (![self.distanzaMassima isEqualToString:NSLocalizedString(@"Qualsiasi distanza", @"")]) {
|
|
|
|
predicateFormat = [predicateFormat stringByAppendingString:[NSString stringWithFormat:@"&&(SELF.distanzaKM.doubleValue <= %f)", self.distanzaMassima.doubleValue]];
|
|
}
|
|
if ([self.etaMassima isEqualToString:NSLocalizedString(@"Un giorno", @"")]) {
|
|
|
|
predicateFormat = [predicateFormat stringByAppendingString:[NSString stringWithFormat:@"&&(SELF.differenza.doubleValue <= %f)", 24.0*60.0]];
|
|
}
|
|
if ([self.etaMassima isEqualToString:NSLocalizedString(@"Dodici ore", @"")]) {
|
|
|
|
predicateFormat = [predicateFormat stringByAppendingString:[NSString stringWithFormat:@"&&(SELF.differenza.doubleValue <= %f)", 12.0*60.0]];
|
|
}
|
|
if ([self.etaMassima isEqualToString:NSLocalizedString(@"Sei ore", @"")]) {
|
|
|
|
predicateFormat = [predicateFormat stringByAppendingString:[NSString stringWithFormat:@"&&(SELF.differenza.doubleValue <= %f)", 6.0*60.0]];
|
|
}
|
|
if ([self.etaMassima isEqualToString:NSLocalizedString(@"Due ore", @"")]) {
|
|
|
|
predicateFormat = [predicateFormat stringByAppendingString:[NSString stringWithFormat:@"&&(SELF.differenza.doubleValue <= %f)", 2*60.0]];
|
|
}
|
|
if ([self.etaMassima isEqualToString:NSLocalizedString(@"Un ora", @"")]) {
|
|
|
|
predicateFormat = [predicateFormat stringByAppendingString:[NSString stringWithFormat:@"&&(SELF.differenza.doubleValue <= %f)", 60.0]];
|
|
}
|
|
if ([self.etaMassima isEqualToString:NSLocalizedString(@"Dieci minuti", @"")]) {
|
|
|
|
predicateFormat = [predicateFormat stringByAppendingString:[NSString stringWithFormat:@"&&(SELF.differenza.doubleValue <= %f)", 10.0]];
|
|
}
|
|
|
|
predicateFormat = [predicateFormat stringByAppendingString:[NSString stringWithFormat:@"||(SELF.magnitude.doubleValue >= %f)", self.sismiForti.doubleValue]];
|
|
|
|
NSPredicate * magnitudo = [NSPredicate predicateWithFormat: predicateFormat];
|
|
|
|
return magnitudo;
|
|
|
|
}
|
|
@end
|