Files
eqn.ios/Sources/Earthquake Network/model/FiltroEnti.m
T
Andrea Busi 4d8bbdc7ef Production version
Add to Git the current app version (the same available in the OriginalZip folder)
2020-07-24 15:33:53 +02:00

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