3

I'm new to quickblox, I have checked some official tutorials, and I've been able to create and connect to my application.

Now the problem I'm having is, that in my quickblox account, I only have the option to make "rooms", something similar to irc I think?, but that is not my idea.

I need each user to have his own list of contacts, similar to Facebook chat/ Whatsapp / telegram etc.

So I really don't figure out how to do this, since in all examples I have read they connect to a room.

How should I implement this?

Thanks

Racil Hilan
  • 24,690
  • 13
  • 50
  • 55
  • 1
    Hi. You can look at https://github.com/QuickBlox/quickblox-android-sdk/blob/master/snippets/src/com/quickblox/snippets/modules/SnippetsChat.java and other snippets module. To create contact list you should use Roster. You can add contact via roster chat. Just login in chat, get roster and send request to subscribe user via roster. – vfite Mar 17 '14 at 14:02

1 Answers1

1

You can do it with CustomObjects module for example.

Let's start with Android CustomObjects example http://quickblox.com/developers/SimpleSample-customObjects-android

1) Create class with name FriendsList with one field - friendsIDs (array of int) - this guide shows how to create class http://quickblox.com/developers/SimpleSample-customObjects-android#Add_Custom_Data_structure_to_your_application

2) When UserA adds UserB to friends - put UserB id to friendsIDs field.

QBCustomObject co = new QBCustomObject();
co.setClassName("FriendsList");
HashMap<String, Object> fields = new HashMap<String, Object>();
fields.put("push[friendsIDs][]", "788"); // 788 id UserB id
co.setFields(fields);
co.setCustomObjectId("502f7c4036c9ae2163000002");

QBCustomObjects.updateObject(co, new QBCallbackImpl() {
    @Override
    public void onComplete(Result result) {
        if (result.isSuccess()) {
            QBCustomObjectResult updateResult = (QBCustomObjectResult) result;
            QBCustomObject qbCustomObject = updateResult.getCustomObject();
            Log.d("Updated friends list: ",qbCustomObject.toString());
        } else {
            Log.e("Errors",result.getErrors().toString());
        }
    }
});

3) To request friends list:

QBCustomObjectRequestBuilder requestBuilder = new QBCustomObjectRequestBuilder();
requestBuilder.eq("user_id", "222"); // 222 is your user id

QBCustomObjects.getObjects("Movie", requestBuilder, new QBCallbackImpl() {
    @Override
    public void onComplete(Result result) {
        if (result.isSuccess()) {
             QBCustomObjectLimitedResult coresult = (QBCustomObjectLimitedResult) result;
             ArrayList<QBCustomObject> co = coresult.getCustomObjects();
             Log.d("friends list: ", co.toString());
         } else {
             Log.e("Errors",result.getErrors().toString());
         }
     }
});
Rubycon
  • 18,156
  • 10
  • 49
  • 70