From e402b9f688bca871d38c323619c7cc454d07cdc5 Mon Sep 17 00:00:00 2001 From: Travis Reitter Date: Sun, 22 Nov 2009 20:38:08 -0800 Subject: [PATCH] Perform basic authentication with the server upon start --- src/milk-auth.c | 141 ++++++++++++++++++++++++++++++++++++++++++++++++ src/milk-auth.h | 5 +- src/milk-main-window.c | 16 +++++- src/milk-main-window.h | 4 +- src/milk-main.c | 1 + 5 files changed, 163 insertions(+), 4 deletions(-) diff --git a/src/milk-auth.c b/src/milk-auth.c index 80c72d8..4d51857 100644 --- a/src/milk-auth.c +++ b/src/milk-auth.c @@ -24,6 +24,7 @@ #include #include +#include #include #include "milk-auth.h" @@ -103,6 +104,146 @@ milk_auth_set_property (GObject *object, } } +void +milk_auth_run_demo (MilkAuth *auth) +{ + MilkAuthPrivate *priv; + + /* FIXME: clean this up */ + GError *error = NULL; + /* FIXME: cut this + RtmGlib *rtm; + */ + gchar *frob; + gchar *url; + gchar *auth_token; + gchar *username; + /* FIXME: cut this + GList *glist; + GList *item; + RtmTask *task; + RtmList *rtm_list; + gchar *timeline; + gchar *transaction_id; + RtmLocation *location; + gchar *list_id_sent = NULL; + RtmTimeZone *time_zone; + gchar *time; + */ + + priv = MILK_AUTH_PRIVATE (auth); + + if (rtm_glib_test_echo (priv->rtm_glib, &error)) { + g_print ("Test echo OK!\n"); + } else { + g_print ("Test echo FAIL!\n"); + } + if (error != NULL) { + g_error ("%s", rtm_error_get_message (error)); + } + + /* FIXME: cut this + glist = rtm_glib_time_zones_get_list (priv->rtm_glib, &error); + if (error != NULL) { + g_error ("%s", rtm_error_get_message (error)); + } + for (item = glist; item; item = g_list_next (item)) { + time_zone = (RtmTimeZone *) item->data; + g_print ("%s", rtm_time_zone_to_string (time_zone)); + } + g_list_free (glist); + + time = rtm_glib_time_parse (priv->rtm_glib, "02/10/2009 10:25", NULL, FALSE, &error); + if (error != NULL) { + g_error ("%s", rtm_error_get_message (error)); + } + g_print ("Time: %s\n", time); + g_free (time); + + time = rtm_glib_time_convert (priv->rtm_glib, "Europe/Madrid", NULL, NULL, &error); + if (error != NULL) { + g_error ("%s", rtm_error_get_message (error)); + } + g_print ("Time: %s\n", time); + g_free (time); + */ + + frob = rtm_glib_auth_get_frob (priv->rtm_glib, &error); + if (error != NULL) { + g_error ("%s", rtm_error_get_message (error)); + } + g_print ("Frob: %s\n", frob); + + url = rtm_glib_auth_get_login_url (priv->rtm_glib, frob, "delete"); + g_print ("URL: %s\n", url); + + getchar (); + + auth_token = rtm_glib_auth_get_token (priv->rtm_glib, frob, &error); + if (error != NULL) { + g_error ("%s", rtm_error_get_message (error)); + } + + if (!rtm_glib_auth_check_token (priv->rtm_glib, auth_token, NULL)) { + g_error ("auth_token not valid!\n"); + goto auth_response_cb_error_OUT; + } + if (error != NULL) { + g_error ("%s", rtm_error_get_message (error)); + } + username = rtm_glib_test_login (priv->rtm_glib, auth_token, &error); + + g_free (auth_token); + + if (error != NULL) { + g_error ("%s", rtm_error_get_message (error)); + } + + /* FIXME: work this in where appropriate */ +#if 0 + glist = rtm_glib_tasks_get_list (priv->rtm_glib, NULL, NULL, NULL, &error); + if (error != NULL) { + g_error ("%s", rtm_error_get_message (error)); + } + for (item = glist; item; item = g_list_next (item)) { + task = (RtmTask *) item->data; + g_print ("%s", rtm_task_to_string (task)); + } + g_list_free (glist); + + glist = rtm_glib_lists_get_list (priv->rtm_glib, &error); + if (error != NULL) { + g_error ("%s", rtm_error_get_message (error)); + } + for (item = glist; item; item = g_list_next (item)) { + rtm_list = (RtmList *) item->data; + if (g_strcmp0 (rtm_list_get_name (rtm_list), "Sent") == 0) { + list_id_sent = rtm_list_get_id (rtm_list); + } + g_print ("%s", rtm_list_to_string (rtm_list)); + } + g_list_free (glist); + + timeline = rtm_glib_timelines_create (priv->rtm_glib, &error); + if (error != NULL) { + g_error ("%s", rtm_error_get_message (error)); + } + g_print ("timeline: %s", timeline); + + task = rtm_glib_tasks_add (priv->rtm_glib, timeline, "test-rtm-glib", NULL, FALSE, &error); + if (error != NULL) { + g_error ("%s", rtm_error_get_message (error)); + } + if (task != NULL) { + g_print ("First task added! task_id: %s\n", rtm_task_get_id (task)); + } else { + g_print ("First task NOT added!\n"); + } + +#endif +} + + static void milk_auth_constructed (GObject *object) { diff --git a/src/milk-auth.h b/src/milk-auth.h index 5fc14e0..55caa36 100644 --- a/src/milk-auth.h +++ b/src/milk-auth.h @@ -62,6 +62,9 @@ struct _MilkAuthClass GType milk_auth_get_type (void); -MilkAuth* milk_auth_get_default (); +MilkAuth* milk_auth_get_default (void); + +/* FIXME: cut this */ +void milk_auth_run_demo (MilkAuth* auth) ; #endif /* _MILK_AUTH_H */ diff --git a/src/milk-main-window.c b/src/milk-main-window.c index 70d53a5..d72b983 100644 --- a/src/milk-main-window.c +++ b/src/milk-main-window.c @@ -25,6 +25,7 @@ #include #include "milk-main-window.h" +#include "milk-auth.h" #include "milk-task.h" #include "milk-task-model.h" @@ -35,6 +36,8 @@ G_DEFINE_TYPE (MilkMainWindow, milk_main_window, HILDON_TYPE_WINDOW) struct _MilkMainWindowPrivate { + MilkAuth *auth; + GtkWidget *app_menu; GtkWidget *main_vbox; @@ -278,8 +281,8 @@ milk_main_window_constructed (GObject* object) gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (col), renderer, TRUE); gtk_cell_layout_set_cell_data_func ( GTK_CELL_LAYOUT (col), renderer, - (GtkTreeCellDataFunc) contact_column_render_func, self, - NULL); + (GtkCellLayoutDataFunc) contact_column_render_func, + self, NULL); g_object_unref (model); hildon_touch_selector_set_column_selection_mode ( @@ -302,6 +305,15 @@ milk_main_window_constructed (GObject* object) priv->app_menu = create_menu (self); hildon_window_set_app_menu ( HILDON_WINDOW (self), HILDON_APP_MENU (priv->app_menu)); + + /* FIXME: is there a better place for this? */ + priv->auth = milk_auth_get_default (); + /* FIXME: plug this into the task model */ + + /* FIXME: cut this */ + g_debug ("trying to run the milk auth demo"); + /* FIXME: cut this */ + milk_auth_run_demo (priv->auth); } static void diff --git a/src/milk-main-window.h b/src/milk-main-window.h index 31d9777..6af5328 100644 --- a/src/milk-main-window.h +++ b/src/milk-main-window.h @@ -20,6 +20,8 @@ #ifndef _MILK_MAIN_WINDOW_H #define _MILK_MAIN_WINDOW_H +#include + G_BEGIN_DECLS #define MILK_TYPE_MAIN_WINDOW milk_main_window_get_type() @@ -62,6 +64,6 @@ struct _MilkMainWindowClass GType milk_main_window_get_type (void); -GtkWidget* milk_main_window_new (); +GtkWidget* milk_main_window_new (void); #endif /* _MILK_MAIN_WINDOW_H */ diff --git a/src/milk-main.c b/src/milk-main.c index 7ee28e0..9be1d68 100644 --- a/src/milk-main.c +++ b/src/milk-main.c @@ -33,6 +33,7 @@ main (int argc, char *argv[]) { MilkApp app; + g_thread_init (NULL); hildon_gtk_init (&argc, &argv); memset (&app, 0, sizeof (app)); -- 1.7.9.5