Changeset ff72b8b in Renga


Ignore:
Timestamp:
Jun 19, 2019, 8:51:32 PM (5 years ago)
Author:
Adrien Destugues <pulkomandy@…>
Branches:
main
Children:
04c164a
Parents:
f7960fb
Message:

Handle "pending presence" state.

Location:
jabber
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • jabber/JabberSpeak.cpp

    rf7960fb rff72b8b  
    12391239JabberSpeak::handleItemUpdated(const gloox::JID& jid)
    12401240{
    1241         printf("%s(%s)\n", __PRETTY_FUNCTION__, jid.full().c_str());
     1241        gloox::RosterItem* item = fClient->rosterManager()->getRosterItem(jid);
     1242        UserID* roster_user = JRoster::Instance()->FindUser(JRoster::HANDLE, jid.full());
     1243        if (roster_user) {
     1244                roster_user->SetSubscriptionStatus(item->subscription());
     1245                printf("%s(%s)\n", __PRETTY_FUNCTION__, jid.full().c_str());
     1246                printf("   name %s\n", item->name().c_str());
     1247                printf("   onln %d\n", item->online());
     1248        } else {
     1249                printf("%s(%s) user not found\n", __PRETTY_FUNCTION__, jid.full().c_str());
     1250        }
    12421251}
    12431252
     
    13761385
    13771386void
    1378 JabberSpeak::handleSelfPresence(const gloox::RosterItem&, const string&, gloox::Presence::PresenceType, const string&)
    1379 {
    1380         printf("%s\n", __PRETTY_FUNCTION__);
     1387JabberSpeak::handleSelfPresence(const gloox::RosterItem&, const string& resource, gloox::Presence::PresenceType, const string& msg)
     1388{
     1389        // TODO this gets called for giving us our current presence and message,
     1390        // and also for all other resources, so we can know that the same user
     1391        // is also online elsewhere
     1392        printf("%s(%s, %s)\n", __PRETTY_FUNCTION__, resource.c_str(), msg.c_str());
    13811393}
    13821394
  • jabber/UserID.cpp

    rf7960fb rff72b8b  
    2525        // bare defaults
    2626        SetOnlineStatus(UserID::UNKNOWN);
    27         SetAsk("");
    2827        SetExactOnlineStatus("chat");
    2928        SetSubscriptionStatus(gloox::S10nNone);
     
    3433        SetFriendlyName(copied_userid.FriendlyName());
    3534
    36         SetAsk(copied_userid.Ask());
    3735        SetSubscriptionStatus(copied_userid.SubscriptionStatus());
    3836        SetOnlineStatus(copied_userid.OnlineStatus());
     
    4846        SetFriendlyName(rhs.FriendlyName());
    4947
    50         SetAsk(rhs.Ask());
    5148        SetSubscriptionStatus(rhs.SubscriptionStatus());
    5249
     
    6663}
    6764
    68 const std::string UserID::Ask() const {
    69         return _ask;
    70 }
    71 
    7265UserID::online_status UserID::OnlineStatus() const {
    73         if (_status == UNKNOWN && Ask() == "subscribe") {
     66        if (_status == UNKNOWN && (SubscriptionStatus() == gloox::S10nNoneOut || SubscriptionStatus() == gloox::S10nNoneOutIn || SubscriptionStatus() == gloox::S10nFromOut)) {
    7467                return UNACCEPTED;
    7568        } else {
     
    232225}
    233226
    234 void UserID::SetAsk(std::string status) {
    235         _ask = status;
    236 }
    237 
    238227void UserID::SetOnlineStatus(online_status status) {
    239228        // special value
  • jabber/UserID.h

    rf7960fb rff72b8b  
    2828        const std::string    FriendlyName() const;
    2929
    30         const std::string    Ask() const;
    3130              online_status  OnlineStatus() const;
    3231        const std::string    ExactOnlineStatus() const;
     
    5554        void                 SetFriendlyName(std::string friendly_name);
    5655
    57         void                 SetAsk(std::string status);
    5856        void                 SetOnlineStatus(online_status status);
    5957        void                 SetExactOnlineStatus(std::string exact_status);
     
    6967        std::string          _service;
    7068
    71         std::string          _ask;
    7269        online_status        _status;
    7370        std::string          _exact_status;
Note: See TracChangeset for help on using the changeset viewer.