Commit 13af9eab by Sebastián Katzer

Update project and plugin

parent c4a5a7cb
......@@ -9,7 +9,6 @@
1D3623260D0F684500981E51 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* AppDelegate.m */; };
1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; };
2B870B58934F4834B8C16CE0 /* Toast+UIView.m in Sources */ = {isa = PBXBuildFile; fileRef = B2F14053AF194729A43D67A0 /* Toast+UIView.m */; };
301BF552109A68D80062928A /* libCordova.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 301BF535109A57CC0062928A /* libCordova.a */; };
302D95F114D2391D003F00A1 /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 302D95EF14D2391D003F00A1 /* MainViewController.m */; };
302D95F214D2391D003F00A1 /* MainViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 302D95F014D2391D003F00A1 /* MainViewController.xib */; };
......@@ -28,9 +27,7 @@
30B4F30219D5E07200D9F7D8 /* Default-Landscape-736h.png in Resources */ = {isa = PBXBuildFile; fileRef = 30B4F2FF19D5E07200D9F7D8 /* Default-Landscape-736h.png */; };
30C1856619D5FC0A00212699 /* icon-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 30C1856519D5FC0A00212699 /* icon-60@3x.png */; };
30FC414916E50CA1004E6F35 /* icon-72@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 30FC414816E50CA1004E6F35 /* icon-72@2x.png */; };
47E2A1EADBFB4652A12C2935 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7520DF444936462C8A4538DF /* QuartzCore.framework */; };
5B1594DD16A7569C00FEF299 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B1594DC16A7569C00FEF299 /* AssetsLibrary.framework */; };
67D68D300B774406836C6937 /* Toast.m in Sources */ = {isa = PBXBuildFile; fileRef = 35DBAE1D796C4C1097BA3F34 /* Toast.m */; };
7E7966DE1810823500FA85AD /* icon-40.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E7966D41810823500FA85AD /* icon-40.png */; };
7E7966DF1810823500FA85AD /* icon-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E7966D51810823500FA85AD /* icon-40@2x.png */; };
7E7966E01810823500FA85AD /* icon-50.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E7966D61810823500FA85AD /* icon-50.png */; };
......@@ -42,11 +39,14 @@
7E7966E61810823500FA85AD /* icon-small.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E7966DC1810823500FA85AD /* icon-small.png */; };
7E7966E71810823500FA85AD /* icon-small@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E7966DD1810823500FA85AD /* icon-small@2x.png */; };
D4A0D8761607E02300AEF8BB /* Default-568h@2x~iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = D4A0D8751607E02300AEF8BB /* Default-568h@2x~iphone.png */; };
0ABF00D3C28E4A4EA8DF3588 /* AppDelegate+APPLocalNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D7B695EE90E43E186119CF3 /* AppDelegate+APPLocalNotification.m */; };
BABA242993AC4E4FBAEC1565 /* APPLocalNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C303C0F69604DBCACF491D8 /* APPLocalNotification.m */; };
4CAF7116135543BF8E4CB2BC /* APPLocalNotificationOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = A4711F93A8C54855AC0D63F3 /* APPLocalNotificationOptions.m */; };
B3ED415B28C449B890F094AE /* UIApplication+APPLocalNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 234951ADB1D54463B29EA815 /* UIApplication+APPLocalNotification.m */; };
6EC674C75C144EF8815705C1 /* UILocalNotification+APPLocalNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DE9C655C97A4FBDB8369939 /* UILocalNotification+APPLocalNotification.m */; };
3311FE6F740C4E61B4062834 /* CDVDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = E44647A1A9E44070A483ABAE /* CDVDevice.m */; };
B05FD4050A8049DD95D3B0A4 /* APPLocalNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = FF94CC0869014D94864987A3 /* APPLocalNotification.m */; };
B3094EF611C545D69C6CAFB1 /* APPLocalNotificationOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E94A154193F45808ED4A20E /* APPLocalNotificationOptions.m */; };
26BE57B20E1949D089D5EF06 /* UIApplication+APPLocalNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 38328F7FE48047AD90611624 /* UIApplication+APPLocalNotification.m */; };
BEF8E5A4C44E40049E9A638E /* UILocalNotification+APPLocalNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 643825E01BE6429D957BC5E9 /* UILocalNotification+APPLocalNotification.m */; };
9AF00F0BC0694C408D82918E /* Toast+UIView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C1FEB7986764F8D80C9460D /* Toast+UIView.m */; };
345E79E8B29A4BC0911A1AD9 /* Toast.m in Sources */ = {isa = PBXBuildFile; fileRef = 73FFCCD6DE0C4F41A5CD8A42 /* Toast.m */; };
3EC215006CC74A65BB090187 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 47EB2B35CA524D62A59BD0CD /* QuartzCore.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
......@@ -67,10 +67,11 @@
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
1C14DEE795484755B6723DFD /* Toast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Toast.h; path = "nl.x-services.plugins.toast/Toast.h"; sourceTree = "<group>"; };
1D3623240D0F684500981E51 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
1D3623250D0F684500981E51 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
1D6058910D05DD3D006BFB54 /* NotificationExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NotificationExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
1D6058910D05DD3D006BFB54 /* NotificationExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "NotificationExample.app"; sourceTree = BUILT_PRODUCTS_DIR; };
1F766FDD13BBADB100FB74C0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = Localizable.strings; sourceTree = "<group>"; };
1F766FE013BBADB100FB74C0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = Localizable.strings; sourceTree = "<group>"; };
288765FC0DF74451002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
301BF52D109A57CC0062928A /* CordovaLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CordovaLib.xcodeproj; path = CordovaLib/CordovaLib.xcodeproj; sourceTree = "<group>"; };
......@@ -94,12 +95,7 @@
30C1856519D5FC0A00212699 /* icon-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-60@3x.png"; sourceTree = "<group>"; };
30FC414816E50CA1004E6F35 /* icon-72@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-72@2x.png"; sourceTree = "<group>"; };
32CA4F630368D1EE00C91783 /* NotificationExample-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NotificationExample-Prefix.pch"; sourceTree = "<group>"; };
35DBAE1D796C4C1097BA3F34 /* Toast.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Toast.m; path = "nl.x-services.plugins.toast/Toast.m"; sourceTree = "<group>"; };
4C08CF6F59714918A3E2582D /* CDVDevice.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CDVDevice.m; path = org.apache.cordova.device/CDVDevice.m; sourceTree = "<group>"; };
5440C6C204204645B5A21732 /* CDVDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CDVDevice.h; path = org.apache.cordova.device/CDVDevice.h; sourceTree = "<group>"; };
5B1594DC16A7569C00FEF299 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; };
6372C9BBDB554D6DB471C786 /* Toast+UIView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "Toast+UIView.h"; path = "nl.x-services.plugins.toast/Toast+UIView.h"; sourceTree = "<group>"; };
7520DF444936462C8A4538DF /* QuartzCore.framework */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
7E7966D41810823500FA85AD /* icon-40.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-40.png"; sourceTree = "<group>"; };
7E7966D51810823500FA85AD /* icon-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-40@2x.png"; sourceTree = "<group>"; };
7E7966D61810823500FA85AD /* icon-50.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-50.png"; sourceTree = "<group>"; };
......@@ -111,21 +107,26 @@
7E7966DC1810823500FA85AD /* icon-small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-small.png"; sourceTree = "<group>"; };
7E7966DD1810823500FA85AD /* icon-small@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-small@2x.png"; sourceTree = "<group>"; };
8D1107310486CEB800E47090 /* NotificationExample-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "NotificationExample-Info.plist"; path = "../NotificationExample-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; };
B2F14053AF194729A43D67A0 /* Toast+UIView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "Toast+UIView.m"; path = "nl.x-services.plugins.toast/Toast+UIView.m"; sourceTree = "<group>"; };
D4A0D8751607E02300AEF8BB /* Default-568h@2x~iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x~iphone.png"; sourceTree = "<group>"; };
EB87FDF21871DA7A0020F90C /* merges */ = {isa = PBXFileReference; lastKnownFileType = folder; name = merges; path = ../../merges; sourceTree = "<group>"; };
EB87FDF31871DA8E0020F90C /* www */ = {isa = PBXFileReference; lastKnownFileType = folder; name = www; path = ../../www; sourceTree = "<group>"; };
EB87FDF41871DAF40020F90C /* config.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = config.xml; path = ../../config.xml; sourceTree = "<group>"; };
F840E1F0165FE0F500CFE078 /* config.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = config.xml; path = NotificationExample/config.xml; sourceTree = "<group>"; };
8D7B695EE90E43E186119CF3 /* AppDelegate+APPLocalNotification.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "AppDelegate+APPLocalNotification.m"; path = "de.appplant.cordova.plugin.local-notification/AppDelegate+APPLocalNotification.m"; sourceTree = "<group>"; fileEncoding = 4; };
9C303C0F69604DBCACF491D8 /* APPLocalNotification.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "APPLocalNotification.m"; path = "de.appplant.cordova.plugin.local-notification/APPLocalNotification.m"; sourceTree = "<group>"; fileEncoding = 4; };
A4711F93A8C54855AC0D63F3 /* APPLocalNotificationOptions.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "APPLocalNotificationOptions.m"; path = "de.appplant.cordova.plugin.local-notification/APPLocalNotificationOptions.m"; sourceTree = "<group>"; fileEncoding = 4; };
234951ADB1D54463B29EA815 /* UIApplication+APPLocalNotification.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "UIApplication+APPLocalNotification.m"; path = "de.appplant.cordova.plugin.local-notification/UIApplication+APPLocalNotification.m"; sourceTree = "<group>"; fileEncoding = 4; };
3DE9C655C97A4FBDB8369939 /* UILocalNotification+APPLocalNotification.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "UILocalNotification+APPLocalNotification.m"; path = "de.appplant.cordova.plugin.local-notification/UILocalNotification+APPLocalNotification.m"; sourceTree = "<group>"; fileEncoding = 4; };
E3F2E04ADBF64CC49A6A0992 /* AppDelegate+APPLocalNotification.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "AppDelegate+APPLocalNotification.h"; path = "de.appplant.cordova.plugin.local-notification/AppDelegate+APPLocalNotification.h"; sourceTree = "<group>"; fileEncoding = 4; };
7760C0602B9B42138D540B3C /* APPLocalNotification.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "APPLocalNotification.h"; path = "de.appplant.cordova.plugin.local-notification/APPLocalNotification.h"; sourceTree = "<group>"; fileEncoding = 4; };
05AFA6F81A664202ADA70FE6 /* APPLocalNotificationOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "APPLocalNotificationOptions.h"; path = "de.appplant.cordova.plugin.local-notification/APPLocalNotificationOptions.h"; sourceTree = "<group>"; fileEncoding = 4; };
1BC567AC490341299730BDD3 /* UIApplication+APPLocalNotification.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "UIApplication+APPLocalNotification.h"; path = "de.appplant.cordova.plugin.local-notification/UIApplication+APPLocalNotification.h"; sourceTree = "<group>"; fileEncoding = 4; };
CDD77E3BE67E48388435D620 /* UILocalNotification+APPLocalNotification.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "UILocalNotification+APPLocalNotification.h"; path = "de.appplant.cordova.plugin.local-notification/UILocalNotification+APPLocalNotification.h"; sourceTree = "<group>"; fileEncoding = 4; };
F840E1F0165FE0F500CFE078 /* config.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = config.xml; path = "NotificationExample/config.xml"; sourceTree = "<group>"; };
E44647A1A9E44070A483ABAE /* CDVDevice.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "CDVDevice.m"; path = "org.apache.cordova.device/CDVDevice.m"; sourceTree = "<group>"; fileEncoding = 4; };
3471FA8FC7F847CCABBCB926 /* CDVDevice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "CDVDevice.h"; path = "org.apache.cordova.device/CDVDevice.h"; sourceTree = "<group>"; fileEncoding = 4; };
FF94CC0869014D94864987A3 /* APPLocalNotification.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "APPLocalNotification.m"; path = "de.appplant.cordova.plugin.local-notification/APPLocalNotification.m"; sourceTree = "<group>"; fileEncoding = 4; };
2E94A154193F45808ED4A20E /* APPLocalNotificationOptions.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "APPLocalNotificationOptions.m"; path = "de.appplant.cordova.plugin.local-notification/APPLocalNotificationOptions.m"; sourceTree = "<group>"; fileEncoding = 4; };
38328F7FE48047AD90611624 /* UIApplication+APPLocalNotification.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "UIApplication+APPLocalNotification.m"; path = "de.appplant.cordova.plugin.local-notification/UIApplication+APPLocalNotification.m"; sourceTree = "<group>"; fileEncoding = 4; };
643825E01BE6429D957BC5E9 /* UILocalNotification+APPLocalNotification.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "UILocalNotification+APPLocalNotification.m"; path = "de.appplant.cordova.plugin.local-notification/UILocalNotification+APPLocalNotification.m"; sourceTree = "<group>"; fileEncoding = 4; };
425ABDA4390E47109EAF6ED9 /* APPLocalNotification.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "APPLocalNotification.h"; path = "de.appplant.cordova.plugin.local-notification/APPLocalNotification.h"; sourceTree = "<group>"; fileEncoding = 4; };
D5BB49CB35A6417FBB330C45 /* APPLocalNotificationOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "APPLocalNotificationOptions.h"; path = "de.appplant.cordova.plugin.local-notification/APPLocalNotificationOptions.h"; sourceTree = "<group>"; fileEncoding = 4; };
EA448103D2324A9FB165BB1D /* UIApplication+APPLocalNotification.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "UIApplication+APPLocalNotification.h"; path = "de.appplant.cordova.plugin.local-notification/UIApplication+APPLocalNotification.h"; sourceTree = "<group>"; fileEncoding = 4; };
B0D77DF8D3E94A2D97710847 /* UILocalNotification+APPLocalNotification.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "UILocalNotification+APPLocalNotification.h"; path = "de.appplant.cordova.plugin.local-notification/UILocalNotification+APPLocalNotification.h"; sourceTree = "<group>"; fileEncoding = 4; };
6C1FEB7986764F8D80C9460D /* Toast+UIView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "Toast+UIView.m"; path = "nl.x-services.plugins.toast/Toast+UIView.m"; sourceTree = "<group>"; fileEncoding = 4; };
73FFCCD6DE0C4F41A5CD8A42 /* Toast.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "Toast.m"; path = "nl.x-services.plugins.toast/Toast.m"; sourceTree = "<group>"; fileEncoding = 4; };
49974152A0EA4CEE8C46D9A5 /* Toast+UIView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "Toast+UIView.h"; path = "nl.x-services.plugins.toast/Toast+UIView.h"; sourceTree = "<group>"; fileEncoding = 4; };
422DA32284B54A2FA7DF8E04 /* Toast.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "Toast.h"; path = "nl.x-services.plugins.toast/Toast.h"; sourceTree = "<group>"; fileEncoding = 4; };
47EB2B35CA524D62A59BD0CD /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "QuartzCore.framework"; path = "System/Library/Frameworks/QuartzCore.framework"; sourceTree = SDKROOT; fileEncoding = 4; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
......@@ -137,7 +138,7 @@
301BF552109A68D80062928A /* libCordova.a in Frameworks */,
288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */,
305D5FD1115AB8F900A74A75 /* MobileCoreServices.framework in Frameworks */,
47E2A1EADBFB4652A12C2935 /* QuartzCore.framework in Frameworks */,
3EC215006CC74A65BB090187 /* QuartzCore.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
......@@ -154,7 +155,7 @@
1D3623250D0F684500981E51 /* AppDelegate.m */,
);
name = Classes;
path = NotificationExample/Classes;
path = "NotificationExample/Classes";
sourceTree = SOURCE_ROOT;
};
19C28FACFE9D520D11CA2CBB /* Products */ = {
......@@ -170,6 +171,7 @@
children = (
EB87FDF41871DAF40020F90C /* config.xml */,
EB87FDF31871DA8E0020F90C /* www */,
EB87FDF21871DA7A0020F90C /* merges */,
EB87FDF11871DA420020F90C /* Staging */,
301BF52D109A57CC0062928A /* CordovaLib.xcodeproj */,
080E96DDFE201D6D7F000001 /* Classes */,
......@@ -189,7 +191,7 @@
29B97316FDCFA39411CA2CEA /* main.m */,
);
name = "Other Sources";
path = NotificationExample;
path = "NotificationExample";
sourceTree = "<group>";
};
29B97317FDCFA39411CA2CEA /* Resources */ = {
......@@ -200,7 +202,7 @@
8D1107310486CEB800E47090 /* NotificationExample-Info.plist */,
);
name = Resources;
path = NotificationExample/Resources;
path = "NotificationExample/Resources";
sourceTree = "<group>";
};
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
......@@ -209,7 +211,7 @@
5B1594DC16A7569C00FEF299 /* AssetsLibrary.framework */,
288765FC0DF74451002DB57D /* CoreGraphics.framework */,
305D5FD0115AB8F900A74A75 /* MobileCoreServices.framework */,
7520DF444936462C8A4538DF /* QuartzCore.framework */,
47EB2B35CA524D62A59BD0CD /* QuartzCore.framework */,
);
name = Frameworks;
sourceTree = "<group>";
......@@ -225,25 +227,23 @@
307C750510C5A3420062BCA9 /* Plugins */ = {
isa = PBXGroup;
children = (
4C08CF6F59714918A3E2582D /* CDVDevice.m */,
5440C6C204204645B5A21732 /* CDVDevice.h */,
B2F14053AF194729A43D67A0 /* Toast+UIView.m */,
35DBAE1D796C4C1097BA3F34 /* Toast.m */,
6372C9BBDB554D6DB471C786 /* Toast+UIView.h */,
1C14DEE795484755B6723DFD /* Toast.h */,
8D7B695EE90E43E186119CF3 /* AppDelegate+APPLocalNotification.m */,
9C303C0F69604DBCACF491D8 /* APPLocalNotification.m */,
A4711F93A8C54855AC0D63F3 /* APPLocalNotificationOptions.m */,
234951ADB1D54463B29EA815 /* UIApplication+APPLocalNotification.m */,
3DE9C655C97A4FBDB8369939 /* UILocalNotification+APPLocalNotification.m */,
E3F2E04ADBF64CC49A6A0992 /* AppDelegate+APPLocalNotification.h */,
7760C0602B9B42138D540B3C /* APPLocalNotification.h */,
05AFA6F81A664202ADA70FE6 /* APPLocalNotificationOptions.h */,
1BC567AC490341299730BDD3 /* UIApplication+APPLocalNotification.h */,
CDD77E3BE67E48388435D620 /* UILocalNotification+APPLocalNotification.h */,
E44647A1A9E44070A483ABAE /* CDVDevice.m */,
3471FA8FC7F847CCABBCB926 /* CDVDevice.h */,
FF94CC0869014D94864987A3 /* APPLocalNotification.m */,
2E94A154193F45808ED4A20E /* APPLocalNotificationOptions.m */,
38328F7FE48047AD90611624 /* UIApplication+APPLocalNotification.m */,
643825E01BE6429D957BC5E9 /* UILocalNotification+APPLocalNotification.m */,
425ABDA4390E47109EAF6ED9 /* APPLocalNotification.h */,
D5BB49CB35A6417FBB330C45 /* APPLocalNotificationOptions.h */,
EA448103D2324A9FB165BB1D /* UIApplication+APPLocalNotification.h */,
B0D77DF8D3E94A2D97710847 /* UILocalNotification+APPLocalNotification.h */,
6C1FEB7986764F8D80C9460D /* Toast+UIView.m */,
73FFCCD6DE0C4F41A5CD8A42 /* Toast.m */,
49974152A0EA4CEE8C46D9A5 /* Toast+UIView.h */,
422DA32284B54A2FA7DF8E04 /* Toast.h */,
);
name = Plugins;
path = NotificationExample/Plugins;
path = "NotificationExample/Plugins";
sourceTree = SOURCE_ROOT;
};
308D052D1370CCF300D202BF /* icons */ = {
......@@ -311,8 +311,8 @@
dependencies = (
301BF551109A68C00062928A /* PBXTargetDependency */,
);
name = NotificationExample;
productName = NotificationExample;
name = "NotificationExample";
productName = "NotificationExample";
productReference = 1D6058910D05DD3D006BFB54 /* NotificationExample.app */;
productType = "com.apple.product-type.application";
};
......@@ -324,7 +324,7 @@
attributes = {
LastUpgradeCheck = 510;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "NotificationExample" */;
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "__CLI__" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
......@@ -425,13 +425,13 @@
1D60589B0D05DD56006BFB54 /* main.m in Sources */,
1D3623260D0F684500981E51 /* AppDelegate.m in Sources */,
302D95F114D2391D003F00A1 /* MainViewController.m in Sources */,
2B870B58934F4834B8C16CE0 /* Toast+UIView.m in Sources */,
67D68D300B774406836C6937 /* Toast.m in Sources */,
0ABF00D3C28E4A4EA8DF3588 /* AppDelegate+APPLocalNotification.m in Sources */,
BABA242993AC4E4FBAEC1565 /* APPLocalNotification.m in Sources */,
4CAF7116135543BF8E4CB2BC /* APPLocalNotificationOptions.m in Sources */,
B3ED415B28C449B890F094AE /* UIApplication+APPLocalNotification.m in Sources */,
6EC674C75C144EF8815705C1 /* UILocalNotification+APPLocalNotification.m in Sources */,
3311FE6F740C4E61B4062834 /* CDVDevice.m in Sources */,
B05FD4050A8049DD95D3B0A4 /* APPLocalNotification.m in Sources */,
B3094EF611C545D69C6CAFB1 /* APPLocalNotificationOptions.m in Sources */,
26BE57B20E1949D089D5EF06 /* UIApplication+APPLocalNotification.m in Sources */,
BEF8E5A4C44E40049E9A638E /* UILocalNotification+APPLocalNotification.m in Sources */,
9AF00F0BC0694C408D82918E /* Toast+UIView.m in Sources */,
345E79E8B29A4BC0911A1AD9 /* Toast.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
......@@ -472,7 +472,7 @@
"-weak-lSystem",
"-ObjC",
);
PRODUCT_NAME = NotificationExample;
PRODUCT_NAME = "NotificationExample";
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
......@@ -501,7 +501,7 @@
"-weak-lSystem",
"-ObjC",
);
PRODUCT_NAME = NotificationExample;
PRODUCT_NAME = "NotificationExample";
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
......@@ -605,7 +605,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
C01FCF4E08A954540054247B /* Build configuration list for PBXProject "NotificationExample" */ = {
C01FCF4E08A954540054247B /* Build configuration list for PBXProject "__CLI__" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C01FCF4F08A954540054247B /* Debug */,
......
......@@ -5,7 +5,7 @@
<key>IDESourceControlProjectFavoriteDictionaryKey</key>
<false/>
<key>IDESourceControlProjectIdentifier</key>
<string>AFAFE068-92EA-475E-8783-6E5FC17A7188</string>
<string>A63F5FF5-C059-403D-81B9-E740110FFC25</string>
<key>IDESourceControlProjectName</key>
<string>NotificationExample</string>
<key>IDESourceControlProjectOriginsDictionary</key>
......
......@@ -29,6 +29,8 @@
#import <Cordova/CDVViewController.h>
extern NSString* const UIApplicationRegisterUserNotificationSettings;
@interface AppDelegate : NSObject <UIApplicationDelegate>{}
// invoke string is passed to your app on launch, this is only valid if you
......
......@@ -30,6 +30,8 @@
#import <Cordova/CDVPlugin.h>
NSString* const UIApplicationRegisterUserNotificationSettings = @"UIApplicationRegisterUserNotificationSettings";
@implementation AppDelegate
@synthesize window, viewController;
......@@ -148,4 +150,18 @@
[[NSURLCache sharedURLCache] removeAllCachedResponses];
}
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000
- (void) application:(UIApplication*)application
didRegisterUserNotificationSettings:(UIUserNotificationSettings*)settings
{
NSNotificationCenter* center = [NSNotificationCenter
defaultCenter];
// re-post (broadcast)
[center postNotificationName:UIApplicationRegisterUserNotificationSettings
object:settings];
}
#endif
@end
......@@ -49,7 +49,7 @@
</dict>
</dict>
<key>CFBundleIdentifier</key>
<string>de.appplant.cordova.plugin.local-notification.example</string>
<string>de.appplant.localnotification.example</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
......
......@@ -21,9 +21,9 @@
* @APPPLANT_LICENSE_HEADER_END@
*/
#import "AppDelegate.h"
#import "APPLocalNotification.h"
#import "APPLocalNotificationOptions.h"
#import "AppDelegate+APPLocalNotification.h"
#import "UIApplication+APPLocalNotification.h"
#import "UILocalNotification+APPLocalNotification.h"
......
/*
* 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 "AppDelegate.h"
#import <Availability.h>
extern NSString* const UIApplicationRegisterUserNotificationSettings;
@interface AppDelegate (APPLocalNotification)
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000
// Tells the delegate what types of notifications may be used
- (void) application:(UIApplication*)application
didRegisterUserNotificationSettings:(UIUserNotificationSettings*)settings;
#endif
@end
/*
* 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 "AppDelegate+APPLocalNotification.h"
#import <Availability.h>
NSString* const UIApplicationRegisterUserNotificationSettings = @"UIApplicationRegisterUserNotificationSettings";
@implementation AppDelegate (APPLocalNotification)
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000
/**
* Tells the delegate what types of notifications may be used
* to get the user’s attention.
*/
- (void) application:(UIApplication*)application
didRegisterUserNotificationSettings:(UIUserNotificationSettings*)settings
{
NSNotificationCenter* center = [NSNotificationCenter
defaultCenter];
// re-post (broadcast)
[center postNotificationName:UIApplicationRegisterUserNotificationSettings
object:settings];
}
#endif
@end
......@@ -62,7 +62,10 @@
UIUserNotificationType types;
UIUserNotificationSettings *settings;
types = UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound;
settings = [[UIApplication sharedApplication]
currentUserNotificationSettings];
types = settings.types|UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound;
settings = [UIUserNotificationSettings settingsForTypes:types
categories:nil];
......
<?xml version='1.0' encoding='utf-8'?>
<widget id="de.appplant.cordova.plugin.local-notification.example" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<widget id="de.appplant.localnotification.example" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<preference name="AllowInlineMediaPlayback" value="false" />
<preference name="BackupWebStorage" value="cloud" />
<preference name="DisallowOverscroll" value="false" />
......@@ -23,9 +23,6 @@
</author>
<content src="index.html" />
<access origin="*" />
<feature name="Toast">
<param name="ios-package" value="Toast" />
</feature>
<feature name="Device">
<param name="ios-package" value="CDVDevice" />
</feature>
......@@ -33,4 +30,7 @@
<param name="ios-package" onload="true" value="APPLocalNotification" />
<param name="onload" value="true" />
</feature>
<feature name="Toast">
<param name="ios-package" value="Toast" />
</feature>
</widget>
cordova.define('cordova/plugin_list', function(require, exports, module) {
module.exports = [
{
"file": "plugins/nl.x-services.plugins.toast/www/Toast.js",
"id": "nl.x-services.plugins.toast.Toast",
"clobbers": [
"window.plugins.toast"
]
},
{
"file": "plugins/nl.x-services.plugins.toast/test/tests.js",
"id": "nl.x-services.plugins.toast.tests"
},
{
"file": "plugins/de.appplant.cordova.plugin.local-notification/www/local-notification.js",
"id": "de.appplant.cordova.plugin.local-notification.LocalNotification",
"clobbers": [
......@@ -36,6 +25,17 @@ module.exports = [
]
},
{
"file": "plugins/nl.x-services.plugins.toast/www/Toast.js",
"id": "nl.x-services.plugins.toast.Toast",
"clobbers": [
"window.plugins.toast"
]
},
{
"file": "plugins/nl.x-services.plugins.toast/test/tests.js",
"id": "nl.x-services.plugins.toast.tests"
},
{
"file": "plugins/org.apache.cordova.device/www/device.js",
"id": "org.apache.cordova.device.device",
"clobbers": [
......@@ -46,8 +46,8 @@ module.exports = [
module.exports.metadata =
// TOP OF METADATA
{
"nl.x-services.plugins.toast": "2.0.3",
"de.appplant.cordova.plugin.local-notification": "0.8.2dev",
"nl.x-services.plugins.toast": "2.0.3",
"org.apache.cordova.device": "0.3.0"
}
// BOTTOM OF METADATA
......
......@@ -2,5 +2,6 @@
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ReferenceCachePath>C:\Users\sebastian\AppData\Local\Temp\yxmokjnx_CordovaApp.Phone_refcache</ReferenceCachePath>
<AutoRefresh>true</AutoRefresh>
</PropertyGroup>
</Project>
\ No newline at end of file
......@@ -41,7 +41,7 @@
</Resources>
<Applications>
<Application Id="de.appplant.localnotification.example" StartPage="www/index.html">
<m3:VisualElements DisplayName="NotificationExample" Square150x150Logo="images\Square150x150Logo.png" Square44x44Logo="images\Square44x44Logo.png" Description="CordovaApp" ForegroundText="light" BackgroundColor="transparent" ToastCapable="true">
<m3:VisualElements ToastCapable="true" DisplayName="NotificationExample" Square150x150Logo="images\Square150x150Logo.png" Square44x44Logo="images\Square44x44Logo.png" Description="CordovaApp" ForegroundText="light" BackgroundColor="transparent">
<m3:DefaultTile Wide310x150Logo="images\Wide310x150Logo.png" Square71x71Logo="images\Square71x71Logo.png">
<m3:ShowNameOnTiles>
<m3:ShowOn Tile="square150x150Logo" />
......
......@@ -34,7 +34,7 @@
</Resources>
<Applications>
<Application Id="de.appplant.localnotification.example" StartPage="www/index.html">
<m3:VisualElements DisplayName="NotificationExample" Square150x150Logo="images\Square150x150Logo.png" Square44x44Logo="images\Square44x44Logo.png" Description="CordovaApp" ForegroundText="light" BackgroundColor="transparent" ToastCapable="true">
<m3:VisualElements ToastCapable="true" DisplayName="NotificationExample" Square150x150Logo="images\Square150x150Logo.png" Square44x44Logo="images\Square44x44Logo.png" Description="CordovaApp" ForegroundText="light" BackgroundColor="transparent">
<m3:DefaultTile Wide310x150Logo="images\Wide310x150Logo.png" Square71x71Logo="images\Square71x71Logo.png">
<m3:ShowNameOnTiles>
<m3:ShowOn Tile="square150x150Logo" />
......
cordova.define('cordova/plugin_list', function(require, exports, module) {
module.exports = [
{
"file": "plugins/nl.x-services.plugins.toast/www/Toast.js",
"id": "nl.x-services.plugins.toast.Toast",
"clobbers": [
"window.plugins.toast"
]
},
{
"file": "plugins/nl.x-services.plugins.toast/test/tests.js",
"id": "nl.x-services.plugins.toast.tests"
},
{
"file": "plugins/de.appplant.cordova.plugin.local-notification/www/local-notification.js",
"id": "de.appplant.cordova.plugin.local-notification.LocalNotification",
"clobbers": [
......@@ -46,17 +57,6 @@ module.exports = [
]
},
{
"file": "plugins/nl.x-services.plugins.toast/www/Toast.js",
"id": "nl.x-services.plugins.toast.Toast",
"clobbers": [
"window.plugins.toast"
]
},
{
"file": "plugins/nl.x-services.plugins.toast/test/tests.js",
"id": "nl.x-services.plugins.toast.tests"
},
{
"file": "plugins/org.apache.cordova.device/www/device.js",
"id": "org.apache.cordova.device.device",
"clobbers": [
......@@ -74,8 +74,8 @@ module.exports = [
module.exports.metadata =
// TOP OF METADATA
{
"de.appplant.cordova.plugin.local-notification": "0.8.2dev",
"nl.x-services.plugins.toast": "2.0.3",
"de.appplant.cordova.plugin.local-notification": "0.8.2dev",
"org.apache.cordova.device": "0.3.0"
}
// BOTTOM OF METADATA
......
......@@ -32,14 +32,12 @@ exports.core = {
*/
deviceready: function () {
var plugin = cordova.plugins.notification.local,
args;
events = this.eventQueue;
this.isReady = true;
for (var i = 0; i < this.eventQueue.length; i++) {
args = this.eventQueue[i];
plugin.fireEvent.apply(plugin, args);
for (var i = 0; i < events.length; i++) {
plugin.fireEvent.apply(plugin, events[i]);
}
this.eventQueue = [];
......@@ -64,10 +62,8 @@ exports.core = {
notification = this.build(options);
this.cancelLocalNotification(options.id);
this.scheduleLocalNotification(notification, options);
this.scheduleBackupNotification(notification, options);
this.fireEvent('schedule', options);
this.callOnTrigger(options, triggerFn);
}
......@@ -147,18 +143,6 @@ exports.core = {
},
/**
* Updates a single local notification.
*
* @param {Object} notification
* The local notification
* @param {Object} updates
* Updated properties
*/
updateLocalNotification: function (notification, updates) {
},
/**
* Updates existing notifications specified by IDs in options.
*
* @param {Object[]} notifications
......@@ -175,6 +159,23 @@ exports.core = {
},
/**
* Updates a single local notification.
*
* @param {Object} notification
* The local notification
* @param {Object} updates
* Updated properties
*/
updateLocalNotification: function (notification, updates) {
for (var key in updates) {
notification[key] = updates[key];
}
this.cancelLocalNotification(notification.id);
this.scheduleLocalNotification(notification);
},
/**
* Clears the specified notifications.
*
* @param {int[]} ids
......@@ -182,9 +183,10 @@ exports.core = {
*/
clear: function (ids) {
for (var i = 0; i < ids.length; i++) {
var notification = this.getAll([id])[0];
var id = ids[i],
notification = this.getAll([id])[0];
this.clearLocalNotification(ids[i]);
this.clearLocalNotification(id);
this.fireEvent('clear', notification);
}
},
......@@ -196,8 +198,13 @@ exports.core = {
* Local notification ID
*/
clearLocalNotification: function (id) {
var notification = this.getAll([id])[0];
this.getToastHistory().remove('Toast' + id);
if (this.isRepeating(notification))
return;
if (this.isTriggered(id) && !this.isScheduled(id)) {
this.cancelLocalNotification(id);
}
......@@ -225,7 +232,8 @@ exports.core = {
*/
cancel: function (ids) {
for (var i = 0; i < ids.length; i++) {
var notification = this.getAll([id])[0];
var id = ids[i],
notification = this.getAll([id])[0];
this.cancelLocalNotification(ids[i]);
this.fireEvent('cancel', notification);
......@@ -275,7 +283,7 @@ exports.core = {
* Local notification ID
*/
isPresent: function (id) {
return this.getAllIds().indexOf(id) > -1;
return !!this.findToastById(id);
},
/**
......@@ -285,7 +293,9 @@ exports.core = {
* Local notification ID
*/
isScheduled: function (id) {
return this.getScheduledIds().indexOf(id) > -1;
var toast = this.findToastById(id);
return toast && this.isToastScheduled(toast);
},
/**
......@@ -295,7 +305,9 @@ exports.core = {
* Local notification ID
*/
isTriggered: function (id) {
return this.getTriggeredIds().indexOf(id) > -1;
var toast = this.findToastById(id);
return toast && this.isToastTriggered(toast);
},
/**
......@@ -365,7 +377,7 @@ exports.core = {
var toasts = this.getScheduledToasts(),
notifications = [];
if (ids.length === 0) {
if (!ids || ids.length === 0) {
ids = this.getAllIds();
}
......@@ -392,7 +404,7 @@ exports.core = {
* List of local notification IDs
*/
getScheduled: function (ids) {
if (ids.length === 0) {
if (!ids || ids.length === 0) {
ids = this.getAllIds();
}
......@@ -407,7 +419,7 @@ exports.core = {
* List of local notification IDs
*/
getTriggered: function (ids) {
if (ids.length === 0) {
if (!ids || ids.length === 0) {
ids = this.getAllIds();
}
......
......@@ -19,6 +19,9 @@ cordova.define("de.appplant.cordova.plugin.local-notification.LocalNotification.
under the License.
*/
var channel = require('cordova/channel');
exports = require('de.appplant.cordova.plugin.local-notification.LocalNotification.Proxy.Core').core;
......@@ -66,6 +69,18 @@ exports.getRepeatInterval = function (every) {
};
/**
* If the notification is repeating.
*
* @param {Object} notification
* Local notification object
*
* @return Boolean
*/
exports.isRepeating = function (notification) {
return this.getRepeatInterval(notification.every) !== 0;
};
/**
* Parses sound file path.
*
* @param {String} path
......@@ -87,76 +102,76 @@ exports.parseSound = function (path) {
return audio;
};
/**
* Builds the xml payload for a local notification based on its options.
*
* @param {Object} options
* Local notification properties
*
* @return Windows.Data.Xml.Dom.XmlDocument
*/
exports.build = function (options) {
var template = this.buildToastTemplate(options),
notification = new Windows.Data.Xml.Dom.XmlDocument();
try {
notification.loadXml(template);
} catch (e) {
console.error(
'LocalNotification#schedule',
'Error loading the xml, check for invalid characters.');
}
// Launch Attribute to enable onClick event
var launchAttr = notification.createAttribute('launch'),
toastNode = notification.selectSingleNode('/toast');
launchAttr.value = options.id.toString();
toastNode.attributes.setNamedItem(launchAttr);
return notification;
};
/**
* Builds the toast template with the right style depend on the options.
*
* @param {Object} options
* Local notification properties
*
* @return String
*/
exports.buildToastTemplate = function (options) {
var title = options.title,
message = options.text || '',
json = JSON.stringify(options),
sound = '';
if (options.sound && options.sound !== '') {
sound = this.parseSound(options.sound);
}
if (title && title !== '') {
return "<toast>" +
"<visual>" +
"<binding template='ToastText02'>" +
"<text id='1'>" + title + "</text>" +
"<text id='2'>" + message + "</text>" +
"</binding>" +
"</visual>" +
sound +
"<json>" + json + "</json>" +
"</toast>";
} else {
return "<toast>" +
"<visual>" +
"<binding template='ToastText01'>" +
"<text id='1'>" + message + "</text>" +
"</binding>" +
"</visual>" +
sound +
"<json>" + json + "</json>" +
"</toast>";
}
/**
* Builds the xml payload for a local notification based on its options.
*
* @param {Object} options
* Local notification properties
*
* @return Windows.Data.Xml.Dom.XmlDocument
*/
exports.build = function (options) {
var template = this.buildToastTemplate(options),
notification = new Windows.Data.Xml.Dom.XmlDocument();
try {
notification.loadXml(template);
} catch (e) {
console.error(
'LocalNotification#schedule',
'Error loading the xml, check for invalid characters.');
}
// Launch Attribute to enable onClick event
var launchAttr = notification.createAttribute('launch'),
toastNode = notification.selectSingleNode('/toast');
launchAttr.value = options.id.toString();
toastNode.attributes.setNamedItem(launchAttr);
return notification;
};
/**
* Builds the toast template with the right style depend on the options.
*
* @param {Object} options
* Local notification properties
*
* @return String
*/
exports.buildToastTemplate = function (options) {
var title = options.title,
message = options.text || '',
json = JSON.stringify(options),
sound = '';
if (options.sound && options.sound !== '') {
sound = this.parseSound(options.sound);
}
if (title && title !== '') {
return "<toast>" +
"<visual>" +
"<binding template='ToastText02'>" +
"<text id='1'>" + title + "</text>" +
"<text id='2'>" + message + "</text>" +
"</binding>" +
"</visual>" +
sound +
"<json>" + json + "</json>" +
"</toast>";
} else {
return "<toast>" +
"<visual>" +
"<binding template='ToastText01'>" +
"<text id='1'>" + message + "</text>" +
"</binding>" +
"</visual>" +
sound +
"<json>" + json + "</json>" +
"</toast>";
}
};
/**
......@@ -240,6 +255,9 @@ exports.isToastTriggered = function (toast) {
notification = this.getAll(id)[0];
fireDate = new Date((notification.at) * 1000);
if (this.isRepeating(notification))
return false;
return fireDate <= new Date();
};
......@@ -289,6 +307,20 @@ exports.callOnTrigger = function (notification, callback) {
};
/**
* Sets trigger event for all scheduled local notification.
*
* @param {Function} callback
* Callback function
*/
exports.callOnTriggerForScheduled = function (callback) {
var notifications = this.getScheduled();
for (var i = 0; i < notifications.length; i++) {
this.callOnTrigger(notifications[i], callback);
}
};
/**
* The application state - background or foreground.
*
* @return String
......@@ -328,6 +360,31 @@ exports.fireEvent = function (event, notification) {
* LIFE CYCLE *
**************/
// Called before 'deviceready' event
channel.onCordovaReady.subscribe(function () {
// Register trigger handler for each scheduled notification
exports.callOnTriggerForScheduled(function (notification) {
this.updateBadge(notification.badge);
this.fireEvent('trigger', notification);
});
});
// Handle onclick event
WinJS.Application.addEventListener('activated', function (args) {
var id = args.detail.arguments,
notification = exports.getAll([id])[0];
if (!notification)
return;
exports.clearLocalNotification(id);
var repeating = exports.isRepeating(notification);
exports.fireEvent('click', notification);
exports.fireEvent(repeating ? 'clear' : 'cancel', notification);
}, false);
// App is running in background
document.addEventListener('pause', function () {
exports.isInBackground = true;
......@@ -343,16 +400,4 @@ document.addEventListener('deviceready', function () {
exports.isInBackground = false;
}, false);
// Handle onclick event
WinJS.Application.addEventListener('activated', function (args) {
var id = args.detail.arguments,
notification = exports.getAll([id])[0];
if (!notification)
return;
exports.clearLocalNotification(id);
exports.fireEvent('click', notification);
}, false);
});
......@@ -27,8 +27,8 @@
<!-- info -->
<info>
Your support is needed. If you use the plugin please support us in order to ensure further development.
https://github.com/katzer/cordova-plugin-local-notifications/tree/example#how-can-i-support-the-further-development
Your support is needed. If you use the local-notification plugin please support us in order to ensure further development.
https://github.com/katzer/cordova-plugin-local-notifications#supporting
Thank you!
</info>
......@@ -59,9 +59,6 @@
</feature>
</config-file>
<header-file src="src/ios/AppDelegate+APPLocalNotification.h" />
<source-file src="src/ios/AppDelegate+APPLocalNotification.m" />
<header-file src="src/ios/APPLocalNotification.h" />
<source-file src="src/ios/APPLocalNotification.m" />
......@@ -74,6 +71,14 @@
<header-file src="src/ios/UILocalNotification+APPLocalNotification.h" />
<source-file src="src/ios/UILocalNotification+APPLocalNotification.m" />
<hook
type="after_platform_add"
src="scripts/ios/didRegisterUserNotificationSettings.js" />
<hook
type="after_plugin_install"
src="scripts/ios/didRegisterUserNotificationSettings.js" />
</platform>
<!-- android -->
......
/*
* 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@
*/
// Hook inserts the UIApplicationRegisterUserNotificationSettings constant
// and the didRegisterUserNotificationSettings method to AppDelegate.
var fs = require('fs'),
path = require('path'),
rootdir = process.argv[2];
if (!rootdir)
return;
module.exports = function (context) {
var cordova_util = context.requireCordovaModule('cordova-lib/src/cordova/util'),
ConfigParser = context.requireCordovaModule('cordova-lib/src/configparser/ConfigParser'),
platforms = context.requireCordovaModule('cordova-lib/src/cordova/platforms'),
projectRoot = cordova_util.isCordova(),
xml = cordova_util.projectConfig(projectRoot),
cfg = new ConfigParser(xml);
/**
* The absolute path for the file.
*
* @param {String} platform
* The name of the platform like 'ios'.
* @param {String} relPath
* The relative path from the platform root directory.
*
* @return String
*/
function getAbsPath(platform, relPath) {
var platform_path = path.join(projectRoot, 'platforms', platform),
parser = new platforms[platform].parser(platform_path);
return path.join(parser.cordovaproj, relPath);
}
/**
* Replaces a string with another one in a file.
*
* @param {String} path
* Absolute or relative file path from cordova root project.
* @param {String} to_replace
* The string to replace.
* @param {String}
* The string to replace with.
*/
function replace (path, to_replace, replace_with) {
var data = fs.readFileSync(path, 'utf8'),
result;
if (data.indexOf(replace_with) > -1)
return;
result = data.replace(new RegExp(to_replace, 'g'), replace_with);
fs.writeFileSync(path, result, 'utf8');
}
// Absolute paths for AppDelegate's header and member
var h_path = getAbsPath('ios', 'Classes/AppDelegate.h'),
m_path = getAbsPath('ios', 'Classes/AppDelegate.m');
// Decleration of UIApplicationRegisterUserNotificationSettings
var h_UIApplicationRegisterUserNotificationSettings =
"extern NSString* const UIApplicationRegisterUserNotificationSettings;\n";
// Implementation of UIApplicationRegisterUserNotificationSettings
var m_UIApplicationRegisterUserNotificationSettings =
"NSString* const UIApplicationRegisterUserNotificationSettings = @\"UIApplicationRegisterUserNotificationSettings\";\n";
// Implementation for didRegisterUserNotificationSettings
var didRegisterUserNotificationSettings =
"#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000\n" +
"\n" +
"- (void) application:(UIApplication*)application\n" +
" didRegisterUserNotificationSettings:(UIUserNotificationSettings*)settings\n" +
"{\n" +
" NSNotificationCenter* center = [NSNotificationCenter\n" +
" defaultCenter];\n" +
"\n" +
" // re-post (broadcast)\n" +
" [center postNotificationName:UIApplicationRegisterUserNotificationSettings\n" +
" object:settings];\n" +
"}\n" +
"#endif\n";
// Inserts the constant decleration
replace(h_path, '@interface AppDelegate', h_UIApplicationRegisterUserNotificationSettings + "\n@interface AppDelegate");
// Inserts the constant implementation
replace(m_path, '@implementation AppDelegate', m_UIApplicationRegisterUserNotificationSettings + "\n@implementation AppDelegate");
// Inserts the didRegisterUserNotificationSettings implementation
replace(m_path, '@end', didRegisterUserNotificationSettings + "\n@end");
};
......@@ -21,9 +21,9 @@
* @APPPLANT_LICENSE_HEADER_END@
*/
#import "AppDelegate.h"
#import "APPLocalNotification.h"
#import "APPLocalNotificationOptions.h"
#import "AppDelegate+APPLocalNotification.h"
#import "UIApplication+APPLocalNotification.h"
#import "UILocalNotification+APPLocalNotification.h"
......
/*
* 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 "AppDelegate.h"
#import <Availability.h>
extern NSString* const UIApplicationRegisterUserNotificationSettings;
@interface AppDelegate (APPLocalNotification)
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000
// Tells the delegate what types of notifications may be used
- (void) application:(UIApplication*)application
didRegisterUserNotificationSettings:(UIUserNotificationSettings*)settings;
#endif
@end
/*
* 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 "AppDelegate+APPLocalNotification.h"
#import <Availability.h>
NSString* const UIApplicationRegisterUserNotificationSettings = @"UIApplicationRegisterUserNotificationSettings";
@implementation AppDelegate (APPLocalNotification)
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000
/**
* Tells the delegate what types of notifications may be used
* to get the user’s attention.
*/
- (void) application:(UIApplication*)application
didRegisterUserNotificationSettings:(UIUserNotificationSettings*)settings
{
NSNotificationCenter* center = [NSNotificationCenter
defaultCenter];
// re-post (broadcast)
[center postNotificationName:UIApplicationRegisterUserNotificationSettings
object:settings];
}
#endif
@end
......@@ -62,7 +62,10 @@
UIUserNotificationType types;
UIUserNotificationSettings *settings;
types = UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound;
settings = [[UIApplication sharedApplication]
currentUserNotificationSettings];
types = settings.types|UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound;
settings = [UIUserNotificationSettings settingsForTypes:types
categories:nil];
......
......@@ -32,14 +32,12 @@ exports.core = {
*/
deviceready: function () {
var plugin = cordova.plugins.notification.local,
args;
events = this.eventQueue;
this.isReady = true;
for (var i = 0; i < this.eventQueue.length; i++) {
args = this.eventQueue[i];
plugin.fireEvent.apply(plugin, args);
for (var i = 0; i < events.length; i++) {
plugin.fireEvent.apply(plugin, events[i]);
}
this.eventQueue = [];
......@@ -54,8 +52,8 @@ exports.core = {
* 'schedule' or 'update'
*/
schedule: function (notifications) {
var triggerFn = function (notification) {
this.updateBadge(notification.badge);
this.fireEvent('trigger', notification);
};
......@@ -64,10 +62,8 @@ exports.core = {
notification = this.build(options);
this.cancelLocalNotification(options.id);
this.scheduleLocalNotification(notification, options);
this.scheduleBackupNotification(notification, options);
this.fireEvent('schedule', options);
this.callOnTrigger(options, triggerFn);
}
......@@ -128,15 +124,22 @@ exports.core = {
},
/**
* Updates a single local notification.
* Updates the badge number of the active tile.
*
* @param {Object} notification
* The local notification
* @param {Object} updates
* Updated properties
* @param {Number} badge
* The badge number. Zero will clean the badge.
*/
updateLocalNotification: function (notification, updates) {
updateBadge: function (badge) {
var notifications = Windows.UI.Notifications,
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);
},
/**
......@@ -156,6 +159,23 @@ exports.core = {
},
/**
* Updates a single local notification.
*
* @param {Object} notification
* The local notification
* @param {Object} updates
* Updated properties
*/
updateLocalNotification: function (notification, updates) {
for (var key in updates) {
notification[key] = updates[key];
}
this.cancelLocalNotification(notification.id);
this.scheduleLocalNotification(notification);
},
/**
* Clears the specified notifications.
*
* @param {int[]} ids
......@@ -163,9 +183,10 @@ exports.core = {
*/
clear: function (ids) {
for (var i = 0; i < ids.length; i++) {
var notification = this.getAll([id])[0];
var id = ids[i],
notification = this.getAll([id])[0];
this.clearLocalNotification(ids[i]);
this.clearLocalNotification(id);
this.fireEvent('clear', notification);
}
},
......@@ -177,8 +198,13 @@ exports.core = {
* Local notification ID
*/
clearLocalNotification: function (id) {
var notification = this.getAll([id])[0];
this.getToastHistory().remove('Toast' + id);
if (this.isRepeating(notification))
return;
if (this.isTriggered(id) && !this.isScheduled(id)) {
this.cancelLocalNotification(id);
}
......@@ -206,7 +232,8 @@ exports.core = {
*/
cancel: function (ids) {
for (var i = 0; i < ids.length; i++) {
var notification = this.getAll([id])[0];
var id = ids[i],
notification = this.getAll([id])[0];
this.cancelLocalNotification(ids[i]);
this.fireEvent('cancel', notification);
......@@ -256,7 +283,7 @@ exports.core = {
* Local notification ID
*/
isPresent: function (id) {
return this.getAllIds().indexOf(id) > -1;
return !!this.findToastById(id);
},
/**
......@@ -266,7 +293,9 @@ exports.core = {
* Local notification ID
*/
isScheduled: function (id) {
return this.getScheduledIds().indexOf(id) > -1;
var toast = this.findToastById(id);
return toast && this.isToastScheduled(toast);
},
/**
......@@ -276,7 +305,9 @@ exports.core = {
* Local notification ID
*/
isTriggered: function (id) {
return this.getTriggeredIds().indexOf(id) > -1;
var toast = this.findToastById(id);
return toast && this.isToastTriggered(toast);
},
/**
......@@ -346,8 +377,8 @@ exports.core = {
var toasts = this.getScheduledToasts(),
notifications = [];
if (ids.length === 0) {
ids = getAllIds();
if (!ids || ids.length === 0) {
ids = this.getAllIds();
}
for (var index = 0; index < ids.length; index++) {
......@@ -373,7 +404,7 @@ exports.core = {
* List of local notification IDs
*/
getScheduled: function (ids) {
if (ids.length === 0) {
if (!ids || ids.length === 0) {
ids = this.getAllIds();
}
......@@ -388,7 +419,7 @@ exports.core = {
* List of local notification IDs
*/
getTriggered: function (ids) {
if (ids.length === 0) {
if (!ids || ids.length === 0) {
ids = this.getAllIds();
}
......
......@@ -19,6 +19,9 @@
under the License.
*/
var channel = require('cordova/channel');
exports = require('de.appplant.cordova.plugin.local-notification.LocalNotification.Proxy.Core').core;
......@@ -66,6 +69,18 @@ exports.getRepeatInterval = function (every) {
};
/**
* If the notification is repeating.
*
* @param {Object} notification
* Local notification object
*
* @return Boolean
*/
exports.isRepeating = function (notification) {
return this.getRepeatInterval(notification.every) !== 0;
};
/**
* Parses sound file path.
*
* @param {String} path
......@@ -93,38 +108,14 @@ exports.parseSound = function (path) {
* @param {Object} options
* Local notification properties
*
* @return {String}
* Windows.Data.Xml.Dom.XmlDocument
* @return Windows.Data.Xml.Dom.XmlDocument
*/
exports.build = function (options) {
var title = options.title,
message = options.text || '',
sound = '';
if (!title || title === '') {
title = 'Notification';
}
if (options.sound) {
sound = this.parseSound(options.sound);
}
var payload =
"<toast> " +
"<visual version='2'>" +
"<binding template='ToastText02'>" +
"<text id='2'>" + message + "</text>" +
"<text id='1'>" + title + "</text>" +
"</binding>" +
"</visual>" +
sound +
"<json>" + JSON.stringify(options) + "</json>" +
"</toast>";
var notification = new Windows.Data.Xml.Dom.XmlDocument();
var template = this.buildToastTemplate(options),
notification = new Windows.Data.Xml.Dom.XmlDocument();
try {
notification.loadXml(payload);
notification.loadXml(template);
} catch (e) {
console.error(
'LocalNotification#schedule',
......@@ -142,6 +133,48 @@ exports.build = function (options) {
};
/**
* Builds the toast template with the right style depend on the options.
*
* @param {Object} options
* Local notification properties
*
* @return String
*/
exports.buildToastTemplate = function (options) {
var title = options.title,
message = options.text || '',
json = JSON.stringify(options),
sound = '';
if (options.sound && options.sound !== '') {
sound = this.parseSound(options.sound);
}
if (title && title !== '') {
return "<toast>" +
"<visual>" +
"<binding template='ToastText02'>" +
"<text id='1'>" + title + "</text>" +
"<text id='2'>" + message + "</text>" +
"</binding>" +
"</visual>" +
sound +
"<json>" + json + "</json>" +
"</toast>";
} else {
return "<toast>" +
"<visual>" +
"<binding template='ToastText01'>" +
"<text id='1'>" + message + "</text>" +
"</binding>" +
"</visual>" +
sound +
"<json>" + json + "</json>" +
"</toast>";
}
};
/**
* Short-hand method for the toast notification history.
*/
exports.getToastHistory = function () {
......@@ -222,6 +255,9 @@ exports.isToastTriggered = function (toast) {
notification = this.getAll(id)[0];
fireDate = new Date((notification.at) * 1000);
if (this.isRepeating(notification))
return false;
return fireDate <= new Date();
};
......@@ -271,6 +307,20 @@ exports.callOnTrigger = function (notification, callback) {
};
/**
* Sets trigger event for all scheduled local notification.
*
* @param {Function} callback
* Callback function
*/
exports.callOnTriggerForScheduled = function (callback) {
var notifications = this.getScheduled();
for (var i = 0; i < notifications.length; i++) {
this.callOnTrigger(notifications[i], callback);
}
};
/**
* The application state - background or foreground.
*
* @return String
......@@ -310,6 +360,31 @@ exports.fireEvent = function (event, notification) {
* LIFE CYCLE *
**************/
// Called before 'deviceready' event
channel.onCordovaReady.subscribe(function () {
// Register trigger handler for each scheduled notification
exports.callOnTriggerForScheduled(function (notification) {
this.updateBadge(notification.badge);
this.fireEvent('trigger', notification);
});
});
// Handle onclick event
WinJS.Application.addEventListener('activated', function (args) {
var id = args.detail.arguments,
notification = exports.getAll([id])[0];
if (!notification)
return;
exports.clearLocalNotification(id);
var repeating = exports.isRepeating(notification);
exports.fireEvent('click', notification);
exports.fireEvent(repeating ? 'clear' : 'cancel', notification);
}, false);
// App is running in background
document.addEventListener('pause', function () {
exports.isInBackground = true;
......@@ -324,15 +399,3 @@ document.addEventListener('resume', function () {
document.addEventListener('deviceready', function () {
exports.isInBackground = false;
}, false);
// Handle onclick event
WinJS.Application.addEventListener('activated', function (args) {
var id = args.detail.arguments,
notification = exports.getAll([id])[0];
if (!notification)
return;
exports.clearLocalNotification(id);
exports.fireEvent('click', notification);
}, false);
......@@ -9,15 +9,15 @@
"parents": {
"/*": [
{
"xml": "<feature name=\"Toast\"><param name=\"ios-package\" value=\"Toast\" /></feature>",
"xml": "<feature name=\"Device\"><param name=\"ios-package\" value=\"CDVDevice\" /></feature>",
"count": 1
},
{
"xml": "<feature name=\"Device\"><param name=\"ios-package\" value=\"CDVDevice\" /></feature>",
"xml": "<feature name=\"LocalNotification\"><param name=\"ios-package\" onload=\"true\" value=\"APPLocalNotification\" /><param name=\"onload\" value=\"true\" /></feature>",
"count": 1
},
{
"xml": "<feature name=\"LocalNotification\"><param name=\"ios-package\" onload=\"true\" value=\"APPLocalNotification\" /><param name=\"onload\" value=\"true\" /></feature>",
"xml": "<feature name=\"Toast\"><param name=\"ios-package\" value=\"Toast\" /></feature>",
"count": 1
}
]
......@@ -36,16 +36,16 @@
}
},
"installed_plugins": {
"nl.x-services.plugins.toast": {
"PACKAGE_NAME": "de.appplant.cordova.plugin.local-notification.example"
},
"de.appplant.cordova.plugin.local-notification": {
"PACKAGE_NAME": "de.appplant.cordova.plugin.local-notification.example"
"PACKAGE_NAME": "de.appplant.localnotification.example"
},
"nl.x-services.plugins.toast": {
"PACKAGE_NAME": "de.appplant.localnotification.example"
}
},
"dependent_plugins": {
"org.apache.cordova.device": {
"PACKAGE_NAME": "de.appplant.cordova.plugin.local-notification.example"
"PACKAGE_NAME": "de.appplant.localnotification.example"
}
}
}
\ No newline at end of file
......@@ -7,10 +7,10 @@
"files": {}
},
"installed_plugins": {
"de.appplant.cordova.plugin.local-notification": {
"nl.x-services.plugins.toast": {
"PACKAGE_NAME": "NotificationExample"
},
"nl.x-services.plugins.toast": {
"de.appplant.cordova.plugin.local-notification": {
"PACKAGE_NAME": "NotificationExample"
}
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment