aboutsummaryrefslogtreecommitdiffstats
path: root/main/src
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2013-01-01 13:38:57 +0100
committerSamuel Tardieu <sam@rfc1149.net>2013-01-01 13:49:29 +0100
commit7c638ee0b2b4481575696ff6442f036965c30fdd (patch)
tree178bd1b4e8468056d04f26d1fa21ddfb2243c2d0 /main/src
parentb85868107c3bfdd1f911c93e139fd32eafef4bd3 (diff)
downloadcgeo-7c638ee0b2b4481575696ff6442f036965c30fdd.zip
cgeo-7c638ee0b2b4481575696ff6442f036965c30fdd.tar.gz
cgeo-7c638ee0b2b4481575696ff6442f036965c30fdd.tar.bz2
Refactoring: do not use global variables for data passing
Also, there is no need to use a separate handler, runOnUiThread is enough here as we only deal with a single message.
Diffstat (limited to 'main/src')
-rw-r--r--main/src/cgeo/geocaching/cgeocaches.java38
1 files changed, 13 insertions, 25 deletions
diff --git a/main/src/cgeo/geocaching/cgeocaches.java b/main/src/cgeo/geocaching/cgeocaches.java
index f8d1b83..f5cc336 100644
--- a/main/src/cgeo/geocaching/cgeocaches.java
+++ b/main/src/cgeo/geocaching/cgeocaches.java
@@ -246,10 +246,7 @@ public class cgeocaches extends AbstractListActivity implements FilteredActivity
@Override
public void handleMessage(Message msg) {
try {
- if (search != null) {
- replaceCacheListFromSearch();
- adapter.reFilter();
- }
+ replaceCacheListFromSearch();
setAdapter();
updateTitle();
@@ -279,17 +276,24 @@ public class cgeocaches extends AbstractListActivity implements FilteredActivity
adapter.setSelectMode(false);
}
};
- private Set<cgCache> cachesFromSearchResult;
/**
- * Loads the caches and fills the cachelist
+ * Loads the caches and fills the cachelist according to {@link #search} content.
+ *
+ * If {@link #search} is <code>null</code>, this does nothing.
*/
private void replaceCacheListFromSearch() {
- if (search!=null) {
- cachesFromSearchResult = search.getCachesFromSearchResult(LoadFlags.LOAD_CACHE_OR_DB);
+ if (search != null) {
+ final Set<cgCache> cachesFromSearchResult = search.getCachesFromSearchResult(LoadFlags.LOAD_CACHE_OR_DB);
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ cacheList.clear();
+ cacheList.addAll((Set<cgCache>) cachesFromSearchResult);
+ }
+ });
}
- refreshCacheListHandler.sendEmptyMessage(0);
}
protected void updateTitle() {
@@ -1714,22 +1718,6 @@ public class cgeocaches extends AbstractListActivity implements FilteredActivity
}
}
- /**
- * Handler to refresh the current list of caches. This list is shared with the Adapter and therefore must be updated
- * in the UI-Thread
- */
-
- private Handler refreshCacheListHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- cacheList.clear();
- if (cachesFromSearchResult != null) {
- cacheList.addAll(cachesFromSearchResult);
- }
- }
- };
-
-
private void renameList() {
new StoredList.UserInterface(this).promptForListRename(listId, new Runnable() {