Grundaufbau der App
[DHBWCampusApp.git] / app / src / main / java / de / dhbwloe / campusapp / search / StuvSearchHelper.java
1 package de.dhbwloe.campusapp.search;
2
3 import android.util.Xml;
4
5 import com.loopj.android.http.AsyncHttpClient;
6 import com.loopj.android.http.AsyncHttpResponseHandler;
7
8 import org.jsoup.nodes.Document;
9
10 import java.io.ByteArrayInputStream;
11 import java.io.UnsupportedEncodingException;
12 import java.net.URLEncoder;
13 import java.util.ArrayList;
14 import java.util.List;
15
16 import de.dhbwloe.campusapp.fragments.AppSearchListItem;
17 import de.dhbwloe.campusapp.network.XmlEntry;
18 import de.dhbwloe.campusapp.network.XmlRequestHelper;
19
20 /**
21  * Created by pk910 on 25.01.2016.
22  */
23 public class StuvSearchHelper extends SearchHelper {
24
25     public StuvSearchHelper() {
26         super(false);
27
28     }
29
30     @Override
31     protected void processWebRequest(AsyncHttpResponseHandler handler, String keywords) {
32         AsyncHttpClient client = new AsyncHttpClient();
33         String url = null;
34         try {
35             url = "http://stuv-loerrach.de/feed/?s="+ URLEncoder.encode(keywords, "UTF-8");
36         } catch (UnsupportedEncodingException e) {
37         }
38         client.get(url, null, handler);
39     }
40
41     @Override
42     protected List<AppSearchListItem> onHtmlDocumentReceived(Document document) {
43         //unused in here
44         return null;
45     }
46
47     @Override
48     protected List<AppSearchListItem> onPlainTextReceived(byte[] data) {
49         ByteArrayInputStream inputStream = new ByteArrayInputStream(data);
50         List<XmlEntry> entries = XmlRequestHelper.parseXml(inputStream, "channel", "item");
51         ArrayList<AppSearchListItem> results = new ArrayList<>();
52
53         for(XmlEntry entry : entries) {
54             XmlEntry element;
55
56             SearchTarget target = new SearchTarget();
57             target.setInAppTarget(true);
58             target.setTargetUrl("WebBrowser");
59
60             element = XmlEntry.FindXmlEntryByName(entry, "title");
61             String title = (element == null ? null : element.getValue());
62
63             element = XmlEntry.FindXmlEntryByName(entry, "link");
64             String link = (element == null ? null : element.getValue());
65
66             element = XmlEntry.FindXmlEntryByName(entry, "description");
67             String description = (element == null ? null : element.getValue());
68
69             target.setArgument("url", link);
70
71             AppSearchListItem result = new AppSearchListItem("STUV: "+title, description, target);
72             results.add(result);
73
74         }
75
76         return results;
77     }
78
79 }