diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2012-03-03 10:27:59 +0100 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2012-03-03 10:27:59 +0100 |
| commit | f2835856dbb0b2865d842dd381f4e90601710438 (patch) | |
| tree | fcfa45b0c427282ba31599ead6fd422815a4af42 | |
| parent | cf88273bd153ddc46c0f3496c7f86343369ff176 (diff) | |
| download | cgeo-f2835856dbb0b2865d842dd381f4e90601710438.zip cgeo-f2835856dbb0b2865d842dd381f4e90601710438.tar.gz cgeo-f2835856dbb0b2865d842dd381f4e90601710438.tar.bz2 | |
refactoring: never set listId of cache to TEMPORARY_ID
* TEMPORARY_LIST_ID is already set in constructor
* setting it again afterwards can be wrong due to merging with caches
from DB
* setting listId is not necessary during parsing at all, it is set when
storing, moving or importing.
10 files changed, 40 insertions, 47 deletions
diff --git a/main/src/cgeo/geocaching/SearchResult.java b/main/src/cgeo/geocaching/SearchResult.java index fba946a..edda547 100644 --- a/main/src/cgeo/geocaching/SearchResult.java +++ b/main/src/cgeo/geocaching/SearchResult.java @@ -140,7 +140,7 @@ public class SearchResult implements Parcelable { * @param cacheType * @return */ - public SearchResult filterSearchResults(final boolean excludeDisabled, final boolean excludeMine, final CacheType cacheType, final int listId) { + public SearchResult filterSearchResults(final boolean excludeDisabled, final boolean excludeMine, final CacheType cacheType) { SearchResult result = new SearchResult(this); result.geocodes.clear(); @@ -152,7 +152,6 @@ public class SearchResult implements Parcelable { (excludeMine && (cache.isOwn() || cache.isFound())) || (cacheType != CacheType.ALL && cacheType != cache.getType()); if (!excludeCache) { - cache.setListId(listId); result.addCache(cache); } } @@ -190,13 +189,12 @@ public class SearchResult implements Parcelable { } /** Add the cache geocodes to the search and store them in the CacheCache */ - public void addCaches(final Set<cgCache> caches, final int listId) { + public void addCaches(final Set<cgCache> caches) { if (CollectionUtils.isEmpty(caches)) { return; } for (final cgCache cache : caches) { - cache.setListId(listId); addCache(cache); } } diff --git a/main/src/cgeo/geocaching/cgBase.java b/main/src/cgeo/geocaching/cgBase.java index 8d00710..aa8159a 100644 --- a/main/src/cgeo/geocaching/cgBase.java +++ b/main/src/cgeo/geocaching/cgBase.java @@ -413,7 +413,7 @@ public class cgBase { } } - private static SearchResult parseSearch(final cgSearchThread thread, final String url, final String pageContent, final boolean showCaptcha, final int listId) { + private static SearchResult parseSearch(final cgSearchThread thread, final String url, final String pageContent, final boolean showCaptcha) { if (StringUtils.isBlank(pageContent)) { Log.e(Settings.tag, "cgeoBase.parseSearch: No page given"); return null; @@ -473,8 +473,7 @@ public class cgBase { final int rows_count = rows.length; for (int z = 1; z < rows_count; z++) { - cgCache cache = new cgCache(); - cache.setListId(listId); + final cgCache cache = new cgCache(); String row = rows[z]; // check for cache type presence @@ -695,8 +694,8 @@ public class cgBase { return searchResult; } - public static SearchResult parseCache(final String page, final int listId, final CancellableHandler handler) { - final SearchResult searchResult = parseCacheFromText(page, listId, handler); + public static SearchResult parseCache(final String page, final CancellableHandler handler) { + final SearchResult searchResult = parseCacheFromText(page, handler); if (searchResult != null && !searchResult.getGeocodes().isEmpty()) { final cgCache cache = searchResult.getFirstCacheFromResult(LoadFlags.LOAD_CACHE_OR_DB); getExtraOnlineInfo(cache, page, handler); @@ -707,13 +706,12 @@ public class cgBase { return null; } // save full detailed caches - cache.setListId(StoredList.TEMPORARY_LIST_ID); cgeoapplication.getInstance().saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB)); } return searchResult; } - static SearchResult parseCacheFromText(final String page, final int listId, final CancellableHandler handler) { + static SearchResult parseCacheFromText(final String page, final CancellableHandler handler) { sendLoadProgressDetail(handler, R.string.cache_dialog_loading_details_status_details); if (StringUtils.isBlank(page)) { @@ -747,8 +745,6 @@ public class cgBase { cache.setFavorite(BaseUtils.matches(page, GCConstants.PATTERN_FAVORITE)); - cache.setListId(listId); - // cache geocode cache.setGeocode(BaseUtils.getMatch(page, GCConstants.PATTERN_GEOCODE, true, cache.getGeocode())); @@ -1636,7 +1632,7 @@ public class cgBase { params.put("tx", cacheType.guid); } - public static SearchResult searchByNextPage(cgSearchThread thread, final SearchResult search, int listId, boolean showCaptcha) { + public static SearchResult searchByNextPage(cgSearchThread thread, final SearchResult search, boolean showCaptcha) { if (search == null) { return search; } @@ -1681,7 +1677,7 @@ public class cgBase { return search; } - final SearchResult searchResult = parseSearch(thread, url, page, showCaptcha, listId); + final SearchResult searchResult = parseSearch(thread, url, page, showCaptcha); if (searchResult == null || CollectionUtils.isEmpty(searchResult.getGeocodes())) { Log.e(Settings.tag, "cgeoBase.searchByNextPage: No cache parsed"); return search; @@ -1712,10 +1708,10 @@ public class cgBase { // if we have no geocode, we can't dynamically select the handler, but must explicitly use GC if (geocode == null && guid != null) { - return GCConnector.getInstance().searchByGeocode(null, guid, app, listId, handler); + return GCConnector.getInstance().searchByGeocode(null, guid, app, handler); } - return ConnectorFactory.getConnector(geocode).searchByGeocode(geocode, guid, app, listId, handler); + return ConnectorFactory.getConnector(geocode).searchByGeocode(geocode, guid, app, handler); } public static SearchResult searchByStored(final Geopoint coords, final CacheType cacheType, final int list) { @@ -1732,7 +1728,7 @@ public class cgBase { * the parameters to add to the request URI * @return */ - private static SearchResult searchByAny(final cgSearchThread thread, final CacheType cacheType, final boolean my, final int listId, final boolean showCaptcha, final Parameters params) { + private static SearchResult searchByAny(final cgSearchThread thread, final CacheType cacheType, final boolean my, final boolean showCaptcha, final Parameters params) { insertCacheType(params, cacheType); final String uri = "http://www.geocaching.com/seek/nearest.aspx"; @@ -1744,35 +1740,35 @@ public class cgBase { return null; } - final SearchResult searchResult = parseSearch(thread, fullUri, page, showCaptcha, listId); + final SearchResult searchResult = parseSearch(thread, fullUri, page, showCaptcha); if (searchResult == null || CollectionUtils.isEmpty(searchResult.getGeocodes())) { Log.e(Settings.tag, "cgeoBase.searchByAny: No cache parsed"); return searchResult; } - final SearchResult search = searchResult.filterSearchResults(Settings.isExcludeDisabledCaches(), false, cacheType, listId); + final SearchResult search = searchResult.filterSearchResults(Settings.isExcludeDisabledCaches(), false, cacheType); getLoginStatus(page); return search; } - public static SearchResult searchByCoords(final cgSearchThread thread, final Geopoint coords, final CacheType cacheType, final int listId, final boolean showCaptcha) { + public static SearchResult searchByCoords(final cgSearchThread thread, final Geopoint coords, final CacheType cacheType, final boolean showCaptcha) { final Parameters params = new Parameters("lat", Double.toString(coords.getLatitude()), "lng", Double.toString(coords.getLongitude())); - return searchByAny(thread, cacheType, false, listId, showCaptcha, params); + return searchByAny(thread, cacheType, false, showCaptcha, params); } - public static SearchResult searchByKeyword(final cgSearchThread thread, final String keyword, final CacheType cacheType, final int listId, final boolean showCaptcha) { + public static SearchResult searchByKeyword(final cgSearchThread thread, final String keyword, final CacheType cacheType, final boolean showCaptcha) { if (StringUtils.isBlank(keyword)) { Log.e(Settings.tag, "cgeoBase.searchByKeyword: No keyword given"); return null; } final Parameters params = new Parameters("key", keyword); - return searchByAny(thread, cacheType, false, listId, showCaptcha, params); + return searchByAny(thread, cacheType, false, showCaptcha, params); } - public static SearchResult searchByUsername(final cgSearchThread thread, final String userName, final CacheType cacheType, final int listId, final boolean showCaptcha) { + public static SearchResult searchByUsername(final cgSearchThread thread, final String userName, final CacheType cacheType, final boolean showCaptcha) { if (StringUtils.isBlank(userName)) { Log.e(Settings.tag, "cgeoBase.searchByUsername: No user name given"); return null; @@ -1786,17 +1782,17 @@ public class cgBase { Log.i(Settings.tag, "cgBase.searchByUsername: Overriding users choice, downloading all caches."); } - return searchByAny(thread, cacheType, my, listId, showCaptcha, params); + return searchByAny(thread, cacheType, my, showCaptcha, params); } - public static SearchResult searchByOwner(final cgSearchThread thread, final String userName, final CacheType cacheType, final int listId, final boolean showCaptcha) { + public static SearchResult searchByOwner(final cgSearchThread thread, final String userName, final CacheType cacheType, final boolean showCaptcha) { if (StringUtils.isBlank(userName)) { Log.e(Settings.tag, "cgeoBase.searchByOwner: No user name given"); return null; } final Parameters params = new Parameters("u", userName); - return searchByAny(thread, cacheType, false, listId, showCaptcha, params); + return searchByAny(thread, cacheType, false, showCaptcha, params); } /** Request .png image for a tile. */ diff --git a/main/src/cgeo/geocaching/cgeocaches.java b/main/src/cgeo/geocaching/cgeocaches.java index 120bc59..9defae4 100644 --- a/main/src/cgeo/geocaching/cgeocaches.java +++ b/main/src/cgeo/geocaching/cgeocaches.java @@ -1779,7 +1779,7 @@ public class cgeocaches extends AbstractListActivity { @Override public void run() { - search = cgBase.searchByNextPage(this, search, 0, Settings.isShowCaptcha()); + search = cgBase.searchByNextPage(this, search, Settings.isShowCaptcha()); handler.sendMessage(new Message()); } @@ -1806,7 +1806,7 @@ public class cgeocaches extends AbstractListActivity { @Override public void run() { - search = cgBase.searchByCoords(this, coords, cacheType, StoredList.TEMPORARY_LIST_ID, Settings.isShowCaptcha()); + search = cgBase.searchByCoords(this, coords, cacheType, Settings.isShowCaptcha()); handler.sendMessage(new Message()); } @@ -1833,7 +1833,7 @@ public class cgeocaches extends AbstractListActivity { @Override public void run() { - search = cgBase.searchByKeyword(this, keyword, cacheType, 0, Settings.isShowCaptcha()); + search = cgBase.searchByKeyword(this, keyword, cacheType, Settings.isShowCaptcha()); handler.sendMessage(new Message()); } } @@ -1859,7 +1859,7 @@ public class cgeocaches extends AbstractListActivity { @Override public void run() { - search = cgBase.searchByUsername(this, username, cacheType, 0, Settings.isShowCaptcha()); + search = cgBase.searchByUsername(this, username, cacheType, Settings.isShowCaptcha()); handler.sendMessage(new Message()); } } @@ -1891,7 +1891,7 @@ public class cgeocaches extends AbstractListActivity { params.put("cacheType", cacheType.id); } - search = cgBase.searchByOwner(this, username, cacheType, 0, Settings.isShowCaptcha()); + search = cgBase.searchByOwner(this, username, cacheType, Settings.isShowCaptcha()); handler.sendMessage(new Message()); } diff --git a/main/src/cgeo/geocaching/connector/AbstractConnector.java b/main/src/cgeo/geocaching/connector/AbstractConnector.java index ceaad5e..32babe7 100644 --- a/main/src/cgeo/geocaching/connector/AbstractConnector.java +++ b/main/src/cgeo/geocaching/connector/AbstractConnector.java @@ -50,7 +50,7 @@ public abstract class AbstractConnector implements IConnector { } @Override - public SearchResult searchByGeocode(String geocode, String guid, cgeoapplication app, int listId, CancellableHandler handler) { + public SearchResult searchByGeocode(String geocode, String guid, cgeoapplication app, CancellableHandler handler) { return null; } diff --git a/main/src/cgeo/geocaching/connector/GCConnector.java b/main/src/cgeo/geocaching/connector/GCConnector.java index 6b44f82..74dc7f5 100644 --- a/main/src/cgeo/geocaching/connector/GCConnector.java +++ b/main/src/cgeo/geocaching/connector/GCConnector.java @@ -84,7 +84,7 @@ public class GCConnector extends AbstractConnector { } @Override - public SearchResult searchByGeocode(final String geocode, final String guid, final cgeoapplication app, final int listId, final CancellableHandler handler) { + public SearchResult searchByGeocode(final String geocode, final String guid, final cgeoapplication app, final CancellableHandler handler) { if (app == null) { Log.e(Settings.tag, "cgeoBase.searchByGeocode: No application found"); @@ -123,14 +123,14 @@ public class GCConnector extends AbstractConnector { return search; } - final SearchResult searchResult = cgBase.parseCache(page, listId, handler); + final SearchResult searchResult = cgBase.parseCache(page, handler); if (searchResult == null || CollectionUtils.isEmpty(searchResult.getGeocodes())) { Log.e(Settings.tag, "cgeoBase.searchByGeocode: No cache parsed"); return searchResult; } - SearchResult search = searchResult.filterSearchResults(false, false, Settings.getCacheType(), listId); + SearchResult search = searchResult.filterSearchResults(false, false, Settings.getCacheType()); return search; } diff --git a/main/src/cgeo/geocaching/connector/IConnector.java b/main/src/cgeo/geocaching/connector/IConnector.java index bc772c9..1b84ecd 100644 --- a/main/src/cgeo/geocaching/connector/IConnector.java +++ b/main/src/cgeo/geocaching/connector/IConnector.java @@ -76,7 +76,7 @@ public interface IConnector { */ public boolean supportsCachesAround(); - public SearchResult searchByGeocode(final String geocode, final String guid, final cgeoapplication app, final int listId, final CancellableHandler handler); + public SearchResult searchByGeocode(final String geocode, final String guid, final cgeoapplication app, final CancellableHandler handler); /** * search caches by coordinate. must be implemented if {@link supportsCachesAround} returns <code>true</true> diff --git a/main/src/cgeo/geocaching/connector/gc/GCBase.java b/main/src/cgeo/geocaching/connector/gc/GCBase.java index 4580542..7ddcbeb 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCBase.java +++ b/main/src/cgeo/geocaching/connector/gc/GCBase.java @@ -3,7 +3,6 @@ package cgeo.geocaching.connector.gc; import cgeo.geocaching.GCConstants; import cgeo.geocaching.SearchResult; import cgeo.geocaching.Settings; -import cgeo.geocaching.StoredList; import cgeo.geocaching.cgBase; import cgeo.geocaching.cgCache; import cgeo.geocaching.enumerations.CacheType; @@ -126,7 +125,7 @@ public class GCBase { } } - SearchResult search = cgBase.searchByCoords(null, viewport.getCenter(), Settings.getCacheType(), StoredList.TEMPORARY_LIST_ID, false); + SearchResult search = cgBase.searchByCoords(null, viewport.getCenter(), Settings.getCacheType(), false); if (search != null) { searchResult.addGeocodes(search.getGeocodes()); } diff --git a/main/src/cgeo/geocaching/connector/opencaching/ApiOpenCachingConnector.java b/main/src/cgeo/geocaching/connector/opencaching/ApiOpenCachingConnector.java index e72a1e3..8ed6acd 100644 --- a/main/src/cgeo/geocaching/connector/opencaching/ApiOpenCachingConnector.java +++ b/main/src/cgeo/geocaching/connector/opencaching/ApiOpenCachingConnector.java @@ -33,7 +33,7 @@ public class ApiOpenCachingConnector extends OpenCachingConnector { } @Override - public SearchResult searchByGeocode(final String geocode, final String guid, final cgeoapplication app, final int listId, final CancellableHandler handler) { + public SearchResult searchByGeocode(final String geocode, final String guid, final cgeoapplication app, final CancellableHandler handler) { final cgCache cache = OkapiClient.getCache(geocode); if (cache == null) { return null; @@ -41,7 +41,7 @@ public class ApiOpenCachingConnector extends OpenCachingConnector { final SearchResult searchResult = new SearchResult(); searchResult.addCache(cache); - final SearchResult search = searchResult.filterSearchResults(false, false, Settings.getCacheType(), listId); + final SearchResult search = searchResult.filterSearchResults(false, false, Settings.getCacheType()); return search; } } diff --git a/tests/src/cgeo/geocaching/cgBaseTest.java b/tests/src/cgeo/geocaching/cgBaseTest.java index 8b59185..bfb0cc7 100644 --- a/tests/src/cgeo/geocaching/cgBaseTest.java +++ b/tests/src/cgeo/geocaching/cgBaseTest.java @@ -86,7 +86,7 @@ public class cgBaseTest extends AndroidTestCase { for (MockedCache mockedCache : RegExPerformanceTest.MOCKED_CACHES) { // to get the same results we have to use the date format used when the mocked data was created Settings.setGcCustomDate(MockedCache.getDateFormat()); - SearchResult searchResult = cgBase.parseCacheFromText(mockedCache.getData(), 0, null); + SearchResult searchResult = cgBase.parseCacheFromText(mockedCache.getData(), null); cgCache parsedCache = searchResult.getFirstCacheFromResult(LoadFlags.LOAD_CACHE_OR_DB); assertTrue(StringUtils.isNotBlank(mockedCache.getMockedDataUser())); cgBaseTest.testCompareCaches(mockedCache, parsedCache); @@ -146,7 +146,7 @@ public class cgBaseTest extends AndroidTestCase { final MockedCache mockedCache = RegExPerformanceTest.MOCKED_CACHES.get(index); // to get the same results we have to use the date format used when the mocked data was created Settings.setGcCustomDate(MockedCache.getDateFormat()); - final SearchResult searchResult = cgBase.parseCacheFromText(mockedCache.getData(), 0, null); + final SearchResult searchResult = cgBase.parseCacheFromText(mockedCache.getData(), null); return searchResult.getFirstCacheFromResult(LoadFlags.LOAD_CACHE_OR_DB); } }
\ No newline at end of file diff --git a/tests/src/cgeo/geocaching/cgeoApplicationTest.java b/tests/src/cgeo/geocaching/cgeoApplicationTest.java index 258e6d2..0f985a3 100644 --- a/tests/src/cgeo/geocaching/cgeoApplicationTest.java +++ b/tests/src/cgeo/geocaching/cgeoApplicationTest.java @@ -163,7 +163,7 @@ public class cgeoApplicationTest extends ApplicationTestCase<cgeoapplication> { */ @MediumTest public static void testSearchByCoords() { - final SearchResult search = cgBase.searchByCoords(null, new Geopoint("N 52° 24.972 E 009° 35.647"), CacheType.MYSTERY, 0, false); + final SearchResult search = cgBase.searchByCoords(null, new Geopoint("N 52° 24.972 E 009° 35.647"), CacheType.MYSTERY, false); assertNotNull(search); assertTrue(18 <= search.getGeocodes().size()); assertTrue(search.getGeocodes().contains("GC1RMM2")); @@ -174,7 +174,7 @@ public class cgeoApplicationTest extends ApplicationTestCase<cgeoapplication> { */ @MediumTest public static void testSearchByOwner() { - final SearchResult search = cgBase.searchByOwner(null, "blafoo", CacheType.MYSTERY, 0, false); + final SearchResult search = cgBase.searchByOwner(null, "blafoo", CacheType.MYSTERY, false); assertNotNull(search); assertEquals(3, search.getGeocodes().size()); assertTrue(search.getGeocodes().contains("GC36RT6")); @@ -185,7 +185,7 @@ public class cgeoApplicationTest extends ApplicationTestCase<cgeoapplication> { */ @MediumTest public static void testSearchByUsername() { - final SearchResult search = cgBase.searchByUsername(null, "blafoo", CacheType.WEBCAM, 0, false); + final SearchResult search = cgBase.searchByUsername(null, "blafoo", CacheType.WEBCAM, false); assertNotNull(search); assertEquals(3, search.totalCnt); assertTrue(search.getGeocodes().contains("GCP0A9")); |
