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 2012/11/01 00:34:18 UTC

[10/12] wp7 commit: fixes Contacts Api tests

fixes Contacts Api tests


Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-wp7/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-wp7/commit/997d7cb2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-wp7/tree/997d7cb2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-wp7/diff/997d7cb2

Branch: refs/heads/master
Commit: 997d7cb2ccc3d42d727fbf520cf3c75008a2e795
Parents: 5da07d6
Author: sgrebnov <se...@gmail.com>
Authored: Tue Oct 16 01:04:11 2012 +0400
Committer: sgrebnov <se...@gmail.com>
Committed: Tue Oct 16 01:04:11 2012 +0400

----------------------------------------------------------------------
 .../standalone/cordovalib/Commands/Contacts.cs     |   80 +++++++-------
 1 files changed, 40 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cordova-wp7/blob/997d7cb2/templates/standalone/cordovalib/Commands/Contacts.cs
----------------------------------------------------------------------
diff --git a/templates/standalone/cordovalib/Commands/Contacts.cs b/templates/standalone/cordovalib/Commands/Contacts.cs
index 8428ea5..f299fe0 100644
--- a/templates/standalone/cordovalib/Commands/Contacts.cs
+++ b/templates/standalone/cordovalib/Commands/Contacts.cs
@@ -12,24 +12,16 @@
 	limitations under the License.
 */
 
-using System;
-using System.Net;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Documents;
-using System.Windows.Ink;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Animation;
-using System.Windows.Shapes;
 using Microsoft.Phone.Tasks;
 using Microsoft.Phone.UserData;
+using System;
 using System.Collections;
 using System.Collections.Generic;
-using System.Runtime.Serialization;
-using DeviceContacts = Microsoft.Phone.UserData.Contacts;
 using System.Diagnostics;
 using System.Linq;
+using System.Runtime.Serialization;
+using System.Windows;
+using DeviceContacts = Microsoft.Phone.UserData.Contacts;
 
 
 namespace WP7CordovaClassLib.Cordova.Commands
@@ -176,23 +168,6 @@ namespace WP7CordovaClassLib.Cordova.Commands
 
         }
 
-        private void saveContactTask_Completed(object sender, SaveContactResult e)
-        {
-            switch (e.TaskResult)
-            {
-                case TaskResult.OK:
-                    // successful save
-                    MessageBoxResult res = MessageBox.Show("contact saved", "Alert", MessageBoxButton.OK);
-                    break;
-                case TaskResult.Cancel:
-                    // user cancelled
-                    break;
-                case TaskResult.None:
-                    // no info about result is available
-                    break;
-            }
-        }
-
         // refer here for contact properties we can access: http://msdn.microsoft.com/en-us/library/microsoft.phone.tasks.savecontacttask_members%28v=VS.92%29.aspx
         public void save(string jsonContact)
         {
@@ -265,13 +240,28 @@ namespace WP7CordovaClassLib.Cordova.Commands
             #endregion
 
             #region contact.emails
+
             if (contact.emails != null && contact.emails.Length > 0)
             {
+
+                // set up different email types if they are not explicitly defined
+                foreach (string type in new string[] { "personal", "work", "other" })
+                {
+                    foreach (JSONContactField field in contact.emails)
+                    {
+                        if (field != null && String.IsNullOrEmpty(field.type))
+                        {
+                            field.type = type;
+                            break;
+                        }
+                    }
+                }
+
                 foreach (JSONContactField field in contact.emails)
                 {
                     if (field != null)
                     {
-                        if (field.type != null)
+                        if (field.type != null && field.type != "other")
                         {
                             string fieldType = field.type.ToLower();
                             if (fieldType == "work")
@@ -334,25 +324,32 @@ namespace WP7CordovaClassLib.Cordova.Commands
             #endregion
 
 
-            contactTask.Completed += new EventHandler<SaveContactResult>(contactTask_Completed);
+            contactTask.Completed += new EventHandler<SaveContactResult>(ContactSaveTaskCompleted);
             contactTask.Show();
-
-            DispatchCommandResult(new PluginResult(PluginResult.Status.OK, new string[] { }));
         }
 
-        void contactTask_Completed(object sender, SaveContactResult e)
+        void ContactSaveTaskCompleted(object sender, SaveContactResult e)
         {
             SaveContactTask task = sender as SaveContactTask;
 
             if (e.TaskResult == TaskResult.OK)
             {
-                DeviceContacts deviceContacts = new DeviceContacts();
-                deviceContacts.SearchCompleted += new EventHandler<ContactsSearchEventArgs>(postAdd_SearchCompleted);
-                deviceContacts.SearchAsync(task.FirstName + " " + task.LastName, FilterKind.DisplayName, task);
+
+                Deployment.Current.Dispatcher.BeginInvoke(() =>
+                {
+                    DeviceContacts deviceContacts = new DeviceContacts();
+                    deviceContacts.SearchCompleted += new EventHandler<ContactsSearchEventArgs>(postAdd_SearchCompleted);
+
+                    string displayName = String.Format("{0}{2}{1}", task.FirstName, task.LastName, String.IsNullOrEmpty(task.FirstName) ? "" : " ");
+
+                    deviceContacts.SearchAsync(displayName, FilterKind.DisplayName, task);
+                });
+                
+
             }
             else if (e.TaskResult == TaskResult.Cancel)
             {
-
+                DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Operation cancelled."));
             }
         }
 
@@ -637,7 +634,9 @@ namespace WP7CordovaClassLib.Cordova.Commands
                                       "\"addresses\":[{5}]," +
                                       "\"urls\":[{6}]," +
                                       "\"name\":{7}," +
-                                      "\"note\":\"{8}\"";
+                                      "\"note\":\"{8}\"," +
+                                      "\"birthday\":\"{9}\"";
+
 
             string jsonContact = String.Format(contactFormatStr,
                                                con.GetHashCode(),
@@ -648,7 +647,8 @@ namespace WP7CordovaClassLib.Cordova.Commands
                                                FormatJSONAddresses(con),
                                                FormatJSONWebsites(con),
                                                FormatJSONName(con),
-                                               con.Notes.FirstOrDefault());
+                                               con.Notes.FirstOrDefault(),
+                                               con.Birthdays.FirstOrDefault());
 
             //Debug.WriteLine("jsonContact = " + jsonContact);
             // JSON requires new line characters be escaped