package com.quickblox.sample.chat.utils.qb; import android.util.SparseArray; import com.quickblox.users.model.QBUser; import java.util.ArrayList; import java.util.List; /** * Basically in your app you should store users in database * And load users to memory on demand * We're using runtime SpaceArray holder just to simplify app logic */ public class QbUsersHolder { private static QbUsersHolder instance; private SparseArray<QBUser> qbUserSparseArray; public static synchronized QbUsersHolder getInstance() { if (instance == null) { instance = new QbUsersHolder(); } return instance; } private QbUsersHolder() { qbUserSparseArray = new SparseArray<>(); } public void putUsers(List<QBUser> users) { for (QBUser user : users) { putUser(user); } } public void putUser(QBUser user) { qbUserSparseArray.put(user.getId(), user); } public QBUser getUserById(int id) { return qbUserSparseArray.get(id); } public List<QBUser> getUsersByIds(List<Integer> ids) { List<QBUser> users = new ArrayList<>(); for (Integer id : ids) { QBUser user = getUserById(id); if (user != null) { users.add(user); } } return users; } }