package dk.dr.radio.akt_v3;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListView;
import com.androidquery.AQuery;
import com.androidquery.callback.AjaxCallback;
import com.androidquery.callback.AjaxStatus;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import dk.dr.radio.R;
import dk.dr.radio.diverse.App;
import dk.dr.radio.diverse.Log;
public class ListeFrag extends BasisFragment implements AdapterView.OnItemClickListener {
public static String P_url = "url";
private ListView listView;
private ArrayList<JSONObject> liste = new ArrayList<JSONObject>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
setContentView(R.layout.v3_liste_frag, inflater, container);
setRetainInstance(true);
//String url = "http://www.dr.dk/mu/Bundle?BundleType=%22Channel%22&DrChannel=true&ChannelType=%22RADIO%22&limit=100";
String url = getArguments().getString(P_url);
App.kortToast(url);
listView = aq.id(R.id.listView).adapter(adapter).itemClicked(this).getListView();
listView.setEmptyView(aq.id(R.id.tom).getView());
aq.ajax(url, String.class, new AjaxCallback<String>() {
@Override
public void callback(String url, String json, AjaxStatus status) {
if (json != null) try {
//successful ajax call, show status code and json content
App.langToast(status.getCode() + ": OK");
opdaterListe(new JSONArray(json));
} catch (Exception e) {
Log.rapporterFejl(e);
}
else {
App.langToast("Error:" + status.getCode());
}
}
});
return rod;
}
int n;
private void opdaterListe(JSONArray json) {
App.kortToast("opdaterListe " + n++);
try {
Log.d(json.toString(2));
liste = new ArrayList<JSONObject>();
JSONArray jliste = json;//.optJSONArray("Data");
// Log.d(jliste.toString(2));
for (int n = 0; n < jliste.length(); n++) {
JSONObject o = jliste.getJSONObject(n);
liste.add(o);
}
} catch (Exception e1) {
Log.rapporterFejl(e1);
}
adapter.notifyDataSetChanged();
}
private BaseAdapter adapter = new MinBaseAdapter() {
@Override
public int getCount() {
return liste.size();
}
@Override
public View getView(int position, View v, ViewGroup parent) {
if (v == null) v = getLayoutInflater(null).inflate(R.layout.v3_liste_celle, parent, false);
AQuery a = new AQuery(v);
JSONObject d = liste.get(position);
a.id(R.id.slug).text(d.optString(DrJsonNavne.Slug.name()));
a.id(R.id.serieslug).text(d.optString(DrJsonNavne.SeriesSlug.name()));
a.id(R.id.titel).text(d.optString(DrJsonNavne.Title.name()));
a.id(R.id.beskrivelse).text(d.optString(DrJsonNavne.Description.name()));
return v;
}
};
@Override
public void onItemClick(AdapterView<?> listView, View view, int position, long id) {
final int start = listView.getFirstVisiblePosition();
final int index = position - start;
final View childView = listView.getChildAt(index);
if (childView != null) {
listView.showContextMenuForChild(childView);
}
}
}