refactor: Use updated API to retrieve seismics

This commit is contained in:
Andrea Busi
2020-09-21 14:44:16 +02:00
parent ea2573c17c
commit 8a4f6436f0
10 changed files with 184 additions and 174 deletions
@@ -565,8 +565,6 @@
8CF4F4DA216D44930057110B /* EQNPastquakes.m */,
8C593E88217BA2470008B260 /* EQNSegnalazione.h */,
8C593E89217BA2470008B260 /* EQNSegnalazione.m */,
8CAFD7C321825E4A00F8BD29 /* EQNSisma.h */,
8CAFD7C421825E4A00F8BD29 /* EQNSisma.m */,
8CF05B55218C93BA0055012B /* EQNUtility.h */,
8CF05B56218C93BA0055012B /* EQNUtility.m */,
8CFA6321219A2C610099EB0E /* Tsunami.h */,
@@ -679,6 +677,8 @@
DCD4571B24F6CF0D00B58304 /* EQNGenericValue.swift */,
DCF9E14C24F6D1AA002B6B1D /* EQNData.swift */,
DC4B67602517833F00634277 /* EQNSeismic.swift */,
8CAFD7C321825E4A00F8BD29 /* EQNSisma.h */,
8CAFD7C421825E4A00F8BD29 /* EQNSisma.m */,
);
path = Models;
sourceTree = "<group>";
+7 -2
View File
@@ -19,6 +19,13 @@ static NSString * const EQNTwitterProfileUrl = @"https://twitter.com/SismoDetect
// costante gravitazionale
#define G 9.81
#pragma mark - Server APIs
/// Download reti sismiche
static NSString * const EQNServerUrlDownloadRetiSismiche = @"https://srv.earthquakenetwork.it/distquake_download_automatic18.php";
// URL registrazione server
#define URL_SERVER_REGISTRAZIONE @"http://srv.earthquakenetwork.it/distquake_upload_gcm_regid2.php"
// URL posizione server
@@ -55,8 +62,6 @@ static NSString * const EQNTwitterProfileUrl = @"https://twitter.com/SismoDetect
#define TEMPO_INVIO_COMMENTO 30
// download reti sismiche
#define URL_SERVER_DOWNLOAD_RETI_SISMICHE @"http://srv.earthquakenetwork.it/distquake_download_automatic14.php"
// Tsunami
#define URL_SERVER_DOWNLOAD_TSUNAMI @"http://srv.earthquakenetwork.it/distquake_download_tsunami.php"
@@ -144,7 +144,7 @@ import Foundation
if !filterShowNear {
keep = false
} else {
if seismic.differenza.doubleValue > filterShowNearRadius {
if seismic.difference.doubleValue > filterShowNearRadius {
keep = false
}
}
@@ -157,7 +157,7 @@ import Foundation
}
// filtro tempo
if let filterTime = filterTime, seismic.differenza.doubleValue > filterTime {
if let filterTime = filterTime, seismic.difference.doubleValue > filterTime {
keep = false
}
@@ -0,0 +1,44 @@
//
// EQNSisma.h
// Earthquake Network
//
// Refactored by Andrea Busi
// Copyright © 2020 Earthquake Network. All rights reserved.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface EQNSisma : NSObject
@property (nonatomic, strong) NSNumber *latitude;
@property (nonatomic, strong) NSNumber *longitude;
@property (nonatomic, strong) NSNumber *depth;
@property (nonatomic, strong) NSNumber *magnitude;
@property (nonatomic, strong) NSString *mt;
@property (nonatomic, strong) NSNumber *pop100;
@property (nonatomic, strong) NSNumber *intensity;
@property (nonatomic, strong) NSString *place;
@property (nonatomic, strong) NSString *provider;
@property (nonatomic, strong) NSString *date;
@property (nonatomic, strong) NSNumber *difference;
@property (nonatomic, strong) NSNumber *distanzaKM;
@property (nonatomic, strong) NSString *magnitudeRange;
@property (nonatomic, strong) NSNumber *preliminary;
@property (nonatomic, strong) NSNumber *smartphoneNumber;
@property (nonatomic, strong) NSNumber *userNumber;
@property (nonatomic, strong) NSString *weatherCode;
@property (nonatomic, strong) NSString *weatherIcon;
@property (nonatomic, strong) NSNumber *weatherCloud;
@property (nonatomic, strong) NSNumber *weatherWindSpeed;
@property (nonatomic, strong) NSNumber *weatherPressure;
@property (nonatomic, strong) NSNumber *weatherHumidity;
@property (nonatomic, strong) NSNumber *weatherTemperature;
@property (nonatomic, strong) NSNumber *pictureCount;
- (instancetype)initWithInfo:(NSDictionary *)info;
@end
NS_ASSUME_NONNULL_END
@@ -0,0 +1,118 @@
//
// EQNSisma.m
// Earthquake Network
//
// Refactored by Andrea Busi
// Copyright © 2020 Earthquake Network. All rights reserved.
//
#import "EQNSisma.h"
#import "EQNUser.h"
#import "EQNUtility.h"
@implementation EQNSisma
#pragma mark - Init
- (instancetype)initWithInfo:(NSDictionary *)info
{
self = [super init];
if (self) {
self.latitude = info[@"la"];
self.longitude = info[@"lo"];
self.depth = info[@"de"];
self.magnitude = info[@"ma"];
self.mt = info[@"mt"];
self.pop100 = info[@"p1"];
self.intensity = info[@"it"];
self.place = info[@"pl"];
self.provider = info[@"pr"];
NSDate *dateServer = [EQNUtility getDataFromString:info[@"dt"]];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm:ss MMM-d"];
self.date = [dateFormatter stringFromDate:dateServer];
self.difference = info[@"di"];
self.magnitudeRange = info[@"mr"];
self.preliminary = info[@"py"];
self.smartphoneNumber = info[@"sm"];
self.userNumber = info[@"rp"];
self.weatherCode = info[@"wc"];
self.weatherIcon = info[@"ic"];
self.weatherCloud = info[@"cl"];
self.weatherWindSpeed = info[@"ws"];
self.weatherPressure = info[@"pe"];
self.weatherHumidity = info[@"hu"];
self.weatherTemperature = info[@"te"];
self.pictureCount = info[@"pc"];
CLLocation *location = [[CLLocation alloc] initWithLatitude:[_latitude doubleValue] longitude:[_longitude doubleValue]];
CLLocationDistance distance = [[EQNUser defaultUser].lastPosition distanceFromLocation:location];
self.distanzaKM = @(distance/1000);
}
return self;
}
#pragma mark - NSCoding
- (void)encodeWithCoder:(NSCoder *)encoder
{
[encoder encodeObject:self.latitude forKey:@"latitude"];
[encoder encodeObject:self.longitude forKey:@"longitude"];
[encoder encodeObject:self.depth forKey:@"depth"];
[encoder encodeObject:self.magnitude forKey:@"magnitude"];
[encoder encodeObject:self.mt forKey:@"mt"];
[encoder encodeObject:self.pop100 forKey:@"pop100"];
[encoder encodeObject:self.intensity forKey:@"intensity"];
[encoder encodeObject:self.place forKey:@"place"];
[encoder encodeObject:self.provider forKey:@"provider"];
[encoder encodeObject:self.date forKey:@"date"];
[encoder encodeObject:self.difference forKey:@"difference"];
[encoder encodeObject:self.magnitudeRange forKey:@"magnitudeRange"];
[encoder encodeObject:self.preliminary forKey:@"preliminary"];
[encoder encodeObject:self.smartphoneNumber forKey:@"smartphoneNumber"];
[encoder encodeObject:self.userNumber forKey:@"userNumber"];
[encoder encodeObject:self.weatherCode forKey:@"weatherCode"];
[encoder encodeObject:self.weatherIcon forKey:@"weatherIcon"];
[encoder encodeObject:self.weatherCloud forKey:@"weatherCloud"];
[encoder encodeObject:self.weatherWindSpeed forKey:@"weatherWindSpeed"];
[encoder encodeObject:self.weatherPressure forKey:@"weatherPressure"];
[encoder encodeObject:self.weatherHumidity forKey:@"weatherHumidity"];
[encoder encodeObject:self.weatherTemperature forKey:@"weatherTemperature"];
[encoder encodeObject:self.pictureCount forKey:@"pictureCount"];
}
- (instancetype)initWithCoder:(NSCoder *)decoder
{
self = [super init];
if(self) {
self.latitude = [decoder decodeObjectForKey:@"latitude"];
self.longitude = [decoder decodeObjectForKey:@"longitude"];
self.depth = [decoder decodeObjectForKey:@"depth"];
self.magnitude = [decoder decodeObjectForKey:@"magnitude"];
self.mt = [decoder decodeObjectForKey:@"mt"];
self.pop100 = [decoder decodeObjectForKey:@"pop100"];
self.intensity = [decoder decodeObjectForKey:@"intensity"];
self.place = [decoder decodeObjectForKey:@"intensity"];
self.provider = [decoder decodeObjectForKey:@"provider"];
self.date = [decoder decodeObjectForKey:@"date"];
self.difference = [decoder decodeObjectForKey:@"difference"];
self.magnitudeRange = [decoder decodeObjectForKey:@"magnitudeRange"];
self.preliminary = [decoder decodeObjectForKey:@"preliminary"];
self.smartphoneNumber = [decoder decodeObjectForKey:@"smartphoneNumber"];
self.userNumber = [decoder decodeObjectForKey:@"userNumber"];
self.weatherCode = [decoder decodeObjectForKey:@"weatherCode"];
self.weatherIcon = [decoder decodeObjectForKey:@"weatherIcon"];
self.weatherCloud = [decoder decodeObjectForKey:@"weatherCloud"];
self.weatherWindSpeed = [decoder decodeObjectForKey:@"weatherWindSpeed"];
self.weatherPressure = [decoder decodeObjectForKey:@"weatherPressure"];
self.weatherHumidity = [decoder decodeObjectForKey:@"weatherHumidity"];
self.weatherTemperature = [decoder decodeObjectForKey:@"weatherTemperature"];
self.pictureCount = [decoder decodeObjectForKey:@"pictureCount"];
}
return self;
}
@end
@@ -28,24 +28,24 @@
[super setupView];
NSString *temp = NSLocalizedString(@"Temperatura: ", @"");
NSString *valueTemp = [NSString stringWithFormat:@"%1.f °C", [self.sisma.te floatValue]-273];
NSString *valueTemp = [NSString stringWithFormat:@"%1.f °C", [self.sisma.weatherTemperature floatValue]-273];
NSString *tempDesc = [NSString stringWithFormat:@"%@%@", temp, valueTemp];
NSString *pres = NSLocalizedString(@"Pressione:", @"");
NSString *valuePre = [NSString stringWithFormat:@"%@mb", self.sisma.pr];
NSString *valuePre = [NSString stringWithFormat:@"%@mb", self.sisma.weatherPressure];
NSString *presDesc = [NSString stringWithFormat:@"%@%@",pres, valuePre];
NSString *vent = NSLocalizedString(@"Velocità vento: ", @"");
NSString *valueVento = [NSString stringWithFormat:@"%@m/s", self.sisma.ws];
NSString *valueVento = [NSString stringWithFormat:@"%@m/s", self.sisma.weatherWindSpeed];
NSString *ventoDesc = [NSString stringWithFormat:@"%@%@", vent, valueVento];
NSString *umi = NSLocalizedString(@"Umidità : ", @"");
NSString *umiValue = [NSString stringWithFormat:@"%@%%", self.sisma.hu];
NSString *umiValue = [NSString stringWithFormat:@"%@%%", self.sisma.weatherHumidity];
NSString *umiditaDesc = [NSString stringWithFormat:@"%@%@", umi, umiValue];
NSString *nuv = NSLocalizedString(@"Copertura nuvolosa : ", @"");
NSString *nuvValue = [NSString stringWithFormat:@"%@%%", self.sisma.cl];
NSString *nuvValue = [NSString stringWithFormat:@"%@%%", self.sisma.weatherCloud];
NSString *nuvolDesc = [NSString stringWithFormat:@"%@%@",nuv, nuvValue];
UILabel *titolo = (UILabel *)[self viewWithTag:20];
@@ -67,7 +67,7 @@
nuvolosita.attributedText = [self getAttributeString:nuvolDesc withRange:NSMakeRange(nuv.length, nuvValue.length)];
UIImageView *icona = (UIImageView *)[self viewWithTag:26];
NSString *imagName = [NSString stringWithFormat:@"weather_%@.png", self.sisma.ic];
NSString *imagName = [NSString stringWithFormat:@"weather_%@.png", self.sisma.weatherIcon];
icona.image = [UIImage imageNamed:imagName];
}
@@ -41,13 +41,13 @@
UILabel *data = (UILabel *)[self viewWithTag:6];
int tempo = 0;
if ([self.sisma.differenza intValue] > 60) {
if ([self.sisma.difference intValue] > 60) {
tempo = [self.sisma.differenza intValue]/60;
data.text = [NSString stringWithFormat:@"%@ %@",NSLocalizedString(@"Data(Ora tua):", @"") , [NSString stringWithFormat:@"%@ - %d %@", self.sisma.data, tempo, NSLocalizedString(@"ore fa", @"")]];
tempo = [self.sisma.difference intValue]/60;
data.text = [NSString stringWithFormat:@"%@ %@",NSLocalizedString(@"Data(Ora tua):", @"") , [NSString stringWithFormat:@"%@ - %d %@", self.sisma.date, tempo, NSLocalizedString(@"ore fa", @"")]];
}else{
data.text = [NSString stringWithFormat:@"%@ %@",NSLocalizedString(@"Data(Ora tua):", @"") , [NSString stringWithFormat:@"%@ - %@ %@", self.sisma.data, self.sisma.differenza, NSLocalizedString(@"minuti fa", @"")]];
data.text = [NSString stringWithFormat:@"%@ %@",NSLocalizedString(@"Data(Ora tua):", @"") , [NSString stringWithFormat:@"%@ - %@ %@", self.sisma.date, self.sisma.difference, NSLocalizedString(@"minuti fa", @"")]];
}
// UILabel *dataValue = (UILabel *)[self viewWithTag:8];
@@ -161,7 +161,7 @@ static EQNManager *_sharedInstance = nil;
-(void)scaricaReteSismica{
[[ServerRequest defaultServerConnectionSingleton] inviaInformazioniAlServerWithURL:[NSURL URLWithString:URL_SERVER_DOWNLOAD_RETI_SISMICHE] richiesta:downloadDati success:^(id result) {
[[ServerRequest defaultServerConnectionSingleton] inviaInformazioniAlServerWithURL:[NSURL URLWithString:EQNServerUrlDownloadRetiSismiche] richiesta:downloadDati success:^(id result) {
NSMutableArray *array = [NSMutableArray array];
for (NSDictionary *dic in result)
@@ -1,42 +0,0 @@
//
// EQNSisma.h
// Earthquake Network
//
// Created by Luca Beretta on 25/10/18.
// Copyright © 2018 Luca Beretta. All rights reserved.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface EQNSisma : NSObject
@property (nonatomic, strong) NSNumber *latitude;
@property (nonatomic, strong) NSNumber *longitude;
@property (nonatomic, strong) NSNumber *depth;
@property (nonatomic, strong) NSNumber *magnitude;
@property (nonatomic, strong) NSString *mt;
@property (nonatomic, strong) NSNumber *pop25;
@property (nonatomic, strong) NSNumber *pop100;
@property (nonatomic, strong) NSNumber *pop200;
@property (nonatomic, strong) NSNumber *intensity;
@property (nonatomic, strong) NSString *place;
@property (nonatomic, strong) NSString *provider;
@property (nonatomic, strong) NSString *data;
@property (nonatomic, strong) NSNumber *differenza;
@property (nonatomic, strong) NSString *wc;
@property (nonatomic, strong) NSString *ic;
@property (nonatomic, strong) NSNumber *cl;
@property (nonatomic, strong) NSNumber *ws;
@property (nonatomic, strong) NSNumber *pr;
@property (nonatomic, strong) NSNumber *hu;
@property (nonatomic, strong) NSNumber *te;
@property (nonatomic, strong) NSNumber *pc;
@property (nonatomic, strong) NSNumber *distanzaKM;
- (instancetype)initWithInfo:(NSDictionary *)info;
@end
NS_ASSUME_NONNULL_END
-115
View File
@@ -1,115 +0,0 @@
//
// EQNSisma.m
// Earthquake Network
//
// Created by Luca Beretta on 25/10/18.
// Copyright © 2018 Luca Beretta. All rights reserved.
//
#import "EQNSisma.h"
#import "EQNUser.h"
#import "EQNUtility.h"
@implementation EQNSisma
#pragma mark - Init
- (instancetype)initWithInfo:(NSDictionary *)info
{
self = [super init];
if (self) {
self.latitude = info[@"latitude"];
self.longitude = info[@"longitude"];
self.depth = info[@"depth"];
self.magnitude = info[@"magnitude"];
self.mt = info[@"mt"];
self.pop25 = info[@"pop25"];
self.pop100 = info[@"pop100"];
self.pop200 = info[@"pop200"];
self.intensity = info[@"intensity"];
self.place = info[@"place"];
self.provider = info[@"provider"];
NSDate *dateServer = [EQNUtility getDataFromString:info[@"data"]];
NSDateFormatter *dataFormatter2 = [[NSDateFormatter alloc] init];
[dataFormatter2 setDateFormat:@"HH:mm:ss MMM-d"];
self.data = [dataFormatter2 stringFromDate:dateServer];
self.differenza = info[@"difference"];
self.wc = info[@"wc"];
self.ic = info[@"ic"];
self.cl = info[@"cl"];
self.ws = info[@"ws"];
self.pr = info[@"pr"];
self.hu = info[@"hu"];
self.te = info[@"te"];
self.pc = info[@"pc"];
CLLocation *location = [[CLLocation alloc] initWithLatitude:[_latitude doubleValue] longitude:[_longitude doubleValue]];
CLLocationDistance distance = [[EQNUser defaultUser].lastPosition distanceFromLocation:location];
self.distanzaKM = @(distance/1000);
}
return self;
}
#pragma mark - NSCoding
- (void)encodeWithCoder:(NSCoder *)encoder
{
[encoder encodeObject:self.latitude forKey:@"latitude"];
[encoder encodeObject:self.longitude forKey:@"longitude"];
[encoder encodeObject:self.depth forKey:@"depth"];
[encoder encodeObject:self.magnitude forKey:@"magnitude"];
[encoder encodeObject:self.mt forKey:@"mt"];
[encoder encodeObject:self.pop25 forKey:@"pop25"];
[encoder encodeObject:self.pop100 forKey:@"pop100"];
[encoder encodeObject:self.pop200 forKey:@"pop200"];
[encoder encodeObject:self.intensity forKey:@"intensity"];
[encoder encodeObject:self.place forKey:@"place"];
[encoder encodeObject:self.provider forKey:@"provider"];
[encoder encodeObject:self.data forKey:@"data"];
[encoder encodeObject:self.differenza forKey:@"difference"];
[encoder encodeObject:self.wc forKey:@"wc"];
[encoder encodeObject:self.ic forKey:@"ic"];
[encoder encodeObject:self.cl forKey:@"cl"];
[encoder encodeObject:self.ws forKey:@"ws"];
[encoder encodeObject:self.pr forKey:@"pr"];
[encoder encodeObject:self.hu forKey:@"hu"];
[encoder encodeObject:self.te forKey:@"te"];
[encoder encodeObject:self.pc forKey:@"pc"];
[encoder encodeObject:self.differenza forKey:@"differenza"];
}
- (instancetype)initWithCoder:(NSCoder *)decoder
{
self = [super init];
if(self) {
self.latitude = [decoder decodeObjectForKey:@"latitude"];
self.longitude = [decoder decodeObjectForKey:@"longitude"];
self.depth = [decoder decodeObjectForKey:@"depth"];
self.magnitude = [decoder decodeObjectForKey:@"magnitude"];
self.mt = [decoder decodeObjectForKey:@"mt"];
self.pop25 = [decoder decodeObjectForKey:@"pop25"];
self.pop100 = [decoder decodeObjectForKey:@"pop100"];
self.pop200 = [decoder decodeObjectForKey:@"pop200"];
self.intensity = [decoder decodeObjectForKey:@"intensity"];
self.place = [decoder decodeObjectForKey:@"intensity"];
self.provider = [decoder decodeObjectForKey:@"provider"];
self.data = [decoder decodeObjectForKey:@"data"];
self.differenza = [decoder decodeObjectForKey:@"differenza"];
self.wc = [decoder decodeObjectForKey:@"wc"];
self.ic = [decoder decodeObjectForKey:@"ic"];
self.cl = [decoder decodeObjectForKey:@"cl"];
self.ws = [decoder decodeObjectForKey:@"ws"];
self.pr = [decoder decodeObjectForKey:@"pr"];
self.hu = [decoder decodeObjectForKey:@"hu"];
self.te = [decoder decodeObjectForKey:@"te"];
self.pc = [decoder decodeObjectForKey:@"pc"];
self.te = [decoder decodeObjectForKey:@"te"];
self.differenza = [decoder decodeObjectForKey:@"difference"];
}
return self;
}
@end