refactor: Use new annotation models also in notification extension

This commit is contained in:
Andrea Busi
2021-03-10 19:26:22 +01:00
parent 5ab5309838
commit cca042ca61
12 changed files with 76 additions and 250 deletions
@@ -7,9 +7,8 @@
//
#import "NotificationViewController.h"
#import "EQNMapAnnotationPastquakes.h"
#import "EQNMapAnnotationSeismicNetwork.h"
#import "EQNUtility.h"
#import "EQNNotificationContent-Swift.h"
@import UserNotifications;
@import UserNotificationsUI;
@@ -40,7 +39,8 @@
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any required interface initialization here.
[self.mapView registerClass:[EQNCustomAnnotationView class] forAnnotationViewWithReuseIdentifier:EQNCustomAnnotationView.Identifier];
}
- (void)didReceiveNotification:(UNNotification *)notification
@@ -61,15 +61,15 @@
[self.mapView setRegion:region animated:YES];
if ([userInfo[@"type"] isEqualToString:@"eqn"]) {
EQNMapAnnotationPastquakes *annotation = [[EQNMapAnnotationPastquakes alloc] initWithTitle:content.body
location:coordinate.coordinate
intensita:[userInfo[@"intensity"] intValue]];
EQNMapAnnotationPastquake *annotation = [[EQNMapAnnotationPastquake alloc] initWithTitle:@""
coordinate:coordinate.coordinate
intensity:[userInfo[@"intensity"] intValue]];
[self.mapView addAnnotation:annotation];
} else if ([userInfo[@"type"] isEqualToString:@"manual"]){
EQNMapAnnotationSeismicNetwork *annotation = [[EQNMapAnnotationSeismicNetwork alloc] initWithTitle:content.body
location:coordinate.coordinate
magnitudo:[userInfo[@"magnitudo"] intValue]];
EQNMapAnnotationUserReport *annotation = [[EQNMapAnnotationUserReport alloc] initWithTitle:@""
coordinate:coordinate.coordinate
magnitude:[userInfo[@"magnitudo"] intValue]];
[self.mapView addAnnotation:annotation];
}
@@ -106,24 +106,20 @@
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[EQNMapAnnotationPastquakes class]]) {
EQNMapAnnotationPastquakes *anLocation = (EQNMapAnnotationPastquakes *)annotation;
MKAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:EQNMapAnnotationPastquakesIdentifier];
if (annotationView == nil) {
annotationView = anLocation.annotationView;
} else {
annotationView.annotation = anLocation;
}
if ([annotation isKindOfClass:[EQNMapAnnotationPastquake class]]) {
EQNMapAnnotationPastquake *pastquake = (EQNMapAnnotationPastquake *)annotation;
EQNCustomAnnotationView *annotationView = (EQNCustomAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:EQNCustomAnnotationView.Identifier];
annotationView.image = pastquake.image;
annotationView.title = pastquake.title;
return annotationView;
} else if ([annotation isKindOfClass:[EQNMapAnnotationSeismicNetwork class]]) {
EQNMapAnnotationSeismicNetwork *anLocation = (EQNMapAnnotationSeismicNetwork *)annotation;
MKAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:EQNMapAnnotationSeismicNetworkIdentifier];
if (annotationView == nil) {
annotationView = anLocation.annotationView;
} else {
annotationView.annotation = anLocation;
}
} else if ([annotation isKindOfClass:[EQNMapAnnotationUserReport class]]) {
EQNMapAnnotationUserReport *report = (EQNMapAnnotationUserReport *)annotation;
EQNCustomAnnotationView *annotationView = (EQNCustomAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:EQNCustomAnnotationView.Identifier];
annotationView.image = report.image;
annotationView.title = report.title;
return annotationView;
}
return nil;