From 8d589b088d72a1bc960430a424c19d909fc61f66 Mon Sep 17 00:00:00 2001 From: Robert Kolner Date: Wed, 19 Oct 2011 21:54:12 +0200 Subject: [PATCH] Added error handling on refresh. Fixed a bug which made callback to CategoryChooser be always called on dismiss, not only when a category was actually chosen. --- res/layout/choose_category_dialog.xml | 2 +- res/layout/choose_category_list_row.xml | 12 +++++----- res/values/strings.xml | 1 + .../app/ui/ChooseCategoryDialog.java | 6 +++-- .../app/ui/ProgramListActivity.java | 22 ++++++++++++++----- 5 files changed, 28 insertions(+), 15 deletions(-) diff --git a/res/layout/choose_category_dialog.xml b/res/layout/choose_category_dialog.xml index 9842e35..67cb742 100644 --- a/res/layout/choose_category_dialog.xml +++ b/res/layout/choose_category_dialog.xml @@ -1,7 +1,7 @@ + android:layout_height="wrap_content"> diff --git a/res/values/strings.xml b/res/values/strings.xml index e100d91..c85c3c9 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -10,4 +10,5 @@ Oppdater Kategorier Velg kategori + Vent til oppdateringen fullfører diff --git a/src/com/studentersamfundet/app/ui/ChooseCategoryDialog.java b/src/com/studentersamfundet/app/ui/ChooseCategoryDialog.java index a7ad96e..cff2044 100644 --- a/src/com/studentersamfundet/app/ui/ChooseCategoryDialog.java +++ b/src/com/studentersamfundet/app/ui/ChooseCategoryDialog.java @@ -16,7 +16,7 @@ import android.widget.AdapterView.OnItemClickListener; public class ChooseCategoryDialog extends Dialog { private final Callback callback; - private String chosenCategory = Event.ALL; + private String chosenCategory = null; public interface Callback { public void run(String ... message); @@ -24,7 +24,9 @@ public class ChooseCategoryDialog extends Dialog { private class OnDismiss implements OnDismissListener { public void onDismiss(DialogInterface dialog) { - callback.run(chosenCategory); + if (chosenCategory != null) { + callback.run(chosenCategory); + } } } diff --git a/src/com/studentersamfundet/app/ui/ProgramListActivity.java b/src/com/studentersamfundet/app/ui/ProgramListActivity.java index 0e647a3..a658cea 100644 --- a/src/com/studentersamfundet/app/ui/ProgramListActivity.java +++ b/src/com/studentersamfundet/app/ui/ProgramListActivity.java @@ -167,9 +167,13 @@ public class ProgramListActivity extends BaseDnsActivity { lc.execute(); } }; - - Dialog dialog = new ChooseCategoryDialog(this, callback, dataHandler.getCategories()); - dialog.show(); + + if (dataHandler != null) { + Dialog dialog = new ChooseCategoryDialog(this, callback, dataHandler.getCategories()); + dialog.show(); + } else { + Toast.makeText(this, R.string.error_loading, Toast.LENGTH_SHORT); + } } protected class ListCreator extends AsyncTask { @@ -183,6 +187,10 @@ public class ProgramListActivity extends BaseDnsActivity { @Override protected void onPreExecute() { + if (forcedUpdate) { + dataHandler = null; + } + ListView list = (ListView)findViewById(R.id.event_list); list.setVisibility(View.GONE); @@ -196,9 +204,11 @@ public class ProgramListActivity extends BaseDnsActivity { // YAY = Fetch the feed. // NAY = Inform about no connection. try { - NodeList itemNodes = feed.fetch(this.forcedUpdate); - dataHandler = parser.parse(itemNodes); - return true; + if (dataHandler == null) { + NodeList itemNodes = feed.fetch(this.forcedUpdate); + dataHandler = parser.parse(itemNodes); + } + return true; } catch (IOException e) { return false;