Perform basic authentication with the server upon start
authorTravis Reitter <treitter@gmail.com>
Mon, 23 Nov 2009 04:38:08 +0000 (20:38 -0800)
committerTravis Reitter <treitter@gmail.com>
Fri, 4 Dec 2009 06:01:13 +0000 (22:01 -0800)
src/milk-auth.c
src/milk-auth.h
src/milk-main-window.c
src/milk-main-window.h
src/milk-main.c

index 80c72d8..4d51857 100644 (file)
@@ -24,6 +24,7 @@
 #include <gtk/gtk.h>
 #include <hildon/hildon.h>
 
+#include <rtm-glib/rtm-error.h>
 #include <rtm-glib/rtm-glib.h>
 
 #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)
 {
index 5fc14e0..55caa36 100644 (file)
@@ -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 */
index 70d53a5..d72b983 100644 (file)
@@ -25,6 +25,7 @@
 #include <hildon/hildon.h>
 
 #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
index 31d9777..6af5328 100644 (file)
@@ -20,6 +20,8 @@
 #ifndef _MILK_MAIN_WINDOW_H
 #define _MILK_MAIN_WINDOW_H
 
+#include <hildon/hildon.h>
+
 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 */
index 7ee28e0..9be1d68 100644 (file)
@@ -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));