diff options
Diffstat (limited to 'StoneIsland/platforms/ios')
93 files changed, 1456 insertions, 2052 deletions
diff --git a/StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/jules.xcuserdatad/xcschemes/CordovaLib.xcscheme b/StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/jules.xcuserdatad/xcschemes/CordovaLib.xcscheme new file mode 100644 index 00000000..30a2ebe4 --- /dev/null +++ b/StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/jules.xcuserdatad/xcschemes/CordovaLib.xcscheme @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Scheme + LastUpgradeVersion = "0810" + version = "1.3"> + <BuildAction + parallelizeBuildables = "YES" + buildImplicitDependencies = "YES"> + <BuildActionEntries> + <BuildActionEntry + buildForTesting = "YES" + buildForRunning = "YES" + buildForProfiling = "YES" + buildForArchiving = "YES" + buildForAnalyzing = "YES"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "D2AAC07D0554694100DB518D" + BuildableName = "libCordova.a" + BlueprintName = "CordovaLib" + ReferencedContainer = "container:CordovaLib.xcodeproj"> + </BuildableReference> + </BuildActionEntry> + </BuildActionEntries> + </BuildAction> + <TestAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + shouldUseLaunchSchemeArgsEnv = "YES"> + <Testables> + </Testables> + <AdditionalOptions> + </AdditionalOptions> + </TestAction> + <LaunchAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + launchStyle = "0" + useCustomWorkingDirectory = "NO" + ignoresPersistentStateOnLaunch = "NO" + debugDocumentVersioning = "YES" + debugServiceExtension = "internal" + allowLocationSimulation = "YES"> + <MacroExpansion> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "D2AAC07D0554694100DB518D" + BuildableName = "libCordova.a" + BlueprintName = "CordovaLib" + ReferencedContainer = "container:CordovaLib.xcodeproj"> + </BuildableReference> + </MacroExpansion> + <AdditionalOptions> + </AdditionalOptions> + </LaunchAction> + <ProfileAction + buildConfiguration = "Release" + shouldUseLaunchSchemeArgsEnv = "YES" + savedToolIdentifier = "" + useCustomWorkingDirectory = "NO" + debugDocumentVersioning = "YES"> + <MacroExpansion> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "D2AAC07D0554694100DB518D" + BuildableName = "libCordova.a" + BlueprintName = "CordovaLib" + ReferencedContainer = "container:CordovaLib.xcodeproj"> + </BuildableReference> + </MacroExpansion> + </ProfileAction> + <AnalyzeAction + buildConfiguration = "Debug"> + </AnalyzeAction> + <ArchiveAction + buildConfiguration = "Release" + revealArchiveInOrganizer = "YES"> + </ArchiveAction> +</Scheme> diff --git a/StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/jules.xcuserdatad/xcschemes/xcschememanagement.plist b/StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/jules.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..283503be --- /dev/null +++ b/StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/jules.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>SchemeUserState</key> + <dict> + <key>CordovaLib.xcscheme</key> + <dict> + <key>orderHint</key> + <integer>1</integer> + </dict> + </dict> + <key>SuppressBuildableAutocreation</key> + <dict> + <key>D2AAC07D0554694100DB518D</key> + <dict> + <key>primary</key> + <true/> + </dict> + </dict> +</dict> +</plist> diff --git a/StoneIsland/platforms/ios/Stone Island.xcodeproj/project.pbxproj b/StoneIsland/platforms/ios/Stone Island.xcodeproj/project.pbxproj index b647d931..a7ed0d50 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcodeproj/project.pbxproj +++ b/StoneIsland/platforms/ios/Stone Island.xcodeproj/project.pbxproj @@ -5,47 +5,44 @@ }; objectVersion = 46; objects = { + /* Begin PBXBuildFile section */ 0207DA581B56EA530066E2B4 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0207DA571B56EA530066E2B4 /* Images.xcassets */; }; + 0315761036204E3B845F89A9 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DC035EE9BA24D4FA0966C97 /* AudioToolbox.framework */; }; + 0580F77611BF4A32B709B4AB /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = B6675D8E364642F0ABE3B97F /* libsqlite3.dylib */; }; 1D3623260D0F684500981E51 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* AppDelegate.m */; }; 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.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 */; }; - 3047A5121AB8059700498E2A /* build-debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 3047A50F1AB8059700498E2A /* build-debug.xcconfig */; }; - 3047A5131AB8059700498E2A /* build-release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 3047A5101AB8059700498E2A /* build-release.xcconfig */; }; - 3047A5141AB8059700498E2A /* build.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 3047A5111AB8059700498E2A /* build.xcconfig */; }; + 3203B5020DFF4867998FD244 /* NSString+URLEncoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 093D0B348E9B4F359B8FC9FF /* NSString+URLEncoding.m */; }; + 323EAC7A00CC4C1B93E822FB /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5794EA67F4E2464080DFF4DD /* CoreTelephony.framework */; }; + 4A76AA461B094826B553C98A /* CDVNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E448A31DBCF48A5A72A043C /* CDVNotification.m */; }; + 4CEA203A6C864572AB3D4718 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 8998048060D1426C8BD2870D /* libz.dylib */; }; + 4DD3F0B57F8247199AA52EE7 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED0B669B92E5409282AE1703 /* Security.framework */; }; + 4F04AAC460204786A9B6F8D6 /* Parse.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 21B8104F65F9433D9A7D53F9 /* Parse.framework */; }; + 575E294B759E463E9C66C496 /* IonicKeyboard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9533418C6E9249F89C11CE50 /* IonicKeyboard.m */; }; + 5977ACEEEDF4439A93AD46A5 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5FA9837E4C93446C84474512 /* QuartzCore.framework */; }; + 5F44A0836473477ABEDEE9D0 /* CDVSplashScreen.m in Sources */ = {isa = PBXBuildFile; fileRef = 37E8F313C7404DB48950986D /* CDVSplashScreen.m */; }; + 619921E6CFA944AB9FD378F2 /* CDVLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 7750C61417EE4678B793C993 /* CDVLogger.m */; }; + 64541CA1793A46F7AE78DA82 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 94099699ABA44203A173F33E /* SystemConfiguration.framework */; }; + 67EB671357AC4E29ADCE0B7C /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CCE8D44B5FFF4EF4BB46F74F /* StoreKit.framework */; }; 6AFF5BF91D6E424B00AB3073 /* CDVLaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6AFF5BF81D6E424B00AB3073 /* CDVLaunchScreen.storyboard */; }; - C5CB6DF47C5D417891456B4D /* IonicKeyboard.m in Sources */ = {isa = PBXBuildFile; fileRef = 35719EF303D44796AE2F8232 /* IonicKeyboard.m */; }; - CD393F23C04449E48147FEFA /* UIWebViewExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BEFB560983744AF95D76E66 /* UIWebViewExtension.m */; }; - 9BF4E6A8A54F45E4BDCB35E8 /* CDVParsePlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 8961158EB65445E1BB6CB501 /* CDVParsePlugin.m */; }; - 9920D41C2D9C41AC9F772D8B /* Accounts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F97090F6B544E2BB1609DBE /* Accounts.framework */; }; - 0315761036204E3B845F89A9 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DC035EE9BA24D4FA0966C97 /* AudioToolbox.framework */; }; 6D2024FED5EA43498DA1928E /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B23FCE8A14F4788A06368CD /* CFNetwork.framework */; }; - CF20D68FB9D547DF8164F3A5 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71127DE451034E8DADBC2908 /* CoreLocation.framework */; }; - 5977ACEEEDF4439A93AD46A5 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5FA9837E4C93446C84474512 /* QuartzCore.framework */; }; - 4DD3F0B57F8247199AA52EE7 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED0B669B92E5409282AE1703 /* Security.framework */; }; + 7605C3225E01411D8A3AD2AC /* CDVConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = AF451107D3D340729EA6E833 /* CDVConnection.m */; }; 79567EACD25049808A22E639 /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B4768CC0A2D74CFF84597C0C /* Social.framework */; }; - 67EB671357AC4E29ADCE0B7C /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CCE8D44B5FFF4EF4BB46F74F /* StoreKit.framework */; }; - 64541CA1793A46F7AE78DA82 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 94099699ABA44203A173F33E /* SystemConfiguration.framework */; }; - 4CEA203A6C864572AB3D4718 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 8998048060D1426C8BD2870D /* libz.dylib */; }; - 0580F77611BF4A32B709B4AB /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = B6675D8E364642F0ABE3B97F /* libsqlite3.dylib */; }; + 7BFF7D1E98634E0CB65D166A /* CDVViewController+SplashScreen.m in Sources */ = {isa = PBXBuildFile; fileRef = 3540F8B74DE04482B5F31396 /* CDVViewController+SplashScreen.m */; }; + 9164F345C7EF473E8E6CA215 /* CDVInAppBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 8277330FE73D4EC2BE3F8833 /* CDVInAppBrowser.m */; }; + 98707D91F4C74B20AF61F26F /* CDVLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = E2F80BC4D82142208C55007C /* CDVLocation.m */; }; + 9920D41C2D9C41AC9F772D8B /* Accounts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F97090F6B544E2BB1609DBE /* Accounts.framework */; }; + 9BF4E6A8A54F45E4BDCB35E8 /* CDVParsePlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 8961158EB65445E1BB6CB501 /* CDVParsePlugin.m */; }; + B11FABEA6586489DA90AAB86 /* CDVReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FA6E99A08594DD299BA4486 /* CDVReachability.m */; }; C03FF8C4AD384677BC558F8E /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34D6F0009780486D8A07BD47 /* Bolts.framework */; }; - 4F04AAC460204786A9B6F8D6 /* Parse.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 21B8104F65F9433D9A7D53F9 /* Parse.framework */; }; - 203198C6486B4906B0D2EAF3 /* CDVLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = A14E782B69CC473DAD94F0C7 /* CDVLogger.m */; }; - E23A6ED28D414A9FA31C18D6 /* CDVDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = 5ABD34598B224612824BAE63 /* CDVDevice.m */; }; - CCDF00EE9C05477D9BD17C8D /* CDVNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 8661BF08EC7E4B558802CD5B /* CDVNotification.m */; }; - 932BB112D8D247E59DBC8C55 /* CDVNotification.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 00599E51D9234D71BE6C6B79 /* CDVNotification.bundle */; }; - C8B9F882FA744E0A85EBFA1F /* CDVLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C77AAEFAED7486E987AEB6B /* CDVLocation.m */; }; - 3325D19426B948B38F318D73 /* CDVInAppBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A42A487C79A4ADA9A06AF42 /* CDVInAppBrowser.m */; }; - 891101010EEA4D5491CA8B0B /* CDVConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 44DD171A422D46B1B1ADBF83 /* CDVConnection.m */; }; - 79688F2F8B804507B919AE23 /* CDVReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 279BD4938BA54F7ABCCEFC0E /* CDVReachability.m */; }; - E95FE2CE364D40F896F2D12A /* CDVSplashScreen.m in Sources */ = {isa = PBXBuildFile; fileRef = 1065E9EBB93145AA8CAFDE8A /* CDVSplashScreen.m */; }; - AAF050E78DED436DB51647A4 /* CDVViewController+SplashScreen.m in Sources */ = {isa = PBXBuildFile; fileRef = 16CA61E384604A269060D490 /* CDVViewController+SplashScreen.m */; }; - 8C9F50FD574A4962975E4B50 /* SocialSharing.m in Sources */ = {isa = PBXBuildFile; fileRef = AC21935FEAD34A7DA271CCF4 /* SocialSharing.m */; }; - A02C9C20257D48A3AB5125C9 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E71962D2059240E3BCCFF098 /* MessageUI.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 566265D394B24F0F851B64B8 /* AppDelegate+notification.m in Sources */ = {isa = PBXBuildFile; fileRef = 51738B4AC1F2488D928587E2 /* AppDelegate+notification.m */; }; - 05BFC92227794306A1A49D2D /* PushPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E50FC1FE8224862947FA2D3 /* PushPlugin.m */; }; + CF20D68FB9D547DF8164F3A5 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71127DE451034E8DADBC2908 /* CoreLocation.framework */; }; + DB6AF83ACD124CA590A083F5 /* CDVNotification.bundle in Resources */ = {isa = PBXBuildFile; fileRef = DAD7810D444648B9A0797E42 /* CDVNotification.bundle */; }; + E651384BEE9B46BCB4266E31 /* CDVDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = D1673B263A2F4F09B0740EF6 /* CDVDevice.m */; }; + E698EEC9704745F093774EA7 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A31D2E2022D43BFA29F6CC9 /* MessageUI.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + F1AFF61D7EDB477FAC045FF0 /* SocialSharing.m in Sources */ = {isa = PBXBuildFile; fileRef = DD9A29C31C4644DB9C102D06 /* SocialSharing.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -67,70 +64,67 @@ /* Begin PBXFileReference section */ 0207DA571B56EA530066E2B4 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = "Stone Island/Images.xcassets"; sourceTree = SOURCE_ROOT; }; + 02427C4B4DBC4EE199F76CDF /* CDVReachability.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = CDVReachability.h; path = "cordova-plugin-network-information/CDVReachability.h"; sourceTree = "<group>"; }; + 093D0B348E9B4F359B8FC9FF /* NSString+URLEncoding.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = "NSString+URLEncoding.m"; path = "cordova-plugin-x-socialsharing/NSString+URLEncoding.m"; sourceTree = "<group>"; }; + 19A23454385A44C9A0D1F396 /* NSString+URLEncoding.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "NSString+URLEncoding.h"; path = "cordova-plugin-x-socialsharing/NSString+URLEncoding.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 /* Stone Island.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Stone Island.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1DC035EE9BA24D4FA0966C97 /* AudioToolbox.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 21B8104F65F9433D9A7D53F9 /* Parse.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = Parse.framework; path = "Stone Island/Plugins/com.parse.cordova.core.pushplugin/Parse.framework"; sourceTree = "<group>"; }; + 2343CD8001A046E08B747609 /* CDVSplashScreen.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = CDVSplashScreen.h; path = "cordova-plugin-splashscreen/CDVSplashScreen.h"; sourceTree = "<group>"; }; 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; + 2ABCC9D074F74A0680DAE629 /* CDVParsePlugin.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = CDVParsePlugin.h; path = com.parse.cordova.core.pushplugin/CDVParsePlugin.h; sourceTree = "<group>"; }; 301BF52D109A57CC0062928A /* CordovaLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CordovaLib.xcodeproj; path = CordovaLib/CordovaLib.xcodeproj; sourceTree = "<group>"; }; 301BF56E109A69640062928A /* www */ = {isa = PBXFileReference; lastKnownFileType = folder; path = www; sourceTree = SOURCE_ROOT; }; 302D95EE14D2391D003F00A1 /* MainViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainViewController.h; sourceTree = "<group>"; }; 302D95EF14D2391D003F00A1 /* MainViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainViewController.m; sourceTree = "<group>"; }; 302D95F014D2391D003F00A1 /* MainViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainViewController.xib; sourceTree = "<group>"; }; - 3047A50F1AB8059700498E2A /* build-debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "build-debug.xcconfig"; path = cordova/build-debug.xcconfig; sourceTree = SOURCE_ROOT; }; - 3047A5101AB8059700498E2A /* build-release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "build-release.xcconfig"; path = cordova/build-release.xcconfig; sourceTree = SOURCE_ROOT; }; + 3047A50F1AB8059700498E2A /* build-debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "build-debug.xcconfig"; path = "cordova/build-debug.xcconfig"; sourceTree = SOURCE_ROOT; }; + 3047A5101AB8059700498E2A /* build-release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "build-release.xcconfig"; path = "cordova/build-release.xcconfig"; sourceTree = SOURCE_ROOT; }; 3047A5111AB8059700498E2A /* build.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = build.xcconfig; path = cordova/build.xcconfig; sourceTree = SOURCE_ROOT; }; 32CA4F630368D1EE00C91783 /* Stone Island-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Stone Island-Prefix.pch"; sourceTree = "<group>"; }; + 34D6F0009780486D8A07BD47 /* Bolts.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = Bolts.framework; path = "Stone Island/Plugins/com.parse.cordova.core.pushplugin/Bolts.framework"; sourceTree = "<group>"; }; + 3540F8B74DE04482B5F31396 /* CDVViewController+SplashScreen.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = "CDVViewController+SplashScreen.m"; path = "cordova-plugin-splashscreen/CDVViewController+SplashScreen.m"; sourceTree = "<group>"; }; + 37E8F313C7404DB48950986D /* CDVSplashScreen.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = CDVSplashScreen.m; path = "cordova-plugin-splashscreen/CDVSplashScreen.m"; sourceTree = "<group>"; }; + 39ABF20966474AE2A42B4758 /* CDVDevice.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = CDVDevice.h; path = "cordova-plugin-device/CDVDevice.h"; sourceTree = "<group>"; }; + 3A31D2E2022D43BFA29F6CC9 /* MessageUI.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; }; + 3F97090F6B544E2BB1609DBE /* Accounts.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = Accounts.framework; path = System/Library/Frameworks/Accounts.framework; sourceTree = SDKROOT; }; + 5794EA67F4E2464080DFF4DD /* CoreTelephony.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; }; + 5FA9837E4C93446C84474512 /* QuartzCore.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 65A8F443D6D64E34B5906602 /* CDVLocation.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = CDVLocation.h; path = "cordova-plugin-geolocation/CDVLocation.h"; sourceTree = "<group>"; }; + 6A123CECD10245049BAACCF8 /* CDVViewController+SplashScreen.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "CDVViewController+SplashScreen.h"; path = "cordova-plugin-splashscreen/CDVViewController+SplashScreen.h"; sourceTree = "<group>"; }; 6AFF5BF81D6E424B00AB3073 /* CDVLaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = CDVLaunchScreen.storyboard; path = "Stone Island/CDVLaunchScreen.storyboard"; sourceTree = SOURCE_ROOT; }; + 6FA6E99A08594DD299BA4486 /* CDVReachability.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = CDVReachability.m; path = "cordova-plugin-network-information/CDVReachability.m"; sourceTree = "<group>"; }; + 71127DE451034E8DADBC2908 /* CoreLocation.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; + 72ABD61156534EE7BA2F1412 /* CDVLogger.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = CDVLogger.h; path = "cordova-plugin-console/CDVLogger.h"; sourceTree = "<group>"; }; + 7750C61417EE4678B793C993 /* CDVLogger.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = CDVLogger.m; path = "cordova-plugin-console/CDVLogger.m"; sourceTree = "<group>"; }; + 7850E3F3A8B743AD8569AB90 /* CDVNotification.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = CDVNotification.h; path = "cordova-plugin-dialogs/CDVNotification.h"; sourceTree = "<group>"; }; + 7DE194F983174929A645ABD7 /* SocialSharing.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = SocialSharing.h; path = "cordova-plugin-x-socialsharing/SocialSharing.h"; sourceTree = "<group>"; }; + 8082F878D0EF4B389ED94C47 /* CDVConnection.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = CDVConnection.h; path = "cordova-plugin-network-information/CDVConnection.h"; sourceTree = "<group>"; }; + 8277330FE73D4EC2BE3F8833 /* CDVInAppBrowser.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = CDVInAppBrowser.m; path = "cordova-plugin-inappbrowser/CDVInAppBrowser.m"; sourceTree = "<group>"; }; + 8961158EB65445E1BB6CB501 /* CDVParsePlugin.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = CDVParsePlugin.m; path = com.parse.cordova.core.pushplugin/CDVParsePlugin.m; sourceTree = "<group>"; }; + 8998048060D1426C8BD2870D /* libz.dylib */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; 8D1107310486CEB800E47090 /* Stone Island-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "Stone Island-Info.plist"; path = "Stone Island/Stone Island-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = SOURCE_ROOT; }; + 94099699ABA44203A173F33E /* SystemConfiguration.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; + 9533418C6E9249F89C11CE50 /* IonicKeyboard.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = IonicKeyboard.m; path = "ionic-plugin-keyboard/IonicKeyboard.m"; sourceTree = "<group>"; }; + 9B23FCE8A14F4788A06368CD /* CFNetwork.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; + 9E448A31DBCF48A5A72A043C /* CDVNotification.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = CDVNotification.m; path = "cordova-plugin-dialogs/CDVNotification.m"; sourceTree = "<group>"; }; + AF451107D3D340729EA6E833 /* CDVConnection.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = CDVConnection.m; path = "cordova-plugin-network-information/CDVConnection.m"; sourceTree = "<group>"; }; + B4768CC0A2D74CFF84597C0C /* Social.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; }; + B6675D8E364642F0ABE3B97F /* libsqlite3.dylib */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; }; + CCE8D44B5FFF4EF4BB46F74F /* StoreKit.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; }; + D1673B263A2F4F09B0740EF6 /* CDVDevice.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = CDVDevice.m; path = "cordova-plugin-device/CDVDevice.m"; sourceTree = "<group>"; }; + D700E79C081C45619C7AC7D1 /* CDVInAppBrowser.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = CDVInAppBrowser.h; path = "cordova-plugin-inappbrowser/CDVInAppBrowser.h"; sourceTree = "<group>"; }; + DAD7810D444648B9A0797E42 /* CDVNotification.bundle */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.plug-in"; path = CDVNotification.bundle; sourceTree = "<group>"; }; + DD9A29C31C4644DB9C102D06 /* SocialSharing.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = SocialSharing.m; path = "cordova-plugin-x-socialsharing/SocialSharing.m"; sourceTree = "<group>"; }; + E2F80BC4D82142208C55007C /* CDVLocation.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; name = CDVLocation.m; path = "cordova-plugin-geolocation/CDVLocation.m"; 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>"; }; + ED0B669B92E5409282AE1703 /* Security.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; + ED33DF2A687741AEAF9F8254 /* Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Bridging-Header.h"; sourceTree = "<group>"; }; F840E1F0165FE0F500CFE078 /* config.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = config.xml; path = "Stone Island/config.xml"; sourceTree = "<group>"; }; - ED33DF2A687741AEAF9F8254 /* Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "Bridging-Header.h"; path = "Bridging-Header.h"; sourceTree = "<group>"; }; - 35719EF303D44796AE2F8232 /* IonicKeyboard.m */ = {isa = PBXFileReference; name = "IonicKeyboard.m"; path = "com.ionic.keyboard/IonicKeyboard.m"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; explicitFileType = undefined; includeInIndex = 0; }; - 4BEFB560983744AF95D76E66 /* UIWebViewExtension.m */ = {isa = PBXFileReference; name = "UIWebViewExtension.m"; path = "com.ionic.keyboard/UIWebViewExtension.m"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; explicitFileType = undefined; includeInIndex = 0; }; - CF48BF1935C2459594839AE5 /* IonicKeyboard.h */ = {isa = PBXFileReference; name = "IonicKeyboard.h"; path = "com.ionic.keyboard/IonicKeyboard.h"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; explicitFileType = undefined; includeInIndex = 0; }; - 06638D058B744ADBA7DF0E3E /* UIWebViewExtension.h */ = {isa = PBXFileReference; name = "UIWebViewExtension.h"; path = "com.ionic.keyboard/UIWebViewExtension.h"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; explicitFileType = undefined; includeInIndex = 0; }; - 8961158EB65445E1BB6CB501 /* CDVParsePlugin.m */ = {isa = PBXFileReference; name = "CDVParsePlugin.m"; path = "com.parse.cordova.core.pushplugin/CDVParsePlugin.m"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; explicitFileType = undefined; includeInIndex = 0; }; - 2ABCC9D074F74A0680DAE629 /* CDVParsePlugin.h */ = {isa = PBXFileReference; name = "CDVParsePlugin.h"; path = "com.parse.cordova.core.pushplugin/CDVParsePlugin.h"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; explicitFileType = undefined; includeInIndex = 0; }; - 3F97090F6B544E2BB1609DBE /* Accounts.framework */ = {isa = PBXFileReference; name = "Accounts.framework"; path = "System/Library/Frameworks/Accounts.framework"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = wrapper.framework; explicitFileType = undefined; includeInIndex = 0; }; - 1DC035EE9BA24D4FA0966C97 /* AudioToolbox.framework */ = {isa = PBXFileReference; name = "AudioToolbox.framework"; path = "System/Library/Frameworks/AudioToolbox.framework"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = wrapper.framework; explicitFileType = undefined; includeInIndex = 0; }; - 9B23FCE8A14F4788A06368CD /* CFNetwork.framework */ = {isa = PBXFileReference; name = "CFNetwork.framework"; path = "System/Library/Frameworks/CFNetwork.framework"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = wrapper.framework; explicitFileType = undefined; includeInIndex = 0; }; - 71127DE451034E8DADBC2908 /* CoreLocation.framework */ = {isa = PBXFileReference; name = "CoreLocation.framework"; path = "System/Library/Frameworks/CoreLocation.framework"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = wrapper.framework; explicitFileType = undefined; includeInIndex = 0; }; - 5FA9837E4C93446C84474512 /* QuartzCore.framework */ = {isa = PBXFileReference; name = "QuartzCore.framework"; path = "System/Library/Frameworks/QuartzCore.framework"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = wrapper.framework; explicitFileType = undefined; includeInIndex = 0; }; - ED0B669B92E5409282AE1703 /* Security.framework */ = {isa = PBXFileReference; name = "Security.framework"; path = "System/Library/Frameworks/Security.framework"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = wrapper.framework; explicitFileType = undefined; includeInIndex = 0; }; - B4768CC0A2D74CFF84597C0C /* Social.framework */ = {isa = PBXFileReference; name = "Social.framework"; path = "System/Library/Frameworks/Social.framework"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = wrapper.framework; explicitFileType = undefined; includeInIndex = 0; }; - CCE8D44B5FFF4EF4BB46F74F /* StoreKit.framework */ = {isa = PBXFileReference; name = "StoreKit.framework"; path = "System/Library/Frameworks/StoreKit.framework"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = wrapper.framework; explicitFileType = undefined; includeInIndex = 0; }; - 94099699ABA44203A173F33E /* SystemConfiguration.framework */ = {isa = PBXFileReference; name = "SystemConfiguration.framework"; path = "System/Library/Frameworks/SystemConfiguration.framework"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = wrapper.framework; explicitFileType = undefined; includeInIndex = 0; }; - 8998048060D1426C8BD2870D /* libz.dylib */ = {isa = PBXFileReference; name = "libz.dylib"; path = "usr/lib/libz.dylib"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = compiled.mach-o.dylib; explicitFileType = undefined; includeInIndex = 0; }; - B6675D8E364642F0ABE3B97F /* libsqlite3.dylib */ = {isa = PBXFileReference; name = "libsqlite3.dylib"; path = "usr/lib/libsqlite3.dylib"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = compiled.mach-o.dylib; explicitFileType = undefined; includeInIndex = 0; }; - 34D6F0009780486D8A07BD47 /* Bolts.framework */ = {isa = PBXFileReference; name = "Bolts.framework"; path = "Stone Island/Plugins/com.parse.cordova.core.pushplugin/Bolts.framework"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.framework; explicitFileType = undefined; includeInIndex = 0; }; - 21B8104F65F9433D9A7D53F9 /* Parse.framework */ = {isa = PBXFileReference; name = "Parse.framework"; path = "Stone Island/Plugins/com.parse.cordova.core.pushplugin/Parse.framework"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.framework; explicitFileType = undefined; includeInIndex = 0; }; - A14E782B69CC473DAD94F0C7 /* CDVLogger.m */ = {isa = PBXFileReference; name = "CDVLogger.m"; path = "cordova-plugin-console/CDVLogger.m"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; explicitFileType = undefined; includeInIndex = 0; }; - 18F0008910714D37A5AAB051 /* CDVLogger.h */ = {isa = PBXFileReference; name = "CDVLogger.h"; path = "cordova-plugin-console/CDVLogger.h"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; explicitFileType = undefined; includeInIndex = 0; }; - 5ABD34598B224612824BAE63 /* CDVDevice.m */ = {isa = PBXFileReference; name = "CDVDevice.m"; path = "cordova-plugin-device/CDVDevice.m"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; explicitFileType = undefined; includeInIndex = 0; }; - 1D3E5D77A1C04222A06877D1 /* CDVDevice.h */ = {isa = PBXFileReference; name = "CDVDevice.h"; path = "cordova-plugin-device/CDVDevice.h"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; explicitFileType = undefined; includeInIndex = 0; }; - 8661BF08EC7E4B558802CD5B /* CDVNotification.m */ = {isa = PBXFileReference; name = "CDVNotification.m"; path = "cordova-plugin-dialogs/CDVNotification.m"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; explicitFileType = undefined; includeInIndex = 0; }; - 91BCA5405B914228B95870B5 /* CDVNotification.h */ = {isa = PBXFileReference; name = "CDVNotification.h"; path = "cordova-plugin-dialogs/CDVNotification.h"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; explicitFileType = undefined; includeInIndex = 0; }; - 00599E51D9234D71BE6C6B79 /* CDVNotification.bundle */ = {isa = PBXFileReference; name = "CDVNotification.bundle"; path = "CDVNotification.bundle"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.plug-in; explicitFileType = undefined; includeInIndex = 0; }; - 8C77AAEFAED7486E987AEB6B /* CDVLocation.m */ = {isa = PBXFileReference; name = "CDVLocation.m"; path = "cordova-plugin-geolocation/CDVLocation.m"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; explicitFileType = undefined; includeInIndex = 0; }; - 2028DD29E5AF40B897C31D46 /* CDVLocation.h */ = {isa = PBXFileReference; name = "CDVLocation.h"; path = "cordova-plugin-geolocation/CDVLocation.h"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; explicitFileType = undefined; includeInIndex = 0; }; - 7A42A487C79A4ADA9A06AF42 /* CDVInAppBrowser.m */ = {isa = PBXFileReference; name = "CDVInAppBrowser.m"; path = "cordova-plugin-inappbrowser/CDVInAppBrowser.m"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; explicitFileType = undefined; includeInIndex = 0; }; - 71D53167DC724B13A307C921 /* CDVInAppBrowser.h */ = {isa = PBXFileReference; name = "CDVInAppBrowser.h"; path = "cordova-plugin-inappbrowser/CDVInAppBrowser.h"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; explicitFileType = undefined; includeInIndex = 0; }; - 44DD171A422D46B1B1ADBF83 /* CDVConnection.m */ = {isa = PBXFileReference; name = "CDVConnection.m"; path = "cordova-plugin-network-information/CDVConnection.m"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; explicitFileType = undefined; includeInIndex = 0; }; - 279BD4938BA54F7ABCCEFC0E /* CDVReachability.m */ = {isa = PBXFileReference; name = "CDVReachability.m"; path = "cordova-plugin-network-information/CDVReachability.m"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; explicitFileType = undefined; includeInIndex = 0; }; - 391D852A25F441A3855582E1 /* CDVConnection.h */ = {isa = PBXFileReference; name = "CDVConnection.h"; path = "cordova-plugin-network-information/CDVConnection.h"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; explicitFileType = undefined; includeInIndex = 0; }; - 9056B9226A1F4D3EA6BD1AE3 /* CDVReachability.h */ = {isa = PBXFileReference; name = "CDVReachability.h"; path = "cordova-plugin-network-information/CDVReachability.h"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; explicitFileType = undefined; includeInIndex = 0; }; - 1065E9EBB93145AA8CAFDE8A /* CDVSplashScreen.m */ = {isa = PBXFileReference; name = "CDVSplashScreen.m"; path = "cordova-plugin-splashscreen/CDVSplashScreen.m"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; explicitFileType = undefined; includeInIndex = 0; }; - 16CA61E384604A269060D490 /* CDVViewController+SplashScreen.m */ = {isa = PBXFileReference; name = "CDVViewController+SplashScreen.m"; path = "cordova-plugin-splashscreen/CDVViewController+SplashScreen.m"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; explicitFileType = undefined; includeInIndex = 0; }; - 4578B94774954F959F83F234 /* CDVSplashScreen.h */ = {isa = PBXFileReference; name = "CDVSplashScreen.h"; path = "cordova-plugin-splashscreen/CDVSplashScreen.h"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; explicitFileType = undefined; includeInIndex = 0; }; - E3EB360F480E4833900EAECA /* CDVViewController+SplashScreen.h */ = {isa = PBXFileReference; name = "CDVViewController+SplashScreen.h"; path = "cordova-plugin-splashscreen/CDVViewController+SplashScreen.h"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; explicitFileType = undefined; includeInIndex = 0; }; - AC21935FEAD34A7DA271CCF4 /* SocialSharing.m */ = {isa = PBXFileReference; name = "SocialSharing.m"; path = "cordova-plugin-x-socialsharing/SocialSharing.m"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; explicitFileType = undefined; includeInIndex = 0; }; - 914101A237AF4A50823AB148 /* SocialSharing.h */ = {isa = PBXFileReference; name = "SocialSharing.h"; path = "cordova-plugin-x-socialsharing/SocialSharing.h"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; explicitFileType = undefined; includeInIndex = 0; }; - E71962D2059240E3BCCFF098 /* MessageUI.framework */ = {isa = PBXFileReference; name = "MessageUI.framework"; path = "System/Library/Frameworks/MessageUI.framework"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = wrapper.framework; explicitFileType = undefined; includeInIndex = 0; }; - 51738B4AC1F2488D928587E2 /* AppDelegate+notification.m */ = {isa = PBXFileReference; name = "AppDelegate+notification.m"; path = "phonegap-plugin-push/AppDelegate+notification.m"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; explicitFileType = undefined; includeInIndex = 0; }; - 8E50FC1FE8224862947FA2D3 /* PushPlugin.m */ = {isa = PBXFileReference; name = "PushPlugin.m"; path = "phonegap-plugin-push/PushPlugin.m"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; explicitFileType = undefined; includeInIndex = 0; }; - 244D1A19F6214FEB8FF6B8F0 /* AppDelegate+notification.h */ = {isa = PBXFileReference; name = "AppDelegate+notification.h"; path = "phonegap-plugin-push/AppDelegate+notification.h"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; explicitFileType = undefined; includeInIndex = 0; }; - 4A0B9D17F3654DC0BC822CED /* PushPlugin.h */ = {isa = PBXFileReference; name = "PushPlugin.h"; path = "phonegap-plugin-push/PushPlugin.h"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; explicitFileType = undefined; includeInIndex = 0; }; + FF6B2D852F0C4C6097039B09 /* IonicKeyboard.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = IonicKeyboard.h; path = "ionic-plugin-keyboard/IonicKeyboard.h"; sourceTree = "<group>"; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -152,7 +146,8 @@ 0580F77611BF4A32B709B4AB /* libsqlite3.dylib in Frameworks */, C03FF8C4AD384677BC558F8E /* Bolts.framework in Frameworks */, 4F04AAC460204786A9B6F8D6 /* Parse.framework in Frameworks */, - A02C9C20257D48A3AB5125C9 /* MessageUI.framework in Frameworks */, + E698EEC9704745F093774EA7 /* MessageUI.framework in Frameworks */, + 323EAC7A00CC4C1B93E822FB /* CoreTelephony.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -215,7 +210,7 @@ 3047A50E1AB8057F00498E2A /* config */, 8D1107310486CEB800E47090 /* Stone Island-Info.plist */, 6AFF5BF81D6E424B00AB3073 /* CDVLaunchScreen.storyboard */, - 00599E51D9234D71BE6C6B79 /* CDVNotification.bundle */, + DAD7810D444648B9A0797E42 /* CDVNotification.bundle */, ); name = Resources; path = "Stone Island/Resources"; @@ -237,7 +232,8 @@ B6675D8E364642F0ABE3B97F /* libsqlite3.dylib */, 34D6F0009780486D8A07BD47 /* Bolts.framework */, 21B8104F65F9433D9A7D53F9 /* Parse.framework */, - E71962D2059240E3BCCFF098 /* MessageUI.framework */, + 3A31D2E2022D43BFA29F6CC9 /* MessageUI.framework */, + 5794EA67F4E2464080DFF4DD /* CoreTelephony.framework */, ); name = Frameworks; sourceTree = "<group>"; @@ -263,36 +259,32 @@ 307C750510C5A3420062BCA9 /* Plugins */ = { isa = PBXGroup; children = ( - 35719EF303D44796AE2F8232 /* IonicKeyboard.m */, - 4BEFB560983744AF95D76E66 /* UIWebViewExtension.m */, - CF48BF1935C2459594839AE5 /* IonicKeyboard.h */, - 06638D058B744ADBA7DF0E3E /* UIWebViewExtension.h */, 8961158EB65445E1BB6CB501 /* CDVParsePlugin.m */, 2ABCC9D074F74A0680DAE629 /* CDVParsePlugin.h */, - A14E782B69CC473DAD94F0C7 /* CDVLogger.m */, - 18F0008910714D37A5AAB051 /* CDVLogger.h */, - 5ABD34598B224612824BAE63 /* CDVDevice.m */, - 1D3E5D77A1C04222A06877D1 /* CDVDevice.h */, - 8661BF08EC7E4B558802CD5B /* CDVNotification.m */, - 91BCA5405B914228B95870B5 /* CDVNotification.h */, - 8C77AAEFAED7486E987AEB6B /* CDVLocation.m */, - 2028DD29E5AF40B897C31D46 /* CDVLocation.h */, - 7A42A487C79A4ADA9A06AF42 /* CDVInAppBrowser.m */, - 71D53167DC724B13A307C921 /* CDVInAppBrowser.h */, - 44DD171A422D46B1B1ADBF83 /* CDVConnection.m */, - 279BD4938BA54F7ABCCEFC0E /* CDVReachability.m */, - 391D852A25F441A3855582E1 /* CDVConnection.h */, - 9056B9226A1F4D3EA6BD1AE3 /* CDVReachability.h */, - 1065E9EBB93145AA8CAFDE8A /* CDVSplashScreen.m */, - 16CA61E384604A269060D490 /* CDVViewController+SplashScreen.m */, - 4578B94774954F959F83F234 /* CDVSplashScreen.h */, - E3EB360F480E4833900EAECA /* CDVViewController+SplashScreen.h */, - AC21935FEAD34A7DA271CCF4 /* SocialSharing.m */, - 914101A237AF4A50823AB148 /* SocialSharing.h */, - 51738B4AC1F2488D928587E2 /* AppDelegate+notification.m */, - 8E50FC1FE8224862947FA2D3 /* PushPlugin.m */, - 244D1A19F6214FEB8FF6B8F0 /* AppDelegate+notification.h */, - 4A0B9D17F3654DC0BC822CED /* PushPlugin.h */, + 8277330FE73D4EC2BE3F8833 /* CDVInAppBrowser.m */, + D700E79C081C45619C7AC7D1 /* CDVInAppBrowser.h */, + 093D0B348E9B4F359B8FC9FF /* NSString+URLEncoding.m */, + DD9A29C31C4644DB9C102D06 /* SocialSharing.m */, + 19A23454385A44C9A0D1F396 /* NSString+URLEncoding.h */, + 7DE194F983174929A645ABD7 /* SocialSharing.h */, + 7750C61417EE4678B793C993 /* CDVLogger.m */, + 72ABD61156534EE7BA2F1412 /* CDVLogger.h */, + D1673B263A2F4F09B0740EF6 /* CDVDevice.m */, + 39ABF20966474AE2A42B4758 /* CDVDevice.h */, + AF451107D3D340729EA6E833 /* CDVConnection.m */, + 6FA6E99A08594DD299BA4486 /* CDVReachability.m */, + 8082F878D0EF4B389ED94C47 /* CDVConnection.h */, + 02427C4B4DBC4EE199F76CDF /* CDVReachability.h */, + 9E448A31DBCF48A5A72A043C /* CDVNotification.m */, + 7850E3F3A8B743AD8569AB90 /* CDVNotification.h */, + 37E8F313C7404DB48950986D /* CDVSplashScreen.m */, + 3540F8B74DE04482B5F31396 /* CDVViewController+SplashScreen.m */, + 2343CD8001A046E08B747609 /* CDVSplashScreen.h */, + 6A123CECD10245049BAACCF8 /* CDVViewController+SplashScreen.h */, + E2F80BC4D82142208C55007C /* CDVLocation.m */, + 65A8F443D6D64E34B5906602 /* CDVLocation.h */, + 9533418C6E9249F89C11CE50 /* IonicKeyboard.m */, + FF6B2D852F0C4C6097039B09 /* IonicKeyboard.h */, ); name = Plugins; path = "Stone Island/Plugins"; @@ -336,11 +328,20 @@ isa = PBXProject; attributes = { LastUpgradeCheck = 510; + TargetAttributes = { + 1D6058900D05DD3D006BFB54 = { + DevelopmentTeam = C6JQTPGJ97; + ProvisioningStyle = Automatic; + }; + }; }; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "__NON-CLI__" */; + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Stone Island" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 1; + knownRegions = ( + en, + ); mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; projectDirPath = ""; projectReferences = ( @@ -374,7 +375,7 @@ 302D95F214D2391D003F00A1 /* MainViewController.xib in Resources */, 0207DA581B56EA530066E2B4 /* Images.xcassets in Resources */, 6AFF5BF91D6E424B00AB3073 /* CDVLaunchScreen.storyboard in Resources */, - 932BB112D8D247E59DBC8C55 /* CDVNotification.bundle in Resources */, + DB6AF83ACD124CA590A083F5 /* CDVNotification.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -406,21 +407,19 @@ 1D60589B0D05DD56006BFB54 /* main.m in Sources */, 1D3623260D0F684500981E51 /* AppDelegate.m in Sources */, 302D95F114D2391D003F00A1 /* MainViewController.m in Sources */, - C5CB6DF47C5D417891456B4D /* IonicKeyboard.m in Sources */, - CD393F23C04449E48147FEFA /* UIWebViewExtension.m in Sources */, 9BF4E6A8A54F45E4BDCB35E8 /* CDVParsePlugin.m in Sources */, - 203198C6486B4906B0D2EAF3 /* CDVLogger.m in Sources */, - E23A6ED28D414A9FA31C18D6 /* CDVDevice.m in Sources */, - CCDF00EE9C05477D9BD17C8D /* CDVNotification.m in Sources */, - C8B9F882FA744E0A85EBFA1F /* CDVLocation.m in Sources */, - 3325D19426B948B38F318D73 /* CDVInAppBrowser.m in Sources */, - 891101010EEA4D5491CA8B0B /* CDVConnection.m in Sources */, - 79688F2F8B804507B919AE23 /* CDVReachability.m in Sources */, - E95FE2CE364D40F896F2D12A /* CDVSplashScreen.m in Sources */, - AAF050E78DED436DB51647A4 /* CDVViewController+SplashScreen.m in Sources */, - 8C9F50FD574A4962975E4B50 /* SocialSharing.m in Sources */, - 566265D394B24F0F851B64B8 /* AppDelegate+notification.m in Sources */, - 05BFC92227794306A1A49D2D /* PushPlugin.m in Sources */, + 9164F345C7EF473E8E6CA215 /* CDVInAppBrowser.m in Sources */, + 3203B5020DFF4867998FD244 /* NSString+URLEncoding.m in Sources */, + F1AFF61D7EDB477FAC045FF0 /* SocialSharing.m in Sources */, + 619921E6CFA944AB9FD378F2 /* CDVLogger.m in Sources */, + E651384BEE9B46BCB4266E31 /* CDVDevice.m in Sources */, + 7605C3225E01411D8A3AD2AC /* CDVConnection.m in Sources */, + B11FABEA6586489DA90AAB86 /* CDVReachability.m in Sources */, + 4A76AA461B094826B553C98A /* CDVNotification.m in Sources */, + 5F44A0836473477ABEDEE9D0 /* CDVSplashScreen.m in Sources */, + 7BFF7D1E98634E0CB65D166A /* CDVViewController+SplashScreen.m in Sources */, + 98707D91F4C74B20AF61F26F /* CDVLocation.m in Sources */, + 575E294B759E463E9C66C496 /* IonicKeyboard.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -444,7 +443,14 @@ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + DEVELOPMENT_TEAM = C6JQTPGJ97; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"Stone Island/Plugins/com.parse.cordova.core.pushplugin\"", + "\"Stone Island/Plugins/com.parse.cordova.core.pushplugin\"", + ); GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -454,11 +460,6 @@ INFOPLIST_FILE = "Stone Island/Stone Island-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; PRODUCT_NAME = "Stone Island"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "\"Stone Island/Plugins/com.parse.cordova.core.pushplugin\"", - "\"Stone Island/Plugins/com.parse.cordova.core.pushplugin\"", - ); }; name = Debug; }; @@ -471,7 +472,14 @@ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = YES; + DEVELOPMENT_TEAM = C6JQTPGJ97; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"Stone Island/Plugins/com.parse.cordova.core.pushplugin\"", + "\"Stone Island/Plugins/com.parse.cordova.core.pushplugin\"", + ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "Stone Island/Stone Island-Prefix.pch"; GCC_THUMB_SUPPORT = NO; @@ -479,11 +487,6 @@ INFOPLIST_FILE = "Stone Island/Stone Island-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; PRODUCT_NAME = "Stone Island"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "\"Stone Island/Plugins/com.parse.cordova.core.pushplugin\"", - "\"Stone Island/Plugins/com.parse.cordova.core.pushplugin\"", - ); }; name = Release; }; @@ -550,7 +553,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "__NON-CLI__" */ = { + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Stone Island" */ = { isa = XCConfigurationList; buildConfigurations = ( C01FCF4F08A954540054247B /* Debug */, diff --git a/StoneIsland/platforms/ios/Stone Island.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/StoneIsland/platforms/ios/Stone Island.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/StoneIsland/platforms/ios/Stone Island.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Workspace + version = "1.0"> + <FileRef + location = "self:"> + </FileRef> +</Workspace> diff --git a/StoneIsland/platforms/ios/Stone Island.xcodeproj/project.xcworkspace/xcuserdata/jules.xcuserdatad/UserInterfaceState.xcuserstate b/StoneIsland/platforms/ios/Stone Island.xcodeproj/project.xcworkspace/xcuserdata/jules.xcuserdatad/UserInterfaceState.xcuserstate Binary files differnew file mode 100644 index 00000000..b1e1462b --- /dev/null +++ b/StoneIsland/platforms/ios/Stone Island.xcodeproj/project.xcworkspace/xcuserdata/jules.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/StoneIsland/platforms/ios/Stone Island.xcodeproj/xcuserdata/jules.xcuserdatad/xcschemes/Stone Island.xcscheme b/StoneIsland/platforms/ios/Stone Island.xcodeproj/xcuserdata/jules.xcuserdatad/xcschemes/Stone Island.xcscheme new file mode 100644 index 00000000..76aef775 --- /dev/null +++ b/StoneIsland/platforms/ios/Stone Island.xcodeproj/xcuserdata/jules.xcuserdatad/xcschemes/Stone Island.xcscheme @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Scheme + LastUpgradeVersion = "0810" + version = "1.3"> + <BuildAction + parallelizeBuildables = "YES" + buildImplicitDependencies = "YES"> + <BuildActionEntries> + <BuildActionEntry + buildForTesting = "YES" + buildForRunning = "YES" + buildForProfiling = "YES" + buildForArchiving = "YES" + buildForAnalyzing = "YES"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "1D6058900D05DD3D006BFB54" + BuildableName = "Stone Island.app" + BlueprintName = "Stone Island" + ReferencedContainer = "container:Stone Island.xcodeproj"> + </BuildableReference> + </BuildActionEntry> + </BuildActionEntries> + </BuildAction> + <TestAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + shouldUseLaunchSchemeArgsEnv = "YES"> + <Testables> + </Testables> + <MacroExpansion> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "1D6058900D05DD3D006BFB54" + BuildableName = "Stone Island.app" + BlueprintName = "Stone Island" + ReferencedContainer = "container:Stone Island.xcodeproj"> + </BuildableReference> + </MacroExpansion> + <AdditionalOptions> + </AdditionalOptions> + </TestAction> + <LaunchAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + launchStyle = "0" + useCustomWorkingDirectory = "NO" + ignoresPersistentStateOnLaunch = "NO" + debugDocumentVersioning = "YES" + debugServiceExtension = "internal" + allowLocationSimulation = "YES"> + <BuildableProductRunnable + runnableDebuggingMode = "0"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "1D6058900D05DD3D006BFB54" + BuildableName = "Stone Island.app" + BlueprintName = "Stone Island" + ReferencedContainer = "container:Stone Island.xcodeproj"> + </BuildableReference> + </BuildableProductRunnable> + <AdditionalOptions> + </AdditionalOptions> + </LaunchAction> + <ProfileAction + buildConfiguration = "Release" + shouldUseLaunchSchemeArgsEnv = "YES" + savedToolIdentifier = "" + useCustomWorkingDirectory = "NO" + debugDocumentVersioning = "YES"> + <BuildableProductRunnable + runnableDebuggingMode = "0"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "1D6058900D05DD3D006BFB54" + BuildableName = "Stone Island.app" + BlueprintName = "Stone Island" + ReferencedContainer = "container:Stone Island.xcodeproj"> + </BuildableReference> + </BuildableProductRunnable> + </ProfileAction> + <AnalyzeAction + buildConfiguration = "Debug"> + </AnalyzeAction> + <ArchiveAction + buildConfiguration = "Release" + revealArchiveInOrganizer = "YES"> + </ArchiveAction> +</Scheme> diff --git a/StoneIsland/platforms/ios/Stone Island.xcodeproj/xcuserdata/jules.xcuserdatad/xcschemes/xcschememanagement.plist b/StoneIsland/platforms/ios/Stone Island.xcodeproj/xcuserdata/jules.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..b41bffe9 --- /dev/null +++ b/StoneIsland/platforms/ios/Stone Island.xcodeproj/xcuserdata/jules.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>SchemeUserState</key> + <dict> + <key>Stone Island.xcscheme</key> + <dict> + <key>orderHint</key> + <integer>0</integer> + </dict> + </dict> + <key>SuppressBuildableAutocreation</key> + <dict> + <key>1D6058900D05DD3D006BFB54</key> + <dict> + <key>primary</key> + <true/> + </dict> + </dict> +</dict> +</plist> diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-40.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-40.png Binary files differindex e865adbc..d2617e23 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-40.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-40.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-40@2x.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-40@2x.png Binary files differindex 6d07dce5..1813fa48 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-40@2x.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-40@2x.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-50.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-50.png Binary files differindex 98a9d96d..531435f3 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-50.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-50.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-50@2x.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-50@2x.png Binary files differindex bac693f7..dffdf8ba 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-50@2x.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-50@2x.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-60.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-60.png Binary files differnew file mode 100644 index 00000000..dd612e83 --- /dev/null +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-60.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-60@2x.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-60@2x.png Binary files differindex 955af362..23c5b259 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-60@2x.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-60@2x.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-60@3x.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-60@3x.png Binary files differindex e1268916..da2863a4 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-60@3x.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-60@3x.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-72.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-72.png Binary files differindex 8c6e5df3..3094af16 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-72.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-72.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-72@2x.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-72@2x.png Binary files differindex dd819da6..9515e8dc 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-72@2x.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-72@2x.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-76.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-76.png Binary files differindex 63afe7f1..93e7a05d 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-76.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-76.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-76@2x.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-76@2x.png Binary files differindex 4cff29a2..351f06c9 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-76@2x.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-76@2x.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-83.5@2x.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-83.5@2x.png Binary files differindex 3c1a0115..52bafc1d 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-83.5@2x.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-83.5@2x.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-small.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-small.png Binary files differindex 0ea1c42f..cbe03b26 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-small.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-small.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-small@2x.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-small@2x.png Binary files differindex 2c72038e..8e3a96d6 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-small@2x.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-small@2x.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-small@3x.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-small@3x.png Binary files differindex 5c37dfc2..a40b6358 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-small@3x.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon-small@3x.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon.png Binary files differindex b2571a71..2c9b6664 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon@2x.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon@2x.png Binary files differindex d75098f5..cf5b68db 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon@2x.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/AppIcon.appiconset/icon@2x.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-568h@2x~iphone.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-568h@2x~iphone.png Binary files differindex 10ed683c..47079c45 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-568h@2x~iphone.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-568h@2x~iphone.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-667h.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-667h.png Binary files differindex d9bcf61d..57a8f40e 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-667h.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-667h.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-736h.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-736h.png Binary files differindex 1fcef229..2f00da21 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-736h.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-736h.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Landscape-736h.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Landscape-736h.png Binary files differindex eae0792d..fc6512f7 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Landscape-736h.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Landscape-736h.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Landscape@2x~ipad.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Landscape@2x~ipad.png Binary files differindex 1fc8c7db..f0fa0658 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Landscape@2x~ipad.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Landscape@2x~ipad.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Landscape~ipad.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Landscape~ipad.png Binary files differindex 58ea2fbd..89964903 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Landscape~ipad.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Landscape~ipad.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Portrait@2x~ipad.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Portrait@2x~ipad.png Binary files differindex 1570b37d..9002f6f3 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Portrait@2x~ipad.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Portrait@2x~ipad.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Portrait~ipad.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Portrait~ipad.png Binary files differindex 223e75d0..2916e875 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Portrait~ipad.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default-Portrait~ipad.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default@2x~iphone.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default@2x~iphone.png Binary files differindex 0098dc73..13ada67a 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default@2x~iphone.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default@2x~iphone.png diff --git a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default~iphone.png b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default~iphone.png Binary files differindex 42b8fdea..19d2b2ae 100644 --- a/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default~iphone.png +++ b/StoneIsland/platforms/ios/Stone Island/Images.xcassets/LaunchImage.launchimage/Default~iphone.png diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/com.ionic.keyboard/UIWebViewExtension.h b/StoneIsland/platforms/ios/Stone Island/Plugins/com.ionic.keyboard/UIWebViewExtension.h deleted file mode 100755 index 1d6c293d..00000000 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/com.ionic.keyboard/UIWebViewExtension.h +++ /dev/null @@ -1,4 +0,0 @@ -@interface UIWebView (HackishAccessoryHiding) -@property (nonatomic, assign) BOOL hackishlyHidesInputAccessoryView; -//@property (nonatomic, assign) BOOL styleDark; -@end diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/com.ionic.keyboard/UIWebViewExtension.m b/StoneIsland/platforms/ios/Stone Island/Plugins/com.ionic.keyboard/UIWebViewExtension.m deleted file mode 100755 index 25403e6f..00000000 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/com.ionic.keyboard/UIWebViewExtension.m +++ /dev/null @@ -1,109 +0,0 @@ -#import <objc/runtime.h> -#import <UIKit/UIKit.h> -#import "UIWebViewExtension.h" - -//Credit: https://gist.github.com/bjhomer/2048571 -//Also: http://stackoverflow.com/a/23398487/1091751 -@implementation UIWebView (HackishAccessoryHiding) - -static const char * const hackishFixClassName = "UIWebBrowserViewMinusAccessoryView"; -static Class hackishFixClass = Nil; - -- (UIView *)hackishlyFoundBrowserView { - UIScrollView *scrollView = self.scrollView; - - UIView *browserView = nil; - for (UIView *subview in scrollView.subviews) { - if ([NSStringFromClass([subview class]) hasPrefix:@"UIWebBrowserView"]) { - browserView = subview; - break; - } - } - return browserView; -} - -- (id)methodReturningNil { - return nil; -} - -- (void)ensureHackishSubclassExistsOfBrowserViewClass:(Class)browserViewClass { - if (!hackishFixClass) { - Class newClass = objc_allocateClassPair(browserViewClass, hackishFixClassName, 0); - IMP nilImp = [self methodForSelector:@selector(methodReturningNil)]; - class_addMethod(newClass, @selector(inputAccessoryView), nilImp, "@@:"); - objc_registerClassPair(newClass); - - hackishFixClass = newClass; - } -} - -- (BOOL) hackishlyHidesInputAccessoryView { - UIView *browserView = [self hackishlyFoundBrowserView]; - return [browserView class] == hackishFixClass; -} - -- (void) setHackishlyHidesInputAccessoryView:(BOOL)value { - UIView *browserView = [self hackishlyFoundBrowserView]; - if (browserView == nil) { - return; - } - [self ensureHackishSubclassExistsOfBrowserViewClass:[browserView class]]; - - if (value) { - object_setClass(browserView, hackishFixClass); - } - else { - Class normalClass = objc_getClass("UIWebBrowserView"); - object_setClass(browserView, normalClass); - } - [browserView reloadInputViews]; -} -/* ---------------------------------------------------------------- */ - -/* -- (UIKeyboardAppearance) darkKeyboardAppearanceTemplateMethod { - return UIKeyboardAppearanceDark; -} - -- (UIKeyboardAppearance) lightKeyboardAppearanceTemplateMethod { - return UIKeyboardAppearanceLight; -} - -- (BOOL) styleDark { - UIView *browserView = [self hackishlyFoundBrowserView]; - if (browserView == nil) { - return false; - } - - Method m = class_getInstanceMethod( [self class], @selector( darkKeyboardAppearanceTemplateMethod ) ); - IMP imp = method_getImplementation( m ); - - Method m2 = class_getInstanceMethod( [browserView class], @selector(keyboardAppearance) ); - IMP imp2 = method_getImplementation( m2 ); - - return imp == imp2; -} - -- (void) setStyleDark:(BOOL)styleDark { - UIView *browserView = [self hackishlyFoundBrowserView]; - if (browserView == nil) { - return; - } - - if ( styleDark ) { - Method m = class_getInstanceMethod( [self class], @selector( darkKeyboardAppearanceTemplateMethod ) ); - IMP imp = method_getImplementation( m ); - const char* typeEncoding = method_getTypeEncoding( m ); - class_replaceMethod( [browserView class], @selector(keyboardAppearance), imp, typeEncoding ); - } - else { - Method m = class_getInstanceMethod( [self class], @selector( lightKeyboardAppearanceTemplateMethod ) ); - IMP imp = method_getImplementation( m ); - const char* typeEncoding = method_getTypeEncoding( m ); - class_replaceMethod( [browserView class], @selector(keyboardAppearance), imp, typeEncoding ); - } -} -*/ - -@end - diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-console/CDVLogger.h b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-console/CDVLogger.h index 7cfb3063..7cfb3063 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-console/CDVLogger.h +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-console/CDVLogger.h diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-console/CDVLogger.m b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-console/CDVLogger.m index ccfa3a51..ccfa3a51 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-console/CDVLogger.m +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-console/CDVLogger.m diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-device/CDVDevice.h b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-device/CDVDevice.h index a146d882..a146d882 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-device/CDVDevice.h +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-device/CDVDevice.h diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-device/CDVDevice.m b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-device/CDVDevice.m index 5a3f4708..4d75a574 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-device/CDVDevice.m +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-device/CDVDevice.m @@ -19,6 +19,7 @@ #include <sys/types.h> #include <sys/sysctl.h> +#include "TargetConditionals.h" #import <Cordova/CDV.h> #import "CDVDevice.h" @@ -49,21 +50,23 @@ { NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults]; static NSString* UUID_KEY = @"CDVUUID"; - + + // Check user defaults first to maintain backwards compaitibility with previous versions + // which didn't user identifierForVendor NSString* app_uuid = [userDefaults stringForKey:UUID_KEY]; - if (app_uuid == nil) { - CFUUIDRef uuidRef = CFUUIDCreate(kCFAllocatorDefault); - CFStringRef uuidString = CFUUIDCreateString(kCFAllocatorDefault, uuidRef); + if ([device respondsToSelector:@selector(identifierForVendor)]) { + app_uuid = [[device identifierForVendor] UUIDString]; + } else { + CFUUIDRef uuid = CFUUIDCreate(NULL); + app_uuid = (__bridge_transfer NSString *)CFUUIDCreateString(NULL, uuid); + CFRelease(uuid); + } - app_uuid = [NSString stringWithString:(__bridge NSString*)uuidString]; [userDefaults setObject:app_uuid forKey:UUID_KEY]; [userDefaults synchronize]; - - CFRelease(uuidString); - CFRelease(uuidRef); } - + return app_uuid; } @@ -78,17 +81,16 @@ - (NSDictionary*)deviceProperties { UIDevice* device = [UIDevice currentDevice]; - NSMutableDictionary* devProps = [NSMutableDictionary dictionaryWithCapacity:4]; - [devProps setObject:@"Apple" forKey:@"manufacturer"]; - [devProps setObject:[device modelVersion] forKey:@"model"]; - [devProps setObject:@"iOS" forKey:@"platform"]; - [devProps setObject:[device systemVersion] forKey:@"version"]; - [devProps setObject:[self uniqueAppInstanceIdentifier:device] forKey:@"uuid"]; - [devProps setObject:[[self class] cordovaVersion] forKey:@"cordova"]; - - NSDictionary* devReturn = [NSDictionary dictionaryWithDictionary:devProps]; - return devReturn; + return @{ + @"manufacturer": @"Apple", + @"model": [device modelVersion], + @"platform": @"iOS", + @"version": [device systemVersion], + @"uuid": [self uniqueAppInstanceIdentifier:device], + @"cordova": [[self class] cordovaVersion], + @"isVirtual": @([self isVirtual]) + }; } + (NSString*)cordovaVersion @@ -96,4 +98,15 @@ return CDV_VERSION; } +- (BOOL)isVirtual +{ + #if TARGET_OS_SIMULATOR + return true; + #elif TARGET_IPHONE_SIMULATOR + return true; + #else + return false; + #endif +} + @end diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-dialogs/CDVNotification.h b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-dialogs/CDVNotification.h index 9253f6a9..9253f6a9 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-dialogs/CDVNotification.h +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-dialogs/CDVNotification.h diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-dialogs/CDVNotification.m b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-dialogs/CDVNotification.m index 1581ad3c..0dd3d2cb 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-dialogs/CDVNotification.m +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-dialogs/CDVNotification.m @@ -23,6 +23,7 @@ #define DIALOG_TYPE_PROMPT @"prompt" static void soundCompletionCallback(SystemSoundID ssid, void* data); +static NSMutableArray *alertList = nil; @implementation CDVNotification @@ -39,7 +40,7 @@ static void soundCompletionCallback(SystemSoundID ssid, void* data); - (void)showDialogWithMessage:(NSString*)message title:(NSString*)title buttons:(NSArray*)buttons defaultText:(NSString*)defaultText callbackId:(NSString*)callbackId dialogType:(NSString*)dialogType { - NSUInteger count = [buttons count]; + int count = (int)[buttons count]; #ifdef __IPHONE_8_0 if (NSClassFromString(@"UIAlertController")) { @@ -58,33 +59,32 @@ static void soundCompletionCallback(SystemSoundID ssid, void* data); alertController.view.frame = alertFrame; } - + + __weak CDVNotification* weakNotif = self; + for (int n = 0; n < count; n++) { - - UIAlertAction* action = [UIAlertAction actionWithTitle:[buttons objectAtIndex:n] style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) - { - CDVPluginResult* result; - - if ([dialogType isEqualToString:DIALOG_TYPE_PROMPT]) { - - NSString* value0 = [[alertController.textFields objectAtIndex:0] text]; - NSDictionary* info = @{ - @"buttonIndex":@(n + 1), - @"input1":(value0 ? value0 : [NSNull null]) - }; - result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:info]; - - } else { - - result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsInt:(int)(n + 1)]; - - } - - [self.commandDelegate sendPluginResult:result callbackId:callbackId]; - - }]; - [alertController addAction:action]; - + [alertController addAction:[UIAlertAction actionWithTitle:[buttons objectAtIndex:n] + style:UIAlertActionStyleDefault + handler:^(UIAlertAction * action) + { + CDVPluginResult* result; + + if ([dialogType isEqualToString:DIALOG_TYPE_PROMPT]) + { + NSString* value0 = [[alertController.textFields objectAtIndex:0] text]; + NSDictionary* info = @{ + @"buttonIndex":@(n + 1), + @"input1":(value0 ? value0 : [NSNull null]) + }; + result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:info]; + } + else + { + result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsInt:(int)(n + 1)]; + } + + [weakNotif.commandDelegate sendPluginResult:result callbackId:callbackId]; + }]]; } if ([dialogType isEqualToString:DIALOG_TYPE_PROMPT]) { @@ -94,12 +94,19 @@ static void soundCompletionCallback(SystemSoundID ssid, void* data); }]; } + if(!alertList) + alertList = [[NSMutableArray alloc] init]; + [alertList addObject:alertController]; + if ([alertList count]==1) { + [self presentAlertcontroller]; + } - [self.viewController presentViewController:alertController animated:YES completion:nil]; - - } else { + } + else + { #endif + CDVAlertView* alertView = [[CDVAlertView alloc] initWithTitle:title message:message @@ -183,6 +190,14 @@ static void soundCompletionCallback(SystemSoundID ssid, void* data); [self.commandDelegate sendPluginResult:result callbackId:cdvAlertView.callbackId]; } +- (void)didPresentAlertView:(UIAlertView*)alertView +{ + //show keyboard on iOS 8 + if (alertView.alertViewStyle == UIAlertViewStylePlainTextInput){ + [[alertView textFieldAtIndex:0] selectAll:nil]; + } +} + static void playBeep(int count) { SystemSoundID completeSound; NSInteger cbDataCount = count; @@ -211,6 +226,26 @@ static void soundCompletionCallback(SystemSoundID ssid, void* data) { playBeep([count intValue]); } +-(UIViewController *)getTopPresentedViewController { + UIViewController *presentingViewController = self.viewController; + while(presentingViewController.presentedViewController != nil && ![presentingViewController.presentedViewController isBeingDismissed]) + { + presentingViewController = presentingViewController.presentedViewController; + } + return presentingViewController; +} + +-(void)presentAlertcontroller { + + __weak CDVNotification* weakNotif = self; + [self.getTopPresentedViewController presentViewController:[alertList firstObject] animated:YES completion:^{ + [alertList removeObject:[alertList firstObject]]; + if ([alertList count]>0) { + [weakNotif presentAlertcontroller]; + } + }]; + +} @end diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-geolocation/CDVLocation.h b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-geolocation/CDVLocation.h index cce2738f..cce2738f 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-geolocation/CDVLocation.h +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-geolocation/CDVLocation.h diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-geolocation/CDVLocation.m b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-geolocation/CDVLocation.m index 8b543c8e..e4b34a11 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-geolocation/CDVLocation.m +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-geolocation/CDVLocation.m @@ -122,17 +122,17 @@ NSUInteger code = [CLLocationManager authorizationStatus]; if (code == kCLAuthorizationStatusNotDetermined && ([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)] || [self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)])) { //iOS8+ __highAccuracyEnabled = enableHighAccuracy; - if([[NSBundle mainBundle] objectForInfoDictionaryKey:@"NSLocationAlwaysUsageDescription"]){ - [self.locationManager requestAlwaysAuthorization]; - } else if([[NSBundle mainBundle] objectForInfoDictionaryKey:@"NSLocationWhenInUseUsageDescription"]) { - [self.locationManager requestWhenInUseAuthorization]; + if([[NSBundle mainBundle] objectForInfoDictionaryKey:@"NSLocationWhenInUseUsageDescription"]){ + [self.locationManager requestWhenInUseAuthorization]; + } else if([[NSBundle mainBundle] objectForInfoDictionaryKey:@"NSLocationAlwaysUsageDescription"]) { + [self.locationManager requestAlwaysAuthorization]; } else { NSLog(@"[Warning] No NSLocationAlwaysUsageDescription or NSLocationWhenInUseUsageDescription key is defined in the Info.plist file."); } return; } #endif - + // Tell the location manager to start notifying us of location updates. We // first stop, and then start the updating to ensure we get at least one // update, even if our location did not change. @@ -148,9 +148,8 @@ self.locationManager.desiredAccuracy = kCLLocationAccuracyBest; } else { __highAccuracyEnabled = NO; - // TODO: Set distance filter to 10 meters? and desired accuracy to nearest ten meters? arbitrary. self.locationManager.distanceFilter = 10; - self.locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters; + self.locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers; } } @@ -193,35 +192,37 @@ - (void)getLocation:(CDVInvokedUrlCommand*)command { - NSString* callbackId = command.callbackId; - BOOL enableHighAccuracy = [[command argumentAtIndex:0] boolValue]; + [self.commandDelegate runInBackground:^{ + NSString* callbackId = command.callbackId; + BOOL enableHighAccuracy = [[command argumentAtIndex:0] boolValue]; - if ([self isLocationServicesEnabled] == NO) { - NSMutableDictionary* posError = [NSMutableDictionary dictionaryWithCapacity:2]; - [posError setObject:[NSNumber numberWithInt:PERMISSIONDENIED] forKey:@"code"]; - [posError setObject:@"Location services are disabled." forKey:@"message"]; - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsDictionary:posError]; - [self.commandDelegate sendPluginResult:result callbackId:callbackId]; - } else { - if (!self.locationData) { - self.locationData = [[CDVLocationData alloc] init]; - } - CDVLocationData* lData = self.locationData; - if (!lData.locationCallbacks) { - lData.locationCallbacks = [NSMutableArray arrayWithCapacity:1]; - } + if ([self isLocationServicesEnabled] == NO) { + NSMutableDictionary* posError = [NSMutableDictionary dictionaryWithCapacity:2]; + [posError setObject:[NSNumber numberWithInt:PERMISSIONDENIED] forKey:@"code"]; + [posError setObject:@"Location services are disabled." forKey:@"message"]; + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsDictionary:posError]; + [self.commandDelegate sendPluginResult:result callbackId:callbackId]; + } else { + if (!self.locationData) { + self.locationData = [[CDVLocationData alloc] init]; + } + CDVLocationData* lData = self.locationData; + if (!lData.locationCallbacks) { + lData.locationCallbacks = [NSMutableArray arrayWithCapacity:1]; + } - if (!__locationStarted || (__highAccuracyEnabled != enableHighAccuracy)) { - // add the callbackId into the array so we can call back when get data - if (callbackId != nil) { - [lData.locationCallbacks addObject:callbackId]; + if (!__locationStarted || (__highAccuracyEnabled != enableHighAccuracy)) { + // add the callbackId into the array so we can call back when get data + if (callbackId != nil) { + [lData.locationCallbacks addObject:callbackId]; + } + // Tell the location manager to start notifying us of heading updates + [self startLocation:enableHighAccuracy]; + } else { + [self returnLocationInfo:callbackId andKeepCallback:NO]; } - // Tell the location manager to start notifying us of heading updates - [self startLocation:enableHighAccuracy]; - } else { - [self returnLocationInfo:callbackId andKeepCallback:NO]; } - } + }]; } - (void)addWatch:(CDVInvokedUrlCommand*)command diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-inappbrowser/CDVInAppBrowser.h b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-inappbrowser/CDVInAppBrowser.h index 1ccc7b14..6bb0ec16 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-inappbrowser/CDVInAppBrowser.h +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-inappbrowser/CDVInAppBrowser.h @@ -30,7 +30,6 @@ @class CDVInAppBrowserViewController; @interface CDVInAppBrowser : CDVPlugin { - BOOL _injectedIframeBridge; } @property (nonatomic, retain) CDVInAppBrowserViewController* inAppBrowserViewController; diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-inappbrowser/CDVInAppBrowser.m b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-inappbrowser/CDVInAppBrowser.m index 47a8ab3a..b342ca73 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-inappbrowser/CDVInAppBrowser.m +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-inappbrowser/CDVInAppBrowser.m @@ -47,6 +47,11 @@ _callbackIdPattern = nil; } +- (id)settingForKey:(NSString*)key +{ + return [self.commandDelegate.settings objectForKey:[key lowercaseString]]; +} + - (void)onReset { [self close:nil]; @@ -137,8 +142,16 @@ } if (self.inAppBrowserViewController == nil) { - NSString* originalUA = [CDVUserAgentUtil originalUserAgent]; - self.inAppBrowserViewController = [[CDVInAppBrowserViewController alloc] initWithUserAgent:originalUA prevUserAgent:[self.commandDelegate userAgent] browserOptions: browserOptions]; + NSString* userAgent = [CDVUserAgentUtil originalUserAgent]; + NSString* overrideUserAgent = [self settingForKey:@"OverrideUserAgent"]; + NSString* appendUserAgent = [self settingForKey:@"AppendUserAgent"]; + if(overrideUserAgent){ + userAgent = overrideUserAgent; + } + if(appendUserAgent){ + userAgent = [userAgent stringByAppendingString: appendUserAgent]; + } + self.inAppBrowserViewController = [[CDVInAppBrowserViewController alloc] initWithUserAgent:userAgent prevUserAgent:[self.commandDelegate userAgent] browserOptions: browserOptions]; self.inAppBrowserViewController.navigationDelegate = self; if ([self.viewController conformsToProtocol:@protocol(CDVScreenOrientationDelegate)]) { @@ -218,6 +231,7 @@ initWithRootViewController:self.inAppBrowserViewController]; nav.orientationDelegate = self.inAppBrowserViewController; nav.navigationBarHidden = YES; + nav.modalPresentationStyle = self.inAppBrowserViewController.modalPresentationStyle; __weak CDVInAppBrowser* weakSelf = self; @@ -231,25 +245,25 @@ - (void)openInCordovaWebView:(NSURL*)url withOptions:(NSString*)options { - if ([self.commandDelegate URLIsWhitelisted:url]) { - NSURLRequest* request = [NSURLRequest requestWithURL:url]; + NSURLRequest* request = [NSURLRequest requestWithURL:url]; + #ifdef __CORDOVA_4_0_0 - [self.webViewEngine loadRequest:request]; + // the webview engine itself will filter for this according to <allow-navigation> policy + // in config.xml for cordova-ios-4.0 + [self.webViewEngine loadRequest:request]; #else + if ([self.commandDelegate URLIsWhitelisted:url]) { [self.webView loadRequest:request]; -#endif } else { // this assumes the InAppBrowser can be excepted from the white-list [self openInInAppBrowser:url withOptions:options]; } +#endif } - (void)openInSystem:(NSURL*)url { - if ([[UIApplication sharedApplication] canOpenURL:url]) { - [[UIApplication sharedApplication] openURL:url]; - } else { // handle any custom schemes to plugins - [[NSNotificationCenter defaultCenter] postNotification:[NSNotification notificationWithName:CDVPluginHandleOpenURLNotification object:url]]; - } + [[NSNotificationCenter defaultCenter] postNotification:[NSNotification notificationWithName:CDVPluginHandleOpenURLNotification object:url]]; + [[UIApplication sharedApplication] openURL:url]; } // This is a helper method for the inject{Script|Style}{Code|File} API calls, which @@ -263,11 +277,8 @@ - (void)injectDeferredObject:(NSString*)source withWrapper:(NSString*)jsWrapper { - if (!_injectedIframeBridge) { - _injectedIframeBridge = YES; - // Create an iframe bridge in the new document to communicate with the CDVInAppBrowserViewController - [self.inAppBrowserViewController.webView stringByEvaluatingJavaScriptFromString:@"(function(d){var e = _cdvIframeBridge = d.createElement('iframe');e.style.display='none';d.body.appendChild(e);})(document)"]; - } + // Ensure an iframe bridge is created to communicate with the CDVInAppBrowserViewController + [self.inAppBrowserViewController.webView stringByEvaluatingJavaScriptFromString:@"(function(d){_cdvIframeBridge=d.getElementById('_cdvIframeBridge');if(!_cdvIframeBridge) {var e = _cdvIframeBridge = d.createElement('iframe');e.id='_cdvIframeBridge'; e.style.display='none';d.body.appendChild(e);}})(document)"]; if (jsWrapper != nil) { NSData* jsonData = [NSJSONSerialization dataWithJSONObject:@[source] options:0 error:nil]; @@ -390,7 +401,14 @@ [self.commandDelegate sendPluginResult:pluginResult callbackId:scriptCallbackId]; return NO; } - } else if ((self.callbackId != nil) && isTopLevelNavigation) { + } + //if is an app store link, let the system handle it, otherwise it fails to load it + else if ([[ url scheme] isEqualToString:@"itms-appss"] || [[ url scheme] isEqualToString:@"itms-apps"]) { + [theWebView stopLoading]; + [self openInSystem:url]; + return NO; + } + else if ((self.callbackId != nil) && isTopLevelNavigation) { // Send a loadstart event for each top-level navigation (includes redirects). CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:@{@"type":@"loadstart", @"url":[url absoluteString]}]; @@ -404,7 +422,6 @@ - (void)webViewDidStartLoad:(UIWebView*)theWebView { - _injectedIframeBridge = NO; } - (void)webViewDidFinishLoad:(UIWebView*)theWebView @@ -512,15 +529,15 @@ self.webView.scalesPageToFit = NO; self.webView.userInteractionEnabled = YES; - self.spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]; + self.spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; self.spinner.alpha = 1.000; self.spinner.autoresizesSubviews = YES; - self.spinner.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin; + self.spinner.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleRightMargin); self.spinner.clearsContextBeforeDrawing = NO; self.spinner.clipsToBounds = NO; self.spinner.contentMode = UIViewContentModeScaleToFill; - self.spinner.frame = CGRectMake(454.0, 231.0, 20.0, 20.0); - self.spinner.hidden = YES; + self.spinner.frame = CGRectMake(CGRectGetMidX(self.webView.frame), CGRectGetMidY(self.webView.frame), 20.0, 20.0); + self.spinner.hidden = NO; self.spinner.hidesWhenStopped = YES; self.spinner.multipleTouchEnabled = NO; self.spinner.opaque = NO; @@ -749,6 +766,10 @@ return UIStatusBarStyleDefault; } +- (BOOL)prefersStatusBarHidden { + return NO; +} + - (void)close { [CDVUserAgentUtil releaseLock:&_userAgentLockToken]; @@ -988,19 +1009,38 @@ @implementation CDVInAppBrowserNavigationController : UINavigationController +- (void) dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion { + if ( self.presentedViewController) { + [super dismissViewControllerAnimated:flag completion:completion]; + } +} + - (void) viewDidLoad { CGRect frame = [UIApplication sharedApplication].statusBarFrame; // simplified from: http://stackoverflow.com/a/25669695/219684 - UIToolbar* bgToolbar = [[UIToolbar alloc] initWithFrame:frame]; + UIToolbar* bgToolbar = [[UIToolbar alloc] initWithFrame:[self invertFrameIfNeeded:frame]]; bgToolbar.barStyle = UIBarStyleDefault; + [bgToolbar setAutoresizingMask:UIViewAutoresizingFlexibleWidth]; [self.view addSubview:bgToolbar]; [super viewDidLoad]; } +- (CGRect) invertFrameIfNeeded:(CGRect)rect { + // We need to invert since on iOS 7 frames are always in Portrait context + if (!IsAtLeastiOSVersion(@"8.0")) { + if (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation])) { + CGFloat temp = rect.size.width; + rect.size.width = rect.size.height; + rect.size.height = temp; + } + rect.origin = CGPointZero; + } + return rect; +} #pragma mark CDVScreenOrientationDelegate diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-network-information/CDVConnection.h b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-network-information/CDVConnection.h index 8add0279..8add0279 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-network-information/CDVConnection.h +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-network-information/CDVConnection.h diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-network-information/CDVConnection.m b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-network-information/CDVConnection.m index 37497675..6715322a 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-network-information/CDVConnection.m +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-network-information/CDVConnection.m @@ -16,6 +16,7 @@ specific language governing permissions and limitations under the License. */ +#import <CoreTelephony/CTTelephonyNetworkInfo.h> #import "CDVConnection.h" #import "CDVReachability.h" @@ -57,6 +58,32 @@ if (isConnectionRequired) { return @"none"; } else { + if ([[[UIDevice currentDevice] systemVersion] compare:@"7.0" options:NSNumericSearch] != NSOrderedAscending) { + CTTelephonyNetworkInfo *telephonyInfo = [CTTelephonyNetworkInfo new]; + if ([telephonyInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyGPRS]) { + return @"2g"; + } else if ([telephonyInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyEdge]) { + return @"2g"; + } else if ([telephonyInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyWCDMA]) { + return @"3g"; + } else if ([telephonyInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyHSDPA]) { + return @"3g"; + } else if ([telephonyInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyHSUPA]) { + return @"3g"; + } else if ([telephonyInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyCDMA1x]) { + return @"3g"; + } else if ([telephonyInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyCDMAEVDORev0]) { + return @"3g"; + } else if ([telephonyInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyCDMAEVDORevA]) { + return @"3g"; + } else if ([telephonyInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyCDMAEVDORevB]) { + return @"3g"; + } else if ([telephonyInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyeHRPD]) { + return @"3g"; + } else if ([telephonyInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyLTE]) { + return @"4g"; + } + } return @"cellular"; } } @@ -118,7 +145,9 @@ [self.internetReach startNotifier]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateConnectionType:) name:kReachabilityChangedNotification object:nil]; - if (&UIApplicationDidEnterBackgroundNotification && &UIApplicationWillEnterForegroundNotification) { + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateConnectionType:) + name:CTRadioAccessTechnologyDidChangeNotification object:nil]; + if (UIApplicationDidEnterBackgroundNotification && UIApplicationWillEnterForegroundNotification) { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onPause) name:UIApplicationDidEnterBackgroundNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onResume) name:UIApplicationWillEnterForegroundNotification object:nil]; } diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-network-information/CDVReachability.h b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-network-information/CDVReachability.h index 01a95c35..01a95c35 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-network-information/CDVReachability.h +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-network-information/CDVReachability.h diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-network-information/CDVReachability.m b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-network-information/CDVReachability.m index c60261ae..1399867e 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-network-information/CDVReachability.m +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-network-information/CDVReachability.m @@ -142,6 +142,9 @@ static void CDVReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkRe retVal->reachabilityRef = reachability; retVal->localWiFiRef = NO; } + else { + CFRelease(reachability); + } } return retVal; } @@ -156,6 +159,9 @@ static void CDVReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkRe retVal->reachabilityRef = reachability; retVal->localWiFiRef = NO; } + else { + CFRelease(reachability); + } } return retVal; } diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-splashscreen/CDVSplashScreen.h b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-splashscreen/CDVSplashScreen.h index 0d6ae397..ec5d6022 100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-splashscreen/CDVSplashScreen.h +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-splashscreen/CDVSplashScreen.h @@ -23,6 +23,7 @@ typedef struct { BOOL iPhone; BOOL iPad; + BOOL iPhone4; BOOL iPhone5; BOOL iPhone6; BOOL iPhone6Plus; @@ -35,6 +36,7 @@ typedef struct { UIImageView* _imageView; NSString* _curImageName; BOOL _visible; + BOOL _destroyed; } - (void)show:(CDVInvokedUrlCommand*)command; diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-splashscreen/CDVSplashScreen.m b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-splashscreen/CDVSplashScreen.m index a1add304..8ad8116b 100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-splashscreen/CDVSplashScreen.m +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-splashscreen/CDVSplashScreen.m @@ -23,6 +23,7 @@ #import "CDVViewController+SplashScreen.h" #define kSplashScreenDurationDefault 3000.0f +#define kFadeDurationDefault 500.0f @implementation CDVSplashScreen @@ -41,7 +42,7 @@ - (void)hide:(CDVInvokedUrlCommand*)command { - [self setVisible:NO]; + [self setVisible:NO andForce:YES]; } - (void)pageDidLoad @@ -76,7 +77,7 @@ BOOL autorotateValue = (device.iPad || device.iPhone6Plus) ? [(CDVViewController *)self.viewController shouldAutorotateDefaultValue] : NO; - + [(CDVViewController *)self.viewController setEnabledAutorotation:autorotateValue]; NSString* topActivityIndicator = [self.commandDelegate.settings objectForKey:[@"TopActivityIndicator" lowercaseString]]; @@ -120,6 +121,7 @@ [parentView addObserver:self forKeyPath:@"bounds" options:0 context:nil]; [self updateImage]; + _destroyed = NO; } - (void)hideViews @@ -130,6 +132,7 @@ - (void)destroyViews { + _destroyed = YES; [(CDVViewController *)self.viewController setEnabledAutorotation:[(CDVViewController *)self.viewController shouldAutorotateDefaultValue]]; [_imageView removeFromSuperview]; @@ -139,30 +142,39 @@ _curImageName = nil; self.viewController.view.userInteractionEnabled = YES; // re-enable user interaction upon completion - [self.viewController.view removeObserver:self forKeyPath:@"frame"]; - [self.viewController.view removeObserver:self forKeyPath:@"bounds"]; + @try { + [self.viewController.view removeObserver:self forKeyPath:@"frame"]; + [self.viewController.view removeObserver:self forKeyPath:@"bounds"]; + } + @catch (NSException *exception) { + // When reloading the page from a remotely connected Safari, there + // are no observers, so the removeObserver method throws an exception, + // that we can safely ignore. + // Alternatively we can check whether there are observers before calling removeObserver + } } - (CDV_iOSDevice) getCurrentDevice { CDV_iOSDevice device; - + UIScreen* mainScreen = [UIScreen mainScreen]; CGFloat mainScreenHeight = mainScreen.bounds.size.height; CGFloat mainScreenWidth = mainScreen.bounds.size.width; - + int limit = MAX(mainScreenHeight,mainScreenWidth); - + device.iPad = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad); device.iPhone = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone); device.retina = ([mainScreen scale] == 2.0); + device.iPhone4 = (device.iPhone && limit == 480.0); device.iPhone5 = (device.iPhone && limit == 568.0); // note these below is not a true device detect, for example if you are on an // iPhone 6/6+ but the app is scaled it will prob set iPhone5 as true, but // this is appropriate for detecting the runtime screen environment device.iPhone6 = (device.iPhone && limit == 667.0); device.iPhone6Plus = (device.iPhone && limit == 736.0); - + return device; } @@ -170,15 +182,15 @@ { // Use UILaunchImageFile if specified in plist. Otherwise, use Default. NSString* imageName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UILaunchImageFile"]; - + NSUInteger supportedOrientations = [orientationDelegate supportedInterfaceOrientations]; - + // Checks to see if the developer has locked the orientation to use only one of Portrait or Landscape BOOL supportsLandscape = (supportedOrientations & UIInterfaceOrientationMaskLandscape); BOOL supportsPortrait = (supportedOrientations & UIInterfaceOrientationMaskPortrait || supportedOrientations & UIInterfaceOrientationMaskPortraitUpsideDown); // this means there are no mixed orientations in there BOOL isOrientationLocked = !(supportsPortrait && supportsLandscape); - + if (imageName) { imageName = [imageName stringByDeletingPathExtension]; @@ -187,7 +199,23 @@ { imageName = @"Default"; } - + + // Add Asset Catalog specific prefixes + if ([imageName isEqualToString:@"LaunchImage"]) + { + if (device.iPhone4 || device.iPhone5 || device.iPad) { + imageName = [imageName stringByAppendingString:@"-700"]; + } else if(device.iPhone6) { + imageName = [imageName stringByAppendingString:@"-800"]; + } else if(device.iPhone6Plus) { + imageName = [imageName stringByAppendingString:@"-800"]; + if (currentOrientation == UIInterfaceOrientationPortrait || currentOrientation == UIInterfaceOrientationPortraitUpsideDown) + { + imageName = [imageName stringByAppendingString:@"-Portrait"]; + } + } + } + if (device.iPhone5) { // does not support landscape imageName = [imageName stringByAppendingString:@"-568h"]; @@ -231,7 +259,7 @@ case UIInterfaceOrientationLandscapeRight: imageName = [imageName stringByAppendingString:@"-Landscape"]; break; - + case UIInterfaceOrientationPortrait: case UIInterfaceOrientationPortraitUpsideDown: default: @@ -240,14 +268,51 @@ } } } - + return imageName; } +- (UIInterfaceOrientation)getCurrentOrientation +{ + UIInterfaceOrientation iOrientation = [UIApplication sharedApplication].statusBarOrientation; + UIDeviceOrientation dOrientation = [UIDevice currentDevice].orientation; + + bool landscape; + + if (dOrientation == UIDeviceOrientationUnknown || dOrientation == UIDeviceOrientationFaceUp || dOrientation == UIDeviceOrientationFaceDown) { + // If the device is laying down, use the UIInterfaceOrientation based on the status bar. + landscape = UIInterfaceOrientationIsLandscape(iOrientation); + } else { + // If the device is not laying down, use UIDeviceOrientation. + landscape = UIDeviceOrientationIsLandscape(dOrientation); + + // There's a bug in iOS!!!! http://openradar.appspot.com/7216046 + // So values needs to be reversed for landscape! + if (dOrientation == UIDeviceOrientationLandscapeLeft) + { + iOrientation = UIInterfaceOrientationLandscapeRight; + } + else if (dOrientation == UIDeviceOrientationLandscapeRight) + { + iOrientation = UIInterfaceOrientationLandscapeLeft; + } + else if (dOrientation == UIDeviceOrientationPortrait) + { + iOrientation = UIInterfaceOrientationPortrait; + } + else if (dOrientation == UIDeviceOrientationPortraitUpsideDown) + { + iOrientation = UIInterfaceOrientationPortraitUpsideDown; + } + } + + return iOrientation; +} + // Sets the view's frame and image. - (void)updateImage { - NSString* imageName = [self getImageName:[[UIApplication sharedApplication] statusBarOrientation] delegate:(id<CDVScreenOrientationDelegate>)self.viewController device:[self getCurrentDevice]]; + NSString* imageName = [self getImageName:[self getCurrentOrientation] delegate:(id<CDVScreenOrientationDelegate>)self.viewController device:[self getCurrentDevice]]; if (![imageName isEqualToString:_curImageName]) { @@ -273,7 +338,7 @@ CGRect imgBounds = (img) ? CGRectMake(0, 0, img.size.width, img.size.height) : CGRectZero; CGSize screenSize = [self.viewController.view convertRect:[UIScreen mainScreen].bounds fromView:nil].size; - UIInterfaceOrientation orientation = self.viewController.interfaceOrientation; + UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation; CGAffineTransform imgTransform = CGAffineTransformIdentity; /* If and only if an iPhone application is landscape-only as per @@ -281,8 +346,8 @@ * landscape. In this case the image must be rotated in order to appear * correctly. */ - BOOL isIPad = [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad; - if (UIInterfaceOrientationIsLandscape(orientation) && !isIPad) + CDV_iOSDevice device = [self getCurrentDevice]; + if (UIInterfaceOrientationIsLandscape(orientation) && !device.iPhone6Plus && !device.iPad) { imgTransform = CGAffineTransformMakeRotation(M_PI / 2); imgBounds.size = CGSizeMake(imgBounds.size.height, imgBounds.size.width); @@ -322,26 +387,52 @@ - (void)setVisible:(BOOL)visible { - if (visible != _visible) + [self setVisible:visible andForce:NO]; +} + +- (void)setVisible:(BOOL)visible andForce:(BOOL)force +{ + if (visible != _visible || force) { _visible = visible; id fadeSplashScreenValue = [self.commandDelegate.settings objectForKey:[@"FadeSplashScreen" lowercaseString]]; id fadeSplashScreenDuration = [self.commandDelegate.settings objectForKey:[@"FadeSplashScreenDuration" lowercaseString]]; - float fadeDuration = fadeSplashScreenDuration == nil ? kSplashScreenDurationDefault : [fadeSplashScreenDuration floatValue]; + float fadeDuration = fadeSplashScreenDuration == nil ? kFadeDurationDefault : [fadeSplashScreenDuration floatValue]; + + id splashDurationString = [self.commandDelegate.settings objectForKey: [@"SplashScreenDelay" lowercaseString]]; + float splashDuration = splashDurationString == nil ? kSplashScreenDurationDefault : [splashDurationString floatValue]; - if ((fadeSplashScreenValue == nil) || ![fadeSplashScreenValue boolValue]) + id autoHideSplashScreenValue = [self.commandDelegate.settings objectForKey:[@"AutoHideSplashScreen" lowercaseString]]; + BOOL autoHideSplashScreen = true; + + if (autoHideSplashScreenValue != nil) { + autoHideSplashScreen = [autoHideSplashScreenValue boolValue]; + } + + if (!autoHideSplashScreen) { + // CB-10412 SplashScreenDelay does not make sense if the splashscreen is hidden manually + splashDuration = 0; + } + + + if (fadeSplashScreenValue == nil) + { + fadeSplashScreenValue = @"true"; + } + + if (![fadeSplashScreenValue boolValue]) { fadeDuration = 0; } - else if(fadeDuration < 30) + else if (fadeDuration < 30) { // [CB-9750] This value used to be in decimal seconds, so we will assume that if someone specifies 10 // they mean 10 seconds, and not the meaningless 10ms fadeDuration *= 1000; } - + if (_visible) { if (_imageView == nil) @@ -349,26 +440,42 @@ [self createViews]; } } - else if (fadeDuration == 0) + else if (fadeDuration == 0 && splashDuration == 0) { [self destroyViews]; } else { __weak __typeof(self) weakSelf = self; - [UIView transitionWithView:self.viewController.view - duration:(fadeDuration / 1000) - options:UIViewAnimationOptionTransitionNone - animations:^(void) { - [weakSelf hideViews]; - } - completion:^(BOOL finished) { - if (finished) { - [weakSelf destroyViews]; - // TODO: It might also be nice to have a js event happen here -jm - } - } - ]; + float effectiveSplashDuration; + + // [CB-10562] AutoHideSplashScreen may be "true" but we should still be able to hide the splashscreen manually. + if (!autoHideSplashScreen || force) { + effectiveSplashDuration = (fadeDuration) / 1000; + } else { + effectiveSplashDuration = (splashDuration - fadeDuration) / 1000; + } + + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (uint64_t) effectiveSplashDuration * NSEC_PER_SEC), dispatch_get_main_queue(), CFBridgingRelease(CFBridgingRetain(^(void) { + if (!_destroyed) { + [UIView transitionWithView:self.viewController.view + duration:(fadeDuration / 1000) + options:UIViewAnimationOptionTransitionNone + animations:^(void) { + [weakSelf hideViews]; + } + completion:^(BOOL finished) { + // Always destroy views, otherwise you could have an + // invisible splashscreen that is overlayed over your active views + // which causes that no touch events are passed + if (!_destroyed) { + [weakSelf destroyViews]; + // TODO: It might also be nice to have a js event happen here -jm + } + } + ]; + } + }))); } } } diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-splashscreen/CDVViewController+SplashScreen.m b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-splashscreen/CDVViewController+SplashScreen.m index 5736b6f2..e483def6 100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-splashscreen/CDVViewController+SplashScreen.m +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-splashscreen/CDVViewController+SplashScreen.m @@ -35,6 +35,13 @@ - (BOOL)enabledAutorotation { NSNumber *number = (NSNumber *)objc_getAssociatedObject(self, @selector(enabledAutorotation)); + + // Defaulting to YES to correspond parent CDVViewController behavior + if (number == nil) + { + return YES; + } + return [number boolValue]; } diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-x-socialsharing/NSString+URLEncoding.h b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-x-socialsharing/NSString+URLEncoding.h new file mode 100644 index 00000000..d7da331d --- /dev/null +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-x-socialsharing/NSString+URLEncoding.h @@ -0,0 +1,5 @@ +#import <Foundation/Foundation.h> + +@interface NSString (URLEncoding) +@property (readonly) NSString *URLEncodedString; +@end diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-x-socialsharing/NSString+URLEncoding.m b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-x-socialsharing/NSString+URLEncoding.m new file mode 100644 index 00000000..b737626c --- /dev/null +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-x-socialsharing/NSString+URLEncoding.m @@ -0,0 +1,30 @@ +#import "NSString+URLEncoding.h" + +@implementation NSString (URLEncoding) +- (NSString*)URLEncodedString +{ + NSString* result = (NSString *)CFBridgingRelease( + CFURLCreateStringByAddingPercentEscapes( + kCFAllocatorDefault, + (CFStringRef)self, + CFSTR("#%"), // don't escape these + NULL, // allow escaping these + kCFStringEncodingUTF8 + ) + ); + + // we may have a URL with more than one '#' now - which iOS doesn't allow, so escape all but the first one + NSArray *parts = [result componentsSeparatedByString:@"#"]; + NSString *finalResult = parts[0]; + for (int i=1; i<parts.count; i++) { + NSString *part = [parts objectAtIndex:i]; + if (i==1) { + finalResult = [finalResult stringByAppendingString:@"#"]; + } else { + finalResult = [finalResult stringByAppendingString:@"%23"]; + } + finalResult = [finalResult stringByAppendingString:part]; + } + return finalResult; +} +@end
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-x-socialsharing/SocialSharing.h b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-x-socialsharing/SocialSharing.h index b51474d3..0c731450 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-x-socialsharing/SocialSharing.h +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-x-socialsharing/SocialSharing.h @@ -4,13 +4,14 @@ @interface SocialSharing : CDVPlugin <UIPopoverControllerDelegate, MFMailComposeViewControllerDelegate, UIDocumentInteractionControllerDelegate> @property (nonatomic, strong) MFMailComposeViewController *globalMailComposer; -@property (retain) UIDocumentInteractionController * documentInteractionController; +@property (nonatomic, strong) UIDocumentInteractionController * documentInteractionController; @property (retain) NSString * tempStoredFile; @property (retain) CDVInvokedUrlCommand * command; - (void)available:(CDVInvokedUrlCommand*)command; - (void)setIPadPopupCoordinates:(CDVInvokedUrlCommand*)command; - (void)share:(CDVInvokedUrlCommand*)command; +- (void)shareWithOptions:(CDVInvokedUrlCommand*)command; - (void)canShareVia:(CDVInvokedUrlCommand*)command; - (void)canShareViaEmail:(CDVInvokedUrlCommand*)command; - (void)shareVia:(CDVInvokedUrlCommand*)command; diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-x-socialsharing/SocialSharing.m b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-x-socialsharing/SocialSharing.m index cd0913a4..014925bd 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-x-socialsharing/SocialSharing.m +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/cordova-plugin-x-socialsharing/SocialSharing.m @@ -1,4 +1,5 @@ #import "SocialSharing.h" +#import "NSString+URLEncoding.h" #import <Cordova/CDV.h> #import <Social/Social.h> #import <Foundation/NSException.h> @@ -6,6 +7,11 @@ #import <MessageUI/MFMailComposeViewController.h> #import <MobileCoreServices/MobileCoreServices.h> +static NSString *const kShareOptionMessage = @"message"; +static NSString *const kShareOptionSubject = @"subject"; +static NSString *const kShareOptionFiles = @"files"; +static NSString *const kShareOptionUrl = @"url"; + @implementation SocialSharing { UIPopoverController *_popover; NSString *_popupCoordinates; @@ -51,23 +57,46 @@ } - (void)share:(CDVInvokedUrlCommand*)command { + [self shareInternal:command + withOptions:@{ + kShareOptionMessage: [command.arguments objectAtIndex:0], + kShareOptionSubject: [command.arguments objectAtIndex:1], + kShareOptionFiles: [command.arguments objectAtIndex:2], + kShareOptionUrl: [command.arguments objectAtIndex:3] + } + isBooleanResponse:YES +]; +} + +- (void)shareWithOptions:(CDVInvokedUrlCommand*)command { + NSDictionary* options = [command.arguments objectAtIndex:0]; + [self shareInternal:command + withOptions:options + isBooleanResponse:NO + ]; +} + +- (void)shareInternal:(CDVInvokedUrlCommand*)command withOptions:(NSDictionary*)options isBooleanResponse:(BOOL)boolResponse { [self.commandDelegate runInBackground:^{ //avoid main thread block especially if sharing big files from url if (!NSClassFromString(@"UIActivityViewController")) { CDVPluginResult * pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"not available"]; [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; return; } - - NSString *message = [command.arguments objectAtIndex:0]; - NSString *subject = [command.arguments objectAtIndex:1]; - NSArray *filenames = [command.arguments objectAtIndex:2]; - NSString *urlString = [command.arguments objectAtIndex:3]; - + + NSString *message = options[kShareOptionMessage]; + NSString *subject = options[kShareOptionSubject]; + NSArray *filenames = options[kShareOptionFiles]; + NSString *urlString = options[kShareOptionUrl]; + NSMutableArray *activityItems = [[NSMutableArray alloc] init]; + + if (message != (id)[NSNull null] && message != nil) { [activityItems addObject:message]; - - NSMutableArray *files = [[NSMutableArray alloc] init]; - if (filenames != (id)[NSNull null] && filenames.count > 0) { + } + + if (filenames != (id)[NSNull null] && filenames != nil && filenames.count > 0) { + NSMutableArray *files = [[NSMutableArray alloc] init]; for (NSString* filename in filenames) { NSObject *file = [self getImage:filename]; if (file == nil) { @@ -79,31 +108,47 @@ } [activityItems addObjectsFromArray:files]; } - - if (urlString != (id)[NSNull null]) { - [activityItems addObject:[NSURL URLWithString:urlString]]; + + if (urlString != (id)[NSNull null] && urlString != nil) { + [activityItems addObject:[NSURL URLWithString:[urlString URLEncodedString]]]; } - + UIActivity *activity = [[UIActivity alloc] init]; NSArray *applicationActivities = [[NSArray alloc] initWithObjects:activity, nil]; UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities]; - if (subject != (id)[NSNull null]) { + if (subject != (id)[NSNull null] && subject != nil) { [activityVC setValue:subject forKey:@"subject"]; } - - // TODO deprecated in iOS 8.0, change this some day - [activityVC setCompletionHandler:^(NSString *activityType, BOOL completed) { - [self cleanupStoredFiles]; - NSLog(@"SocialSharing app selected: %@", activityType); - CDVPluginResult * pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:completed]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; - + + if ([activityVC respondsToSelector:(@selector(setCompletionWithItemsHandler:))]) { + [activityVC setCompletionWithItemsHandler:^(NSString *activityType, BOOL completed, NSArray * returnedItems, NSError * activityError) { + [self cleanupStoredFiles]; + if (boolResponse) { + [self.commandDelegate sendPluginResult:[CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:completed] + callbackId:command.callbackId]; + } else { + NSDictionary * result = @{@"completed":@(completed), @"app":activityType == nil ? @"" : activityType}; + [self.commandDelegate sendPluginResult:[CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:result] + callbackId:command.callbackId]; + } + }]; + } else { + // let's suppress this warning otherwise folks will start opening issues while it's not relevant +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + [activityVC setCompletionHandler:^(NSString *activityType, BOOL completed) { + [self cleanupStoredFiles]; + NSDictionary * result = @{@"completed":@(completed), @"app":activityType}; + CDVPluginResult * pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:result]; + [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; + }]; +#pragma GCC diagnostic warning "-Wdeprecated-declarations" + } + NSArray * socialSharingExcludeActivities = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"SocialSharingExcludeActivities"]; if (socialSharingExcludeActivities!=nil && [socialSharingExcludeActivities count] > 0) { activityVC.excludedActivityTypes = socialSharingExcludeActivities; } - + dispatch_async(dispatch_get_main_queue(), ^(void){ // iPad on iOS >= 8 needs a different approach if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) { @@ -230,27 +275,27 @@ - (void)shareViaInternal:(CDVInvokedUrlCommand*)command type:(NSString *) type { - + NSString *message = [command.arguments objectAtIndex:0]; // subject is not supported by the SLComposeViewController NSArray *filenames = [command.arguments objectAtIndex:2]; NSString *urlString = [command.arguments objectAtIndex:3]; - + // boldly invoke the target app, because the phone will display a nice message asking to configure the app SLComposeViewController *composeViewController = [SLComposeViewController composeViewControllerForServiceType:type]; if (message != (id)[NSNull null]) { [composeViewController setInitialText:message]; } - + for (NSString* filename in filenames) { UIImage* image = [self getImage:filename]; if (image != nil) { [composeViewController addImage:image]; } } - + if (urlString != (id)[NSNull null]) { - [composeViewController addURL:[NSURL URLWithString:urlString]]; + [composeViewController addURL:[NSURL URLWithString:[urlString URLEncodedString]]]; } [composeViewController setCompletionHandler:^(SLComposeViewControllerResult result) { @@ -272,7 +317,7 @@ - (void)shareViaEmail:(CDVInvokedUrlCommand*)command { if ([self isEmailAvailable]) { - + if (TARGET_IPHONE_SIMULATOR && IsAtLeastiOSVersion(@"8.0")) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"SocialSharing plugin" message:@"Sharing via email is not supported on the iOS 8 simulator." @@ -282,38 +327,40 @@ [alert show]; return; } - + + [self cycleTheGlobalMailComposer]; + self.globalMailComposer.mailComposeDelegate = self; - + if ([command.arguments objectAtIndex:0] != (id)[NSNull null]) { NSString *message = [command.arguments objectAtIndex:0]; BOOL isHTML = [message rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch].location != NSNotFound; [self.globalMailComposer setMessageBody:message isHTML:isHTML]; } - + if ([command.arguments objectAtIndex:1] != (id)[NSNull null]) { [self.globalMailComposer setSubject: [command.arguments objectAtIndex:1]]; } - + if ([command.arguments objectAtIndex:2] != (id)[NSNull null]) { [self.globalMailComposer setToRecipients:[command.arguments objectAtIndex:2]]; } - + if ([command.arguments objectAtIndex:3] != (id)[NSNull null]) { [self.globalMailComposer setCcRecipients:[command.arguments objectAtIndex:3]]; } - + if ([command.arguments objectAtIndex:4] != (id)[NSNull null]) { [self.globalMailComposer setBccRecipients:[command.arguments objectAtIndex:4]]; } - + if ([command.arguments objectAtIndex:5] != (id)[NSNull null]) { NSArray* attachments = [command.arguments objectAtIndex:5]; NSFileManager* fileManager = [NSFileManager defaultManager]; for (NSString* path in attachments) { NSURL *file = [self getFile:path]; NSData* data = [fileManager contentsAtPath:file.path]; - + NSString* fileName; NSString* mimeType; NSString* basename = [self getBasenameFromAttachmentPath:path]; @@ -331,14 +378,14 @@ [self.globalMailComposer addAttachmentData:data mimeType:mimeType fileName:fileName]; } } - + // remember the command, because we need it in the didFinishWithResult method _command = command; [self.commandDelegate runInBackground:^{ [[self getTopMostViewController] presentViewController:self.globalMailComposer animated:YES completion:nil]; }]; - + } else { CDVPluginResult * pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"not available"]; [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; @@ -358,7 +405,7 @@ NSString* pathWithoutPrefix = [path stringByReplacingOccurrencesOfString:@"base64:" withString:@""]; return [pathWithoutPrefix substringToIndex:[pathWithoutPrefix rangeOfString:@"//"].location]; } - return path; + return [path componentsSeparatedByString: @"?"][0]; } - (NSString*) getMimeTypeFromFileExtension:(NSString*)extension { @@ -406,7 +453,7 @@ NSString *message = [options objectForKey:@"message"]; NSString *subject = [options objectForKey:@"subject"]; NSString *image = [options objectForKey:@"image"]; - + MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init]; picker.messageComposeDelegate = (id) self; if (message != (id)[NSNull null]) { @@ -424,7 +471,7 @@ } } } - + if (phonenumbers != (id)[NSNull null]) { [picker setRecipients:[phonenumbers componentsSeparatedByString:@","]]; } @@ -469,7 +516,7 @@ } - (void)shareViaInstagram:(CDVInvokedUrlCommand*)command { - + // on iOS9 canShareVia('instagram'..) will only work if instagram:// is whitelisted. // If it's not, this method will ask permission to the user on iOS9 for opening the app, // which is of course better than Instagram sharing not working at all because you forgot to whitelist it. @@ -492,7 +539,7 @@ image = [self getImage:filename]; break; } - + // NSData *imageObj = [NSData dataFromBase64String:objectAtIndex0]; NSString *tmpDir = NSTemporaryDirectory(); NSString *path = [tmpDir stringByAppendingPathComponent:@"instagram.igo"]; @@ -513,11 +560,15 @@ // remember the command for the delegate method _command = command; - [_documentInteractionController presentOpenInMenuFromRect:CGRectZero inView:self.webView animated:YES]; + + // test for #513 + dispatch_async(dispatch_get_main_queue(), ^(void){ + [_documentInteractionController presentOpenInMenuFromRect:CGRectZero inView:self.webView animated:YES]; + }); } - (void)shareViaWhatsApp:(CDVInvokedUrlCommand*)command { - + // on iOS9 canShareVia('whatsapp'..) will only work if whatsapp:// is whitelisted. // If it's not, this method will ask permission to the user on iOS9 for opening the app, // which is of course better than WhatsApp sharing not working at all because you forgot to whitelist it. @@ -534,6 +585,7 @@ // subject is not supported by the SLComposeViewController NSArray *filenames = [command.arguments objectAtIndex:2]; NSString *urlString = [command.arguments objectAtIndex:3]; + NSString *abid = [command.arguments objectAtIndex:4]; // only use the first image (for now.. maybe we can share in a loop?) UIImage* image = nil; @@ -561,14 +613,18 @@ if ([shareString isEqual: @""]) { shareString = urlString; } else { - shareString = [NSString stringWithFormat:@"%@ %@", shareString, urlString]; + shareString = [NSString stringWithFormat:@"%@ %@", shareString, [urlString URLEncodedString]]; } } NSString * encodedShareString = [shareString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; // also encode the '=' character encodedShareString = [encodedShareString stringByReplacingOccurrencesOfString:@"=" withString:@"%3D"]; encodedShareString = [encodedShareString stringByReplacingOccurrencesOfString:@"&" withString:@"%26"]; - NSString * encodedShareStringForWhatsApp = [NSString stringWithFormat:@"whatsapp://send?text=%@", encodedShareString]; + NSString * abidString = @""; + if (abid != (id)[NSNull null]) { + abidString = [NSString stringWithFormat:@"abid=%@&", abid]; + } + NSString * encodedShareStringForWhatsApp = [NSString stringWithFormat:@"whatsapp://send?%@text=%@", abidString, encodedShareString]; NSURL *whatsappURL = [NSURL URLWithString:encodedShareStringForWhatsApp]; [[UIApplication sharedApplication] openURL: whatsappURL]; @@ -641,7 +697,8 @@ if ([fileName hasPrefix:@"http"]) { NSURL *url = [NSURL URLWithString:fileName]; NSData *fileData = [NSData dataWithContentsOfURL:url]; - file = [NSURL fileURLWithPath:[self storeInFile:(NSString*)[[fileName componentsSeparatedByString: @"/"] lastObject] fileData:fileData]]; + NSString *name = (NSString*)[[fileName componentsSeparatedByString: @"/"] lastObject]; + file = [NSURL fileURLWithPath:[self storeInFile:[name componentsSeparatedByString: @"?"][0] fileData:fileData]]; } else if ([fileName hasPrefix:@"www/"]) { NSString *bundlePath = [[NSBundle mainBundle] bundlePath]; NSString *fullPath = [NSString stringWithFormat:@"%@/%@", bundlePath, fileName]; diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/com.ionic.keyboard/IonicKeyboard.h b/StoneIsland/platforms/ios/Stone Island/Plugins/ionic-plugin-keyboard/IonicKeyboard.h index b54f430d..63935dc3 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/com.ionic.keyboard/IonicKeyboard.h +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/ionic-plugin-keyboard/IonicKeyboard.h @@ -1,8 +1,11 @@ #import <Cordova/CDVPlugin.h> +#import <objc/runtime.h> @interface IonicKeyboard : CDVPlugin <UIScrollViewDelegate> { @protected id _keyboardShowObserver, _keyboardHideObserver; + IMP wkOriginalImp, uiOriginalImp, nilImp; + Method wkMethod, uiMethod; } @property (readwrite, assign) BOOL hideKeyboardAccessoryBar; diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/com.ionic.keyboard/IonicKeyboard.m b/StoneIsland/platforms/ios/Stone Island/Plugins/ionic-plugin-keyboard/IonicKeyboard.m index 045cc65f..d072ca7f 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/com.ionic.keyboard/IonicKeyboard.m +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/ionic-plugin-keyboard/IonicKeyboard.m @@ -1,5 +1,5 @@ #import "IonicKeyboard.h" -#import "UIWebViewExtension.h" +// #import "UIWebViewExtension.h" #import <Cordova/CDVAvailability.h> @implementation IonicKeyboard @@ -9,29 +9,38 @@ //@synthesize styleDark = _styleDark; - (void)pluginInitialize { - - NSNotificationCenter* nc = [NSNotificationCenter defaultCenter]; - __weak IonicKeyboard* weakSelf = self; + Class wkClass = NSClassFromString([@[@"UI", @"Web", @"Browser", @"View"] componentsJoinedByString:@""]); + wkMethod = class_getInstanceMethod(wkClass, @selector(inputAccessoryView)); + wkOriginalImp = method_getImplementation(wkMethod); + Class uiClass = NSClassFromString([@[@"WK", @"Content", @"View"] componentsJoinedByString:@""]); + uiMethod = class_getInstanceMethod(uiClass, @selector(inputAccessoryView)); + uiOriginalImp = method_getImplementation(uiMethod); + nilImp = imp_implementationWithBlock(^(id _s) { + return nil; + }); + //set defaults - self.hideKeyboardAccessoryBar = NO; + self.hideKeyboardAccessoryBar = YES; self.disableScroll = NO; //self.styleDark = NO; + NSNotificationCenter* nc = [NSNotificationCenter defaultCenter]; + __weak IonicKeyboard* weakSelf = self; _keyboardShowObserver = [nc addObserverForName:UIKeyboardWillShowNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification* notification) { - + CGRect keyboardFrame = [notification.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue]; keyboardFrame = [self.viewController.view convertRect:keyboardFrame fromView:nil]; - + [weakSelf.commandDelegate evalJs:[NSString stringWithFormat:@"cordova.plugins.Keyboard.isVisible = true; cordova.fireWindowEvent('native.keyboardshow', { 'keyboardHeight': %@ }); ", [@(keyboardFrame.size.height) stringValue]]]; //deprecated [weakSelf.commandDelegate evalJs:[NSString stringWithFormat:@"cordova.fireWindowEvent('native.showkeyboard', { 'keyboardHeight': %@ }); ", [@(keyboardFrame.size.height) stringValue]]]; }]; - + _keyboardHideObserver = [nc addObserverForName:UIKeyboardWillHideNotification object:nil queue:[NSOperationQueue mainQueue] @@ -42,6 +51,7 @@ [weakSelf.commandDelegate evalJs:@"cordova.fireWindowEvent('native.hidekeyboard'); "]; }]; } + - (BOOL)disableScroll { return _disableScroll; } @@ -62,6 +72,8 @@ _disableScroll = disableScroll; } +//keyboard swizzling inspired by: +//https://github.com/cjpearson/cordova-plugin-keyboard/ - (BOOL)hideKeyboardAccessoryBar { return _hideKeyboardAccessoryBar; @@ -71,13 +83,15 @@ if (hideKeyboardAccessoryBar == _hideKeyboardAccessoryBar) { return; } + if (hideKeyboardAccessoryBar) { - self.webView.hackishlyHidesInputAccessoryView = YES; + method_setImplementation(wkMethod, nilImp); + method_setImplementation(uiMethod, nilImp); + } else { + method_setImplementation(wkMethod, wkOriginalImp); + method_setImplementation(uiMethod, uiOriginalImp); } - else { - self.webView.hackishlyHidesInputAccessoryView = NO; - } - + _hideKeyboardAccessoryBar = hideKeyboardAccessoryBar; } @@ -124,17 +138,19 @@ return; } id value = [command.arguments objectAtIndex:0]; - - self.disableScroll = [value boolValue]; + if (value != [NSNull null]) { + self.disableScroll = [value boolValue]; + } } - (void) hideKeyboardAccessoryBar:(CDVInvokedUrlCommand*)command { if (!command.arguments || ![command.arguments count]){ - return; + return; } id value = [command.arguments objectAtIndex:0]; - - self.hideKeyboardAccessoryBar = [value boolValue]; + if (value != [NSNull null]) { + self.hideKeyboardAccessoryBar = [value boolValue]; + } } - (void) close:(CDVInvokedUrlCommand*)command { @@ -151,7 +167,7 @@ return; } id value = [command.arguments objectAtIndex:0]; - + self.styleDark = [value boolValue]; } */ diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-push/AppDelegate+notification.h b/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-push/AppDelegate+notification.h deleted file mode 100755 index be79903e..00000000 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-push/AppDelegate+notification.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// AppDelegate+notification.h -// pushtest -// -// Created by Robert Easterday on 10/26/12. -// -// - -#import "AppDelegate.h" - -@interface AppDelegate (notification) -- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken; -- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error; -- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo; -- (void)applicationDidBecomeActive:(UIApplication *)application; -- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void(^)())completionHandler; -- (id) getCommandInstance:(NSString*)className; - -@property (nonatomic, retain) NSDictionary *launchNotification; - -@end diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-push/AppDelegate+notification.m b/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-push/AppDelegate+notification.m deleted file mode 100755 index 8b4ed161..00000000 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-push/AppDelegate+notification.m +++ /dev/null @@ -1,167 +0,0 @@ -// -// AppDelegate+notification.m -// pushtest -// -// Created by Robert Easterday on 10/26/12. -// -// - -#import "AppDelegate+notification.h" -#import "PushPlugin.h" -#import <objc/runtime.h> - -static char launchNotificationKey; - -@implementation AppDelegate (notification) - -- (id) getCommandInstance:(NSString*)className -{ - return [self.viewController getCommandInstance:className]; -} - -// its dangerous to override a method from within a category. -// Instead we will use method swizzling. we set this up in the load call. -+ (void)load -{ - Method original, swizzled; - - original = class_getInstanceMethod(self, @selector(init)); - swizzled = class_getInstanceMethod(self, @selector(swizzled_init)); - method_exchangeImplementations(original, swizzled); -} - -- (AppDelegate *)swizzled_init -{ - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(createNotificationChecker:) - name:@"UIApplicationDidFinishLaunchingNotification" object:nil]; - - // This actually calls the original init method over in AppDelegate. Equivilent to calling super - // on an overrided method, this is not recursive, although it appears that way. neat huh? - return [self swizzled_init]; -} - -// This code will be called immediately after application:didFinishLaunchingWithOptions:. We need -// to process notifications in cold-start situations -- (void)createNotificationChecker:(NSNotification *)notification -{ - if (notification) - { - NSDictionary *launchOptions = [notification userInfo]; - if (launchOptions) - self.launchNotification = [launchOptions objectForKey: @"UIApplicationLaunchOptionsRemoteNotificationKey"]; - } -} - -- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { - PushPlugin *pushHandler = [self getCommandInstance:@"PushNotification"]; - [pushHandler didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; -} - -- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error { - PushPlugin *pushHandler = [self getCommandInstance:@"PushNotification"]; - [pushHandler didFailToRegisterForRemoteNotificationsWithError:error]; -} - -- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { - NSLog(@"didReceiveNotification with fetchCompletionHandler"); - - // app is in the foreground so call notification callback - if (application.applicationState == UIApplicationStateActive) { - NSLog(@"app active"); - PushPlugin *pushHandler = [self getCommandInstance:@"PushNotification"]; - pushHandler.notificationMessage = userInfo; - pushHandler.isInline = YES; - [pushHandler notificationReceived]; - - completionHandler(UIBackgroundFetchResultNewData); - } - // app is in background or in stand by - else { - NSLog(@"app in-active"); - - // do some convoluted logic to find out if this should be a silent push. - long silent = 0; - id aps = [userInfo objectForKey:@"aps"]; - id contentAvailable = [aps objectForKey:@"content-available"]; - if ([contentAvailable isKindOfClass:[NSString class]] && [contentAvailable isEqualToString:@"1"]) { - silent = 1; - } else if ([contentAvailable isKindOfClass:[NSNumber class]]) { - silent = [contentAvailable integerValue]; - } - - if (silent == 1) { - NSLog(@"this should be a silent push"); - void (^safeHandler)(UIBackgroundFetchResult) = ^(UIBackgroundFetchResult result){ - dispatch_async(dispatch_get_main_queue(), ^{ - completionHandler(result); - }); - }; - - NSMutableDictionary* params = [NSMutableDictionary dictionaryWithCapacity:2]; - [params setObject:safeHandler forKey:@"handler"]; - - PushPlugin *pushHandler = [self getCommandInstance:@"PushNotification"]; - pushHandler.notificationMessage = userInfo; - pushHandler.isInline = NO; - pushHandler.handlerObj = params; - [pushHandler notificationReceived]; - } else { - NSLog(@"just put it in the shade"); - //save it for later - self.launchNotification = userInfo; - - completionHandler(UIBackgroundFetchResultNewData); - } - } -} - -- (void)applicationDidBecomeActive:(UIApplication *)application { - - NSLog(@"active"); - - PushPlugin *pushHandler = [self getCommandInstance:@"PushNotification"]; - if (pushHandler.clearBadge) { - NSLog(@"PushPlugin clearing badge"); - //zero badge - application.applicationIconBadgeNumber = 0; - } else { - NSLog(@"PushPlugin skip clear badge"); - } - - if (self.launchNotification) { - pushHandler.isInline = NO; - pushHandler.notificationMessage = self.launchNotification; - self.launchNotification = nil; - [pushHandler performSelectorOnMainThread:@selector(notificationReceived) withObject:pushHandler waitUntilDone:NO]; - } -} - -//For interactive notification only -- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void(^)())completionHandler -{ - //handle the actions - if ([identifier isEqualToString:@"declineAction"]){ - } - else if ([identifier isEqualToString:@"answerAction"]){ - } -} - - -// The accessors use an Associative Reference since you can't define a iVar in a category -// http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/Chapters/ocAssociativeReferences.html -- (NSMutableArray *)launchNotification -{ - return objc_getAssociatedObject(self, &launchNotificationKey); -} - -- (void)setLaunchNotification:(NSDictionary *)aDictionary -{ - objc_setAssociatedObject(self, &launchNotificationKey, aDictionary, OBJC_ASSOCIATION_RETAIN_NONATOMIC); -} - -- (void)dealloc -{ - self.launchNotification = nil; // clear the association and release the object -} - -@end diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-push/PushPlugin.h b/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-push/PushPlugin.h deleted file mode 100755 index 5b88398e..00000000 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-push/PushPlugin.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - Copyright 2009-2011 Urban Airship Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - 2. Redistributions in binaryform must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided withthe distribution. - - THIS SOFTWARE IS PROVIDED BY THE URBAN AIRSHIP INC``AS IS'' AND ANY EXPRESS OR - IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO - EVENT SHALL URBAN AIRSHIP INC OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE - OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import <Foundation/Foundation.h> -#import <Cordova/CDV.h> -#import <Cordova/CDVPlugin.h> - -@interface PushPlugin : CDVPlugin -{ - NSDictionary *notificationMessage; - BOOL isInline; - NSString *notificationCallbackId; - NSString *callback; - BOOL clearBadge; - - NSDictionary *handlerObj; - void (^completionHandler)(UIBackgroundFetchResult); - - BOOL ready; -} - -@property (nonatomic, copy) NSString *callbackId; -@property (nonatomic, copy) NSString *notificationCallbackId; -@property (nonatomic, copy) NSString *callback; - -@property (nonatomic, strong) NSDictionary *notificationMessage; -@property BOOL isInline; -@property BOOL clearBadge; -@property (nonatomic, strong) NSDictionary *handlerObj; - -- (void)init:(CDVInvokedUrlCommand*)command; -- (void)unregister:(CDVInvokedUrlCommand*)command; - -- (void)didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken; -- (void)didFailToRegisterForRemoteNotificationsWithError:(NSError *)error; - -- (void)setNotificationMessage:(NSDictionary *)notification; -- (void)notificationReceived; - -@end diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-push/PushPlugin.m b/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-push/PushPlugin.m deleted file mode 100755 index 40f494d1..00000000 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-push/PushPlugin.m +++ /dev/null @@ -1,347 +0,0 @@ -/* - Copyright 2009-2011 Urban Airship Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - 2. Redistributions in binaryform must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided withthe distribution. - - THIS SOFTWARE IS PROVIDED BY THE URBAN AIRSHIP INC``AS IS'' AND ANY EXPRESS OR - IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO - EVENT SHALL URBAN AIRSHIP INC OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE - OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import "PushPlugin.h" - -@implementation PushPlugin - -@synthesize notificationMessage; -@synthesize isInline; - -@synthesize callbackId; -@synthesize notificationCallbackId; -@synthesize callback; -@synthesize clearBadge; -@synthesize handlerObj; - -- (void)unregister:(CDVInvokedUrlCommand*)command; -{ - self.callbackId = command.callbackId; - - [[UIApplication sharedApplication] unregisterForRemoteNotifications]; - [self successWithMessage:@"unregistered"]; -} - -- (void)init:(CDVInvokedUrlCommand*)command; -{ - [self.commandDelegate runInBackground:^ { - - NSLog(@"Push Plugin register called"); - self.callbackId = command.callbackId; - - NSMutableDictionary* options = [command.arguments objectAtIndex:0]; - NSMutableDictionary* iosOptions = [options objectForKey:@"ios"]; - -#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000 - UIUserNotificationType UserNotificationTypes = UIUserNotificationTypeNone; -#endif - UIRemoteNotificationType notificationTypes = UIRemoteNotificationTypeNone; - - id badgeArg = [iosOptions objectForKey:@"badge"]; - id soundArg = [iosOptions objectForKey:@"sound"]; - id alertArg = [iosOptions objectForKey:@"alert"]; - id clearBadgeArg = [iosOptions objectForKey:@"clearBadge"]; - - if (([badgeArg isKindOfClass:[NSString class]] && [badgeArg isEqualToString:@"true"]) || [badgeArg boolValue]) - { - notificationTypes |= UIRemoteNotificationTypeBadge; -#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000 - UserNotificationTypes |= UIUserNotificationTypeBadge; -#endif - } - - if (([soundArg isKindOfClass:[NSString class]] && [soundArg isEqualToString:@"true"]) || [soundArg boolValue]) - { - notificationTypes |= UIRemoteNotificationTypeSound; -#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000 - UserNotificationTypes |= UIUserNotificationTypeSound; -#endif - } - - if (([alertArg isKindOfClass:[NSString class]] && [alertArg isEqualToString:@"true"]) || [alertArg boolValue]) - { - notificationTypes |= UIRemoteNotificationTypeAlert; -#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000 - UserNotificationTypes |= UIUserNotificationTypeAlert; -#endif - } - - notificationTypes |= UIRemoteNotificationTypeNewsstandContentAvailability; -#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000 - UserNotificationTypes |= UIUserNotificationActivationModeBackground; -#endif - - if (clearBadgeArg == nil || ([clearBadgeArg isKindOfClass:[NSString class]] && [clearBadgeArg isEqualToString:@"false"]) || ![clearBadgeArg boolValue]) { - NSLog(@"PushPlugin.register: setting badge to false"); - clearBadge = NO; - } else { - NSLog(@"PushPlugin.register: setting badge to true"); - clearBadge = YES; - [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; - } - NSLog(@"PushPlugin.register: clear badge is set to %d", clearBadge); - - if (notificationTypes == UIRemoteNotificationTypeNone) - NSLog(@"PushPlugin.register: Push notification type is set to none"); - - isInline = NO; - -#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000 - if ([[UIApplication sharedApplication]respondsToSelector:@selector(registerUserNotificationSettings:)]) { - UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UserNotificationTypes categories:nil]; - [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; - [[UIApplication sharedApplication] registerForRemoteNotifications]; - } else { - [[UIApplication sharedApplication] registerForRemoteNotificationTypes: - (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)]; - } -#else - [[UIApplication sharedApplication] registerForRemoteNotificationTypes: - (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)]; -#endif - - if (notificationMessage) // if there is a pending startup notification - [self notificationReceived]; // go ahead and process it - - }]; -} - -- (void)didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { - if (self.callbackId == nil) { - NSLog(@"Unexpected call to didRegisterForRemoteNotificationsWithDeviceToken, ignoring: %@", deviceToken); - return; - } - NSLog(@"Push Plugin register success: %@", deviceToken); - - NSMutableDictionary *results = [NSMutableDictionary dictionary]; - NSString *token = [[[[deviceToken description] stringByReplacingOccurrencesOfString:@"<"withString:@""] - stringByReplacingOccurrencesOfString:@">" withString:@""] - stringByReplacingOccurrencesOfString: @" " withString: @""]; - [results setValue:token forKey:@"deviceToken"]; - -#if !TARGET_IPHONE_SIMULATOR - // Get Bundle Info for Remote Registration (handy if you have more than one app) - [results setValue:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"] forKey:@"appName"]; - [results setValue:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"] forKey:@"appVersion"]; - - // Check what Notifications the user has turned on. We registered for all three, but they may have manually disabled some or all of them. -#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending) - - NSUInteger rntypes; - if (!SYSTEM_VERSION_LESS_THAN(@"8.0")) { - rntypes = [[[UIApplication sharedApplication] currentUserNotificationSettings] types]; - } else { - rntypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]; - } - - // Set the defaults to disabled unless we find otherwise... - NSString *pushBadge = @"disabled"; - NSString *pushAlert = @"disabled"; - NSString *pushSound = @"disabled"; - - // Check what Registered Types are turned on. This is a bit tricky since if two are enabled, and one is off, it will return a number 2... not telling you which - // one is actually disabled. So we are literally checking to see if rnTypes matches what is turned on, instead of by number. The "tricky" part is that the - // single notification types will only match if they are the ONLY one enabled. Likewise, when we are checking for a pair of notifications, it will only be - // true if those two notifications are on. This is why the code is written this way - if(rntypes & UIRemoteNotificationTypeBadge){ - pushBadge = @"enabled"; - } - if(rntypes & UIRemoteNotificationTypeAlert) { - pushAlert = @"enabled"; - } - if(rntypes & UIRemoteNotificationTypeSound) { - pushSound = @"enabled"; - } - - [results setValue:pushBadge forKey:@"pushBadge"]; - [results setValue:pushAlert forKey:@"pushAlert"]; - [results setValue:pushSound forKey:@"pushSound"]; - - // Get the users Device Model, Display Name, Token & Version Number - UIDevice *dev = [UIDevice currentDevice]; - [results setValue:dev.name forKey:@"deviceName"]; - [results setValue:dev.model forKey:@"deviceModel"]; - [results setValue:dev.systemVersion forKey:@"deviceSystemVersion"]; - - // Send result to trigger 'registration' event but keep callback - NSMutableDictionary* message = [NSMutableDictionary dictionaryWithCapacity:1]; - [message setObject:token forKey:@"registrationId"]; - CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:message]; - [pluginResult setKeepCallbackAsBool:YES]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:self.callbackId]; -#endif -} - -- (void)didFailToRegisterForRemoteNotificationsWithError:(NSError *)error -{ - if (self.callbackId == nil) { - NSLog(@"Unexpected call to didFailToRegisterForRemoteNotificationsWithError, ignoring: %@", error); - return; - } - NSLog(@"Push Plugin register failed"); - [self failWithMessage:@"" withError:error]; -} - -- (void)notificationReceived { - NSLog(@"Notification received"); - - if (notificationMessage && self.callbackId != nil) - { - NSMutableDictionary* message = [NSMutableDictionary dictionaryWithCapacity:4]; - NSMutableDictionary* additionalData = [NSMutableDictionary dictionaryWithCapacity:4]; - - - for (id key in notificationMessage) { - if ([key isEqualToString:@"aps"]) { - id aps = [notificationMessage objectForKey:@"aps"]; - - for(id key in aps) { - NSLog(@"Push Plugin key: %@", key); - id value = [aps objectForKey:key]; - - if ([key isEqualToString:@"alert"]) { - if ([value isKindOfClass:[NSDictionary class]]) { - for (id messageKey in value) { - id messageValue = [value objectForKey:messageKey]; - if ([messageKey isEqualToString:@"body"]) { - [message setObject:messageValue forKey:@"message"]; - } else if ([messageKey isEqualToString:@"title"]) { - [message setObject:messageValue forKey:@"title"]; - } else { - [additionalData setObject:messageValue forKey:messageKey]; - } - } - } - else { - [message setObject:value forKey:@"message"]; - } - } else if ([key isEqualToString:@"title"]) { - [message setObject:value forKey:@"title"]; - } else if ([key isEqualToString:@"badge"]) { - [message setObject:value forKey:@"count"]; - } else if ([key isEqualToString:@"sound"]) { - [message setObject:value forKey:@"sound"]; - } else if ([key isEqualToString:@"image"]) { - [message setObject:value forKey:@"image"]; - } else { - [additionalData setObject:value forKey:key]; - } - } - } else { - [additionalData setObject:[notificationMessage objectForKey:key] forKey:key]; - } - } - - if (isInline) { - [additionalData setObject:[NSNumber numberWithBool:YES] forKey:@"foreground"]; - } else { - [additionalData setObject:[NSNumber numberWithBool:NO] forKey:@"foreground"]; - } - - [message setObject:additionalData forKey:@"additionalData"]; - - // send notification message - CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:message]; - [pluginResult setKeepCallbackAsBool:YES]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:self.callbackId]; - - self.notificationMessage = nil; - } -} - -- (void)setApplicationIconBadgeNumber:(CDVInvokedUrlCommand *)command -{ - NSMutableDictionary* options = [command.arguments objectAtIndex:0]; - int badge = [[options objectForKey:@"badge"] intValue] ?: 0; - - [[UIApplication sharedApplication] setApplicationIconBadgeNumber:badge]; - - NSString* message = [NSString stringWithFormat:@"app badge count set to %d", badge]; - CDVPluginResult *commandResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:message]; - [self.commandDelegate sendPluginResult:commandResult callbackId:command.callbackId]; -} - -- (void)getApplicationIconBadgeNumber:(CDVInvokedUrlCommand *)command -{ - NSInteger badge = [UIApplication sharedApplication].applicationIconBadgeNumber; - - CDVPluginResult *commandResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsInt:(int)badge]; - [self.commandDelegate sendPluginResult:commandResult callbackId:command.callbackId]; -} - --(void)successWithMessage:(NSString *)message -{ - if (self.callbackId != nil) - { - CDVPluginResult *commandResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:message]; - [self.commandDelegate sendPluginResult:commandResult callbackId:self.callbackId]; - } -} - --(void)failWithMessage:(NSString *)message withError:(NSError *)error -{ - NSString *errorMessage = (error) ? [NSString stringWithFormat:@"%@ - %@", message, [error localizedDescription]] : message; - CDVPluginResult *commandResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:errorMessage]; - - [self.commandDelegate sendPluginResult:commandResult callbackId:self.callbackId]; -} - --(void) finish:(CDVInvokedUrlCommand*)command -{ - NSLog(@"Push Plugin finish called"); - - [self.commandDelegate runInBackground:^ { - UIApplication *app = [UIApplication sharedApplication]; - float finishTimer = (app.backgroundTimeRemaining > 20.0) ? 20.0 : app.backgroundTimeRemaining; - - [NSTimer scheduledTimerWithTimeInterval:finishTimer - target:self - selector:@selector(stopBackgroundTask:) - userInfo:nil - repeats:NO]; - - CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; -} - --(void)stopBackgroundTask:(NSTimer*)timer -{ - UIApplication *app = [UIApplication sharedApplication]; - - NSLog(@"Push Plugin stopBackgroundTask called"); - - if (handlerObj) { - NSLog(@"Push Plugin handlerObj"); - completionHandler = [handlerObj[@"handler"] copy]; - if (completionHandler) { - NSLog(@"Push Plugin: stopBackgroundTask (remaining t: %f)", app.backgroundTimeRemaining); - completionHandler(UIBackgroundFetchResultNewData); - completionHandler = nil; - } - } -} - -@end diff --git a/StoneIsland/platforms/ios/Stone Island/Resources/CDVNotification.bundle/beep.wav b/StoneIsland/platforms/ios/Stone Island/Resources/CDVNotification.bundle/beep.wav Binary files differindex 05f5997f..05f5997f 100755..100644 --- a/StoneIsland/platforms/ios/Stone Island/Resources/CDVNotification.bundle/beep.wav +++ b/StoneIsland/platforms/ios/Stone Island/Resources/CDVNotification.bundle/beep.wav diff --git a/StoneIsland/platforms/ios/Stone Island/Stone Island-Info.plist b/StoneIsland/platforms/ios/Stone Island/Stone Island-Info.plist index 903a41d6..2cc9baf9 100644 --- a/StoneIsland/platforms/ios/Stone Island/Stone Island-Info.plist +++ b/StoneIsland/platforms/ios/Stone Island/Stone Island-Info.plist @@ -21,11 +21,11 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>0.6.1</string> + <string>0.7.0</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> - <string>0.6.1</string> + <string>0.7.0</string> <key>LSRequiresIPhoneOS</key> <true/> <key>NSMainNibFile</key> @@ -64,9 +64,5 @@ </array> <key>NSLocationWhenInUseUsageDescription</key> <string/> - <key>UIBackgroundModes</key> - <array> - <string>remote-notification</string> - </array> </dict> </plist>
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island/config.xml b/StoneIsland/platforms/ios/Stone Island/config.xml index 90d98387..0121d04d 100755 --- a/StoneIsland/platforms/ios/Stone Island/config.xml +++ b/StoneIsland/platforms/ios/Stone Island/config.xml @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='utf-8'?> -<widget id="us.okfoc.stoneisland" version="0.6.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> +<widget id="us.okfoc.stoneisland" version="0.7.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <feature name="LocalStorage"> <param name="ios-package" value="CDVLocalStorage" /> </feature> @@ -15,40 +15,37 @@ <param name="ios-package" value="CDVGestureHandler" /> <param name="onload" value="true" /> </feature> - <feature name="Keyboard"> - <param name="ios-package" onload="true" value="IonicKeyboard" /> - </feature> <feature name="ParsePlugin"> <param name="ios-package" value="CDVParsePlugin" /> </feature> + <feature name="InAppBrowser"> + <param name="ios-package" value="CDVInAppBrowser" /> + </feature> + <feature name="SocialSharing"> + <param name="ios-package" value="SocialSharing" /> + <param name="onload" value="true" /> + </feature> <feature name="Console"> <param name="ios-package" value="CDVLogger" /> </feature> <feature name="Device"> <param name="ios-package" value="CDVDevice" /> </feature> - <feature name="Notification"> - <param name="ios-package" value="CDVNotification" /> - </feature> - <feature name="Geolocation"> - <param name="ios-package" value="CDVLocation" /> - </feature> - <feature name="InAppBrowser"> - <param name="ios-package" value="CDVInAppBrowser" /> - </feature> <feature name="NetworkStatus"> <param name="ios-package" value="CDVConnection" /> </feature> + <feature name="Notification"> + <param name="ios-package" value="CDVNotification" /> + </feature> <feature name="SplashScreen"> <param name="ios-package" value="CDVSplashScreen" /> <param name="onload" value="true" /> </feature> - <feature name="SocialSharing"> - <param name="ios-package" value="SocialSharing" /> - <param name="onload" value="true" /> + <feature name="Geolocation"> + <param name="ios-package" value="CDVLocation" /> </feature> - <feature name="PushNotification"> - <param name="ios-package" value="PushPlugin" /> + <feature name="Keyboard"> + <param name="ios-package" onload="true" value="IonicKeyboard" /> </feature> <name>Stone Island</name> <description> diff --git a/StoneIsland/platforms/ios/cordova/build-extras.xcconfig b/StoneIsland/platforms/ios/cordova/build-extras.xcconfig index 7e631112..e69de29b 100755 --- a/StoneIsland/platforms/ios/cordova/build-extras.xcconfig +++ b/StoneIsland/platforms/ios/cordova/build-extras.xcconfig @@ -1,22 +0,0 @@ -// -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. -// - -// -// Auto-generated config file to override configuration files (build-release/build-debug). -// diff --git a/StoneIsland/platforms/ios/frameworks.json b/StoneIsland/platforms/ios/frameworks.json index efdb887d..35f16486 100644 --- a/StoneIsland/platforms/ios/frameworks.json +++ b/StoneIsland/platforms/ios/frameworks.json @@ -10,5 +10,6 @@ "SystemConfiguration.framework": 2, "libz.dylib": 1, "libsqlite3.dylib": 1, - "MessageUI.framework": 1 + "MessageUI.framework": 1, + "CoreTelephony.framework": 1 }
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/ios.json b/StoneIsland/platforms/ios/ios.json index 433e304a..2a38b9d3 100644 --- a/StoneIsland/platforms/ios/ios.json +++ b/StoneIsland/platforms/ios/ios.json @@ -9,35 +9,31 @@ "parents": { "/*": [ { - "xml": "<feature name=\"Keyboard\"><param name=\"ios-package\" onload=\"true\" value=\"IonicKeyboard\" /></feature>", - "count": 1 - }, - { "xml": "<feature name=\"ParsePlugin\"><param name=\"ios-package\" value=\"CDVParsePlugin\" /></feature>", "count": 1 }, { - "xml": "<feature name=\"Console\"><param name=\"ios-package\" value=\"CDVLogger\" /></feature>", + "xml": "<feature name=\"InAppBrowser\"><param name=\"ios-package\" value=\"CDVInAppBrowser\" /></feature>", "count": 1 }, { - "xml": "<feature name=\"Device\"><param name=\"ios-package\" value=\"CDVDevice\" /></feature>", + "xml": "<feature name=\"SocialSharing\"><param name=\"ios-package\" value=\"SocialSharing\" /><param name=\"onload\" value=\"true\" /></feature>", "count": 1 }, { - "xml": "<feature name=\"Notification\"><param name=\"ios-package\" value=\"CDVNotification\" /></feature>", + "xml": "<feature name=\"Console\"><param name=\"ios-package\" value=\"CDVLogger\" /></feature>", "count": 1 }, { - "xml": "<feature name=\"Geolocation\"><param name=\"ios-package\" value=\"CDVLocation\" /></feature>", + "xml": "<feature name=\"Device\"><param name=\"ios-package\" value=\"CDVDevice\" /></feature>", "count": 1 }, { - "xml": "<feature name=\"InAppBrowser\"><param name=\"ios-package\" value=\"CDVInAppBrowser\" /></feature>", + "xml": "<feature name=\"NetworkStatus\"><param name=\"ios-package\" value=\"CDVConnection\" /></feature>", "count": 1 }, { - "xml": "<feature name=\"NetworkStatus\"><param name=\"ios-package\" value=\"CDVConnection\" /></feature>", + "xml": "<feature name=\"Notification\"><param name=\"ios-package\" value=\"CDVNotification\" /></feature>", "count": 1 }, { @@ -45,11 +41,11 @@ "count": 1 }, { - "xml": "<feature name=\"SocialSharing\"><param name=\"ios-package\" value=\"SocialSharing\" /><param name=\"onload\" value=\"true\" /></feature>", + "xml": "<feature name=\"Geolocation\"><param name=\"ios-package\" value=\"CDVLocation\" /></feature>", "count": 1 }, { - "xml": "<feature name=\"PushNotification\"><param name=\"ios-package\" value=\"PushPlugin\" /></feature>", + "xml": "<feature name=\"Keyboard\"><param name=\"ios-package\" onload=\"true\" value=\"IonicKeyboard\" /></feature>", "count": 1 } ] @@ -69,69 +65,56 @@ "count": 1 } ], - "UIBackgroundModes": [ - { - "xml": "<array><string>remote-notification</string></array>", - "count": 1 - } - ] + "UIBackgroundModes": [] } } } }, "installed_plugins": { - "com.ionic.keyboard": { + "com.parse.cordova.core.pushplugin": { "PACKAGE_NAME": "us.okfoc.stoneisland" }, - "com.parse.cordova.core.pushplugin": { + "cordova-plugin-inappbrowser": { "PACKAGE_NAME": "us.okfoc.stoneisland" }, - "cordova-plugin-console": { + "cordova-plugin-x-socialsharing": { "PACKAGE_NAME": "us.okfoc.stoneisland" }, "cordova-plugin-customurlscheme": { "URL_SCHEME": "stoneisland", "PACKAGE_NAME": "us.okfoc.stoneisland" }, - "cordova-plugin-device": { + "cordova-plugin-whitelist": { "PACKAGE_NAME": "us.okfoc.stoneisland" }, - "cordova-plugin-dialogs": { + "cordova-plugin-console": { "PACKAGE_NAME": "us.okfoc.stoneisland" }, - "cordova-plugin-geolocation": { + "cordova-plugin-device": { "PACKAGE_NAME": "us.okfoc.stoneisland" }, - "cordova-plugin-inappbrowser": { + "cordova-plugin-network-information": { "PACKAGE_NAME": "us.okfoc.stoneisland" }, - "cordova-plugin-network-information": { + "cordova-plugin-dialogs": { "PACKAGE_NAME": "us.okfoc.stoneisland" }, "cordova-plugin-splashscreen": { "PACKAGE_NAME": "us.okfoc.stoneisland" }, - "cordova-plugin-whitelist": { + "cordova-plugin-compat": { "PACKAGE_NAME": "us.okfoc.stoneisland" }, - "cordova-plugin-x-socialsharing": { + "cordova-plugin-geolocation": { "PACKAGE_NAME": "us.okfoc.stoneisland" }, - "phonegap-plugin-push": { + "ionic-plugin-keyboard": { "PACKAGE_NAME": "us.okfoc.stoneisland" } }, "dependent_plugins": {}, "modules": [ { - "id": "com.ionic.keyboard.keyboard", - "file": "plugins/com.ionic.keyboard/www/keyboard.js", - "pluginId": "com.ionic.keyboard", - "clobbers": [ - "cordova.plugins.Keyboard" - ] - }, - { "id": "com.parse.cordova.core.pushplugin.ParsePlugin", "file": "plugins/com.parse.cordova.core.pushplugin/www/cdv-plugin-parse.js", "pluginId": "com.parse.cordova.core.pushplugin", @@ -140,19 +123,20 @@ ] }, { - "id": "cordova-plugin-console.logger", - "file": "plugins/cordova-plugin-console/www/logger.js", - "pluginId": "cordova-plugin-console", + "id": "cordova-plugin-inappbrowser.inappbrowser", + "file": "plugins/cordova-plugin-inappbrowser/www/inappbrowser.js", + "pluginId": "cordova-plugin-inappbrowser", "clobbers": [ - "cordova.logger" + "cordova.InAppBrowser.open", + "window.open" ] }, { - "id": "cordova-plugin-console.console", - "file": "plugins/cordova-plugin-console/www/console-via-logger.js", - "pluginId": "cordova-plugin-console", + "id": "cordova-plugin-x-socialsharing.SocialSharing", + "file": "plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js", + "pluginId": "cordova-plugin-x-socialsharing", "clobbers": [ - "console" + "window.plugins.socialsharing" ] }, { @@ -164,6 +148,22 @@ ] }, { + "id": "cordova-plugin-console.console", + "file": "plugins/cordova-plugin-console/www/console-via-logger.js", + "pluginId": "cordova-plugin-console", + "clobbers": [ + "console" + ] + }, + { + "id": "cordova-plugin-console.logger", + "file": "plugins/cordova-plugin-console/www/logger.js", + "pluginId": "cordova-plugin-console", + "clobbers": [ + "cordova.logger" + ] + }, + { "id": "cordova-plugin-device.device", "file": "plugins/cordova-plugin-device/www/device.js", "pluginId": "cordova-plugin-device", @@ -172,6 +172,23 @@ ] }, { + "id": "cordova-plugin-network-information.network", + "file": "plugins/cordova-plugin-network-information/www/network.js", + "pluginId": "cordova-plugin-network-information", + "clobbers": [ + "navigator.connection", + "navigator.network.connection" + ] + }, + { + "id": "cordova-plugin-network-information.Connection", + "file": "plugins/cordova-plugin-network-information/www/Connection.js", + "pluginId": "cordova-plugin-network-information", + "clobbers": [ + "Connection" + ] + }, + { "id": "cordova-plugin-dialogs.notification", "file": "plugins/cordova-plugin-dialogs/www/notification.js", "pluginId": "cordova-plugin-dialogs", @@ -180,6 +197,14 @@ ] }, { + "id": "cordova-plugin-splashscreen.SplashScreen", + "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", + "pluginId": "cordova-plugin-splashscreen", + "clobbers": [ + "navigator.splashscreen" + ] + }, + { "id": "cordova-plugin-geolocation.Coordinates", "file": "plugins/cordova-plugin-geolocation/www/Coordinates.js", "pluginId": "cordova-plugin-geolocation", @@ -212,69 +237,28 @@ ] }, { - "id": "cordova-plugin-inappbrowser.inappbrowser", - "file": "plugins/cordova-plugin-inappbrowser/www/inappbrowser.js", - "pluginId": "cordova-plugin-inappbrowser", - "clobbers": [ - "cordova.InAppBrowser.open", - "window.open" - ] - }, - { - "id": "cordova-plugin-network-information.network", - "file": "plugins/cordova-plugin-network-information/www/network.js", - "pluginId": "cordova-plugin-network-information", + "id": "ionic-plugin-keyboard.keyboard", + "file": "plugins/ionic-plugin-keyboard/www/ios/keyboard.js", + "pluginId": "ionic-plugin-keyboard", "clobbers": [ - "navigator.connection", - "navigator.network.connection" - ] - }, - { - "id": "cordova-plugin-network-information.Connection", - "file": "plugins/cordova-plugin-network-information/www/Connection.js", - "pluginId": "cordova-plugin-network-information", - "clobbers": [ - "Connection" - ] - }, - { - "id": "cordova-plugin-splashscreen.SplashScreen", - "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", - "pluginId": "cordova-plugin-splashscreen", - "clobbers": [ - "navigator.splashscreen" - ] - }, - { - "id": "cordova-plugin-x-socialsharing.SocialSharing", - "file": "plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js", - "pluginId": "cordova-plugin-x-socialsharing", - "clobbers": [ - "window.plugins.socialsharing" - ] - }, - { - "id": "phonegap-plugin-push.PushNotification", - "file": "plugins/phonegap-plugin-push/www/push.js", - "pluginId": "phonegap-plugin-push", - "clobbers": [ - "PushNotification" - ] + "cordova.plugins.Keyboard" + ], + "runs": true } ], "plugin_metadata": { - "com.ionic.keyboard": "1.0.4", "com.parse.cordova.core.pushplugin": "0.1.0", - "cordova-plugin-console": "1.0.1", - "cordova-plugin-customurlscheme": "4.0.0", - "cordova-plugin-device": "1.0.1", - "cordova-plugin-dialogs": "1.1.1", - "cordova-plugin-geolocation": "1.0.1", - "cordova-plugin-inappbrowser": "1.1.0", - "cordova-plugin-network-information": "1.0.1", - "cordova-plugin-splashscreen": "3.0.0", - "cordova-plugin-whitelist": "1.0.0", - "cordova-plugin-x-socialsharing": "5.0.7", - "phonegap-plugin-push": "1.4.4" + "cordova-plugin-inappbrowser": "1.5.0", + "cordova-plugin-x-socialsharing": "5.1.3", + "cordova-plugin-customurlscheme": "4.2.0", + "cordova-plugin-whitelist": "1.3.0", + "cordova-plugin-console": "1.0.4", + "cordova-plugin-device": "1.1.3", + "cordova-plugin-network-information": "1.3.0", + "cordova-plugin-dialogs": "1.3.0", + "cordova-plugin-splashscreen": "4.0.0", + "cordova-plugin-compat": "1.1.0", + "cordova-plugin-geolocation": "2.4.0", + "ionic-plugin-keyboard": "2.2.1" } }
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/platform_www/cordova_plugins.js b/StoneIsland/platforms/ios/platform_www/cordova_plugins.js index c17b360b..b4bf1fc8 100644 --- a/StoneIsland/platforms/ios/platform_www/cordova_plugins.js +++ b/StoneIsland/platforms/ios/platform_www/cordova_plugins.js @@ -1,14 +1,6 @@ cordova.define('cordova/plugin_list', function(require, exports, module) { module.exports = [ { - "id": "com.ionic.keyboard.keyboard", - "file": "plugins/com.ionic.keyboard/www/keyboard.js", - "pluginId": "com.ionic.keyboard", - "clobbers": [ - "cordova.plugins.Keyboard" - ] - }, - { "id": "com.parse.cordova.core.pushplugin.ParsePlugin", "file": "plugins/com.parse.cordova.core.pushplugin/www/cdv-plugin-parse.js", "pluginId": "com.parse.cordova.core.pushplugin", @@ -17,19 +9,20 @@ module.exports = [ ] }, { - "id": "cordova-plugin-console.logger", - "file": "plugins/cordova-plugin-console/www/logger.js", - "pluginId": "cordova-plugin-console", + "id": "cordova-plugin-inappbrowser.inappbrowser", + "file": "plugins/cordova-plugin-inappbrowser/www/inappbrowser.js", + "pluginId": "cordova-plugin-inappbrowser", "clobbers": [ - "cordova.logger" + "cordova.InAppBrowser.open", + "window.open" ] }, { - "id": "cordova-plugin-console.console", - "file": "plugins/cordova-plugin-console/www/console-via-logger.js", - "pluginId": "cordova-plugin-console", + "id": "cordova-plugin-x-socialsharing.SocialSharing", + "file": "plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js", + "pluginId": "cordova-plugin-x-socialsharing", "clobbers": [ - "console" + "window.plugins.socialsharing" ] }, { @@ -41,6 +34,22 @@ module.exports = [ ] }, { + "id": "cordova-plugin-console.console", + "file": "plugins/cordova-plugin-console/www/console-via-logger.js", + "pluginId": "cordova-plugin-console", + "clobbers": [ + "console" + ] + }, + { + "id": "cordova-plugin-console.logger", + "file": "plugins/cordova-plugin-console/www/logger.js", + "pluginId": "cordova-plugin-console", + "clobbers": [ + "cordova.logger" + ] + }, + { "id": "cordova-plugin-device.device", "file": "plugins/cordova-plugin-device/www/device.js", "pluginId": "cordova-plugin-device", @@ -49,6 +58,23 @@ module.exports = [ ] }, { + "id": "cordova-plugin-network-information.network", + "file": "plugins/cordova-plugin-network-information/www/network.js", + "pluginId": "cordova-plugin-network-information", + "clobbers": [ + "navigator.connection", + "navigator.network.connection" + ] + }, + { + "id": "cordova-plugin-network-information.Connection", + "file": "plugins/cordova-plugin-network-information/www/Connection.js", + "pluginId": "cordova-plugin-network-information", + "clobbers": [ + "Connection" + ] + }, + { "id": "cordova-plugin-dialogs.notification", "file": "plugins/cordova-plugin-dialogs/www/notification.js", "pluginId": "cordova-plugin-dialogs", @@ -57,6 +83,14 @@ module.exports = [ ] }, { + "id": "cordova-plugin-splashscreen.SplashScreen", + "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", + "pluginId": "cordova-plugin-splashscreen", + "clobbers": [ + "navigator.splashscreen" + ] + }, + { "id": "cordova-plugin-geolocation.Coordinates", "file": "plugins/cordova-plugin-geolocation/www/Coordinates.js", "pluginId": "cordova-plugin-geolocation", @@ -89,72 +123,31 @@ module.exports = [ ] }, { - "id": "cordova-plugin-inappbrowser.inappbrowser", - "file": "plugins/cordova-plugin-inappbrowser/www/inappbrowser.js", - "pluginId": "cordova-plugin-inappbrowser", + "id": "ionic-plugin-keyboard.keyboard", + "file": "plugins/ionic-plugin-keyboard/www/ios/keyboard.js", + "pluginId": "ionic-plugin-keyboard", "clobbers": [ - "cordova.InAppBrowser.open", - "window.open" - ] - }, - { - "id": "cordova-plugin-network-information.network", - "file": "plugins/cordova-plugin-network-information/www/network.js", - "pluginId": "cordova-plugin-network-information", - "clobbers": [ - "navigator.connection", - "navigator.network.connection" - ] - }, - { - "id": "cordova-plugin-network-information.Connection", - "file": "plugins/cordova-plugin-network-information/www/Connection.js", - "pluginId": "cordova-plugin-network-information", - "clobbers": [ - "Connection" - ] - }, - { - "id": "cordova-plugin-splashscreen.SplashScreen", - "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", - "pluginId": "cordova-plugin-splashscreen", - "clobbers": [ - "navigator.splashscreen" - ] - }, - { - "id": "cordova-plugin-x-socialsharing.SocialSharing", - "file": "plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js", - "pluginId": "cordova-plugin-x-socialsharing", - "clobbers": [ - "window.plugins.socialsharing" - ] - }, - { - "id": "phonegap-plugin-push.PushNotification", - "file": "plugins/phonegap-plugin-push/www/push.js", - "pluginId": "phonegap-plugin-push", - "clobbers": [ - "PushNotification" - ] + "cordova.plugins.Keyboard" + ], + "runs": true } ]; module.exports.metadata = // TOP OF METADATA { - "com.ionic.keyboard": "1.0.4", "com.parse.cordova.core.pushplugin": "0.1.0", - "cordova-plugin-console": "1.0.1", - "cordova-plugin-customurlscheme": "4.0.0", - "cordova-plugin-device": "1.0.1", - "cordova-plugin-dialogs": "1.1.1", - "cordova-plugin-geolocation": "1.0.1", - "cordova-plugin-inappbrowser": "1.1.0", - "cordova-plugin-network-information": "1.0.1", - "cordova-plugin-splashscreen": "3.0.0", - "cordova-plugin-whitelist": "1.0.0", - "cordova-plugin-x-socialsharing": "5.0.7", - "phonegap-plugin-push": "1.4.4" + "cordova-plugin-inappbrowser": "1.5.0", + "cordova-plugin-x-socialsharing": "5.1.3", + "cordova-plugin-customurlscheme": "4.2.0", + "cordova-plugin-whitelist": "1.3.0", + "cordova-plugin-console": "1.0.4", + "cordova-plugin-device": "1.1.3", + "cordova-plugin-network-information": "1.3.0", + "cordova-plugin-dialogs": "1.3.0", + "cordova-plugin-splashscreen": "4.0.0", + "cordova-plugin-compat": "1.1.0", + "cordova-plugin-geolocation": "2.4.0", + "ionic-plugin-keyboard": "2.2.1" }; // BOTTOM OF METADATA });
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-console/www/console-via-logger.js b/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-console/www/console-via-logger.js index f7de4b64..0ecd9cc3 100644 --- a/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-console/www/console-via-logger.js +++ b/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-console/www/console-via-logger.js @@ -23,7 +23,6 @@ cordova.define("cordova-plugin-console.console", function(require, exports, modu //------------------------------------------------------------------------------ var logger = require("./logger"); -var utils = require("cordova/utils"); //------------------------------------------------------------------------------ // object that we're exporting diff --git a/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-console/www/logger.js b/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-console/www/logger.js index dd42c01d..deb07b57 100644 --- a/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-console/www/logger.js +++ b/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-console/www/logger.js @@ -44,7 +44,6 @@ cordova.define("cordova-plugin-console.logger", function(require, exports, modul var logger = exports; var exec = require('cordova/exec'); -var utils = require('cordova/utils'); var UseConsole = false; var UseLogger = true; diff --git a/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-device/www/device.js b/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-device/www/device.js index 775c123f..977dfc09 100644 --- a/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-device/www/device.js +++ b/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-device/www/device.js @@ -43,6 +43,8 @@ function Device() { this.cordova = null; this.model = null; this.manufacturer = null; + this.isVirtual = null; + this.serial = null; var me = this; @@ -57,7 +59,9 @@ function Device() { me.uuid = info.uuid; me.cordova = buildLabel; me.model = info.model; + me.isVirtual = info.isVirtual; me.manufacturer = info.manufacturer || 'unknown'; + me.serial = info.serial || 'unknown'; channel.onCordovaInfoReady.fire(); },function(e) { me.available = false; diff --git a/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-dialogs/www/notification.js b/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-dialogs/www/notification.js index adc5c077..4ddf530b 100644 --- a/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-dialogs/www/notification.js +++ b/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-dialogs/www/notification.js @@ -38,9 +38,10 @@ module.exports = { * @param {String} buttonLabel Label of the close button (default: OK) */ alert: function(message, completeCallback, title, buttonLabel) { - var _title = (title || "Alert"); + var _message = (typeof message === "string" ? message : JSON.stringify(message)); + var _title = (typeof title === "string" ? title : "Alert"); var _buttonLabel = (buttonLabel || "OK"); - exec(completeCallback, null, "Notification", "alert", [message, _title, _buttonLabel]); + exec(completeCallback, null, "Notification", "alert", [_message, _title, _buttonLabel]); }, /** @@ -53,7 +54,8 @@ module.exports = { * @param {Array} buttonLabels Array of the labels of the buttons (default: ['OK', 'Cancel']) */ confirm: function(message, resultCallback, title, buttonLabels) { - var _title = (title || "Confirm"); + var _message = (typeof message === "string" ? message : JSON.stringify(message)); + var _title = (typeof title === "string" ? title : "Confirm"); var _buttonLabels = (buttonLabels || ["OK", "Cancel"]); // Strings are deprecated! @@ -61,23 +63,9 @@ module.exports = { console.log("Notification.confirm(string, function, string, string) is deprecated. Use Notification.confirm(string, function, string, array)."); } - // Some platforms take an array of button label names. - // Other platforms take a comma separated list. - // For compatibility, we convert to the desired type based on the platform. - if (platform.id == "amazon-fireos" || platform.id == "android" || platform.id == "ios" || - platform.id == "windowsphone" || platform.id == "firefoxos" || platform.id == "ubuntu" || - platform.id == "windows8" || platform.id == "windows") { + _buttonLabels = convertButtonLabels(_buttonLabels); - if (typeof _buttonLabels === 'string') { - _buttonLabels = _buttonLabels.split(","); // not crazy about changing the var type here - } - } else { - if (Array.isArray(_buttonLabels)) { - var buttonLabelArray = _buttonLabels; - _buttonLabels = buttonLabelArray.toString(); - } - } - exec(resultCallback, null, "Notification", "confirm", [message, _title, _buttonLabels]); + exec(resultCallback, null, "Notification", "confirm", [_message, _title, _buttonLabels]); }, /** @@ -93,9 +81,17 @@ module.exports = { * @param {String} defaultText Textbox input value (default: empty string) */ prompt: function(message, resultCallback, title, buttonLabels, defaultText) { - var _message = (message || "Prompt message"); - var _title = (title || "Prompt"); + var _message = (typeof message === "string" ? message : JSON.stringify(message)); + var _title = (typeof title === "string" ? title : "Prompt"); var _buttonLabels = (buttonLabels || ["OK","Cancel"]); + + // Strings are deprecated! + if (typeof _buttonLabels === 'string') { + console.log("Notification.prompt(string, function, string, string) is deprecated. Use Notification.confirm(string, function, string, array)."); + } + + _buttonLabels = convertButtonLabels(_buttonLabels); + var _defaultText = (defaultText || ""); exec(resultCallback, null, "Notification", "prompt", [_message, _title, _buttonLabels, _defaultText]); }, @@ -112,4 +108,26 @@ module.exports = { } }; +function convertButtonLabels(buttonLabels) { + + // Some platforms take an array of button label names. + // Other platforms take a comma separated list. + // For compatibility, we convert to the desired type based on the platform. + if (platform.id == "amazon-fireos" || platform.id == "android" || platform.id == "ios" || + platform.id == "windowsphone" || platform.id == "firefoxos" || platform.id == "ubuntu" || + platform.id == "windows8" || platform.id == "windows") { + + if (typeof buttonLabels === 'string') { + buttonLabels = buttonLabels.split(","); // not crazy about changing the var type here + } + } else { + if (Array.isArray(buttonLabels)) { + var buttonLabelArray = buttonLabels; + buttonLabels = buttonLabelArray.toString(); + } + } + + return buttonLabels; +} + }); diff --git a/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-geolocation/www/Position.js b/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-geolocation/www/Position.js index 116abb4f..97c6c2e3 100644 --- a/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-geolocation/www/Position.js +++ b/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-geolocation/www/Position.js @@ -28,7 +28,7 @@ var Position = function(coords, timestamp) { } else { this.coords = new Coordinates(); } - this.timestamp = (timestamp !== undefined) ? timestamp : new Date(); + this.timestamp = (timestamp !== undefined) ? timestamp : new Date().getTime(); }; module.exports = Position; diff --git a/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-geolocation/www/PositionError.js b/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-geolocation/www/PositionError.js index c335381e..c26dd754 100644 --- a/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-geolocation/www/PositionError.js +++ b/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-geolocation/www/PositionError.js @@ -32,9 +32,9 @@ var PositionError = function(code, message) { this.message = message || ''; }; -PositionError.PERMISSION_DENIED = 1; -PositionError.POSITION_UNAVAILABLE = 2; -PositionError.TIMEOUT = 3; +PositionError.prototype.PERMISSION_DENIED = PositionError.PERMISSION_DENIED = 1; +PositionError.prototype.POSITION_UNAVAILABLE = PositionError.POSITION_UNAVAILABLE = 2; +PositionError.prototype.TIMEOUT = PositionError.TIMEOUT = 3; module.exports = PositionError; diff --git a/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-geolocation/www/geolocation.js b/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-geolocation/www/geolocation.js index 37bdaabb..50f1f953 100644 --- a/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-geolocation/www/geolocation.js +++ b/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-geolocation/www/geolocation.js @@ -103,7 +103,7 @@ var geolocation = { velocity:p.velocity, altitudeAccuracy:p.altitudeAccuracy }, - (p.timestamp === undefined ? new Date() : ((p.timestamp instanceof Date) ? p.timestamp : new Date(p.timestamp))) + p.timestamp ); geolocation.lastPosition = pos; successCallback(pos); @@ -119,7 +119,7 @@ var geolocation = { // Check our cached position, if its timestamp difference with current time is less than the maximumAge, then just // fire the success callback with the cached position. - if (geolocation.lastPosition && options.maximumAge && (((new Date()).getTime() - geolocation.lastPosition.timestamp.getTime()) <= options.maximumAge)) { + if (geolocation.lastPosition && options.maximumAge && (((new Date()).getTime() - geolocation.lastPosition.timestamp) <= options.maximumAge)) { successCallback(geolocation.lastPosition); // If the cached position check failed and the timeout was set to 0, error out with a TIMEOUT error object. } else if (options.timeout === 0) { @@ -185,7 +185,7 @@ var geolocation = { velocity:p.velocity, altitudeAccuracy:p.altitudeAccuracy }, - (p.timestamp === undefined ? new Date() : ((p.timestamp instanceof Date) ? p.timestamp : new Date(p.timestamp))) + p.timestamp ); geolocation.lastPosition = pos; successCallback(pos); diff --git a/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-inappbrowser/www/inappbrowser.js b/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-inappbrowser/www/inappbrowser.js index b18a2ba7..3e87a6e7 100644 --- a/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-inappbrowser/www/inappbrowser.js +++ b/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-inappbrowser/www/inappbrowser.js @@ -20,94 +20,95 @@ cordova.define("cordova-plugin-inappbrowser.inappbrowser", function(require, exp * */ -// special patch to correctly work on Ripple emulator (CB-9760) -if (window.parent && !!window.parent.ripple) { // https://gist.github.com/triceam/4658021 - module.exports = window.open.bind(window); // fallback to default window.open behaviour - return; -} +(function() { + // special patch to correctly work on Ripple emulator (CB-9760) + if (window.parent && !!window.parent.ripple) { // https://gist.github.com/triceam/4658021 + module.exports = window.open.bind(window); // fallback to default window.open behaviour + return; + } -var exec = require('cordova/exec'); -var channel = require('cordova/channel'); -var modulemapper = require('cordova/modulemapper'); -var urlutil = require('cordova/urlutil'); + var exec = require('cordova/exec'); + var channel = require('cordova/channel'); + var modulemapper = require('cordova/modulemapper'); + var urlutil = require('cordova/urlutil'); -function InAppBrowser() { - this.channels = { - 'loadstart': channel.create('loadstart'), - 'loadstop' : channel.create('loadstop'), - 'loaderror' : channel.create('loaderror'), - 'exit' : channel.create('exit') - }; -} + function InAppBrowser() { + this.channels = { + 'loadstart': channel.create('loadstart'), + 'loadstop' : channel.create('loadstop'), + 'loaderror' : channel.create('loaderror'), + 'exit' : channel.create('exit') + }; + } -InAppBrowser.prototype = { - _eventHandler: function (event) { - if (event && (event.type in this.channels)) { - this.channels[event.type].fire(event); - } - }, - close: function (eventname) { - exec(null, null, "InAppBrowser", "close", []); - }, - show: function (eventname) { - exec(null, null, "InAppBrowser", "show", []); - }, - addEventListener: function (eventname,f) { - if (eventname in this.channels) { - this.channels[eventname].subscribe(f); - } - }, - removeEventListener: function(eventname, f) { - if (eventname in this.channels) { - this.channels[eventname].unsubscribe(f); - } - }, + InAppBrowser.prototype = { + _eventHandler: function (event) { + if (event && (event.type in this.channels)) { + this.channels[event.type].fire(event); + } + }, + close: function (eventname) { + exec(null, null, "InAppBrowser", "close", []); + }, + show: function (eventname) { + exec(null, null, "InAppBrowser", "show", []); + }, + addEventListener: function (eventname,f) { + if (eventname in this.channels) { + this.channels[eventname].subscribe(f); + } + }, + removeEventListener: function(eventname, f) { + if (eventname in this.channels) { + this.channels[eventname].unsubscribe(f); + } + }, - executeScript: function(injectDetails, cb) { - if (injectDetails.code) { - exec(cb, null, "InAppBrowser", "injectScriptCode", [injectDetails.code, !!cb]); - } else if (injectDetails.file) { - exec(cb, null, "InAppBrowser", "injectScriptFile", [injectDetails.file, !!cb]); - } else { - throw new Error('executeScript requires exactly one of code or file to be specified'); - } - }, + executeScript: function(injectDetails, cb) { + if (injectDetails.code) { + exec(cb, null, "InAppBrowser", "injectScriptCode", [injectDetails.code, !!cb]); + } else if (injectDetails.file) { + exec(cb, null, "InAppBrowser", "injectScriptFile", [injectDetails.file, !!cb]); + } else { + throw new Error('executeScript requires exactly one of code or file to be specified'); + } + }, - insertCSS: function(injectDetails, cb) { - if (injectDetails.code) { - exec(cb, null, "InAppBrowser", "injectStyleCode", [injectDetails.code, !!cb]); - } else if (injectDetails.file) { - exec(cb, null, "InAppBrowser", "injectStyleFile", [injectDetails.file, !!cb]); - } else { - throw new Error('insertCSS requires exactly one of code or file to be specified'); + insertCSS: function(injectDetails, cb) { + if (injectDetails.code) { + exec(cb, null, "InAppBrowser", "injectStyleCode", [injectDetails.code, !!cb]); + } else if (injectDetails.file) { + exec(cb, null, "InAppBrowser", "injectStyleFile", [injectDetails.file, !!cb]); + } else { + throw new Error('insertCSS requires exactly one of code or file to be specified'); + } } - } -}; - -module.exports = function(strUrl, strWindowName, strWindowFeatures, callbacks) { - // Don't catch calls that write to existing frames (e.g. named iframes). - if (window.frames && window.frames[strWindowName]) { - var origOpenFunc = modulemapper.getOriginalSymbol(window, 'open'); - return origOpenFunc.apply(window, arguments); - } + }; - strUrl = urlutil.makeAbsolute(strUrl); - var iab = new InAppBrowser(); + module.exports = function(strUrl, strWindowName, strWindowFeatures, callbacks) { + // Don't catch calls that write to existing frames (e.g. named iframes). + if (window.frames && window.frames[strWindowName]) { + var origOpenFunc = modulemapper.getOriginalSymbol(window, 'open'); + return origOpenFunc.apply(window, arguments); + } - callbacks = callbacks || {}; - for (var callbackName in callbacks) { - iab.addEventListener(callbackName, callbacks[callbackName]); - } + strUrl = urlutil.makeAbsolute(strUrl); + var iab = new InAppBrowser(); - var cb = function(eventname) { - iab._eventHandler(eventname); - }; + callbacks = callbacks || {}; + for (var callbackName in callbacks) { + iab.addEventListener(callbackName, callbacks[callbackName]); + } - strWindowFeatures = strWindowFeatures || ""; + var cb = function(eventname) { + iab._eventHandler(eventname); + }; - exec(cb, cb, "InAppBrowser", "open", [strUrl, strWindowName, strWindowFeatures]); - return iab; -}; + strWindowFeatures = strWindowFeatures || ""; + exec(cb, cb, "InAppBrowser", "open", [strUrl, strWindowName, strWindowFeatures]); + return iab; + }; +})(); }); diff --git a/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js b/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js index 2e1295cd..fe0e83ad 100644 --- a/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js +++ b/StoneIsland/platforms/ios/platform_www/plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js @@ -1,6 +1,4 @@ cordova.define("cordova-plugin-x-socialsharing.SocialSharing", function(require, exports, module) { -var cordova = require('cordova'); - function SocialSharing() { } @@ -26,6 +24,11 @@ SocialSharing.prototype.available = function (callback) { }, null, "SocialSharing", "available", []); }; +// this is the recommended way to share as it is the most feature-rich with respect to what you pass in and get back +SocialSharing.prototype.shareWithOptions = function (options, successCallback, errorCallback) { + cordova.exec(successCallback, this._getErrorCallback(errorCallback, "shareWithOptions"), "SocialSharing", "shareWithOptions", [options]); +}; + SocialSharing.prototype.share = function (message, subject, fileOrFileArray, url, successCallback, errorCallback) { cordova.exec(successCallback, this._getErrorCallback(errorCallback, "share"), "SocialSharing", "share", [message, subject, this._asArray(fileOrFileArray), url]); }; @@ -50,7 +53,11 @@ SocialSharing.prototype.shareViaFacebookWithPasteMessageHint = function (message }; SocialSharing.prototype.shareViaWhatsApp = function (message, fileOrFileArray, url, successCallback, errorCallback) { - cordova.exec(successCallback, this._getErrorCallback(errorCallback, "shareViaWhatsApp"), "SocialSharing", "shareViaWhatsApp", [message, null, this._asArray(fileOrFileArray), url]); + cordova.exec(successCallback, this._getErrorCallback(errorCallback, "shareViaWhatsApp"), "SocialSharing", "shareViaWhatsApp", [message, null, this._asArray(fileOrFileArray), url, null]); +}; + +SocialSharing.prototype.shareViaWhatsAppToReceiver = function (receiver, message, fileOrFileArray, url, successCallback, errorCallback) { + cordova.exec(successCallback, this._getErrorCallback(errorCallback, "shareViaWhatsAppToReceiver"), "SocialSharing", "shareViaWhatsApp", [message, null, this._asArray(fileOrFileArray), url, receiver]); }; SocialSharing.prototype.shareViaSMS = function (options, phonenumbers, successCallback, errorCallback) { @@ -114,5 +121,4 @@ SocialSharing.install = function () { }; cordova.addConstructor(SocialSharing.install); - }); diff --git a/StoneIsland/platforms/ios/platform_www/plugins/com.ionic.keyboard/www/keyboard.js b/StoneIsland/platforms/ios/platform_www/plugins/ionic-plugin-keyboard/www/ios/keyboard.js index ad09ae2d..c74bb4d6 100644 --- a/StoneIsland/platforms/ios/platform_www/plugins/com.ionic.keyboard/www/keyboard.js +++ b/StoneIsland/platforms/ios/platform_www/plugins/ionic-plugin-keyboard/www/ios/keyboard.js @@ -1,4 +1,4 @@ -cordova.define("com.ionic.keyboard.keyboard", function(require, exports, module) { +cordova.define("ionic-plugin-keyboard.keyboard", function(require, exports, module) { var argscheck = require('cordova/argscheck'), utils = require('cordova/utils'), @@ -12,12 +12,15 @@ Keyboard.hideKeyboardAccessoryBar = function(hide) { exec(null, null, "Keyboard", "hideKeyboardAccessoryBar", [hide]); }; -Keyboard.close = function() { +Keyboard.close = function() { exec(null, null, "Keyboard", "close", []); }; Keyboard.show = function() { - exec(null, null, "Keyboard", "show", []); + console.warn('Showing keyboard not supported in iOS due to platform limitations.') + console.warn('Instead, use input.focus(), and ensure that you have the following setting in your config.xml: \n'); + console.warn(' <preference name="KeyboardDisplayRequiresUserAction" value="false"/>\n'); + // exec(null, null, "Keyboard", "show", []); }; Keyboard.disableScroll = function(disable) { diff --git a/StoneIsland/platforms/ios/platform_www/plugins/phonegap-plugin-push/www/push.js b/StoneIsland/platforms/ios/platform_www/plugins/phonegap-plugin-push/www/push.js deleted file mode 100644 index ea60bc9f..00000000 --- a/StoneIsland/platforms/ios/platform_www/plugins/phonegap-plugin-push/www/push.js +++ /dev/null @@ -1,232 +0,0 @@ -cordova.define("phonegap-plugin-push.PushNotification", function(require, exports, module) { -/* global cordova:false */ - -/*! - * Module dependencies. - */ - -var exec = cordova.require('cordova/exec'); - -/** - * PushNotification constructor. - * - * @param {Object} options to initiate Push Notifications. - * @return {PushNotification} instance that can be monitored and cancelled. - */ - -var PushNotification = function(options) { - this._handlers = { - 'registration': [], - 'notification': [], - 'error': [] - }; - - // require options parameter - if (typeof options === 'undefined') { - throw new Error('The options argument is required.'); - } - - // store the options to this object instance - this.options = options; - - // triggered on registration and notification - var that = this; - var success = function(result) { - if (result && typeof result.registrationId !== 'undefined') { - that.emit('registration', result); - } else if (result && typeof result.callback !== 'undefined') { - var executeFunctionByName = function(functionName, context /*, args */) { - var args = Array.prototype.slice.call(arguments, 2); - var namespaces = functionName.split("."); - var func = namespaces.pop(); - for (var i = 0; i < namespaces.length; i++) { - context = context[namespaces[i]]; - } - return context[func].apply(context, args); - } - - executeFunctionByName(result.callback, window, result); - } else if (result) { - that.emit('notification', result); - } - }; - - // triggered on error - var fail = function(msg) { - var e = (typeof msg === 'string') ? new Error(msg) : msg; - that.emit('error', e); - }; - - // wait at least one process tick to allow event subscriptions - setTimeout(function() { - exec(success, fail, 'PushNotification', 'init', [options]); - }, 10); -}; - -/** - * Unregister from push notifications - */ - -PushNotification.prototype.unregister = function(successCallback, errorCallback, options) { - if (errorCallback == null) { errorCallback = function() {}} - - if (typeof errorCallback != "function") { - console.log("PushNotification.unregister failure: failure parameter not a function"); - return - } - - if (typeof successCallback != "function") { - console.log("PushNotification.unregister failure: success callback parameter must be a function"); - return - } - - exec(successCallback, errorCallback, "PushNotification", "unregister", [options]); -}; - -/** - * Call this to set the application icon badge - */ - -PushNotification.prototype.setApplicationIconBadgeNumber = function(successCallback, errorCallback, badge) { - if (errorCallback == null) { errorCallback = function() {}} - - if (typeof errorCallback != "function") { - console.log("PushNotification.setApplicationIconBadgeNumber failure: failure parameter not a function"); - return - } - - if (typeof successCallback != "function") { - console.log("PushNotification.setApplicationIconBadgeNumber failure: success callback parameter must be a function"); - return - } - - exec(successCallback, errorCallback, "PushNotification", "setApplicationIconBadgeNumber", [{badge: badge}]); -}; - -/** - * Get the application icon badge - */ - -PushNotification.prototype.getApplicationIconBadgeNumber = function(successCallback, errorCallback) { - if (errorCallback == null) { errorCallback = function() {}} - - if (typeof errorCallback != "function") { - console.log("PushNotification.getApplicationIconBadgeNumber failure: failure parameter not a function"); - return - } - - if (typeof successCallback != "function") { - console.log("PushNotification.getApplicationIconBadgeNumber failure: success callback parameter must be a function"); - return - } - - exec(successCallback, errorCallback, "PushNotification", "getApplicationIconBadgeNumber", []); -}; - -/** - * Listen for an event. - * - * The following events are supported: - * - * - registration - * - notification - * - error - * - * @param {String} eventName to subscribe to. - * @param {Function} callback triggered on the event. - */ - -PushNotification.prototype.on = function(eventName, callback) { - if (this._handlers.hasOwnProperty(eventName)) { - this._handlers[eventName].push(callback); - } -}; - -/** - * Remove event listener. - * - * @param {String} eventName to match subscription. - * @param {Function} handle function associated with event. - */ - -PushNotification.prototype.off = function (eventName, handle) { - if (this._handlers.hasOwnProperty(eventName)) { - var handleIndex = this._handlers[eventName].indexOf(handle); - if (handleIndex >= 0) - this._handlers[eventName].splice(handleIndex, 1); - } -}; - -/** - * Emit an event. - * - * This is intended for internal use only. - * - * @param {String} eventName is the event to trigger. - * @param {*} all arguments are passed to the event listeners. - * - * @return {Boolean} is true when the event is triggered otherwise false. - */ - -PushNotification.prototype.emit = function() { - var args = Array.prototype.slice.call(arguments); - var eventName = args.shift(); - - if (!this._handlers.hasOwnProperty(eventName)) { - return false; - } - - for (var i = 0, length = this._handlers[eventName].length; i < length; i++) { - this._handlers[eventName][i].apply(undefined,args); - } - - return true; -}; - -PushNotification.prototype.finish = function(successCallback, errorCallback) { - if (successCallback == null) { successCallback = function() {}} - if (errorCallback == null) { errorCallback = function() {}} - - if (typeof successCallback != "function") { - console.log("finish failure: success callback parameter must be a function"); - return - } - - if (typeof errorCallback != "function") { - console.log("finish failure: failure parameter not a function"); - return - } - - exec(successCallback, errorCallback, 'PushNotification', 'finish', []); -} - -/*! - * Push Notification Plugin. - */ - -module.exports = { - /** - * Register for Push Notifications. - * - * This method will instantiate a new copy of the PushNotification object - * and start the registration process. - * - * @param {Object} options - * @return {PushNotification} instance - */ - - init: function(options) { - return new PushNotification(options); - }, - - /** - * PushNotification Object. - * - * Expose the PushNotification object for direct use - * and testing. Typically, you should use the - * .init helper method. - */ - - PushNotification: PushNotification -}; -}); diff --git a/StoneIsland/platforms/ios/www/cordova_plugins.js b/StoneIsland/platforms/ios/www/cordova_plugins.js index c17b360b..b4bf1fc8 100644 --- a/StoneIsland/platforms/ios/www/cordova_plugins.js +++ b/StoneIsland/platforms/ios/www/cordova_plugins.js @@ -1,14 +1,6 @@ cordova.define('cordova/plugin_list', function(require, exports, module) { module.exports = [ { - "id": "com.ionic.keyboard.keyboard", - "file": "plugins/com.ionic.keyboard/www/keyboard.js", - "pluginId": "com.ionic.keyboard", - "clobbers": [ - "cordova.plugins.Keyboard" - ] - }, - { "id": "com.parse.cordova.core.pushplugin.ParsePlugin", "file": "plugins/com.parse.cordova.core.pushplugin/www/cdv-plugin-parse.js", "pluginId": "com.parse.cordova.core.pushplugin", @@ -17,19 +9,20 @@ module.exports = [ ] }, { - "id": "cordova-plugin-console.logger", - "file": "plugins/cordova-plugin-console/www/logger.js", - "pluginId": "cordova-plugin-console", + "id": "cordova-plugin-inappbrowser.inappbrowser", + "file": "plugins/cordova-plugin-inappbrowser/www/inappbrowser.js", + "pluginId": "cordova-plugin-inappbrowser", "clobbers": [ - "cordova.logger" + "cordova.InAppBrowser.open", + "window.open" ] }, { - "id": "cordova-plugin-console.console", - "file": "plugins/cordova-plugin-console/www/console-via-logger.js", - "pluginId": "cordova-plugin-console", + "id": "cordova-plugin-x-socialsharing.SocialSharing", + "file": "plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js", + "pluginId": "cordova-plugin-x-socialsharing", "clobbers": [ - "console" + "window.plugins.socialsharing" ] }, { @@ -41,6 +34,22 @@ module.exports = [ ] }, { + "id": "cordova-plugin-console.console", + "file": "plugins/cordova-plugin-console/www/console-via-logger.js", + "pluginId": "cordova-plugin-console", + "clobbers": [ + "console" + ] + }, + { + "id": "cordova-plugin-console.logger", + "file": "plugins/cordova-plugin-console/www/logger.js", + "pluginId": "cordova-plugin-console", + "clobbers": [ + "cordova.logger" + ] + }, + { "id": "cordova-plugin-device.device", "file": "plugins/cordova-plugin-device/www/device.js", "pluginId": "cordova-plugin-device", @@ -49,6 +58,23 @@ module.exports = [ ] }, { + "id": "cordova-plugin-network-information.network", + "file": "plugins/cordova-plugin-network-information/www/network.js", + "pluginId": "cordova-plugin-network-information", + "clobbers": [ + "navigator.connection", + "navigator.network.connection" + ] + }, + { + "id": "cordova-plugin-network-information.Connection", + "file": "plugins/cordova-plugin-network-information/www/Connection.js", + "pluginId": "cordova-plugin-network-information", + "clobbers": [ + "Connection" + ] + }, + { "id": "cordova-plugin-dialogs.notification", "file": "plugins/cordova-plugin-dialogs/www/notification.js", "pluginId": "cordova-plugin-dialogs", @@ -57,6 +83,14 @@ module.exports = [ ] }, { + "id": "cordova-plugin-splashscreen.SplashScreen", + "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", + "pluginId": "cordova-plugin-splashscreen", + "clobbers": [ + "navigator.splashscreen" + ] + }, + { "id": "cordova-plugin-geolocation.Coordinates", "file": "plugins/cordova-plugin-geolocation/www/Coordinates.js", "pluginId": "cordova-plugin-geolocation", @@ -89,72 +123,31 @@ module.exports = [ ] }, { - "id": "cordova-plugin-inappbrowser.inappbrowser", - "file": "plugins/cordova-plugin-inappbrowser/www/inappbrowser.js", - "pluginId": "cordova-plugin-inappbrowser", + "id": "ionic-plugin-keyboard.keyboard", + "file": "plugins/ionic-plugin-keyboard/www/ios/keyboard.js", + "pluginId": "ionic-plugin-keyboard", "clobbers": [ - "cordova.InAppBrowser.open", - "window.open" - ] - }, - { - "id": "cordova-plugin-network-information.network", - "file": "plugins/cordova-plugin-network-information/www/network.js", - "pluginId": "cordova-plugin-network-information", - "clobbers": [ - "navigator.connection", - "navigator.network.connection" - ] - }, - { - "id": "cordova-plugin-network-information.Connection", - "file": "plugins/cordova-plugin-network-information/www/Connection.js", - "pluginId": "cordova-plugin-network-information", - "clobbers": [ - "Connection" - ] - }, - { - "id": "cordova-plugin-splashscreen.SplashScreen", - "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", - "pluginId": "cordova-plugin-splashscreen", - "clobbers": [ - "navigator.splashscreen" - ] - }, - { - "id": "cordova-plugin-x-socialsharing.SocialSharing", - "file": "plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js", - "pluginId": "cordova-plugin-x-socialsharing", - "clobbers": [ - "window.plugins.socialsharing" - ] - }, - { - "id": "phonegap-plugin-push.PushNotification", - "file": "plugins/phonegap-plugin-push/www/push.js", - "pluginId": "phonegap-plugin-push", - "clobbers": [ - "PushNotification" - ] + "cordova.plugins.Keyboard" + ], + "runs": true } ]; module.exports.metadata = // TOP OF METADATA { - "com.ionic.keyboard": "1.0.4", "com.parse.cordova.core.pushplugin": "0.1.0", - "cordova-plugin-console": "1.0.1", - "cordova-plugin-customurlscheme": "4.0.0", - "cordova-plugin-device": "1.0.1", - "cordova-plugin-dialogs": "1.1.1", - "cordova-plugin-geolocation": "1.0.1", - "cordova-plugin-inappbrowser": "1.1.0", - "cordova-plugin-network-information": "1.0.1", - "cordova-plugin-splashscreen": "3.0.0", - "cordova-plugin-whitelist": "1.0.0", - "cordova-plugin-x-socialsharing": "5.0.7", - "phonegap-plugin-push": "1.4.4" + "cordova-plugin-inappbrowser": "1.5.0", + "cordova-plugin-x-socialsharing": "5.1.3", + "cordova-plugin-customurlscheme": "4.2.0", + "cordova-plugin-whitelist": "1.3.0", + "cordova-plugin-console": "1.0.4", + "cordova-plugin-device": "1.1.3", + "cordova-plugin-network-information": "1.3.0", + "cordova-plugin-dialogs": "1.3.0", + "cordova-plugin-splashscreen": "4.0.0", + "cordova-plugin-compat": "1.1.0", + "cordova-plugin-geolocation": "2.4.0", + "ionic-plugin-keyboard": "2.2.1" }; // BOTTOM OF METADATA });
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/www/plugins/cordova-plugin-console/www/console-via-logger.js b/StoneIsland/platforms/ios/www/plugins/cordova-plugin-console/www/console-via-logger.js index f7de4b64..0ecd9cc3 100644 --- a/StoneIsland/platforms/ios/www/plugins/cordova-plugin-console/www/console-via-logger.js +++ b/StoneIsland/platforms/ios/www/plugins/cordova-plugin-console/www/console-via-logger.js @@ -23,7 +23,6 @@ cordova.define("cordova-plugin-console.console", function(require, exports, modu //------------------------------------------------------------------------------ var logger = require("./logger"); -var utils = require("cordova/utils"); //------------------------------------------------------------------------------ // object that we're exporting diff --git a/StoneIsland/platforms/ios/www/plugins/cordova-plugin-console/www/logger.js b/StoneIsland/platforms/ios/www/plugins/cordova-plugin-console/www/logger.js index dd42c01d..deb07b57 100644 --- a/StoneIsland/platforms/ios/www/plugins/cordova-plugin-console/www/logger.js +++ b/StoneIsland/platforms/ios/www/plugins/cordova-plugin-console/www/logger.js @@ -44,7 +44,6 @@ cordova.define("cordova-plugin-console.logger", function(require, exports, modul var logger = exports; var exec = require('cordova/exec'); -var utils = require('cordova/utils'); var UseConsole = false; var UseLogger = true; diff --git a/StoneIsland/platforms/ios/www/plugins/cordova-plugin-device/www/device.js b/StoneIsland/platforms/ios/www/plugins/cordova-plugin-device/www/device.js index 775c123f..977dfc09 100644 --- a/StoneIsland/platforms/ios/www/plugins/cordova-plugin-device/www/device.js +++ b/StoneIsland/platforms/ios/www/plugins/cordova-plugin-device/www/device.js @@ -43,6 +43,8 @@ function Device() { this.cordova = null; this.model = null; this.manufacturer = null; + this.isVirtual = null; + this.serial = null; var me = this; @@ -57,7 +59,9 @@ function Device() { me.uuid = info.uuid; me.cordova = buildLabel; me.model = info.model; + me.isVirtual = info.isVirtual; me.manufacturer = info.manufacturer || 'unknown'; + me.serial = info.serial || 'unknown'; channel.onCordovaInfoReady.fire(); },function(e) { me.available = false; diff --git a/StoneIsland/platforms/ios/www/plugins/cordova-plugin-dialogs/www/notification.js b/StoneIsland/platforms/ios/www/plugins/cordova-plugin-dialogs/www/notification.js index adc5c077..4ddf530b 100644 --- a/StoneIsland/platforms/ios/www/plugins/cordova-plugin-dialogs/www/notification.js +++ b/StoneIsland/platforms/ios/www/plugins/cordova-plugin-dialogs/www/notification.js @@ -38,9 +38,10 @@ module.exports = { * @param {String} buttonLabel Label of the close button (default: OK) */ alert: function(message, completeCallback, title, buttonLabel) { - var _title = (title || "Alert"); + var _message = (typeof message === "string" ? message : JSON.stringify(message)); + var _title = (typeof title === "string" ? title : "Alert"); var _buttonLabel = (buttonLabel || "OK"); - exec(completeCallback, null, "Notification", "alert", [message, _title, _buttonLabel]); + exec(completeCallback, null, "Notification", "alert", [_message, _title, _buttonLabel]); }, /** @@ -53,7 +54,8 @@ module.exports = { * @param {Array} buttonLabels Array of the labels of the buttons (default: ['OK', 'Cancel']) */ confirm: function(message, resultCallback, title, buttonLabels) { - var _title = (title || "Confirm"); + var _message = (typeof message === "string" ? message : JSON.stringify(message)); + var _title = (typeof title === "string" ? title : "Confirm"); var _buttonLabels = (buttonLabels || ["OK", "Cancel"]); // Strings are deprecated! @@ -61,23 +63,9 @@ module.exports = { console.log("Notification.confirm(string, function, string, string) is deprecated. Use Notification.confirm(string, function, string, array)."); } - // Some platforms take an array of button label names. - // Other platforms take a comma separated list. - // For compatibility, we convert to the desired type based on the platform. - if (platform.id == "amazon-fireos" || platform.id == "android" || platform.id == "ios" || - platform.id == "windowsphone" || platform.id == "firefoxos" || platform.id == "ubuntu" || - platform.id == "windows8" || platform.id == "windows") { + _buttonLabels = convertButtonLabels(_buttonLabels); - if (typeof _buttonLabels === 'string') { - _buttonLabels = _buttonLabels.split(","); // not crazy about changing the var type here - } - } else { - if (Array.isArray(_buttonLabels)) { - var buttonLabelArray = _buttonLabels; - _buttonLabels = buttonLabelArray.toString(); - } - } - exec(resultCallback, null, "Notification", "confirm", [message, _title, _buttonLabels]); + exec(resultCallback, null, "Notification", "confirm", [_message, _title, _buttonLabels]); }, /** @@ -93,9 +81,17 @@ module.exports = { * @param {String} defaultText Textbox input value (default: empty string) */ prompt: function(message, resultCallback, title, buttonLabels, defaultText) { - var _message = (message || "Prompt message"); - var _title = (title || "Prompt"); + var _message = (typeof message === "string" ? message : JSON.stringify(message)); + var _title = (typeof title === "string" ? title : "Prompt"); var _buttonLabels = (buttonLabels || ["OK","Cancel"]); + + // Strings are deprecated! + if (typeof _buttonLabels === 'string') { + console.log("Notification.prompt(string, function, string, string) is deprecated. Use Notification.confirm(string, function, string, array)."); + } + + _buttonLabels = convertButtonLabels(_buttonLabels); + var _defaultText = (defaultText || ""); exec(resultCallback, null, "Notification", "prompt", [_message, _title, _buttonLabels, _defaultText]); }, @@ -112,4 +108,26 @@ module.exports = { } }; +function convertButtonLabels(buttonLabels) { + + // Some platforms take an array of button label names. + // Other platforms take a comma separated list. + // For compatibility, we convert to the desired type based on the platform. + if (platform.id == "amazon-fireos" || platform.id == "android" || platform.id == "ios" || + platform.id == "windowsphone" || platform.id == "firefoxos" || platform.id == "ubuntu" || + platform.id == "windows8" || platform.id == "windows") { + + if (typeof buttonLabels === 'string') { + buttonLabels = buttonLabels.split(","); // not crazy about changing the var type here + } + } else { + if (Array.isArray(buttonLabels)) { + var buttonLabelArray = buttonLabels; + buttonLabels = buttonLabelArray.toString(); + } + } + + return buttonLabels; +} + }); diff --git a/StoneIsland/platforms/ios/www/plugins/cordova-plugin-geolocation/www/Position.js b/StoneIsland/platforms/ios/www/plugins/cordova-plugin-geolocation/www/Position.js index 116abb4f..97c6c2e3 100644 --- a/StoneIsland/platforms/ios/www/plugins/cordova-plugin-geolocation/www/Position.js +++ b/StoneIsland/platforms/ios/www/plugins/cordova-plugin-geolocation/www/Position.js @@ -28,7 +28,7 @@ var Position = function(coords, timestamp) { } else { this.coords = new Coordinates(); } - this.timestamp = (timestamp !== undefined) ? timestamp : new Date(); + this.timestamp = (timestamp !== undefined) ? timestamp : new Date().getTime(); }; module.exports = Position; diff --git a/StoneIsland/platforms/ios/www/plugins/cordova-plugin-geolocation/www/PositionError.js b/StoneIsland/platforms/ios/www/plugins/cordova-plugin-geolocation/www/PositionError.js index c335381e..c26dd754 100644 --- a/StoneIsland/platforms/ios/www/plugins/cordova-plugin-geolocation/www/PositionError.js +++ b/StoneIsland/platforms/ios/www/plugins/cordova-plugin-geolocation/www/PositionError.js @@ -32,9 +32,9 @@ var PositionError = function(code, message) { this.message = message || ''; }; -PositionError.PERMISSION_DENIED = 1; -PositionError.POSITION_UNAVAILABLE = 2; -PositionError.TIMEOUT = 3; +PositionError.prototype.PERMISSION_DENIED = PositionError.PERMISSION_DENIED = 1; +PositionError.prototype.POSITION_UNAVAILABLE = PositionError.POSITION_UNAVAILABLE = 2; +PositionError.prototype.TIMEOUT = PositionError.TIMEOUT = 3; module.exports = PositionError; diff --git a/StoneIsland/platforms/ios/www/plugins/cordova-plugin-geolocation/www/geolocation.js b/StoneIsland/platforms/ios/www/plugins/cordova-plugin-geolocation/www/geolocation.js index 37bdaabb..50f1f953 100644 --- a/StoneIsland/platforms/ios/www/plugins/cordova-plugin-geolocation/www/geolocation.js +++ b/StoneIsland/platforms/ios/www/plugins/cordova-plugin-geolocation/www/geolocation.js @@ -103,7 +103,7 @@ var geolocation = { velocity:p.velocity, altitudeAccuracy:p.altitudeAccuracy }, - (p.timestamp === undefined ? new Date() : ((p.timestamp instanceof Date) ? p.timestamp : new Date(p.timestamp))) + p.timestamp ); geolocation.lastPosition = pos; successCallback(pos); @@ -119,7 +119,7 @@ var geolocation = { // Check our cached position, if its timestamp difference with current time is less than the maximumAge, then just // fire the success callback with the cached position. - if (geolocation.lastPosition && options.maximumAge && (((new Date()).getTime() - geolocation.lastPosition.timestamp.getTime()) <= options.maximumAge)) { + if (geolocation.lastPosition && options.maximumAge && (((new Date()).getTime() - geolocation.lastPosition.timestamp) <= options.maximumAge)) { successCallback(geolocation.lastPosition); // If the cached position check failed and the timeout was set to 0, error out with a TIMEOUT error object. } else if (options.timeout === 0) { @@ -185,7 +185,7 @@ var geolocation = { velocity:p.velocity, altitudeAccuracy:p.altitudeAccuracy }, - (p.timestamp === undefined ? new Date() : ((p.timestamp instanceof Date) ? p.timestamp : new Date(p.timestamp))) + p.timestamp ); geolocation.lastPosition = pos; successCallback(pos); diff --git a/StoneIsland/platforms/ios/www/plugins/cordova-plugin-inappbrowser/www/inappbrowser.js b/StoneIsland/platforms/ios/www/plugins/cordova-plugin-inappbrowser/www/inappbrowser.js index b18a2ba7..3e87a6e7 100644 --- a/StoneIsland/platforms/ios/www/plugins/cordova-plugin-inappbrowser/www/inappbrowser.js +++ b/StoneIsland/platforms/ios/www/plugins/cordova-plugin-inappbrowser/www/inappbrowser.js @@ -20,94 +20,95 @@ cordova.define("cordova-plugin-inappbrowser.inappbrowser", function(require, exp * */ -// special patch to correctly work on Ripple emulator (CB-9760) -if (window.parent && !!window.parent.ripple) { // https://gist.github.com/triceam/4658021 - module.exports = window.open.bind(window); // fallback to default window.open behaviour - return; -} +(function() { + // special patch to correctly work on Ripple emulator (CB-9760) + if (window.parent && !!window.parent.ripple) { // https://gist.github.com/triceam/4658021 + module.exports = window.open.bind(window); // fallback to default window.open behaviour + return; + } -var exec = require('cordova/exec'); -var channel = require('cordova/channel'); -var modulemapper = require('cordova/modulemapper'); -var urlutil = require('cordova/urlutil'); + var exec = require('cordova/exec'); + var channel = require('cordova/channel'); + var modulemapper = require('cordova/modulemapper'); + var urlutil = require('cordova/urlutil'); -function InAppBrowser() { - this.channels = { - 'loadstart': channel.create('loadstart'), - 'loadstop' : channel.create('loadstop'), - 'loaderror' : channel.create('loaderror'), - 'exit' : channel.create('exit') - }; -} + function InAppBrowser() { + this.channels = { + 'loadstart': channel.create('loadstart'), + 'loadstop' : channel.create('loadstop'), + 'loaderror' : channel.create('loaderror'), + 'exit' : channel.create('exit') + }; + } -InAppBrowser.prototype = { - _eventHandler: function (event) { - if (event && (event.type in this.channels)) { - this.channels[event.type].fire(event); - } - }, - close: function (eventname) { - exec(null, null, "InAppBrowser", "close", []); - }, - show: function (eventname) { - exec(null, null, "InAppBrowser", "show", []); - }, - addEventListener: function (eventname,f) { - if (eventname in this.channels) { - this.channels[eventname].subscribe(f); - } - }, - removeEventListener: function(eventname, f) { - if (eventname in this.channels) { - this.channels[eventname].unsubscribe(f); - } - }, + InAppBrowser.prototype = { + _eventHandler: function (event) { + if (event && (event.type in this.channels)) { + this.channels[event.type].fire(event); + } + }, + close: function (eventname) { + exec(null, null, "InAppBrowser", "close", []); + }, + show: function (eventname) { + exec(null, null, "InAppBrowser", "show", []); + }, + addEventListener: function (eventname,f) { + if (eventname in this.channels) { + this.channels[eventname].subscribe(f); + } + }, + removeEventListener: function(eventname, f) { + if (eventname in this.channels) { + this.channels[eventname].unsubscribe(f); + } + }, - executeScript: function(injectDetails, cb) { - if (injectDetails.code) { - exec(cb, null, "InAppBrowser", "injectScriptCode", [injectDetails.code, !!cb]); - } else if (injectDetails.file) { - exec(cb, null, "InAppBrowser", "injectScriptFile", [injectDetails.file, !!cb]); - } else { - throw new Error('executeScript requires exactly one of code or file to be specified'); - } - }, + executeScript: function(injectDetails, cb) { + if (injectDetails.code) { + exec(cb, null, "InAppBrowser", "injectScriptCode", [injectDetails.code, !!cb]); + } else if (injectDetails.file) { + exec(cb, null, "InAppBrowser", "injectScriptFile", [injectDetails.file, !!cb]); + } else { + throw new Error('executeScript requires exactly one of code or file to be specified'); + } + }, - insertCSS: function(injectDetails, cb) { - if (injectDetails.code) { - exec(cb, null, "InAppBrowser", "injectStyleCode", [injectDetails.code, !!cb]); - } else if (injectDetails.file) { - exec(cb, null, "InAppBrowser", "injectStyleFile", [injectDetails.file, !!cb]); - } else { - throw new Error('insertCSS requires exactly one of code or file to be specified'); + insertCSS: function(injectDetails, cb) { + if (injectDetails.code) { + exec(cb, null, "InAppBrowser", "injectStyleCode", [injectDetails.code, !!cb]); + } else if (injectDetails.file) { + exec(cb, null, "InAppBrowser", "injectStyleFile", [injectDetails.file, !!cb]); + } else { + throw new Error('insertCSS requires exactly one of code or file to be specified'); + } } - } -}; - -module.exports = function(strUrl, strWindowName, strWindowFeatures, callbacks) { - // Don't catch calls that write to existing frames (e.g. named iframes). - if (window.frames && window.frames[strWindowName]) { - var origOpenFunc = modulemapper.getOriginalSymbol(window, 'open'); - return origOpenFunc.apply(window, arguments); - } + }; - strUrl = urlutil.makeAbsolute(strUrl); - var iab = new InAppBrowser(); + module.exports = function(strUrl, strWindowName, strWindowFeatures, callbacks) { + // Don't catch calls that write to existing frames (e.g. named iframes). + if (window.frames && window.frames[strWindowName]) { + var origOpenFunc = modulemapper.getOriginalSymbol(window, 'open'); + return origOpenFunc.apply(window, arguments); + } - callbacks = callbacks || {}; - for (var callbackName in callbacks) { - iab.addEventListener(callbackName, callbacks[callbackName]); - } + strUrl = urlutil.makeAbsolute(strUrl); + var iab = new InAppBrowser(); - var cb = function(eventname) { - iab._eventHandler(eventname); - }; + callbacks = callbacks || {}; + for (var callbackName in callbacks) { + iab.addEventListener(callbackName, callbacks[callbackName]); + } - strWindowFeatures = strWindowFeatures || ""; + var cb = function(eventname) { + iab._eventHandler(eventname); + }; - exec(cb, cb, "InAppBrowser", "open", [strUrl, strWindowName, strWindowFeatures]); - return iab; -}; + strWindowFeatures = strWindowFeatures || ""; + exec(cb, cb, "InAppBrowser", "open", [strUrl, strWindowName, strWindowFeatures]); + return iab; + }; +})(); }); diff --git a/StoneIsland/platforms/ios/www/plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js b/StoneIsland/platforms/ios/www/plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js index 2e1295cd..fe0e83ad 100644 --- a/StoneIsland/platforms/ios/www/plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js +++ b/StoneIsland/platforms/ios/www/plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js @@ -1,6 +1,4 @@ cordova.define("cordova-plugin-x-socialsharing.SocialSharing", function(require, exports, module) { -var cordova = require('cordova'); - function SocialSharing() { } @@ -26,6 +24,11 @@ SocialSharing.prototype.available = function (callback) { }, null, "SocialSharing", "available", []); }; +// this is the recommended way to share as it is the most feature-rich with respect to what you pass in and get back +SocialSharing.prototype.shareWithOptions = function (options, successCallback, errorCallback) { + cordova.exec(successCallback, this._getErrorCallback(errorCallback, "shareWithOptions"), "SocialSharing", "shareWithOptions", [options]); +}; + SocialSharing.prototype.share = function (message, subject, fileOrFileArray, url, successCallback, errorCallback) { cordova.exec(successCallback, this._getErrorCallback(errorCallback, "share"), "SocialSharing", "share", [message, subject, this._asArray(fileOrFileArray), url]); }; @@ -50,7 +53,11 @@ SocialSharing.prototype.shareViaFacebookWithPasteMessageHint = function (message }; SocialSharing.prototype.shareViaWhatsApp = function (message, fileOrFileArray, url, successCallback, errorCallback) { - cordova.exec(successCallback, this._getErrorCallback(errorCallback, "shareViaWhatsApp"), "SocialSharing", "shareViaWhatsApp", [message, null, this._asArray(fileOrFileArray), url]); + cordova.exec(successCallback, this._getErrorCallback(errorCallback, "shareViaWhatsApp"), "SocialSharing", "shareViaWhatsApp", [message, null, this._asArray(fileOrFileArray), url, null]); +}; + +SocialSharing.prototype.shareViaWhatsAppToReceiver = function (receiver, message, fileOrFileArray, url, successCallback, errorCallback) { + cordova.exec(successCallback, this._getErrorCallback(errorCallback, "shareViaWhatsAppToReceiver"), "SocialSharing", "shareViaWhatsApp", [message, null, this._asArray(fileOrFileArray), url, receiver]); }; SocialSharing.prototype.shareViaSMS = function (options, phonenumbers, successCallback, errorCallback) { @@ -114,5 +121,4 @@ SocialSharing.install = function () { }; cordova.addConstructor(SocialSharing.install); - }); diff --git a/StoneIsland/platforms/ios/www/plugins/com.ionic.keyboard/www/keyboard.js b/StoneIsland/platforms/ios/www/plugins/ionic-plugin-keyboard/www/ios/keyboard.js index ad09ae2d..c74bb4d6 100644 --- a/StoneIsland/platforms/ios/www/plugins/com.ionic.keyboard/www/keyboard.js +++ b/StoneIsland/platforms/ios/www/plugins/ionic-plugin-keyboard/www/ios/keyboard.js @@ -1,4 +1,4 @@ -cordova.define("com.ionic.keyboard.keyboard", function(require, exports, module) { +cordova.define("ionic-plugin-keyboard.keyboard", function(require, exports, module) { var argscheck = require('cordova/argscheck'), utils = require('cordova/utils'), @@ -12,12 +12,15 @@ Keyboard.hideKeyboardAccessoryBar = function(hide) { exec(null, null, "Keyboard", "hideKeyboardAccessoryBar", [hide]); }; -Keyboard.close = function() { +Keyboard.close = function() { exec(null, null, "Keyboard", "close", []); }; Keyboard.show = function() { - exec(null, null, "Keyboard", "show", []); + console.warn('Showing keyboard not supported in iOS due to platform limitations.') + console.warn('Instead, use input.focus(), and ensure that you have the following setting in your config.xml: \n'); + console.warn(' <preference name="KeyboardDisplayRequiresUserAction" value="false"/>\n'); + // exec(null, null, "Keyboard", "show", []); }; Keyboard.disableScroll = function(disable) { diff --git a/StoneIsland/platforms/ios/www/plugins/phonegap-plugin-push/www/push.js b/StoneIsland/platforms/ios/www/plugins/phonegap-plugin-push/www/push.js deleted file mode 100644 index ea60bc9f..00000000 --- a/StoneIsland/platforms/ios/www/plugins/phonegap-plugin-push/www/push.js +++ /dev/null @@ -1,232 +0,0 @@ -cordova.define("phonegap-plugin-push.PushNotification", function(require, exports, module) { -/* global cordova:false */ - -/*! - * Module dependencies. - */ - -var exec = cordova.require('cordova/exec'); - -/** - * PushNotification constructor. - * - * @param {Object} options to initiate Push Notifications. - * @return {PushNotification} instance that can be monitored and cancelled. - */ - -var PushNotification = function(options) { - this._handlers = { - 'registration': [], - 'notification': [], - 'error': [] - }; - - // require options parameter - if (typeof options === 'undefined') { - throw new Error('The options argument is required.'); - } - - // store the options to this object instance - this.options = options; - - // triggered on registration and notification - var that = this; - var success = function(result) { - if (result && typeof result.registrationId !== 'undefined') { - that.emit('registration', result); - } else if (result && typeof result.callback !== 'undefined') { - var executeFunctionByName = function(functionName, context /*, args */) { - var args = Array.prototype.slice.call(arguments, 2); - var namespaces = functionName.split("."); - var func = namespaces.pop(); - for (var i = 0; i < namespaces.length; i++) { - context = context[namespaces[i]]; - } - return context[func].apply(context, args); - } - - executeFunctionByName(result.callback, window, result); - } else if (result) { - that.emit('notification', result); - } - }; - - // triggered on error - var fail = function(msg) { - var e = (typeof msg === 'string') ? new Error(msg) : msg; - that.emit('error', e); - }; - - // wait at least one process tick to allow event subscriptions - setTimeout(function() { - exec(success, fail, 'PushNotification', 'init', [options]); - }, 10); -}; - -/** - * Unregister from push notifications - */ - -PushNotification.prototype.unregister = function(successCallback, errorCallback, options) { - if (errorCallback == null) { errorCallback = function() {}} - - if (typeof errorCallback != "function") { - console.log("PushNotification.unregister failure: failure parameter not a function"); - return - } - - if (typeof successCallback != "function") { - console.log("PushNotification.unregister failure: success callback parameter must be a function"); - return - } - - exec(successCallback, errorCallback, "PushNotification", "unregister", [options]); -}; - -/** - * Call this to set the application icon badge - */ - -PushNotification.prototype.setApplicationIconBadgeNumber = function(successCallback, errorCallback, badge) { - if (errorCallback == null) { errorCallback = function() {}} - - if (typeof errorCallback != "function") { - console.log("PushNotification.setApplicationIconBadgeNumber failure: failure parameter not a function"); - return - } - - if (typeof successCallback != "function") { - console.log("PushNotification.setApplicationIconBadgeNumber failure: success callback parameter must be a function"); - return - } - - exec(successCallback, errorCallback, "PushNotification", "setApplicationIconBadgeNumber", [{badge: badge}]); -}; - -/** - * Get the application icon badge - */ - -PushNotification.prototype.getApplicationIconBadgeNumber = function(successCallback, errorCallback) { - if (errorCallback == null) { errorCallback = function() {}} - - if (typeof errorCallback != "function") { - console.log("PushNotification.getApplicationIconBadgeNumber failure: failure parameter not a function"); - return - } - - if (typeof successCallback != "function") { - console.log("PushNotification.getApplicationIconBadgeNumber failure: success callback parameter must be a function"); - return - } - - exec(successCallback, errorCallback, "PushNotification", "getApplicationIconBadgeNumber", []); -}; - -/** - * Listen for an event. - * - * The following events are supported: - * - * - registration - * - notification - * - error - * - * @param {String} eventName to subscribe to. - * @param {Function} callback triggered on the event. - */ - -PushNotification.prototype.on = function(eventName, callback) { - if (this._handlers.hasOwnProperty(eventName)) { - this._handlers[eventName].push(callback); - } -}; - -/** - * Remove event listener. - * - * @param {String} eventName to match subscription. - * @param {Function} handle function associated with event. - */ - -PushNotification.prototype.off = function (eventName, handle) { - if (this._handlers.hasOwnProperty(eventName)) { - var handleIndex = this._handlers[eventName].indexOf(handle); - if (handleIndex >= 0) - this._handlers[eventName].splice(handleIndex, 1); - } -}; - -/** - * Emit an event. - * - * This is intended for internal use only. - * - * @param {String} eventName is the event to trigger. - * @param {*} all arguments are passed to the event listeners. - * - * @return {Boolean} is true when the event is triggered otherwise false. - */ - -PushNotification.prototype.emit = function() { - var args = Array.prototype.slice.call(arguments); - var eventName = args.shift(); - - if (!this._handlers.hasOwnProperty(eventName)) { - return false; - } - - for (var i = 0, length = this._handlers[eventName].length; i < length; i++) { - this._handlers[eventName][i].apply(undefined,args); - } - - return true; -}; - -PushNotification.prototype.finish = function(successCallback, errorCallback) { - if (successCallback == null) { successCallback = function() {}} - if (errorCallback == null) { errorCallback = function() {}} - - if (typeof successCallback != "function") { - console.log("finish failure: success callback parameter must be a function"); - return - } - - if (typeof errorCallback != "function") { - console.log("finish failure: failure parameter not a function"); - return - } - - exec(successCallback, errorCallback, 'PushNotification', 'finish', []); -} - -/*! - * Push Notification Plugin. - */ - -module.exports = { - /** - * Register for Push Notifications. - * - * This method will instantiate a new copy of the PushNotification object - * and start the registration process. - * - * @param {Object} options - * @return {PushNotification} instance - */ - - init: function(options) { - return new PushNotification(options); - }, - - /** - * PushNotification Object. - * - * Expose the PushNotification object for direct use - * and testing. Typically, you should use the - * .init helper method. - */ - - PushNotification: PushNotification -}; -}); |
