Advertisement
Guest User

Untitled

a guest
Apr 17th, 2014
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.35 KB | None | 0 0
  1. package edu.iastate.its.webdev.training.photostream;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.InputStreamReader;
  6. import java.io.Reader;
  7. import java.io.StringReader;
  8. import java.io.UnsupportedEncodingException;
  9.  
  10. import org.apache.http.HttpResponse;
  11. import org.apache.http.client.ClientProtocolException;
  12. import org.apache.http.client.methods.HttpGet;
  13. import org.apache.http.impl.client.DefaultHttpClient;
  14. import org.json.JSONArray;
  15. import org.json.JSONException;
  16. import org.json.JSONObject;
  17.  
  18. import android.os.AsyncTask;
  19. import android.util.JsonReader;
  20.  
  21. public class StringAsync extends AsyncTask<String, Integer, String>
  22. {
  23.  
  24.  
  25. @Override
  26. protected String doInBackground(String...urls)
  27. {
  28.  
  29. InputStream content = null;
  30. DefaultHttpClient temp = new DefaultHttpClient();
  31.  
  32. HttpGet temp2 = new HttpGet(urls[0]);
  33.  
  34. try {
  35. HttpResponse temp3 = temp.execute(temp2);
  36. content = temp3.getEntity().getContent();
  37. } catch (ClientProtocolException e) {
  38. // TODO Auto-generated catch block
  39. e.printStackTrace();
  40. } catch (IOException e) {
  41. // TODO Auto-generated catch block
  42. e.printStackTrace();
  43. }
  44.  
  45. Reader reader = null;
  46.  
  47. try {
  48. reader = new InputStreamReader(content, "UTF-8");
  49. } catch (UnsupportedEncodingException e) {
  50. // TODO Auto-generated catch block
  51. e.printStackTrace();
  52. }
  53.  
  54.  
  55. char[] buffer = new char[Integer.MAX_VALUE/200];
  56. try {
  57. reader.read(buffer);
  58. } catch (IOException e) {
  59. // TODO Auto-generated catch block
  60. e.printStackTrace();
  61. }
  62. return new String(buffer);
  63. }
  64.  
  65.  
  66. @Override
  67. protected void onPostExecute(String result)
  68. {
  69. if(result == null) throw new IllegalStateException("No result");
  70. if(result.substring(0, 3).equals("null")) result = result.substring(4, result.length()-1);
  71.  
  72. super.onPostExecute(result);
  73.  
  74.  
  75.  
  76. JsonReader temp = new JsonReader(new StringReader(result));
  77. try {
  78. temp.beginArray();
  79. } catch (IOException e) {
  80. // TODO Auto-generated catch block
  81. e.printStackTrace();
  82. }
  83.  
  84.  
  85. temp.setLenient(true);
  86. try {
  87. while(temp.hasNext())
  88. {
  89. PhotoItem tempItem = new PhotoItem("null", 0, 0, "null", "null", "null");
  90. temp.beginObject();
  91. temp.skipValue();
  92.  
  93. tempItem.setId(temp.nextInt());
  94. temp.skipValue();
  95.  
  96. tempItem.setName(temp.nextString());
  97. temp.skipValue();
  98.  
  99. tempItem.setDescription(temp.nextString());
  100. temp.skipValue();
  101.  
  102. temp.skipValue();
  103. temp.skipValue();
  104.  
  105. temp.skipValue();
  106. temp.skipValue();
  107.  
  108. temp.skipValue();
  109. temp.skipValue();
  110.  
  111. tempItem.setThumbImageURL(temp.nextString());
  112. temp.skipValue();
  113.  
  114. temp.skipValue();
  115. temp.skipValue();
  116.  
  117. tempItem.setFullImageURL(temp.nextString());
  118. temp.skipValue();
  119.  
  120. tempItem.setViewsNumber(temp.nextInt());
  121. temp.skipValue();
  122.  
  123. temp.skipValue();
  124. temp.skipValue();
  125.  
  126. temp.skipValue();
  127. //temp.skipValue();
  128.  
  129. temp.endObject();
  130. MainActivity.photos.add(tempItem);
  131. }
  132. //temp.endArray();
  133. temp.close();
  134. } catch (IOException e) {
  135. // TODO Auto-generated catch block
  136. e.printStackTrace();
  137. }
  138. }
  139. }
  140.  
  141. package edu.iastate.its.webdev.training.photostream;
  142.  
  143. import java.io.IOException;
  144. import java.io.InputStream;
  145. import java.net.HttpURLConnection;
  146. import java.util.ArrayList;
  147.  
  148. import android.graphics.Bitmap;
  149. import android.graphics.BitmapFactory;
  150. import android.os.AsyncTask;
  151.  
  152. public class PhotoAsync extends AsyncTask<ArrayList<PhotoItem>, Integer, Bitmap>
  153. {
  154.  
  155. private ArrayList<PhotoItem> temp = null;
  156. @Override
  157. protected synchronized Bitmap doInBackground(ArrayList<PhotoItem>...idArg)
  158. {
  159.  
  160.  
  161.  
  162. temp = idArg[0];
  163. String tempURL = "null";
  164.  
  165. for(PhotoItem p : temp)
  166. {
  167. p.setThumbImageBM(getBitmapFromURL(p.getThumbURL()));
  168. p.setFullImageBM(getBitmapFromURL(p.getFullURL()));
  169. }
  170.  
  171. if(temp.size() > 0)
  172. return temp.get(0).getLargeImage();
  173. else
  174. return null;
  175. }
  176.  
  177. @Override
  178. protected synchronized void onPostExecute(Bitmap result)
  179. {
  180.  
  181. }
  182.  
  183. private Bitmap getBitmapFromURL(String src)
  184. {
  185. try {
  186. java.net.URL url = new java.net.URL(src);
  187. HttpURLConnection connection = (HttpURLConnection) url
  188. .openConnection();
  189. connection.setDoInput(true);
  190. connection.connect();
  191. InputStream input = connection.getInputStream();
  192.  
  193. BitmapFactory.Options option = new BitmapFactory.Options();
  194. option.inSampleSize = 8;
  195.  
  196. Bitmap myBitmap = BitmapFactory.decodeStream(input);
  197. return myBitmap;
  198. } catch (IOException e) {
  199. e.printStackTrace();
  200. return null;
  201. }
  202. }
  203. }
  204.  
  205. 04-15 17:52:04.539: W/dalvikvm(23235): threadid=14: thread exiting with uncaught exception (group=0x417c0da0)
  206. 04-15 17:52:04.539: E/AndroidRuntime(23235): FATAL EXCEPTION: AsyncTask #4
  207. 04-15 17:52:04.539: E/AndroidRuntime(23235): Process: edu.iastate.its.webdev.training.photostream, PID: 23235
  208. 04-15 17:52:04.539: E/AndroidRuntime(23235): java.lang.RuntimeException: An error occured while executing doInBackground()
  209. 04-15 17:52:04.539: E/AndroidRuntime(23235): at android.os.AsyncTask$3.done(AsyncTask.java:300)
  210. 04-15 17:52:04.539: E/AndroidRuntime(23235): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
  211. 04-15 17:52:04.539: E/AndroidRuntime(23235): at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
  212. 04-15 17:52:04.539: E/AndroidRuntime(23235): at java.util.concurrent.FutureTask.run(FutureTask.java:242)
  213. 04-15 17:52:04.539: E/AndroidRuntime(23235): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
  214. 04-15 17:52:04.539: E/AndroidRuntime(23235): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
  215. 04-15 17:52:04.539: E/AndroidRuntime(23235): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
  216. 04-15 17:52:04.539: E/AndroidRuntime(23235): at java.lang.Thread.run(Thread.java:841)
  217. 04-15 17:52:04.539: E/AndroidRuntime(23235): Caused by: java.util.ConcurrentModificationException
  218. 04-15 17:52:04.539: E/AndroidRuntime(23235): at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573)
  219. 04-15 17:52:04.539: E/AndroidRuntime(23235): at edu.iastate.its.webdev.training.photostream.PhotoAsync.doInBackground(PhotoAsync.java:25)
  220. 04-15 17:52:04.539: E/AndroidRuntime(23235): at edu.iastate.its.webdev.training.photostream.PhotoAsync.doInBackground(PhotoAsync.java:1)
  221. 04-15 17:52:04.539: E/AndroidRuntime(23235): at android.os.AsyncTask$2.call(AsyncTask.java:288)
  222. 04-15 17:52:04.539: E/AndroidRuntime(23235): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
  223. 04-15 17:52:04.539: E/AndroidRuntime(23235): ... 4 more
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement