Archived
Added refresh option to menu. Oh, and I added menu too.
This commit is contained in:
1 parent
c9e55191bd
commit
6dcc7959f0
4 files changed
+38
-6
No files matched your search
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:id="@+id/menu_refresh"
|
||||
android:title="@string/menu_refresh" />
|
||||
</menu>
|
||||
@@ -7,4 +7,5 @@
|
||||
<string name="error_noconnection_firstart">Ingen nettilkobling. Du må være tilkoblet nettet for å se programmet.</string>
|
||||
<string name="error_noconnection_noupdate">Ingen nettilkobling. Programmet er altså ikke oppdatert.</string>
|
||||
<string name="join_us">Booke band, tappe øl eller lede politiske debatter? Du vil garantert finne noe av interesse hvis du har lyst til å bli aktiv i en av de mange foreningene som driver DNS. Her lærer vi alt du ikke hører om på forelesningene. Praktisk erfaring og utfordringer som kan være gull verdt når den voksne verden en gang banker på døren.\n\nHva vil du huske fra studietiden? Lesesalen? Pensum? Eksamensnerver? Det er nå du har sjansen til å skape minnene som varer hele livet. Venner, fester, gallamiddager og nach så lenge du orker.\n\n “Vi gir deg minnene fra studietiden du aldri vil glemme.”\n\nTa kontakt på blimed@studentersamfundet.no for mer informasjon!</string>
|
||||
<string name="menu_refresh">Refresh</string>
|
||||
</resources>
|
||||
@@ -55,19 +55,19 @@ public class FeedFetcher {
|
||||
|
||||
/**
|
||||
* Fetches list of events from the web.
|
||||
* @param URL String containing address to the rss-feed.
|
||||
* @param c Context from which this function is called.
|
||||
* @param forcedUpdate specifies if we HAVE TO update local file, or let
|
||||
* the function decide.
|
||||
* @return Returns list of events as a XML NodeList
|
||||
* @throws IOException Is thrown if the app cannot download the file from
|
||||
* the internet and there is no local copy.
|
||||
*/
|
||||
public NodeList fetch() throws IOException {
|
||||
public NodeList fetch(boolean forcedUpdate) throws IOException {
|
||||
InputStream in = null;
|
||||
NodeList itemNodes = null;
|
||||
|
||||
/* Update the local file if possible. */
|
||||
try {
|
||||
if (doesFileNeedUpdate(context)) {
|
||||
if (forcedUpdate || doesFileNeedUpdate(context)) {
|
||||
in = openHttpConnection();
|
||||
saveFile(in, context);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,9 @@ import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.Html;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.View.OnClickListener;
|
||||
@@ -38,11 +41,34 @@ public class ProgramListActivity extends BaseDnsActivity {
|
||||
this.feed = new FeedFetcher(this, feedURL);
|
||||
this.parser = new XmlParser();
|
||||
|
||||
// Do we have intarwebs?
|
||||
createList(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
MenuInflater inflater = getMenuInflater();
|
||||
inflater.inflate(R.layout.menu, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
|
||||
switch (item.getItemId()) {
|
||||
case R.id.menu_refresh:
|
||||
this.createList(true);
|
||||
return true;
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
}
|
||||
|
||||
protected void createList(boolean forcedUpdate) {
|
||||
// Do we have intarwebs?
|
||||
// YAY = Fetch the feed.
|
||||
// NAY = Inform about no connection.
|
||||
try {
|
||||
NodeList itemNodes = feed.fetch();
|
||||
NodeList itemNodes = feed.fetch(forcedUpdate);
|
||||
dataHandler = parser.parse(itemNodes);
|
||||
|
||||
} catch (IOException e) {
|
||||
|
||||
Reference in new issue
Block a user