usergrid-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From snoopd...@apache.org
Subject [12/95] [abbrv] [partial] takes care of corrupted JSON files, adds the eror message to dynamic properties
Date Fri, 22 Aug 2014 14:15:08 GMT
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/cordova/run
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/cordova/run b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/cordova/run
deleted file mode 100644
index 840a8d5..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/cordova/run
+++ /dev/null
@@ -1,24 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-# 
-# http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-#!/bin/bash
-
-set -e
-
-CORDOVA_PATH=$( cd "$( dirname "$0" )" && pwd )
-
-bash "$CORDOVA_PATH"/cordova run

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/libs/android-support-v13.jar
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/libs/android-support-v13.jar b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/libs/android-support-v13.jar
deleted file mode 100644
index 57b7072..0000000
Binary files a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/libs/android-support-v13.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/libs/cordova-2.7.0.jar
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/libs/cordova-2.7.0.jar b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/libs/cordova-2.7.0.jar
deleted file mode 100644
index ff9cf0f..0000000
Binary files a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/libs/cordova-2.7.0.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/libs/gcm.jar
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/libs/gcm.jar b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/libs/gcm.jar
deleted file mode 100644
index ac109a8..0000000
Binary files a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/libs/gcm.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/proguard-project.txt
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/proguard-project.txt b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/proguard-project.txt
deleted file mode 100644
index f2fe155..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/proguard-project.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-# To enable ProGuard in your project, edit project.properties
-# to define the proguard.config property as described in that file.
-#
-# Add project specific ProGuard rules here.
-# By default, the flags in this file are appended to flags specified
-# in ${sdk.dir}/tools/proguard/proguard-android.txt
-# You can edit the include path and order by changing the ProGuard
-# include property in project.properties.
-#
-# For more details, see
-#   http://developer.android.com/guide/developing/tools/proguard.html
-
-# Add any project specific keep options here:
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-#   public *;
-#}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/project.properties
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/project.properties b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/project.properties
deleted file mode 100644
index 0c9830a..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/project.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-# This file is automatically generated by Android Tools.
-# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
-#
-# This file must be checked in Version Control Systems.
-#
-# To customize properties used by the Ant build system edit
-# "ant.properties", and override values to adapt the script to your
-# project structure.
-#
-# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
-#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
-
-# Project target.
-target=Google Inc.:Google APIs:17

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-hdpi/ic_launcher.png
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-hdpi/ic_launcher.png b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-hdpi/ic_launcher.png
deleted file mode 100644
index 96a442e..0000000
Binary files a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-hdpi/ic_launcher.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-hdpi/icon.png
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-hdpi/icon.png b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-hdpi/icon.png
deleted file mode 100644
index 4d27634..0000000
Binary files a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-hdpi/icon.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-ldpi/ic_launcher.png
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-ldpi/ic_launcher.png b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-ldpi/ic_launcher.png
deleted file mode 100644
index 9923872..0000000
Binary files a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-ldpi/ic_launcher.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-ldpi/icon.png
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-ldpi/icon.png b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-ldpi/icon.png
deleted file mode 100644
index cd5032a..0000000
Binary files a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-ldpi/icon.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-mdpi/ic_launcher.png
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-mdpi/ic_launcher.png b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-mdpi/ic_launcher.png
deleted file mode 100644
index 359047d..0000000
Binary files a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-mdpi/ic_launcher.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-mdpi/icon.png
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-mdpi/icon.png b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-mdpi/icon.png
deleted file mode 100644
index e79c606..0000000
Binary files a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-mdpi/icon.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-xhdpi/ic_launcher.png
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-xhdpi/ic_launcher.png b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-xhdpi/ic_launcher.png
deleted file mode 100644
index 71c6d76..0000000
Binary files a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-xhdpi/ic_launcher.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-xhdpi/icon.png
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-xhdpi/icon.png b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-xhdpi/icon.png
deleted file mode 100644
index ec7ffbf..0000000
Binary files a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable-xhdpi/icon.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable/icon.png
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable/icon.png b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable/icon.png
deleted file mode 100644
index ec7ffbf..0000000
Binary files a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/drawable/icon.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/layout/main.xml
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/layout/main.xml b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/layout/main.xml
deleted file mode 100644
index 4329aad..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/layout/main.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    >
-<TextView
-    android:layout_width="fill_parent"
-    android:layout_height="wrap_content"
-    android:text="Hello World, androidpush"
-    />
-</LinearLayout>
-

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/values/strings.xml
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/values/strings.xml b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/values/strings.xml
deleted file mode 100644
index 4769bbb..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/values/strings.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-    <string name="app_name">androidpush</string>
-</resources>

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/xml/config.xml
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/xml/config.xml b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/xml/config.xml
deleted file mode 100644
index 7552692..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/res/xml/config.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-       Licensed to the Apache Software Foundation (ASF) under one
-       or more contributor license agreements.  See the NOTICE file
-       distributed with this work for additional information
-       regarding copyright ownership.  The ASF licenses this file
-       to you under the Apache License, Version 2.0 (the
-       "License"); you may not use this file except in compliance
-       with the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-       Unless required by applicable law or agreed to in writing,
-       software distributed under the License is distributed on an
-       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-       KIND, either express or implied.  See the License for the
-       specific language governing permissions and limitations
-       under the License.
--->
-<cordova>
-    <!--
-    access elements control the Android whitelist.
-    Domains are assumed blocked unless set otherwise
-     -->
-
-    <access origin="http://127.0.0.1*"/> <!-- allow local pages -->
-
-    <!-- <access origin="https://example.com" /> allow any secure requests to example.com -->
-    <!-- <access origin="https://example.com" subdomains="true" /> such as above, but including subdomains, such as www -->
-    <access origin=".*"/>
-
-    <!-- <content src="http://mysite.com/myapp.html" /> for external pages -->
-    <content src="index.html" />
-
-    <log level="DEBUG"/>
-    <preference name="useBrowserHistory" value="true" />
-    <preference name="exit-on-suspend" value="false" />
-<plugins>
-    <plugin name="App" value="org.apache.cordova.App"/>
-    <plugin name="Geolocation" value="org.apache.cordova.GeoBroker"/>
-    <plugin name="Device" value="org.apache.cordova.Device"/>
-    <plugin name="Accelerometer" value="org.apache.cordova.AccelListener"/>
-    <plugin name="Compass" value="org.apache.cordova.CompassListener"/>
-    <plugin name="Media" value="org.apache.cordova.AudioHandler"/>
-    <plugin name="Camera" value="org.apache.cordova.CameraLauncher"/>
-    <plugin name="Contacts" value="org.apache.cordova.ContactManager"/>
-    <plugin name="File" value="org.apache.cordova.FileUtils"/>
-    <plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager"/>
-    <plugin name="Notification" value="org.apache.cordova.Notification"/>
-    <plugin name="Storage" value="org.apache.cordova.Storage"/>
-    <plugin name="FileTransfer" value="org.apache.cordova.FileTransfer"/>
-    <plugin name="Capture" value="org.apache.cordova.Capture"/>
-    <plugin name="Battery" value="org.apache.cordova.BatteryListener"/>
-    <plugin name="SplashScreen" value="org.apache.cordova.SplashScreen"/>
-    <plugin name="Echo" value="org.apache.cordova.Echo" />
-    <plugin name="Globalization" value="org.apache.cordova.Globalization"/>
-    <plugin name="InAppBrowser" value="org.apache.cordova.InAppBrowser"/>
-    <plugin name="InAppBrowser" value="org.apache.cordova.InAppBrowser"/>
-    <plugin name="PushPlugin" value="com.plugin.gcm.PushPlugin" />
-</plugins>
-</cordova>
-

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/com/plugin/gcm/CordovaGCMBroadcastReceiver.java
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/com/plugin/gcm/CordovaGCMBroadcastReceiver.java b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/com/plugin/gcm/CordovaGCMBroadcastReceiver.java
deleted file mode 100644
index e383f84..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/com/plugin/gcm/CordovaGCMBroadcastReceiver.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.plugin.gcm;
-
-import android.content.Context;
-
-import com.google.android.gcm.GCMBroadcastReceiver;
-import static com.google.android.gcm.GCMConstants.DEFAULT_INTENT_SERVICE_CLASS_NAME;
-
-/*
- * Implementation of GCMBroadcastReceiver that hard-wires the intent service to be 
- * com.plugin.gcm.GCMIntentService, instead of your_package.GCMIntentService 
- */
-public class CordovaGCMBroadcastReceiver extends GCMBroadcastReceiver {
-	
-	@Override
-	protected String getGCMIntentServiceClassName(Context context) {
-    	return "com.plugin.gcm" + DEFAULT_INTENT_SERVICE_CLASS_NAME;
-    }
-	
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/com/plugin/gcm/GCMIntentService.java
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/com/plugin/gcm/GCMIntentService.java b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/com/plugin/gcm/GCMIntentService.java
deleted file mode 100644
index 9a46aa4..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/com/plugin/gcm/GCMIntentService.java
+++ /dev/null
@@ -1,163 +0,0 @@
-package com.plugin.gcm;
-
-import java.util.List;
-
-import com.google.android.gcm.GCMBaseIntentService;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import android.annotation.SuppressLint;
-import android.app.ActivityManager;
-import android.app.ActivityManager.RunningTaskInfo;
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.Intent;
-import android.media.Ringtone;
-import android.media.RingtoneManager;
-import android.net.Uri;
-import android.os.Bundle;
-import android.support.v4.app.NotificationCompat;
-import android.util.Log;
-
-@SuppressLint("NewApi")
-public class GCMIntentService extends GCMBaseIntentService {
-
-	public static final int NOTIFICATION_ID = 237;
-	private static final String TAG = "GCMIntentService";
-	
-	public GCMIntentService() {
-		super("GCMIntentService");
-	}
-
-	@Override
-	public void onRegistered(Context context, String regId) {
-
-		Log.v(TAG, "onRegistered: "+ regId);
-
-		JSONObject json;
-
-		try
-		{
-			json = new JSONObject().put("event", "registered");
-			json.put("regid", regId);
-
-			Log.v(TAG, "onRegistered: " + json.toString());
-
-			// Send this JSON data to the JavaScript application above EVENT should be set to the msg type
-			// In this case this is the registration ID
-			PushPlugin.sendJavascript( json );
-
-		}
-		catch( JSONException e)
-		{
-			// No message to the user is sent, JSON failed
-			Log.e(TAG, "onRegistered: JSON exception");
-		}
-	}
-
-	@Override
-	public void onUnregistered(Context context, String regId) {
-		Log.d(TAG, "onUnregistered - regId: " + regId);
-	}
-
-	@Override
-	protected void onMessage(Context context, Intent intent) {
-		Log.d(TAG, "onMessage - context: " + context);
-
-		// Extract the payload from the message
-		Bundle extras = intent.getExtras();
-		if (extras != null)
-		{
-			boolean	foreground = this.isInForeground();
-
-			extras.putBoolean("foreground", foreground);
-
-			if (foreground)
-				PushPlugin.sendExtras(extras);
-			else
-				createNotification(context, extras);
-		}
-	}
-
-	public void createNotification(Context context, Bundle extras)
-	{
-		NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
-		String appName = getAppName(this);
-
-		Intent notificationIntent = new Intent(this, PushHandlerActivity.class);
-		notificationIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
-		notificationIntent.putExtra("pushBundle", extras);
-
-		PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);		
-
-		NotificationCompat.Builder mBuilder = 
-			new NotificationCompat.Builder(context)
-				.setSmallIcon(context.getApplicationInfo().icon)
-				.setWhen(System.currentTimeMillis())
-				.setContentTitle(appName)
-				.setTicker(appName)
-				.setContentIntent(contentIntent);
-
-		String message = extras.getString("message");
-		if (message != null) {
-			mBuilder.setContentText(message);
-		} else {
-			mBuilder.setContentText("<missing message content>");
-		}
-
-		String msgcnt = extras.getString("msgcnt");
-		if (msgcnt != null) {
-			mBuilder.setNumber(Integer.parseInt(msgcnt));
-		}
-
-		mNotificationManager.notify((String) appName, NOTIFICATION_ID, mBuilder.build());
-		tryPlayRingtone();
-	}
-
-	private void tryPlayRingtone() 
-	{
-		try {
-			Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
-			Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification);
-			r.play();
-		} 
-		catch (Exception e) {
-			Log.e(TAG, "failed to play notification ringtone");
-		}
-	}
-	
-	public static void cancelNotification(Context context)
-	{
-		NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
-		mNotificationManager.cancel((String)getAppName(context), NOTIFICATION_ID);	
-	}
-	
-	private static String getAppName(Context context)
-	{
-		CharSequence appName = 
-				context
-					.getPackageManager()
-					.getApplicationLabel(context.getApplicationInfo());
-		
-		return (String)appName;
-	}
-	
-	public boolean isInForeground()
-	{
-		ActivityManager activityManager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
-		List<RunningTaskInfo> services = activityManager
-				.getRunningTasks(Integer.MAX_VALUE);
-
-		if (services.get(0).topActivity.getPackageName().toString().equalsIgnoreCase(getApplicationContext().getPackageName().toString()))
-			return true;
-
-		return false;
-	}	
-
-	@Override
-	public void onError(Context context, String errorId) {
-		Log.e(TAG, "onError - errorId: " + errorId);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/com/plugin/gcm/PushHandlerActivity.java
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/com/plugin/gcm/PushHandlerActivity.java b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/com/plugin/gcm/PushHandlerActivity.java
deleted file mode 100644
index 73846fb..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/com/plugin/gcm/PushHandlerActivity.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package com.plugin.gcm;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.os.Bundle;
-import android.util.Log;
-
-public class PushHandlerActivity extends Activity
-{
-	private static String TAG = "PushHandlerActivity"; 
-
-	/*
-	 * this activity will be started if the user touches a notification that we own. 
-	 * We send it's data off to the push plugin for processing.
-	 * If needed, we boot up the main activity to kickstart the application. 
-	 * @see android.app.Activity#onCreate(android.os.Bundle)
-	 */
-	@Override
-	public void onCreate(Bundle savedInstanceState)
-	{
-		super.onCreate(savedInstanceState);
-		Log.v(TAG, "onCreate");
-
-		boolean isPushPluginActive = PushPlugin.isActive(); 
-		if (!isPushPluginActive) {
-			forceMainActivityReload();
-		}
-		processPushBundle(isPushPluginActive);
-
-		GCMIntentService.cancelNotification(this);
-
-		finish();
-	}
-
-	/**
-	 * Takes the pushBundle extras from the intent, 
-	 * and sends it through to the PushPlugin for processing.
-	 */
-	private void processPushBundle(boolean isPushPluginActive)
-	{
-		Bundle extras = getIntent().getExtras();
-
-		if (extras != null)	{
-			
-			Bundle originalExtras = extras.getBundle("pushBundle");
-
-			if ( !isPushPluginActive ) { 
-				originalExtras.putBoolean("coldstart", true);
-			}
-
-			PushPlugin.sendExtras(originalExtras);
-		}
-	}
-
-	/**
-	 * Forces the main activity to re-launch if it's unloaded.
-	 */
-	private void forceMainActivityReload()
-	{
-		PackageManager pm = getPackageManager();
-		Intent launchIntent = pm.getLaunchIntentForPackage(getApplicationContext().getPackageName());    		
-		startActivity(launchIntent);
-	}
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/com/plugin/gcm/PushPlugin.java
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/com/plugin/gcm/PushPlugin.java b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/com/plugin/gcm/PushPlugin.java
deleted file mode 100644
index 75b30fc..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/com/plugin/gcm/PushPlugin.java
+++ /dev/null
@@ -1,216 +0,0 @@
-package com.plugin.gcm;
-
-import java.util.Iterator;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.util.Log;
-
-import org.apache.cordova.CordovaWebView;
-import org.apache.cordova.api.CallbackContext;
-import org.apache.cordova.api.CordovaPlugin;
-
-import com.google.android.gcm.*;
-
-/**
- * @author awysocki
- */
-
-public class PushPlugin extends CordovaPlugin {
-	public static final String TAG = "PushPlugin";
-	
-	public static final String REGISTER = "register";
-	public static final String UNREGISTER = "unregister";
-	public static final String EXIT = "exit";
-
-	private static CordovaWebView gWebView;
-	private static String gECB;
-	private static String gSenderID;
-	private static Bundle gCachedExtras = null;
-
-	/**
-	 * Gets the application context from cordova's main activity.
-	 * @return the application context
-	 */
-	private Context getApplicationContext() {
-		return this.cordova.getActivity().getApplicationContext();
-	}
-
-	@Override
-	public boolean execute(String action, JSONArray data, CallbackContext callbackContext) {
-
-		boolean result = false;
-
-		Log.v(TAG, "execute: action=" + action);
-
-		if (REGISTER.equals(action)) {
-
-			Log.v(TAG, "execute: data=" + data.toString());
-
-			try {
-				JSONObject jo = data.getJSONObject(0);
-				
-				gWebView = this.webView;
-				Log.v(TAG, "execute: jo=" + jo.toString());
-
-				gECB = (String) jo.get("ecb");
-				gSenderID = (String) jo.get("senderID");
-
-				Log.v(TAG, "execute: ECB=" + gECB + " senderID=" + gSenderID);
-
-				GCMRegistrar.register(getApplicationContext(), gSenderID);
-				result = true;
-			} catch (JSONException e) {
-				Log.e(TAG, "execute: Got JSON Exception " + e.getMessage());
-				result = false;
-			}
-
-			if ( gCachedExtras != null) {
-				Log.v(TAG, "sending cached extras");
-				sendExtras(gCachedExtras);
-				gCachedExtras = null;
-			}
-			
-		} else if (UNREGISTER.equals(action)) {
-
-			GCMRegistrar.unregister(getApplicationContext());
-
-			Log.v(TAG, "UNREGISTER");
-			result = true;
-		} else {
-			result = false;
-			Log.e(TAG, "Invalid action : " + action);
-		}
-
-		return result;
-	}
-
-	/*
-	 * Sends a json object to the client as parameter to a method which is defined in gECB.
-	 */
-	public static void sendJavascript(JSONObject _json) {
-		String _d = "javascript:" + gECB + "(" + _json.toString() + ")";
-		Log.v(TAG, "sendJavascript: " + _d);
-
-		if (gECB != null && gWebView != null) {
-			gWebView.sendJavascript(_d); 
-		}
-	}
-
-	/*
-	 * Sends the pushbundle extras to the client application.
-	 * If the client application isn't currently active, it is cached for later processing.
-	 */
-	public static void sendExtras(Bundle extras)
-	{
-		if (extras != null) {
-			if (gECB != null && gWebView != null) {
-				sendJavascript(convertBundleToJson(extras));
-			} else {
-				Log.v(TAG, "sendExtras: caching extras to send at a later time.");
-				gCachedExtras = extras;
-			}
-		}
-	}
-	
-	/*
-	 * serializes a bundle to JSON.
-	 */
-    private static JSONObject convertBundleToJson(Bundle extras)
-    {
-		try
-		{
-			JSONObject json;
-			json = new JSONObject().put("event", "message");
-        
-			JSONObject jsondata = new JSONObject();
-			Iterator<String> it = extras.keySet().iterator();
-			while (it.hasNext())
-			{
-				String key = it.next();
-				Object value = extras.get(key);	
-        	
-				// System data from Android
-				if (key.equals("from") || key.equals("collapse_key"))
-				{
-					json.put(key, value);
-				}
-				else if (key.equals("foreground"))
-				{
-					json.put(key, extras.getBoolean("foreground"));
-				}
-				else if (key.equals("coldstart"))
-				{
-					json.put(key, extras.getBoolean("coldstart"));
-				}
-				else
-				{
-					// Maintain backwards compatibility
-					if (key.equals("message") || key.equals("msgcnt") || key.equals("soundname"))
-					{
-						json.put(key, value);
-					}
-        		
-					if ( value instanceof String ) {
-					// Try to figure out if the value is another JSON object
-						
-						String strValue = (String)value;
-						if (strValue.startsWith("{")) {
-							try {
-								JSONObject json2 = new JSONObject(strValue);
-								jsondata.put(key, json2);
-							}
-							catch (Exception e) {
-								jsondata.put(key, value);
-							}
-							// Try to figure out if the value is another JSON array
-						}
-						else if (strValue.startsWith("["))
-						{
-							try
-							{
-								JSONArray json2 = new JSONArray(strValue);
-								jsondata.put(key, json2);
-							}
-							catch (Exception e)
-							{
-								jsondata.put(key, value);
-							}
-						}
-						else
-						{
-							jsondata.put(key, value);
-						}
-					}
-				}
-			} // while
-			json.put("payload", jsondata);
-        
-			Log.v(TAG, "extrasToJSON: " + json.toString());
-
-			return json;
-		}
-		catch( JSONException e)
-		{
-			Log.e(TAG, "extrasToJSON: JSON exception");
-		}        	
-		return null;      	
-    }
-    
-    public static boolean isActive()
-    {
-    	return gWebView != null;
-    }
-    
-	public void onDestroy() 
-	{
-		GCMRegistrar.onDestroy(getApplicationContext());
-		gWebView = null;
-		gECB = null;
-		super.onDestroy();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/me/mdob/android/androidpush.java
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/me/mdob/android/androidpush.java b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/me/mdob/android/androidpush.java
deleted file mode 100644
index 9425e72..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/android/src/me/mdob/android/androidpush.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-       Licensed to the Apache Software Foundation (ASF) under one
-       or more contributor license agreements.  See the NOTICE file
-       distributed with this work for additional information
-       regarding copyright ownership.  The ASF licenses this file
-       to you under the Apache License, Version 2.0 (the
-       "License"); you may not use this file except in compliance
-       with the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-       Unless required by applicable law or agreed to in writing,
-       software distributed under the License is distributed on an
-       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-       KIND, either express or implied.  See the License for the
-       specific language governing permissions and limitations
-       under the License.
- */
-
-package me.mdob.android;
-
-import android.os.Bundle;
-import org.apache.cordova.*;
-
-public class androidpush extends DroidGap
-{
-    @Override
-    public void onCreate(Bundle savedInstanceState)
-    {
-        super.onCreate(savedInstanceState);
-        // Set by <content src="index.html" /> in config.xml
-        super.loadUrl(Config.getStartUrl());
-        //super.loadUrl("file:///android_asset/www/index.html")
-    }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDV.h
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDV.h b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDV.h
deleted file mode 100644
index 5a0ae6a..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDV.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import "CDVAvailability.h"
-
-#import "CDVPlugin.h"
-#import "CDVViewController.h"
-#import "CDVCommandDelegate.h"
-#import "CDVURLProtocol.h"
-#import "CDVInvokedUrlCommand.h"
-
-#import "CDVAccelerometer.h"
-#import "CDVBattery.h"
-#import "CDVCamera.h"
-#import "CDVCapture.h"
-#import "CDVConnection.h"
-#import "CDVContact.h"
-#import "CDVContacts.h"
-#import "CDVDebug.h"
-#import "CDVDebugConsole.h"
-#import "CDVDevice.h"
-#import "CDVFile.h"
-#import "CDVFileTransfer.h"
-#import "CDVLocation.h"
-#import "CDVNotification.h"
-#import "CDVPluginResult.h"
-#import "CDVReachability.h"
-#import "CDVSound.h"
-#import "CDVSplashScreen.h"
-#import "CDVWhitelist.h"
-#import "CDVLocalStorage.h"
-#import "CDVInAppBrowser.h"
-#import "CDVScreenOrientationDelegate.h"
-
-#import "NSArray+Comparisons.h"
-#import "NSData+Base64.h"
-#import "NSDictionary+Extensions.h"
-#import "NSMutableArray+QueueAdditions.h"
-#import "UIDevice+Extensions.h"
-
-#import "CDVJSON.h"

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVAccelerometer.h
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVAccelerometer.h b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVAccelerometer.h
deleted file mode 100644
index 044ca53..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVAccelerometer.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import <UIKit/UIKit.h>
-#import "CDVPlugin.h"
-
-@interface CDVAccelerometer : CDVPlugin <UIAccelerometerDelegate>
-{
-    double x;
-    double y;
-    double z;
-    NSTimeInterval timestamp;
-}
-
-@property (readonly, assign) BOOL isRunning;
-@property (nonatomic, strong) NSString* callbackId;
-
-- (CDVAccelerometer*)init;
-
-- (void)start:(CDVInvokedUrlCommand*)command;
-- (void)stop:(CDVInvokedUrlCommand*)command;
-
-@end

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVAccelerometer.m
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVAccelerometer.m b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVAccelerometer.m
deleted file mode 100644
index 33093d0..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVAccelerometer.m
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import "CDVAccelerometer.h"
-
-@interface CDVAccelerometer () {}
-@property (readwrite, assign) BOOL isRunning;
-@end
-
-@implementation CDVAccelerometer
-
-@synthesize callbackId, isRunning;
-
-// defaults to 10 msec
-#define kAccelerometerInterval 40
-// g constant: -9.81 m/s^2
-#define kGravitationalConstant -9.81
-
-- (CDVAccelerometer*)init
-{
-    self = [super init];
-    if (self) {
-        x = 0;
-        y = 0;
-        z = 0;
-        timestamp = 0;
-        self.callbackId = nil;
-        self.isRunning = NO;
-    }
-    return self;
-}
-
-- (void)dealloc
-{
-    [self stop:nil];
-}
-
-- (void)start:(CDVInvokedUrlCommand*)command
-{
-    NSString* cbId = command.callbackId;
-    NSTimeInterval desiredFrequency_num = kAccelerometerInterval;
-    UIAccelerometer* pAccel = [UIAccelerometer sharedAccelerometer];
-
-    // accelerometer expects fractional seconds, but we have msecs
-    pAccel.updateInterval = desiredFrequency_num / 1000;
-    self.callbackId = cbId;
-    if (!self.isRunning) {
-        pAccel.delegate = self;
-        self.isRunning = YES;
-    }
-}
-
-- (void)onReset
-{
-    [self stop:nil];
-}
-
-- (void)stop:(CDVInvokedUrlCommand*)command
-{
-    UIAccelerometer* theAccelerometer = [UIAccelerometer sharedAccelerometer];
-
-    theAccelerometer.delegate = nil;
-    self.isRunning = NO;
-}
-
-/**
- * Picks up accel updates from device and stores them in this class
- */
-- (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration
-{
-    if (self.isRunning) {
-        x = acceleration.x;
-        y = acceleration.y;
-        z = acceleration.z;
-        timestamp = ([[NSDate date] timeIntervalSince1970] * 1000);
-        [self returnAccelInfo];
-    }
-}
-
-- (void)returnAccelInfo
-{
-    // Create an acceleration object
-    NSMutableDictionary* accelProps = [NSMutableDictionary dictionaryWithCapacity:4];
-
-    [accelProps setValue:[NSNumber numberWithDouble:x * kGravitationalConstant] forKey:@"x"];
-    [accelProps setValue:[NSNumber numberWithDouble:y * kGravitationalConstant] forKey:@"y"];
-    [accelProps setValue:[NSNumber numberWithDouble:z * kGravitationalConstant] forKey:@"z"];
-    [accelProps setValue:[NSNumber numberWithDouble:timestamp] forKey:@"timestamp"];
-
-    CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:accelProps];
-    [result setKeepCallback:[NSNumber numberWithBool:YES]];
-    [self.commandDelegate sendPluginResult:result callbackId:self.callbackId];
-}
-
-// TODO: Consider using filtering to isolate instantaneous data vs. gravity data -jm
-
-/*
- #define kFilteringFactor 0.1
-
- // Use a basic low-pass filter to keep only the gravity component of each axis.
- grav_accelX = (acceleration.x * kFilteringFactor) + ( grav_accelX * (1.0 - kFilteringFactor));
- grav_accelY = (acceleration.y * kFilteringFactor) + ( grav_accelY * (1.0 - kFilteringFactor));
- grav_accelZ = (acceleration.z * kFilteringFactor) + ( grav_accelZ * (1.0 - kFilteringFactor));
-
- // Subtract the low-pass value from the current value to get a simplified high-pass filter
- instant_accelX = acceleration.x - ( (acceleration.x * kFilteringFactor) + (instant_accelX * (1.0 - kFilteringFactor)) );
- instant_accelY = acceleration.y - ( (acceleration.y * kFilteringFactor) + (instant_accelY * (1.0 - kFilteringFactor)) );
- instant_accelZ = acceleration.z - ( (acceleration.z * kFilteringFactor) + (instant_accelZ * (1.0 - kFilteringFactor)) );
-
-
- */
-@end

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVAvailability.h
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVAvailability.h b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVAvailability.h
deleted file mode 100644
index 947ae2d..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVAvailability.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#define __CORDOVA_IOS__
-
-#define __CORDOVA_0_9_6 906
-#define __CORDOVA_1_0_0 10000
-#define __CORDOVA_1_1_0 10100
-#define __CORDOVA_1_2_0 10200
-#define __CORDOVA_1_3_0 10300
-#define __CORDOVA_1_4_0 10400
-#define __CORDOVA_1_4_1 10401
-#define __CORDOVA_1_5_0 10500
-#define __CORDOVA_1_6_0 10600
-#define __CORDOVA_1_6_1 10601
-#define __CORDOVA_1_7_0 10700
-#define __CORDOVA_1_8_0 10800
-#define __CORDOVA_1_8_1 10801
-#define __CORDOVA_1_9_0 10900
-#define __CORDOVA_2_0_0 20000
-#define __CORDOVA_2_1_0 20100
-#define __CORDOVA_2_2_0 20200
-#define __CORDOVA_2_3_0 20300
-#define __CORDOVA_2_4_0 20400
-#define __CORDOVA_2_5_0 20500
-#define __CORDOVA_2_6_0 20600
-#define __CORDOVA_NA 99999      /* not available */
-
-/*
- #if CORDOVA_VERSION_MIN_REQUIRED >= __CORDOVA_1_7_0
-    // do something when its at least 1.7.0
- #else
-    // do something else (non 1.7.0)
- #endif
- */
-#ifndef CORDOVA_VERSION_MIN_REQUIRED
-    #define CORDOVA_VERSION_MIN_REQUIRED __CORDOVA_2_6_0
-#endif
-
-/*
- Returns YES if it is at least version specified as NSString(X)
- Usage:
-     if (IsAtLeastiOSVersion(@"5.1")) {
-         // do something for iOS 5.1 or greater
-     }
- */
-#define IsAtLeastiOSVersion(X) ([[[UIDevice currentDevice] systemVersion] compare:X options:NSNumericSearch] != NSOrderedAscending)
-
-#define CDV_IsIPad() ([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)] && ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad))
-
-#define CDV_IsIPhone5() ([[UIScreen mainScreen] bounds].size.height == 568 && [[UIScreen mainScreen] bounds].size.width == 320)
-
-/* Return the string version of the decimal version */
-#define CDV_VERSION [NSString stringWithFormat:@"%d.%d.%d", \
-    (CORDOVA_VERSION_MIN_REQUIRED / 10000),                 \
-    (CORDOVA_VERSION_MIN_REQUIRED % 10000) / 100,           \
-    (CORDOVA_VERSION_MIN_REQUIRED % 10000) % 100]
-
-#ifdef __clang__
-    #define CDV_DEPRECATED(version, msg) __attribute__((deprecated("Deprecated in Cordova " #version ". " msg)))
-#else
-    #define CDV_DEPRECATED(version, msg) __attribute__((deprecated()))
-#endif
-
-// Enable this to log all exec() calls.
-#define CDV_ENABLE_EXEC_LOGGING 0
-#if CDV_ENABLE_EXEC_LOGGING
-    #define CDV_EXEC_LOG NSLog
-#else
-    #define CDV_EXEC_LOG(...) do {} while (NO)
-#endif

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVBattery.h
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVBattery.h b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVBattery.h
deleted file mode 100644
index ba26c3a..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVBattery.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import <Foundation/Foundation.h>
-#import "CDVPlugin.h"
-
-@interface CDVBattery : CDVPlugin {
-    UIDeviceBatteryState state;
-    float level;
-    bool isPlugged;
-    NSString* callbackId;
-}
-
-@property (nonatomic) UIDeviceBatteryState state;
-@property (nonatomic) float level;
-@property (nonatomic) bool isPlugged;
-@property (strong) NSString* callbackId;
-
-- (void)updateBatteryStatus:(NSNotification*)notification;
-- (NSDictionary*)getBatteryStatus;
-- (void)start:(CDVInvokedUrlCommand*)command;
-- (void)stop:(CDVInvokedUrlCommand*)command;
-- (void)dealloc;
-@end

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVBattery.m
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVBattery.m b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVBattery.m
deleted file mode 100644
index 681511c..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVBattery.m
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import "CDVBattery.h"
-
-@interface CDVBattery (PrivateMethods)
-- (void)updateOnlineStatus;
-@end
-
-@implementation CDVBattery
-
-@synthesize state, level, callbackId, isPlugged;
-
-/*  determining type of event occurs on JavaScript side
-- (void) updateBatteryLevel:(NSNotification*)notification
-{
-    // send batterylow event for less than 25% battery
-    // send batterycritical  event for less than 10% battery
-    // W3c says to send batteryStatus event when batterylevel changes by more than 1% (iOS seems to notify each 5%)
-    // always update the navigator.device.battery info
-    float currentLevel = [[UIDevice currentDevice] batteryLevel];
-    NSString* type = @"";
-    // no check for level == -1 since this api is only called when monitoring is enabled so level should be valid
-    if (currentLevel < 0.10){
-        type = @"batterycritical";
-    } else if (currentLevel < 0.25) {
-        type = @"batterylow";
-    } else {
-        float onePercent = 0.1;
-        if (self.level >= 0 ){
-            onePercent = self.level * 0.01;
-        }
-        if (fabsf(currentLevel - self.level) > onePercent){
-            // issue batteryStatus event
-            type = @"batterystatus";
-        }
-    }
-    // update the battery info and fire event
-    NSString* jsString = [NSString stringWithFormat:@"navigator.device.battery._status(\"%@\", %@)", type,[[self getBatteryStatus] JSONRepresentation]];
-    [super writeJavascript:jsString];
-}
- */
-
-- (void)updateBatteryStatus:(NSNotification*)notification
-{
-    NSDictionary* batteryData = [self getBatteryStatus];
-
-    if (self.callbackId) {
-        CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:batteryData];
-        [result setKeepCallbackAsBool:YES];
-        [self.commandDelegate sendPluginResult:result callbackId:self.callbackId];
-    }
-}
-
-/* Get the current battery status and level.  Status will be unknown and level will be -1.0 if
- * monitoring is turned off.
- */
-- (NSDictionary*)getBatteryStatus
-{
-    UIDevice* currentDevice = [UIDevice currentDevice];
-    UIDeviceBatteryState currentState = [currentDevice batteryState];
-
-    isPlugged = FALSE; // UIDeviceBatteryStateUnknown or UIDeviceBatteryStateUnplugged
-    if ((currentState == UIDeviceBatteryStateCharging) || (currentState == UIDeviceBatteryStateFull)) {
-        isPlugged = TRUE;
-    }
-    float currentLevel = [currentDevice batteryLevel];
-
-    if ((currentLevel != self.level) || (currentState != self.state)) {
-        self.level = currentLevel;
-        self.state = currentState;
-    }
-
-    // W3C spec says level must be null if it is unknown
-    NSObject* w3cLevel = nil;
-    if ((currentState == UIDeviceBatteryStateUnknown) || (currentLevel == -1.0)) {
-        w3cLevel = [NSNull null];
-    } else {
-        w3cLevel = [NSNumber numberWithFloat:(currentLevel * 100)];
-    }
-    NSMutableDictionary* batteryData = [NSMutableDictionary dictionaryWithCapacity:2];
-    [batteryData setObject:[NSNumber numberWithBool:isPlugged] forKey:@"isPlugged"];
-    [batteryData setObject:w3cLevel forKey:@"level"];
-    return batteryData;
-}
-
-/* turn on battery monitoring*/
-- (void)start:(CDVInvokedUrlCommand*)command
-{
-    self.callbackId = command.callbackId;
-
-    if ([UIDevice currentDevice].batteryMonitoringEnabled == NO) {
-        [[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
-        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateBatteryStatus:)
-                                                     name:UIDeviceBatteryStateDidChangeNotification object:nil];
-        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateBatteryStatus:)
-                                                     name:UIDeviceBatteryLevelDidChangeNotification object:nil];
-    }
-}
-
-/* turn off battery monitoring */
-- (void)stop:(CDVInvokedUrlCommand*)command
-{
-    // callback one last time to clear the callback function on JS side
-    if (self.callbackId) {
-        CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:[self getBatteryStatus]];
-        [result setKeepCallbackAsBool:NO];
-        [self.commandDelegate sendPluginResult:result callbackId:self.callbackId];
-    }
-    self.callbackId = nil;
-    [[UIDevice currentDevice] setBatteryMonitoringEnabled:NO];
-    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIDeviceBatteryStateDidChangeNotification object:nil];
-    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIDeviceBatteryLevelDidChangeNotification object:nil];
-}
-
-- (CDVPlugin*)initWithWebView:(UIWebView*)theWebView
-{
-    self = (CDVBattery*)[super initWithWebView:theWebView];
-    if (self) {
-        self.state = UIDeviceBatteryStateUnknown;
-        self.level = -1.0;
-    }
-    return self;
-}
-
-- (void)dealloc
-{
-    [self stop:nil];
-}
-
-- (void)onReset
-{
-    [self stop:nil];
-}
-
-@end

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCamera.h
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCamera.h b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCamera.h
deleted file mode 100644
index 65eac77..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCamera.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import <Foundation/Foundation.h>
-#import "CDVPlugin.h"
-
-enum CDVDestinationType {
-    DestinationTypeDataUrl = 0,
-    DestinationTypeFileUri,
-    DestinationTypeNativeUri
-};
-typedef NSUInteger CDVDestinationType;
-
-enum CDVEncodingType {
-    EncodingTypeJPEG = 0,
-    EncodingTypePNG
-};
-typedef NSUInteger CDVEncodingType;
-
-enum CDVMediaType {
-    MediaTypePicture = 0,
-    MediaTypeVideo,
-    MediaTypeAll
-};
-typedef NSUInteger CDVMediaType;
-
-@interface CDVCameraPicker : UIImagePickerController
-{}
-
-@property (assign) NSInteger quality;
-@property (copy)   NSString* callbackId;
-@property (copy)   NSString* postUrl;
-@property (nonatomic) enum CDVDestinationType returnType;
-@property (nonatomic) enum CDVEncodingType encodingType;
-@property (strong) UIPopoverController* popoverController;
-@property (assign) CGSize targetSize;
-@property (assign) bool correctOrientation;
-@property (assign) bool saveToPhotoAlbum;
-@property (assign) bool cropToSize;
-@property (strong) UIWebView* webView;
-@property (assign) BOOL popoverSupported;
-
-@end
-
-// ======================================================================= //
-
-@interface CDVCamera : CDVPlugin <UIImagePickerControllerDelegate,
-                       UINavigationControllerDelegate,
-                       UIPopoverControllerDelegate>
-{}
-
-@property (strong) CDVCameraPicker* pickerController;
-
-/*
- * getPicture
- *
- * arguments:
- *	1: this is the javascript function that will be called with the results, the first parameter passed to the
- *		javascript function is the picture as a Base64 encoded string
- *  2: this is the javascript function to be called if there was an error
- * options:
- *	quality: integer between 1 and 100
- */
-- (void)takePicture:(CDVInvokedUrlCommand*)command;
-- (void)postImage:(UIImage*)anImage withFilename:(NSString*)filename toUrl:(NSURL*)url;
-- (void)cleanup:(CDVInvokedUrlCommand*)command;
-- (void)repositionPopover:(CDVInvokedUrlCommand*)command;
-
-- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info;
-- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingImage:(UIImage*)image editingInfo:(NSDictionary*)editingInfo;
-- (void)imagePickerControllerDidCancel:(UIImagePickerController*)picker;
-- (UIImage*)imageByScalingAndCroppingForSize:(UIImage*)anImage toSize:(CGSize)targetSize;
-- (UIImage*)imageByScalingNotCroppingForSize:(UIImage*)anImage toSize:(CGSize)frameSize;
-- (UIImage*)imageCorrectedForCaptureOrientation:(UIImage*)anImage;
-
-@end

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/a8483465/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCamera.m
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCamera.m b/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCamera.m
deleted file mode 100644
index 823fde9..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee-sdk/samples/push/ios/CordovaLib/Classes/CDVCamera.m
+++ /dev/null
@@ -1,570 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import "CDVCamera.h"
-#import "CDVJpegHeaderWriter.h"
-#import "NSArray+Comparisons.h"
-#import "NSData+Base64.h"
-#import "NSDictionary+Extensions.h"
-#import <MobileCoreServices/UTCoreTypes.h>
-
-#define CDV_PHOTO_PREFIX @"cdv_photo_"
-
-static NSSet* org_apache_cordova_validArrowDirections;
-
-@interface CDVCamera ()
-
-@property (readwrite, assign) BOOL hasPendingOperation;
-
-@end
-
-@implementation CDVCamera
-
-+ (void)initialize
-{
-    org_apache_cordova_validArrowDirections = [[NSSet alloc] initWithObjects:[NSNumber numberWithInt:UIPopoverArrowDirectionUp], [NSNumber numberWithInt:UIPopoverArrowDirectionDown], [NSNumber numberWithInt:UIPopoverArrowDirectionLeft], [NSNumber numberWithInt:UIPopoverArrowDirectionRight], [NSNumber numberWithInt:UIPopoverArrowDirectionAny], nil];
-}
-
-@synthesize hasPendingOperation, pickerController;
-
-- (BOOL)popoverSupported
-{
-    return (NSClassFromString(@"UIPopoverController") != nil) &&
-           (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad);
-}
-
-/*  takePicture arguments:
- * INDEX   ARGUMENT
- *  0       quality
- *  1       destination type
- *  2       source type
- *  3       targetWidth
- *  4       targetHeight
- *  5       encodingType
- *  6       mediaType
- *  7       allowsEdit
- *  8       correctOrientation
- *  9       saveToPhotoAlbum
- *  10      popoverOptions
- *  11      cameraDirection
- */
-- (void)takePicture:(CDVInvokedUrlCommand*)command
-{
-    NSString* callbackId = command.callbackId;
-    NSArray* arguments = command.arguments;
-
-    self.hasPendingOperation = NO;
-
-    NSString* sourceTypeString = [arguments objectAtIndex:2];
-    UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera; // default
-    if (sourceTypeString != nil) {
-        sourceType = (UIImagePickerControllerSourceType)[sourceTypeString intValue];
-    }
-
-    bool hasCamera = [UIImagePickerController isSourceTypeAvailable:sourceType];
-    if (!hasCamera) {
-        NSLog(@"Camera.getPicture: source type %d not available.", sourceType);
-        CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"no camera available"];
-        [self.commandDelegate sendPluginResult:result callbackId:callbackId];
-        return;
-    }
-
-    bool allowEdit = [[arguments objectAtIndex:7] boolValue];
-    NSNumber* targetWidth = [arguments objectAtIndex:3];
-    NSNumber* targetHeight = [arguments objectAtIndex:4];
-    NSNumber* mediaValue = [arguments objectAtIndex:6];
-    CDVMediaType mediaType = (mediaValue) ? [mediaValue intValue] : MediaTypePicture;
-
-    CGSize targetSize = CGSizeMake(0, 0);
-    if ((targetWidth != nil) && (targetHeight != nil)) {
-        targetSize = CGSizeMake([targetWidth floatValue], [targetHeight floatValue]);
-    }
-
-    // If a popover is already open, close it; we only want one at a time.
-    if (([[self pickerController] popoverController] != nil) && [[[self pickerController] popoverController] isPopoverVisible]) {
-        [[[self pickerController] popoverController] dismissPopoverAnimated:YES];
-        [[[self pickerController] popoverController] setDelegate:nil];
-        [[self pickerController] setPopoverController:nil];
-    }
-
-    CDVCameraPicker* cameraPicker = [[CDVCameraPicker alloc] init];
-    self.pickerController = cameraPicker;
-
-    cameraPicker.delegate = self;
-    cameraPicker.sourceType = sourceType;
-    cameraPicker.allowsEditing = allowEdit; // THIS IS ALL IT TAKES FOR CROPPING - jm
-    cameraPicker.callbackId = callbackId;
-    cameraPicker.targetSize = targetSize;
-    cameraPicker.cropToSize = NO;
-    // we need to capture this state for memory warnings that dealloc this object
-    cameraPicker.webView = self.webView;
-    cameraPicker.popoverSupported = [self popoverSupported];
-
-    cameraPicker.correctOrientation = [[arguments objectAtIndex:8] boolValue];
-    cameraPicker.saveToPhotoAlbum = [[arguments objectAtIndex:9] boolValue];
-
-    cameraPicker.encodingType = ([arguments objectAtIndex:5]) ? [[arguments objectAtIndex:5] intValue] : EncodingTypeJPEG;
-
-    cameraPicker.quality = ([arguments objectAtIndex:0]) ? [[arguments objectAtIndex:0] intValue] : 50;
-    cameraPicker.returnType = ([arguments objectAtIndex:1]) ? [[arguments objectAtIndex:1] intValue] : DestinationTypeFileUri;
-
-    if (sourceType == UIImagePickerControllerSourceTypeCamera) {
-        // We only allow taking pictures (no video) in this API.
-        cameraPicker.mediaTypes = [NSArray arrayWithObjects:(NSString*)kUTTypeImage, nil];
-
-        // We can only set the camera device if we're actually using the camera.
-        NSNumber* cameraDirection = [command argumentAtIndex:11 withDefault:[NSNumber numberWithInteger:UIImagePickerControllerCameraDeviceRear]];
-        cameraPicker.cameraDevice = (UIImagePickerControllerCameraDevice)[cameraDirection intValue];
-    } else if (mediaType == MediaTypeAll) {
-        cameraPicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:sourceType];
-    } else {
-        NSArray* mediaArray = [NSArray arrayWithObjects:(NSString*)(mediaType == MediaTypeVideo ? kUTTypeMovie : kUTTypeImage), nil];
-        cameraPicker.mediaTypes = mediaArray;
-    }
-
-    if ([self popoverSupported] && (sourceType != UIImagePickerControllerSourceTypeCamera)) {
-        if (cameraPicker.popoverController == nil) {
-            cameraPicker.popoverController = [[NSClassFromString(@"UIPopoverController")alloc] initWithContentViewController:cameraPicker];
-        }
-        NSDictionary* options = [command.arguments objectAtIndex:10 withDefault:nil];
-        [self displayPopover:options];
-    } else {
-        if ([self.viewController respondsToSelector:@selector(presentViewController:::)]) {
-            [self.viewController presentViewController:cameraPicker animated:YES completion:nil];
-        } else {
-            [self.viewController presentModalViewController:cameraPicker animated:YES];
-        }
-    }
-    self.hasPendingOperation = YES;
-}
-
-- (void)repositionPopover:(CDVInvokedUrlCommand*)command
-{
-    NSDictionary* options = [command.arguments objectAtIndex:0 withDefault:nil];
-
-    [self displayPopover:options];
-}
-
-- (void)displayPopover:(NSDictionary*)options
-{
-    int x = 0;
-    int y = 32;
-    int width = 320;
-    int height = 480;
-    UIPopoverArrowDirection arrowDirection = UIPopoverArrowDirectionAny;
-
-    if (options) {
-        x = [options integerValueForKey:@"x" defaultValue:0];
-        y = [options integerValueForKey:@"y" defaultValue:32];
-        width = [options integerValueForKey:@"width" defaultValue:320];
-        height = [options integerValueForKey:@"height" defaultValue:480];
-        arrowDirection = [options integerValueForKey:@"arrowDir" defaultValue:UIPopoverArrowDirectionAny];
-        if (![org_apache_cordova_validArrowDirections containsObject:[NSNumber numberWithInt:arrowDirection]]) {
-            arrowDirection = UIPopoverArrowDirectionAny;
-        }
-    }
-
-    [[[self pickerController] popoverController] setDelegate:self];
-    [[[self pickerController] popoverController] presentPopoverFromRect:CGRectMake(x, y, width, height)
-                                                                 inView:[self.webView superview]
-                                               permittedArrowDirections:arrowDirection
-                                                               animated:YES];
-}
-
-- (void)cleanup:(CDVInvokedUrlCommand*)command
-{
-    // empty the tmp directory
-    NSFileManager* fileMgr = [[NSFileManager alloc] init];
-    NSError* err = nil;
-    BOOL hasErrors = NO;
-
-    // clear contents of NSTemporaryDirectory
-    NSString* tempDirectoryPath = NSTemporaryDirectory();
-    NSDirectoryEnumerator* directoryEnumerator = [fileMgr enumeratorAtPath:tempDirectoryPath];
-    NSString* fileName = nil;
-    BOOL result;
-
-    while ((fileName = [directoryEnumerator nextObject])) {
-        // only delete the files we created
-        if (![fileName hasPrefix:CDV_PHOTO_PREFIX]) {
-            continue;
-        }
-        NSString* filePath = [tempDirectoryPath stringByAppendingPathComponent:fileName];
-        result = [fileMgr removeItemAtPath:filePath error:&err];
-        if (!result && err) {
-            NSLog(@"Failed to delete: %@ (error: %@)", filePath, err);
-            hasErrors = YES;
-        }
-    }
-
-    CDVPluginResult* pluginResult;
-    if (hasErrors) {
-        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_IO_EXCEPTION messageAsString:@"One or more files failed to be deleted."];
-    } else {
-        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
-    }
-    [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
-}
-
-- (void)popoverControllerDidDismissPopover:(id)popoverController
-{
-    // [ self imagePickerControllerDidCancel:self.pickerController ];	'
-    UIPopoverController* pc = (UIPopoverController*)popoverController;
-
-    [pc dismissPopoverAnimated:YES];
-    pc.delegate = nil;
-    if (self.pickerController && self.pickerController.callbackId && self.pickerController.popoverController) {
-        self.pickerController.popoverController = nil;
-        NSString* callbackId = self.pickerController.callbackId;
-        CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"no image selected"];   // error callback expects string ATM
-        [self.commandDelegate sendPluginResult:result callbackId:callbackId];
-    }
-    self.hasPendingOperation = NO;
-}
-
-- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info
-{
-    CDVCameraPicker* cameraPicker = (CDVCameraPicker*)picker;
-
-    if (cameraPicker.popoverSupported && (cameraPicker.popoverController != nil)) {
-        [cameraPicker.popoverController dismissPopoverAnimated:YES];
-        cameraPicker.popoverController.delegate = nil;
-        cameraPicker.popoverController = nil;
-    } else {
-        if ([cameraPicker respondsToSelector:@selector(presentingViewController)]) {
-            [[cameraPicker presentingViewController] dismissModalViewControllerAnimated:YES];
-        } else {
-            [[cameraPicker parentViewController] dismissModalViewControllerAnimated:YES];
-        }
-    }
-
-    CDVPluginResult* result = nil;
-
-    NSString* mediaType = [info objectForKey:UIImagePickerControllerMediaType];
-    // IMAGE TYPE
-    if ([mediaType isEqualToString:(NSString*)kUTTypeImage]) {
-        if (cameraPicker.returnType == DestinationTypeNativeUri) {
-            NSString* nativeUri = [(NSURL*)[info objectForKey:UIImagePickerControllerReferenceURL] absoluteString];
-            result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:nativeUri];
-        } else {
-            // get the image
-            UIImage* image = nil;
-            if (cameraPicker.allowsEditing && [info objectForKey:UIImagePickerControllerEditedImage]) {
-                image = [info objectForKey:UIImagePickerControllerEditedImage];
-            } else {
-                image = [info objectForKey:UIImagePickerControllerOriginalImage];
-            }
-
-            if (cameraPicker.saveToPhotoAlbum) {
-                UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
-            }
-
-            if (cameraPicker.correctOrientation) {
-                image = [self imageCorrectedForCaptureOrientation:image];
-            }
-
-            UIImage* scaledImage = nil;
-
-            if ((cameraPicker.targetSize.width > 0) && (cameraPicker.targetSize.height > 0)) {
-                // if cropToSize, resize image and crop to target size, otherwise resize to fit target without cropping
-                if (cameraPicker.cropToSize) {
-                    scaledImage = [self imageByScalingAndCroppingForSize:image toSize:cameraPicker.targetSize];
-                } else {
-                    scaledImage = [self imageByScalingNotCroppingForSize:image toSize:cameraPicker.targetSize];
-                }
-            }
-
-            NSData* data = nil;
-
-            if (cameraPicker.encodingType == EncodingTypePNG) {
-                data = UIImagePNGRepresentation(scaledImage == nil ? image : scaledImage);
-            } else {
-                data = UIImageJPEGRepresentation(scaledImage == nil ? image : scaledImage, cameraPicker.quality / 100.0f);
-
-                /* splice loc */
-                CDVJpegHeaderWriter* exifWriter = [[CDVJpegHeaderWriter alloc] init];
-                NSString* headerstring = [exifWriter createExifAPP1:[info objectForKey:@"UIImagePickerControllerMediaMetadata"]];
-                data = [exifWriter spliceExifBlockIntoJpeg:data withExifBlock:headerstring];
-            }
-
-            if (cameraPicker.returnType == DestinationTypeFileUri) {
-                // write to temp directory and return URI
-                // get the temp directory path
-                NSString* docsPath = [NSTemporaryDirectory()stringByStandardizingPath];
-                NSError* err = nil;
-                NSFileManager* fileMgr = [[NSFileManager alloc] init]; // recommended by apple (vs [NSFileManager defaultManager]) to be threadsafe
-                // generate unique file name
-                NSString* filePath;
-
-                int i = 1;
-                do {
-                    filePath = [NSString stringWithFormat:@"%@/%@%03d.%@", docsPath, CDV_PHOTO_PREFIX, i++, cameraPicker.encodingType == EncodingTypePNG ? @"png":@"jpg"];
-                } while ([fileMgr fileExistsAtPath:filePath]);
-
-                // save file
-                if (![data writeToFile:filePath options:NSAtomicWrite error:&err]) {
-                    result = [CDVPluginResult resultWithStatus:CDVCommandStatus_IO_EXCEPTION messageAsString:[err localizedDescription]];
-                } else {
-                    result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:[[NSURL fileURLWithPath:filePath] absoluteString]];
-                }
-            } else {
-                result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:[data base64EncodedString]];
-            }
-        }
-    }
-    // NOT IMAGE TYPE (MOVIE)
-    else {
-        NSString* moviePath = [[info objectForKey:UIImagePickerControllerMediaURL] absoluteString];
-        result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:moviePath];
-    }
-
-    if (result) {
-        [self.commandDelegate sendPluginResult:result callbackId:cameraPicker.callbackId];
-    }
-
-    self.hasPendingOperation = NO;
-    self.pickerController = nil;
-}
-
-// older api calls newer didFinishPickingMediaWithInfo
-- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingImage:(UIImage*)image editingInfo:(NSDictionary*)editingInfo
-{
-    NSDictionary* imageInfo = [NSDictionary dictionaryWithObject:image forKey:UIImagePickerControllerOriginalImage];
-
-    [self imagePickerController:picker didFinishPickingMediaWithInfo:imageInfo];
-}
-
-- (void)imagePickerControllerDidCancel:(UIImagePickerController*)picker
-{
-    CDVCameraPicker* cameraPicker = (CDVCameraPicker*)picker;
-
-    if ([cameraPicker respondsToSelector:@selector(presentingViewController)]) {
-        [[cameraPicker presentingViewController] dismissModalViewControllerAnimated:YES];
-    } else {
-        [[cameraPicker parentViewController] dismissModalViewControllerAnimated:YES];
-    }
-    // popoverControllerDidDismissPopover:(id)popoverController is called if popover is cancelled
-
-    CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"no image selected"];   // error callback expects string ATM
-    [self.commandDelegate sendPluginResult:result callbackId:cameraPicker.callbackId];
-
-    self.hasPendingOperation = NO;
-    self.pickerController = nil;
-}
-
-- (UIImage*)imageByScalingAndCroppingForSize:(UIImage*)anImage toSize:(CGSize)targetSize
-{
-    UIImage* sourceImage = anImage;
-    UIImage* newImage = nil;
-    CGSize imageSize = sourceImage.size;
-    CGFloat width = imageSize.width;
-    CGFloat height = imageSize.height;
-    CGFloat targetWidth = targetSize.width;
-    CGFloat targetHeight = targetSize.height;
-    CGFloat scaleFactor = 0.0;
-    CGFloat scaledWidth = targetWidth;
-    CGFloat scaledHeight = targetHeight;
-    CGPoint thumbnailPoint = CGPointMake(0.0, 0.0);
-
-    if (CGSizeEqualToSize(imageSize, targetSize) == NO) {
-        CGFloat widthFactor = targetWidth / width;
-        CGFloat heightFactor = targetHeight / height;
-
-        if (widthFactor > heightFactor) {
-            scaleFactor = widthFactor; // scale to fit height
-        } else {
-            scaleFactor = heightFactor; // scale to fit width
-        }
-        scaledWidth = width * scaleFactor;
-        scaledHeight = height * scaleFactor;
-
-        // center the image
-        if (widthFactor > heightFactor) {
-            thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5;
-        } else if (widthFactor < heightFactor) {
-            thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5;
-        }
-    }
-
-    UIGraphicsBeginImageContext(targetSize); // this will crop
-
-    CGRect thumbnailRect = CGRectZero;
-    thumbnailRect.origin = thumbnailPoint;
-    thumbnailRect.size.width = scaledWidth;
-    thumbnailRect.size.height = scaledHeight;
-
-    [sourceImage drawInRect:thumbnailRect];
-
-    newImage = UIGraphicsGetImageFromCurrentImageContext();
-    if (newImage == nil) {
-        NSLog(@"could not scale image");
-    }
-
-    // pop the context to get back to the default
-    UIGraphicsEndImageContext();
-    return newImage;
-}
-
-- (UIImage*)imageCorrectedForCaptureOrientation:(UIImage*)anImage
-{
-    float rotation_radians = 0;
-    bool perpendicular = false;
-
-    switch ([anImage imageOrientation]) {
-        case UIImageOrientationUp :
-            rotation_radians = 0.0;
-            break;
-
-        case UIImageOrientationDown:
-            rotation_radians = M_PI; // don't be scared of radians, if you're reading this, you're good at math
-            break;
-
-        case UIImageOrientationRight:
-            rotation_radians = M_PI_2;
-            perpendicular = true;
-            break;
-
-        case UIImageOrientationLeft:
-            rotation_radians = -M_PI_2;
-            perpendicular = true;
-            break;
-
-        default:
-            break;
-    }
-
-    UIGraphicsBeginImageContext(CGSizeMake(anImage.size.width, anImage.size.height));
-    CGContextRef context = UIGraphicsGetCurrentContext();
-
-    // Rotate around the center point
-    CGContextTranslateCTM(context, anImage.size.width / 2, anImage.size.height / 2);
-    CGContextRotateCTM(context, rotation_radians);
-
-    CGContextScaleCTM(context, 1.0, -1.0);
-    float width = perpendicular ? anImage.size.height : anImage.size.width;
-    float height = perpendicular ? anImage.size.width : anImage.size.height;
-    CGContextDrawImage(context, CGRectMake(-width / 2, -height / 2, width, height), [anImage CGImage]);
-
-    // Move the origin back since the rotation might've change it (if its 90 degrees)
-    if (perpendicular) {
-        CGContextTranslateCTM(context, -anImage.size.height / 2, -anImage.size.width / 2);
-    }
-
-    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
-    UIGraphicsEndImageContext();
-    return newImage;
-}
-
-- (UIImage*)imageByScalingNotCroppingForSize:(UIImage*)anImage toSize:(CGSize)frameSize
-{
-    UIImage* sourceImage = anImage;
-    UIImage* newImage = nil;
-    CGSize imageSize = sourceImage.size;
-    CGFloat width = imageSize.width;
-    CGFloat height = imageSize.height;
-    CGFloat targetWidth = frameSize.width;
-    CGFloat targetHeight = frameSize.height;
-    CGFloat scaleFactor = 0.0;
-    CGSize scaledSize = frameSize;
-
-    if (CGSizeEqualToSize(imageSize, frameSize) == NO) {
-        CGFloat widthFactor = targetWidth / width;
-        CGFloat heightFactor = targetHeight / height;
-
-        // opposite comparison to imageByScalingAndCroppingForSize in order to contain the image within the given bounds
-        if (widthFactor > heightFactor) {
-            scaleFactor = heightFactor; // scale to fit height
-        } else {
-            scaleFactor = widthFactor; // scale to fit width
-        }
-        scaledSize = CGSizeMake(MIN(width * scaleFactor, targetWidth), MIN(height * scaleFactor, targetHeight));
-    }
-
-    UIGraphicsBeginImageContext(scaledSize); // this will resize
-
-    [sourceImage drawInRect:CGRectMake(0, 0, scaledSize.width, scaledSize.height)];
-
-    newImage = UIGraphicsGetImageFromCurrentImageContext();
-    if (newImage == nil) {
-        NSLog(@"could not scale image");
-    }
-
-    // pop the context to get back to the default
-    UIGraphicsEndImageContext();
-    return newImage;
-}
-
-- (void)postImage:(UIImage*)anImage withFilename:(NSString*)filename toUrl:(NSURL*)url
-{
-    self.hasPendingOperation = YES;
-
-    NSString* boundary = @"----BOUNDARY_IS_I";
-
-    NSMutableURLRequest* req = [NSMutableURLRequest requestWithURL:url];
-    [req setHTTPMethod:@"POST"];
-
-    NSString* contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
-    [req setValue:contentType forHTTPHeaderField:@"Content-type"];
-
-    NSData* imageData = UIImagePNGRepresentation(anImage);
-
-    // adding the body
-    NSMutableData* postBody = [NSMutableData data];
-
-    // first parameter an image
-    [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
-    [postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"upload\"; filename=\"%@\"\r\n", filename] dataUsingEncoding:NSUTF8StringEncoding]];
-    [postBody appendData:[@"Content-Type: image/png\r\n\r\n" dataUsingEncoding : NSUTF8StringEncoding]];
-    [postBody appendData:imageData];
-
-    //	// second parameter information
-    //	[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
-    //	[postBody appendData:[@"Content-Disposition: form-data; name=\"some_other_name\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
-    //	[postBody appendData:[@"some_other_value" dataUsingEncoding:NSUTF8StringEncoding]];
-    //	[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@--\r \n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
-
-    [req setHTTPBody:postBody];
-
-    NSURLResponse* response;
-    NSError* error;
-    [NSURLConnection sendSynchronousRequest:req returningResponse:&response error:&error];
-
-    //  NSData* result = [NSURLConnection sendSynchronousRequest:req returningResponse:&response error:&error];
-    //	NSString * resultStr =  [[[NSString alloc] initWithData:result encoding:NSUTF8StringEncoding] autorelease];
-
-    self.hasPendingOperation = NO;
-}
-
-@end
-
-@implementation CDVCameraPicker
-
-@synthesize quality, postUrl;
-@synthesize returnType;
-@synthesize callbackId;
-@synthesize popoverController;
-@synthesize targetSize;
-@synthesize correctOrientation;
-@synthesize saveToPhotoAlbum;
-@synthesize encodingType;
-@synthesize cropToSize;
-@synthesize webView;
-@synthesize popoverSupported;
-
-@end


Mime
View raw message