package org.kvj.bravo7.widget;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.kvj.bravo7.ApplicationContext;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class WidgetList extends ListFragment {
private static final String TAG = "Widget list";
ApplicationContext app = null;
public WidgetList(ApplicationContext app) {
this.app = app;
}
public interface ClickListener {
public void click(WidgetInfo info);
}
public class WidgetInfo {
public int id;
public String type;
@Override
public String toString() {
return app.getWidgetConfig(id).getString("name", "Widget " + id);
}
}
ClickListener clickListener = null;
List<WidgetInfo> list = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
reloadData();
}
public void reloadData() {
Map<Integer, String> data = app.getWidgetConfigs(null);
// Log.i(TAG, "Widgets: " + data.size());
list = new ArrayList<WidgetList.WidgetInfo>();
for (Integer id : data.keySet()) {
WidgetInfo info = new WidgetInfo();
info.id = id;
info.type = data.get(id);
list.add(info);
}
setListAdapter(new ArrayAdapter<WidgetInfo>(getActivity(),
android.R.layout.simple_list_item_1, list));
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
reloadData();
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
if (null != clickListener) {
clickListener.click(list.get(position));
}
}
public void setClickListener(ClickListener clickListener) {
this.clickListener = clickListener;
}
}