Select Git revision
TelephonyHandler.vala
TelephonyHandler.vala 8.16 KiB
/**
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* AUTHORS
* Maciek Borzecki <maciek.borzecki (at] gmail.com>
* gyan000 <gyan000 (at] ijaz.fr>
*/
using EOSConnect;
using EOSConnect.Plugin;
namespace MConnect {
class TelephonyHandler : Object, PacketHandlerInterface {
public signal void telephony_update ();
public const string TELEPHONY = "kdeconnect.telephony";
public const string SMS_REQUEST = "kdeconnect.sms.request";
public DateTime last_sms_received_date_time { get; private set; }
public string get_pkt_type () {
return TELEPHONY;
}
private TelephonyHandler () {
}
public static TelephonyHandler instance () {
return new TelephonyHandler ();
}
public void use_device (Device dev) {
debug ("Use device %s for telephony.", dev.to_string ());
dev.message.connect (this.message);
}
public void release_device (Device dev) {
debug ("Release device %s", dev.to_string ());
dev.message.disconnect (this.message);
}
public void message (Device device, Packet pkt) {
if (pkt.pkt_type != TELEPHONY || device.is_capabality_activated (TELEPHONY) == false) {
return;
}
info ("Got telephony packet.");
if (pkt.body.has_member ("phoneNumber") == false ||
pkt.body.has_member ("event") == false) {
return;
}
string id = pkt.id.to_string ();
string event = pkt.body.get_string_member ("event");
string message_body = pkt.body.get_string_member ("messageBody");
string phone_thumbnail = pkt.body.get_string_member ("phoneThumbnail");
string phone_number = pkt.body.get_string_member ("phoneNumber");
string contact_name = pkt.body.has_member ("contactName") ? pkt.body.get_string_member ("contactName") : phone_number;