package net.homelinux.penecoptero.android.citybikes.app; import java.util.LinkedList; import java.util.List; import org.json.JSONArray; import org.json.JSONObject; import android.app.ListActivity; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class BikeNetworkActivity extends ListActivity { private ArrayAdapter <JSONObject> mAdapter; private NetworksDBAdapter nDBAdapter; private View lastSelected; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.network_list); nDBAdapter = new NetworksDBAdapter(this.getApplicationContext()); fillData(); } public void fillData(){ List <JSONObject> networks = new LinkedList <JSONObject>() ; SharedPreferences settings = getSharedPreferences(CityBikes.PREFERENCES_NAME,0); final int network_id = settings.getInt("network_id", -1); JSONArray json_networks = new JSONArray(); try{ json_networks = nDBAdapter.update(); }catch(Exception e){ try{ nDBAdapter.load(); json_networks = nDBAdapter.getStored(); }catch (Exception loadEx){ loadEx.printStackTrace(); } } try{ for (int i = 0 ; i < json_networks.length(); i++){ networks.add(json_networks.getJSONObject(i)); } }catch (Exception e){ //Log.i("CityBikes","Error parsing"); } mAdapter = new ArrayAdapter <JSONObject>(this, R.layout.network_list_item, networks) { LayoutInflater mInflater = getLayoutInflater(); @Override public View getView(int position, View convertView, ViewGroup parent) { View row; if (convertView == null){ row = mInflater.inflate(R.layout.network_list_item, null); } else{ row = convertView; } try{ JSONObject network = (JSONObject) getItem(position); TextView tvName = (TextView) row.findViewById(R.id.network_list_item_name); tvName.setText(network.getString("name")); row.setId(network.getInt("id")); if (network_id!=-1){ if (network.getInt("id")==network_id){ //row.setBackgroundResource(R.drawable.green_gradient); lastSelected = row; } } }catch (Exception e){ //Log.i("CityBikes",e.getLocalizedMessage()); } return row; } }; this.setListAdapter(mAdapter); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); //Log.i("CityBikes",Integer.toString(v.getId())); try{ nDBAdapter.setManualNetwork(v.getId()); lastSelected = v; String netname = nDBAdapter.getStored().getJSONObject(v.getId()).getString("name"); CityBikes.showCustomToast(this, this, "Network Selected\n\n"+netname, Toast.LENGTH_SHORT); finish(); }catch (Exception e){ e.printStackTrace(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub return super.onCreateOptionsMenu(menu); } @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { // TODO Auto-generated method stub return super.onMenuItemSelected(featureId, item); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); } @Override protected void onSaveInstanceState(Bundle outState) { // TODO Auto-generated method stub super.onSaveInstanceState(outState); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); } }