You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by pu...@apache.org on 2013/02/21 00:13:03 UTC

[7/16] 2.5.0rc1 release prep

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/a450ea82/templates/full/www/index.html
----------------------------------------------------------------------
diff --git a/templates/full/www/index.html b/templates/full/www/index.html
index 2a1c7a9..dc0224d 100644
--- a/templates/full/www/index.html
+++ b/templates/full/www/index.html
@@ -33,7 +33,7 @@
                 <p class="event received">Device is Ready</p>
             </div>
         </div>
-        <script type="text/javascript" src="cordova-2.4.0.js"></script>
+        <script type="text/javascript" src="cordova-2.5.0.js"></script>
         <script type="text/javascript" src="js/index.js"></script>
         <script type="text/javascript">
             app.initialize();

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/a450ea82/templates/standalone/CordovaAppProj.csproj
----------------------------------------------------------------------
diff --git a/templates/standalone/CordovaAppProj.csproj b/templates/standalone/CordovaAppProj.csproj
index e0ca6d6..680a2b6 100644
--- a/templates/standalone/CordovaAppProj.csproj
+++ b/templates/standalone/CordovaAppProj.csproj
@@ -208,7 +208,7 @@
   <ItemGroup>
     <Content Include="config.xml" />
     <Content Include="resources\notification-beep.wav" />
-    <Content Include="www\cordova-2.4.0.js" />
+    <Content Include="www\cordova-2.5.0.js" />
     <Content Include="www\img\logo.png" />
     <Content Include="www\js\index.js" />
     <None Include="VERSION" />

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/a450ea82/templates/standalone/VERSION
----------------------------------------------------------------------
diff --git a/templates/standalone/VERSION b/templates/standalone/VERSION
index 9183195..fad066f 100644
--- a/templates/standalone/VERSION
+++ b/templates/standalone/VERSION
@@ -1 +1 @@
-2.4.0
\ No newline at end of file
+2.5.0
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/a450ea82/templates/standalone/cordovalib/Commands/BaseCommand.cs
----------------------------------------------------------------------
diff --git a/templates/standalone/cordovalib/Commands/BaseCommand.cs b/templates/standalone/cordovalib/Commands/BaseCommand.cs
index f6e45da..f9942eb 100644
--- a/templates/standalone/cordovalib/Commands/BaseCommand.cs
+++ b/templates/standalone/cordovalib/Commands/BaseCommand.cs
@@ -111,6 +111,14 @@ namespace WPCordovaClassLib.Cordova.Commands
         {
         }
 
+        /// <summary>
+        /// Occurs when the application is being loaded, and the config.xml has an autoload entry
+        /// </summary>    
+        public virtual void OnInit()
+        {
+
+        }
+
 
         /// <summary>
         /// Occurs when the application is being deactivated.

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/a450ea82/templates/standalone/cordovalib/Commands/Device.cs
----------------------------------------------------------------------
diff --git a/templates/standalone/cordovalib/Commands/Device.cs b/templates/standalone/cordovalib/Commands/Device.cs
index c07c6f1..95d1dc7 100644
--- a/templates/standalone/cordovalib/Commands/Device.cs
+++ b/templates/standalone/cordovalib/Commands/Device.cs
@@ -73,7 +73,7 @@ namespace WPCordovaClassLib.Cordova.Commands
             get
             {
                 // TODO: should be able to dynamically read the Cordova version from somewhere...
-                return "2.4.0";
+                return "2.5.0";
             }
         }
 

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/a450ea82/templates/standalone/cordovalib/ConfigHandler.cs
----------------------------------------------------------------------
diff --git a/templates/standalone/cordovalib/ConfigHandler.cs b/templates/standalone/cordovalib/ConfigHandler.cs
index e2f12cd..0684f6a 100644
--- a/templates/standalone/cordovalib/ConfigHandler.cs
+++ b/templates/standalone/cordovalib/ConfigHandler.cs
@@ -14,7 +14,18 @@ namespace WPCordovaClassLib.CordovaLib
 {
     class ConfigHandler
     {
-        protected List<string> AllowedPlugins;
+        public class PluginConfig
+        {
+            public PluginConfig(string name, bool autoLoad = false)
+            {
+                Name = name;
+                isAutoLoad = autoLoad;
+            }
+            public string Name;
+            public bool isAutoLoad;
+        }
+
+        protected Dictionary<string, PluginConfig> AllowedPlugins;
         protected List<string> AllowedDomains;
         protected Dictionary<string, string> Preferences;
 
@@ -23,7 +34,7 @@ namespace WPCordovaClassLib.CordovaLib
 
         public ConfigHandler()
         {
-            AllowedPlugins = new List<string>();
+            AllowedPlugins = new Dictionary<string, PluginConfig>();
             AllowedDomains = new List<string>();
             Preferences = new Dictionary<string, string>();
         }
@@ -33,37 +44,6 @@ namespace WPCordovaClassLib.CordovaLib
             return Preferences[key];
         }
 
-/*
-    - (BOOL)URLIsAllowed:(NSURL*)url
-{
-    if (self.expandedWhitelist == nil) {
-        return NO;
-    }
-
-    if (self.allowAll) {
-        return YES;
-    }
-
-    // iterate through settings ExternalHosts, check for equality
-    NSEnumerator* enumerator = [self.expandedWhitelist objectEnumerator];
-    id regex = nil;
-    NSString* urlHost = [url host];
-
-    // if the url host IS found in the whitelist, load it in the app (however UIWebViewNavigationTypeOther kicks it out to Safari)
-    // if the url host IS NOT found in the whitelist, we do nothing
-    while (regex = [enumerator nextObject]) {
-        NSPredicate* regex_test = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
-
-        if ([regex_test evaluateWithObject:urlHost] == YES) {
-            // if it matches at least one rule, return
-            return YES;
-        }
-    }
-
-    NSLog(@"%@", [self errorStringForURL:url]);
-    // if we got here, the url host is not in the white-list, do nothing
-    return NO;
-}*/
         protected static string[] AllowedSchemes = {"http","https","ftp","ftps"};
         protected bool SchemeIsAllowed(string scheme)
         {
@@ -75,10 +55,10 @@ namespace WPCordovaClassLib.CordovaLib
 
             if (origin == "*")
             {
-                AllowAllPlugins = true;
+                AllowAllDomains = true;
             }
 
-            if (AllowAllPlugins)
+            if (AllowAllDomains)
             {
                 return;
             }
@@ -173,7 +153,24 @@ namespace WPCordovaClassLib.CordovaLib
 
         public bool IsPluginAllowed(string key)
         {
-            return AllowAllPlugins || AllowedPlugins.Contains(key);
+            return AllowAllPlugins || AllowedPlugins.Keys.Contains(key);
+        }
+
+        public string[] AutoloadPlugins {
+            get
+            {
+                var res = from results in AllowedPlugins.TakeWhile(p => p.Value.isAutoLoad)
+                          select results.Value.Name ;
+
+                foreach(var s in res)
+                {
+                    Debug.WriteLine(s);
+                }
+                //string[] res = from results in (AllowedPlugins.Where(p => p.Value.isAutoLoad) )
+                //                select (string)results.Key;
+
+                return new string[] { "", "asd" };
+            }
         }
 
 
@@ -188,20 +185,24 @@ namespace WPCordovaClassLib.CordovaLib
                 XDocument document = XDocument.Parse(sr.ReadToEnd());
 
                 var plugins = from results in document.Descendants("plugin")
-                              select new { name = (string)results.Attribute("name") };
-
+                              select new
+                              {
+                                  name = (string)results.Attribute("name"),
+                                  autoLoad = results.Attribute("onload")
+                              };
 
                 foreach (var plugin in plugins)
                 {
                     Debug.WriteLine("plugin " + plugin.name);
-                    if (plugin.name == "*")
+                    PluginConfig pConfig = new PluginConfig(plugin.name, plugin.autoLoad != null && plugin.autoLoad.Value == "true");
+                    if (pConfig.Name == "*")
                     {
                         AllowAllPlugins = true;
-                        break;
+                        // break; wait, don't, some still could be autoload
                     }
                     else
                     {
-                        AllowedPlugins.Add(plugin.name);
+                        AllowedPlugins.Add(pConfig.Name, pConfig);
                     }
                 }
 

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/a450ea82/templates/standalone/cordovalib/CordovaView.xaml.cs
----------------------------------------------------------------------
diff --git a/templates/standalone/cordovalib/CordovaView.xaml.cs b/templates/standalone/cordovalib/CordovaView.xaml.cs
index 9ed7e0b..ec88576 100644
--- a/templates/standalone/cordovalib/CordovaView.xaml.cs
+++ b/templates/standalone/cordovalib/CordovaView.xaml.cs
@@ -378,6 +378,12 @@ namespace WPCordovaClassLib
 
         void CordovaBrowser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
         {
+            string[] autoloadPlugs = this.configHandler.AutoloadPlugins;
+            foreach (string plugName in autoloadPlugs)
+            {
+               // nativeExecution.ProcessCommand(commandCallParams); 
+            }
+
             string nativeReady = "(function(){ cordova.require('cordova/channel').onNativeReady.fire()})();";
 
             try
@@ -466,7 +472,14 @@ namespace WPCordovaClassLib
 
         public void LoadPage(string url)
         {
-            this.configHandler.URLIsAllowed(url);
+            if (this.configHandler.URLIsAllowed(url))
+            {
+                this.CordovaBrowser.Navigate(new Uri(url, UriKind.RelativeOrAbsolute));
+            }
+            else
+            {
+                Debug.WriteLine("Oops, Can't load url based on config.xml :: " + url);
+            }
         }
 
         private void CordovaBrowser_Unloaded(object sender, RoutedEventArgs e)

http://git-wip-us.apache.org/repos/asf/cordova-wp8/blob/a450ea82/templates/standalone/cordovalib/NativeExecution.cs
----------------------------------------------------------------------
diff --git a/templates/standalone/cordovalib/NativeExecution.cs b/templates/standalone/cordovalib/NativeExecution.cs
index e02625b..a0865ab 100644
--- a/templates/standalone/cordovalib/NativeExecution.cs
+++ b/templates/standalone/cordovalib/NativeExecution.cs
@@ -61,6 +61,16 @@ namespace WPCordovaClassLib.Cordova
             CommandFactory.ResetAllCommands();
         }
 
+        public void AutoLoadCommand(string commandService)
+        {
+            BaseCommand bc = CommandFactory.CreateByServiceName(commandService);
+            if (bc != null)
+            {
+                bc.OnInit();
+            }
+
+        }
+
         /// <summary>
         /// Executes command and returns result back.
         /// </summary>