3
using org.freedesktop.DBus;
4
using System.Collections.Generic;
13
const string emeseneObjectPath = "/org/emesene/dbus";
14
const string emeseneServiceBusName = "org.emesene.dbus";
15
public static List<Item> status;
17
public static string getAvatarPathForUser()
19
return Emesene.getPathForUser()+"avatars";
22
public static string getCachePathForUser()
24
return Emesene.getPathForUser()+"cache";
27
private static string getPathForUser(){
28
string user = Emesene.getCurrentEmeseneUser();
29
user = user.Replace(".","_");
30
user = Environment.GetFolderPath(Environment.SpecialFolder.Personal)+
31
"/.config/emesene1.0/"+user.Replace("@","_")+
36
[Interface ("org.emesene.dbus")]
37
public interface EmeseneInterface
39
void open_conversation(string email, bool weStarted);
40
void open_conversation(string email);
41
string get_last_display_picture(string account, bool cache);
42
string get_user_account();
43
string set_nick(string nick);
44
bool set_avatar(string path);
45
string set_psm(string psm);
46
string set_status(string status);
47
void get_conversation_history(string email);
48
void get_avatar_history(string email);
49
string get_email_page();
54
//Populate emesene status list
55
status = new List<Item>();
56
status.Add(new EmeseneStatusItem("online", "online status", "NLN"));
57
status.Add(new EmeseneStatusItem("away", "away status", "AWY"));
58
status.Add(new EmeseneStatusItem("brb", "brb status", "BRB"));
59
status.Add(new EmeseneStatusItem("busy", "busy status", "BSY"));
60
status.Add(new EmeseneStatusItem("idle", "idle status", "IDL"));
61
status.Add(new EmeseneStatusItem("lunch", "lunch status", "LUN"));
62
status.Add(new EmeseneStatusItem("invisible", "invisible status", "HDN"));
63
status.Add(new EmeseneStatusItem("phone", "phone status", "PHN"));
64
status.Add(new EmeseneStatusItem("offline", "offline status", "FLN"));
68
public static EmeseneInterface getEmeseneObject()
72
return Bus.Session.GetObject<EmeseneInterface>
73
(emeseneServiceBusName, new ObjectPath (emeseneObjectPath));
77
Log<Emesene>.Error ("Emesene > Error getting EmeseneObject - {0}", e.Message);
78
Log<Emesene>.Debug (e.StackTrace);
84
public static bool checkForEmesene()
88
EmeseneInterface em = Bus.Session.GetObject<EmeseneInterface>
89
(emeseneServiceBusName, new ObjectPath (emeseneObjectPath));
90
em.get_user_account();
99
public static void openChatWith(string mail)
101
EmeseneInterface em = Emesene.getEmeseneObject();
103
em.open_conversation(mail, true);
105
//User is using older emesene
106
//em.open_conversation(mail);
107
Log<Emesene>.Debug ("Old version of emesene");
108
Log<Emesene>.Debug (e.StackTrace);
113
public static string getCurrentEmeseneUser()
115
EmeseneInterface em = Emesene.getEmeseneObject();
116
return em.get_user_account();
119
public static string get_last_display_picture(string account, bool cache)
121
EmeseneInterface em = Emesene.getEmeseneObject();
122
return em.get_last_display_picture(account, cache);
125
public static string set_nick(string nick)
127
EmeseneInterface em = Emesene.getEmeseneObject();
128
return em.set_nick(nick);
131
public static bool set_avatar(string path)
133
EmeseneInterface em = Emesene.getEmeseneObject();
134
return em.set_avatar(path);
137
public static string set_psm(string psm)
139
EmeseneInterface em = Emesene.getEmeseneObject();
140
return em.set_psm(psm);
143
public static string set_status(string status)
145
EmeseneInterface em = Emesene.getEmeseneObject();
146
return em.set_status(status);
149
public static void get_conversation_history(string email)
151
EmeseneInterface em = Emesene.getEmeseneObject();
152
em.get_conversation_history(email);
155
public static void get_avatar_history(string email)
157
EmeseneInterface em = Emesene.getEmeseneObject();
158
em.get_avatar_history(email);
161
public static string get_email_page()
163
EmeseneInterface em = Emesene.getEmeseneObject();
164
return em.get_email_page();