summaryrefslogtreecommitdiff
path: root/StoneIsland/plugins/cordova-plugin-google-analytics
diff options
context:
space:
mode:
Diffstat (limited to 'StoneIsland/plugins/cordova-plugin-google-analytics')
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/LICENSE20
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/README.md203
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/android/UniversalAnalyticsPlugin.java469
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/browser/UniversalAnalyticsProxy.js253
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAI.h192
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIDictionaryBuilder.h217
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceFields.h124
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceProduct.h102
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceProductAction.h107
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommercePromotion.h54
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIFields.h133
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAILogger.h49
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAITrackedViewController.h33
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAITracker.h57
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/ios/UniversalAnalyticsPlugin.h34
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/ios/UniversalAnalyticsPlugin.m543
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/ios/libAdIdAccess.abin99320 -> 0 bytes
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/ios/libGoogleAnalyticsServices.abin34421440 -> 0 bytes
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/lavaca/AnalyticsService.js121
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/package.json29
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/plugin.xml99
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/typescript/analytics.d.ts62
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PhoneHelpers.cs30
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PhoneNameResolver.cs578
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PlatformInfoProvider.WP.cs103
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/wp8/UniversalAnalytics.cs399
-rw-r--r--StoneIsland/plugins/cordova-plugin-google-analytics/www/analytics.js127
27 files changed, 0 insertions, 4138 deletions
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/LICENSE b/StoneIsland/plugins/cordova-plugin-google-analytics/LICENSE
deleted file mode 100644
index bb1eb977..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2013 danwilson
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/README.md b/StoneIsland/plugins/cordova-plugin-google-analytics/README.md
deleted file mode 100644
index 52433004..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/README.md
+++ /dev/null
@@ -1,203 +0,0 @@
-google-analytics-plugin
-=======================
-[![npm](https://img.shields.io/npm/v/cordova-plugin-google-analytics.svg)](https://www.npmjs.com/package/cordova-plugin-google-analytics)
-[![npm](https://img.shields.io/npm/dt/cordova-plugin-google-analytics.svg?label=npm%20downloads)](https://www.npmjs.com/package/cordova-plugin-google-analytics)
-[![MIT license](http://img.shields.io/badge/license-MIT-brightgreen.svg)](http://opensource.org/licenses/MIT)
-
-Cordova (PhoneGap) 3.0+ Plugin to connect to Google's native Universal Analytics SDK
-
-Prerequisites:
-* A Cordova 3.0+ project for iOS, Android, browser (PWA), and/or Windows Phone 8
-* A Mobile App property through the Google Analytics Admin Console
-* (Android) Google Play Services SDK installed via [Android SDK Manager](https://developer.android.com/sdk/installing/adding-packages.html)
-
-# Installing
-
-This plugin follows the Cordova 3.0+ plugin spec, so it can be installed through the Cordova CLI in your existing Cordova project:
-```bash
-cordova plugin add https://github.com/danwilson/google-analytics-plugin.git
-```
-
-This plugin is also available on npm if you are using Cordova 5.0+:
-```bash
-cordova plugin add cordova-plugin-google-analytics
-```
-
-... OR the Cordova Plugin Registry if you are using a version of Cordova before 5.0 (while it remains open, as it is planning to shut down soon due to the move to npm):
-```bash
-cordova plugin add com.danielcwilson.plugins.googleanalytics
-```
-
-*Important Note* If the latest versions (0.8.0+) of this plugin are not working for you with Android on Cordova 5.0+, please try the suggestions in [Issues 123](https://github.com/danwilson/google-analytics-plugin/issues/123#issuecomment-151145095). Google Play Services has been very confusing to integrate, but in recent months it has been simplified. This plugin uses the new simpler way (including it as a framework instead of bundling it which can conflict with other plugins bundling it), but if you previously installed this plugin some old files might still be lingering.
-
-The plugin.xml file will add the Google Analytics SDK files for Android, iOS, browser (PWA) and/or Windows Phone 8. Follow [Google's steps](#sdk-files) if you need to update these later. Also make sure to review the Google Analytics [terms](http://www.google.com/analytics/terms/us.html) and [SDK Policy](https://developers.google.com/analytics/devguides/collection/protocol/policy)
-
-If you are not using the CLI, follow the steps in the section [Installing Without the CLI](#nocli)
-
-Windows Phone users have to manually add the [Google Analytics SDK for Windows 8 and Windows Phone](https://googleanalyticssdk.codeplex.com/) to your solution. To do this, just open your Cordova solution in Visual Studio, and add the [GoogleAnalyticsSDK package via NuGet](http://nuget.org/packages/GoogleAnalyticsSDK). This plugin requires v1.3.0 or higher.
-
-# Release note
-
-v1.0.0 -- api change from ```window.analytics``` to ```window.ga```, 'analytics' is deprecated since 1.0.0 and you should use the new api 'ga',
-because in the next release we are removing the analytics.
-
-v1.7.x -- since this version there are new parameters in some of the old methods like `startTrackerWithId('UA-XXXX-YY', 30)`
-and this is causing errors for those who are using the ionic 2(ionic-native) or ionic 1 (ngCordova);
-these wrapper interfaces don't have the new parameters at the time we did the changes; so please update you ionic framework to the lastest version.
-
-v1.7.11 -- since this version there is back compatibility with the new and old parameters in the method `startTrackerWithId('UA-XXXX-YY', 30)` to avoid loading issues reported.
-
-
-# JavaScript Usage
-
-**All the following methods accept optional success and error callbacks after all other available parameters.**
-
-In your 'deviceready' handler, set up your Analytics tracker:
-* `window.ga.startTrackerWithId('UA-XXXX-YY', 30)` where UA-XXXX-YY is your Google Analytics Mobile App property and 30 is the dispatch period (optional)
-
-To track a Screen (PageView):
-* `window.ga.trackView('Screen Title')`
-
-To track a Screen (PageView) w/ campaign details:
-* `window.ga.trackView('Screen Title', 'my-scheme://content/1111?utm_source=google&utm_campaign=my-campaign')`
-
-To track a Screen (PageView) and create a new session:
-* `window.ga.trackView('Screen Title', '', true)`
-
-To track an Event:
-* `window.ga.trackEvent('Category', 'Action', 'Label', Value)` Label and Value are optional, Value is numeric
-
-To track an Event and create a new session:
-* `window.ga.trackEvent('Category', 'Action', 'Label', Value, true)` Label, Value and newSession are optional, Value is numeric, newSession is true/false
-
-To track custom metrics:
-* `window.ga.trackMetric('key', Value)` Value is optional
-
-To track an Exception:
-* `window.ga.trackException('Description', Fatal)` where Fatal is boolean
-
-To track User Timing (App Speed):
-* `window.ga.trackTiming('Category', IntervalInMilliseconds, 'Variable', 'Label')` where IntervalInMilliseconds is numeric
-
-To add a Transaction (Ecommerce)
-* `window.ga.addTransaction('ID', 'Affiliation', Revenue, Tax, Shipping, 'Currency Code')` where Revenue, Tax, and Shipping are numeric
-
-To add a Transaction Item (Ecommerce)
-* `window.ga.addTransactionItem('ID', 'Name', 'SKU', 'Category', Price, Quantity, 'Currency Code')` where Price and Quantity are numeric
-
-To add a Custom Dimension
-* `window.ga.addCustomDimension('Key', 'Value', success, error)`
-* Key should be integer index of the dimension i.e. send `1` instead of `dimension1` for the first custom dimension you are tracking.
-* e.g. `window.ga.addCustomDimension(1, 'Value', success, error)`
-
-To set a UserId:
-* `window.ga.setUserId('my-user-id')`
-
-To set a specific app version:
-* `window.ga.setAppVersion('1.33.7')`
-
-To get a specific variable using this key list https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters:
-for example to get campaign name:
-* `window.ga.getVar('cn', function(result){ console.log(result);})`
-
-To set a specific variable using this key list https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters:
-for example to set session control:
-* `window.ga.setVar('sc', 'end', function(result){ console.log(result);})`
-
-To manually dispatch any data (this is not implemented in browser platform):
-* `window.ga.dispatch()`
-
-To set a anonymize Ip address:
-* `window.ga.setAnonymizeIp(true)`
-
-To set Opt-out:
-* `window.ga.setOptOut(true)`
-
-To enabling Advertising Features in Google Analytics allows you to take advantage of Remarketing, Demographics & Interests reports, and more:
-* `window.ga.setAllowIDFACollection(true)`
-
-To enable verbose logging:
-* `window.ga.debugMode()`
-
-To enable/disable automatic reporting of uncaught exceptions
-* `window.ga.enableUncaughtExceptionReporting(Enable, success, error)` where Enable is boolean
-
-# Example use ionic 2 (Ionic Native)
-```shell
-npm i --save @ionic-native/google-analytics
-```
-```javascript
-import { GoogleAnalytics } from '@ionic-native/google-analytics';
-import { Platform } from 'ionic-angular';
-
-...
-
- constructor(private ga: GoogleAnalytics, private platform: Platform) { }
-
- initializeApp() {
- this.platform.ready().then(() => {
- this.ga.startTrackerWithId('UA-00000000-0')
- .then(() => {
- console.log('Google analytics is ready now');
- //the component is ready and you can call any method here
- this.ga.debugMode();
- this.ga.setAllowIDFACollection(true);
- })
- .catch(e => console.log('Error starting GoogleAnalytics', e));
- });
- }
-```
-
-# Installing Without the CLI <a name="nocli"></a>
-
-Copy the files manually into your project and add the following to your config.xml files:
-```xml
-<feature name="UniversalAnalytics">
- <param name="ios-package" value="UniversalAnalyticsPlugin" />
-</feature>
-```
-```xml
-<feature name="UniversalAnalytics">
- <param name="android-package" value="com.danielcwilson.plugins.analytics.UniversalAnalyticsPlugin" />
-</feature>
-```
-```xml
-<feature name="UniversalAnalytics">
- <param name="wp-package" value="UniversalAnalyticsPlugin" />
-</feature>
-```
-<a name="sdk-files"></a>
-You also will need to manually add the Google Analytics SDK files:
-* Download the Google Analytics SDK 3.0 for [iOS](https://developers.google.com/analytics/devguides/collection/ios/) and/or [Android](https://developers.google.com/analytics/devguides/collection/android/)
-* For iOS, add the downloaded Google Analytics SDK header files and libraries according to the [Getting Started](https://developers.google.com/analytics/devguides/collection/ios/v3) documentation
-* For Android, add `libGoogleAnalyticsServices.jar` to your Cordova Android project's `/libs` directory and build path
-* For Windows Phone, add the [GoogleAnalyticsSDK package via NuGet](http://nuget.org/packages/GoogleAnalyticsSDK)
-
-# Integrating with Lavaca
-
-The `lavaca` directory includes a component that can be added to a <a href="http://getlavaca.com">Lavaca</a> project. It offers a way to use the web `analytics.js` when the app is running in the browser and not packaged as Cordova.
-
-* Copy `AnalyticsService.js` to your Lavaca project (I create a directory under `js/app` called `data`).
-* In your config files (`local.json`, `staging.json`, `production.js`) create properties called `google_analytics_id` (for the Mobile App UA property) and `google_analytics_web_id` (for the Web UA property) and set the appropriate IDs or leave blank as needed.
-* In any file you want to track screen views or events, require AnalyticsService and use the methods provided.
-
-```javascript
-var analyticsService = require('app/data/AnalyticsService');
-
-analyticsService.trackView('Home');
-```
-
-# Browser (PWA)
-
-For browser (PWA), people who want to use the plugin in a website that has already integrated google analytics needs
-to make sure that they remove the google analytics snippet from the head section of the page and change the global `ga`
-object name to something else. The plugin uses `nativeGa` instead. This can be changed by the following code.
-
-```js
-// insert this in your head
-<script>
-window['GoogleAnalyticsObject'] = 'fooGa';
-</script>
-```
-
-The plugin will pick up the new name.
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/android/UniversalAnalyticsPlugin.java b/StoneIsland/plugins/cordova-plugin-google-analytics/android/UniversalAnalyticsPlugin.java
deleted file mode 100644
index 23c20023..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/android/UniversalAnalyticsPlugin.java
+++ /dev/null
@@ -1,469 +0,0 @@
-package com.danielcwilson.plugins.analytics;
-
-import com.google.android.gms.analytics.GoogleAnalytics;
-import com.google.android.gms.analytics.Logger.LogLevel;
-import com.google.android.gms.analytics.HitBuilders;
-import com.google.android.gms.analytics.Tracker;
-
-import org.apache.cordova.CordovaPlugin;
-import org.apache.cordova.CallbackContext;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map.Entry;
-
-public class UniversalAnalyticsPlugin extends CordovaPlugin {
- public static final String START_TRACKER = "startTrackerWithId";
- public static final String TRACK_VIEW = "trackView";
- public static final String TRACK_EVENT = "trackEvent";
- public static final String TRACK_EXCEPTION = "trackException";
- public static final String TRACK_TIMING = "trackTiming";
- public static final String TRACK_METRIC = "trackMetric";
- public static final String ADD_DIMENSION = "addCustomDimension";
- public static final String ADD_TRANSACTION = "addTransaction";
- public static final String ADD_TRANSACTION_ITEM = "addTransactionItem";
-
- public static final String SET_ALLOW_IDFA_COLLECTION = "setAllowIDFACollection";
- public static final String SET_USER_ID = "setUserId";
- public static final String SET_ANONYMIZE_IP = "setAnonymizeIp";
- public static final String SET_OPT_OUT = "setOptOut";
- public static final String SET_APP_VERSION = "setAppVersion";
- public static final String GET_VAR = "getVar";
- public static final String SET_VAR = "setVar";
- public static final String DISPATCH = "dispatch";
- public static final String DEBUG_MODE = "debugMode";
- public static final String ENABLE_UNCAUGHT_EXCEPTION_REPORTING = "enableUncaughtExceptionReporting";
-
- public Boolean trackerStarted = false;
- public Boolean debugModeEnabled = false;
- public HashMap<Integer, String> customDimensions = new HashMap<Integer, String>();
-
- public Tracker tracker;
-
- @Override
- public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
- if (START_TRACKER.equals(action)) {
- String id = args.getString(0);
- int dispatchPeriod = args.length() > 1 ? args.getInt(1) : 30;
- this.startTracker(id, dispatchPeriod, callbackContext);
- return true;
- } else if (TRACK_VIEW.equals(action)) {
- int length = args.length();
- String screen = args.getString(0);
- this.trackView(screen, length > 1 && !args.isNull(1) ? args.getString(1) : "", length > 2 && !args.isNull(2) ? args.getBoolean(2) : false, callbackContext);
- return true;
- } else if (TRACK_EVENT.equals(action)) {
- int length = args.length();
- if (length > 0) {
- this.trackEvent(
- args.getString(0),
- length > 1 ? args.getString(1) : "",
- length > 2 ? args.getString(2) : "",
- length > 3 ? args.getLong(3) : 0,
- length > 4 ? args.getBoolean(4) : false,
- callbackContext);
- }
- return true;
- } else if (TRACK_EXCEPTION.equals(action)) {
- String description = args.getString(0);
- Boolean fatal = args.getBoolean(1);
- this.trackException(description, fatal, callbackContext);
- return true;
- } else if (TRACK_TIMING.equals(action)) {
- int length = args.length();
- if (length > 0) {
- this.trackTiming(args.getString(0), length > 1 ? args.getLong(1) : 0, length > 2 ? args.getString(2) : "", length > 3 ? args.getString(3) : "", callbackContext);
- }
- return true;
- } else if (TRACK_METRIC.equals(action)) {
- int length = args.length();
- if (length > 0) {
- this.trackMetric(args.getInt(0), length > 1 ? args.getString(1) : "", callbackContext);
- }
- return true;
- } else if (ADD_DIMENSION.equals(action)) {
- Integer key = args.getInt(0);
- String value = args.getString(1);
- this.addCustomDimension(key, value, callbackContext);
- return true;
- } else if (ADD_TRANSACTION.equals(action)) {
- int length = args.length();
- if (length > 0) {
- this.addTransaction(
- args.getString(0),
- length > 1 ? args.getString(1) : "",
- length > 2 ? args.getDouble(2) : 0,
- length > 3 ? args.getDouble(3) : 0,
- length > 4 ? args.getDouble(4) : 0,
- length > 5 ? args.getString(5) : null,
- callbackContext);
- }
- return true;
- } else if (ADD_TRANSACTION_ITEM.equals(action)) {
- int length = args.length();
- if (length > 0) {
- this.addTransactionItem(
- args.getString(0),
- length > 1 ? args.getString(1) : "",
- length > 2 ? args.getString(2) : "",
- length > 3 ? args.getString(3) : "",
- length > 4 ? args.getDouble(4) : 0,
- length > 5 ? args.getLong(5) : 0,
- length > 6 ? args.getString(6) : null,
- callbackContext);
- }
- return true;
- } else if (SET_ALLOW_IDFA_COLLECTION.equals(action)) {
- this.setAllowIDFACollection(args.getBoolean(0), callbackContext);
- } else if (SET_USER_ID.equals(action)) {
- String userId = args.getString(0);
- this.setUserId(userId, callbackContext);
- } else if (SET_ANONYMIZE_IP.equals(action)) {
- boolean anonymize = args.getBoolean(0);
- this.setAnonymizeIp(anonymize, callbackContext);
- } else if (SET_OPT_OUT.equals(action)) {
- boolean optout = args.getBoolean(0);
- this.setOptOut(optout, callbackContext);
- } else if (SET_APP_VERSION.equals(action)) {
- String version = args.getString(0);
- this.setAppVersion(version, callbackContext);
- } else if (GET_VAR.equals(action)) {
- String variable = args.getString(0);
- this.getVar(variable, callbackContext);
- } else if (SET_VAR.equals(action)) {
- String variable = args.getString(0);
- String value = args.getString(1);
- this.setVar(variable, value, callbackContext);
- return true;
- } else if (DISPATCH.equals(action)) {
- this.dispatch(callbackContext);
- return true;
- } else if (DEBUG_MODE.equals(action)) {
- this.debugMode(callbackContext);
- } else if (ENABLE_UNCAUGHT_EXCEPTION_REPORTING.equals(action)) {
- Boolean enable = args.getBoolean(0);
- this.enableUncaughtExceptionReporting(enable, callbackContext);
- }
- return false;
- }
-
- private void startTracker(String id, int dispatchPeriod, CallbackContext callbackContext) {
- if (null != id && id.length() > 0) {
- tracker = GoogleAnalytics.getInstance(this.cordova.getActivity()).newTracker(id);
- callbackContext.success("tracker started");
- trackerStarted = true;
- GoogleAnalytics.getInstance(this.cordova.getActivity()).setLocalDispatchPeriod(dispatchPeriod);
- } else {
- callbackContext.error("tracker id is not valid");
- }
- }
-
- private void addCustomDimension(Integer key, String value, CallbackContext callbackContext) {
- if (key <= 0) {
- callbackContext.error("Expected positive integer argument for key.");
- return;
- }
-
- if (null == value || value.length() == 0) {
- callbackContext.error("Expected non-empty string argument for value.");
- return;
- }
-
- customDimensions.put(key, value);
- callbackContext.success("custom dimension started");
- }
-
- private <T> void addCustomDimensionsToHitBuilder(T builder) {
- //unfortunately the base HitBuilders.HitBuilder class is not public, therefore have to use reflection to use
- //the common setCustomDimension (int index, String dimension) method
- try {
- Method builderMethod = builder.getClass().getMethod("setCustomDimension", Integer.TYPE, String.class);
-
- for (Entry<Integer, String> entry : customDimensions.entrySet()) {
- Integer key = entry.getKey();
- String value = entry.getValue();
- try {
- builderMethod.invoke(builder, (key), value);
- } catch (IllegalArgumentException e) {
- } catch (IllegalAccessException e) {
- } catch (InvocationTargetException e) {
- }
- }
- } catch (SecurityException e) {
- } catch (NoSuchMethodException e) {
- }
- }
-
- private void trackView(String screenname, String campaignUrl, boolean newSession, CallbackContext callbackContext) {
- if (! trackerStarted ) {
- callbackContext.error("Tracker not started");
- return;
- }
-
- if (null != screenname && screenname.length() > 0) {
- tracker.setScreenName(screenname);
-
- HitBuilders.ScreenViewBuilder hitBuilder = new HitBuilders.ScreenViewBuilder();
- addCustomDimensionsToHitBuilder(hitBuilder);
-
- if(!campaignUrl.equals("")){
- hitBuilder.setCampaignParamsFromUrl(campaignUrl);
- }
-
- if(!newSession) {
- tracker.send(hitBuilder.build());
- } else {
- tracker.send(hitBuilder.setNewSession().build());
- }
-
- callbackContext.success("Track Screen: " + screenname);
- } else {
- callbackContext.error("Expected one non-empty string argument.");
- }
- }
-
- private void trackEvent(String category, String action, String label, long value, boolean newSession, CallbackContext callbackContext) {
- if (!trackerStarted) {
- callbackContext.error("Tracker not started");
- return;
- }
-
- if (null != category && category.length() > 0) {
- HitBuilders.EventBuilder hitBuilder = new HitBuilders.EventBuilder();
- addCustomDimensionsToHitBuilder(hitBuilder);
-
- if(!newSession){
- tracker.send(hitBuilder
- .setCategory(category)
- .setAction(action)
- .setLabel(label)
- .setValue(value)
- .build());
- } else {
- tracker.send(hitBuilder
- .setCategory(category)
- .setAction(action)
- .setLabel(label)
- .setValue(value)
- .setNewSession()
- .build());
- }
-
- callbackContext.success("Track Event: " + category);
- } else {
- callbackContext.error("Expected non-empty string arguments.");
- }
- }
-
- private void trackMetric(Integer key, String value, CallbackContext callbackContext) {
- if (!trackerStarted) {
- callbackContext.error("Tracker not started");
- return;
- }
-
- if (key >= 0) {
- HitBuilders.ScreenViewBuilder hitBuilder = new HitBuilders.ScreenViewBuilder();
- tracker.send(hitBuilder
- .setCustomMetric(key, Float.parseFloat(value))
- .build()
- );
- callbackContext.success("Track Metric: " + key + ", value: " + value);
- } else {
- callbackContext.error("Expected integer key: " + key + ", and string value: " + value);
- }
- }
-
- private void trackException(String description, Boolean fatal, CallbackContext callbackContext) {
- if (!trackerStarted) {
- callbackContext.error("Tracker not started");
- return;
- }
-
- if (null != description && description.length() > 0) {
- HitBuilders.ExceptionBuilder hitBuilder = new HitBuilders.ExceptionBuilder();
- addCustomDimensionsToHitBuilder(hitBuilder);
-
- tracker.send(hitBuilder
- .setDescription(description)
- .setFatal(fatal)
- .build()
- );
- callbackContext.success("Track Exception: " + description);
- } else {
- callbackContext.error("Expected non-empty string arguments.");
- }
- }
-
- private void trackTiming(String category, long intervalInMilliseconds, String name, String label, CallbackContext callbackContext) {
- if (!trackerStarted) {
- callbackContext.error("Tracker not started");
- return;
- }
-
- if (null != category && category.length() > 0) {
- HitBuilders.TimingBuilder hitBuilder = new HitBuilders.TimingBuilder();
- addCustomDimensionsToHitBuilder(hitBuilder);
-
- tracker.send(hitBuilder
- .setCategory(category)
- .setValue(intervalInMilliseconds)
- .setVariable(name)
- .setLabel(label)
- .build()
- );
- callbackContext.success("Track Timing: " + category);
- } else {
- callbackContext.error("Expected non-empty string arguments.");
- }
- }
-
- private void addTransaction(String id, String affiliation, double revenue, double tax, double shipping, String currencyCode, CallbackContext callbackContext) {
- if (!trackerStarted) {
- callbackContext.error("Tracker not started");
- return;
- }
-
- if (null != id && id.length() > 0) {
- HitBuilders.TransactionBuilder hitBuilder = new HitBuilders.TransactionBuilder();
- addCustomDimensionsToHitBuilder(hitBuilder);
-
- tracker.send(hitBuilder
- .setTransactionId(id)
- .setAffiliation(affiliation)
- .setRevenue(revenue).setTax(tax)
- .setShipping(shipping)
- .setCurrencyCode(currencyCode)
- .build()
- ); //Deprecated
- callbackContext.success("Add Transaction: " + id);
- } else {
- callbackContext.error("Expected non-empty ID.");
- }
- }
-
- private void addTransactionItem(String id, String name, String sku, String category, double price, long quantity, String currencyCode, CallbackContext callbackContext) {
- if (!trackerStarted) {
- callbackContext.error("Tracker not started");
- return;
- }
-
- if (null != id && id.length() > 0) {
- HitBuilders.ItemBuilder hitBuilder = new HitBuilders.ItemBuilder();
- addCustomDimensionsToHitBuilder(hitBuilder);
-
- tracker.send(hitBuilder
- .setTransactionId(id)
- .setName(name)
- .setSku(sku)
- .setCategory(category)
- .setPrice(price)
- .setQuantity(quantity)
- .setCurrencyCode(currencyCode)
- .build()
- ); //Deprecated
- callbackContext.success("Add Transaction Item: " + id);
- } else {
- callbackContext.error("Expected non-empty ID.");
- }
- }
-
- private void setAllowIDFACollection(Boolean enable, CallbackContext callbackContext) {
- if (!trackerStarted) {
- callbackContext.error("Tracker not started");
- return;
- }
-
- tracker.enableAdvertisingIdCollection(enable);
- callbackContext.success("Enable Advertising Id Collection: " + enable);
- }
-
- private void setVar(String variable, String value, CallbackContext callbackContext) {
- if (!trackerStarted) {
- callbackContext.error("Tracker not started");
- return;
- }
-
- tracker.set(variable, value);
- callbackContext.success("Set variable " + variable + "to " + value);
- }
- private void dispatch(CallbackContext callbackContext) {
- if (!trackerStarted) {
- callbackContext.error("Tracker not started");
- return;
- }
-
- GoogleAnalytics.getInstance(this.cordova.getActivity()).dispatchLocalHits();
- callbackContext.success("dispatch sent");
- }
-
- private void getVar(String variable, CallbackContext callbackContext) {
- if (!trackerStarted) {
- callbackContext.error("Tracker not started");
- return;
- }
-
- String result = tracker.get(variable);
- callbackContext.success(result);
- }
-
- private void debugMode(CallbackContext callbackContext) {
- GoogleAnalytics.getInstance(this.cordova.getActivity()).getLogger().setLogLevel(LogLevel.VERBOSE);
-
- this.debugModeEnabled = true;
- callbackContext.success("debugMode enabled");
- }
-
- private void setAnonymizeIp(boolean anonymize, CallbackContext callbackContext) {
- if (!trackerStarted) {
- callbackContext.error("Tracker not started");
- return;
- }
-
- tracker.setAnonymizeIp(anonymize);
- callbackContext.success("Set AnonymizeIp " + anonymize);
- }
-
- private void setOptOut(boolean optout, CallbackContext callbackContext) {
- if (!trackerStarted) {
- callbackContext.error("Tracker not started");
- return;
- }
-
- GoogleAnalytics.getInstance(this.cordova.getActivity()).setAppOptOut(optout);
- callbackContext.success("Set Opt-Out " + optout);
- }
-
- private void setUserId(String userId, CallbackContext callbackContext) {
- if (!trackerStarted) {
- callbackContext.error("Tracker not started");
- return;
- }
-
- tracker.set("&uid", userId);
- callbackContext.success("Set user id" + userId);
- }
-
- private void setAppVersion(String version, CallbackContext callbackContext) {
- if (!trackerStarted) {
- callbackContext.error("Tracker not started");
- return;
- }
-
- tracker.set("&av", version);
- callbackContext.success("Set app version: " + version);
- }
-
- private void enableUncaughtExceptionReporting(Boolean enable, CallbackContext callbackContext) {
- if (!trackerStarted) {
- callbackContext.error("Tracker not started");
- return;
- }
-
- tracker.enableExceptionReporting(enable);
- callbackContext.success((enable ? "Enabled" : "Disabled") + " uncaught exception reporting");
- }
-}
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/browser/UniversalAnalyticsProxy.js b/StoneIsland/plugins/cordova-plugin-google-analytics/browser/UniversalAnalyticsProxy.js
deleted file mode 100644
index a42eee39..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/browser/UniversalAnalyticsProxy.js
+++ /dev/null
@@ -1,253 +0,0 @@
-function UniversalAnalyticsProxy() {
- this._isDebug = false;
- this._isEcommerceRequired = false;
- this._trackingId = null;
-
- var namespace = window.GoogleAnalyticsObject || 'nativeGa';
- loadGoogleAnalytics.call(this, namespace);
-
- bindAll(this, [
- '_ensureEcommerce',
- '_uncaughtExceptionHandler',
- 'addCustomDimension',
- 'addTransaction',
- 'addTransactionItem',
- 'debugMode',
- 'enableUncaughtExceptionReporting',
- 'setAllowIDFACollection',
- 'setAnonymizeIp',
- 'setAppVersion',
- 'setOptOut',
- 'setUserId',
- 'getVar',
- 'setVar',
- 'startTrackerWithId',
- 'trackEvent',
- 'trackException',
- 'trackMetric',
- 'trackTiming',
- 'trackView'
- ]);
-}
-
-UniversalAnalyticsProxy.prototype = {
- startTrackerWithId: wrap(function (trackingId) {
- this._trackingId = trackingId;
-
- this._ga('create', {
- trackingId: trackingId,
- cookieDomain: 'auto'
- });
- this._ga('set', 'appName', document.title);
- }),
-
- setUserId: wrap(function (userId) {
- this._ga('set', 'userId', userId);
- }),
-
- setAnonymizeIp: wrap(function (anonymize) {
- this._ga('set', 'anonymizeIp', anonymize);
- }),
-
- setOptOut: wrap(function (optout) {
- if (!this._trackingId) {
- throw new Error('TrackingId not available');
- }
- window['ga-disable-' + this._trackingId] = optout;
- }),
-
- setAppVersion: wrap(function (version) {
- this._ga('set', 'appVersion', version);
- }),
-
- setAllowIDFACollection: wrap(function (enable) {
- // Not supported by browser platofrm
- }),
-
- getVar: function (param, success, error) {
- this._ga(function(tracker){
- success(tracker.get(param));
- });
- },
-
- setVar: wrap(function(param, value){
- this._ga('set', param, value);
- }),
-
- debugMode: wrap(function () {
- this._isDebug = true;
- }),
-
- addCustomDimension: wrap(function (key, value) {
- this._ga('set', 'dimension' + key, value);
- }),
-
- trackMetric: wrap(function (key, value) {
- this._ga('set', 'metric' + key, value);
- }),
-
- trackEvent: send(function (category, action, label, value, newSession) {
- return {
- hitType: 'event',
- eventCategory: category,
- eventAction: action,
- eventLabel: label,
- eventValue: value
- };
- }),
-
- trackView: send(function (screen) {
- return {
- hitType: 'screenview',
- screenName: screen
- };
- }),
-
- trackException: send(function (description, fatal) {
- return {
- hitType: 'exception',
- exDescription: description,
- exFatal: fatal
- };
- }),
-
- trackTiming: send(function (category, intervalInMilliseconds, name, label) {
- return {
- hitType: 'timing',
- timingCategory: category,
- timingVar: name,
- timingValue: intervalInMilliseconds,
- timingLabel: label
- };
- }),
-
- addTransaction: wrap(function (transactionId, affiliation, revenue, tax, shipping, currencyCode) {
- this._ensureEcommerce();
- this._ga('ecommerce:addTransaction', {
- id: transactionId,
- affiliation: affiliation,
- revenue: String(revenue),
- shipping: String(shipping),
- tax: String(tax),
- currency: currencyCode
- });
- }),
-
- addTransactionItem: wrap(function (transactionId, name, sku, category, price, quantity, currencyCode) {
- this._ensureEcommerce();
- this._ga('ecommerce:addItem', {
- id: transactionId,
- name: name,
- sku: sku,
- category: category,
- price: String(price),
- quantity: String(quantity),
- currency: currencyCode
- });
- }),
-
- enableUncaughtExceptionReporting: wrap(function (enable) {
- if (enable) {
- window.addEventListener('error', this._uncaughtExceptionHandler);
- } else {
- window.removeEventListener('error', this._uncaughtExceptionHandler);
- }
- }),
-
- _ga: function () {
- var args = Array.prototype.slice.call(arguments);
- if (this._isDebug) {
- console.debug('UniversalAnalyticsProxy', args);
- }
- this._nativeGa.apply(this._nativeGa, args);
- },
-
- _uncaughtExceptionHandler: function (err) {
- this._ga('send', {
- hitType: 'exception',
- exDescription: err.message,
- exFatal: true
- });
- },
-
- _ensureEcommerce: function() {
- if (this._isEcommerceRequired) return;
- this._ga('require', 'ecommerce');
- this._isEcommerceRequired = true;
- }
-};
-
-function send(fn) {
- return function (success, error, args) {
- var command = fn.apply(this, args);
- var timeout = setTimeout(function () {
- error(new Error('send timeout'));
- }, 3000);
-
- command.hitCallback = function hitCallback(result) {
- clearTimeout(timeout);
- success(result);
- };
-
- try {
- this._ga('send', command);
- } catch (err) {
- clearTimeout(timeout);
- defer(error, err);
- }
- };
-}
-
-function bindAll(that, names) {
- names.forEach(function(name) {
- if (typeof that[name] === 'function') {
- that[name] = that[name].bind(that);
- }
- });
-}
-
-/**
- * Proceed to the asynchronous loading of Google's analytics.js.
- * Initialize `this._nativeGa` once the script is loaded, using
- * the `onload` callback of the `script` DOM node.
- *
- * @param {string} name Reference (global namespace) of the GA object.
- */
-function loadGoogleAnalytics(name) {
- window.GoogleAnalyticsObject = name;
-
- window[name] = window[name] || function () {
- (window[name].q = window[name].q || []).push(arguments);
- };
- window[name].l = 1 * new Date();
- this._nativeGa = window[name];
-
- var script = document.createElement('script');
- var scripts = document.getElementsByTagName('script')[0];
- script.src = 'https://www.google-analytics.com/analytics.js';
- script.async = 1;
- scripts.parentNode.insertBefore(script, scripts);
-
- // analytics.js creates a new object once initialized, update our reference
- script.onload = (function() { this._nativeGa = window[name]; }).bind(this);
-}
-
-function wrap(fn) {
- return function (success, error, args) {
- try {
- fn.apply(this, args);
- setTimeout(success, 0);
- } catch (err) {
- defer(error, err);
- }
- };
-}
-
-function defer(fn) {
- var args = Array.prototype.slice.call(arguments, 1);
- setTimeout(function () {
- fn.apply(null, args);
- }, 0);
-}
-
-require('cordova/exec/proxy').add('UniversalAnalytics', new UniversalAnalyticsProxy());
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAI.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAI.h
deleted file mode 100644
index 7f3f7029..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAI.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/*!
- @header GAI.h
- @abstract Google Analytics iOS SDK Header
- @version 3.14
- @copyright Copyright 2015 Google Inc. All rights reserved.
- */
-
-#import <Foundation/Foundation.h>
-
-#import "GAILogger.h"
-#import "GAITrackedViewController.h"
-#import "GAITracker.h"
-
-typedef NS_ENUM(NSUInteger, GAIDispatchResult) {
- kGAIDispatchNoData,
- kGAIDispatchGood,
- kGAIDispatchError
-};
-
-/*! Google Analytics product string. */
-extern NSString *const kGAIProduct;
-
-/*! Google Analytics version string. */
-extern NSString *const kGAIVersion;
-
-/*!
- NSError objects returned by the Google Analytics SDK may have this error domain
- to indicate that the error originated in the Google Analytics SDK.
- */
-extern NSString *const kGAIErrorDomain;
-
-/*! Google Analytics error codes. */
-typedef enum {
- // This error code indicates that there was no error. Never used.
- kGAINoError = 0,
-
- // This error code indicates that there was a database-related error.
- kGAIDatabaseError,
-
- // This error code indicates that there was a network-related error.
- kGAINetworkError,
-} GAIErrorCode;
-
-/*!
- Google Analytics iOS top-level class. Provides facilities to create trackers
- and set behaviorial flags.
- */
-@interface GAI : NSObject
-
-/*!
- For convenience, this class exposes a default tracker instance.
- This is initialized to `nil` and will be set to the first tracker that is
- instantiated in trackerWithTrackingId:. It may be overridden as desired.
-
- The GAITrackedViewController class will, by default, use this tracker instance.
- */
-@property(nonatomic, assign) id<GAITracker> defaultTracker;
-
-/*!
- The GAILogger to use.
- */
-@property(nonatomic, retain) id<GAILogger> logger;
-
-/*!
- When this is true, no tracking information will be gathered; tracking calls
- will effectively become no-ops. When set to true, all tracking information that
- has not yet been submitted. The value of this flag will be persisted
- automatically by the SDK. Developers can optionally use this flag to implement
- an opt-out setting in the app to allows users to opt out of Google Analytics
- tracking.
-
- This is set to `NO` the first time the Google Analytics SDK is used on a
- device, and is persisted thereafter.
- */
-@property(nonatomic, assign) BOOL optOut;
-
-/*!
- If this value is positive, tracking information will be automatically
- dispatched every dispatchInterval seconds. Otherwise, tracking information must
- be sent manually by calling dispatch.
-
- By default, this is set to `120`, which indicates tracking information should
- be dispatched automatically every 120 seconds.
- */
-@property(nonatomic, assign) NSTimeInterval dispatchInterval;
-
-/*!
- When set to true, the SDK will record the currently registered uncaught
- exception handler, and then register an uncaught exception handler which tracks
- the exceptions that occurred using defaultTracker. If defaultTracker is not
- `nil`, this function will track the exception on the tracker and attempt to
- dispatch any outstanding tracking information for 5 seconds. It will then call
- the previously registered exception handler, if any. When set back to false,
- the previously registered uncaught exception handler will be restored.
- */
-@property(nonatomic, assign) BOOL trackUncaughtExceptions;
-
-/*!
- When this is 'YES', no tracking information will be sent. Defaults to 'NO'.
- */
-@property(nonatomic, assign) BOOL dryRun;
-
-/*! Get the shared instance of the Google Analytics for iOS class. */
-+ (GAI *)sharedInstance;
-
-/*!
- Creates or retrieves a GAITracker implementation with the specified name and
- tracking ID. If the tracker for the specified name does not already exist, then
- it will be created and returned; otherwise, the existing tracker will be
- returned. If the existing tracker for the respective name has a different
- tracking ID, that tracking ID is not changed by this method. If defaultTracker
- is not set, it will be set to the tracker instance returned here.
-
- @param name The name of this tracker. Must not be `nil` or empty.
-
- @param trackingId The tracking ID to use for this tracker. It should be of
- the form `UA-xxxxx-y`.
-
- @return A GAITracker associated with the specified name. The tracker
- can be used to send tracking data to Google Analytics. The first time this
- method is called with a particular name, the tracker for that name will be
- returned, and subsequent calls with the same name will return the same
- instance. It is not necessary to retain the tracker because the tracker will be
- retained internally by the library.
-
- If an error occurs or the name is not valid, this method will return
- `nil`.
- */
-- (id<GAITracker>)trackerWithName:(NSString *)name
- trackingId:(NSString *)trackingId;
-
-/*!
- Creates or retrieves a GAITracker implementation with name equal to
- the specified tracking ID. If the tracker for the respective name does not
- already exist, it is created, has it's tracking ID set to |trackingId|,
- and is returned; otherwise, the existing tracker is returned. If the existing
- tracker for the respective name has a different tracking ID, that tracking ID
- is not changed by this method. If defaultTracker is not set, it is set to the
- tracker instance returned here.
-
- @param trackingId The tracking ID to use for this tracker. It should be of
- the form `UA-xxxxx-y`. The name of the tracker will be the same as trackingID.
-
- @return A GAITracker associated with the specified trackingID. The tracker
- can be used to send tracking data to Google Analytics. The first time this
- method is called with a particular trackingID, the tracker for the respective
- name will be returned, and subsequent calls with the same trackingID
- will return the same instance. It is not necessary to retain the tracker
- because the tracker will be retained internally by the library.
-
- If an error occurs or the trackingId is not valid, this method will return
- `nil`.
- */
-- (id<GAITracker>)trackerWithTrackingId:(NSString *)trackingId;
-
-/*!
- Remove a tracker from the trackers dictionary. If it is the default tracker,
- clears the default tracker as well.
-
- @param name The name of the tracker.
- */
-- (void)removeTrackerByName:(NSString *)name;
-
-/*!
- Dispatches any pending tracking information.
-
- Note that this does not have any effect on dispatchInterval, and can be used in
- conjunction with periodic dispatch. */
-- (void)dispatch;
-
-/*!
- Dispatches the next tracking beacon in the queue, calling completionHandler when
- the tracking beacon has either been sent (returning kGAIDispatchGood) or an error has resulted
- (returning kGAIDispatchError). If there is no network connection or there is no data to send,
- kGAIDispatchNoData is returned.
-
- Note that calling this method with a non-nil completionHandler disables periodic dispatch.
- Periodic dispatch can be reenabled by setting the dispatchInterval to a positive number when
- the app resumes from the background.
-
- Calling this method with a nil completionHandler is the same as calling the dispatch
- above.
-
- This method can be used for background data fetching in iOS 7.0 or later. It would be wise to
- call this when the application is exiting to initiate the submission of any unsubmitted
- tracking information.
-
- @param completionHandler The block to run after a single dispatch request. The GAIDispatchResult
- param indicates whether the dispatch succeeded, had an error, or had no hits to dispatch.
- */
-- (void)dispatchWithCompletionHandler:(void (^)(GAIDispatchResult result))completionHandler;
-@end
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIDictionaryBuilder.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIDictionaryBuilder.h
deleted file mode 100644
index b8c5fdab..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIDictionaryBuilder.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/*!
- @header GAIDictionaryBuilder.h
- @abstract Google Analytics iOS SDK Hit Format Header
- @copyright Copyright 2013 Google Inc. All rights reserved.
- */
-
-#import <Foundation/Foundation.h>
-
-#import "GAIEcommerceProduct.h"
-#import "GAIEcommerceProductAction.h"
-#import "GAIEcommercePromotion.h"
-
-/*!
- * Helper class to build a dictionary of hit parameters and values.
- * <br>
- * Examples:
- * <code>
- * id<GAITracker> t = // get a tracker.
- * [t send:[[[GAIDictionaryBuilder createEventWithCategory:@"EventCategory"
- * action:@"EventAction"
- * label:nil
- * value:nil]
- * set:@"dimension1" forKey:[GAIFields customDimensionForIndex:1]] build]];
- * </code>
- * This will send an event hit type with the specified parameters
- * and a custom dimension parameter.
- * <br>
- * If you want to send a parameter with all hits, set it on GAITracker directly.
- * <code>
- * [t set:kGAIScreenName value:@"Home"];
- * [t send:[[GAIDictionaryBuilder createSocialWithNetwork:@"Google+"
- * action:@"PlusOne"
- * target:@"SOME_URL"] build]];
- * [t send:[[GAIDictionaryBuilder createSocialWithNetwork:@"Google+"
- * action:@"Share"
- * target:@"SOME_POST"] build]];
- * [t send:[[GAIDictionaryBuilder createSocialWithNetwork:@"Google+"
- * action:@"HangOut"
- * target:@"SOME_CIRCLE"]
- * build]];
- * </code>
- * You can override a value set on the tracker by adding it to the dictionary.
- * <code>
- * [t set:kGAIScreenName value:@"Home"];
- * [t send:...];
- * [t send[[[GAIDictionaryBuilder createEventWithCategory:@"click"
- * action:@"popup"
- * label:nil
- * value:nil]
- * set:@"popup title" forKey:kGAIScreenName] build]];
- * </code>
- * The values set via [GAIDictionaryBuilder set] or
- * [GAIDictionaryBuilder setAll] will override any existing values in the
- * GAIDictionaryBuilder object (i.e. initialized by
- * [GAIDictionaryBuilder createXYZ]). e.g.
- * <code>
- * GAIDictionaryBuilder *m =
- * GAIDictionaryBuilder createTimingWithCategory:@"category"
- * interval:@0
- * name:@"name"
- * label:nil];
- * [t send:[m.set:@"10" forKey:kGAITimingVar] build];
- * [t send:[m.set:@"20" forKey:kGAITimingVar] build];
- * </code>
- */
-@interface GAIDictionaryBuilder : NSObject
-
-- (GAIDictionaryBuilder *)set:(NSString *)value
- forKey:(NSString *)key;
-
-/*!
- * Copies all the name-value pairs from params into this object, ignoring any
- * keys that are not NSString and any values that are neither NSString or
- * NSNull.
- */
-- (GAIDictionaryBuilder *)setAll:(NSDictionary *)params;
-
-/*!
- * Returns the value for the input parameter paramName, or nil if paramName
- * is not present.
- */
-- (NSString *)get:(NSString *)paramName;
-
-/*!
- * Return an NSMutableDictionary object with all the parameters set in this
- */
-- (NSMutableDictionary *)build;
-
-/*!
- * Parses and translates utm campaign parameters to analytics campaign param
- * and returns them as a map.
- *
- * @param urlString url containing utm campaign parameters.
- *
- * Valid campaign parameters are:
- * <ul>
- * <li>utm_id</li>
- * <li>utm_campaign</li>
- * <li>utm_content</li>
- * <li>utm_medium</li>
- * <li>utm_source</li>
- * <li>utm_term</li>
- * <li>dclid</li>
- * <li>gclid</li>
- * <li>gmob_t</li>
- * <li>aclid</li>
- * <li>anid</li>
- * </ul>
- * <p>
- * Example:
- * http://my.site.com/index.html?utm_campaign=wow&utm_source=source
- * utm_campaign=wow&utm_source=source.
- * <p>
- * For more information on auto-tagging, see
- * http://support.google.com/googleanalytics/bin/answer.py?hl=en&answer=55590
- * <p>
- * For more information on manual tagging, see
- * http://support.google.com/googleanalytics/bin/answer.py?hl=en&answer=55518
- */
-- (GAIDictionaryBuilder *)setCampaignParametersFromUrl:(NSString *)urlString;
-
-/*!
- Returns a GAIDictionaryBuilder object with parameters specific to an appview
- hit.
-
- Note that using this method will not set the screen name for followon hits. To
- do that you need to call set:kGAIDescription value:<screenName> on the
- GAITracker instance.
-
- This method is deprecated. Use createScreenView instead.
- */
-+ (GAIDictionaryBuilder *)createAppView DEPRECATED_MSG_ATTRIBUTE("Use createScreenView instead.");
-
-/*!
- Returns a GAIDictionaryBuilder object with parameters specific to a screenview
- hit.
-
- Note that using this method will not set the screen name for followon hits. To
- do that you need to call set:kGAIDescription value:<screenName> on the
- GAITracker instance.
- */
-+ (GAIDictionaryBuilder *)createScreenView;
-
-/*!
- Returns a GAIDictionaryBuilder object with parameters specific to an event hit.
- */
-+ (GAIDictionaryBuilder *)createEventWithCategory:(NSString *)category
- action:(NSString *)action
- label:(NSString *)label
- value:(NSNumber *)value;
-
-/*!
- Returns a GAIDictionaryBuilder object with parameters specific to an exception
- hit.
- */
-+ (GAIDictionaryBuilder *)createExceptionWithDescription:(NSString *)description
- withFatal:(NSNumber *)fatal;
-
-/*!
- Returns a GAIDictionaryBuilder object with parameters specific to an item hit.
- */
-+ (GAIDictionaryBuilder *)createItemWithTransactionId:(NSString *)transactionId
- name:(NSString *)name
- sku:(NSString *)sku
- category:(NSString *)category
- price:(NSNumber *)price
- quantity:(NSNumber *)quantity
- currencyCode:(NSString *)currencyCode;
-
-/*!
- Returns a GAIDictionaryBuilder object with parameters specific to a social hit.
- */
-+ (GAIDictionaryBuilder *)createSocialWithNetwork:(NSString *)network
- action:(NSString *)action
- target:(NSString *)target;
-
-/*!
- Returns a GAIDictionaryBuilder object with parameters specific to a timing hit.
- */
-+ (GAIDictionaryBuilder *)createTimingWithCategory:(NSString *)category
- interval:(NSNumber *)intervalMillis
- name:(NSString *)name
- label:(NSString *)label;
-
-/*!
- Returns a GAIDictionaryBuilder object with parameters specific to a transaction
- hit.
- */
-+ (GAIDictionaryBuilder *)createTransactionWithId:(NSString *)transactionId
- affiliation:(NSString *)affiliation
- revenue:(NSNumber *)revenue
- tax:(NSNumber *)tax
- shipping:(NSNumber *)shipping
- currencyCode:(NSString *)currencyCode;
-
-/*!
- Set the product action field for this hit.
- */
-- (GAIDictionaryBuilder *)setProductAction:(GAIEcommerceProductAction *)productAction;
-
-/*!
- Adds a product to this hit.
- */
-- (GAIDictionaryBuilder *)addProduct:(GAIEcommerceProduct *)product;
-
-/*!
- Add a product impression to this hit.
- */
-- (GAIDictionaryBuilder *)addProductImpression:(GAIEcommerceProduct *)product
- impressionList:(NSString *)name
- impressionSource:(NSString *)source;
-
-/*!
- Add a promotion to this hit.
- */
-- (GAIDictionaryBuilder *)addPromotion:(GAIEcommercePromotion *)promotion;
-@end
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceFields.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceFields.h
deleted file mode 100644
index b3ba60ae..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceFields.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*!
- @header GAIEcommerceFields.h
- @abstract Google Analytics iOS SDK Ecommerce Hit Format Header
- @copyright Copyright 2014 Google Inc. All rights reserved.
- */
-
-#import <Foundation/Foundation.h>
-
-/*!
- This class provides several fields and methods useful as wire format parameters for
- Enhanced Ecommerce. See the online developer guides for Enhanced Ecommerce for details
- on how to use the Enhanced Ecommerce features.
- */
-
-// Enhanced Ecommerce Product fields
-extern NSString *const kGAIProductId;
-extern NSString *const kGAIProductName;
-extern NSString *const kGAIProductBrand;
-extern NSString *const kGAIProductCategory;
-extern NSString *const kGAIProductVariant;
-extern NSString *const kGAIProductPrice;
-extern NSString *const kGAIProductQuantity;
-extern NSString *const kGAIProductCouponCode;
-extern NSString *const kGAIProductPosition;
-
-extern NSString *const kGAIProductAction;
-
-// product action values
-extern NSString *const kGAIPADetail;
-extern NSString *const kGAIPAClick;
-extern NSString *const kGAIPAAdd;
-extern NSString *const kGAIPARemove;
-extern NSString *const kGAIPACheckout;
-extern NSString *const kGAIPACheckoutOption;
-extern NSString *const kGAIPAPurchase;
-extern NSString *const kGAIPARefund;
-
-// product action fields
-// used for 'purchase' and 'refund' actions
-extern NSString *const kGAIPATransactionId;
-extern NSString *const kGAIPAAffiliation;
-extern NSString *const kGAIPARevenue;
-extern NSString *const kGAIPATax;
-extern NSString *const kGAIPAShipping;
-extern NSString *const kGAIPACouponCode;
-// used for 'checkout' action
-extern NSString *const kGAICheckoutStep;
-extern NSString *const kGAICheckoutOption;
-// used for 'detail' and 'click' actions
-extern NSString *const kGAIProductActionList;
-extern NSString *const kGAIProductListSource;
-
-// Enhanced Ecommerce Impressions fields
-extern NSString *const kGAIImpressionName;
-extern NSString *const kGAIImpressionListSource;
-extern NSString *const kGAIImpressionProduct;
-extern NSString *const kGAIImpressionProductId;
-extern NSString *const kGAIImpressionProductName;
-extern NSString *const kGAIImpressionProductBrand;
-extern NSString *const kGAIImpressionProductCategory;
-extern NSString *const kGAIImpressionProductVariant;
-extern NSString *const kGAIImpressionProductPosition;
-extern NSString *const kGAIImpressionProductPrice;
-
-// Enhanced Ecommerce Promotions fields
-extern NSString *const kGAIPromotionId;
-extern NSString *const kGAIPromotionName;
-extern NSString *const kGAIPromotionCreative;
-extern NSString *const kGAIPromotionPosition;
-
-// Promotion actions
-extern NSString *const kGAIPromotionAction;
-extern NSString *const kGAIPromotionView;
-extern NSString *const kGAIPromotionClick;
-
-@interface GAIEcommerceFields : NSObject
-
-/*!
- Generates an enhanced ecommerce product field. Note that field names generated by
- customDimensionForIndex and customMetricForIndex can be used as suffixes.
-
- @param index the index of the product
- @param suffix the product field suffix (such as kGAIProductPrice).
-
- @return an NSString representing the product field parameter
- */
-+ (NSString *)productFieldForIndex:(NSUInteger)index suffix:(NSString *)suffix;
-
-/*!
- Genrates an enhanced ecommerce impression list field name with an index. The return value of
- this method should also be used as input to the productImpressionForList method below.
-
- @param index the index of the impression list
-
- @return an NSString representing the impression list parameter
- */
-+ (NSString *)impressionListForIndex:(NSUInteger)index;
-
-/*!
- Generates an enhanced ecommerce product impression field with the impression list, product index
- and product suffix as parameters. The output of the method impressionListForIndex above should be
- used as the input list for this method. The output of customDimensionForIndex and
- customMetricForIndex can be used as suffixes.
-
- @param list the impression list for this product impression
- @param index the index of this product in the impression list
- @param suffix the product impression suffix for this field
-
- @return an NSString representing this product impression field parameter
- */
-+ (NSString *)productImpressionForList:(NSString *)list
- index:(NSUInteger)index
- suffix:(NSString *)Suffix;
-
-/*!
- Generates an enhanced ecommerce promotion field with an index and suffix.
-
- @param index the index of the promotion
- @param suffix the promotion suffix (such as kGAIPromotionId)
-
- @return an NSString representing this promotion field paramter
- */
-+ (NSString *)promotionForIndex:(NSUInteger)index suffix:(NSString *)suffix;
-@end
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceProduct.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceProduct.h
deleted file mode 100644
index 029f7638..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceProduct.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*!
- @header GAIEcommerceProduct.h
- @abstract Google Analytics iOS SDK Hit Format Header
- @copyright Copyright 2014 Google Inc. All rights reserved.
- */
-
-#import <Foundation/Foundation.h>
-
-/*!
- * Class to construct product related information for a Google Analytics beacon. Use this class to
- * report information about products sold by merchants or impressions of products seen by users.
- * Instances of this class can be associated with both Product Actions and Product
- * Impression Lists.
- * <br>
- * Typical usage:
- * <code>
- * [tracker set:kGAIScreenName value:@"MyScreen"];
- * GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];
- * GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
- * [product setId:@""PID-1234""];
- * [product setName:@"Space Monkeys!"];
- * [product setPrice:@100];
- * [product setQuantity:@2];
- * [builder addProductImpression:product impressionList:@"listName"];
- * [tracker send:[builder build]];
- * </code>
- */
-@interface GAIEcommerceProduct : NSObject
-
-/*!
- Sets the id that is used to identify a product in GA reports.
- */
-- (GAIEcommerceProduct *)setId:(NSString *)productId;
-
-/*!
- Sets the name that is used to indentify the product in GA reports.
- */
-- (GAIEcommerceProduct *)setName:(NSString *)productName;
-
-/*!
- Sets the brand associated with the product in GA reports.
- */
-- (GAIEcommerceProduct *)setBrand:(NSString *)productBrand;
-
-/*!
- Sets the category associated with the product in GA reports.
- */
-- (GAIEcommerceProduct *)setCategory:(NSString *)productCategory;
-
-/*!
- Sets the variant of the product.
- */
-- (GAIEcommerceProduct *)setVariant:(NSString *)productVariant;
-
-/*!
- Sets the price of the product.
- */
-- (GAIEcommerceProduct *)setPrice:(NSNumber *)productPrice;
-
-/*!
- Sets the quantity of the product. This field is usually not used with product impressions.
- */
-- (GAIEcommerceProduct *)setQuantity:(NSNumber *)productQuantity;
-
-/*!
- Sets the coupon code associated with the product. This field is usually not used with product
- impressions.
- */
-- (GAIEcommerceProduct *)setCouponCode:(NSString *)productCouponCode;
-
-/*!
- Sets the position of the product on the screen/product impression list, etc.
- */
-- (GAIEcommerceProduct *)setPosition:(NSNumber *)productPosition;
-
-/*!
- Sets the custom dimension associated with this product.
- */
-- (GAIEcommerceProduct *)setCustomDimension:(NSUInteger)index value:(NSString *)value;
-
-/*!
- Sets the custom metric associated with this product.
- */
-- (GAIEcommerceProduct *)setCustomMetric:(NSUInteger)index value:(NSNumber *)value;
-
-/*!
- Builds an NSDictionary of fields stored in this instance suitable for a product action. The
- index parameter is the index of this product in the product action list.
- <br>
- Normally, users will have no need to call this method.
- */
-- (NSDictionary *)buildWithIndex:(NSUInteger)index;
-
-/*!
- Builds an NSDictionary of fields stored in this instance suitable for an impression list. The
- lIndex parameter is the index of the product impression list while the index parameter is the
- index of this product in that impression list.
- <br>
- Normally, users will have no need to call this method.
- */
-- (NSDictionary *)buildWithListIndex:(NSUInteger)lIndex index:(NSUInteger)index;
-@end
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceProductAction.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceProductAction.h
deleted file mode 100644
index e3da1c15..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceProductAction.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/*!
- @header GAIProductAction.h
- @abstract Google Analytics iOS SDK Hit Format Header
- @copyright Copyright 2014 Google Inc. All rights reserved.
- */
-
-#import <Foundation/Foundation.h>
-
-/*!
- * Class to construct transaction/checkout or other product interaction related information for a
- * Google Analytics hit. Use this class to report information about products sold, viewed or
- * refunded. This class is intended to be used with GAIDictionaryBuilder.
- * <br>
- * Typical usage:
- * <code>
- * [tracker set:kGAIScreenName value:@"MyScreen"];
- * GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];
- * GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
- * [action setAction:kGAIPAPurchase];
- * [action setTransactionId:@"TT-1234"];
- * [action setRevenue:@3.14];
- * [action setCouponCode:@"EXTRA100"];
- * [builder setProductAction:action];
- * GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
- * [product setId:@""PID-1234""];
- * [product setName:@"Space Monkeys!"];
- * [product setPrice:@100];
- * [product setQuantity:@2];
- * [builder addProduct:product];
- * [tracker send:[builder build]];
- * </code>
- */
-@interface GAIEcommerceProductAction : NSObject
-
-/*!
- Sets the product action field for this product action. Valid values can be found in
- GAIEcommerceFields.h under "product action values".
- */
-- (GAIEcommerceProductAction *)setAction:(NSString *)productAction;
-
-/*!
- The unique id associated with the transaction. This value is used for kGAIPAPurchase and
- kGAIPARefund product actions.
- */
-- (GAIEcommerceProductAction *)setTransactionId:(NSString *)transactionId;
-
-/*!
- Sets the transaction's affiliation value. This value is used for kGAIPAPurchase and
- kGAIPARefund product actions.
- */
-- (GAIEcommerceProductAction *)setAffiliation:(NSString *)affiliation;
-
-/*!
- Sets the transaction's total revenue. This value is used for kGAIPAPurchase and kGAIPARefund
- product actions.
- */
-- (GAIEcommerceProductAction *)setRevenue:(NSNumber *)revenue;
-
-/*!
- Sets the transaction's total tax. This value is used for kGAIPAPurchase and kGAIPARefund
- product actions.
- */
-- (GAIEcommerceProductAction *)setTax:(NSNumber *)tax;
-
-/*!
- Sets the transaction's total shipping costs. This value is used for kGAIPAPurchase and
- kGAIPARefund product actions.
- */
-- (GAIEcommerceProductAction *)setShipping:(NSNumber *)shipping;
-
-/*!
- Sets the coupon code used in this transaction. This value is used for kGAIPAPurchase and
- kGAIPARefund product actions.
- */
-- (GAIEcommerceProductAction *)setCouponCode:(NSString *)couponCode;
-
-/*!
- Sets the checkout process's progress. This value is used for kGAICheckout and
- kGAICheckoutOptions product actions.
- */
-- (GAIEcommerceProductAction *)setCheckoutStep:(NSNumber *)checkoutStep;
-
-/*!
- Sets the option associated with the checkout. This value is used for kGAICheckout and
- kGAICheckoutOptions product actions.
- */
-- (GAIEcommerceProductAction *)setCheckoutOption:(NSString *)checkoutOption;
-
-/*!
- Sets the list name associated with the products in Google Analytics beacons. This value is
- used in kGAIPADetail and kGAIPAClick product actions.
- */
-- (GAIEcommerceProductAction *)setProductActionList:(NSString *)productActionList;
-
-/*!
- Sets the list source name associated with the products in Google Analytics beacons. This value
- is used in kGAIPADetail and kGAIPAClick product actions.
- */
-- (GAIEcommerceProductAction *)setProductListSource:(NSString *)productListSource;
-
-/*!
- Builds an NSDictionary of fields stored in this instance representing this product action.
- <br>
- Normally, users will have no need to call this method.
- */
-- (NSDictionary *)build;
-@end
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommercePromotion.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommercePromotion.h
deleted file mode 100644
index c7bf25af..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommercePromotion.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*!
- @header GAIEcommercePromotion.h
- @abstract Google Analytics iOS SDK Hit Format Header
- @copyright Copyright 2014 Google Inc. All rights reserved.
- */
-
-#import <Foundation/Foundation.h>
-
-/*!
- * Class to construct promotion related fields for Google Analytics hits. The fields from this class
- * can be used to represent internal promotions that run within an app, such as banners, banner ads
- * etc.
- *
- * Typical usage:
- * <code>
- * GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];
- * GAIEcommercePromotion *promotion = [[GAIEcommercePromotion alloc] init];
- * [promotion setId:@"PROMO-ID1234"];
- * [promotion setName:@"Home screen banner"];
- * [builder set:kGAIPromotionClick forKey:kGAIPromotionAction];
- * [builder addPromotion:promotion];
- * [tracker send:builder.build]];
- * </code>
- */
-@interface GAIEcommercePromotion : NSObject
-
-/*!
- Sets the id that is used to identify a promotion in GA reports.
- */
-- (GAIEcommercePromotion *)setId:(NSString *)pid;
-
-/*!
- Sets the name that is used to identify a promotion in GA reports.
- */
-- (GAIEcommercePromotion *)setName:(NSString *)name;
-
-/*!
- Sets the name of the creative associated with the promotion.
- */
-- (GAIEcommercePromotion *)setCreative:(NSString *)creative;
-
-/*!
- Sets the position of the promotion.
- */
-- (GAIEcommercePromotion *)setPosition:(NSString *)position;
-
-/*!
- Builds an NSDictionary of fields stored in this instance. The index parameter is the
- index of this promotion in that promotion list.
- <br>
- Normally, users will have no need to call this method.
- */
-- (NSDictionary *)buildWithIndex:(NSUInteger)index;
-@end
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIFields.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIFields.h
deleted file mode 100644
index e54cef03..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIFields.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*!
- @header GAIFields.h
- @abstract Google Analytics iOS SDK Hit Format Header
- @copyright Copyright 2013 Google Inc. All rights reserved.
- */
-
-#import <Foundation/Foundation.h>
-
-/*!
- These fields can be used for the wire format parameter names required by
- the |GAITracker| get, set and send methods as well as the set methods in the
- |GAIDictionaryBuilder| class.
- */
-extern NSString *const kGAIUseSecure;
-
-extern NSString *const kGAIHitType;
-extern NSString *const kGAITrackingId;
-extern NSString *const kGAIClientId;
-extern NSString *const kGAIDataSource;
-extern NSString *const kGAIAnonymizeIp;
-extern NSString *const kGAISessionControl;
-extern NSString *const kGAIDeviceModelVersion;
-extern NSString *const kGAIScreenResolution;
-extern NSString *const kGAIViewportSize;
-extern NSString *const kGAIEncoding;
-extern NSString *const kGAIScreenColors;
-extern NSString *const kGAILanguage;
-extern NSString *const kGAIJavaEnabled;
-extern NSString *const kGAIFlashVersion;
-extern NSString *const kGAINonInteraction;
-extern NSString *const kGAIReferrer;
-extern NSString *const kGAILocation;
-extern NSString *const kGAIHostname;
-extern NSString *const kGAIPage;
-extern NSString *const kGAIDescription; // synonym for kGAIScreenName
-extern NSString *const kGAIScreenName; // synonym for kGAIDescription
-extern NSString *const kGAITitle;
-extern NSString *const kGAIAdMobHitId;
-extern NSString *const kGAIAppName;
-extern NSString *const kGAIAppVersion;
-extern NSString *const kGAIAppId;
-extern NSString *const kGAIAppInstallerId;
-extern NSString *const kGAIUserId;
-
-extern NSString *const kGAIEventCategory;
-extern NSString *const kGAIEventAction;
-extern NSString *const kGAIEventLabel;
-extern NSString *const kGAIEventValue;
-
-extern NSString *const kGAISocialNetwork;
-extern NSString *const kGAISocialAction;
-extern NSString *const kGAISocialTarget;
-
-extern NSString *const kGAITransactionId;
-extern NSString *const kGAITransactionAffiliation;
-extern NSString *const kGAITransactionRevenue;
-extern NSString *const kGAITransactionShipping;
-extern NSString *const kGAITransactionTax;
-extern NSString *const kGAICurrencyCode;
-
-extern NSString *const kGAIItemPrice;
-extern NSString *const kGAIItemQuantity;
-extern NSString *const kGAIItemSku;
-extern NSString *const kGAIItemName;
-extern NSString *const kGAIItemCategory;
-
-extern NSString *const kGAICampaignSource;
-extern NSString *const kGAICampaignMedium;
-extern NSString *const kGAICampaignName;
-extern NSString *const kGAICampaignKeyword;
-extern NSString *const kGAICampaignContent;
-extern NSString *const kGAICampaignId;
-extern NSString *const kGAICampaignAdNetworkClickId;
-extern NSString *const kGAICampaignAdNetworkId;
-
-extern NSString *const kGAITimingCategory;
-extern NSString *const kGAITimingVar;
-extern NSString *const kGAITimingValue;
-extern NSString *const kGAITimingLabel;
-
-extern NSString *const kGAIExDescription;
-extern NSString *const kGAIExFatal;
-
-extern NSString *const kGAISampleRate;
-
-extern NSString *const kGAIIdfa;
-extern NSString *const kGAIAdTargetingEnabled;
-
-// hit types
-extern NSString *const kGAIAppView DEPRECATED_MSG_ATTRIBUTE("Use kGAIScreenView instead.");
-extern NSString *const kGAIScreenView;
-extern NSString *const kGAIEvent;
-extern NSString *const kGAISocial;
-extern NSString *const kGAITransaction;
-extern NSString *const kGAIItem;
-extern NSString *const kGAIException;
-extern NSString *const kGAITiming;
-
-/*!
- This class provides several fields and methods useful as wire format parameter
- names. The methods are used for wire format parameter names that are indexed.
- */
-
-@interface GAIFields : NSObject
-
-/*!
- Generates the correct parameter name for a content group with an index.
-
- @param index the index of the content group.
-
- @return an NSString representing the content group parameter for the index.
- */
-+ (NSString *)contentGroupForIndex:(NSUInteger)index;
-
-/*!
- Generates the correct parameter name for a custon dimension with an index.
-
- @param index the index of the custom dimension.
-
- @return an NSString representing the custom dimension parameter for the index.
- */
-+ (NSString *)customDimensionForIndex:(NSUInteger)index;
-
-/*!
- Generates the correct parameter name for a custom metric with an index.
-
- @param index the index of the custom metric.
-
- @return an NSString representing the custom metric parameter for the index.
- */
-+ (NSString *)customMetricForIndex:(NSUInteger)index;
-
-@end
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAILogger.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAILogger.h
deleted file mode 100644
index 06291f2c..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAILogger.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*!
- @header GAILogger.h
- @abstract Google Analytics iOS SDK Source
- @copyright Copyright 2011 Google Inc. All rights reserved.
- */
-
-#import <Foundation/Foundation.h>
-
-typedef NS_ENUM(NSUInteger, GAILogLevel) {
- kGAILogLevelNone = 0,
- kGAILogLevelError = 1,
- kGAILogLevelWarning = 2,
- kGAILogLevelInfo = 3,
- kGAILogLevelVerbose = 4
-};
-
-/*!
- Protocol to be used for logging debug and informational messages from the SDK.
- Implementations of this protocol can be provided to the |GAI| class,
- to be used as the logger by the SDK. See the |logger| property in GAI.h.
- */
-@protocol GAILogger<NSObject>
-@required
-
-/*!
- Only messages of |logLevel| and below are logged.
- */
-@property (nonatomic, assign) GAILogLevel logLevel;
-
-/*!
- Logs message with log level |kGAILogLevelVerbose|.
- */
-- (void)verbose:(NSString *)message;
-
-/*!
- Logs message with log level |kGAILogLevelInfo|.
- */
-- (void)info:(NSString *)message;
-
-/*!
- Logs message with log level |kGAILogLevelWarning|.
- */
-- (void)warning:(NSString *)message;
-
-/*!
- Logs message with log level |kGAILogLevelError|.
- */
-- (void)error:(NSString *)message;
-@end
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAITrackedViewController.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAITrackedViewController.h
deleted file mode 100644
index de19def0..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAITrackedViewController.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*!
- @header GAITrackedViewController.h
- @abstract Google Analytics for iOS Tracked View Controller Header
- @copyright Copyright 2012 Google Inc. All rights reserved.
- */
-
-#import <Foundation/Foundation.h>
-#import <UIKit/UIKit.h>
-
-@protocol GAITracker;
-
-/*!
- Extends UIViewController to generate Google Analytics screenview calls
- whenever the view appears; this is done by overriding the `viewDidAppear:`
- method. The screen name must be set for any tracking calls to be made.
-
- By default, this will use [GAI defaultTracker] for tracking calls, but one can
- override this by setting the tracker property.
- */
-@interface GAITrackedViewController : UIViewController
-
-/*!
- The tracker on which view tracking calls are be made, or `nil`, in which case
- [GAI defaultTracker] will be used.
- */
-@property(nonatomic, assign) id<GAITracker> tracker;
-/*!
- The screen name, for purposes of Google Analytics tracking. If this is `nil`,
- no tracking calls will be made.
- */
-@property(nonatomic, copy) NSString *screenName;
-
-@end
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAITracker.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAITracker.h
deleted file mode 100644
index fdc5c5df..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAITracker.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*!
- @header GAITracker.h
- @abstract Google Analytics iOS SDK Tracker Header
- @copyright Copyright 2013 Google Inc. All rights reserved.
-*/
-
-#import <Foundation/Foundation.h>
-
-/*!
- Google Analytics tracking interface. Obtain instances of this interface from
- [GAI trackerWithTrackingId:] to track screens, events, transactions, timing,
- and exceptions. The implementation of this interface is thread-safe, and no
- calls are expected to block or take a long time. All network and disk activity
- will take place in the background.
- */
-@protocol GAITracker<NSObject>
-
-/*!
- Name of this tracker.
- */
-@property(nonatomic, readonly) NSString *name;
-
-/*!
- Allow collection of IDFA and related fields if set to true. Default is false.
- */
-@property(nonatomic) BOOL allowIDFACollection;
-
-/*!
- Set a tracking parameter.
-
- @param parameterName The parameter name.
-
- @param value The value to set for the parameter. If this is nil, the
- value for the parameter will be cleared.
- */
-- (void)set:(NSString *)parameterName
- value:(NSString *)value;
-
-/*!
- Get a tracking parameter.
-
- @param parameterName The parameter name.
-
- @returns The parameter value, or nil if no value for the given parameter is
- set.
- */
-- (NSString *)get:(NSString *)parameterName;
-
-/*!
- Queue tracking information with the given parameter values.
-
- @param parameters A map from parameter names to parameter values which will be
- set just for this piece of tracking information, or nil for none.
- */
-- (void)send:(NSDictionary *)parameters;
-
-@end
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/UniversalAnalyticsPlugin.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/UniversalAnalyticsPlugin.h
deleted file mode 100644
index dde480ac..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/UniversalAnalyticsPlugin.h
+++ /dev/null
@@ -1,34 +0,0 @@
-//UniversalAnalyticsPlugin.h
-//Created by Daniel Wilson 2013-09-19
-
-#import <Foundation/Foundation.h>
-#import <Cordova/CDV.h>
-#import "GAI.h"
-
-@interface UniversalAnalyticsPlugin : CDVPlugin {
- bool _trackerStarted;
- bool _debugMode;
- NSMutableDictionary *_customDimensions;
-}
-
-- (void) startTrackerWithId: (CDVInvokedUrlCommand*)command;
-- (void) setAllowIDFACollection: (CDVInvokedUrlCommand*) command;
-- (void) setUserId: (CDVInvokedUrlCommand*)command;
-- (void) setAppVersion: (CDVInvokedUrlCommand*)command;
-- (void) getVar: (CDVInvokedUrlCommand*)command;
-- (void) setVar: (CDVInvokedUrlCommand*)command;
-- (void) dispatch: (CDVInvokedUrlCommand*)command;
-- (void) debugMode: (CDVInvokedUrlCommand*)command;
-- (void) setOptOut: (CDVInvokedUrlCommand*)command;
-- (void) enableUncaughtExceptionReporting: (CDVInvokedUrlCommand*)command;
-- (void) addCustomDimension: (CDVInvokedUrlCommand*)command;
-- (void) trackEvent: (CDVInvokedUrlCommand*)command;
-- (void) trackMetric: (CDVInvokedUrlCommand*)command;
-- (void) trackTiming: (CDVInvokedUrlCommand*)command;
-- (void) trackView: (CDVInvokedUrlCommand*)command;
-- (void) trackException: (CDVInvokedUrlCommand*)command;
-- (void) addTransaction: (CDVInvokedUrlCommand*)command;
-- (void) addTransactionItem: (CDVInvokedUrlCommand*)command;
-
-@end
-
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/UniversalAnalyticsPlugin.m b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/UniversalAnalyticsPlugin.m
deleted file mode 100644
index 12355da6..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/UniversalAnalyticsPlugin.m
+++ /dev/null
@@ -1,543 +0,0 @@
-//UniversalAnalyticsPlugin.m
-//Created by Daniel Wilson 2013-09-19
-
-#import "UniversalAnalyticsPlugin.h"
-#import "GAI.h"
-#import "GAIDictionaryBuilder.h"
-#import "GAIFields.h"
-
-@implementation UniversalAnalyticsPlugin
-
-- (void) pluginInitialize
-{
- _debugMode = false;
- _trackerStarted = false;
- _customDimensions = nil;
-}
-
-- (void) startTrackerWithId: (CDVInvokedUrlCommand*)command
-{
- [self.commandDelegate runInBackground:^{
- CDVPluginResult* pluginResult = nil;
- NSString* accountId = [command.arguments objectAtIndex:0];
- NSNumber* dispatchPeriod = [command.arguments objectAtIndex:1];
-
- if ([dispatchPeriod isKindOfClass:[NSNumber class]])
- [GAI sharedInstance].dispatchInterval = [dispatchPeriod doubleValue];
- else
- [GAI sharedInstance].dispatchInterval = 30;
-
- [[GAI sharedInstance] trackerWithTrackingId:accountId];
-
- _trackerStarted = true;
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- }];
- /* NSLog(@"successfully started GAI tracker"); */
-}
-
-- (void) setAllowIDFACollection: (CDVInvokedUrlCommand*) command
-{
- CDVPluginResult* pluginResult = nil;
- if ( ! _trackerStarted) {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- return;
- }
-
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
- tracker.allowIDFACollection = [[command argumentAtIndex:0 withDefault:@(NO)] boolValue];
-}
-
-- (void) addCustomDimensionsToTracker: (id<GAITracker>)tracker
-{
- if (_customDimensions) {
- for (NSString *key in _customDimensions.allKeys) {
- NSString *value = [_customDimensions objectForKey:key];
-
- NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
- f.numberStyle = NSNumberFormatterDecimalStyle;
- NSNumber *myKey = [f numberFromString:key];
-
- /* NSLog(@"Setting tracker dimension slot %@: <%@>", key, value); */
- [tracker set:[GAIFields customDimensionForIndex:myKey.unsignedIntegerValue]
- value:value];
- }
- }
-}
-
-- (void) getVar: (CDVInvokedUrlCommand*) command
-{
- [self.commandDelegate runInBackground:^{
- CDVPluginResult* pluginResult = nil;
- if ( ! _trackerStarted) {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- return;
- }
-
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
- NSString* parameterName = [command.arguments objectAtIndex:0];
- NSString* result = [tracker get:parameterName];
-
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:result];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- }];
-}
-
-- (void) setVar: (CDVInvokedUrlCommand*) command
-{
- [self.commandDelegate runInBackground:^{
- CDVPluginResult* pluginResult = nil;
- if ( ! _trackerStarted) {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- return;
- }
-
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
- NSString* parameterName = [command.arguments objectAtIndex:0];
- NSString* parameter = [command.arguments objectAtIndex:1];
- [tracker set:parameterName value:parameter];
-
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- }];
-}
-
-- (void) dispatch: (CDVInvokedUrlCommand*) command
-{
- [[GAI sharedInstance] dispatch];
-}
-
-- (void) debugMode: (CDVInvokedUrlCommand*) command
-{
- _debugMode = true;
- [[GAI sharedInstance].logger setLogLevel:kGAILogLevelVerbose];
-}
-
-- (void) setUserId: (CDVInvokedUrlCommand*)command
-{
- CDVPluginResult* pluginResult = nil;
- NSString* userId = [command.arguments objectAtIndex:0];
-
- if ( ! _trackerStarted) {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- return;
- }
-
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
- [tracker set:@"&uid" value: userId];
-
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
-}
-
-- (void) setAnonymizeIp: (CDVInvokedUrlCommand*)command
-{
- CDVPluginResult* pluginResult = nil;
- NSString* anonymize = [command.arguments objectAtIndex:0];
-
- if ( ! _trackerStarted) {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- return;
- }
-
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
- [tracker set:kGAIAnonymizeIp value:anonymize];
-
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
-}
-
-- (void) setOptOut: (CDVInvokedUrlCommand*)command
-{
- CDVPluginResult* pluginResult = nil;
- bool optout = [[command.arguments objectAtIndex:0] boolValue];
-
- if ( ! _trackerStarted) {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- return;
- }
-
- [[GAI sharedInstance] setOptOut:optout];
-
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
-}
-
-- (void) setAppVersion: (CDVInvokedUrlCommand*)command
-{
- CDVPluginResult* pluginResult = nil;
- NSString* version = [command.arguments objectAtIndex:0];
-
- if ( ! _trackerStarted) {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- return;
- }
-
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
- [tracker set:@"&av" value: version];
-
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
-}
-
-- (void) enableUncaughtExceptionReporting: (CDVInvokedUrlCommand*)command
-{
- CDVPluginResult* pluginResult = nil;
-
- if ( ! _trackerStarted) {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- return;
- }
-
- bool enabled = [[command.arguments objectAtIndex:0] boolValue];
- [[GAI sharedInstance] setTrackUncaughtExceptions:enabled];
-
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
-}
-
-- (void) addCustomDimension: (CDVInvokedUrlCommand*)command
-{
- CDVPluginResult* pluginResult = nil;
- NSNumber* key = [command.arguments objectAtIndex:0];
- NSString* value = [command.arguments objectAtIndex:1];
-
- if ( ! _customDimensions) {
- _customDimensions = [[NSMutableDictionary alloc] init];
- }
-
- _customDimensions[key.stringValue] = value;
-
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
-}
-
-- (void) trackMetric: (CDVInvokedUrlCommand*)command
-{
- CDVPluginResult* pluginResult = nil;
-
- if ( ! _trackerStarted) {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- return;
- }
-
- [self.commandDelegate runInBackground:^{
- CDVPluginResult* pluginResult = nil;
- NSNumber *key = nil;
- NSString *value = nil;
-
- if ([command.arguments count] > 0)
- key = [command.arguments objectAtIndex:0];
-
- if ([command.arguments count] > 1)
- value = [command.arguments objectAtIndex:1];
-
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
-
- [tracker set:[GAIFields customMetricForIndex:[key intValue]] value:value];
-
-
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- }];
-}
-
-- (void) trackEvent: (CDVInvokedUrlCommand*)command
-{
- CDVPluginResult* pluginResult = nil;
-
- if ( ! _trackerStarted) {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- return;
- }
-
- [self.commandDelegate runInBackground:^{
- CDVPluginResult* pluginResult = nil;
- NSString *category = nil;
- NSString *action = nil;
- NSString *label = nil;
- NSNumber *value = nil;
-
- if ([command.arguments count] > 0)
- category = [command.arguments objectAtIndex:0];
-
- if ([command.arguments count] > 1)
- action = [command.arguments objectAtIndex:1];
-
- if ([command.arguments count] > 2)
- label = [command.arguments objectAtIndex:2];
-
- if ([command.arguments count] > 3)
- value = [command.arguments objectAtIndex:3];
-
- bool newSession = [[command argumentAtIndex:4 withDefault:@(NO)] boolValue];
-
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
-
- [self addCustomDimensionsToTracker:tracker];
-
- GAIDictionaryBuilder *builder = [GAIDictionaryBuilder
- createEventWithCategory: category //required
- action: action //required
- label: label
- value: value];
- if(newSession){
- [builder set:@"start" forKey:kGAISessionControl];
- }
- [tracker send:[builder build]];
-
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
-
- }];
-
-}
-
-- (void) trackException: (CDVInvokedUrlCommand*)command
-{
- CDVPluginResult* pluginResult = nil;
-
- if ( ! _trackerStarted) {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- return;
- }
-
- [self.commandDelegate runInBackground:^{
- CDVPluginResult* pluginResult = nil;
- NSString *description = nil;
- NSNumber *fatal = nil;
-
- if ([command.arguments count] > 0)
- description = [command.arguments objectAtIndex:0];
-
- if ([command.arguments count] > 1)
- fatal = [command.arguments objectAtIndex:1];
-
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
-
- [self addCustomDimensionsToTracker:tracker];
-
- [tracker send:[[GAIDictionaryBuilder createScreenView] build]];
-
- [tracker send:[[GAIDictionaryBuilder
- createExceptionWithDescription: description
- withFatal: fatal] build]];
-
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- }];
-}
-
-- (void) trackView: (CDVInvokedUrlCommand*)command
-{
- CDVPluginResult* pluginResult = nil;
-
- if ( ! _trackerStarted) {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- return;
- }
-
- [self.commandDelegate runInBackground:^{
- CDVPluginResult* pluginResult = nil;
- NSString* screenName = [command.arguments objectAtIndex:0];
-
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
- [self addCustomDimensionsToTracker:tracker];
-
- NSString* deepLinkUrl = [command.arguments objectAtIndex:1];
- GAIDictionaryBuilder* openParams = [[GAIDictionaryBuilder alloc] init];
-
- if (deepLinkUrl && deepLinkUrl != (NSString *)[NSNull null]) {
- [[openParams setCampaignParametersFromUrl:deepLinkUrl] build];
- }
-
- bool newSession = [[command argumentAtIndex:2 withDefault:@(NO)] boolValue];
- if(newSession){
- [openParams set:@"start" forKey:kGAISessionControl];
- }
-
- NSDictionary *hitParamsDict = [openParams build];
-
- [tracker set:kGAIScreenName value:screenName];
- [tracker send:[[[GAIDictionaryBuilder createScreenView] setAll:hitParamsDict] build]];
-
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- }];
-}
-
-- (void) trackTiming: (CDVInvokedUrlCommand*)command
-{
- CDVPluginResult* pluginResult = nil;
-
- if ( ! _trackerStarted) {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- return;
- }
-
- [self.commandDelegate runInBackground:^{
- CDVPluginResult* pluginResult = nil;
-
- NSString *category = nil;
- NSNumber *intervalInMilliseconds = nil;
- NSString *name = nil;
- NSString *label = nil;
-
- if ([command.arguments count] > 0)
- category = [command.arguments objectAtIndex:0];
-
- if ([command.arguments count] > 1)
- intervalInMilliseconds = [command.arguments objectAtIndex:1];
-
- if ([command.arguments count] > 2)
- name = [command.arguments objectAtIndex:2];
-
- if ([command.arguments count] > 3)
- label = [command.arguments objectAtIndex:3];
-
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
-
- [self addCustomDimensionsToTracker:tracker];
-
- [tracker send:[[GAIDictionaryBuilder
- createTimingWithCategory: category //required
- interval: intervalInMilliseconds //required
- name: name
- label: label] build]];
-
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- }];
-}
-
-- (void) addTransaction: (CDVInvokedUrlCommand*)command
-{
- CDVPluginResult* pluginResult = nil;
-
- if ( ! _trackerStarted) {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- return;
- }
-
- [self.commandDelegate runInBackground:^{
- CDVPluginResult* pluginResult = nil;
-
- NSString *transactionId = nil;
- NSString *affiliation = nil;
- NSNumber *revenue = nil;
- NSNumber *tax = nil;
- NSNumber *shipping = nil;
- NSString *currencyCode = nil;
-
-
- if ([command.arguments count] > 0)
- transactionId = [command.arguments objectAtIndex:0];
-
- if ([command.arguments count] > 1)
- affiliation = [command.arguments objectAtIndex:1];
-
- if ([command.arguments count] > 2)
- revenue = [command.arguments objectAtIndex:2];
-
- if ([command.arguments count] > 3)
- tax = [command.arguments objectAtIndex:3];
-
- if ([command.arguments count] > 4)
- shipping = [command.arguments objectAtIndex:4];
-
- if ([command.arguments count] > 5)
- currencyCode = [command.arguments objectAtIndex:5];
-
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
-
-
- [tracker send:[[GAIDictionaryBuilder createTransactionWithId:transactionId // (NSString) Transaction ID
- affiliation:affiliation // (NSString) Affiliation
- revenue:revenue // (NSNumber) Order revenue (including tax and shipping)
- tax:tax // (NSNumber) Tax
- shipping:shipping // (NSNumber) Shipping
- currencyCode:currencyCode] build]]; // (NSString) Currency code
-
-
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- }];
-}
-
-
-
-- (void) addTransactionItem: (CDVInvokedUrlCommand*)command
-{
- CDVPluginResult* pluginResult = nil;
-
- if ( ! _trackerStarted) {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- return;
- }
-
- [self.commandDelegate runInBackground:^{
-
- CDVPluginResult* pluginResult = nil;
- NSString *transactionId = nil;
- NSString *name = nil;
- NSString *sku = nil;
- NSString *category = nil;
- NSNumber *price = nil;
- NSNumber *quantity = nil;
- NSString *currencyCode = nil;
-
-
- if ([command.arguments count] > 0)
- transactionId = [command.arguments objectAtIndex:0];
-
- if ([command.arguments count] > 1)
- name = [command.arguments objectAtIndex:1];
-
- if ([command.arguments count] > 2)
- sku = [command.arguments objectAtIndex:2];
-
- if ([command.arguments count] > 3)
- category = [command.arguments objectAtIndex:3];
-
- if ([command.arguments count] > 4)
- price = [command.arguments objectAtIndex:4];
-
- if ([command.arguments count] > 5)
- quantity = [command.arguments objectAtIndex:5];
-
- if ([command.arguments count] > 6)
- currencyCode = [command.arguments objectAtIndex:6];
-
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
-
-
- [tracker send:[[GAIDictionaryBuilder createItemWithTransactionId:transactionId // (NSString) Transaction ID
- name:name // (NSString) Product Name
- sku:sku // (NSString) Product SKU
- category:category // (NSString) Product category
- price:price // (NSNumber) Product price
- quantity:quantity // (NSNumber) Product quantity
- currencyCode:currencyCode] build]]; // (NSString) Currency code
-
-
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
- [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
- }];
-}
-
-@end
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/libAdIdAccess.a b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/libAdIdAccess.a
deleted file mode 100644
index 9813beaf..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/libAdIdAccess.a
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/libGoogleAnalyticsServices.a b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/libGoogleAnalyticsServices.a
deleted file mode 100644
index 45ca87e8..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/libGoogleAnalyticsServices.a
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/lavaca/AnalyticsService.js b/StoneIsland/plugins/cordova-plugin-google-analytics/lavaca/AnalyticsService.js
deleted file mode 100644
index 6b789895..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/lavaca/AnalyticsService.js
+++ /dev/null
@@ -1,121 +0,0 @@
-define(function(require) {
-
- var Disposable = require('lavaca/util/Disposable');
- var Config = require('lavaca/util/Config');
- var Device = require('lavaca/env/Device');
- var ga = require('google-analytics');
-
- var AnalyticsService = Disposable.extend(function AnalyticsService() {
- Disposable.call(this);
- this.appId = Config.get('google_analytics_id');
- this.webId = Config.get('google_analytics_web_id');
- this.isWeb = this.webId.length;
-
- if (!Device.isCordova() && this.isWeb) {
- ga('create', this.webId);
- }
-
- document.addEventListener('deviceready', this.init.bind(this), false);
- }, {
- ready: false,
- queue: [],
- isWeb: false,
- //isApp: false, //TODO need to research when Device.isCordova() is valid in Lavaca load flow
- init: function() {
- if (Device.isCordova() && analytics) {
- this.ready = true;
- analytics.startTrackerWithId(this.appId);
- this.processQueue();
- this.isWeb = false;
- }
- },
- trackView: function(screen) {
- if (Device.isCordova()) {
- if (this.ready) {
- analytics.trackView(screen);
- } else {
- this.queue.push({
- action: 'trackView',
- params: [screen]
- });
- }
- } else if (this.isWeb) {
- ga('send', 'pageview', {
- 'title': screen
- });
- }
- },
- setUserId: function() {
- throw 'setUserId is not implemented for Lavaca';
- },
- setAnonymizeIp: function() {
- throw 'setAnonymizeIp is not implemented for Lavaca';
- },
- setOptOut: function() {
- throw 'setOptOut is not implemented for Lavaca';
- },
- setAppVersion: function() {
- throw 'setAppVersion is not implemented for Lavaca';
- },
- debugMode: function() {
- throw 'debugMode is not implemented for Lavaca';
- },
- trackEvent: function(category, action, label, value) {
- action = action || '';
- label = label || '';
- value = value || 0;
- if (Device.isCordova()) {
- if (this.ready) {
- analytics.trackEvent(category, action, label, value);
- } else {
- this.queue.push({
- action: 'trackEvent',
- params: [category, action, label, value]
- });
- }
- } else if (this.isWeb) {
- ga('send', {
- 'hitType': 'event',
- 'eventCategory': category,
- 'eventAction': action,
- 'eventLabel': label,
- 'eventValue': value
- });
- }
- },
- trackTiming: function(category, intervalInMilliseconds, name, label) {
- action = action || '';
- label = label || '';
- value = value || 0;
- if (Device.isCordova()) {
- if (this.ready) {
- analytics.trackTiming(category, intervalInMilliseconds, name, label);
- } else {
- this.queue.push({
- action: 'trackTiming',
- params: [category, intervalInMilliseconds, name, label]
- });
- }
- } else if (this.isWeb) {
- ga('send', {
- 'hitType': 'timing',
- 'timingCategory': category,
- 'timingValue': intervalInMilliseconds,
- 'timingVar': name,
- 'timingLabel': label
- });
- }
- },
- processQueue: function() {
- if (this.queue) {
- var emptyFunction = function() {};
- for (var i = 0; i < this.queue.length; ++i) {
- cordova.exec(emptyFunction, emptyFunction,
- 'UniversalAnalytics', this.queue[i].action, this.queue[i].params);
- }
- }
- }
- });
-
- return new AnalyticsService();
-});
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/package.json b/StoneIsland/plugins/cordova-plugin-google-analytics/package.json
deleted file mode 100644
index 548de86b..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "cordova-plugin-google-analytics",
- "version": "1.8.3",
- "description": "Google Universal Analytics Plugin",
- "cordova": {
- "id": "cordova-plugin-google-analytics",
- "platforms": [
- "android",
- "ios"
- ]
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/danwilson/google-analytics-plugin.git"
- },
- "keywords": [
- "cordova",
- "googleanalytics",
- "ecosystem:cordova",
- "cordova-android",
- "cordova-ios",
- "analytics",
- "google",
- "universal",
- "universalanalytics"
- ],
- "author": "Dan Wilson",
- "license": "MIT"
-}
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/plugin.xml b/StoneIsland/plugins/cordova-plugin-google-analytics/plugin.xml
deleted file mode 100644
index 55a8db9d..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/plugin.xml
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android"
- id="cordova-plugin-google-analytics"
- version="1.8.3">
- <engines>
- <engine name="cordova" version=">=3.0.0" />
- </engines>
- <name>Google Universal Analytics Plugin</name>
- <description>Simple tracking (screens/events) for Google Analytics SDK 3.14 (iOS), SDK 4.0 (Android), Browsers and WP8</description>
- <author>Daniel C. Wilson</author>
- <license>MIT License</license>
- <js-module src="www/analytics.js" name="UniversalAnalytics">
- <!-- 'analytics' is deprecated, but supported to ease the transition -->
- <clobbers target="analytics" />
- <clobbers target="ga" />
- </js-module>
-
- <platform name="browser">
- <js-module src="browser/UniversalAnalyticsProxy.js" name="UniversalAnalyticsProxy">
- <runs />
- </js-module>
- </platform>
-
- <platform name="ios">
- <config-file target="config.xml" parent="/*">
- <feature name="UniversalAnalytics">
- <param name="ios-package" value="UniversalAnalyticsPlugin" />
- </feature>
- </config-file>
-
- <header-file src="ios/UniversalAnalyticsPlugin.h" />
- <source-file src="ios/UniversalAnalyticsPlugin.m" />
- <source-file src="ios/libGoogleAnalyticsServices.a" framework="true" />
- <source-file src="ios/libAdIdAccess.a" framework="true" />
- <header-file src="ios/GAIDictionaryBuilder.h" />
- <header-file src="ios/GAIFields.h" />
- <header-file src="ios/GAILogger.h" />
- <header-file src="ios/GAITrackedViewController.h" />
- <header-file src="ios/GAI.h" />
- <header-file src="ios/GAITracker.h" />
- <header-file src="ios/GAIEcommerceFields.h" />
- <header-file src="ios/GAIEcommerceProduct.h" />
- <header-file src="ios/GAIEcommerceProductAction.h" />
- <header-file src="ios/GAIEcommercePromotion.h" />
-
- <framework src="SystemConfiguration.framework" />
- <framework src="CoreData.framework" />
- <framework src="AdSupport.framework" />
- <framework src="libz.dylib" />
- <framework src="libsqlite3.dylib" />
- </platform>
-
- <platform name="android">
- <framework src="com.google.android.gms:play-services-analytics:+" />
-
- <config-file target="res/xml/config.xml" parent="/*">
- <feature name="UniversalAnalytics">
- <param name="android-package" value="com.danielcwilson.plugins.analytics.UniversalAnalyticsPlugin" />
- </feature>
- </config-file>
- <config-file target="AndroidManifest.xml" parent="/*">
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- </config-file>
- <!-- Add support for devices without Google Play Services installed. -->
- <config-file target="AndroidManifest.xml" parent="/manifest/application">
- <receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver" android:enabled="true">
- <intent-filter>
- <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
- </intent-filter>
- </receiver>
- <service android:name="com.google.android.gms.analytics.AnalyticsService" android:enabled="true" android:exported="false"/>
- <receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver" android:enabled="true" android:exported="true">
- <intent-filter>
- <action android:name="com.android.vending.INSTALL_REFERRER" />
- </intent-filter>
- </receiver>
- <service android:name="com.google.android.gms.analytics.CampaignTrackingService" android:enabled="true" android:exported="false"/>
- </config-file>
- <source-file src="android/UniversalAnalyticsPlugin.java" target-dir="src/com/danielcwilson/plugins/analytics" />
- </platform>
-
- <platform name="wp8">
- <config-file target="config.xml" parent="/*">
- <feature name="UniversalAnalytics">
- <param name="wp-package" value="UniversalAnalyticsPlugin" />
- </feature>
- </config-file>
-
- <config-file target="Properties/WMAppManifest.xml" parent="/Deployment/App/Capabilities">
- <Capability Name="ID_CAP_NETWORKING" />
- </config-file>
-
- <source-file src="wp8/UniversalAnalytics.cs" />
- <source-file src="wp8/PhoneHelpers.cs" />
- <source-file src="wp8/PhoneNameResolver.cs" />
- <source-file src="wp8/PlatformInfoProvider.WP.cs" />
- </platform>
-</plugin>
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/typescript/analytics.d.ts b/StoneIsland/plugins/cordova-plugin-google-analytics/typescript/analytics.d.ts
deleted file mode 100644
index d361ead8..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/typescript/analytics.d.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-declare class UniversalAnalyticsPlugin {
-
- /** In your 'deviceready' handler, call this to set up your Analytics tracker,
- where id is your Google Analytics Mobile App property */
- public startTrackerWithId(id:String, dispatchPeriod?:Number, successCallback?:Function, errorCallback?:Function):void;
-
- /** Sets a UserId */
- public setUserId(id:String, successCallback?:Function, errorCallback?:Function):void;
-
- /** Sets a setAnonymizeIp */
- public setAnonymizeIp(anonymize:Boolean, successCallback?:Function, errorCallback?:Function):void;
-
- /** Sets a setOptOut */
- public setOptOut(optout:Boolean, successCallback?:Function, errorCallback?:Function): void;
-
- /** Sets a setAllowIDFACollection */
- public setAllowIDFACollection(enable:Boolean, successCallback?:Function, errorCallback?:Function):void;
-
- /** Sets a AppVersion */
- public setAppVersion(version:string, successCallback?:Function, errorCallback?:Function):void;
-
- /** Gets a specific variable using this key list https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters */
- public getVar(variable:string, successCallback?:Function, errorCallback?:Function):void;
-
- /** Sets a specific variable using this key list https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters */
- public setVar(variable:string, value:string, successCallback?:Function, errorCallback?:Function):void;
-
- /** To manually dispatch any data */
- public dispatch(successCallback?:Function, errorCallback?:Function);
-
- /** Enables verbose logging */
- public debugMode(successCallback?:Function, errorCallback?:Function):void;
-
- /** Track a Custom Metric */
- public trackMetric(key:number, value:String, successCallback?:Function, errorCallback?:Function):void;
-
- /** Track a Screen (PageView) */
- public trackView(screen:String, campaignUrl?:string, newSession?:boolean, successCallback?:Function, errorCallback?:Function):void;
-
- /** Add a Custom Dimension */
- public addCustomDimension(key:number, value:String, successCallback?:Function, errorCallback?:Function):void;
-
- /** Track an Event */
- public trackEvent(category:String, action:String, label?:String, value?:Number, newSession?:boolean, successCallback?:Function, errorCallback?:Function):void;
-
- /** Track an Exception
- https://developers.google.com/analytics/devguides/collection/android/v3/exceptions */
- public trackException(description:String, fatal:Boolean, successCallback?:Function, errorCallback?:Function):void;
-
- /** Track User Timing (App Speed) */
- public trackTiming(category:String, intervalInMilliseconds?:Number, name?:String, label?:String, successCallback?:Function, errorCallback?:Function):void;
-
- /** Add a Transaction (Google Analytics e-Ccommerce Tracking)
- https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce */
- public addTransaction(transactionId:String, affiliation:String, revenue:Number, tax:Number, shipping:Number, currencyCode:String, successCallback?:Function, errorCallback?:Function):void;
-
- /** Add a Transaction Item (Ecommerce) */
- public addTransactionItem(transactionId:String, name:String, sku:String, category:String, price:Number, quantity:Number, currencyCode:String, successCallback?:Function, errorCallback?:Function):void;
-
- /** Enable/disable automatic reporting of uncaught exceptions */
- public enableUncaughtExceptionReporting(enable:Boolean, successCallback?:Function, errorCallback?:Function):void;
-}
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PhoneHelpers.cs b/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PhoneHelpers.cs
deleted file mode 100644
index 4bf4f895..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PhoneHelpers.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using System;
-using System.Xml;
-
-namespace UniversalAnalyticsPlugin
-{
- internal static class Helpers
- {
- public static string GetAppAttribute(string attributeName)
- {
- try
- {
- XmlReaderSettings xmlReaderSettings = new XmlReaderSettings();
- xmlReaderSettings.XmlResolver = new XmlXapResolver();
- using (XmlReader xmlReader = XmlReader.Create("WMAppManifest.xml", xmlReaderSettings))
- {
- xmlReader.ReadToDescendant("App");
- if (!xmlReader.IsStartElement())
- {
- throw new FormatException("WMAppManifest.xml is missing");
- }
- return xmlReader.GetAttribute(attributeName);
- }
- }
- catch
- {
- return null;
- }
- }
- }
-}
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PhoneNameResolver.cs b/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PhoneNameResolver.cs
deleted file mode 100644
index 261739d0..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PhoneNameResolver.cs
+++ /dev/null
@@ -1,578 +0,0 @@
-/*
- * Copyright (c) 2013 by Alan Mendelevich
- *
- * Licensed under MIT license.
- *
- * See license.txt for details.
-*/
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Text.RegularExpressions;
-
-namespace UniversalAnalyticsPlugin
-{
- public static class PhoneNameResolver
- {
- public static CanonicalPhoneName Resolve(string manufacturer, string model)
- {
- var manufacturerNormalized = manufacturer.Trim().ToUpper();
-
- switch (manufacturerNormalized)
- {
- case "NOKIA":
- case "MICROSOFT":
- case "MICROSOFTMDG":
- return ResolveNokia(manufacturer, model);
- case "HTC":
- return ResolveHtc(manufacturer, model);
- case "SAMSUNG":
- return ResolveSamsung(manufacturer, model);
- case "LG":
- return ResolveLg(manufacturer, model);
- case "HUAWEI":
- return ResolveHuawei(manufacturer, model);
- default:
- return new CanonicalPhoneName()
- {
- ReportedManufacturer = manufacturer,
- ReportedModel = model,
- CanonicalManufacturer = manufacturer,
- CanonicalModel = model,
- IsResolved = false
- };
- }
- }
-
- private static CanonicalPhoneName ResolveHuawei(string manufacturer, string model)
- {
- var modelNormalized = model.Trim().ToUpper();
-
- var result = new CanonicalPhoneName()
- {
- ReportedManufacturer = manufacturer,
- ReportedModel = model,
- CanonicalManufacturer = "HUAWEI",
- CanonicalModel = model,
- IsResolved = false
- };
-
- var lookupValue = modelNormalized;
-
- if (lookupValue.StartsWith("HUAWEI H883G"))
- {
- lookupValue = "HUAWEI H883G";
- }
-
- if (lookupValue.StartsWith("HUAWEI W1"))
- {
- lookupValue = "HUAWEI W1";
- }
-
- if (modelNormalized.StartsWith("HUAWEI W2"))
- {
- lookupValue = "HUAWEI W2";
- }
-
- if (huaweiLookupTable.ContainsKey(lookupValue))
- {
- var modelMetadata = huaweiLookupTable[lookupValue];
- result.CanonicalModel = modelMetadata.CanonicalModel;
- result.Comments = modelMetadata.Comments;
- result.IsResolved = true;
- }
-
- return result;
- }
-
- private static CanonicalPhoneName ResolveLg(string manufacturer, string model)
- {
- var modelNormalized = model.Trim().ToUpper();
-
- var result = new CanonicalPhoneName()
- {
- ReportedManufacturer = manufacturer,
- ReportedModel = model,
- CanonicalManufacturer = "LG",
- CanonicalModel = model,
- IsResolved = false
- };
-
- var lookupValue = modelNormalized;
-
- if (lookupValue.StartsWith("LG-C900"))
- {
- lookupValue = "LG-C900";
- }
-
- if (lookupValue.StartsWith("LG-E900"))
- {
- lookupValue = "LG-E900";
- }
-
- if (lgLookupTable.ContainsKey(lookupValue))
- {
- var modelMetadata = lgLookupTable[lookupValue];
- result.CanonicalModel = modelMetadata.CanonicalModel;
- result.Comments = modelMetadata.Comments;
- result.IsResolved = true;
- }
-
- return result;
- }
-
- private static CanonicalPhoneName ResolveSamsung(string manufacturer, string model)
- {
- var modelNormalized = model.Trim().ToUpper();
-
- var result = new CanonicalPhoneName()
- {
- ReportedManufacturer = manufacturer,
- ReportedModel = model,
- CanonicalManufacturer = "SAMSUNG",
- CanonicalModel = model,
- IsResolved = false
- };
-
- var lookupValue = modelNormalized;
-
- if (lookupValue.StartsWith("GT-S7530"))
- {
- lookupValue = "GT-S7530";
- }
-
- if (lookupValue.StartsWith("SGH-I917"))
- {
- lookupValue = "SGH-I917";
- }
-
- if (samsungLookupTable.ContainsKey(lookupValue))
- {
- var modelMetadata = samsungLookupTable[lookupValue];
- result.CanonicalModel = modelMetadata.CanonicalModel;
- result.Comments = modelMetadata.Comments;
- result.IsResolved = true;
- }
-
- return result;
- }
-
- private static CanonicalPhoneName ResolveHtc(string manufacturer, string model)
- {
- var modelNormalized = model.Trim().ToUpper();
-
- var result = new CanonicalPhoneName()
- {
- ReportedManufacturer = manufacturer,
- ReportedModel = model,
- CanonicalManufacturer = "HTC",
- CanonicalModel = model,
- IsResolved = false
- };
-
- var lookupValue = modelNormalized;
-
- if (lookupValue.StartsWith("A620"))
- {
- lookupValue = "A620";
- }
-
- if (lookupValue.StartsWith("C625"))
- {
- lookupValue = "C625";
- }
-
- if (lookupValue.StartsWith("C620"))
- {
- lookupValue = "C620";
- }
-
- if (htcLookupTable.ContainsKey(lookupValue))
- {
- var modelMetadata = htcLookupTable[lookupValue];
- result.CanonicalModel = modelMetadata.CanonicalModel;
- result.Comments = modelMetadata.Comments;
- result.IsResolved = true;
- }
-
- return result;
- }
-
- private static CanonicalPhoneName ResolveNokia(string manufacturer, string model)
- {
- var modelNormalized = model.Trim().ToUpper();
-
- var result = new CanonicalPhoneName()
- {
- ReportedManufacturer = manufacturer,
- ReportedModel = model,
- CanonicalManufacturer = "NOKIA",
- CanonicalModel = model,
- IsResolved = false
- };
-
- var lookupValue = modelNormalized;
- if (modelNormalized.StartsWith("RM-"))
- {
- var rms = Regex.Match(modelNormalized, "(RM-)([0-9]+)");
- lookupValue = rms.Value;
- }
-
- if (nokiaLookupTable.ContainsKey(lookupValue))
- {
- var modelMetadata = nokiaLookupTable[lookupValue];
-
- if (!string.IsNullOrEmpty(modelMetadata.CanonicalManufacturer))
- {
- result.CanonicalManufacturer = modelMetadata.CanonicalManufacturer;
- }
- result.CanonicalModel = modelMetadata.CanonicalModel;
- result.Comments = modelMetadata.Comments;
- result.IsResolved = true;
- }
-
- return result;
- }
-
-
- private static Dictionary<string, CanonicalPhoneName> huaweiLookupTable = new Dictionary<string, CanonicalPhoneName>()
- {
- // Huawei W1
- { "HUAWEI H883G", new CanonicalPhoneName() { CanonicalModel = "Ascend W1" } },
- { "HUAWEI W1", new CanonicalPhoneName() { CanonicalModel = "Ascend W1" } },
-
- // Huawei Ascend W2
- { "HUAWEI W2", new CanonicalPhoneName() { CanonicalModel = "Ascend W2" } },
- };
-
- private static Dictionary<string, CanonicalPhoneName> lgLookupTable = new Dictionary<string, CanonicalPhoneName>()
- {
- // Optimus 7Q/Quantum
- { "LG-C900", new CanonicalPhoneName() { CanonicalModel = "Optimus 7Q/Quantum" } },
-
- // Optimus 7
- { "LG-E900", new CanonicalPhoneName() { CanonicalModel = "Optimus 7" } },
-
- // Jil Sander
- { "LG-E906", new CanonicalPhoneName() { CanonicalModel = "Jil Sander" } },
-
- // Lancet
- { "LGVW820", new CanonicalPhoneName() { CanonicalModel = "Lancet" } },
- };
-
- private static Dictionary<string, CanonicalPhoneName> samsungLookupTable = new Dictionary<string, CanonicalPhoneName>()
- {
- // OMNIA W
- { "GT-I8350", new CanonicalPhoneName() { CanonicalModel = "Omnia W" } },
- { "GT-I8350T", new CanonicalPhoneName() { CanonicalModel = "Omnia W" } },
- { "OMNIA W", new CanonicalPhoneName() { CanonicalModel = "Omnia W" } },
-
- // OMNIA 7
- { "GT-I8700", new CanonicalPhoneName() { CanonicalModel = "Omnia 7" } },
- { "OMNIA7", new CanonicalPhoneName() { CanonicalModel = "Omnia 7" } },
-
- // OMNIA M
- { "GT-S7530", new CanonicalPhoneName() { CanonicalModel = "Omnia 7" } },
-
- // Focus
- { "I917", new CanonicalPhoneName() { CanonicalModel = "Focus" } },
- { "SGH-I917", new CanonicalPhoneName() { CanonicalModel = "Focus" } },
-
- // Focus 2
- { "SGH-I667", new CanonicalPhoneName() { CanonicalModel = "Focus 2" } },
-
- // Focus Flash
- { "SGH-I677", new CanonicalPhoneName() { CanonicalModel = "Focus Flash" } },
-
- // Focus S
- { "HADEN", new CanonicalPhoneName() { CanonicalModel = "Focus S" } },
- { "SGH-I937", new CanonicalPhoneName() { CanonicalModel = "Focus S" } },
-
- // ATIV S
- { "GT-I8750", new CanonicalPhoneName() { CanonicalModel = "ATIV S" } },
- { "SGH-T899M", new CanonicalPhoneName() { CanonicalModel = "ATIV S" } },
-
- // ATIV Odyssey
- { "SCH-I930", new CanonicalPhoneName() { CanonicalModel = "ATIV Odyssey" } },
- { "SCH-R860U", new CanonicalPhoneName() { CanonicalModel = "ATIV Odyssey", Comments="US Cellular" } },
-
- // ATIV S Neo
- { "SPH-I800", new CanonicalPhoneName() { CanonicalModel = "ATIV S Neo", Comments="Sprint" } },
- { "SGH-I187", new CanonicalPhoneName() { CanonicalModel = "ATIV S Neo", Comments="AT&T" } },
- { "GT-I8675", new CanonicalPhoneName() { CanonicalModel = "ATIV S Neo" } },
-
- // ATIV SE
- { "SM-W750V", new CanonicalPhoneName() { CanonicalModel = "ATIV SE", Comments="Verizon" } },
- };
-
- private static Dictionary<string, CanonicalPhoneName> htcLookupTable = new Dictionary<string, CanonicalPhoneName>()
- {
- // Surround
- { "7 MONDRIAN T8788", new CanonicalPhoneName() { CanonicalModel = "Surround" } },
- { "T8788", new CanonicalPhoneName() { CanonicalModel = "Surround" } },
- { "SURROUND", new CanonicalPhoneName() { CanonicalModel = "Surround" } },
- { "SURROUND T8788", new CanonicalPhoneName() { CanonicalModel = "Surround" } },
-
- // Mozart
- { "7 MOZART", new CanonicalPhoneName() { CanonicalModel = "Mozart" } },
- { "7 MOZART T8698", new CanonicalPhoneName() { CanonicalModel = "Mozart" } },
- { "HTC MOZART", new CanonicalPhoneName() { CanonicalModel = "Mozart" } },
- { "MERSAD 7 MOZART T8698", new CanonicalPhoneName() { CanonicalModel = "Mozart" } },
- { "MOZART", new CanonicalPhoneName() { CanonicalModel = "Mozart" } },
- { "MOZART T8698", new CanonicalPhoneName() { CanonicalModel = "Mozart" } },
- { "PD67100", new CanonicalPhoneName() { CanonicalModel = "Mozart" } },
- { "T8697", new CanonicalPhoneName() { CanonicalModel = "Mozart" } },
-
- // Pro
- { "7 PRO T7576", new CanonicalPhoneName() { CanonicalModel = "7 Pro" } },
- { "MWP6885", new CanonicalPhoneName() { CanonicalModel = "7 Pro" } },
- { "USCCHTC-PC93100", new CanonicalPhoneName() { CanonicalModel = "7 Pro" } },
-
- // Arrive
- { "PC93100", new CanonicalPhoneName() { CanonicalModel = "Arrive", Comments = "Sprint" } },
- { "T7575", new CanonicalPhoneName() { CanonicalModel = "Arrive", Comments = "Sprint" } },
-
- // HD2
- { "HD2", new CanonicalPhoneName() { CanonicalModel = "HD2" } },
- { "HD2 LEO", new CanonicalPhoneName() { CanonicalModel = "HD2" } },
- { "LEO", new CanonicalPhoneName() { CanonicalModel = "HD2" } },
-
- // HD7
- { "7 SCHUBERT T9292", new CanonicalPhoneName() { CanonicalModel = "HD7" } },
- { "GOLD", new CanonicalPhoneName() { CanonicalModel = "HD7" } },
- { "HD7", new CanonicalPhoneName() { CanonicalModel = "HD7" } },
- { "HD7 T9292", new CanonicalPhoneName() { CanonicalModel = "HD7" } },
- { "MONDRIAN", new CanonicalPhoneName() { CanonicalModel = "HD7" } },
- { "SCHUBERT", new CanonicalPhoneName() { CanonicalModel = "HD7" } },
- { "Schubert T9292", new CanonicalPhoneName() { CanonicalModel = "HD7" } },
- { "T9296", new CanonicalPhoneName() { CanonicalModel = "HD7", Comments = "Telstra, AU" } },
- { "TOUCH-IT HD7", new CanonicalPhoneName() { CanonicalModel = "HD7" } },
-
- // HD7S
- { "T9295", new CanonicalPhoneName() { CanonicalModel = "HD7S" } },
-
- // Trophy
- { "7 TROPHY", new CanonicalPhoneName() { CanonicalModel = "Trophy" } },
- { "7 TROPHY T8686", new CanonicalPhoneName() { CanonicalModel = "Trophy" } },
- { "PC40100", new CanonicalPhoneName() { CanonicalModel = "Trophy", Comments = "Verizon" } },
- { "SPARK", new CanonicalPhoneName() { CanonicalModel = "Trophy" } },
- { "TOUCH-IT TROPHY", new CanonicalPhoneName() { CanonicalModel = "Trophy" } },
- { "MWP6985", new CanonicalPhoneName() { CanonicalModel = "Trophy" } },
-
- // 8S
- { "A620", new CanonicalPhoneName() { CanonicalModel = "8S" } },
- { "WINDOWS PHONE 8S BY HTC", new CanonicalPhoneName() { CanonicalModel = "8S" } },
-
- // 8X
- { "C620", new CanonicalPhoneName() { CanonicalModel = "8X" } },
- { "C625", new CanonicalPhoneName() { CanonicalModel = "8X" } },
- { "HTC6990LVW", new CanonicalPhoneName() { CanonicalModel = "8X", Comments="Verizon" } },
- { "PM23300", new CanonicalPhoneName() { CanonicalModel = "8X", Comments="AT&T" } },
- { "WINDOWS PHONE 8X BY HTC", new CanonicalPhoneName() { CanonicalModel = "8X" } },
-
- // 8XT
- { "HTCPO881", new CanonicalPhoneName() { CanonicalModel = "8XT", Comments="Sprint" } },
- { "HTCPO881 SPRINT", new CanonicalPhoneName() { CanonicalModel = "8XT", Comments="Sprint" } },
- { "HTCPO881 HTC", new CanonicalPhoneName() { CanonicalModel = "8XT", Comments="Sprint" } },
-
- // Titan
- { "ETERNITY", new CanonicalPhoneName() { CanonicalModel = "Titan", Comments = "China" } },
- { "PI39100", new CanonicalPhoneName() { CanonicalModel = "Titan", Comments = "AT&T" } },
- { "TITAN X310E", new CanonicalPhoneName() { CanonicalModel = "Titan" } },
- { "ULTIMATE", new CanonicalPhoneName() { CanonicalModel = "Titan" } },
- { "X310E", new CanonicalPhoneName() { CanonicalModel = "Titan" } },
- { "X310E TITAN", new CanonicalPhoneName() { CanonicalModel = "Titan" } },
-
- // Titan II
- { "PI86100", new CanonicalPhoneName() { CanonicalModel = "Titan II", Comments = "AT&T" } },
- { "RADIANT", new CanonicalPhoneName() { CanonicalModel = "Titan II" } },
-
- // Radar
- { "RADAR", new CanonicalPhoneName() { CanonicalModel = "Radar" } },
- { "RADAR 4G", new CanonicalPhoneName() { CanonicalModel = "Radar", Comments = "T-Mobile USA" } },
- { "RADAR C110E", new CanonicalPhoneName() { CanonicalModel = "Radar" } },
-
- // One M8
- { "HTC6995LVW", new CanonicalPhoneName() { CanonicalModel = "One (M8)", Comments="Verizon" } },
- { "0P6B180", new CanonicalPhoneName() { CanonicalModel = "One (M8)", Comments="AT&T" } },
- { "0P6B140", new CanonicalPhoneName() { CanonicalModel = "One (M8)", Comments="Dual SIM?" } },
- };
-
- private static Dictionary<string, CanonicalPhoneName> nokiaLookupTable = new Dictionary<string, CanonicalPhoneName>()
- {
- // Lumia 505
- { "LUMIA 505", new CanonicalPhoneName() { CanonicalModel = "Lumia 505" } },
- // Lumia 510
- { "LUMIA 510", new CanonicalPhoneName() { CanonicalModel = "Lumia 510" } },
- { "NOKIA 510", new CanonicalPhoneName() { CanonicalModel = "Lumia 510" } },
- // Lumia 610
- { "LUMIA 610", new CanonicalPhoneName() { CanonicalModel = "Lumia 610" } },
- { "LUMIA 610 NFC", new CanonicalPhoneName() { CanonicalModel = "Lumia 610", Comments = "NFC" } },
- { "NOKIA 610", new CanonicalPhoneName() { CanonicalModel = "Lumia 610" } },
- { "NOKIA 610C", new CanonicalPhoneName() { CanonicalModel = "Lumia 610" } },
- // Lumia 620
- { "LUMIA 620", new CanonicalPhoneName() { CanonicalModel = "Lumia 620" } },
- { "RM-846", new CanonicalPhoneName() { CanonicalModel = "Lumia 620" } },
- // Lumia 710
- { "LUMIA 710", new CanonicalPhoneName() { CanonicalModel = "Lumia 710" } },
- { "NOKIA 710", new CanonicalPhoneName() { CanonicalModel = "Lumia 710" } },
- // Lumia 800
- { "LUMIA 800", new CanonicalPhoneName() { CanonicalModel = "Lumia 800" } },
- { "LUMIA 800C", new CanonicalPhoneName() { CanonicalModel = "Lumia 800" } },
- { "NOKIA 800", new CanonicalPhoneName() { CanonicalModel = "Lumia 800" } },
- { "NOKIA 800C", new CanonicalPhoneName() { CanonicalModel = "Lumia 800", Comments = "China" } },
- // Lumia 810
- { "RM-878", new CanonicalPhoneName() { CanonicalModel = "Lumia 810" } },
- // Lumia 820
- { "RM-824", new CanonicalPhoneName() { CanonicalModel = "Lumia 820" } },
- { "RM-825", new CanonicalPhoneName() { CanonicalModel = "Lumia 820" } },
- { "RM-826", new CanonicalPhoneName() { CanonicalModel = "Lumia 820" } },
- // Lumia 822
- { "RM-845", new CanonicalPhoneName() { CanonicalModel = "Lumia 822", Comments = "Verizon" } },
- // Lumia 900
- { "LUMIA 900", new CanonicalPhoneName() { CanonicalModel = "Lumia 900" } },
- { "NOKIA 900", new CanonicalPhoneName() { CanonicalModel = "Lumia 900" } },
- // Lumia 920
- { "RM-820", new CanonicalPhoneName() { CanonicalModel = "Lumia 920" } },
- { "RM-821", new CanonicalPhoneName() { CanonicalModel = "Lumia 920" } },
- { "RM-822", new CanonicalPhoneName() { CanonicalModel = "Lumia 920" } },
- { "RM-867", new CanonicalPhoneName() { CanonicalModel = "Lumia 920", Comments = "920T" } },
- { "NOKIA 920", new CanonicalPhoneName() { CanonicalModel = "Lumia 920" } },
- { "LUMIA 920", new CanonicalPhoneName() { CanonicalModel = "Lumia 920" } },
- // Lumia 520
- { "RM-914", new CanonicalPhoneName() { CanonicalModel = "Lumia 520" } },
- { "RM-915", new CanonicalPhoneName() { CanonicalModel = "Lumia 520" } },
- { "RM-913", new CanonicalPhoneName() { CanonicalModel = "Lumia 520", Comments="520T" } },
- // Lumia 521?
- { "RM-917", new CanonicalPhoneName() { CanonicalModel = "Lumia 521", Comments="T-Mobile 520" } },
- // Lumia 720
- { "RM-885", new CanonicalPhoneName() { CanonicalModel = "Lumia 720" } },
- { "RM-887", new CanonicalPhoneName() { CanonicalModel = "Lumia 720", Comments="China 720T" } },
- // Lumia 928
- { "RM-860", new CanonicalPhoneName() { CanonicalModel = "Lumia 928" } },
- // Lumia 925
- { "RM-892", new CanonicalPhoneName() { CanonicalModel = "Lumia 925" } },
- { "RM-893", new CanonicalPhoneName() { CanonicalModel = "Lumia 925" } },
- { "RM-910", new CanonicalPhoneName() { CanonicalModel = "Lumia 925" } },
- { "RM-955", new CanonicalPhoneName() { CanonicalModel = "Lumia 925", Comments="China 925T" } },
- // Lumia 1020
- { "RM-875", new CanonicalPhoneName() { CanonicalModel = "Lumia 1020" } },
- { "RM-876", new CanonicalPhoneName() { CanonicalModel = "Lumia 1020" } },
- { "RM-877", new CanonicalPhoneName() { CanonicalModel = "Lumia 1020" } },
- // Lumia 625
- { "RM-941", new CanonicalPhoneName() { CanonicalModel = "Lumia 625" } },
- { "RM-942", new CanonicalPhoneName() { CanonicalModel = "Lumia 625" } },
- { "RM-943", new CanonicalPhoneName() { CanonicalModel = "Lumia 625" } },
- // Lumia 1520
- { "RM-937", new CanonicalPhoneName() { CanonicalModel = "Lumia 1520" } },
- { "RM-938", new CanonicalPhoneName() { CanonicalModel = "Lumia 1520", Comments="AT&T" } },
- { "RM-939", new CanonicalPhoneName() { CanonicalModel = "Lumia 1520" } },
- { "RM-940", new CanonicalPhoneName() { CanonicalModel = "Lumia 1520", Comments="AT&T" } },
- // Lumia 525
- { "RM-998", new CanonicalPhoneName() { CanonicalModel = "Lumia 525" } },
- // Lumia 1320
- { "RM-994", new CanonicalPhoneName() { CanonicalModel = "Lumia 1320" } },
- { "RM-995", new CanonicalPhoneName() { CanonicalModel = "Lumia 1320" } },
- { "RM-996", new CanonicalPhoneName() { CanonicalModel = "Lumia 1320" } },
- // Lumia Icon
- { "RM-927", new CanonicalPhoneName() { CanonicalModel = "Lumia Icon", Comments="Verizon" } },
- // Lumia 630
- { "RM-976", new CanonicalPhoneName() { CanonicalModel = "Lumia 630" } },
- { "RM-977", new CanonicalPhoneName() { CanonicalModel = "Lumia 630" } },
- { "RM-978", new CanonicalPhoneName() { CanonicalModel = "Lumia 630" } },
- { "RM-979", new CanonicalPhoneName() { CanonicalModel = "Lumia 630" } },
- // Lumia 635
- { "RM-974", new CanonicalPhoneName() { CanonicalModel = "Lumia 635" } },
- { "RM-975", new CanonicalPhoneName() { CanonicalModel = "Lumia 635" } },
- { "RM-1078", new CanonicalPhoneName() { CanonicalModel = "Lumia 635", Comments="Sprint" } },
- // Lumia 526
- { "RM-997", new CanonicalPhoneName() { CanonicalModel = "Lumia 526", Comments="China Mobile" } },
- // Lumia 930
- { "RM-1045", new CanonicalPhoneName() { CanonicalModel = "Lumia 930" } },
- { "RM-1087", new CanonicalPhoneName() { CanonicalModel = "Lumia 930" } },
- // Lumia 636
- { "RM-1027", new CanonicalPhoneName() { CanonicalModel = "Lumia 636", Comments="China" } },
- // Lumia 638
- { "RM-1010", new CanonicalPhoneName() { CanonicalModel = "Lumia 638", Comments="China" } },
- // Lumia 530
- { "RM-1017", new CanonicalPhoneName() { CanonicalModel = "Lumia 530", Comments="Single SIM" } },
- { "RM-1018", new CanonicalPhoneName() { CanonicalModel = "Lumia 530", Comments="Single SIM" } },
- { "RM-1019", new CanonicalPhoneName() { CanonicalModel = "Lumia 530", Comments="Dual SIM" } },
- { "RM-1020", new CanonicalPhoneName() { CanonicalModel = "Lumia 530", Comments="Dual SIM" } },
- // Lumia 730
- { "RM-1040", new CanonicalPhoneName() { CanonicalModel = "Lumia 730", Comments="Dual SIM" } },
- // Lumia 735
- { "RM-1038", new CanonicalPhoneName() { CanonicalModel = "Lumia 735" } },
- { "RM-1039", new CanonicalPhoneName() { CanonicalModel = "Lumia 735" } },
- { "RM-1041", new CanonicalPhoneName() { CanonicalModel = "Lumia 735", Comments="Verizon" } },
- // Lumia 830
- { "RM-983", new CanonicalPhoneName() { CanonicalModel = "Lumia 830" } },
- { "RM-984", new CanonicalPhoneName() { CanonicalModel = "Lumia 830" } },
- { "RM-985", new CanonicalPhoneName() { CanonicalModel = "Lumia 830" } },
- { "RM-1049", new CanonicalPhoneName() { CanonicalModel = "Lumia 830" } },
- // Lumia 535
- { "RM-1089", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 535" } },
- { "RM-1090", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 535" } },
- { "RM-1091", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 535" } },
- { "RM-1092", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 535" } },
- // Lumia 435
- { "RM-1068", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 435", Comments="DS" } },
- { "RM-1069", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 435", Comments="DS" } },
- { "RM-1070", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 435", Comments="DS" } },
- { "RM-1071", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 435", Comments="DS" } },
- { "RM-1114", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 435", Comments="DS" } },
- // Lumia 532
- { "RM-1031", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 532", Comments="DS" } },
- { "RM-1032", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 532", Comments="DS" } },
- { "RM-1034", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 532", Comments="DS" } },
- { "RM-1115", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 532", Comments="DS" } },
- // Lumia 640
- { "RM-1072", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640" } },
- { "RM-1073", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640" } },
- { "RM-1074", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640" } },
- { "RM-1075", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640" } },
- { "RM-1077", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640" } },
- { "RM-1109", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640" } },
- { "RM-1113", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640" } },
- // Lumia 640XL
- { "RM-1062", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640 XL" } },
- { "RM-1063", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640 XL" } },
- { "RM-1064", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640 XL" } },
- { "RM-1065", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640 XL" } },
- { "RM-1066", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640 XL" } },
- { "RM-1067", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640 XL" } },
- { "RM-1096", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640 XL" } },
- // Lumia 540
- { "RM-1140", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 540" } },
- { "RM-1141", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 540" } },
- // Lumia 430
- { "RM-1099", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 430", Comments="DS" } },
- // Lumia 950
- { "RM-1104", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 950", Comments="DS" } },
- { "RM-1105", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 950", Comments="DS" } },
- { "RM-1118", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 950", Comments="DS" } },
- // Lumia 950 XL
- { "RM-1085", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 950 XL" } },
- { "RM-1116", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 950 XL", Comments="DS" } },
- // Lumia 550
- { "RM-1127", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 550" } },
- };
- }
-
- public class CanonicalPhoneName
- {
- public string ReportedManufacturer { get; set; }
- public string ReportedModel { get; set; }
- public string CanonicalManufacturer { get; set; }
- public string CanonicalModel { get; set; }
- public string Comments { get; set; }
- public bool IsResolved { get; set; }
-
- public string FullCanonicalName
- {
- get { return CanonicalManufacturer + " " + CanonicalModel; }
- }
- }
-} \ No newline at end of file
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PlatformInfoProvider.WP.cs b/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PlatformInfoProvider.WP.cs
deleted file mode 100644
index 4e1257f9..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PlatformInfoProvider.WP.cs
+++ /dev/null
@@ -1,103 +0,0 @@
-// PlatformInfoProvider.WP.cs
-
-using GoogleAnalytics.Core;
-using System;
-using System.IO.IsolatedStorage;
-using System.Threading.Tasks;
-using System.Windows;
-
-namespace UniversalAnalyticsPlugin
-{
- public sealed class PlatformInfoProvider : IPlatformInfoProvider
- {
- const string Key_AnonymousClientId = "GoogleAnaltyics.AnonymousClientId";
- string anonymousClientId;
- Dimensions _screenResolution = new Dimensions(0,0);
-
-#pragma warning disable 0067
- public event EventHandler ViewPortResolutionChanged;
-
- public event EventHandler ScreenResolutionChanged;
-#pragma warning restore 0067
-
- public PlatformInfoProvider()
- {
- Deployment.Current.Dispatcher.BeginInvoke(() => {
- double scale = (double)Application.Current.Host.Content.ScaleFactor / 100;
- int h = (int)Math.Ceiling(Application.Current.Host.Content.ActualHeight * scale);
- int w = (int)Math.Ceiling(Application.Current.Host.Content.ActualWidth * scale);
- _screenResolution = new Dimensions(h, w);
- });
- }
-
- public string AnonymousClientId
- {
- get
- {
- if (anonymousClientId == null)
- {
- var appSettings = IsolatedStorageSettings.ApplicationSettings;
- if (!appSettings.Contains(Key_AnonymousClientId))
- {
- anonymousClientId = Guid.NewGuid().ToString();
- appSettings.Add(Key_AnonymousClientId, anonymousClientId);
- appSettings.Save();
- }
- else
- {
- anonymousClientId = (string)appSettings[Key_AnonymousClientId];
- }
- }
- return anonymousClientId;
- }
- set { anonymousClientId = value; }
- }
-
- public Dimensions ScreenResolution
- {
- get
- {
- return _screenResolution;
- }
- }
-
- public Dimensions ViewPortResolution
- {
- get { return ScreenResolution; }
- }
-
- public string UserLanguage
- {
- get { return System.Globalization.CultureInfo.CurrentUICulture.Name; }
- }
-
- public int? ScreenColorDepthBits
- {
- get { return null; }
- }
-
- public void OnTracking()
- { }
-
- public string GetUserAgent()
- {
- var sysInfo = UniversalAnalyticsPlugin.PhoneNameResolver.Resolve(Microsoft.Phone.Info.DeviceStatus.DeviceManufacturer, Microsoft.Phone.Info.DeviceStatus.DeviceName);
- Version osVer = Environment.OSVersion.Version;
- string uaMask;
-
- if (osVer.Minor == 10)
- {
- // Windows Phone 8.1
- uaMask = "Mozilla/5.0 (Windows Phone 8.1; ARM; Trident/7.0; Touch; rv11.0; IEMobile/11.0; {1}; {2}) like Gecko";
- }
- else
- {
- // Windows Phone 8.0
- uaMask = "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone OS {0}; Trident/6.0; IEMobile/10.0; ARM; Touch; {1}; {2})";
- }
-
- //var userAgentMask = "Mozilla/[version] ([system and browser information]) [platform] ([platform details]) [extensions]";
- return string.Format(uaMask, Environment.OSVersion.Version, sysInfo.CanonicalManufacturer, sysInfo.CanonicalModel);
- }
- }
-}
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/UniversalAnalytics.cs b/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/UniversalAnalytics.cs
deleted file mode 100644
index b4307922..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/UniversalAnalytics.cs
+++ /dev/null
@@ -1,399 +0,0 @@
-/*
- * Copyright (c) 2016 Dan Polivy
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-using System;
-using GoogleAnalytics.Core;
-using WPCordovaClassLib.Cordova;
-using WPCordovaClassLib.Cordova.Commands;
-using WPCordovaClassLib.Cordova.JSON;
-using System.Collections.Generic;
-using System.Windows;
-using System.Diagnostics;
-using System.Threading.Tasks;
-using Microsoft.Phone.Shell;
-
-namespace Cordova.Extension.Commands
-{
- /// <summary>
- /// UniversalAnalytics plugin class containing methods called from JavaScript
- /// </summary>
- public class UniversalAnalytics : BaseCommand
- {
- private TrackerManager _trackerManager = new TrackerManager(new UniversalAnalyticsPlugin.PlatformInfoProvider());
- private Tracker _tracker;
- private bool _trackerStarted = false;
- DateTime? _suspended;
- private IDictionary<int, string> _customDimensions = new Dictionary<int, string>();
-
- public UniversalAnalytics()
- {
- this.AutoAppLifetimeTracking = false;
- this.SessionTimeout = 30;
- }
-
- /// <summary>
- /// Session timeout length, in seconds.
- /// </summary>
- public int? SessionTimeout {
- get;
- set;
- }
-
- /// <summary>
- /// Determines whether events are automatically sent for app lifetime tracking.
- /// </summary>
- public bool AutoAppLifetimeTracking { get; set; }
-
- public void startTrackerWithId(string options)
- {
- // If the tracker is already started, don't start it again
- if (_trackerStarted)
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tracker is already started"));
- return;
- }
-
- string[] args = JsonHelper.Deserialize<string[]>(options);
-
- if (!_trackerStarted && args.Length > 0 && args[0].Length > 0)
- {
- _tracker = _trackerManager.GetTracker(args[0]);
-
- // Set additional Tracker parameters here
- _tracker.SetStartSession(true);
- _tracker.IsUseSecure = true;
- _tracker.AppName = UniversalAnalyticsPlugin.Helpers.GetAppAttribute("Title");
- _tracker.AppVersion = UniversalAnalyticsPlugin.Helpers.GetAppAttribute("Version");
-
- _trackerStarted = true;
-
- Deployment.Current.Dispatcher.BeginInvoke(() =>
- {
- Application.Current.UnhandledException += Analytics_UnhandledException;
- TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;
- });
-
- DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Tracker started"));
- }
- else
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tracker id is not valid"));
- }
- }
-
- public override void OnResume(object sender, ActivatedEventArgs e)
- {
- if (_suspended.HasValue && SessionTimeout.HasValue)
- {
- var suspendedAgo = DateTime.UtcNow.Subtract(_suspended.Value);
- if (suspendedAgo > TimeSpan.FromSeconds((double)SessionTimeout))
- {
- _tracker.SetStartSession(true);
- }
- }
-
- if (_trackerStarted && AutoAppLifetimeTracking)
- {
- _tracker.SendEvent("app", "resume", !e.IsApplicationInstancePreserved ? "tombstoned" : null, 0);
- }
- }
-
- public override void OnPause(object sender, DeactivatedEventArgs e)
- {
- if (_trackerStarted && AutoAppLifetimeTracking)
- {
- _tracker.SendEvent("app", "suspend", e.Reason.ToString(), 0);
- }
-
- _suspended = DateTime.UtcNow;
- }
-
- private void TaskScheduler_UnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e)
- {
- var ex = e.Exception.InnerException ?? e.Exception; // inner exception contains better info for unobserved tasks
- _tracker.SendException(ex.ToString(), false);
- }
-
- private void Analytics_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
- {
- _tracker.SendException(e.ExceptionObject.ToString(), true);
-
- if (Debugger.IsAttached)
- {
- // An unhandled exception has occurred; break into the debugger
- Debugger.Break();
- }
- }
-
- public void setUserId(string options)
- {
- if (!_trackerStarted)
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tracker not started"));
- return;
- }
-
- string[] args = JsonHelper.Deserialize<string[]>(options);
- string userId = null;
-
- if (args.Length > 0) userId = args[0];
-
- _tracker.UserId = userId;
- DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Set user id: " + args[0]));
- }
-
- public void debugMode(string options)
- {
- _trackerManager.IsDebugEnabled = true;
-
- DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "debugMode enabled"));
- }
-
- public void trackView(string options)
- {
- if (!_trackerStarted)
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tracker not started"));
- return;
- }
-
- string[] args = JsonHelper.Deserialize<string[]>(options);
-
- if (args.Length > 0 && args[0] != null && args[0].Length > 0)
- {
- addCustomDimensionsToTracker(_tracker);
- _tracker.SendView(args[0]);
- DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Track Screen: " + args[0]));
- }
- else
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Expected one non-empty string argument"));
- }
- }
-
- public void addCustomDimension(string options)
- {
- string[] args = JsonHelper.Deserialize<string[]>(options);
-
- int index = 0;
- bool hasIndex = false;
- string value = null;
-
- if (args.Length > 0) hasIndex = int.TryParse(args[0], out index);
- if (args.Length > 1) value = args[1];
-
- if (hasIndex && value != null)
- {
- // Remove the key if it already exists
- _customDimensions.Remove(index);
- _customDimensions.Add(index, value);
- DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Add Custom Dimension: " + index));
- }
- else
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Expected non-empty integer, string arguments"));
- }
- }
-
- public void trackEvent(string options)
- {
- if (!_trackerStarted)
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tracker not started"));
- return;
- }
-
- string[] args = JsonHelper.Deserialize<string[]>(options);
-
- // Default values
- string category = null, action = null, label = null;
- long value = 0;
-
- if (args.Length > 0) category = args[0];
- if (args.Length > 1) action = args[1];
- if (args.Length > 2) label = args[2];
- if (args.Length > 3) long.TryParse(args[3], out value);
-
- addCustomDimensionsToTracker(_tracker);
- _tracker.SendEvent(category, action, label, value);
-
- DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Track Event: " + category));
- }
-
- public void trackException(string options)
- {
- if (!_trackerStarted)
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tracker not started"));
- return;
- }
-
- string[] args = JsonHelper.Deserialize<string[]>(options);
-
- if (args.Length == 0 || args[0] == null || args[0].Length == 0)
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Expected non-empty string arguments."));
- return;
- }
-
- // Default values
- string description = null;
- bool isFatal = false;
-
- if (args.Length > 0) description = args[0];
- if (args.Length > 1) bool.TryParse(args[1], out isFatal);
-
- addCustomDimensionsToTracker(_tracker);
- _tracker.SendException(description, isFatal);
-
- DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Track Exception: " + description));
- }
-
- public void trackTiming(string options)
- {
- if (!_trackerStarted)
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tracker not started"));
- return;
- }
-
- string[] args = JsonHelper.Deserialize<string[]>(options);
-
- if (args.Length == 0 || args[0] == null || args[0].Length == 0)
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Expected non-empty string arguments."));
- return;
- }
-
- // Default values
- string category = null, variable = null, label = null;
- long intervalInMs = 0;
-
- if (args.Length > 0) category = args[0];
- if (args.Length > 1) long.TryParse(args[1], out intervalInMs);
- if (args.Length > 2) variable = args[2];
- if (args.Length > 3) label = args[3];
-
- addCustomDimensionsToTracker(_tracker);
- _tracker.SendTiming(TimeSpan.FromMilliseconds(intervalInMs), category, variable, label);
-
- DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Track Timing: " + category));
- }
-
- public void addTransaction(string options)
- {
- if (!_trackerStarted)
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tracker not started"));
- return;
- }
-
- string[] args = JsonHelper.Deserialize<string[]>(options);
-
- if (args.Length == 0 || args[0] == null || args[0].Length == 0)
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Expected non-empty ID."));
- return;
- }
-
- Transaction transaction = new Transaction();
-
- // Default values
- double revenue = 0, tax = 0, shipping = 0;
-
- if (args.Length > 0) transaction.TransactionId = args[0];
- if (args.Length > 1) transaction.Affiliation = args[1];
- if (args.Length > 2)
- {
- double.TryParse(args[2], out revenue);
- transaction.TotalCostInMicros = (long)(revenue * 1000000);
- }
- if (args.Length > 3)
- {
- double.TryParse(args[3], out tax);
- transaction.TotalTaxInMicros = (long)(tax * 1000000);
- }
- if (args.Length > 4)
- {
- double.TryParse(args[4], out shipping);
- transaction.ShippingCostInMicros = (long)(shipping * 1000000);
- }
- if (args.Length > 5) transaction.CurrencyCode = args[5];
-
- addCustomDimensionsToTracker(_tracker);
- _tracker.SendTransaction(transaction);
-
- DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Add Transaction: " + transaction.TransactionId));
- }
-
- public void addTransactionItem(string options)
- {
- if (!_trackerStarted)
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tracker not started"));
- return;
- }
-
- string[] args = JsonHelper.Deserialize<string[]>(options);
-
- if (args.Length == 0 || args[0] == null || args[0].Length == 0)
- {
- DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Expected non-empty ID."));
- return;
- }
-
- TransactionItem transactionItem = new TransactionItem();
-
- // Default values
- double price = 0;
- long quantity = 0;
-
- if (args.Length > 0) transactionItem.TransactionId = args[0];
- if (args.Length > 1) transactionItem.Name = args[1];
- if (args.Length > 2) transactionItem.SKU = args[2];
- if (args.Length > 3) transactionItem.Category = args[3];
- if (args.Length > 4)
- {
- double.TryParse(args[4], out price);
- transactionItem.PriceInMicros = (long)(price * 1000000);
- }
- if (args.Length > 5)
- {
- long.TryParse(args[5], out quantity);
- transactionItem.Quantity = quantity;
- }
- if (args.Length > 6) transactionItem.CurrencyCode = args[6];
-
- addCustomDimensionsToTracker(_tracker);
- _tracker.SendTransactionItem(transactionItem);
-
- DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Add Transaction Item: " + transactionItem.TransactionId));
- }
-
- private void addCustomDimensionsToTracker(Tracker tracker)
- {
- foreach (KeyValuePair<int, string> dimension in _customDimensions)
- {
- tracker.SetCustomDimension(dimension.Key, dimension.Value);
- }
- }
- }
-} \ No newline at end of file
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/www/analytics.js b/StoneIsland/plugins/cordova-plugin-google-analytics/www/analytics.js
deleted file mode 100644
index 03b4a9d4..00000000
--- a/StoneIsland/plugins/cordova-plugin-google-analytics/www/analytics.js
+++ /dev/null
@@ -1,127 +0,0 @@
-function UniversalAnalyticsPlugin() {}
-
-UniversalAnalyticsPlugin.prototype.startTrackerWithId = function(id, dispatchPeriod, success, error) {
- if (typeof dispatchPeriod === 'undefined' || dispatchPeriod === null) {
- dispatchPeriod = 30;
- } else if (typeof dispatchPeriod === 'function' && typeof error === 'undefined') {
- // Called without dispatchPeriod but with a callback.
- // Looks like the original API was used so shift parameters over to remain compatible.
- error = success;
- success = dispatchPeriod;
- dispatchPeriod = 30;
- }
- cordova.exec(success, error, 'UniversalAnalytics', 'startTrackerWithId', [id, dispatchPeriod]);
-};
-
-UniversalAnalyticsPlugin.prototype.setAllowIDFACollection = function(enable, success, error) {
- cordova.exec(success, error, 'UniversalAnalytics', 'setAllowIDFACollection', [enable]);
-};
-
-UniversalAnalyticsPlugin.prototype.setUserId = function(id, success, error) {
- cordova.exec(success, error, 'UniversalAnalytics', 'setUserId', [id]);
-};
-
-UniversalAnalyticsPlugin.prototype.setAnonymizeIp = function(anonymize, success, error) {
- cordova.exec(success, error, 'UniversalAnalytics', 'setAnonymizeIp', [anonymize]);
-};
-
-UniversalAnalyticsPlugin.prototype.setOptOut = function(optout, success, error) {
- cordova.exec(success, error, 'UniversalAnalytics', 'setOptOut', [optout]);
-};
-
-UniversalAnalyticsPlugin.prototype.setAppVersion = function(version, success, error) {
- cordova.exec(success, error, 'UniversalAnalytics', 'setAppVersion', [version]);
-};
-
-UniversalAnalyticsPlugin.prototype.getVar = function(variable, success, error) {
- cordova.exec(success, error, 'UniversalAnalytics', 'getVar', [variable]);
-};
-
-UniversalAnalyticsPlugin.prototype.setVar = function(variable, value, success, error) {
- cordova.exec(success, error, 'UniversalAnalytics', 'setVar', [variable, value]);
-};
-
-UniversalAnalyticsPlugin.prototype.dispatch = function(success, error) {
- cordova.exec(success, error, 'UniversalAnalytics', 'dispatch', []);
-};
-
-/* enables verbose logging */
-UniversalAnalyticsPlugin.prototype.debugMode = function(success, error) {
- cordova.exec(success, error, 'UniversalAnalytics', 'debugMode', []);
-};
-
-UniversalAnalyticsPlugin.prototype.trackMetric = function(key, value, success, error) {
- cordova.exec(success, error, 'UniversalAnalytics', 'trackMetric', [key, value]);
-};
-
-UniversalAnalyticsPlugin.prototype.trackView = function(screen, campaignUrl, newSession, success, error) {
- if (typeof campaignUrl === 'undefined' || campaignUrl === null) {
- campaignUrl = '';
- }
-
- if (typeof newSession === 'undefined' || newSession === null) {
- newSession = false;
- }
-
- cordova.exec(success, error, 'UniversalAnalytics', 'trackView', [screen, campaignUrl, newSession]);
-};
-
-UniversalAnalyticsPlugin.prototype.addCustomDimension = function(key, value, success, error) {
- if (typeof key !== "number") {
- throw Error("key must be a valid integer not '" + typeof key + "'");
- }
- cordova.exec(success, error, 'UniversalAnalytics', 'addCustomDimension', [key, value]);
-};
-
-UniversalAnalyticsPlugin.prototype.trackEvent = function(category, action, label, value, newSession, success, error) {
- if (typeof label === 'undefined' || label === null) {
- label = '';
- }
- if (typeof value === 'undefined' || value === null) {
- value = 0;
- }
-
- if (typeof newSession === 'undefined' || newSession === null) {
- newSession = false;
- }
-
- cordova.exec(success, error, 'UniversalAnalytics', 'trackEvent', [category, action, label, value, newSession]);
-};
-
-/**
- * https://developers.google.com/analytics/devguides/collection/android/v3/exceptions
- */
-UniversalAnalyticsPlugin.prototype.trackException = function(description, fatal, success, error) {
- cordova.exec(success, error, 'UniversalAnalytics', 'trackException', [description, fatal]);
-};
-
-UniversalAnalyticsPlugin.prototype.trackTiming = function(category, intervalInMilliseconds, name, label, success, error) {
- if (typeof intervalInMilliseconds === 'undefined' || intervalInMilliseconds === null) {
- intervalInMilliseconds = 0;
- }
- if (typeof name === 'undefined' || name === null) {
- name = '';
- }
- if (typeof label === 'undefined' || label === null) {
- label = '';
- }
-
- cordova.exec(success, error, 'UniversalAnalytics', 'trackTiming', [category, intervalInMilliseconds, name, label]);
-};
-
-/* Google Analytics e-Commerce Tracking */
-/* https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce */
-UniversalAnalyticsPlugin.prototype.addTransaction = function(transactionId, affiliation, revenue, tax, shipping, currencyCode, success, error) {
- cordova.exec(success, error, 'UniversalAnalytics', 'addTransaction', [transactionId, affiliation, revenue, tax, shipping, currencyCode]);
-};
-
-UniversalAnalyticsPlugin.prototype.addTransactionItem = function(transactionId, name ,sku, category, price, quantity, currencyCode, success, error) {
- cordova.exec(success, error, 'UniversalAnalytics', 'addTransactionItem', [transactionId, name ,sku, category, price, quantity, currencyCode]);
-};
-
-/* automatic uncaught exception tracking */
-UniversalAnalyticsPlugin.prototype.enableUncaughtExceptionReporting = function (enable, success, error) {
- cordova.exec(success, error, 'UniversalAnalytics', 'enableUncaughtExceptionReporting', [enable]);
-};
-
-module.exports = new UniversalAnalyticsPlugin();