summaryrefslogtreecommitdiff
path: root/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging
diff options
context:
space:
mode:
Diffstat (limited to 'StoneIsland/platforms/ios/Pods/GoogleCloudMessaging')
-rw-r--r--StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/CHANGELOG.md32
-rw-r--r--StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMConfig.h49
-rw-r--r--StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMPubSub.h82
-rw-r--r--StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMReceiverDelegate.h35
-rw-r--r--StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMService.h243
-rw-r--r--StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GoogleCloudMessaging.h5
-rwxr-xr-xStoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Libraries/libGcmLib.abin0 -> 3813312 bytes
-rw-r--r--StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/README.md10
8 files changed, 456 insertions, 0 deletions
diff --git a/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/CHANGELOG.md b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/CHANGELOG.md
new file mode 100644
index 00000000..9f24a7a5
--- /dev/null
+++ b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/CHANGELOG.md
@@ -0,0 +1,32 @@
+# 2016-01-25 -- v1.2.0
+
+Add Bitcode markers.
+
+# 2016-01-25 -- v1.1.3
+
+- Bug fixes.
+
+# 2015-12-08 -- v1.1.2
+
+- Bug fixes.
+- Fix dSYM warnings.
+
+# 2015-10-21 -- v1.1.1
+
+- Adds analytics support.
+- Bug fixes.
+
+# 2015-10-8 -- v1.1.0
+
+- `[GCMService appDidReceiveMessage:]` now returns `BOOL` to signify if the
+ message has already been received before.
+- Fixes deleting old GCM registrations and topic subscriptions on app deletion
+ and reinstall.
+- Removes usage of clang modules for ObjC++ support.
+- `GCMReceiverDelegate` protocol methods are now **optional**.
+- Add `useNewRemoteNotificationCallback` property in `GCMConfig` to use new
+ iOS8+ notification callback i.e.
+ `application:didReceiveRemoteNotification:fetchCompletionHandler:`.
+- Add better error reporting.
+- Fix some compiler warnings.
+- Bug fixes.
diff --git a/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMConfig.h b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMConfig.h
new file mode 100644
index 00000000..4e65fb87
--- /dev/null
+++ b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMConfig.h
@@ -0,0 +1,49 @@
+@protocol GCMReceiverDelegate;
+
+typedef NS_ENUM(int8_t, GCMLogLevel) {
+ kGCMLogLevelDebug,
+ kGCMLogLevelInfo,
+ kGCMLogLevelError,
+ kGCMLogLevelAssert,
+};
+
+/**
+ * Config used to set different options in Google Cloud Messaging.
+ */
+@interface GCMConfig : NSObject
+
+/**
+ * Set the `GCMReceiverDelegate` to receive callbacks on upstream messages.
+ *
+ * @see GCMReceiverDelegate
+ */
+@property(nonatomic, readwrite, weak) id<GCMReceiverDelegate> receiverDelegate;
+
+/**
+ * The log level for the GCM library. Valid values are `kGCMLogLevelDebug`,
+ * `kGCMLogLevelInfo`, `kGCMLogLevelError`, and `kGCMLogLevelAssert`.
+ */
+@property(nonatomic, readwrite, assign) GCMLogLevel logLevel;
+
+/**
+ * Specify which remote notification callback to invoke when a GCM message is
+ * received.
+ *
+ * If set to "YES" GCM uses the new remote notification callback i.e.
+ * application:didReceiveRemoteNotification:fetchCompletionHandler:.
+ * If set to "NO" GCM invokes application:didReceiveRemoteNotification: callback.
+ *
+ * Defaults to "NO".
+ */
+@property(nonatomic, readwrite, assign) BOOL useNewRemoteNotificationCallback;
+
+/**
+ * Get default configuration for GCM. The default config has logLevel set to
+ * `kGCMLogLevelError` and `receiverDelegate` is set to nil.
+ *
+ * @return GCMConfig sharedInstance.
+ */
++ (instancetype)defaultConfig;
+
+@end
+
diff --git a/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMPubSub.h b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMPubSub.h
new file mode 100644
index 00000000..37e0a6b3
--- /dev/null
+++ b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMPubSub.h
@@ -0,0 +1,82 @@
+/**
+ * @related GCMPubSub
+ *
+ * The completion handler invoked when the GCM subscribe/unsubscribe returns.
+ * If the call fails we return the approprirate `error code` as documented in
+ * `GCMService`.
+ *
+ * @param error The error describing subscribe failure else nil.
+ */
+typedef void(^GCMPubSubCompletion)(NSError *error);
+
+/**
+ * GcmPubSub provides a publish-subscribe model for sending GCM topic messages.
+ *
+ * An app can subscribe to different topics defined by the
+ * developer. The app server can then send messages to the subscribed devices
+ * without having to maintain topic-subscribers mapping. Topics do not
+ * need to be explicitly created before subscribing or publishing&mdash;they
+ * are automatically created when publishing or subscribing.
+ *
+ * Messages published to the topic will be received as regular GCM messages
+ * with `"from"` set to `"/topics/myTopic"`.
+ *
+ * Only topic names that match the pattern `"/topics/[a-zA-Z0-9-_.~%]{1,900}"`
+ * are allowed for subscribing and publishing.
+ */
+@interface GCMPubSub : NSObject
+
+/**
+ * Returns an instance of GCMPubSub. Note you need to call
+ * `GCMService startWithConfig` to start using GCM.
+ *
+ * @return A shared instance of GCMPubSub.
+ */
++ (instancetype)sharedInstance;
+
+/**
+ * Subscribes an app instance to a topic, enabling it to receive messages
+ * sent to that topic.
+ *
+ * This is an asynchronous call. If subscription fails, GCM
+ * invokes the completion callback with the appropriate error.
+ *
+ * Call this function from the main thread. GCM is not thread safe.
+ *
+ * @see GCMPubSub unsubscribeWithToken:topic:handler:
+ *
+ * @param token The registration token as received from the InstanceID
+ * library for a given `authorizedEntity` and "gcm" scope.
+ * @param topic The topic to subscribe to. Should be of the form
+ * `"/topics/<topic-name>"`.
+ * @param handler The callback handler invoked when the subscribe call
+ * ends. In case of success, a nil error is returned. Otherwise,
+ * an appropriate error object is returned.
+ */
+- (void)subscribeWithToken:(NSString *)token
+ topic:(NSString *)topic
+ options:(NSDictionary *)options
+ handler:(GCMPubSubCompletion)handler;
+
+
+/**
+ * Unsubscribes an app instance from a topic, stopping it from receiving
+ * any further messages sent to that topic.
+ *
+ * This is an asynchronous call. If the attempt to unsubscribe fails,
+ * we invoke the `completion` callback passed in with an appropriate error.
+ *
+ * Call this function from the main thread.
+ *
+ * @param token The token used to subscribe to this topic.
+ * @param topic The topic to unsubscribe from.
+ * @param handler The handler that is invoked once the unsubscribe call ends.
+ * In case of success, nil error is returned. Otherwise, an
+ * appropriate error object is returned.
+ */
+- (void)unsubscribeWithToken:(NSString *)token
+ topic:(NSString *)topic
+ options:(NSDictionary *)options
+ handler:(GCMPubSubCompletion)handler;
+
+@end
diff --git a/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMReceiverDelegate.h b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMReceiverDelegate.h
new file mode 100644
index 00000000..45433aed
--- /dev/null
+++ b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMReceiverDelegate.h
@@ -0,0 +1,35 @@
+/**
+ * Delegate for receiving status of upstream messages sent via Google Cloud Messaging.
+ */
+@protocol GCMReceiverDelegate <NSObject>
+
+@optional
+/**
+ * The callback is invoked once GCM processes the message. If processing fails, the
+ * callback is invoked with a valid error object representing the error.
+ * Otherwise, the message is ready to be sent.
+ *
+ * @param messageID The messageID for the message that failed to be sent upstream.
+ * @param error The error describing why the send operation failed.
+ */
+- (void)willSendDataMessageWithID:(NSString *)messageID error:(NSError *)error;
+
+/**
+ * This callback is invoked if GCM successfully sent the message upstream
+ * and the message was successfully received.
+ *
+ * @param messageID The messageID for the message sent.
+ */
+- (void)didSendDataMessageWithID:(NSString *)messageID;
+
+/**
+ * Called when the GCM server deletes pending messages due to exceeded
+ * storage limits. This may occur, for example, when the device cannot be
+ * reached for an extended period of time.
+ *
+ * It is recommended to retrieve any missing messages directly from the
+ * app server.
+ */
+- (void)didDeleteMessagesOnServer;
+
+@end
diff --git a/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMService.h b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMService.h
new file mode 100644
index 00000000..d903e5a3
--- /dev/null
+++ b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GCMService.h
@@ -0,0 +1,243 @@
+@class GCMConfig;
+
+/**
+ * The completion handler invoked once the data connection with GCM is
+ * established. The data connection is used to send a continous stream of
+ * data and all the GCM data notifications arrive through this connection.
+ * Once the connection is established we invoke the callback with `nil` error.
+ * Correspondingly if we get an error while trying to establish a connection
+ * we invoke the handler with an appropriate error object and do an
+ * exponential backoff to try and connect again unless successful.
+
+ *
+ * @param error The error object if any describing why the data connection
+ * to GCM failed.
+ */
+typedef void(^GCMServiceConnectCompletion)(NSError *error);
+
+
+/**
+ * @enum GCMServiceErrorCode
+ * Description of error codes
+ */
+typedef NS_ENUM(NSUInteger, GCMServiceErrorCode) {
+ /**
+ * HTTP errors.
+ */
+
+ // InvalidRequest -- Some parameters of the request were invalid.
+ kGCMServiceErrorCodeInvalidRequest = 0,
+
+ // Auth Error -- GCM couldn't validate request from this client.
+ kGCMServiceErrorCodeAuthentication = 1,
+
+ // NoAccess -- InstanceID service cannot be accessed.
+ kGCMServiceErrorCodeNoAccess = 2,
+
+ // Timeout -- Request to InstanceID backend timed out.
+ kGCMServiceErrorCodeTimeout = 3,
+
+ // Network -- No network available to reach the servers.
+ kGCMServiceErrorCodeNetwork = 4,
+
+ // OperationInProgress -- Another similar operation in progress,
+ // bailing this one.
+ kGCMServiceErrorCodeOperationInProgress = 5,
+
+ // Unknown error.
+ kGCMServiceErrorCodeUnknown = 7,
+
+ /**
+ * Generic errors.
+ */
+
+ // Device seems to be missing a valid deviceID. Cannot authenticate
+ // device requests.
+ kGCMServiceErrorMissingDeviceID = 501,
+
+ /**
+ * Upstream Send errors
+ */
+
+ // Upstream send not available (e.g. network issues)
+ kGCMServiceErrorCodeUpstreamServiceNotAvailable = 1001,
+
+ // Invalid send parameters.
+ kGCMServiceErrorCodeInvalidParameters = 1002,
+
+ // Invalid missing to.
+ kGCMServiceErrorCodeMissingTo = 1003,
+
+ // GCM could not cache the message for sending.
+ kGCMServiceErrorSave = 1004,
+
+ // Message size exceeded (size > 4KB).
+ kGCMServiceErrorSizeExceeded = 1005,
+
+ /**
+ * GCM Connect errors.
+ */
+
+ // GCM already connected with the client.
+ kGCMServiceErrorCodeAlreadyConnected = 2001,
+
+ /**
+ * PubSub errors.
+ */
+
+ // Topic already subscribed to.
+ kGCMServiceErrorCodePubSubAlreadySubscribed = 3001,
+
+ // Topic already unsubscribed from.
+ kGCMServiceErrorCodePubSubAlreadyUnsubscribed = 3002,
+
+ // Invalid topic name, does not match the topic regex "/topics/[a-zA-Z0-9-_.~%]+"
+ kGCMServiceErrorCodePubSubInvalidTopic = 3003,
+};
+
+/**
+ * GoogleCloudMessaging (GCM) enables apps to communicate with their app servers
+ * using simple messages.
+ *
+ * To send or receive messages, the app must get a
+ * registration token from GGLInstanceID, which authorizes an
+ * app server to send messages to an app instance. Pass your sender ID and
+ * `kGGLInstanceIDScopeGCM` as parameters to the method.
+ *
+ * A sender ID is a project number created when you configure your API project.
+ * It is labeled "Project Number" in the Google Developers Console.
+ *
+ * In order to receive GCM messages, declare application:didReceiveRemoteNotification:
+ *
+ * Client apps can send upstream messages back to the app server using the XMPP-based
+ * <a href="http://developers.google.com/cloud-messaging/ccs.html">Cloud Connection Server</a>,
+ *
+ */
+@interface GCMService : NSObject
+
+/**
+ * GCMService
+ *
+ * @return A shared instance of GCMService.
+ */
++ (instancetype)sharedInstance;
+
+/**
+ * Start the `GCMService` with config. This starts the `GCMService` and
+ * allocates the required resources.
+ *
+ * @see GCMConfig
+ *
+ * @param config The `GCMConfig` used to build the service.
+ */
+- (void)startWithConfig:(GCMConfig *)config;
+
+/**
+ * Teardown the GCM connection and free all the resources owned by GCM.
+ *
+ * Call this when you don't need the GCM connection or to cancel all
+ * subscribe/unsubscribe requests. If GCM connection is alive before
+ * calling this, it would implicitly disconnect the connection.
+ *
+ * Calling `disconect` before invoking this method is useful but not required.
+ * Once you call this you won't be able to use `GCMService` for this session
+ * of your app. Therefore call this only when the app is going to exit.
+ * In case of background you should rather use `disconnect` and then
+ * if the app comes to the foreground again you can call `connect` again to
+ * establish a new connection.
+ */
+- (void)teardown;
+
+#pragma mark - Messages
+
+/**
+ * Call this to let GCM know that the app received a downstream message. Used
+ * to detect duplicate messages and to track message delivery for messages
+ * with different routes.
+ *
+ * @param message The downstream message received by the app.
+ *
+ * @return For APNs messages this always returns FALSE. For other messages,
+ * this returns FALSE for new, non-duplicated messages.
+ */
+- (BOOL)appDidReceiveMessage:(NSDictionary *)message;
+
+ #pragma mark - Connect
+
+/**
+ * Create a GCM data connection which will be used to send the data notifications
+ * send by your server. It will also be used to send ACKS and other messages based
+ * on the GCM ACKS and other messages based on the GCM protocol.
+ *
+ * Use the `disconnect` method to disconnect the connection.
+ *
+ * @see GCMService disconnect
+ *
+ * @param handler The handler to be invoked once the connection is established.
+ * If the connection fails we invoke the handler with an
+ * appropriate error code letting you know why it failed. At
+ * the same time, GCM performs exponential backoff to retry
+ * establishing a connection and invoke the handler when successful.
+ */
+- (void)connectWithHandler:(GCMServiceConnectCompletion)handler;
+
+/**
+ * Disconnect the current GCM data connection. This stops any attempts to
+ * connect to GCM. Calling this on an already disconnected client is a no-op.
+ *
+ * Call this before `teardown` when your app is going to the background.
+ * Since the GCM connection won't be allowed to live when in background it is
+ * prudent to close the connection.
+ *
+ * @see GCMService teardown
+ */
+- (void)disconnect;
+
+#pragma mark - Send
+
+/**
+ * Send an upstream ("device to cloud") message.
+ *
+ * The message will be queued if we don't have an active connection for the max
+ * interval.
+ *
+ * @param message Key/Value pairs to be sent. Values must be String, any other
+ * type will be ignored.
+ * @param to String identifying the receiver of the message. For GCM
+ * project IDs the value is `SENDER_ID@gcm.googleapis.com`.
+ * @param msgId A unique ID of the message. This is generated by the
+ * application. It must be unique for each message. This allows
+ * error callbacks and debugging.
+ */
+- (void)sendMessage:(NSDictionary *)message
+ to:(NSString *)to
+ withId:(NSString *)msgId;
+
+/**
+ * Send an upstream ("device to cloud") message.
+ *
+ * The message will be queued if we don't have an active connection for the max
+ * interval. You can only use the upstream feature if your GCM implementation
+ * uses the XMPP-based Cloud Connection Server.
+ *
+ * @param message Key/Value pairs to be sent. Values must be String, any
+ * other type will be ignored.
+ * @param to A string identifying the receiver of the message. For GCM
+ * project IDs the value is `SENDER_ID@gcm.googleapis.com`.
+ * @param ttl The Time to live for the message. In case we aren't able to
+ * send the message before the ttl expires we will send you a
+ * callback. If 0, we'll attempt to send immediately and return
+ * an error if we're not connected. Otherwise, the message will
+ * be queued.As for server-side messages, we don't return an error
+ * if the message has been dropped because of TTL; this can happen
+ * on the server side, and it would require extra communication.
+ * @param msgId The ID of the message. This is generated by the application. It
+ * must be unique for each message. It allows error callbacks and
+ * debugging, to uniquely identify each message.
+ */
+- (void)sendMessage:(NSDictionary *)message
+ to:(NSString *)to
+ timeToLive:(int64_t)ttl
+ withId:(NSString *)msgId;
+
+@end
diff --git a/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GoogleCloudMessaging.h b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GoogleCloudMessaging.h
new file mode 100644
index 00000000..aab64fbe
--- /dev/null
+++ b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Headers/Public/GoogleCloudMessaging.h
@@ -0,0 +1,5 @@
+#import "GCMConfig.h"
+#import "GCMPubSub.h"
+#import "GCMReceiverDelegate.h"
+#import "GCMService.h"
+
diff --git a/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Libraries/libGcmLib.a b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Libraries/libGcmLib.a
new file mode 100755
index 00000000..a9356d23
--- /dev/null
+++ b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/Libraries/libGcmLib.a
Binary files differ
diff --git a/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/README.md b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/README.md
new file mode 100644
index 00000000..2c900de2
--- /dev/null
+++ b/StoneIsland/platforms/ios/Pods/GoogleCloudMessaging/README.md
@@ -0,0 +1,10 @@
+# Google Cloud Messaging SDK for iOS
+
+Google Cloud Messaging (GCM) is a free service that enables developers to send
+messages between servers and client apps. This includes downstream messages
+from servers to client apps, and upstream messages from client apps to servers.
+
+
+Please visit [our developer
+site](https://developers.google.com/cloud-messaging/ios/start) for integration
+instructions, documentation, support information, and terms of service.