~tiagosh/telephony-service/ussd

« back to all changes in this revision

Viewing changes to libtelephonyservice/telepathyhelper.h

Merge the changes for multiple account support.

Show diffs side-by-side

added added

removed removed

Lines of Context:
38
38
{
39
39
    Q_OBJECT
40
40
    Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged)
41
 
    Q_PROPERTY(QString accountId READ accountId NOTIFY accountIdChanged)
 
41
    Q_PROPERTY(QStringList accountIds READ accountIds NOTIFY accountIdsChanged)
42
42
 
43
43
public:
44
44
    ~TelepathyHelper();
45
45
 
46
46
    static TelepathyHelper *instance();
47
 
    Tp::AccountPtr account() const;
 
47
    QList<Tp::AccountPtr> accounts() const;
48
48
    ChannelObserver *channelObserver() const;
49
49
    QDBusInterface *handlerInterface();
50
50
 
51
51
    bool connected() const;
52
 
    QString accountId() const;
 
52
    QStringList accountIds() const;
 
53
    Tp::AccountPtr accountForConnection(const Tp::ConnectionPtr &connection) const;
 
54
    Tp::AccountPtr accountForId(const QString &accountId) const;
 
55
 
 
56
    bool isAccountConnected(const Tp::AccountPtr &account) const;
53
57
 
54
58
    void registerClient(Tp::AbstractClient *client, QString name);
55
59
 
62
66
    void accountReady();
63
67
    void connectionChanged();
64
68
    void connectedChanged();
65
 
    void accountIdChanged();
 
69
    void accountIdsChanged();
66
70
 
67
71
public Q_SLOTS:
68
72
    Q_INVOKABLE void registerChannelObserver(const QString &observerName = QString::null);
70
74
 
71
75
protected:
72
76
    QStringList supportedProtocols() const;
73
 
    void initializeAccount();
74
 
    void ensureAccountEnabled();
75
 
    void ensureAccountConnected();
76
 
    void watchSelfContactPresence();
 
77
    void initializeAccount(const Tp::AccountPtr &account);
 
78
    void ensureAccountEnabled(const Tp::AccountPtr &account);
 
79
    void ensureAccountConnected(const Tp::AccountPtr &account);
 
80
    void watchSelfContactPresence(const Tp::AccountPtr &account);
77
81
 
78
82
private Q_SLOTS:
79
83
    void onAccountManagerReady(Tp::PendingOperation *op);
80
 
    void onAccountEnabled(Tp::PendingOperation *op);
81
 
    void onAccountStateChanged(bool enabled);
82
 
    void onAccountConnectionChanged(const Tp::ConnectionPtr &connection);
83
 
    void onPresenceChanged(const Tp::Presence &presence);
 
84
    void updateConnectedStatus();
84
85
 
85
86
private:
86
87
    explicit TelepathyHelper(QObject *parent = 0);
90
91
    Tp::Features mContactFeatures;
91
92
    Tp::Features mConnectionFeatures;
92
93
    Tp::ClientRegistrarPtr mClientRegistrar;
93
 
    Tp::AccountPtr mAccount;
 
94
    QList<Tp::AccountPtr> mAccounts;
94
95
    ChannelObserver *mChannelObserver;
95
96
    bool mFirstTime;
96
97
    bool mConnected;