summaryrefslogtreecommitdiff
path: root/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDUtilities.m
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2020-08-31 23:07:20 +0200
committerJules Laplace <julescarbon@gmail.com>2020-08-31 23:07:20 +0200
commit22721a013bdd10d5eb395ba18453585f5f3f1f7f (patch)
tree5a920e31d6026ed5dc55265e5fd057febccc50e3 /StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDUtilities.m
parentd22d51a1ae49680015326857360eb699f31efced (diff)
rebuild the ios platform and the plugins
Diffstat (limited to 'StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDUtilities.m')
-rw-r--r--StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDUtilities.m208
1 files changed, 208 insertions, 0 deletions
diff --git a/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDUtilities.m b/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDUtilities.m
new file mode 100644
index 00000000..25d1b972
--- /dev/null
+++ b/StoneIsland/platforms/ios/Pods/FirebaseInstanceID/Firebase/InstanceID/FIRInstanceIDUtilities.m
@@ -0,0 +1,208 @@
+/*
+ * Copyright 2019 Google
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#import "FIRInstanceIDUtilities.h"
+
+#if TARGET_OS_IOS || TARGET_OS_TV
+#import <UIKit/UIKit.h>
+#endif
+#import <sys/utsname.h>
+
+#import "FIRInstanceID.h"
+#import "FIRInstanceIDConstants.h"
+#import "FIRInstanceIDLogger.h"
+#import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"
+#import "GoogleUtilities/UserDefaults/Private/GULUserDefaults.h"
+
+// Convert the macro to a string
+#define STR_EXPAND(x) #x
+#define STR(x) STR_EXPAND(x)
+
+static NSString *const kFIRInstanceIDAPNSSandboxPrefix = @"s_";
+static NSString *const kFIRInstanceIDAPNSProdPrefix = @"p_";
+
+/// FIRMessaging Class that responds to the FIRMessaging SDK version selector.
+/// Verify at runtime if the class exists and implements the required method.
+NSString *const kFIRInstanceIDFCMSDKClassString = @"FIRMessaging";
+
+/// FIRMessaging selector that returns the current FIRMessaging library version.
+static NSString *const kFIRInstanceIDFCMSDKVersionSelectorString = @"FIRMessagingSDKVersion";
+
+/// FIRMessaging selector that returns the current device locale.
+static NSString *const kFIRInstanceIDFCMSDKLocaleSelectorString = @"FIRMessagingSDKCurrentLocale";
+
+NSString *const kFIRInstanceIDUserDefaultsKeyLocale =
+ @"com.firebase.instanceid.user_defaults.locale"; // locale key stored in GULUserDefaults
+
+/// Static values which will be populated once retrieved using
+/// |FIRInstanceIDRetrieveEnvironmentInfoFromFirebaseCore|.
+static NSString *operatingSystemVersion;
+static NSString *hardwareDeviceModel;
+
+#pragma mark - URL Helpers
+
+NSString *FIRInstanceIDRegisterServer() {
+ return @"https://fcmtoken.googleapis.com/register";
+}
+
+#pragma mark - Time
+
+int64_t FIRInstanceIDCurrentTimestampInSeconds() {
+ return (int64_t)[[NSDate date] timeIntervalSince1970];
+}
+
+int64_t FIRInstanceIDCurrentTimestampInMilliseconds() {
+ return (int64_t)(FIRInstanceIDCurrentTimestampInSeconds() * 1000.0);
+}
+
+#pragma mark - App Info
+
+NSString *FIRInstanceIDCurrentAppVersion() {
+ NSString *version = [[NSBundle mainBundle] infoDictionary][@"CFBundleShortVersionString"];
+ if (![version length]) {
+ return @"";
+ }
+ return version;
+}
+
+NSString *FIRInstanceIDBundleIDByRemovingLastPartFrom(NSString *bundleID) {
+ NSString *bundleIDComponentsSeparator = @".";
+
+ NSMutableArray<NSString *> *bundleIDComponents =
+ [[bundleID componentsSeparatedByString:bundleIDComponentsSeparator] mutableCopy];
+ [bundleIDComponents removeLastObject];
+
+ return [bundleIDComponents componentsJoinedByString:bundleIDComponentsSeparator];
+}
+
+NSString *FIRInstanceIDAppIdentifier() {
+ NSString *bundleID = [[NSBundle mainBundle] bundleIdentifier];
+ if (!bundleID.length) {
+ FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeUtilitiesMissingBundleIdentifier,
+ @"The mainBundle's bundleIdentifier returned '%@'. Bundle identifier "
+ @"expected to be non-empty.",
+ bundleID);
+ return @"";
+ }
+#if TARGET_OS_WATCH
+ return FIRInstanceIDBundleIDByRemovingLastPartFrom(bundleID);
+#endif
+ return bundleID;
+}
+
+NSString *FIRInstanceIDFirebaseAppID() {
+ return [FIROptions defaultOptions].googleAppID;
+}
+
+#pragma mark - Device Info
+// Get the device model from Firebase Core's App Environment Util
+NSString *FIRInstanceIDDeviceModel() {
+ static dispatch_once_t once;
+ dispatch_once(&once, ^{
+ struct utsname systemInfo;
+ if (uname(&systemInfo) == 0) {
+ hardwareDeviceModel = [NSString stringWithUTF8String:systemInfo.machine];
+ }
+ });
+ return hardwareDeviceModel;
+}
+
+// Get the system version from Firebase Core's App Environment Util
+NSString *FIRInstanceIDOperatingSystemVersion() {
+#if TARGET_OS_IOS || TARGET_OS_TV
+ return [UIDevice currentDevice].systemVersion;
+#elif TARGET_OS_OSX || TARGET_OS_WATCH
+ return [NSProcessInfo processInfo].operatingSystemVersionString;
+#endif
+}
+
+BOOL FIRInstanceIDHasLocaleChanged() {
+ NSString *lastLocale =
+ [[GULUserDefaults standardUserDefaults] stringForKey:kFIRInstanceIDUserDefaultsKeyLocale];
+ NSString *currentLocale = FIRInstanceIDCurrentLocale();
+ if (lastLocale) {
+ if ([currentLocale isEqualToString:lastLocale]) {
+ return NO;
+ }
+ }
+ return YES;
+}
+
+#pragma mark - Helpers
+
+BOOL FIRInstanceIDIsValidGCMScope(NSString *scope) {
+ return [scope compare:kFIRInstanceIDScopeFirebaseMessaging
+ options:NSCaseInsensitiveSearch] == NSOrderedSame;
+}
+
+NSString *FIRInstanceIDStringForAPNSDeviceToken(NSData *deviceToken) {
+ NSMutableString *APNSToken = [NSMutableString string];
+ unsigned char *bytes = (unsigned char *)[deviceToken bytes];
+ for (int i = 0; i < (int)deviceToken.length; i++) {
+ [APNSToken appendFormat:@"%02x", bytes[i]];
+ }
+ return APNSToken;
+}
+
+NSString *FIRInstanceIDAPNSTupleStringForTokenAndServerType(NSData *deviceToken, BOOL isSandbox) {
+ if (deviceToken == nil) {
+ // A nil deviceToken leads to an invalid tuple string, so return nil.
+ return nil;
+ }
+ NSString *prefix = isSandbox ? kFIRInstanceIDAPNSSandboxPrefix : kFIRInstanceIDAPNSProdPrefix;
+ NSString *APNSString = FIRInstanceIDStringForAPNSDeviceToken(deviceToken);
+ NSString *APNSTupleString = [NSString stringWithFormat:@"%@%@", prefix, APNSString];
+
+ return APNSTupleString;
+}
+
+#pragma mark - GCM Helpers
+
+NSString *FIRInstanceIDCurrentGCMVersion() {
+ Class versionClass = NSClassFromString(kFIRInstanceIDFCMSDKClassString);
+ SEL versionSelector = NSSelectorFromString(kFIRInstanceIDFCMSDKVersionSelectorString);
+ if ([versionClass respondsToSelector:versionSelector]) {
+ IMP getVersionIMP = [versionClass methodForSelector:versionSelector];
+ NSString *(*getVersion)(id, SEL) = (void *)getVersionIMP;
+ return getVersion(versionClass, versionSelector);
+ }
+ return nil;
+}
+
+NSString *FIRInstanceIDCurrentLocale() {
+ Class localeClass = NSClassFromString(kFIRInstanceIDFCMSDKClassString);
+ SEL localeSelector = NSSelectorFromString(kFIRInstanceIDFCMSDKLocaleSelectorString);
+
+ if ([localeClass respondsToSelector:localeSelector]) {
+ IMP getLocaleIMP = [localeClass methodForSelector:localeSelector];
+ NSString *(*getLocale)(id, SEL) = (void *)getLocaleIMP;
+ NSString *fcmLocale = getLocale(localeClass, localeSelector);
+ if (fcmLocale != nil) {
+ return fcmLocale;
+ }
+ }
+
+ NSString *systemLanguage = [[NSLocale preferredLanguages] firstObject];
+ if (systemLanguage != nil) {
+ return systemLanguage;
+ }
+
+ if (@available(macOS 10.12, iOS 10.0, *)) {
+ return [NSLocale currentLocale].languageCode;
+ } else {
+ return nil;
+ }
+}