aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libempathy/empathy-status-presets.c20
-rw-r--r--libempathy/empathy-status-presets.h1
2 files changed, 21 insertions, 0 deletions
diff --git a/libempathy/empathy-status-presets.c b/libempathy/empathy-status-presets.c
index 9f9a2030b..ec3f23251 100644
--- a/libempathy/empathy-status-presets.c
+++ b/libempathy/empathy-status-presets.c
@@ -405,3 +405,23 @@ empathy_status_presets_clear_default (void)
status_presets_file_save ();
}
+
+gboolean
+empathy_status_presets_is_valid (TpConnectionPresenceType state)
+{
+ switch (state) {
+ case TP_CONNECTION_PRESENCE_TYPE_UNSET:
+ case TP_CONNECTION_PRESENCE_TYPE_OFFLINE:
+ case TP_CONNECTION_PRESENCE_TYPE_UNKNOWN:
+ case TP_CONNECTION_PRESENCE_TYPE_ERROR:
+ return FALSE;
+
+ case TP_CONNECTION_PRESENCE_TYPE_AVAILABLE:
+ case TP_CONNECTION_PRESENCE_TYPE_AWAY:
+ case TP_CONNECTION_PRESENCE_TYPE_EXTENDED_AWAY:
+ case TP_CONNECTION_PRESENCE_TYPE_HIDDEN:
+ case TP_CONNECTION_PRESENCE_TYPE_BUSY:
+ return TRUE;
+ }
+ return FALSE;
+}
diff --git a/libempathy/empathy-status-presets.h b/libempathy/empathy-status-presets.h
index 335dbcfcb..331c630d5 100644
--- a/libempathy/empathy-status-presets.h
+++ b/libempathy/empathy-status-presets.h
@@ -40,6 +40,7 @@ const gchar * empathy_status_presets_get_default_status (void);
void empathy_status_presets_set_default (TpConnectionPresenceType state,
const gchar *status);
void empathy_status_presets_clear_default (void);
+gboolean empathy_status_presets_is_valid (TpConnectionPresenceType state);
G_END_DECLS