r3323 - in trunk/src/target/OM-2007.2/applications/openmoko-dialer2: . src/phone-kit

thomas at sita.openmoko.org thomas at sita.openmoko.org
Thu Nov 1 17:48:29 CET 2007


Author: thomas
Date: 2007-11-01 17:48:28 +0100 (Thu, 01 Nov 2007)
New Revision: 3323

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer.c
Log:
* src/phone-kit/moko-dialer.c: (moko_dialer_class_init),
(dialer_display_error), (moko_dialer_init): Reimplement dial out function


Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog	2007-11-01 16:45:13 UTC (rev 3322)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog	2007-11-01 16:48:28 UTC (rev 3323)
@@ -1,5 +1,10 @@
 2007-11-01  Thomas Wood  <thomas at openedhand.com>
 
+	* src/phone-kit/moko-dialer.c: (moko_dialer_class_init),
+	(dialer_display_error), (moko_dialer_init): Reimplement dial out function
+
+2007-11-01  Thomas Wood  <thomas at openedhand.com>
+
 	* data/org.openmoko.Dialer.service.in: Update binary name
 
 2007-11-01  Thomas Wood  <thomas at openedhand.com>

Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer.c	2007-11-01 16:45:13 UTC (rev 3322)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer.c	2007-11-01 16:48:28 UTC (rev 3323)
@@ -96,14 +96,78 @@
 gboolean
 moko_dialer_dial (MokoDialer *dialer, const gchar *number, GError *error)
 {
+  GtkWidget *dlg;
   MokoDialerPrivate *priv;
+  MokoContactEntry *entry = NULL;
 
   g_return_val_if_fail (MOKO_IS_DIALER (dialer), FALSE);
   g_return_val_if_fail (number != NULL, FALSE);
   priv = dialer->priv;
 
-  /* FIXME: Dial the number! */
+  g_debug ("Received dial request: %s", number);
 
+  /* check current dialer state */
+  if (0 || priv->status != DIALER_STATUS_NORMAL)
+  {
+    gchar *strings[] = {
+      "Normal",
+      "Incoming Call",
+      "Dialing",
+      "Outgoing Call"
+    };
+    dlg = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK,
+        "Cannot dial when dialer is busy.\nCurrent status = %s", strings[priv->status]);
+    gtk_dialog_run (GTK_DIALOG (dlg));
+    gtk_widget_destroy (dlg);
+
+    g_warning ("Cannot dial when dialer is busy: %d\n", priv->status);
+
+    return;
+  }
+  priv->status = DIALER_STATUS_DIALING;
+
+  /* check for network connection */
+  if (priv->registered != MOKO_GSMD_CONNECTION_NETREG_HOME
+      && priv->registered != MOKO_GSMD_CONNECTION_NETREG_ROAMING
+      && priv->registered != MOKO_GSMD_CONNECTION_NETREG_DENIED)
+  {
+    gchar *strings[] = {
+      "None",
+      "Home network registered",
+      "Waiting for network registration",
+      "Network registration denied",
+      "",
+      "Roaming network registered"
+    };
+
+    dlg = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK,
+        "Not connected to network.\nCurrent status = %s ", strings[priv->registered]);
+    gtk_dialog_run (GTK_DIALOG (dlg));
+    gtk_widget_destroy (dlg);
+
+    /* no point continuing if we're not connected to a network! */
+    priv->status = DIALER_STATUS_NORMAL;
+    return;
+  }
+
+  entry = moko_contacts_lookup (moko_contacts_get_default (), number);
+
+  /* Prepare a voice journal entry */
+  if (priv->journal)
+  {
+    priv->entry = moko_journal_entry_new (VOICE_JOURNAL_ENTRY);
+    priv->time = moko_time_new_today ();
+    moko_journal_entry_set_direction (priv->entry, DIRECTION_IN);
+    moko_journal_entry_set_dtstart (priv->entry, priv->time);
+    moko_journal_entry_set_source (priv->entry, "Openmoko Dialer");
+    moko_journal_voice_info_set_distant_number (priv->entry, number);
+    if (entry && entry->contact->uid)
+      moko_journal_entry_set_contact_uid (priv->entry, entry->contact->uid);
+  }
+  moko_talking_outgoing_call (MOKO_TALKING (priv->talking), number, entry);
+
+
+
   return TRUE;
 }
 
@@ -593,14 +657,16 @@
 static void
 dialer_display_error (GError *err)
 {
-  GtkWidget *dlg;
+  /* GtkWidget *dlg; */
 
   if (!err)
     return;
-
+  /*
   dlg = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Dialer: %s", err->message);
   gtk_dialog_run (GTK_DIALOG (dlg));
   gtk_widget_destroy (dlg);
+  */
+  g_warning (err->message);
 }
 
 static void





More information about the commitlog mailing list