Added Android code
[wl-app.git] / Android / folioreader / src / main / java / com / folioreader / ui / base / HtmlTask.java
1 package com.folioreader.ui.base;
2
3 import android.os.AsyncTask;
4 import android.util.Log;
5
6 import com.folioreader.util.AppUtil;
7
8 import java.io.BufferedReader;
9 import java.io.IOException;
10 import java.io.InputStream;
11 import java.io.InputStreamReader;
12 import java.net.URL;
13 import java.net.URLConnection;
14
15 /**
16  * Background async task which downloads the html content of a web page
17  * from server
18  *
19  * @author by gautam on 12/6/17.
20  */
21
22 public class HtmlTask extends AsyncTask<String, Void, String> {
23
24     private static final String TAG = "HtmlTask";
25
26     private HtmlTaskCallback callback;
27
28     public HtmlTask(HtmlTaskCallback callback) {
29         this.callback = callback;
30     }
31
32     @Override
33     protected String doInBackground(String... urls) {
34         String strUrl = urls[0];
35         try {
36             URL url = new URL(strUrl);
37             URLConnection urlConnection = url.openConnection();
38             InputStream inputStream = urlConnection.getInputStream();
39             BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, AppUtil.charsetNameForURLConnection(urlConnection)));
40             StringBuilder stringBuilder = new StringBuilder();
41             String line;
42             while ((line = bufferedReader.readLine()) != null) {
43                 stringBuilder.append(line);
44             }
45             return stringBuilder.toString();
46         } catch (IOException e) {
47             Log.e(TAG, "HtmlTask failed", e);
48         }
49         return null;
50     }
51
52     @Override
53     protected void onPostExecute(String htmlString) {
54         if (htmlString != null) {
55             callback.onReceiveHtml(htmlString);
56         } else {
57             callback.onError();
58         }
59         cancel(true);
60     }
61 }