aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2012-03-03 10:27:59 +0100
committerBananeweizen <bananeweizen@gmx.de>2012-03-03 10:27:59 +0100
commitf2835856dbb0b2865d842dd381f4e90601710438 (patch)
treefcfa45b0c427282ba31599ead6fd422815a4af42
parentcf88273bd153ddc46c0f3496c7f86343369ff176 (diff)
downloadcgeo-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.
-rw-r--r--main/src/cgeo/geocaching/SearchResult.java6
-rw-r--r--main/src/cgeo/geocaching/cgBase.java44
-rw-r--r--main/src/cgeo/geocaching/cgeocaches.java10
-rw-r--r--main/src/cgeo/geocaching/connector/AbstractConnector.java2
-rw-r--r--main/src/cgeo/geocaching/connector/GCConnector.java6
-rw-r--r--main/src/cgeo/geocaching/connector/IConnector.java2
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCBase.java3
-rw-r--r--main/src/cgeo/geocaching/connector/opencaching/ApiOpenCachingConnector.java4
-rw-r--r--tests/src/cgeo/geocaching/cgBaseTest.java4
-rw-r--r--tests/src/cgeo/geocaching/cgeoApplicationTest.java6
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"));