- progress dialog keeps on displaying
- package com.Refinedymapps;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.StringReader;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
- import org.apache.http.HttpEntity;
- import org.apache.http.HttpResponse;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.methods.HttpGet;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.w3c.dom.Document;
- import org.w3c.dom.Element;
- import org.w3c.dom.Node;
- import org.w3c.dom.NodeList;
- import org.xml.sax.InputSource;
- import android.app.Activity;
- import android.app.ProgressDialog;
- import android.content.Intent;
- import android.location.Geocoder;
- import android.location.LocationManager;
- import android.os.AsyncTask;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.ViewGroup;
- import android.widget.AdapterView;
- import android.widget.AdapterView.OnItemClickListener;
- import android.widget.AdapterView.OnItemSelectedListener;
- import android.widget.ArrayAdapter;
- import android.widget.ImageButton;
- import android.widget.ListView;
- import android.widget.SimpleAdapter;
- import android.widget.Spinner;
- import android.widget.TextView;
- import android.widget.Toast;
- public class Restaurantlist extends Activity implements OnClickListener, OnItemSelectedListener {
- ProgressDialog pg;
- private ImageButton imgbtn;
- private ListView restaurant;
- private TextView city;
- String sendid,flagdopost="",linkurl;
- LocationManager locationManger;
- Geocoder gc;
- Bundle bundle;
- private int j=0;
- private Spinner cuisine,area;
- static ArrayList<HashMap<String,String>> customlist= new ArrayList<HashMap<String,String>>();
- private String asynctaskflag="",cuisineval,areaval;
- List<String> tempareanamelist,tempcuisinenamelist,areanamelist,cuisinelist,cuisineidlist,restaurantnames,areanames,restaurantidlist,originalcuisinelist,originalarealist;
- String str,coun,stat,cid,sid,cityid,cityname;
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.restaurantlisting);
- linkurl=getResources().getString(R.string.linkurl);
- city=(TextView)findViewById(R.id.textviewcity);
- cuisine=(Spinner)findViewById(R.id.spncuisine);
- area=(Spinner)findViewById(R.id.spnarea);
- restaurant=(ListView)findViewById(R.id.lstrestaurant);
- imgbtn=(ImageButton)findViewById(R.id.imageButton1);
- bundle = this.getIntent().getExtras();
- imgbtn.setImageResource(R.drawable.searchloc);
- asynctaskflag="init";
- new Thetask().execute(asynctaskflag,null,null);
- imgbtn.setOnClickListener(new OnClickListener(){
- public void onClick(View arg0) {
- Intent newlocintent=new Intent(Restaurantlist.this,Restaurantlistdisplay.class);
- startActivity(newlocintent);
- }
- });
- restaurant.setOnItemClickListener(new OnItemClickListener(){
- public void onItemClick(AdapterView<?> arg0, View arg1,
- int arg2, long arg3) {
- Toast.makeText(getBaseContext(), "resname"+restaurantnames.get(arg2)+"areaname"+areanames.get(arg2), 10).show();
- String[] getid={"itemclick",restaurantnames.get(arg2),areanames.get(arg2)};
- new Thetask().execute(getid);
- }
- });
- }
- public void populateReslist()
- {
- Log.i("inside populatereslist","value of j is:"+j);
- for(int i=0;i<restaurantnames.size();i++)
- {
- HashMap<String,String> temp = new HashMap<String,String>();
- temp.put("Restaurant Name",restaurantnames.get(i).toString());
- temp.put("Area Name", areanames.get(i).toString());
- customlist.add(temp);
- }
- }
- public List<String> getAreanames(String cityid)
- {
- String list = null;
- areanamelist=new ArrayList<String>();
- final HttpClient client=new DefaultHttpClient();
- final HttpGet req=new HttpGet(linkurl+"/ymaws/resources/restaurant/"+cityid+"/areas/");
- HttpResponse httpResponse;
- try {
- httpResponse=client.execute(req);
- HttpEntity entity = httpResponse.getEntity();
- Log.i("entity", entity.toString());
- if (entity != null)
- {
- InputStream instream = entity.getContent();
- BufferedReader reader = new BufferedReader(new InputStreamReader(instream));
- StringBuilder sb = new StringBuilder();
- String line = null;
- try
- {
- while ((line = reader.readLine()) != null)
- {
- sb.append(line + "n");
- }
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- finally
- {
- try
- {
- instream.close();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- }
- // Closing the input stream will trigger connection release
- list= sb.toString();
- Log.i("areaname xml is", list.toString());
- }
- }
- catch(Exception e)
- {
- }
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- factory.setNamespaceAware(true);
- try
- {
- DocumentBuilder builder = factory.newDocumentBuilder();
- Document dom = builder.parse(new InputSource(new StringReader(list)));
- Element root = dom.getDocumentElement();
- NodeList items = root.getElementsByTagName("Area");
- for (int i=0;i<items.getLength();i++)
- {
- Node item = items.item(i);
- NodeList properties = item.getChildNodes();
- for (int j=0;j<properties.getLength();j++)
- {
- Node property = properties.item(j);
- String name = property.getNodeName();
- if (name.equalsIgnoreCase("areaName"))
- {
- areanamelist.add(property.getFirstChild().getNodeValue());
- }
- else
- {
- }
- }
- }
- //Log.i("areaname list in getAreas method", areanamelist.toString());
- return areanamelist;
- }
- catch (Exception e)
- {
- throw new RuntimeException(e);
- }
- }
- public List<String> getCuisines(String cityid)
- {
- String list = null;
- cuisinelist=new ArrayList<String>();
- cuisineidlist=new ArrayList<String>();
- final HttpClient client=new DefaultHttpClient();
- final HttpGet req=new HttpGet(linkurl+"/ymaws/resources/restaurant/"+cityid+"/cuisines/");
- HttpResponse httpResponse;
- try {
- httpResponse=client.execute(req);
- HttpEntity entity = httpResponse.getEntity();
- Log.i("entity", entity.toString());
- if (entity != null)
- {
- InputStream instream = entity.getContent();
- BufferedReader reader = new BufferedReader(new InputStreamReader(instream));
- StringBuilder sb = new StringBuilder();
- String line = null;
- try
- {
- while ((line = reader.readLine()) != null)
- {
- sb.append(line + "n");
- }
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- finally
- {
- try
- {
- instream.close();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- }
- // Closing the input stream will trigger connection release
- list= sb.toString();
- Log.i("cuisinename xml is", list.toString());
- }
- }
- catch(Exception e)
- {
- }
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- factory.setNamespaceAware(true);
- try
- {
- DocumentBuilder builder = factory.newDocumentBuilder();
- Document dom = builder.parse(new InputSource(new StringReader(list)));
- Element root = dom.getDocumentElement();
- NodeList items = root.getElementsByTagName("Cuisine");
- for (int i=0;i<items.getLength();i++)
- {
- Node item = items.item(i);
- NodeList properties = item.getChildNodes();
- for (int j=0;j<properties.getLength();j++)
- {
- Node property = properties.item(j);
- String name = property.getNodeName();
- if (name.equalsIgnoreCase("cuisineName"))
- {
- cuisinelist.add(property.getFirstChild().getNodeValue());
- }
- else if(name.equalsIgnoreCase("cuisineId"))
- {
- cuisineidlist.add(property.getFirstChild().getNodeValue());
- }
- }
- }
- Log.i("getcuisine cuisinelist",cuisinelist.toString());
- return cuisinelist;
- }
- catch (Exception e)
- {
- throw new RuntimeException(e);
- }
- }
- public void firequery()
- {
- String url = null;
- if(cuisineval=="*" && areaval=="*")
- {
- url=linkurl+"/ymaws/resources/restaurant/"+cityid+"/restaurants";
- }
- else if(cuisineval!="*" && areaval=="*")
- {
- for(int i=0;i<originalcuisinelist.size();i++)
- {
- Log.i("cuisinelist original item is",""+originalcuisinelist.get(i));
- Log.i("cuisineidlist is",cuisineidlist.toString());
- if((cuisine.getSelectedItem().toString()).equalsIgnoreCase(originalcuisinelist.get(i).toString()))
- {
- Log.i("cuisineid selected is",""+cuisineidlist.get(i));
- url=linkurl+"/ymaws/resources/restaurant?cityid="+cityid+"&cuisineid="+cuisineidlist.get(i);
- }
- }
- }
- else if(cuisineval=="*" && areaval!="*")
- {
- url = linkurl+"/ymaws/resources/restaurant?cityid="+cityid+"&areanm="+area.getSelectedItem().toString();
- }
- else
- {
- for(int i=0;i<originalcuisinelist.size();i++)
- {
- if((cuisine.getSelectedItem().toString()).equalsIgnoreCase(originalcuisinelist.get(i).toString()))
- {
- url=linkurl+"/ymaws/resources/restaurant?cityid="+cityid+"&cuisineid="+cuisineidlist.get(i)+"&areanm="+area.getSelectedItem().toString();
- }
- }
- }
- getResult(url);
- }
- public void getResult(String url)
- {
- String list = null;
- restaurantnames=new ArrayList<String> ();
- areanames=new ArrayList<String>();
- restaurantidlist=new ArrayList<String>();
- final HttpClient client=new DefaultHttpClient();
- Log.i("url is","url:"+url.toString());
- final HttpGet req=new HttpGet(url.replaceAll(" ", "%20"));
- HttpResponse httpResponse;
- try {
- httpResponse=client.execute(req);
- HttpEntity entity = httpResponse.getEntity();
- Log.i("entity", entity.toString());
- if (entity != null)
- {
- InputStream instream = entity.getContent();
- BufferedReader reader = new BufferedReader(new InputStreamReader(instream));
- StringBuilder sb = new StringBuilder();
- String line = null;
- try
- {
- while ((line = reader.readLine()) != null)
- {
- sb.append(line + "n");
- }
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- finally
- {
- try
- {
- instream.close();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- }
- list= sb.toString();
- Log.i("list xml is", list.toString());
- }
- }
- catch(Exception e)
- {
- }
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- factory.setNamespaceAware(true);
- try
- {
- if(list!=null)
- {
- DocumentBuilder builder = factory.newDocumentBuilder();
- Document dom = builder.parse(new InputSource(new StringReader(list)));
- Element root = dom.getDocumentElement();
- NodeList items = root.getElementsByTagName("resLovData");
- for (int i=0;i<items.getLength();i++)
- {
- Node item = items.item(i);
- NodeList properties = item.getChildNodes();
- for (int j=0;j<properties.getLength();j++)
- {
- Node property = properties.item(j);
- String name = property.getNodeName();
- if (name.equalsIgnoreCase("locName"))
- {
- restaurantnames.add(property.getFirstChild().getNodeValue());
- }
- else if(name.equalsIgnoreCase("areaName"))
- {
- areanames.add(property.getFirstChild().getNodeValue());
- }
- else if(name.equalsIgnoreCase("locId"))
- {
- restaurantidlist.add(property.getFirstChild().getNodeValue());
- }
- }
- }
- }
- else
- {
- }
- }
- catch (Exception e)
- {
- throw new RuntimeException(e);
- }
- }
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- }
- public class Thetask extends AsyncTask<String, Void, Void>
- {
- String x,y;
- @Override
- public void onPreExecute()
- {
- pg =new ProgressDialog(Restaurantlist.this);
- pg.setMessage("fetching info....");
- pg.setIndeterminate(true);
- pg.setCancelable(true);
- Log.i("inside preexecute","in pre execute");
- pg.show();
- }
- public Void doInBackground(String... params)
- {
- if(params[0].equalsIgnoreCase("init"))
- {
- Log.i("inside doinbackground 1st",flagdopost);
- cid=bundle.getString("cid");
- sid=bundle.getString("sid");
- cityid=bundle.getString("cityid");
- cityname=bundle.getString("cityname");
- originalcuisinelist=new ArrayList<String>();
- originalcuisinelist=getCuisines(cityid);
- tempcuisinenamelist = getCuisines(cityid);
- tempcuisinenamelist.add(0,"All");
- originalarealist=new ArrayList<String>();
- originalarealist=getAreanames(cityid);
- tempareanamelist=getAreanames(cityid);
- tempareanamelist.add(0,"All");
- Log.i("area are",tempareanamelist.toString());
- flagdopost="init";
- Log.i("inside doinbackground 1st",flagdopost);
- }
- else if(params[0].equalsIgnoreCase(""))
- {
- flagdopost="";
- j++;
- if(j!=1)
- {
- firequery();
- flagdopost="itemselected";
- Log.i("inside doinbackground 2nd",flagdopost);
- }
- }
- else if(params[0].equalsIgnoreCase("itemclick"))
- {
- x=params[1];
- y=params[2];
- for(int i=0;i<restaurantidlist.size();i++)
- {
- if((params[1].toString()).equalsIgnoreCase(restaurantnames.get(i)))
- {
- sendid=restaurantidlist.get(i);
- }
- }
- Log.i("in do in backgroung idforbundle is", sendid);
- flagdopost="itemclicked";
- }
- return null;
- }
- public void onPostExecute(Void result)
- {
- if(flagdopost.equalsIgnoreCase("init"))
- {
- city.setText(cityname);
- ArrayAdapter<String> adaptercuisine=new ArrayAdapter<String>(Restaurantlist.this,android.R.layout.simple_spinner_item,tempcuisinenamelist);
- adaptercuisine.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- ArrayAdapter<String> adapterarea=new ArrayAdapter<String>(Restaurantlist.this,android.R.layout.simple_spinner_item,tempareanamelist);
- adapterarea.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- area.setAdapter(adapterarea);
- area.setSelection(0);
- cuisine.setAdapter(adaptercuisine);
- cuisine.setSelection(0);
- area.setOnItemSelectedListener(Restaurantlist.this);
- cuisine.setOnItemSelectedListener(Restaurantlist.this);
- }
- else if(flagdopost.equalsIgnoreCase("itemselected"))
- {
- customlist.clear();
- populateReslist();
- restaurant.invalidateViews();
- restaurant.setAdapter(new SimpleAdapter(Restaurantlist.this,customlist,R.layout.customlistrow,new String[] {"Restaurant Name","Area Name"},
- new int[] {R.id.tvresname,R.id.tvareaname})
- {
- @Override
- public View getView(int position, View convertView,ViewGroup parent)
- {
- View view =super.getView(position, convertView, parent);
- return view;
- }
- });
- }
- else if(flagdopost.equalsIgnoreCase("itemclicked"))
- {
- Bundle bundle=new Bundle();
- bundle.putString("locid",sendid);
- Toast.makeText(getBaseContext(), "locId in dopost new one"+sendid, 10).show();
- Intent resdetail = new Intent(Restaurantlist.this,Restaurantdetail.class);
- resdetail.putExtras(bundle);
- startActivity(resdetail);
- }
- pg.dismiss();
- }
- }
- public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
- long arg3)
- {
- switch(arg0.getId())
- {
- case R.id.spncuisine:
- asynctaskflag="";
- if(cuisine.getSelectedItem().toString()!="All")
- {
- cuisineval=cuisine.getSelectedItem().toString();
- }
- else
- {
- cuisineval="*";
- }
- new Thetask().execute(asynctaskflag,null,null);
- break;
- case R.id.spnarea:
- asynctaskflag="";
- if(area.getSelectedItem().toString()!="All")
- {
- areaval=area.getSelectedItem().toString();
- }
- else
- {
- areaval="*";
- }
- new Thetask().execute(asynctaskflag,null,null);
- break;
- }
- }
- public void onNothingSelected(AdapterView<?> arg0) {
- // TODO Auto-generated method stub
- }
- }
- public class Thetask extends AsyncTask<String, Void, Void>
- {
- ProgressDialog pg = null;
- String x,y;
- @Override
- public void onPreExecute()
- ...