blob: 3d597537e5d6512d69c59e85bfd9b45f8ab0f3c5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
static NSString * const MAPSWITHME_PREMIUM_LOCAL_URL = @"mapswithmepro://";
static NSString * const BOOKMARK_CATEGORY_DELETED_NOTIFICATION = @"BookmarkCategoryDeletedNotification";
static NSString * const METRICS_CHANGED_NOTIFICATION = @"MetricsChangedNotification";
static NSString * const BOOKMARK_DELETED_NOTIFICATION = @"BookmarkDeletedNotification";
static NSString * const LOCATION_MANAGER_STARTED_NOTIFICATION = @"LocationManagerStartedNotification";
static NSString * const kDownloadingProgressUpdateNotificationId = @"DownloadingProgressUpdateNotificationId";
static NSString * const kHaveAppleWatch = @"HaveAppleWatch";
static CGFloat const kDefaultAnimationDuration = .2;
static inline NSString * const kApplicationGroupIdentifier()
{
static NSString * const productionGroupIdentifier = @"group.mapsme.watchkit.production";
static NSString * const developerGroupIdentifier = @"group.mapsme.watchkit";
static NSString * const productionAppBundleIdentifier = @"com.mapswithme.full";
static NSString * const productionExtBundleIdentifier = @"com.mapswithme.full.watchkitextension";
NSString * bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
if ([bundleIdentifier isEqualToString:productionAppBundleIdentifier] || [bundleIdentifier isEqualToString:productionExtBundleIdentifier])
return productionGroupIdentifier;
return developerGroupIdentifier;
}
static inline BOOL firstVersionIsLessThanSecond(NSString * first, NSString * second)
{
NSArray const * const f = [first componentsSeparatedByString:@"."];
NSArray const * const s = [second componentsSeparatedByString:@"."];
NSUInteger iter = 0;
while (f.count > iter && s.count > iter)
{
NSInteger fiv = ((NSString *)f[iter]).integerValue;
NSInteger siv = ((NSString *)s[iter]).integerValue;
if (fiv == siv)
iter++;
else
return fiv < siv;
}
return f.count < s.count;
}
static inline BOOL isIOSVersionLessThan(NSString * version)
{
return firstVersionIsLessThanSecond([UIDevice currentDevice].systemVersion, version);
}
static inline BOOL isIOSVersionLessThan(NSUInteger version)
{
return isIOSVersionLessThan([NSString stringWithFormat:@"%@", @(version)]);
}
static BOOL const isIOS7 = isIOSVersionLessThan(8);
static BOOL const isIOS8 = !isIOS7 && isIOSVersionLessThan(9);
static uint64_t const KB = 1024;
static uint64_t const MB = 1024 * 1024;
static inline NSString * formattedSize(uint64_t size)
{
NSString * sizeString;
if (size > MB)
sizeString = [NSString stringWithFormat:@"%llu %@", (size + 512 * KB) / MB, NSLocalizedString(@"mb", nil)];
else
sizeString = [NSString stringWithFormat:@"%llu %@", (size + 1023) / KB, NSLocalizedString(@"kb", nil)];
return [sizeString uppercaseString];
}
// Use only for screen dimensions CGFloat comparison
static inline BOOL equalScreenDimensions(CGFloat left, CGFloat right)
{
return fabs(left - right) < 0.5;
}
|