summaryrefslogtreecommitdiff
path: root/plugins/de.appplant.cordova.plugin.badge/src
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/de.appplant.cordova.plugin.badge/src')
-rw-r--r--plugins/de.appplant.cordova.plugin.badge/src/android/Badge.java160
-rw-r--r--plugins/de.appplant.cordova.plugin.badge/src/android/BadgeImpl.java277
-rw-r--r--plugins/de.appplant.cordova.plugin.badge/src/android/LaunchActivity.java88
-rw-r--r--plugins/de.appplant.cordova.plugin.badge/src/android/badge.gradle30
-rw-r--r--plugins/de.appplant.cordova.plugin.badge/src/browser/BadgeProxy.js108
-rw-r--r--plugins/de.appplant.cordova.plugin.badge/src/browser/favico.min.js7
-rw-r--r--plugins/de.appplant.cordova.plugin.badge/src/ios/APPBadge.h40
-rw-r--r--plugins/de.appplant.cordova.plugin.badge/src/ios/APPBadge.m205
-rw-r--r--plugins/de.appplant.cordova.plugin.badge/src/ios/UIApplication+APPBadge.h31
-rw-r--r--plugins/de.appplant.cordova.plugin.badge/src/ios/UIApplication+APPBadge.m85
-rw-r--r--plugins/de.appplant.cordova.plugin.badge/src/windows/BadgeProxy.js138
-rw-r--r--plugins/de.appplant.cordova.plugin.badge/src/wp8/Badge.cs155
12 files changed, 0 insertions, 1324 deletions
diff --git a/plugins/de.appplant.cordova.plugin.badge/src/android/Badge.java b/plugins/de.appplant.cordova.plugin.badge/src/android/Badge.java
deleted file mode 100644
index 97f710e6..00000000
--- a/plugins/de.appplant.cordova.plugin.badge/src/android/Badge.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright (c) 2013-2015 by appPlant UG. All rights reserved.
- *
- * @APPPLANT_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apache License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://opensource.org/licenses/Apache-2.0/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPPLANT_LICENSE_HEADER_END@
- */
-
-package de.appplant.cordova.plugin.badge;
-
-import android.content.Context;
-
-import org.apache.cordova.CallbackContext;
-import org.apache.cordova.CordovaPlugin;
-import org.json.JSONArray;
-import org.json.JSONException;
-
-
-public class Badge extends CordovaPlugin {
-
- /**
- * Implementation of the badge interface methods.
- */
- private final BadgeImpl badgeImpl = new BadgeImpl();
-
- /**
- * Executes the request.
- *
- * @param action The action to execute.
- * @param args The exec() arguments.
- * @param callback The callback context used when
- * calling back into JavaScript.
- *
- * @return
- * Returning false results in a "MethodNotFound" error.
- *
- * @throws JSONException
- */
- @Override
- public boolean execute (String action, JSONArray args, CallbackContext callback)
- throws JSONException {
-
- if (action.equalsIgnoreCase("clearBadge")) {
- clearBadge(callback);
- return true;
- }
-
- if (action.equalsIgnoreCase("getBadge")) {
- getBadge(callback);
- return true;
- }
-
- if (action.equalsIgnoreCase("hasPermission")) {
- hasPermission(callback);
- return true;
- }
-
- if (action.equalsIgnoreCase("registerPermission")) {
- hasPermission(callback);
- return true;
- }
-
- if (action.equalsIgnoreCase("setBadge")) {
- setBadge(args, callback);
- return true;
- }
-
- return false;
- }
-
- /**
- * Clears the badge of the app icon.
- *
- * @param callback
- * The function to be exec as the callback
- */
- private void clearBadge (final CallbackContext callback) {
- cordova.getThreadPool().execute(new Runnable() {
- @Override
- public void run() {
- badgeImpl.clearBadge(getContext());
- badgeImpl.getBadge(callback, getContext());
- }
- });
- }
-
- /**
- * Retrieves the badge of the app icon.
- *
- * @param callback
- * The function to be exec as the callback
- */
- private void getBadge (final CallbackContext callback) {
- cordova.getThreadPool().execute(new Runnable() {
- @Override
- public void run() {
- badgeImpl.getBadge(callback, getContext());
- }
- });
- }
-
- /**
- * Informs if the app has the permission to show badges.
- *
- * @param callback
- * The function to be exec as the callback
- */
- private void hasPermission (final CallbackContext callback) {
- cordova.getThreadPool().execute(new Runnable() {
- @Override
- public void run() {
- badgeImpl.hasPermission(callback);
- }
- });
- }
-
- /**
- * Sets the badge of the app icon.
- *
- * @param args
- * The new badge number
- * @param callback
- * The function to be exec as the callback
- */
- private void setBadge (final JSONArray args,
- final CallbackContext callback) {
-
- cordova.getThreadPool().execute(new Runnable() {
- @Override
- public void run() {
- badgeImpl.clearBadge(getContext());
- badgeImpl.setBadge(args, getContext());
- badgeImpl.getBadge(callback, getContext());
- }
- });
- }
-
- /**
- * Returns the context of the activity.
- */
- private Context getContext () {
- return cordova.getActivity();
- }
-
-}
diff --git a/plugins/de.appplant.cordova.plugin.badge/src/android/BadgeImpl.java b/plugins/de.appplant.cordova.plugin.badge/src/android/BadgeImpl.java
deleted file mode 100644
index 9f55c920..00000000
--- a/plugins/de.appplant.cordova.plugin.badge/src/android/BadgeImpl.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
- * Copyright (c) 2014-2015 by appPlant UG. All rights reserved.
- *
- * @APPPLANT_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apache License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://opensource.org/licenses/Apache-2.0/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPPLANT_LICENSE_HEADER_END@
- */
-
-package de.appplant.cordova.plugin.badge;
-
-import android.app.Notification;
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.content.res.Resources;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.os.Build;
-
-import org.apache.cordova.CallbackContext;
-import org.apache.cordova.PluginResult;
-import org.json.JSONArray;
-
-import me.leolin.shortcutbadger.ShortcutBadger;
-import me.leolin.shortcutbadger.impl.DefaultBadger;
-
-/**
- * Implementation of the badge interface methods.
- */
-class BadgeImpl {
-
- /**
- * The ID for the notification
- */
- private final int ID = -450793490;
-
- /**
- * The name for the shared preferences key
- */
- protected static final String KEY = "badge";
-
- /**
- * Bundle identifier for the autoCancel value
- */
- protected static final String EXTRA_AUTO_CANCEL = "EXTRA_AUTO_CANCEL";
-
- /**
- * Finds out if badgeing the app icon is possible on that device.
- *
- * @param ctx
- * The application context.
- * @return
- * true if its supported.
- */
- private boolean canBadgeAppIcon (Context ctx) {
- ShortcutBadger badger = ShortcutBadger.with(ctx);
-
- return !(badger instanceof DefaultBadger);
- }
-
- /**
- * Clears the badge of the app icon.
- *
- * @param ctx
- * The application context.
- */
- protected void clearBadge (Context ctx) {
- saveBadge(0, ctx);
- getNotificationManager(ctx).cancel(ID);
- ShortcutBadger.with(ctx).remove();
- }
-
- /**
- * Retrieves the badge of the app icon.
- *
- * @param ctx
- * The application context.
- * @param callback
- * The function to be exec as the callback.
- */
- protected void getBadge (CallbackContext callback, Context ctx) {
- SharedPreferences settings = getSharedPreferences(ctx);
- int badge = settings.getInt(KEY, 0);
- PluginResult result;
-
- result = new PluginResult(PluginResult.Status.OK, badge);
-
- callback.sendPluginResult(result);
- }
-
- /**
- * Sets the badge of the app icon.
- *
- * @param args
- * The new badge number
- * @param ctx
- * The application context
- */
- protected void setBadge (JSONArray args, Context ctx) {
- int badge = args.optInt(0);
-
- saveBadge(badge, ctx);
-
- if (canBadgeAppIcon(ctx)) {
- ShortcutBadger.with(ctx).count(badge);
- } else {
- setBadgeNotification(badge, args, ctx);
- }
- }
-
- /**
- * Sets the badge of the app icon.
- *
- * @param args
- * The new badge number
- * @param ctx
- * The application context
- */
- @SuppressWarnings("deprecation")
- private void setBadgeNotification (int badge, JSONArray args, Context ctx) {
- String title = args.optString(1, "%d new messages");
- String icon = args.optString(2);
- boolean autoCancel = args.optBoolean(3, false);
-
- Resources res = ctx.getResources();
- Bitmap appIcon = BitmapFactory.decodeResource(
- res, getDrawableIcon(ctx));
-
- Intent intent = new Intent(ctx, LaunchActivity.class)
- .setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
-
- intent.putExtra(EXTRA_AUTO_CANCEL, autoCancel);
-
- PendingIntent contentIntent = PendingIntent.getActivity(
- ctx, ID, intent, PendingIntent.FLAG_CANCEL_CURRENT);
-
- String title_ = String.format(title, badge);
-
- Notification.Builder notification = new Notification.Builder(ctx)
- .setContentTitle(title_)
- .setNumber(badge)
- .setTicker(title_)
- .setAutoCancel(autoCancel)
- .setSmallIcon(getResIdForSmallIcon(icon, ctx))
- .setLargeIcon(appIcon)
- .setContentIntent(contentIntent);
-
- if (Build.VERSION.SDK_INT<16) {
- // Build notification for HoneyComb to ICS
- getNotificationManager(ctx).notify(ID, notification.getNotification());
- } else if (Build.VERSION.SDK_INT>15) {
- // Notification for Jellybean and above
- getNotificationManager(ctx).notify(ID, notification.build());
- }
- }
-
- /**
- * Persist the badge of the app icon so that `getBadge` is able to return
- * the badge number back to the client.
- *
- * @param badge
- * The badge of the app icon.
- * @param ctx
- * The application context.
- */
- protected void saveBadge (int badge, Context ctx) {
- SharedPreferences.Editor editor = getSharedPreferences(ctx).edit();
-
- editor.putInt(KEY, badge);
- editor.apply();
- }
-
- /**
- * Informs if the app has the permission to show badges.
- *
- * @param callback
- * The function to be exec as the callback
- */
- protected void hasPermission (final CallbackContext callback) {
- PluginResult result = new PluginResult(PluginResult.Status.OK, true);
-
- callback.sendPluginResult(result);
- }
-
- /**
- * The Local storage for the application.
- */
- private SharedPreferences getSharedPreferences (Context context) {
- return context.getSharedPreferences(KEY, Context.MODE_PRIVATE);
- }
-
- /**
- * The NotificationManager for the app.
- */
- private NotificationManager getNotificationManager (Context context) {
- return (NotificationManager) context.getSystemService(
- Context.NOTIFICATION_SERVICE);
- }
-
- /**
- * Returns the ID for the given resource.
- *
- * @return
- * The resource ID of the app icon
- */
- private int getDrawableIcon (Context ctx) {
- Resources res = ctx.getResources();
- String pkgName = ctx.getPackageName();
-
- int resId;
- resId = res.getIdentifier("icon", "drawable", pkgName);
-
- return resId;
- }
-
- /**
- * Returns the ID for the given resource.
- *
- * @return
- * The resource ID for the small icon.
- */
- private int getResIdForSmallIcon (String smallIcon, Context ctx) {
- int resId;
-
- String pkgName = ctx.getPackageName();
-
- resId = getResId(pkgName, smallIcon);
-
- if (resId == 0) {
- resId = getResId("android", smallIcon);
- }
-
- if (resId == 0) {
- resId = getResId("android", "ic_dialog_email");
- }
-
- return resId;
- }
-
- /**
- * Returns numerical icon Value.
- *
- * @param className
- * The class name prefix either from Android or the app.
- * @param iconName
- * The resource name.
- */
- private int getResId (String className, String iconName) {
- int icon = 0;
-
- try {
- Class<?> klass = Class.forName(className + ".R$drawable");
-
- icon = (Integer) klass.getDeclaredField(iconName).get(Integer.class);
- } catch (Exception ignored) {}
-
- return icon;
- }
-
-}
diff --git a/plugins/de.appplant.cordova.plugin.badge/src/android/LaunchActivity.java b/plugins/de.appplant.cordova.plugin.badge/src/android/LaunchActivity.java
deleted file mode 100644
index 8e2227fb..00000000
--- a/plugins/de.appplant.cordova.plugin.badge/src/android/LaunchActivity.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2013-2015 by appPlant UG. All rights reserved.
- *
- * @APPPLANT_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apache License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://opensource.org/licenses/Apache-2.0/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPPLANT_LICENSE_HEADER_END@
- */
-
-package de.appplant.cordova.plugin.badge;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.os.Bundle;
-
-public class LaunchActivity extends Activity {
-
- /**
- * Clears the badge and moves the launch intent
- * (web view) back to front.
- */
- @Override
- public void onCreate (Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- Intent intent = getIntent();
- boolean cancel = intent.getBooleanExtra(
- BadgeImpl.EXTRA_AUTO_CANCEL, false);
-
- if (cancel) {
- clearBagde();
- }
-
- launchMainIntent();
- }
-
- /**
- * Launch main intent for package.
- */
- private void launchMainIntent () {
- Context context = getApplicationContext();
- String pkgName = context.getPackageName();
- Intent intent = context.getPackageManager()
- .getLaunchIntentForPackage(pkgName);
-
- intent.addFlags(
- Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_SINGLE_TOP);
-
- context.startActivity(intent);
- }
-
- /**
- * Removes the badge of the app icon so that `getBadge`
- * will return 0 back to the client.
- */
- private void clearBagde () {
- SharedPreferences.Editor editor = getSharedPreferences().edit();
-
- editor.putInt(BadgeImpl.KEY, 0);
- editor.apply();
- }
-
- /**
- * The Local storage for the application.
- */
- private SharedPreferences getSharedPreferences () {
- Context context = getApplicationContext();
-
- return context.getSharedPreferences(BadgeImpl.KEY, Context.MODE_PRIVATE);
- }
-
-}
diff --git a/plugins/de.appplant.cordova.plugin.badge/src/android/badge.gradle b/plugins/de.appplant.cordova.plugin.badge/src/android/badge.gradle
deleted file mode 100644
index b2a7b07d..00000000
--- a/plugins/de.appplant.cordova.plugin.badge/src/android/badge.gradle
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2013-2015 by appPlant UG. All rights reserved.
- *
- * @APPPLANT_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apache License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://opensource.org/licenses/Apache-2.0/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPPLANT_LICENSE_HEADER_END@
- */
-
-repositories {
- mavenCentral()
-}
-
-dependencies {
- compile 'me.leolin:ShortcutBadger:1.1.2@aar'
-}
diff --git a/plugins/de.appplant.cordova.plugin.badge/src/browser/BadgeProxy.js b/plugins/de.appplant.cordova.plugin.badge/src/browser/BadgeProxy.js
deleted file mode 100644
index 44edd023..00000000
--- a/plugins/de.appplant.cordova.plugin.badge/src/browser/BadgeProxy.js
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) 2013-2015 by appPlant UG. All rights reserved.
- *
- * @APPPLANT_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apache License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://opensource.org/licenses/Apache-2.0/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPPLANT_LICENSE_HEADER_END@
- */
-
-
-/**
- * Instance of the Favico.js libary.
- * @type {Favico}
- */
-exports.favico = new cordova.plugins.notification.badge.Favico({
- animation: 'none'
-});
-
-/**
- * Holds the current badge number value.
- * @type {Number}
- */
-exports.badgeNumber = 0;
-
-
-/**
- * Clears the badge of the app icon.
- *
- * @param {Function} success
- * Success callback
- * @param {Function} error
- * Error callback
- */
-exports.clearBadge = function (success, error) {
- exports.setBadge(success, error, [0]);
-};
-
-/**
- * Sets the badge of the app icon.
- *
- * @param {Function} success
- * Success callback
- * @param {Function} error
- * Error callback
- * @param {Number} badge
- * The new badge number
- */
-exports.setBadge = function (success, error, args) {
- var badge = args[0];
-
- exports.badgeNumber = badge;
-
- exports.favico.badge(badge);
- success(badge);
-};
-
-/**
- * Gets the badge of the app icon.
- *
- * @param {Function} success
- * Success callback
- * @param {Function} error
- * Error callback
- */
-exports.getBadge = function (success, error) {
- success(exports.badgeNumber);
-};
-
-/**
- * Informs if the app has the permission to show badges.
- *
- * @param {Function} success
- * Success callback
- * @param {Function} error
- * Error callback
- */
-exports.hasPermission = function (success, error) {
- success(true);
-};
-
-/**
- * Register permission to show badges if not already granted.
- *
- * @param {Function} success
- * Success callback
- * @param {Function} error
- * Error callback
- */
-exports.registerPermission = function (success, error) {
- success(true);
-};
-
-
-cordova.commandProxy.add('Badge', exports);
diff --git a/plugins/de.appplant.cordova.plugin.badge/src/browser/favico.min.js b/plugins/de.appplant.cordova.plugin.badge/src/browser/favico.min.js
deleted file mode 100644
index de0de6bc..00000000
--- a/plugins/de.appplant.cordova.plugin.badge/src/browser/favico.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/**
- * @license MIT
- * @fileOverview Favico animations
- * @author Miroslav Magda, http://blog.ejci.net
- * @version 0.3.9
- */
-!function(){var e=function(e){"use strict";function t(e){if(e.paused||e.ended||g)return!1;try{f.clearRect(0,0,s,l),f.drawImage(e,0,0,s,l)}catch(o){}p=setTimeout(t,S.duration,e),O.setIcon(h)}function o(e){var t=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;e=e.replace(t,function(e,t,o,n){return t+t+o+o+n+n});var o=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return o?{r:parseInt(o[1],16),g:parseInt(o[2],16),b:parseInt(o[3],16)}:!1}function n(e,t){var o,n={};for(o in e)n[o]=e[o];for(o in t)n[o]=t[o];return n}function r(){return b.hidden||b.msHidden||b.webkitHidden||b.mozHidden}e=e?e:{};var i,a,l,s,h,f,c,d,u,y,w,g,x,m,p,b,v={bgColor:"#d00",textColor:"#fff",fontFamily:"sans-serif",fontStyle:"bold",type:"circle",position:"down",animation:"slide",elementId:!1,dataUrl:!1,win:window};x={},x.ff="undefined"!=typeof InstallTrigger,x.chrome=!!window.chrome,x.opera=!!window.opera||navigator.userAgent.indexOf("Opera")>=0,x.ie=/*@cc_on!@*/!1,x.safari=Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor")>0,x.supported=x.chrome||x.ff||x.opera;var C=[];w=function(){},d=g=!1;var E=function(){i=n(v,e),i.bgColor=o(i.bgColor),i.textColor=o(i.textColor),i.position=i.position.toLowerCase(),i.animation=S.types[""+i.animation]?i.animation:v.animation,b=i.win.document;var t=i.position.indexOf("up")>-1,r=i.position.indexOf("left")>-1;if(t||r)for(var d=0;d<S.types[""+i.animation].length;d++){var u=S.types[""+i.animation][d];t&&(u.y=u.y<.6?u.y-.4:u.y-2*u.y+(1-u.w)),r&&(u.x=u.x<.6?u.x-.4:u.x-2*u.x+(1-u.h)),S.types[""+i.animation][d]=u}i.type=A[""+i.type]?i.type:v.type,a=O.getIcon(),h=document.createElement("canvas"),c=document.createElement("img"),a.hasAttribute("href")?(c.setAttribute("crossOrigin","anonymous"),c.setAttribute("src",a.getAttribute("href")),c.onload=function(){l=c.height>0?c.height:32,s=c.width>0?c.width:32,h.height=l,h.width=s,f=h.getContext("2d"),M.ready()}):(c.setAttribute("src",""),l=32,s=32,c.height=l,c.width=s,h.height=l,h.width=s,f=h.getContext("2d"),M.ready())},M={};M.ready=function(){d=!0,M.reset(),w()},M.reset=function(){d&&(C=[],u=!1,y=!1,f.clearRect(0,0,s,l),f.drawImage(c,0,0,s,l),O.setIcon(h),window.clearTimeout(m),window.clearTimeout(p))},M.start=function(){if(d&&!y){var e=function(){u=C[0],y=!1,C.length>0&&(C.shift(),M.start())};if(C.length>0){y=!0;var t=function(){["type","animation","bgColor","textColor","fontFamily","fontStyle"].forEach(function(e){e in C[0].options&&(i[e]=C[0].options[e])}),S.run(C[0].options,function(){e()},!1)};u?S.run(u.options,function(){t()},!0):t()}}};var A={},I=function(e){return e.n="number"==typeof e.n?Math.abs(0|e.n):e.n,e.x=s*e.x,e.y=l*e.y,e.w=s*e.w,e.h=l*e.h,e.len=(""+e.n).length,e};A.circle=function(e){e=I(e);var t=!1;2===e.len?(e.x=e.x-.4*e.w,e.w=1.4*e.w,t=!0):e.len>=3&&(e.x=e.x-.65*e.w,e.w=1.65*e.w,t=!0),f.clearRect(0,0,s,l),f.drawImage(c,0,0,s,l),f.beginPath(),f.font=i.fontStyle+" "+Math.floor(e.h*(e.n>99?.85:1))+"px "+i.fontFamily,f.textAlign="center",t?(f.moveTo(e.x+e.w/2,e.y),f.lineTo(e.x+e.w-e.h/2,e.y),f.quadraticCurveTo(e.x+e.w,e.y,e.x+e.w,e.y+e.h/2),f.lineTo(e.x+e.w,e.y+e.h-e.h/2),f.quadraticCurveTo(e.x+e.w,e.y+e.h,e.x+e.w-e.h/2,e.y+e.h),f.lineTo(e.x+e.h/2,e.y+e.h),f.quadraticCurveTo(e.x,e.y+e.h,e.x,e.y+e.h-e.h/2),f.lineTo(e.x,e.y+e.h/2),f.quadraticCurveTo(e.x,e.y,e.x+e.h/2,e.y)):f.arc(e.x+e.w/2,e.y+e.h/2,e.h/2,0,2*Math.PI),f.fillStyle="rgba("+i.bgColor.r+","+i.bgColor.g+","+i.bgColor.b+","+e.o+")",f.fill(),f.closePath(),f.beginPath(),f.stroke(),f.fillStyle="rgba("+i.textColor.r+","+i.textColor.g+","+i.textColor.b+","+e.o+")","number"==typeof e.n&&e.n>999?f.fillText((e.n>9999?9:Math.floor(e.n/1e3))+"k+",Math.floor(e.x+e.w/2),Math.floor(e.y+e.h-.2*e.h)):f.fillText(e.n,Math.floor(e.x+e.w/2),Math.floor(e.y+e.h-.15*e.h)),f.closePath()},A.rectangle=function(e){e=I(e);var t=!1;2===e.len?(e.x=e.x-.4*e.w,e.w=1.4*e.w,t=!0):e.len>=3&&(e.x=e.x-.65*e.w,e.w=1.65*e.w,t=!0),f.clearRect(0,0,s,l),f.drawImage(c,0,0,s,l),f.beginPath(),f.font=i.fontStyle+" "+Math.floor(e.h*(e.n>99?.9:1))+"px "+i.fontFamily,f.textAlign="center",f.fillStyle="rgba("+i.bgColor.r+","+i.bgColor.g+","+i.bgColor.b+","+e.o+")",f.fillRect(e.x,e.y,e.w,e.h),f.fillStyle="rgba("+i.textColor.r+","+i.textColor.g+","+i.textColor.b+","+e.o+")","number"==typeof e.n&&e.n>999?f.fillText((e.n>9999?9:Math.floor(e.n/1e3))+"k+",Math.floor(e.x+e.w/2),Math.floor(e.y+e.h-.2*e.h)):f.fillText(e.n,Math.floor(e.x+e.w/2),Math.floor(e.y+e.h-.15*e.h)),f.closePath()};var T=function(e,t){t=("string"==typeof t?{animation:t}:t)||{},w=function(){try{if("number"==typeof e?e>0:""!==e){var n={type:"badge",options:{n:e}};if("animation"in t&&S.types[""+t.animation]&&(n.options.animation=""+t.animation),"type"in t&&A[""+t.type]&&(n.options.type=""+t.type),["bgColor","textColor"].forEach(function(e){e in t&&(n.options[e]=o(t[e]))}),["fontStyle","fontFamily"].forEach(function(e){e in t&&(n.options[e]=t[e])}),C.push(n),C.length>100)throw new Error("Too many badges requests in queue.");M.start()}else M.reset()}catch(r){throw new Error("Error setting badge. Message: "+r.message)}},d&&w()},U=function(e){w=function(){try{var t=e.width,o=e.height,n=document.createElement("img"),r=o/l>t/s?t/s:o/l;n.setAttribute("crossOrigin","anonymous"),n.setAttribute("src",e.getAttribute("src")),n.height=o/r,n.width=t/r,f.clearRect(0,0,s,l),f.drawImage(n,0,0,s,l),O.setIcon(h)}catch(i){throw new Error("Error setting image. Message: "+i.message)}},d&&w()},R=function(e){w=function(){try{if("stop"===e)return g=!0,M.reset(),void(g=!1);e.addEventListener("play",function(){t(this)},!1)}catch(o){throw new Error("Error setting video. Message: "+o.message)}},d&&w()},L=function(e){if(window.URL&&window.URL.createObjectURL||(window.URL=window.URL||{},window.URL.createObjectURL=function(e){return e}),x.supported){var o=!1;navigator.getUserMedia=navigator.getUserMedia||navigator.oGetUserMedia||navigator.msGetUserMedia||navigator.mozGetUserMedia||navigator.webkitGetUserMedia,w=function(){try{if("stop"===e)return g=!0,M.reset(),void(g=!1);o=document.createElement("video"),o.width=s,o.height=l,navigator.getUserMedia({video:!0,audio:!1},function(e){o.src=URL.createObjectURL(e),o.play(),t(o)},function(){})}catch(n){throw new Error("Error setting webcam. Message: "+n.message)}},d&&w()}},O={};O.getIcon=function(){var e=!1,t=function(){for(var e=b.getElementsByTagName("head")[0].getElementsByTagName("link"),t=e.length,o=t-1;o>=0;o--)if(/(^|\s)icon(\s|$)/i.test(e[o].getAttribute("rel")))return e[o];return!1};return i.element?e=i.element:i.elementId?(e=b.getElementById(i.elementId),e.setAttribute("href",e.getAttribute("src"))):(e=t(),e===!1&&(e=b.createElement("link"),e.setAttribute("rel","icon"),b.getElementsByTagName("head")[0].appendChild(e))),e.setAttribute("type","image/png"),e},O.setIcon=function(e){var t=e.toDataURL("image/png");if(i.dataUrl&&i.dataUrl(t),i.element)i.element.setAttribute("href",t),i.element.setAttribute("src",t);else if(i.elementId){var o=b.getElementById(i.elementId);o.setAttribute("href",t),o.setAttribute("src",t)}else if(x.ff||x.opera){var n=a;a=b.createElement("link"),x.opera&&a.setAttribute("rel","icon"),a.setAttribute("rel","icon"),a.setAttribute("type","image/png"),b.getElementsByTagName("head")[0].appendChild(a),a.setAttribute("href",t),n.parentNode&&n.parentNode.removeChild(n)}else a.setAttribute("href",t)};var S={};return S.duration=40,S.types={},S.types.fade=[{x:.4,y:.4,w:.6,h:.6,o:0},{x:.4,y:.4,w:.6,h:.6,o:.1},{x:.4,y:.4,w:.6,h:.6,o:.2},{x:.4,y:.4,w:.6,h:.6,o:.3},{x:.4,y:.4,w:.6,h:.6,o:.4},{x:.4,y:.4,w:.6,h:.6,o:.5},{x:.4,y:.4,w:.6,h:.6,o:.6},{x:.4,y:.4,w:.6,h:.6,o:.7},{x:.4,y:.4,w:.6,h:.6,o:.8},{x:.4,y:.4,w:.6,h:.6,o:.9},{x:.4,y:.4,w:.6,h:.6,o:1}],S.types.none=[{x:.4,y:.4,w:.6,h:.6,o:1}],S.types.pop=[{x:1,y:1,w:0,h:0,o:1},{x:.9,y:.9,w:.1,h:.1,o:1},{x:.8,y:.8,w:.2,h:.2,o:1},{x:.7,y:.7,w:.3,h:.3,o:1},{x:.6,y:.6,w:.4,h:.4,o:1},{x:.5,y:.5,w:.5,h:.5,o:1},{x:.4,y:.4,w:.6,h:.6,o:1}],S.types.popFade=[{x:.75,y:.75,w:0,h:0,o:0},{x:.65,y:.65,w:.1,h:.1,o:.2},{x:.6,y:.6,w:.2,h:.2,o:.4},{x:.55,y:.55,w:.3,h:.3,o:.6},{x:.5,y:.5,w:.4,h:.4,o:.8},{x:.45,y:.45,w:.5,h:.5,o:.9},{x:.4,y:.4,w:.6,h:.6,o:1}],S.types.slide=[{x:.4,y:1,w:.6,h:.6,o:1},{x:.4,y:.9,w:.6,h:.6,o:1},{x:.4,y:.9,w:.6,h:.6,o:1},{x:.4,y:.8,w:.6,h:.6,o:1},{x:.4,y:.7,w:.6,h:.6,o:1},{x:.4,y:.6,w:.6,h:.6,o:1},{x:.4,y:.5,w:.6,h:.6,o:1},{x:.4,y:.4,w:.6,h:.6,o:1}],S.run=function(e,t,o,a){var l=S.types[r()?"none":i.animation];return a=o===!0?"undefined"!=typeof a?a:l.length-1:"undefined"!=typeof a?a:0,t=t?t:function(){},a<l.length&&a>=0?(A[i.type](n(e,l[a])),m=setTimeout(function(){o?a-=1:a+=1,S.run(e,t,o,a)},S.duration),O.setIcon(h),void 0):void t()},E(),{badge:T,video:R,image:U,webcam:L,reset:M.reset,browser:{supported:x.supported}}};"undefined"!=typeof define&&define.amd?define([],function(){return e}):"undefined"!=typeof module&&module.exports?module.exports=e:this.Favico=e}();
diff --git a/plugins/de.appplant.cordova.plugin.badge/src/ios/APPBadge.h b/plugins/de.appplant.cordova.plugin.badge/src/ios/APPBadge.h
deleted file mode 100644
index bf9a1e58..00000000
--- a/plugins/de.appplant.cordova.plugin.badge/src/ios/APPBadge.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2013-2015 by appPlant UG. All rights reserved.
- *
- * @APPPLANT_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apache License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://opensource.org/licenses/Apache-2.0/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPPLANT_LICENSE_HEADER_END@
- */
-
-#import <Foundation/Foundation.h>
-#import <Cordova/CDVPlugin.h>
-
-@interface APPBadge : CDVPlugin
-
-// Clears the badge of the app icon
-- (void) clearBadge:(CDVInvokedUrlCommand *)command;
-// Sets the badge of the app icon
-- (void) setBadge:(CDVInvokedUrlCommand *)command;
-// Gets the badge of the app icon
-- (void) getBadge:(CDVInvokedUrlCommand *)command;
-// Informs if the app has the permission to show badges
-- (void) hasPermission:(CDVInvokedUrlCommand *)command;
-// Register permission to show badges
-- (void) registerPermission:(CDVInvokedUrlCommand *)command;
-
-@end
diff --git a/plugins/de.appplant.cordova.plugin.badge/src/ios/APPBadge.m b/plugins/de.appplant.cordova.plugin.badge/src/ios/APPBadge.m
deleted file mode 100644
index e7db643f..00000000
--- a/plugins/de.appplant.cordova.plugin.badge/src/ios/APPBadge.m
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Copyright (c) 2013-2015 by appPlant UG. All rights reserved.
- *
- * @APPPLANT_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apache License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://opensource.org/licenses/Apache-2.0/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPPLANT_LICENSE_HEADER_END@
- */
-
-#import "APPBadge.h"
-#import "UIApplication+APPBadge.h"
-#import "AppDelegate+APPRegisterUserNotificationSettings.h"
-
-@interface APPBadge ()
-
-// Needed when calling `registerPermission`
-@property (nonatomic, retain) CDVInvokedUrlCommand* command;
-
-@end
-
-@implementation APPBadge
-
-#pragma mark -
-#pragma mark Interface
-
-/**
- * Clears the badge of the app icon.
- *
- */
-- (void) clearBadge:(CDVInvokedUrlCommand *)command
-{
- [self.commandDelegate runInBackground:^{
- [self.app setApplicationIconBadgeNumber:0];
-
- [self sendPluginResult:CDVCommandStatus_OK
- messageAsLong:0
- callbackId:command.callbackId];
- }];
-}
-
-/**
- * Sets the badge of the app icon.
- *
- * @param badge
- * The badge to be set
- */
-- (void) setBadge:(CDVInvokedUrlCommand *)command
-{
- NSArray* args = [command arguments];
- int number = [[args objectAtIndex:0] intValue];
-
- [self.commandDelegate runInBackground:^{
- [self.app setApplicationIconBadgeNumber:number];
-
- [self sendPluginResult:CDVCommandStatus_OK
- messageAsLong:number
- callbackId:command.callbackId];
- }];
-}
-
-/**
- * Gets the badge of the app icon.
- *
- * @param callback
- * The function to be exec as the callback
- */
-- (void) getBadge:(CDVInvokedUrlCommand *)command
-{
- [self.commandDelegate runInBackground:^{
- long badge = [self.app applicationIconBadgeNumber];
-
- [self sendPluginResult:CDVCommandStatus_OK
- messageAsLong:badge
- callbackId:command.callbackId];
- }];
-}
-
-/**
- * Informs if the app has the permission to show badges.
- *
- * @param callback
- * The function to be exec as the callback
- */
-- (void) hasPermission:(CDVInvokedUrlCommand *)command
-{
- [self.commandDelegate runInBackground:^{
- BOOL hasPermission = [self.app hasPermissionToDisplayBadges];
-
- [self sendPluginResult:CDVCommandStatus_OK
- messageAsBool:hasPermission
- callbackId:command.callbackId];
- }];
-}
-
-/**
- * Register permission to show badges.
- *
- * @param callback
- * The function to be exec as the callback
- */
-- (void) registerPermission:(CDVInvokedUrlCommand *)command
-{
- if (![[UIApplication sharedApplication]
- respondsToSelector:@selector(registerUserNotificationSettings:)])
- {
- return [self hasPermission:command];
- }
-
- _command = command;
-
- [self.commandDelegate runInBackground:^{
- [self.app registerPermissionToDisplayBadges];
- }];
-}
-
-#pragma mark -
-#pragma mark Delegates
-
-/**
- * Called on otification settings registration is completed.
- */
-- (void) didRegisterUserNotificationSettings:(UIUserNotificationSettings*)settings
-{
- if (_command)
- {
- [self hasPermission:_command];
- _command = NULL;
- }
-}
-
-#pragma mark -
-#pragma mark Life Cycle
-
-/**
- * Registers obervers after plugin was initialized.
- */
-- (void) pluginInitialize
-{
- NSNotificationCenter* center = [NSNotificationCenter
- defaultCenter];
-
- [center addObserver:self
- selector:@selector(didRegisterUserNotificationSettings:)
- name:UIApplicationRegisterUserNotificationSettings
- object:nil];
-}
-
-#pragma mark -
-#pragma mark Helper
-
-/**
- * Short hand for shared application instance.
- */
-- (UIApplication*) app
-{
- return [UIApplication sharedApplication];
-}
-
-/**
- * Sends a plugin result with the specified status and message.
- */
-- (void) sendPluginResult:(CDVCommandStatus)status
- messageAsBool:(BOOL)msg
- callbackId:(NSString*)callbackId
-{
- CDVPluginResult* result;
-
- result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK
- messageAsBool:msg];
-
- [self.commandDelegate sendPluginResult:result
- callbackId:callbackId];
-}
-
-/**
- * Sends a plugin result with the specified status and message.
- */
-- (void) sendPluginResult:(CDVCommandStatus)status
- messageAsLong:(long)msg
- callbackId:(NSString*)callbackId
-{
- CDVPluginResult* result;
-
- result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK
- messageAsDouble:msg];
-
- [self.commandDelegate sendPluginResult:result
- callbackId:callbackId];
-}
-
-@end
diff --git a/plugins/de.appplant.cordova.plugin.badge/src/ios/UIApplication+APPBadge.h b/plugins/de.appplant.cordova.plugin.badge/src/ios/UIApplication+APPBadge.h
deleted file mode 100644
index 9ce7f7e5..00000000
--- a/plugins/de.appplant.cordova.plugin.badge/src/ios/UIApplication+APPBadge.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2013-2015 by appPlant UG. All rights reserved.
- *
- * @APPPLANT_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apache License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://opensource.org/licenses/Apache-2.0/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPPLANT_LICENSE_HEADER_END@
- */
-
-@interface UIApplication (APPBadge)
-
-// If the app has the permission to display badges
-- (BOOL) hasPermissionToDisplayBadges;
-// Ask for permission to display badges
-- (void) registerPermissionToDisplayBadges;
-
-@end
diff --git a/plugins/de.appplant.cordova.plugin.badge/src/ios/UIApplication+APPBadge.m b/plugins/de.appplant.cordova.plugin.badge/src/ios/UIApplication+APPBadge.m
deleted file mode 100644
index 3e4cd99b..00000000
--- a/plugins/de.appplant.cordova.plugin.badge/src/ios/UIApplication+APPBadge.m
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2013-2015 by appPlant UG. All rights reserved.
- *
- * @APPPLANT_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apache License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://opensource.org/licenses/Apache-2.0/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPPLANT_LICENSE_HEADER_END@
- */
-
-#import "UIApplication+APPBadge.h"
-
-@implementation UIApplication (APPBadge)
-
-#pragma mark -
-#pragma mark Permissions
-
-/**
- * If the app has the permission to display badges.
- */
-- (BOOL) hasPermissionToDisplayBadges
-{
- if (![self respondsToRegisterUserNotificationSettings])
- return YES;
-
- UIUserNotificationSettings *settings;
-
- settings = [[UIApplication sharedApplication]
- currentUserNotificationSettings];
-
- return (settings.types & UIUserNotificationTypeBadge);
-}
-
-/**
- * Register permission to display badges.
- */
-- (void) registerPermissionToDisplayBadges
-{
- if (![self respondsToRegisterUserNotificationSettings])
- return;
-
- UIUserNotificationType types;
- UIUserNotificationSettings *settings;
-
- settings = [[UIApplication sharedApplication]
- currentUserNotificationSettings];
-
- types = settings.types | UIUserNotificationTypeBadge;
-
- settings = [UIUserNotificationSettings settingsForTypes:types
- categories:nil];
-
- [[UIApplication sharedApplication]
- registerUserNotificationSettings:settings];
-}
-
-#pragma mark -
-#pragma mark Helper methods
-
-/**
- * If UIApplication responds to seelctor registerUserNotificationSettings:
- *
- * @return
- * true for iOS8 and above
- */
-- (BOOL) respondsToRegisterUserNotificationSettings
-{
- return [[UIApplication sharedApplication]
- respondsToSelector:@selector(registerUserNotificationSettings:)];
-}
-
-@end
diff --git a/plugins/de.appplant.cordova.plugin.badge/src/windows/BadgeProxy.js b/plugins/de.appplant.cordova.plugin.badge/src/windows/BadgeProxy.js
deleted file mode 100644
index 33029f2c..00000000
--- a/plugins/de.appplant.cordova.plugin.badge/src/windows/BadgeProxy.js
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (c) 2013-2015 by appPlant UG. All rights reserved.
- *
- * @APPPLANT_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apache License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://opensource.org/licenses/Apache-2.0/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPPLANT_LICENSE_HEADER_END@
- */
-
-
-/**
- * Clears the badge of the app icon.
- *
- * @param {Function} success
- * Success callback
- * @param {Function} error
- * Error callback
- */
-exports.clearBadge = function (success, error) {
- exports.setBadge(success, error, [0]);
-};
-
-/**
- * Gets the badge of the app icon.
- *
- * @param {Function} success
- * Success callback
- * @param {Function} error
- * Error callback
- */
-exports.getBadge = function (success, error) {
- var app = WinJS.Application,
- file = exports._cordova_badge_number;
-
- app.local.exists(file).then(function (exists) {
- if (exists) {
- app.local.readText(file).then(function (badge) {
- success(isNaN(badge) ? badge : Number(badge));
- });
- } else {
- success(0);
- }
- });
-};
-
-/**
- * Informs if the app has the permission to show badges.
- *
- * @param {Function} success
- * Success callback
- * @param {Function} error
- * Error callback
- */
-exports.hasPermission = function (success, error) {
- success(true);
-};
-
-/**
- * Register permission to show badges if not already granted.
- *
- * @param {Function} success
- * Success callback
- * @param {Function} error
- * Error callback
- */
-exports.registerPermission = function (success, error) {
- exports.hasPermission(success, error);
-};
-
-/**
- * Sets the badge of the app icon.
- *
- * @param {Function} success
- * Success callback
- * @param {Function} error
- * Error callback
- * @param {Number} badge
- * The new badge number
- */
-exports.setBadge = function (success, error, args) {
- var notifications = Windows.UI.Notifications,
- badge = args[0],
- type = notifications.BadgeTemplateType.badgeNumber,
- xml = notifications.BadgeUpdateManager.getTemplateContent(type),
- attrs = xml.getElementsByTagName('badge'),
- notification = new notifications.BadgeNotification(xml);
-
- attrs[0].setAttribute('value', badge);
-
- notifications.BadgeUpdateManager
- .createBadgeUpdaterForApplication()
- .update(notification);
-
- exports._saveBadge(badge);
-
- success(badge);
-};
-
-
-/********
- * UTIL *
- ********/
-
-/**
- * Path to file that containes the badge number.
- * @type {String}
- */
-exports._cordova_badge_number = 'cordova_badge_number';
-
-/**
- * Persist the badge of the app icon so that `getBadge` is able to return the
- * badge number back to the client.
- *
- * @param {Number|String} badge
- * The badge number to save for.
- *
- * @return void
- */
-exports._saveBadge = function (badge) {
- WinJS.Application.local.writeText(exports._cordova_badge_number, badge);
-};
-
-
-cordova.commandProxy.add('Badge', exports);
diff --git a/plugins/de.appplant.cordova.plugin.badge/src/wp8/Badge.cs b/plugins/de.appplant.cordova.plugin.badge/src/wp8/Badge.cs
deleted file mode 100644
index eb384c38..00000000
--- a/plugins/de.appplant.cordova.plugin.badge/src/wp8/Badge.cs
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (c) 2013-2015 by appPlant UG. All rights reserved.
- *
- * @APPPLANT_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apache License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://opensource.org/licenses/Apache-2.0/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPPLANT_LICENSE_HEADER_END@
- */
-
-using System;
-using System.Linq;
-
-using Microsoft.Phone.Shell;
-
-using WPCordovaClassLib.Cordova;
-using WPCordovaClassLib.Cordova.Commands;
-using WPCordovaClassLib.Cordova.JSON;
-using System.IO.IsolatedStorage;
-
-namespace Cordova.Extension.Commands
-{
- public class Badge : BaseCommand
- {
-
- /// <summary>
- /// Name for the shared preferences
- /// <summary>
- private const string KEY = "badge";
-
- /// <summary>
- /// Clears the count property of the live tile
- /// </summary>
- public void clearBadge (string args)
- {
- setBadge(args);
- getBadge(args);
- }
-
- /// <summary>
- /// Sets the count property of the live tile
- /// </summary>
- public void setBadge (string args)
- {
- // Application Tile is always the first Tile, even if it is not pinned to Start.
- ShellTile tile = ShellTile.ActiveTiles.First();
-
- // Application should always be found
- if (tile != null)
- {
- string[] ary = JsonHelper.Deserialize<string[]>(args);
- int count = 0;
- string title = "";
-
- try {
- count = int.Parse(ary[0]);
- }
- catch (FormatException) { };
-
- if (ary.Length > 1)
- {
- title = ary[1].Replace("%d", "{0}");
- title = String.Format(title, count);
- }
-
- StandardTileData TileData = new StandardTileData
- {
- Count = count,
- BackTitle = title
- };
-
- SaveBadge(count);
-
- tile.Update(TileData);
- }
-
- getBadge(args);
- }
-
- /// <summary>
- /// Gets the count property of the live tile
- /// </summary>
- public void getBadge (string args)
- {
- // Application Tile is always the first Tile, even if it is not pinned to Start.
- ShellTile tile = ShellTile.ActiveTiles.First();
-
- // Application should always be found
- if (tile != null)
- {
- IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
- int badge = 0;
- PluginResult result;
-
- if (settings.Contains(KEY)) {
- badge = (int)settings[KEY];
- }
-
- result = new PluginResult(PluginResult.Status.OK, badge);
-
- DispatchCommandResult(result);
- }
- }
-
- /// <summery>
- /// Informs if the app has the permission to show badges.
- /// </summery>
- public void hasPermission (string args)
- {
- PluginResult result;
-
- result = new PluginResult(PluginResult.Status.OK, true);
-
- DispatchCommandResult(result);
- }
-
- /// <summery>
- /// Ask for permission to show badges.
- /// </summery>
- public void registerPermission (string args)
- {
- hasPermission(args);
- }
-
- /// <summary>
- /// Persist the badge of the app icon so that `getBadge` is able to return
- /// the badge number back to the client.
- /// </summary>
- private void SaveBadge (int badge)
- {
- IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
-
- if (settings.Contains(KEY)) {
- settings[KEY] = badge;
- }
- else {
- settings.Add(KEY, badge);
- }
- }
-
- }
-}