about summary refs log tree commit diff stats
path: root/src/contact.c
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2013-02-10 17:27:08 +0000
committerJames Booth <boothj5@gmail.com>2013-02-10 17:27:08 +0000
commit1a6490a5b761087ad00d63dfa59d737318b0ceeb (patch)
treec0ddcfd7690782500a55b2297e6d557e54325657 /src/contact.c
parente922568770532e6fda63bf1865832fc7fd7f00ee (diff)
downloadprofani-tty-1a6490a5b761087ad00d63dfa59d737318b0ceeb.tar.gz
Use resource_presence_t in Resource
Diffstat (limited to 'src/contact.c')
-rw-r--r--src/contact.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/contact.c b/src/contact.c
index 7f6dcadc..9455929c 100644
--- a/src/contact.c
+++ b/src/contact.c
@@ -65,7 +65,8 @@ p_contact_new(const char * const barejid, const char * const name,
         (GDestroyNotify)resource_destroy);
     // TODO, priority, last activity
     if (g_strcmp0(presence, "offline") != 0) {
-        Resource *resource = resource_new("default", presence, status, 0, caps_str);
+        resource_presence_t resource_presence = resource_presence_from_string(presence);
+        Resource *resource = resource_new("default", resource_presence, status, 0, caps_str);
         g_hash_table_insert(contact->available_resources, strdup(resource->name), resource);
     }
 
@@ -130,7 +131,7 @@ p_contact_presence(const PContact contact)
         return "offline";
     } else {
         Resource *resource = g_hash_table_lookup(contact->available_resources, "default");
-        return resource->show;
+        return string_from_resource_presence(resource->presence);
     }
 }
 
@@ -180,17 +181,13 @@ p_contact_set_presence(const PContact contact, const char * const presence)
     if (g_strcmp0(presence, "offline") == 0) {
         g_hash_table_remove(contact->available_resources, "default");
     } else {
+        resource_presence_t resource_presence = resource_presence_from_string(presence);
         if (g_hash_table_size(contact->available_resources) == 0) {
-            Resource *resource = resource_new("default", presence, NULL, 0, NULL);
+            Resource *resource = resource_new("default", resource_presence, NULL, 0, NULL);
             g_hash_table_insert(contact->available_resources, strdup(resource->name), resource);
         } else {
             Resource *resource = g_hash_table_lookup(contact->available_resources, "default");
-            if (presence != NULL) {
-                FREE_SET_NULL(resource->show);
-                resource->show = strdup(presence);
-            } else {
-                resource->show = NULL;
-            }
+                resource->presence = resource_presence;
         }
     }
 }