//package com.team5.aLife.Client;
//
//import java.util.ArrayList;
//import android.app.ListActivity;
//import android.app.ProgressDialog;
//import android.content.Context;
//import android.content.Intent;
//import android.os.Bundle;
//import android.util.Log;
//import android.view.ContextMenu;
//import android.view.LayoutInflater;
//import android.view.Menu;
//import android.view.MenuInflater;
//import android.view.MenuItem;
//import android.view.View;
//import android.view.ViewGroup;
//import android.view.View.OnClickListener;
//import android.view.View.OnLongClickListener;
//import android.widget.ArrayAdapter;
//import android.widget.ImageView;
//import android.widget.ListView;
//import android.widget.TextView;
//
//public class customListView extends ListActivity {
//	
//	// TODO: See http://stackoverflow.com/questions/3044049/android-listview-onclick-event-in-the-tabs for the FLIPPER???
//
//    private static final String tag = "customListView";
//    
//    private ProgressDialog m_ProgressDialog = null; 	// progress dialog
//    private ArrayList<Device> deviceList = null;		// holds our device list
//    private DeviceAdapter dAdapter;						// custom class that extends ArrayAdapter
//    private ListView listView;							// Used for the onclickListener?
//
//    /** Called when the activity is first created. */
//    public void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.devicelist);
//        
//        deviceList = new ArrayList<Device>();			// create a new array of devices
//        // Create the row adapter for the ListView        
//        this.dAdapter = new DeviceAdapter(this, R.layout.listviewrow, deviceList);
//        // Set the ROW adapter for the ListView
//        setListAdapter(this.dAdapter);
//        
//      
//        // Bind the Device selection
// //       setOnItemSelectedListener(onListItemClick());
//        // Get the device list from the server in JSON format
// 
//        refreshDevices();
//                
//    } // end onCreate
//    
//
//
//	protected void onListItemClick(ListView l, View v, int position, long id){
//    	
//    }
//
//    
//    private void refreshDevices(){
//    	// Since this is a network action show the progress dialog
//        m_ProgressDialog = ProgressDialog.show(customListView.this,    
//                "Please wait...", "Retrieving data ...", true);
//        
//        // Create the request object and send the request
//        GetAllDevicesRequest gr = new GetAllDevicesRequest();
//        String s = socketDispatch.instance().sendReceive(gr);
//        Log.i(tag +":refreshDevices", "Received: " + s); 
//        
//        // Turn off the progess dialog
//        m_ProgressDialog.dismiss();
//        
//        // Strip off the 102& header
//        s = s.substring(4, s.length());
//        
//        // reset the device list to empty
//        deviceList.clear();
//        
//        // If there was a response then turn it into
//        // an ArrayList<Device> for the ListView
//        if (s != null){
//        	deviceList = parseResponse.instance().toArrayList(s);
//            Log.i(tag + ":refreshDevices", "deviceList has " + deviceList.size() + " devices");
//            // Let the ListView know there is new data to display
//            runOnUiThread(updateListView);
//        }
//
//    }
//    
//    // Handle menu selections
//    @Override
//    public boolean onOptionsItemSelected(MenuItem item){
// 	   // Handle menu item selection
// 	   switch (item.getItemId()){
// 	   
// 	   case R.id.deviceList_Menu_Add:
// 		   Log.i("customListView:Options", "Menu:Add");	   
// 		   return true;
// 		   
// 	   case R.id.deviceList_Menu_Refresh:
// 		   Log.i("customListView:Options", "Menu:Refresh");
// 		   refreshDevices();
// 		   runOnUiThread(updateListView);
// 		   return true;
// 	   default: return super.onOptionsItemSelected(item);
// 	   }
//    } 
//    
//    
//    // Populate the pop-up menu
//    @Override
//    public boolean onCreateOptionsMenu(Menu menu){
// 	   MenuInflater inflater = getMenuInflater();
// 	   inflater.inflate(R.menu.devicelist, menu);
// 	   return true;
//    }
//    
////    public void showList(){
////    	Intent myIntent = new Intent();
////    	myIntent.setClassName("com.team5.aLife.Client", "customListView.class");
////    	startActivity(myIntent);
////    }
//    
//    private Runnable updateListView = new Runnable() {
//
//        @Override
//        public void run() {
//            if(deviceList != null && deviceList.size() > 0){
//                dAdapter.notifyDataSetChanged();
//                // Clear all items so they don't start stacking up
//                dAdapter.clear();
//                for(int i=0;i<deviceList.size();i++)
//                	dAdapter.add(deviceList.get(i));
//            }
//            m_ProgressDialog.dismiss();
//            dAdapter.notifyDataSetChanged();
//        }
//    };
//    
//    private OnClickListener mListener = new OnClickListener(){
//		@Override
//		public void onClick(View v) {
//			Log.i(tag + "OnClickListener", "Click ID:" + v.getId());	
//		}
//    };
//    
//    private OnLongClickListener mLongClickListener = new OnLongClickListener(){
//		@Override
//		public boolean onLongClick(View v) {
//			Log.i(tag + "OnLongClickListener", "Long Click!");
//			return false;
//		}
//    };
//    
//    
//    private void onPopulateContextMenu(ContextMenu cMenu, View v, Object o){
//    	
//    }
//    
//           
//    class DeviceAdapter extends ArrayAdapter<Device> {
//
//        private ArrayList<Device> items;
//
//        public DeviceAdapter(Context context, int textViewResourceId, ArrayList<Device> items) {
//        		// Constructor for super class ArrayAdapter
//                super(context, textViewResourceId, items);
//                this.items = items;
//        }
//        @Override
//        public View getView(int position, View convertView, ViewGroup parent) {
//                View v = convertView;
//                if (v == null) {
//                    LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//                    v = vi.inflate(R.layout.listviewrow, null);
//                }
//                v.setOnClickListener(mListener);
//                // v.setLongClickable(true);
//                // v.setOnLongClickListener(mLongClickListener);
//                
//                Device o = items.get(position);
//                v.setId(o.getDeviceID());
//                if (o != null) {
//                        TextView tt = (TextView) v.findViewById(R.id.toptext);
//                        TextView bt = (TextView) v.findViewById(R.id.bottomtext);
//                        ImageView icon = (ImageView) v.findViewById(R.id.icon);
//                        if (tt != null) {
//                              tt.setText("Name: "+o.getDeviceName());                            }
//                        if(bt != null){
//                              bt.setText("Status: "+ o.getDeviceStatus());
//                        }
//                        if (icon != null) {
//                        	icon.setImageResource(o.getDeviceIcon());
//                        }
//                }
//                return v;
//        }
//        
//
//    } // End Device Adapter
//} // end customListView
