package com.buddycloud.model; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONObject; import android.content.Context; import com.buddycloud.http.BuddycloudHTTPHelper; import com.buddycloud.preferences.Preferences; public class RecommendedChannelsModel extends AbstractModel<JSONArray, JSONArray, String> { private static final String ENDPOINT = "/recommendations"; private static final int MAX = 20; private static RecommendedChannelsModel instance; private RecommendedChannelsModel() {} public static RecommendedChannelsModel getInstance() { if (instance == null) { instance = new RecommendedChannelsModel(); } return instance; } public void getFromServer(final Context context, final ModelCallback<JSONArray> callback, String... p) { BuddycloudHTTPHelper.getObject(url(context), context, new ModelCallback<JSONObject>() { @Override public void success(JSONObject response) { List<String> channels = new ArrayList<String>(); JSONArray items = response.optJSONArray("items"); for (int i = 0; i < items.length(); i++) { JSONObject item = items.optJSONObject(i); channels.add(item.optString("jid")); } callback.success(new JSONArray(channels)); } @Override public void error(Throwable throwable) { callback.error(throwable); } }); } private static String url(Context context) { String apiAddress = Preferences.getPreference(context, Preferences.API_ADDRESS); String myJid = Preferences.getPreference(context, Preferences.MY_CHANNEL_JID); return apiAddress + ENDPOINT + "?user=" + myJid + "&max=" + MAX; } @Override public void save(Context context, JSONArray object, ModelCallback<JSONArray> callback, String... p) { // TODO Auto-generated method stub } @Override public JSONArray getFromCache(Context context, String... p) { // TODO Auto-generated method stub return null; } @Override public void fill(Context context, ModelCallback<Void> callback, String... p) { // TODO Auto-generated method stub } @Override public void delete(Context context, ModelCallback<Void> callback, String... p) { // TODO Auto-generated method stub } }