Archived
Much work done on how the app shows special characters. Now it is in sync with the server and it seems like it works.
This commit is contained in:
1 parent
1d1a1cbed8
commit
aaf05368e2
5 files changed
+40
-33
No files matched your search
@@ -22,11 +22,11 @@ public class Event implements Serializable {
|
||||
String category) {
|
||||
this.id = id;
|
||||
this.title = title;
|
||||
this.description = description;
|
||||
this.date = date;
|
||||
this.location = location;
|
||||
this.text = text;
|
||||
this.category = category;
|
||||
this.description = (description == null) ? "" : description;
|
||||
this.date = (date == null) ? "" : date;
|
||||
this.location = (location == null) ? "" : location;
|
||||
this.text = (text == null) ? "" : text;
|
||||
this.category = (category == null) ? "" : category;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
|
||||
@@ -22,10 +22,18 @@ import android.content.Context;
|
||||
public class FeedFetcher {
|
||||
private final String LOCAL_FILENAME = "dns_events";
|
||||
|
||||
private InputStream openHttpConnection(String URL) throws IOException {
|
||||
private Context context;
|
||||
private String url;
|
||||
|
||||
public FeedFetcher(Context context, String url) {
|
||||
this.context = context;
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
private InputStream openHttpConnection() throws IOException {
|
||||
InputStream in = null;
|
||||
int response = -1;
|
||||
URL url = new URL(URL);
|
||||
URL url = new URL(this.url);
|
||||
URLConnection con = url.openConnection();
|
||||
|
||||
if (!(con instanceof HttpURLConnection))
|
||||
@@ -53,20 +61,20 @@ public class FeedFetcher {
|
||||
* @throws IOException Is thrown if the app cannot download the file from
|
||||
* the internet and there is no local copy.
|
||||
*/
|
||||
public NodeList fetch(String URL, Context c) throws IOException {
|
||||
public NodeList fetch() throws IOException {
|
||||
InputStream in = null;
|
||||
NodeList itemNodes = null;
|
||||
|
||||
/* Update the local file if possible. */
|
||||
try {
|
||||
saveFile(openHttpConnection(URL), c);
|
||||
saveFile(openHttpConnection(), context);
|
||||
|
||||
} catch(IOException e) {
|
||||
/* OK, so we failed to update it. It doesn't matter yet, because we can try to... */
|
||||
}
|
||||
|
||||
/* ...load local file: */
|
||||
in = loadFile(c); // if we fail here, we fail ultimately. Throw the Exception!
|
||||
in = loadFile(context); // if we fail here, we fail ultimately. Throw the Exception!
|
||||
|
||||
|
||||
Document doc = null;
|
||||
|
||||
@@ -34,7 +34,7 @@ public class XmlParser {
|
||||
NodeList descriptionNodes = (itemElement).getElementsByTagName("description");
|
||||
NodeList dateNodes = (itemElement).getElementsByTagName("date");
|
||||
NodeList locationNodes = (itemElement).getElementsByTagName("location");
|
||||
NodeList textNodes = (itemElement).getElementsByTagName("text");
|
||||
NodeList textNodes = (itemElement).getElementsByTagName("content");
|
||||
NodeList categoryNodes = (itemElement).getElementsByTagName("category");
|
||||
|
||||
// Convert a Node into an Element.
|
||||
|
||||
@@ -31,20 +31,15 @@ public class EventViewActivity extends BaseDnsActivity {
|
||||
TextView datetime = (TextView) findViewById(R.id.event_view_datetime);
|
||||
Button link = (Button) findViewById(R.id.event_view_link);
|
||||
|
||||
title.setText(e.title);
|
||||
location.setText(e.location);
|
||||
datetime.setText(e.date);
|
||||
title.setText(Html.fromHtml(e.title));
|
||||
location.setText(Html.fromHtml(e.location));
|
||||
datetime.setText(Html.fromHtml(e.date));
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (e.description.length() > 0) {
|
||||
sb.append("<b>");
|
||||
sb.append(e.description);
|
||||
sb.append("</b><br/><br/>");
|
||||
}
|
||||
if (e.text.length() > 0) {
|
||||
sb.append(e.text);
|
||||
description.setText(Html.fromHtml(e.text));
|
||||
} else if (e.description.length() > 0) {
|
||||
description.setText(Html.fromHtml(e.description));
|
||||
}
|
||||
description.setText(Html.fromHtml(sb.toString()));
|
||||
|
||||
if (e.id > 0) { // if id exists and seems legit
|
||||
link.setVisibility(View.VISIBLE);
|
||||
|
||||
@@ -6,6 +6,7 @@ import org.w3c.dom.NodeList;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.Html;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -23,24 +24,27 @@ import com.studentersamfundet.app.R;
|
||||
import com.studentersamfundet.app.XmlParser;
|
||||
|
||||
public class ProgramListActivity extends BaseDnsActivity {
|
||||
public static final String feedURL = "http://dl.dropbox.com/u/293287/test.xml";
|
||||
//public static final String feedURL = "http://studentersamfundet.no/";
|
||||
public static final String localURL = "/data/com.studentersamfundet.app/files/dns_events";
|
||||
public static FeedFetcher feed = new FeedFetcher();
|
||||
public static XmlParser parser = new XmlParser();
|
||||
public DataHandler dh;
|
||||
//public static final String feedURL = "http://dl.dropbox.com/u/293287/test.xml";
|
||||
public static final String feedURL = "http://studentersamfundet.no/rss/lars_program_feed.php";
|
||||
|
||||
private FeedFetcher feed;
|
||||
private XmlParser parser;
|
||||
private DataHandler dataHandler;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.event_list);
|
||||
|
||||
this.feed = new FeedFetcher(this, feedURL);
|
||||
this.parser = new XmlParser();
|
||||
|
||||
// Do we have intarwebs?
|
||||
// YAY = Fetch the feed.
|
||||
// NAY = Inform about no connection.
|
||||
try {
|
||||
NodeList itemNodes = feed.fetch(feedURL, this);
|
||||
dh = parser.parse(itemNodes);
|
||||
NodeList itemNodes = feed.fetch();
|
||||
dataHandler = parser.parse(itemNodes);
|
||||
|
||||
} catch (IOException e) {
|
||||
Toast toast = Toast.makeText(this, R.string.error_noconnection_noupdate, Toast.LENGTH_LONG);
|
||||
@@ -54,7 +58,7 @@ public class ProgramListActivity extends BaseDnsActivity {
|
||||
}
|
||||
|
||||
protected ListAdapter createAdapter() {
|
||||
Event[] events = dh.populateList();
|
||||
Event[] events = dataHandler.populateList();
|
||||
|
||||
ListAdapter adapter = new ArrayAdapter<Event>(this, R.layout.event_list_row, R.id.event_list_row_text, events) {
|
||||
@Override
|
||||
@@ -71,10 +75,10 @@ public class ProgramListActivity extends BaseDnsActivity {
|
||||
final Event e = getItem(position);
|
||||
|
||||
TextView titleView = (TextView) row.findViewById(R.id.event_list_row_text);
|
||||
titleView.setText(e.title);
|
||||
titleView.setText(Html.fromHtml(e.title));
|
||||
|
||||
TextView dateView = (TextView) row.findViewById(R.id.event_list_row_date);
|
||||
dateView.setText(e.getDateString());
|
||||
dateView.setText(Html.fromHtml(e.getDateString()));
|
||||
|
||||
row.setOnClickListener(new OnClickListener() {
|
||||
|
||||
|
||||
Reference in new issue
Block a user