Merge lp:~tiagosh/telepathy-ofono/aliasing-interface into lp:telepathy-ofono

Proposed by Tiago Salem Herrmann
Status: Needs review
Proposed branch: lp:~tiagosh/telepathy-ofono/aliasing-interface
Merge into: lp:telepathy-ofono
Diff against target: 116 lines (+77/-0)
2 files modified
connection.cpp (+71/-0)
connection.h (+6/-0)
To merge this branch: bzr merge lp:~tiagosh/telepathy-ofono/aliasing-interface
Reviewer Review Type Date Requested Status
system-apps-ci-bot continuous-integration Needs Fixing
PS Jenkins bot continuous-integration Needs Fixing
Ubuntu Phablet Team Pending
Review via email: mp+227335@code.launchpad.net

Commit message

Add Connection.Aliasing interface support.

Description of the change

Add Connection.Aliasing interface support.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
system-apps-ci-bot (system-apps-ci-bot) wrote :
review: Needs Fixing (continuous-integration)

Unmerged revisions

89. By Tiago Salem Herrmann

add Connection.Aliasing interface support

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'connection.cpp'
2--- connection.cpp 2014-07-01 16:16:07 +0000
3+++ connection.cpp 2014-07-18 14:16:32 +0000
4@@ -197,6 +197,15 @@
5 simplePresenceIface->setSetPresenceCallback(Tp::memFun(this,&oFonoConnection::setPresence));
6 plugInterface(Tp::AbstractConnectionInterfacePtr::dynamicCast(simplePresenceIface));
7
8+ // init aliasing interface
9+ aliasingIface = Tp::BaseConnectionAliasingInterface::create();
10+ aliasingIface->setGetAliasFlagsCallback(Tp::memFun(this,&oFonoConnection::getAliasFlags));
11+ aliasingIface->setRequestAliasesCallback(Tp::memFun(this,&oFonoConnection::requestAliases));
12+ aliasingIface->setGetAliasesCallback(Tp::memFun(this,&oFonoConnection::getAliases));
13+ aliasingIface->setSetAliasesCallback(Tp::memFun(this,&oFonoConnection::setAliases));
14+ plugInterface(Tp::AbstractConnectionInterfacePtr::dynamicCast(aliasingIface));
15+
16+
17 // init custom emergency mode interface (not provided by telepathy
18 emergencyModeIface = BaseConnectionEmergencyModeInterface::create();
19 emergencyModeIface->setEmergencyNumbersCallback(Tp::memFun(this,&oFonoConnection::emergencyNumbers));
20@@ -1024,6 +1033,68 @@
21 mOfonoSupplementaryServices->cancel();
22 }
23
24+uint oFonoConnection::getAliasFlags(Tp::DBusError *error)
25+{
26+ return Tp::ConnectionAliasFlagUserSet;
27+}
28+
29+QStringList oFonoConnection::requestAliases(const Tp::UIntList &contacts, Tp::DBusError *error)
30+{
31+ QStringList aliases;
32+ Q_FOREACH(uint handle, contacts) {
33+ if (mAliases.contains(handle)) {
34+ aliases << mAliases[handle];
35+ } else {
36+ aliases << mHandles[handle];
37+ }
38+ }
39+
40+ return aliases;
41+}
42+
43+Tp::AliasMap oFonoConnection::getAliases(const Tp::UIntList &contacts, Tp::DBusError *error)
44+{
45+ Tp::AliasMap aliases;
46+ Q_FOREACH(uint handle, contacts) {
47+ if (mAliases.contains(handle)) {
48+ aliases[handle] = mAliases[handle];
49+ } else {
50+ aliases[handle] = mHandles[handle];
51+ }
52+ }
53+
54+ return aliases;
55+}
56+
57+void oFonoConnection::setAliases(const Tp::AliasMap &aliases, Tp::DBusError *error)
58+{
59+ qDebug() << "oFonoConnection::setAliases" << aliases;
60+ Tp::AliasPairList changedAliases;
61+ QMapIterator<uint, QString> i(aliases);
62+ // first check if we have all the requested handles
63+ while (i.hasNext()) {
64+ i.next();
65+ if (!mHandles.contains(i.key())) {
66+ error->set(TP_QT_ERROR_INVALID_ARGUMENT,"Not supported");
67+ return;
68+ }
69+ }
70+ i.toFront();
71+
72+ while(i.hasNext()) {
73+ i.next();
74+ Tp::AliasPair changedAlias;
75+ changedAlias.handle = i.key();
76+ changedAlias.alias = i.value();
77+ mAliases[changedAlias.handle] = changedAlias.alias;
78+ changedAliases.append(changedAlias);
79+ }
80+
81+ if (changedAliases.size() > 0) {
82+ aliasingIface->aliasesChanged(changedAliases);
83+ }
84+}
85+
86 void oFonoConnection::updateAudioRoute()
87 {
88 QByteArray pulseAudioDisabled = qgetenv("PA_DISABLED");
89
90=== modified file 'connection.h'
91--- connection.h 2014-07-01 16:16:07 +0000
92+++ connection.h 2014-07-18 14:16:32 +0000
93@@ -80,10 +80,15 @@
94 void USSDInitiate(const QString &command, Tp::DBusError *error);
95 void USSDRespond(const QString &reply, Tp::DBusError *error);
96 void USSDCancel(Tp::DBusError *error);
97+ uint getAliasFlags(Tp::DBusError *error);
98+ QStringList requestAliases(const Tp::UIntList &contacts, Tp::DBusError *error);
99+ Tp::AliasMap getAliases(const Tp::UIntList &contacts, Tp::DBusError *error);
100+ void setAliases(const Tp::AliasMap &aliases, Tp::DBusError *error);
101
102 Tp::BaseConnectionRequestsInterfacePtr requestsIface;
103 Tp::BaseConnectionSimplePresenceInterfacePtr simplePresenceIface;
104 Tp::BaseConnectionContactsInterfacePtr contactsIface;
105+ Tp::BaseConnectionAliasingInterfacePtr aliasingIface;
106 BaseConnectionEmergencyModeInterfacePtr emergencyModeIface;
107 BaseConnectionVoicemailInterfacePtr voicemailIface;
108 BaseConnectionUSSDInterfacePtr supplementaryServicesIface;
109@@ -168,6 +173,7 @@
110 QMap<QString, QList<MMSDMessage*> > mServiceMMSList;
111 oFonoConferenceCallChannel *mConferenceCall;
112 bool mSpeakerMode;
113+ Tp::AliasMap mAliases;
114 };
115
116 #endif

Subscribers

People subscribed via source and target branches