Search code examples
androidquickblox

Quick Blox SDK Presence not received as online on Login first time


I am using quick blox sdk to chat and show online users and update their online/offline status. Everything works fine but on first time login 5xxxx7 QBId presence is received as per below logs,

D/SMACK: RECV (1): <presence xmlns="jabber:client" from="5388507-28074@chat.quickblox.com/android_00000000-57d0-4ecf-ffff-ffffef05ac4a" to="16269676-28074@chat.quickblox.com" id="bQzT2-9587"/>

09-30 16:38:19.944 20513-21578/com.FCK.provider D/NativeCrypto: ssl=0xd86e0d40 sslRead buf=0xd403af98 len=104,timeo=60000

But in my presence listener nothing is logged:

 rosterListener = new QBRosterListener() {
            @Override
            public void entriesDeleted(Collection<Integer> userIds) {
                log("entriesDeleted: " + userIds);
            }

            @Override
            public void entriesAdded(Collection<Integer> userIds) {
                log("entriesAdded: " + userIds);
            }

            @Override
            public void entriesUpdated(Collection<Integer> userIds) {
                log("entriesUpdated: " + userIds);
            }

            @Override
            public void presenceChanged(QBPresence presence) {
                log("presenceChanged: " + presence);
                EventBus.getDefault().post(presence);
                if(chatServiceListener != null){
                    chatServiceListener.presenceChanged(presence);
                }
//                {type=online, user=5507990, status=null}
            }
        };

Even if I get presence manually by below code I get user as offline even if he is online and I can chat with him:

QBPresence presence = сhatRoster.getPresence(userID);
        if (presence == null) {
            log("No user in your roster");
            return;
        }
        if (presence.getType() == QBPresence.Type.online) {
            log("User " + userID + " is online");
        } else {
            log("User " + userID + " is offline");
        }

Solution

  • Updated the Quick Blox SDK used with below code in gradle file and it is Solved:

    dependencies {
       compile("com.quickblox:quickblox-android-sdk-chat:2.6.1")
    }