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