Advertisement
Picko

SouthernAfricaCapitalClientActivity

Mar 20th, 2013
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.53 KB | None | 0 0
  1. package com.androidsmith.sacc;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.InputStreamReader;
  6. import java.io.Reader;
  7.  
  8. import org.apache.http.HttpEntity;
  9. import org.apache.http.HttpResponse;
  10. import org.apache.http.HttpStatus;
  11. import org.apache.http.client.methods.HttpGet;
  12. import org.apache.http.impl.client.DefaultHttpClient;
  13.  
  14. import com.androidsmith.sacc.model.Country;
  15. import com.google.gson.Gson;
  16.  
  17. import android.app.Activity;
  18. import android.app.ProgressDialog;
  19. import android.content.DialogInterface;
  20. import android.content.DialogInterface.OnCancelListener;
  21. import android.os.AsyncTask;
  22. import android.os.Bundle;
  23. import android.text.Html;
  24. import android.util.Log;
  25. import android.widget.TextView;
  26.  
  27. public class SouthernAfricaCapitalClientActivity extends Activity {
  28.  
  29.     TextView capitalTextView;
  30.     ProgressDialog progressDialog;
  31.    
  32.     /** Called when the activity is first created. */
  33.     @Override
  34.     public void onCreate(Bundle savedInstanceState) {
  35.         super.onCreate(savedInstanceState);    
  36.         setContentView(R.layout.main);
  37.         capitalTextView = (TextView) findViewById(R.id.capital_textview);
  38.        
  39.         this.retrieveCapitals();
  40.     }
  41.    
  42.     void retrieveCapitals() {
  43.        
  44.         progressDialog = ProgressDialog.show(this,
  45.                 "Please wait...", "Retrieving data...", true, true);
  46.  
  47.         CapitalsRetrieverAsyncTask task = new CapitalsRetrieverAsyncTask();
  48.         task.execute();
  49.         progressDialog.setOnCancelListener(new CancelListener(task));      
  50.     }
  51.    
  52.     private class CapitalsRetrieverAsyncTask extends AsyncTask<Void, Void, Void> {
  53.  
  54.         Response response;
  55.  
  56.         @Override
  57.         protected Void doInBackground(Void... params) {
  58.             String url = "http://192.168.1.3:8080/Dochadzka/jsp/Android/GSON.jsp";
  59.             HttpGet getRequest = new HttpGet(url);
  60.            
  61.             try {
  62.                 DefaultHttpClient httpClient = new DefaultHttpClient();
  63.                 HttpResponse getResponse = httpClient.execute(getRequest);
  64.                 final int statusCode = getResponse.getStatusLine().getStatusCode();
  65.                
  66.                 if (statusCode != HttpStatus.SC_OK) {
  67.                     Log.w(getClass().getSimpleName(), "Error " + statusCode + " for URL " + url);
  68.                     return null;
  69.                 }
  70.  
  71.                 HttpEntity getResponseEntity = getResponse.getEntity();
  72.                 InputStream httpResponseStream = getResponseEntity.getContent();
  73.                 Reader inputStreamReader = new InputStreamReader(httpResponseStream);
  74.                
  75.                 Gson gson = new Gson();
  76.                 this.response = gson.fromJson(inputStreamReader, Response.class);
  77.             }
  78.             catch (IOException e) {
  79.                 getRequest.abort();
  80.                 Log.w(getClass().getSimpleName(), "Error for URL " + url, e);
  81.             }
  82.  
  83.             return null;
  84.         }
  85.        
  86.         @Override
  87.         protected void onPostExecute(Void result) {
  88.             super.onPostExecute(result);
  89.            
  90.             StringBuilder builder = new StringBuilder();
  91.             for (Country country : this.response.data) {
  92.                
  93.                 builder.append(String.format("<br>Country: <b>%s</b><br>Capital: <b>%s</b><br><br>", country.getCountry(), country.getCapital()));
  94.  
  95.             }
  96.            
  97.             capitalTextView.setText(Html.fromHtml(builder.toString()));
  98.             progressDialog.cancel();
  99.         }
  100.        
  101.     }
  102.    
  103.     private class CancelListener implements OnCancelListener {
  104.  
  105.         AsyncTask<?, ?, ?> cancellableTask;
  106.        
  107.         public CancelListener(AsyncTask<?, ?, ?> task) {
  108.             cancellableTask = task;
  109.         }
  110.        
  111.         @Override
  112.         public void onCancel(DialogInterface dialog) {
  113.             cancellableTask.cancel(true);
  114.         }
  115.        
  116.     }
  117.    
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement