summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Guerra <fabian.guerra@mapbox.com>2019-03-06 14:57:42 -0800
committerFabian Guerra <fabian.guerra@mapbox.com>2019-03-28 15:05:26 -0700
commitf709a8f1f3788b0967a57f7b23424819ecd7d57b (patch)
tree137acf911f51eb6eb4da5bc098a4d6f8a29eb008
parent1cc38bebf022f87a3b5698162028255f0c99c325 (diff)
downloadqtlocation-mapboxgl-f709a8f1f3788b0967a57f7b23424819ecd7d57b.tar.gz
[ios, macos] Remove mbgl-filesource target dependency on MGLMetricsManager.
-rw-r--r--platform/darwin/src/MGLMetricsManager.m16
-rw-r--r--platform/darwin/src/MGLMetricsManager_Private.h2
-rw-r--r--platform/darwin/src/MGLNetworkConfiguration.m9
-rw-r--r--platform/darwin/src/MGLNetworkConfiguration_Private.h8
4 files changed, 25 insertions, 10 deletions
diff --git a/platform/darwin/src/MGLMetricsManager.m b/platform/darwin/src/MGLMetricsManager.m
index cdc392ce40..54a1216c04 100644
--- a/platform/darwin/src/MGLMetricsManager.m
+++ b/platform/darwin/src/MGLMetricsManager.m
@@ -1,14 +1,17 @@
#import "MGLMetricsManager_Private.h"
+#import "MGLNetworkConfiguration_Private.h"
#if TARGET_OS_IOS
#import "MGLMapboxEvents.h"
#endif
-NSString * const kMGLPerformanceMetric = @"mobile.performance_trace";
-
NSString* MGLStringFromMetricType(MGLMetricType metricType) {
- return [@[kMGLPerformanceMetric] objectAtIndex:metricType];
+ return [@[kMGLDownloadPerformanceEvent] objectAtIndex:metricType];
}
+@interface MGLMetricsManager() <MGLNetworkConfigurationMetricsDelegate>
+
+@end
+
@implementation MGLMetricsManager
+ (instancetype)sharedManager
@@ -17,6 +20,7 @@ NSString* MGLStringFromMetricType(MGLMetricType metricType) {
static id sharedConfiguration;
dispatch_once(&once, ^{
sharedConfiguration = [[self alloc] init];
+ [MGLNetworkConfiguration sharedManager].metricsDelegate = sharedConfiguration;
});
return sharedConfiguration;
}
@@ -34,7 +38,7 @@ NSString* MGLStringFromMetricType(MGLMetricType metricType) {
switch (metricType) {
case MGLMetricTypePerformance:
- eventName = kMGLPerformanceMetric;
+ eventName = kMGLDownloadPerformanceEvent;
break;
default:
@@ -46,4 +50,8 @@ NSString* MGLStringFromMetricType(MGLMetricType metricType) {
}
#endif
+- (void)networkConfiguration:(MGLNetworkConfiguration *)networkConfiguration didGenerateMetricEvent:(NSDictionary *)metricEvent {
+ [self handleMetricsEvent:MGLMetricTypePerformance withAttributes:metricEvent];
+}
+
@end
diff --git a/platform/darwin/src/MGLMetricsManager_Private.h b/platform/darwin/src/MGLMetricsManager_Private.h
index a2b2d9548c..2aa3835ab3 100644
--- a/platform/darwin/src/MGLMetricsManager_Private.h
+++ b/platform/darwin/src/MGLMetricsManager_Private.h
@@ -2,8 +2,6 @@
NS_ASSUME_NONNULL_BEGIN
-FOUNDATION_EXTERN MGL_EXPORT NSString *const kMGLPerformanceMetric;
-
@interface MGLMetricsManager (Private)
- (void)handleMetricsEvent:(MGLMetricType)metricType withAttributes:(NSDictionary *)attributes;
diff --git a/platform/darwin/src/MGLNetworkConfiguration.m b/platform/darwin/src/MGLNetworkConfiguration.m
index f938bcc753..0041b35c45 100644
--- a/platform/darwin/src/MGLNetworkConfiguration.m
+++ b/platform/darwin/src/MGLNetworkConfiguration.m
@@ -1,13 +1,14 @@
#import "MGLNetworkConfiguration_Private.h"
-#import "MGLMetricsManager_Private.h"
static NSString * const MGLStartTime = @"start_time";
static NSString * const MGLResourceType = @"resource_type";
+NSString * const kMGLDownloadPerformanceEvent = @"mobile.performance_trace";
@interface MGLNetworkConfiguration ()
@property (strong) NSURLSessionConfiguration *sessionConfig;
@property (nonatomic, strong) NSMutableDictionary<NSString *, NSDictionary*> *events;
+@property (nonatomic, weak) id<MGLNetworkConfigurationMetricsDelegate> metricsDelegate;
@end
@@ -72,7 +73,7 @@ static NSString * const MGLResourceType = @"resource_type";
{
if (urlString && [self.events objectForKey:urlString]) {
NSDictionary *eventAttributes = [self eventAttributesForURL:urlString withAction:action];
- [[MGLMetricsManager sharedManager] handleMetricsEvent:MGLMetricTypePerformance withAttributes:eventAttributes];
+ [self.metricsDelegate networkConfiguration:self didGenerateMetricEvent:eventAttributes];
[self.events removeObjectForKey:urlString];
}
}
@@ -93,9 +94,9 @@ static NSString * const MGLResourceType = @"resource_type";
if (action) {
[attributes addObject:@{ @"name" : @"action" , @"value" : action }];
}
- NSString *event = MGLStringFromMetricType(MGLMetricTypePerformance);
+
return @{
- @"event" : event,
+ @"event" : kMGLDownloadPerformanceEvent,
@"created" : createdDate,
@"sessionId" : [NSUUID UUID].UUIDString,
@"counters" : @[ @{ @"name" : @"elapsed_time" , @"value" : @(elapsedTime) } ],
diff --git a/platform/darwin/src/MGLNetworkConfiguration_Private.h b/platform/darwin/src/MGLNetworkConfiguration_Private.h
index 60a10841f4..18c78a004a 100644
--- a/platform/darwin/src/MGLNetworkConfiguration_Private.h
+++ b/platform/darwin/src/MGLNetworkConfiguration_Private.h
@@ -2,11 +2,19 @@
NS_ASSUME_NONNULL_BEGIN
+@class MGLNetworkConfiguration;
+@protocol MGLNetworkConfigurationMetricsDelegate <NSObject>
+
+- (void)networkConfiguration:(MGLNetworkConfiguration *)networkConfiguration didGenerateMetricEvent:(NSDictionary *)metricEvent;
+
+@end
+
extern NSString * const kMGLDownloadPerformanceEvent;
@interface MGLNetworkConfiguration (Private)
@property (nonatomic, strong) NSMutableDictionary<NSString*, NSDictionary*> *events;
+@property (nonatomic, weak) id<MGLNetworkConfigurationMetricsDelegate> metricsDelegate;
- (void)startDownloadEvent:(NSString *)urlString type:(NSString *)resourceType;
- (void)stopDownloadEvent:(NSString *)urlString;