package net.reichholf.dreamdroid.loader; import android.content.Context; import android.os.Bundle; import net.reichholf.dreamdroid.R; import net.reichholf.dreamdroid.helpers.ExtendedHashMap; import net.reichholf.dreamdroid.helpers.NameValuePair; import net.reichholf.dreamdroid.helpers.enigma2.Service; import net.reichholf.dreamdroid.helpers.enigma2.requesthandler.ServiceListRequestHandler; import java.util.ArrayList; public class AsyncFavListLoader extends AsyncListLoader { public static final String REF_UP = "__root__"; public static final String REF_FAVS = "__root__"; public AsyncFavListLoader(Context context, Bundle params) { super(context, new ServiceListRequestHandler(), false, params); } @Override public LoaderResult<ArrayList<ExtendedHashMap>> loadInBackground() { mList = new ArrayList<>(); LoaderResult<ArrayList<ExtendedHashMap>> result = new LoaderResult<>(); String ref = mParams.get(0).value(); if(ref.equals(REF_FAVS)) { ref = getContext().getResources().getStringArray(R.array.servicerefs)[0]; //Favorites TV; mList.addAll(loadBouquet(ref)); ref = getContext().getResources().getStringArray(R.array.servicerefs)[3]; //Favorites Radio mList.addAll(loadBouquet(ref)); } else { ExtendedHashMap up = new ExtendedHashMap(); up.put(Service.KEY_REFERENCE, REF_UP); up.put(Service.KEY_NAME, ".."); mList.add(up); mList.addAll(loadBouquet( ref )); } result.set(mList); return result; } public ArrayList<ExtendedHashMap> loadBouquet(String ref){ ArrayList<NameValuePair> params = new ArrayList<>(); params.add(new NameValuePair("sRef", ref)); ArrayList<ExtendedHashMap> list = new ArrayList<>(); String xml = mListRequestHandler.getList(mShc, params); if (xml == null) return list; mListRequestHandler.parseList(xml, list); return list; } }