aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/AbstractPopupActivity.java2
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java6
-rw-r--r--main/src/cgeo/geocaching/EditWaypointActivity.java8
-rw-r--r--main/src/cgeo/geocaching/ImagesActivity.java2
-rw-r--r--main/src/cgeo/geocaching/LogTrackableActivity.java2
-rw-r--r--main/src/cgeo/geocaching/SearchActivity.java4
-rw-r--r--main/src/cgeo/geocaching/SearchResult.java22
-rw-r--r--main/src/cgeo/geocaching/SettingsActivity.java6
-rw-r--r--main/src/cgeo/geocaching/StaticMapsActivity.java2
-rw-r--r--main/src/cgeo/geocaching/StoredList.java8
-rw-r--r--main/src/cgeo/geocaching/VisitCacheActivity.java15
-rw-r--r--main/src/cgeo/geocaching/WaypointPopup.java2
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/AbstractStaticMapsApp.java7
-rw-r--r--main/src/cgeo/geocaching/cgCache.java41
-rw-r--r--main/src/cgeo/geocaching/cgData.java223
-rw-r--r--main/src/cgeo/geocaching/cgeo.java10
-rw-r--r--main/src/cgeo/geocaching/cgeoapplication.java335
-rw-r--r--main/src/cgeo/geocaching/cgeocaches.java26
-rw-r--r--main/src/cgeo/geocaching/cgeopoint.java8
-rw-r--r--main/src/cgeo/geocaching/cgeotrackable.java3
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCConnector.java15
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCMap.java3
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCParser.java7
-rw-r--r--main/src/cgeo/geocaching/connector/oc/OkapiClient.java5
-rw-r--r--main/src/cgeo/geocaching/export/FieldnoteExport.java6
-rw-r--r--main/src/cgeo/geocaching/export/GpxExport.java5
-rw-r--r--main/src/cgeo/geocaching/files/GPXImporter.java5
-rw-r--r--main/src/cgeo/geocaching/files/GPXParser.java12
-rw-r--r--main/src/cgeo/geocaching/files/LocParser.java4
-rw-r--r--main/src/cgeo/geocaching/filter/AttributeFilter.java3
-rw-r--r--main/src/cgeo/geocaching/maps/CGeoMap.java21
-rw-r--r--main/src/cgeo/geocaching/maps/CachesOverlay.java4
-rw-r--r--main/src/cgeo/geocaching/sorting/FindsComparator.java8
-rw-r--r--main/src/cgeo/geocaching/twitter/Twitter.java5
-rw-r--r--main/src/cgeo/geocaching/ui/LoggingUI.java6
-rw-r--r--tests/src/cgeo/geocaching/cgDataTest.java66
-rw-r--r--tests/src/cgeo/geocaching/cgeoApplicationTest.java12
-rw-r--r--tests/src/cgeo/geocaching/connector/opencaching/OkapiClientTest.java5
-rw-r--r--tests/src/cgeo/geocaching/files/GPXImporterTest.java34
-rw-r--r--tests/src/cgeo/geocaching/files/GPXParserTest.java17
-rw-r--r--tests/src/cgeo/geocaching/test/AbstractResourceInstrumentationTestCase.java4
41 files changed, 349 insertions, 630 deletions
diff --git a/main/src/cgeo/geocaching/AbstractPopupActivity.java b/main/src/cgeo/geocaching/AbstractPopupActivity.java
index 67d50ab..e3f7aeb 100644
--- a/main/src/cgeo/geocaching/AbstractPopupActivity.java
+++ b/main/src/cgeo/geocaching/AbstractPopupActivity.java
@@ -109,7 +109,7 @@ public abstract class AbstractPopupActivity extends AbstractActivity {
}
protected void init() {
- cache = app.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
+ cache = cgData.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
if (cache == null) {
showToast(res.getString(R.string.err_detail_cache_find));
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index ddea7fb..73412e7 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -521,13 +521,13 @@ public class CacheDetailActivity extends AbstractActivity {
}
case CONTEXT_MENU_WAYPOINT_DUPLICATE:
if (cache.duplicateWaypoint(index)) {
- app.saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
+ cgData.saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
notifyDataSetChanged();
}
break;
case CONTEXT_MENU_WAYPOINT_DELETE:
if (cache.deleteWaypoint(index)) {
- app.saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
+ cgData.saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
notifyDataSetChanged();
}
break;
@@ -1946,7 +1946,7 @@ public class CacheDetailActivity extends AbstractActivity {
public void update(CharSequence editorText) {
cache.setPersonalNote(editorText.toString());
setPersonalNote(personalNoteView);
- app.saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
+ cgData.saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
}
});
editor.show();
diff --git a/main/src/cgeo/geocaching/EditWaypointActivity.java b/main/src/cgeo/geocaching/EditWaypointActivity.java
index 07beea2..819cb03 100644
--- a/main/src/cgeo/geocaching/EditWaypointActivity.java
+++ b/main/src/cgeo/geocaching/EditWaypointActivity.java
@@ -250,7 +250,7 @@ public class EditWaypointActivity extends AbstractActivity {
@Override
public void run() {
try {
- waypoint = app.loadWaypoint(id);
+ waypoint = cgData.loadWaypoint(id);
loadWaypointHandler.sendMessage(Message.obtain());
} catch (Exception e) {
@@ -269,7 +269,7 @@ public class EditWaypointActivity extends AbstractActivity {
} else if (gpTemp != null) {
gp = gpTemp;
}
- cgCache cache = app.loadCache(geocode, LoadFlags.LOAD_WAYPOINTS);
+ cgCache cache = cgData.loadCache(geocode, LoadFlags.LOAD_WAYPOINTS);
cgeocoords coordsDialog = new cgeocoords(EditWaypointActivity.this, cache, gp, app.currentGeo());
coordsDialog.setCancelable(true);
coordsDialog.setOnCoordinateUpdate(new cgeocoords.CoordinateUpdate() {
@@ -401,9 +401,9 @@ public class EditWaypointActivity extends AbstractActivity {
waypoint.setNote(note);
waypoint.setId(id);
- cgCache cache = app.loadCache(geocode, LoadFlags.LOAD_WAYPOINTS);
+ cgCache cache = cgData.loadCache(geocode, LoadFlags.LOAD_WAYPOINTS);
if (null != cache && cache.addOrChangeWaypoint(waypoint, true)) {
- app.saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
+ cgData.saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
StaticMapsProvider.removeWpStaticMaps(id, geocode);
if (Settings.isStoreOfflineWpMaps()) {
StaticMapsProvider.storeWaypointStaticMap(cache, waypoint, false);
diff --git a/main/src/cgeo/geocaching/ImagesActivity.java b/main/src/cgeo/geocaching/ImagesActivity.java
index 234a2e9..82902b5 100644
--- a/main/src/cgeo/geocaching/ImagesActivity.java
+++ b/main/src/cgeo/geocaching/ImagesActivity.java
@@ -62,7 +62,7 @@ public class ImagesActivity extends AbstractActivity {
return;
}
- offline = app.isOffline(geocode, null) && (imgType == ImageType.SpoilerImages || Settings.isStoreLogImages());
+ offline = cgData.isOffline(geocode, null) && (imgType == ImageType.SpoilerImages || Settings.isStoreLogImages());
}
@Override
diff --git a/main/src/cgeo/geocaching/LogTrackableActivity.java b/main/src/cgeo/geocaching/LogTrackableActivity.java
index af56c6c..a4677d0 100644
--- a/main/src/cgeo/geocaching/LogTrackableActivity.java
+++ b/main/src/cgeo/geocaching/LogTrackableActivity.java
@@ -127,7 +127,7 @@ public class LogTrackableActivity extends AbstractLoggingActivity implements Dat
}
}
- trackable = app.getTrackableByGeocode(geocode);
+ trackable = cgData.loadTrackable(geocode);
if (StringUtils.isNotBlank(trackable.getName())) {
setTitle(res.getString(R.string.trackable_touch) + ": " + trackable.getName());
diff --git a/main/src/cgeo/geocaching/SearchActivity.java b/main/src/cgeo/geocaching/SearchActivity.java
index dd5f52d..35fe70d 100644
--- a/main/src/cgeo/geocaching/SearchActivity.java
+++ b/main/src/cgeo/geocaching/SearchActivity.java
@@ -156,7 +156,7 @@ public class SearchActivity extends AbstractActivity {
findByGeocodeFn();
}
});
- addHistoryEntries(geocodeEdit, app.geocodesInCache());
+ addHistoryEntries(geocodeEdit, cgData.getRecentGeocodesForSearch());
final Button displayByGeocode = (Button) findViewById(R.id.display_geocode);
displayByGeocode.setOnClickListener(new findByGeocodeListener());
@@ -208,7 +208,7 @@ public class SearchActivity extends AbstractActivity {
findTrackableFn();
}
});
- addHistoryEntries(trackable, app.getTrackableCodes());
+ addHistoryEntries(trackable, cgData.getTrackableCodes());
disableSuggestions(trackable);
diff --git a/main/src/cgeo/geocaching/SearchResult.java b/main/src/cgeo/geocaching/SearchResult.java
index e21717d..861367b 100644
--- a/main/src/cgeo/geocaching/SearchResult.java
+++ b/main/src/cgeo/geocaching/SearchResult.java
@@ -170,8 +170,7 @@ public class SearchResult implements Parcelable {
SearchResult result = new SearchResult(this);
result.geocodes.clear();
final ArrayList<cgCache> cachesForVote = new ArrayList<cgCache>();
-
- final Set<cgCache> caches = cgeoapplication.getInstance().loadCaches(geocodes, LoadFlags.LOAD_CACHE_OR_DB);
+ final Set<cgCache> caches = cgData.loadCaches(geocodes, LoadFlags.LOAD_CACHE_OR_DB);
for (cgCache cache : caches) {
// Is there any reason to exclude the cache from the list?
final boolean excludeCache = (excludeDisabled && cache.isDisabled()) ||
@@ -188,13 +187,13 @@ public class SearchResult implements Parcelable {
public cgCache getFirstCacheFromResult(final EnumSet<LoadFlag> loadFlags) {
if (geocodes != null && geocodes.size() >= 1) {
- return cgeoapplication.getInstance().loadCache((String) geocodes.toArray()[0], loadFlags);
+ return cgData.loadCache((String) geocodes.toArray()[0], loadFlags);
}
return null;
}
public Set<cgCache> getCachesFromSearchResult(final EnumSet<LoadFlag> loadFlags) {
- return cgeoapplication.getInstance().loadCaches(geocodes, loadFlags);
+ return cgData.loadCaches(geocodes, loadFlags);
}
/** Add the geocode to the search. No cache is loaded into the CacheCache */
@@ -213,11 +212,24 @@ public class SearchResult implements Parcelable {
/** Add the cache geocode to the search and store the cache in the CacheCache */
public boolean addCache(final cgCache cache) {
addGeocode(cache.getGeocode());
- return cgeoapplication.getInstance().saveCache(cache, EnumSet.of(SaveFlag.SAVE_CACHE));
+ return cgData.saveCache(cache, EnumSet.of(SaveFlag.SAVE_CACHE));
}
public boolean isEmpty() {
return geocodes.isEmpty();
}
+ public boolean hasUnsavedCaches() {
+ if (this == null) {
+ return false;
+ }
+
+ for (final String geocode : getGeocodes()) {
+ if (!cgData.isOffline(geocode, null)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
}
diff --git a/main/src/cgeo/geocaching/SettingsActivity.java b/main/src/cgeo/geocaching/SettingsActivity.java
index 46cf5ed..2acdf82 100644
--- a/main/src/cgeo/geocaching/SettingsActivity.java
+++ b/main/src/cgeo/geocaching/SettingsActivity.java
@@ -759,7 +759,7 @@ public class SettingsActivity extends AbstractActivity {
*/
public void backup(View view) {
// avoid overwriting an existing backup with an empty database (can happen directly after reinstalling the app)
- if (cgeoapplication.getAllCachesCount() == 0) {
+ if (cgData.getAllCachesCount() == 0) {
helpDialog(res.getString(R.string.init_backup), res.getString(R.string.init_backup_unnecessary));
return;
}
@@ -768,7 +768,7 @@ public class SettingsActivity extends AbstractActivity {
new Thread() {
@Override
public void run() {
- final String backupFileName = app.backupDatabase();
+ final String backupFileName = cgData.backupDatabase();
runOnUiThread(new Runnable() {
@Override
public void run() {
@@ -784,7 +784,7 @@ public class SettingsActivity extends AbstractActivity {
private void refreshBackupLabel() {
TextView lastBackup = (TextView) findViewById(R.id.backup_last);
- File lastBackupFile = cgeoapplication.isRestoreFile();
+ File lastBackupFile = cgData.getRestoreFile();
if (lastBackupFile != null) {
lastBackup.setText(res.getString(R.string.init_backup_last) + " " + Formatter.formatTime(lastBackupFile.lastModified()) + ", " + Formatter.formatDate(lastBackupFile.lastModified()));
} else {
diff --git a/main/src/cgeo/geocaching/StaticMapsActivity.java b/main/src/cgeo/geocaching/StaticMapsActivity.java
index e6173b2..82fa46d 100644
--- a/main/src/cgeo/geocaching/StaticMapsActivity.java
+++ b/main/src/cgeo/geocaching/StaticMapsActivity.java
@@ -183,7 +183,7 @@ public class StaticMapsActivity extends AbstractActivity {
}
private boolean downloadStaticMaps() {
- final cgCache cache = app.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
+ final cgCache cache = cgData.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
if (waypoint_id == null) {
showToast(res.getString(R.string.info_storing_static_maps));
StaticMapsProvider.storeCacheStaticMap(cache, true);
diff --git a/main/src/cgeo/geocaching/StoredList.java b/main/src/cgeo/geocaching/StoredList.java
index cdff1cb..bb00506 100644
--- a/main/src/cgeo/geocaching/StoredList.java
+++ b/main/src/cgeo/geocaching/StoredList.java
@@ -50,7 +50,7 @@ public class StoredList {
}
public void promptForListSelection(final int titleId, final RunnableWithArgument<Integer> runAfterwards, final boolean onlyMoveTargets) {
- final List<StoredList> lists = app.getLists();
+ final List<StoredList> lists = cgData.getLists();
if (lists == null) {
return;
@@ -94,7 +94,7 @@ public class StoredList {
@Override
public void run(final String listName) {
- final int newId = app.createList(listName);
+ final int newId = cgData.createList(listName);
if (newId >= cgData.customListIdOffset) {
activity.showToast(res.getString(R.string.list_dialog_create_ok));
@@ -137,12 +137,12 @@ public class StoredList {
}
public void promptForListRename(final int listId, final Runnable runAfterRename) {
- final StoredList list = app.getList(listId);
+ final StoredList list = cgData.getList(listId);
handleListNameInput(list.title, R.string.list_dialog_rename_title, R.string.list_dialog_rename, new RunnableWithArgument<String>() {
@Override
public void run(final String listName) {
- app.renameList(listId, listName);
+ cgData.renameList(listId, listName);
if (runAfterRename != null) {
runAfterRename.run();
}
diff --git a/main/src/cgeo/geocaching/VisitCacheActivity.java b/main/src/cgeo/geocaching/VisitCacheActivity.java
index 8c9802e..76018c0 100644
--- a/main/src/cgeo/geocaching/VisitCacheActivity.java
+++ b/main/src/cgeo/geocaching/VisitCacheActivity.java
@@ -251,13 +251,12 @@ public class VisitCacheActivity extends AbstractLoggingActivity implements DateD
}
if ((StringUtils.isBlank(cacheid)) && StringUtils.isNotBlank(geocode)) {
- cacheid = app.getCacheid(geocode);
+ cacheid = cgData.getCacheidForGeocode(geocode);
}
if (StringUtils.isBlank(geocode) && StringUtils.isNotBlank(cacheid)) {
- geocode = app.getGeocode(cacheid);
+ geocode = cgData.getGeocodeForGuid(cacheid);
}
-
- cache = cgeoapplication.getInstance().loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
+ cache = cgData.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
if (StringUtils.isNotBlank(cache.getName())) {
setTitle(res.getString(R.string.log_new_log) + ": " + cache.getName());
@@ -450,7 +449,7 @@ public class VisitCacheActivity extends AbstractLoggingActivity implements DateD
possibleLogTypes = cache.getPossibleLogTypes();
- final LogEntry log = app.loadLogOffline(geocode);
+ final LogEntry log = cgData.loadLogOffline(geocode);
if (log != null) {
typeSelected = log.type;
date.setTime(new Date(log.date));
@@ -576,7 +575,7 @@ public class VisitCacheActivity extends AbstractLoggingActivity implements DateD
@Override
public void onClick(View arg0) {
//TODO: unify this method and the code in init()
- app.clearLogOffline(geocode);
+ cgData.clearLogOffline(geocode);
if (alreadyFound) {
typeSelected = LogType.NOTE;
@@ -687,11 +686,11 @@ public class VisitCacheActivity extends AbstractLoggingActivity implements DateD
cache.setFound(true);
}
- app.updateCache(cache);
+ cgData.saveChangedCache(cache);
}
if (status == StatusCode.NO_ERROR) {
- app.clearLogOffline(geocode);
+ cgData.clearLogOffline(geocode);
}
if (status == StatusCode.NO_ERROR && typeSelected == LogType.FOUND_IT && Settings.isUseTwitter()
diff --git a/main/src/cgeo/geocaching/WaypointPopup.java b/main/src/cgeo/geocaching/WaypointPopup.java
index 8596107..eb0bc17 100644
--- a/main/src/cgeo/geocaching/WaypointPopup.java
+++ b/main/src/cgeo/geocaching/WaypointPopup.java
@@ -38,7 +38,7 @@ public class WaypointPopup extends AbstractPopupActivity {
@Override
protected void init() {
super.init();
- waypoint = app.loadWaypoint(waypointId);
+ waypoint = cgData.loadWaypoint(waypointId);
try {
if (StringUtils.isNotBlank(waypoint.getName())) {
setTitle(waypoint.getName());
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/AbstractStaticMapsApp.java b/main/src/cgeo/geocaching/apps/cache/navi/AbstractStaticMapsApp.java
index f27b53c..f8521ad 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/AbstractStaticMapsApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/AbstractStaticMapsApp.java
@@ -5,8 +5,8 @@ import cgeo.geocaching.R;
import cgeo.geocaching.StaticMapsActivity;
import cgeo.geocaching.StaticMapsProvider;
import cgeo.geocaching.cgCache;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.cgWaypoint;
-import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.apps.AbstractApp;
@@ -30,11 +30,12 @@ abstract class AbstractStaticMapsApp extends AbstractApp implements CacheNavigat
}
protected static boolean hasStaticMap(cgWaypoint waypoint) {
- if (waypoint==null)
+ if (waypoint==null) {
return false;
+ }
String geocode = waypoint.getGeocode();
int id = waypoint.getId();
- if (StringUtils.isNotEmpty(geocode) && cgeoapplication.getInstance().isOffline(geocode, null)) {
+ if (StringUtils.isNotEmpty(geocode) && cgData.isOffline(geocode, null)) {
return StaticMapsProvider.hasStaticMapForWaypoint(geocode, id);
}
return false;
diff --git a/main/src/cgeo/geocaching/cgCache.java b/main/src/cgeo/geocaching/cgCache.java
index dfc18ab..6ce2dcc 100644
--- a/main/src/cgeo/geocaching/cgCache.java
+++ b/main/src/cgeo/geocaching/cgCache.java
@@ -99,20 +99,20 @@ public class cgCache implements ICache, IWaypoint {
private LazyInitializedList<String> attributes = new LazyInitializedList<String>() {
@Override
protected List<String> loadFromDatabase() {
- return cgeoapplication.getInstance().loadAttributes(geocode);
+ return cgData.loadAttributes(geocode);
}
};
private LazyInitializedList<cgWaypoint> waypoints = new LazyInitializedList<cgWaypoint>() {
@Override
protected List<cgWaypoint> loadFromDatabase() {
- return cgeoapplication.getInstance().loadWaypoints(geocode);
+ return cgData.loadWaypoints(geocode);
}
};
private List<cgImage> spoilers = null;
private LazyInitializedList<LogEntry> logs = new LazyInitializedList<LogEntry>() {
@Override
protected List<LogEntry> loadFromDatabase() {
- return cgeoapplication.getInstance().loadLogs(geocode);
+ return cgData.loadLogs(geocode);
}
};
private List<cgTrackable> inventory = null;
@@ -457,13 +457,12 @@ public class cgCache implements ICache, IWaypoint {
if (logType == LogType.UNKNOWN) {
return;
}
- cgeoapplication app = (cgeoapplication) fromActivity.getApplication();
- final boolean status = app.saveLogOffline(geocode, date.getTime(), logType, log);
+ final boolean status = cgData.saveLogOffline(geocode, date.getTime(), logType, log);
Resources res = fromActivity.getResources();
if (status) {
ActivityMixin.showToast(fromActivity, res.getString(R.string.info_log_saved));
- app.saveVisitDate(geocode);
+ cgData.saveVisitDate(geocode);
logOffline = true;
notifyChange();
@@ -603,7 +602,7 @@ public class cgCache implements ICache, IWaypoint {
@Override
public String getDescription() {
if (description == null) {
- description = StringUtils.defaultString(cgeoapplication.getInstance().getCacheDescription(geocode));
+ description = StringUtils.defaultString(cgData.getCacheDescription(geocode));
}
return description;
}
@@ -958,8 +957,7 @@ public class cgCache implements ICache, IWaypoint {
}
}
}
-
- return saveToDatabase && cgeoapplication.getInstance().saveWaypoints(this);
+ return saveToDatabase && cgData.saveWaypoints(this);
}
/**
@@ -1166,8 +1164,7 @@ public class cgCache implements ICache, IWaypoint {
// when waypoint was edited, finalDefined may have changed
resetFinalDefined();
}
-
- return saveToDatabase && cgeoapplication.getInstance().saveWaypoint(waypoint.getId(), geocode, waypoint);
+ return saveToDatabase && cgData.saveWaypoint(waypoint.getId(), geocode, waypoint);
}
public boolean hasWaypoints() {
@@ -1219,7 +1216,7 @@ public class cgCache implements ICache, IWaypoint {
copy.setUserDefined();
copy.setName(cgeoapplication.getInstance().getString(R.string.waypoint_copy_of) + " " + copy.getName());
waypoints.add(index + 1, copy);
- return cgeoapplication.getInstance().saveWaypoint(-1, geocode, copy);
+ return cgData.saveWaypoint(-1, geocode, copy);
}
/**
@@ -1236,8 +1233,8 @@ public class cgCache implements ICache, IWaypoint {
}
if (waypoint.isUserDefined()) {
waypoints.remove(index);
- cgeoapplication.getInstance().deleteWaypoint(waypoint.getId());
- cgeoapplication.getInstance().removeCache(geocode, EnumSet.of(RemoveFlag.REMOVE_CACHE));
+ cgData.deleteWaypoint(waypoint.getId());
+ cgData.removeCache(geocode, EnumSet.of(RemoveFlag.REMOVE_CACHE));
// Check status if Final is defined
if (waypoint.isFinalWithCoords()) {
resetFinalDefined();
@@ -1391,8 +1388,8 @@ public class cgCache implements ICache, IWaypoint {
public void drop(Handler handler) {
try {
- cgeoapplication.getInstance().markDropped(Collections.singletonList(this));
- cgeoapplication.getInstance().removeCache(getGeocode(), EnumSet.of(RemoveFlag.REMOVE_CACHE));
+ cgData.markDropped(Collections.singletonList(this));
+ cgData.removeCache(getGeocode(), EnumSet.of(RemoveFlag.REMOVE_CACHE));
handler.sendMessage(Message.obtain());
} catch (Exception e) {
@@ -1443,7 +1440,7 @@ public class cgCache implements ICache, IWaypoint {
}
public void refresh(int newListId, CancellableHandler handler) {
- cgeoapplication.getInstance().removeCache(geocode, EnumSet.of(RemoveFlag.REMOVE_CACHE));
+ cgData.removeCache(geocode, EnumSet.of(RemoveFlag.REMOVE_CACHE));
storeCache(null, geocode, newListId, true, handler);
}
@@ -1516,7 +1513,7 @@ public class cgCache implements ICache, IWaypoint {
}
cache.setListId(listId);
- cgeoapplication.getInstance().saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
+ cgData.saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
if (CancellableHandler.isCancelled(handler)) {
return;
@@ -1538,10 +1535,9 @@ public class cgCache implements ICache, IWaypoint {
return null;
}
- final cgeoapplication app = cgeoapplication.getInstance();
- if (!forceReload && listId == StoredList.TEMPORARY_LIST_ID && (app.isOffline(geocode, guid) || app.isThere(geocode, guid, true, true))) {
+ if (!forceReload && listId == StoredList.TEMPORARY_LIST_ID && (cgData.isOffline(geocode, guid) || cgData.isThere(geocode, guid, true, true))) {
final SearchResult search = new SearchResult();
- final String realGeocode = StringUtils.isNotBlank(geocode) ? geocode : app.getGeocode(guid);
+ final String realGeocode = StringUtils.isNotBlank(geocode) ? geocode : cgData.getGeocodeForGuid(guid);
search.addGeocode(realGeocode);
return search;
}
@@ -1613,8 +1609,7 @@ public class cgCache implements ICache, IWaypoint {
* @return
*/
public boolean hasAttribute(CacheAttribute attribute, boolean yes) {
- // lazy loading of attributes
- cgCache fullCache = cgeoapplication.getInstance().loadCache(getGeocode(), EnumSet.of(LoadFlag.LOAD_ATTRIBUTES));
+ cgCache fullCache = cgData.loadCache(getGeocode(), EnumSet.of(LoadFlag.LOAD_ATTRIBUTES));
if (fullCache == null) {
fullCache = this;
}
diff --git a/main/src/cgeo/geocaching/cgData.java b/main/src/cgeo/geocaching/cgData.java
index 83b45ab..c163c57 100644
--- a/main/src/cgeo/geocaching/cgData.java
+++ b/main/src/cgeo/geocaching/cgData.java
@@ -47,6 +47,10 @@ import java.util.regex.Pattern;
public class cgData {
+ private cgData() {
+ // utility class
+ }
+
public enum StorageLocation {
HEAP,
CACHE,
@@ -71,7 +75,7 @@ public class cgData {
* holds the column indexes of the cache table to avoid lookups
*/
private static int[] cacheColumnIndex;
- private CacheCache cacheCache = new CacheCache();
+ private static CacheCache cacheCache = new CacheCache();
private static SQLiteDatabase database = null;
private static final int dbVersion = 64;
public static final int customListIdOffset = 10;
@@ -235,8 +239,9 @@ public class cgData {
+ "); ";
private static boolean newlyCreatedDatabase = false;
+ private static boolean databaseCleaned = false;
- public synchronized void init() {
+ public synchronized static void init() {
if (database != null) {
return;
}
@@ -249,7 +254,7 @@ public class cgData {
}
}
- public void closeDb() {
+ public static void closeDb() {
if (database == null) {
return;
}
@@ -260,17 +265,17 @@ public class cgData {
database = null;
}
- private static File backupFile() {
+ private static File getBackupFile() {
return new File(LocalStorage.getStorage(), "cgeo.sqlite");
}
- public String backupDatabase() {
+ public static String backupDatabase() {
if (!LocalStorage.isExternalStorageAvailable()) {
Log.w("Database wasn't backed up: no external memory");
return null;
}
- final File target = backupFile();
+ final File target = getBackupFile();
closeDb();
final boolean backupDone = LocalStorage.copy(databasePath(), target);
init();
@@ -284,7 +289,7 @@ public class cgData {
return target.getPath();
}
- public boolean moveDatabase() {
+ public static boolean moveDatabase() {
if (!LocalStorage.isExternalStorageAvailable()) {
Log.w("Database was not moved: external memory not available");
return false;
@@ -320,18 +325,18 @@ public class cgData {
return databasePath(Settings.isDbOnSDCard());
}
- public static File isRestoreFile() {
- final File fileSourceFile = backupFile();
+ public static File getRestoreFile() {
+ final File fileSourceFile = getBackupFile();
return fileSourceFile.exists() ? fileSourceFile : null;
}
- public boolean restoreDatabase() {
+ public static boolean restoreDatabase() {
if (!LocalStorage.isExternalStorageAvailable()) {
Log.w("Database wasn't restored: no external memory");
return false;
}
- final File sourceFile = backupFile();
+ final File sourceFile = getBackupFile();
closeDb();
final boolean restoreDone = LocalStorage.copy(sourceFile, databasePath());
init();
@@ -660,7 +665,7 @@ public class cgData {
final FilenameFilter filter = new FilenameFilter() {
@Override
public boolean accept(File dir, String filename) {
- return (filename.startsWith("map_") && filename.contains("__"));
+ return filename.startsWith("map_") && filename.contains("__");
}
};
for (File dir : geocodeDirs) {
@@ -731,7 +736,7 @@ public class cgData {
db.execSQL("drop table if exists " + dbTableTrackables);
}
- public String[] allDetailedThere() {
+ public static String[] getRecentGeocodesForSearch() {
init();
Cursor cursor = null;
@@ -775,7 +780,7 @@ public class cgData {
return list.toArray(new String[list.size()]);
}
- public boolean isThere(String geocode, String guid, boolean detailed, boolean checkTime) {
+ public static boolean isThere(String geocode, String guid, boolean detailed, boolean checkTime) {
init();
Cursor cursor = null;
@@ -858,7 +863,7 @@ public class cgData {
}
/** is cache stored in one of the lists (not only temporary) */
- public boolean isOffline(String geocode, String guid) {
+ public static boolean isOffline(String geocode, String guid) {
if (StringUtils.isBlank(geocode) && StringUtils.isBlank(guid)) {
return false;
}
@@ -888,7 +893,7 @@ public class cgData {
return false;
}
- public String getGeocodeForGuid(String guid) {
+ public static String getGeocodeForGuid(String guid) {
if (StringUtils.isBlank(guid)) {
return null;
}
@@ -909,7 +914,7 @@ public class cgData {
return null;
}
- public String getCacheidForGeocode(String geocode) {
+ public static String getCacheidForGeocode(String geocode) {
if (StringUtils.isBlank(geocode)) {
return null;
}
@@ -939,7 +944,7 @@ public class cgData {
*
* @return true = cache saved successfully to the CacheCache/DB
*/
- public boolean saveCache(cgCache cache, EnumSet<LoadFlags.SaveFlag> saveFlags) {
+ public static boolean saveCache(cgCache cache, EnumSet<LoadFlags.SaveFlag> saveFlags) {
if (cache == null) {
throw new IllegalArgumentException("cache must not be null");
}
@@ -1074,7 +1079,7 @@ public class cgData {
* @param destination
* a destination to save
*/
- public void saveSearchedDestination(final Destination destination) {
+ public static void saveSearchedDestination(final Destination destination) {
init();
database.beginTransaction();
@@ -1090,7 +1095,7 @@ public class cgData {
}
}
- public boolean saveWaypoints(final cgCache cache) {
+ public static boolean saveWaypoints(final cgCache cache) {
boolean result = false;
init();
database.beginTransaction();
@@ -1170,7 +1175,7 @@ public class cgData {
return new Geopoint(cursor.getDouble(indexLat), cursor.getDouble(indexLon));
}
- public boolean saveWaypoint(int id, String geocode, cgWaypoint waypoint) {
+ private static boolean saveWaypointInternal(int id, String geocode, cgWaypoint waypoint) {
if ((StringUtils.isBlank(geocode) && id <= 0) || waypoint == null) {
return false;
}
@@ -1208,7 +1213,7 @@ public class cgData {
return ok;
}
- public boolean deleteWaypoint(int id) {
+ public static boolean deleteWaypoint(int id) {
if (id == 0) {
return false;
}
@@ -1295,7 +1300,7 @@ public class cgData {
}
}
- public boolean saveTrackable(final cgTrackable trackable) {
+ public static boolean saveTrackable(final cgTrackable trackable) {
init();
database.beginTransaction();
@@ -1346,7 +1351,7 @@ public class cgData {
}
}
- public Viewport getBounds(final Set<String> geocodes) {
+ public static Viewport getBounds(final Set<String> geocodes) {
if (CollectionUtils.isEmpty(geocodes)) {
return null;
}
@@ -1362,7 +1367,7 @@ public class cgData {
* The Geocode GCXXXX
* @return the loaded cache (if found). Can be null
*/
- public cgCache loadCache(final String geocode, final EnumSet<LoadFlag> loadFlags) {
+ public static cgCache loadCache(final String geocode, final EnumSet<LoadFlag> loadFlags) {
if (StringUtils.isBlank(geocode)) {
throw new IllegalArgumentException("geocode must not be empty");
}
@@ -1377,7 +1382,7 @@ public class cgData {
* @param geocodes
* @return Set of loaded caches. Never null.
*/
- public Set<cgCache> loadCaches(final Set<String> geocodes, final EnumSet<LoadFlag> loadFlags) {
+ public static Set<cgCache> loadCaches(final Set<String> geocodes, final EnumSet<LoadFlag> loadFlags) {
if (CollectionUtils.isEmpty(geocodes)) {
return new HashSet<cgCache>();
}
@@ -1433,7 +1438,7 @@ public class cgData {
* @param loadFlags
* @return Set of loaded caches. Never null.
*/
- private Set<cgCache> loadCachesFromGeocodes(final Set<String> geocodes, final EnumSet<LoadFlag> loadFlags) {
+ private static Set<cgCache> loadCachesFromGeocodes(final Set<String> geocodes, final EnumSet<LoadFlag> loadFlags) {
if (CollectionUtils.isEmpty(geocodes)) {
return Collections.emptySet();
}
@@ -1659,7 +1664,7 @@ public class cgData {
return cache;
}
- public List<String> loadAttributes(String geocode) {
+ public static List<String> loadAttributes(String geocode) {
if (StringUtils.isBlank(geocode)) {
return null;
}
@@ -1694,7 +1699,7 @@ public class cgData {
return attributes;
}
- public cgWaypoint loadWaypoint(int id) {
+ public static cgWaypoint loadWaypoint(int id) {
if (id == 0) {
return null;
}
@@ -1728,7 +1733,7 @@ public class cgData {
return waypoint;
}
- public List<cgWaypoint> loadWaypoints(final String geocode) {
+ public static List<cgWaypoint> loadWaypoints(final String geocode) {
if (StringUtils.isBlank(geocode)) {
return null;
}
@@ -1782,7 +1787,7 @@ public class cgData {
return waypoint;
}
- private List<cgImage> loadSpoilers(String geocode) {
+ private static List<cgImage> loadSpoilers(String geocode) {
if (StringUtils.isBlank(geocode)) {
return null;
}
@@ -1827,7 +1832,7 @@ public class cgData {
*
* @return A list of previously entered destinations or an empty list.
*/
- public List<Destination> loadHistoryOfSearchedLocations() {
+ public static List<Destination> loadHistoryOfSearchedLocations() {
init();
Cursor cursor = database.query(dbTableSearchDestionationHistory,
@@ -1866,7 +1871,7 @@ public class cgData {
return destinations;
}
- public boolean clearSearchedDestinations() {
+ public static boolean clearSearchedDestinations() {
boolean success = true;
init();
database.beginTransaction();
@@ -1884,7 +1889,7 @@ public class cgData {
return success;
}
- public List<LogEntry> loadLogs(String geocode) {
+ public static List<LogEntry> loadLogs(String geocode) {
List<LogEntry> logs = new ArrayList<LogEntry>();
if (StringUtils.isBlank(geocode)) {
@@ -1937,7 +1942,7 @@ public class cgData {
return logs;
}
- public Map<LogType, Integer> loadLogCounts(String geocode) {
+ public static Map<LogType, Integer> loadLogCounts(String geocode) {
if (StringUtils.isBlank(geocode)) {
return null;
}
@@ -1976,7 +1981,7 @@ public class cgData {
return logCounts;
}
- private List<cgTrackable> loadInventory(String geocode) {
+ private static List<cgTrackable> loadInventory(String geocode) {
if (StringUtils.isBlank(geocode)) {
return null;
}
@@ -2012,7 +2017,7 @@ public class cgData {
return trackables;
}
- public cgTrackable loadTrackable(String geocode) {
+ public static cgTrackable loadTrackable(String geocode) {
if (StringUtils.isBlank(geocode)) {
return null;
}
@@ -2043,7 +2048,7 @@ public class cgData {
return trackable;
}
- private cgTrackable createTrackableFromDatabaseContent(Cursor cursor) {
+ private static cgTrackable createTrackableFromDatabaseContent(Cursor cursor) {
cgTrackable trackable = new cgTrackable();
trackable.setGeocode(cursor.getString(cursor.getColumnIndex("tbcode")));
trackable.setGuid(cursor.getString(cursor.getColumnIndex("guid")));
@@ -2071,7 +2076,7 @@ public class cgData {
* @param list
* @return
*/
- public int getAllStoredCachesCount(final CacheType cacheType, final int list) {
+ public static int getAllStoredCachesCount(final CacheType cacheType, final int list) {
if (cacheType == null) {
throw new IllegalArgumentException("cacheType must not be null");
}
@@ -2102,7 +2107,7 @@ public class cgData {
return 0;
}
- public int getAllHistoryCachesCount() {
+ public static int getAllHistoryCachesCount() {
init();
try {
@@ -2123,7 +2128,7 @@ public class cgData {
* @param listId
* @return
*/
- public Set<String> loadBatchOfStoredGeocodes(final Geopoint coords, final CacheType cacheType, final int listId) {
+ private static Set<String> loadBatchOfStoredGeocodes(final Geopoint coords, final CacheType cacheType, final int listId) {
if (cacheType == null) {
throw new IllegalArgumentException("cacheType must not be null");
}
@@ -2183,7 +2188,7 @@ public class cgData {
return geocodes;
}
- public Set<String> loadBatchOfHistoricGeocodes(final boolean detailedOnly, final CacheType cacheType) {
+ private static Set<String> loadBatchOfHistoricGeocodes(final boolean detailedOnly, final CacheType cacheType) {
init();
Set<String> geocodes = new HashSet<String>();
@@ -2233,12 +2238,12 @@ public class cgData {
}
/** Retrieve all stored caches from DB */
- public Set<String> loadCachedInViewport(final Viewport viewport, final CacheType cacheType) {
+ public static SearchResult loadCachedInViewport(final Viewport viewport, final CacheType cacheType) {
return loadInViewport(false, viewport, cacheType);
}
/** Retrieve stored caches from DB with listId >= 1 */
- public Set<String> loadStoredInViewport(final Viewport viewport, final CacheType cacheType) {
+ public static SearchResult loadStoredInViewport(final Viewport viewport, final CacheType cacheType) {
return loadInViewport(true, viewport, cacheType);
}
@@ -2254,7 +2259,7 @@ public class cgData {
* @param cacheType
* @return Set with geocodes
*/
- private Set<String> loadInViewport(final boolean stored, final Viewport viewport, final CacheType cacheType) {
+ private static SearchResult loadInViewport(final boolean stored, final Viewport viewport, final CacheType cacheType) {
init();
final Set<String> geocodes = new HashSet<String>();
@@ -2301,11 +2306,11 @@ public class cgData {
Log.e("cgData.loadInViewport: " + e.toString());
}
- return geocodes;
+ return new SearchResult(geocodes);
}
/** delete caches from the DB store 3 days or more before */
- public void clean() {
+ public static void clean() {
clean(false);
}
@@ -2315,7 +2320,11 @@ public class cgData {
* @param more
* true = all caches false = caches stored 3 days or more before
*/
- public void clean(boolean more) {
+ public static void clean(boolean more) {
+ if (databaseCleaned) {
+ return;
+ }
+
init();
Log.d("Database clean: started");
@@ -2373,14 +2382,15 @@ public class cgData {
}
Log.d("Database clean: finished");
+ databaseCleaned = true;
}
- public void removeAllFromCache() {
+ public static void removeAllFromCache() {
// clean up CacheCache
cacheCache.removeAllFromCache();
}
- public void removeCache(final String geocode, EnumSet<LoadFlags.RemoveFlag> removeFlags) {
+ public static void removeCache(final String geocode, EnumSet<LoadFlags.RemoveFlag> removeFlags) {
removeCaches(Collections.singleton(geocode), removeFlags);
}
@@ -2390,7 +2400,7 @@ public class cgData {
* @param geocodes
* list of geocodes to drop from cache
*/
- public void removeCaches(final Set<String> geocodes, EnumSet<LoadFlags.RemoveFlag> removeFlags) {
+ public static void removeCaches(final Set<String> geocodes, EnumSet<LoadFlags.RemoveFlag> removeFlags) {
if (CollectionUtils.isEmpty(geocodes)) {
return;
}
@@ -2437,7 +2447,7 @@ public class cgData {
}
}
- public boolean saveLogOffline(String geocode, Date date, LogType type, String log) {
+ public static boolean saveLogOffline(String geocode, Date date, LogType type, String log) {
if (StringUtils.isBlank(geocode)) {
Log.e("cgData.saveLogOffline: cannot log a blank geocode");
return false;
@@ -2464,7 +2474,7 @@ public class cgData {
return id != -1;
}
- public LogEntry loadLogOffline(String geocode) {
+ public static LogEntry loadLogOffline(String geocode) {
if (StringUtils.isBlank(geocode)) {
return null;
}
@@ -2500,7 +2510,7 @@ public class cgData {
return log;
}
- public void clearLogOffline(String geocode) {
+ public static void clearLogOffline(String geocode) {
if (StringUtils.isBlank(geocode)) {
return;
}
@@ -2510,7 +2520,7 @@ public class cgData {
database.delete(dbTableLogsOffline, "geocode = ?", new String[]{geocode});
}
- public boolean hasLogOffline(final String geocode) {
+ public static boolean hasLogOffline(final String geocode) {
if (StringUtils.isBlank(geocode)) {
return false;
}
@@ -2529,7 +2539,7 @@ public class cgData {
return false;
}
- public void setVisitDate(List<String> geocodes, long visitedDate) {
+ private static void setVisitDate(List<String> geocodes, long visitedDate) {
if (geocodes.isEmpty()) {
return;
}
@@ -2551,9 +2561,10 @@ public class cgData {
}
}
- public List<StoredList> getLists(Resources res) {
+ public static List<StoredList> getLists() {
init();
+ Resources res = cgeoapplication.getInstance().getResources();
List<StoredList> lists = new ArrayList<StoredList>();
lists.add(new StoredList(StoredList.STANDARD_LIST_ID, res.getString(R.string.list_inbox), (int) PreparedStatements.getCountCachesOnStandardList().simpleQueryForLong()));
@@ -2597,7 +2608,7 @@ public class cgData {
return result;
}
- public StoredList getList(int id, Resources res) {
+ public static StoredList getList(int id) {
init();
if (id >= customListIdOffset) {
Cursor cursor = database.query(
@@ -2614,6 +2625,7 @@ public class cgData {
}
}
+ Resources res = cgeoapplication.getInstance().getResources();
if (id == StoredList.ALL_LIST_ID) {
return new StoredList(StoredList.ALL_LIST_ID, res.getString(R.string.list_all_lists), getAllCachesCount());
}
@@ -2637,7 +2649,7 @@ public class cgData {
* Name
* @return new listId
*/
- public int createList(String name) {
+ public static int createList(String name) {
int id = -1;
if (StringUtils.isBlank(name)) {
return id;
@@ -2667,7 +2679,7 @@ public class cgData {
* New name of list
* @return Number of lists changed
*/
- public int renameList(final int listId, final String name) {
+ public static int renameList(final int listId, final String name) {
if (StringUtils.isBlank(name) || StoredList.STANDARD_LIST_ID == listId) {
return 0;
}
@@ -2696,7 +2708,7 @@ public class cgData {
* @param listId
* @return true if the list got deleted, false else
*/
- public boolean removeList(int listId) {
+ public static boolean removeList(int listId) {
if (listId < customListIdOffset) {
return false;
}
@@ -2725,7 +2737,7 @@ public class cgData {
return status;
}
- public void moveToList(final List<cgCache> caches, final int listId) {
+ public static void moveToList(final List<cgCache> caches, final int listId) {
if (listId == StoredList.ALL_LIST_ID) {
return;
}
@@ -2750,33 +2762,32 @@ public class cgData {
}
}
- public boolean status() {
+ public static boolean isInitialized() {
return database != null;
}
- public boolean removeSearchedDestination(Destination destination) {
- boolean success = true;
+ public static boolean removeSearchedDestination(Destination destination) {
if (destination == null) {
- success = false;
- } else {
- init();
+ return false;
+ }
+ init();
- database.beginTransaction();
- try {
- database.delete(dbTableSearchDestionationHistory, "_id = " + destination.getId(), null);
- database.setTransactionSuccessful();
- } catch (Exception e) {
- Log.e("Unable to remove searched destination", e);
- success = false;
- } finally {
- database.endTransaction();
- }
+ boolean result = false;
+ database.beginTransaction();
+ try {
+ database.delete(dbTableSearchDestionationHistory, "_id = " + destination.getId(), null);
+ database.setTransactionSuccessful();
+ result = true;
+ } catch (Exception e) {
+ Log.e("Unable to remove searched destination", e);
+ } finally {
+ database.endTransaction();
}
- return success;
+ return result;
}
- public String getCacheDescription(String geocode) {
+ public static String getCacheDescription(String geocode) {
if (StringUtils.isBlank(geocode)) {
return null;
}
@@ -2840,7 +2851,7 @@ public class cgData {
* @return
*/
- public Set<cgWaypoint> loadWaypoints(final Viewport viewport, boolean excludeMine, boolean excludeDisabled, CacheType type) {
+ public static Set<cgWaypoint> loadWaypoints(final Viewport viewport, boolean excludeMine, boolean excludeDisabled, CacheType type) {
final StringBuilder where = new StringBuilder(buildCoordinateWhere(dbTableWaypoints, viewport));
if (excludeMine) {
where.append(" and ").append(dbTableCaches).append(".own == 0 and ").append(dbTableCaches).append(".found == 0");
@@ -2849,7 +2860,7 @@ public class cgData {
where.append(" and ").append(dbTableCaches).append(".disabled == 0");
}
if (type != CacheType.ALL) {
- where.append(" and ").append(dbTableCaches).append(".type == '").append(type.id).append("'");
+ where.append(" and ").append(dbTableCaches).append(".type == '").append(type.id).append('\'');
}
init();
@@ -2875,7 +2886,7 @@ public class cgData {
}
}
- public String[] getTrackableCodes() {
+ public static String[] getTrackableCodes() {
init();
final Cursor cursor = database.query(
@@ -2904,6 +2915,10 @@ public class cgData {
return list.toArray(new String[list.size()]);
}
+ public static boolean saveChangedCache(cgCache cache) {
+ return cgData.saveCache(cache, cache.getStorageLocation().contains(StorageLocation.DATABASE) ? LoadFlags.SAVE_ALL : EnumSet.of(SaveFlag.SAVE_CACHE));
+ }
+
private static class PreparedStatements {
private static HashMap<String, SQLiteStatement> statements = new HashMap<String, SQLiteStatement>();
@@ -3008,4 +3023,46 @@ public class cgData {
}
+ public static void saveVisitDate(final String geocode) {
+ setVisitDate(Collections.singletonList(geocode), System.currentTimeMillis());
+ }
+
+ public static void markDropped(List<cgCache> caches) {
+ moveToList(caches, StoredList.TEMPORARY_LIST_ID);
+ }
+
+ public static Viewport getBounds(String geocode) {
+ if (geocode == null) {
+ return null;
+ }
+
+ return cgData.getBounds(Collections.singleton(geocode));
+ }
+
+ public static void clearVisitDate(List<cgCache> caches) {
+ ArrayList<String> geocodes = new ArrayList<String>(caches.size());
+ for (cgCache cache : caches) {
+ geocodes.add(cache.getGeocode());
+ }
+ setVisitDate(geocodes, 0);
+ }
+
+ public static SearchResult getBatchOfStoredCaches(Geopoint coords, CacheType cacheType, int listId) {
+ final Set<String> geocodes = cgData.loadBatchOfStoredGeocodes(coords, cacheType, listId);
+ return new SearchResult(geocodes, cgData.getAllStoredCachesCount(cacheType, listId));
+ }
+
+ public static SearchResult getHistoryOfCaches(boolean detailedOnly, CacheType cacheType) {
+ final Set<String> geocodes = cgData.loadBatchOfHistoricGeocodes(detailedOnly, cacheType);
+ return new SearchResult(geocodes, cgData.getAllHistoryCachesCount());
+ }
+
+ public static boolean saveWaypoint(int id, String geocode, cgWaypoint waypoint) {
+ if (cgData.saveWaypointInternal(id, geocode, waypoint)) {
+ cgData.removeCache(geocode, EnumSet.of(RemoveFlag.REMOVE_CACHE));
+ return true;
+ }
+ return false;
+ }
+
}
diff --git a/main/src/cgeo/geocaching/cgeo.java b/main/src/cgeo/geocaching/cgeo.java
index c1e4269..c5a7e5b 100644
--- a/main/src/cgeo/geocaching/cgeo.java
+++ b/main/src/cgeo/geocaching/cgeo.java
@@ -415,7 +415,7 @@ public class cgeo extends AbstractActivity {
// context menu for offline button
if (v.getId() == R.id.search_offline) {
menu.setHeaderTitle(res.getString(R.string.list_title));
- for (final StoredList list : app.getLists()) {
+ for (final StoredList list : cgData.getLists()) {
menu.add(Menu.NONE, MENU_OPEN_LIST + list.id, Menu.NONE, list.getTitleAndCount());
}
return;
@@ -572,7 +572,7 @@ public class cgeo extends AbstractActivity {
}
private void checkRestore() {
- if (!cgData.isNewlyCreatedDatebase() || null == cgData.isRestoreFile()) {
+ if (!cgData.isNewlyCreatedDatebase() || null == cgData.getRestoreFile()) {
return;
}
new AlertDialog.Builder(this)
@@ -759,7 +759,7 @@ public class cgeo extends AbstractActivity {
}
int checks = 0;
- while (!app.storageStatus()) {
+ while (!cgData.isInitialized()) {
try {
wait(500);
checks++;
@@ -772,7 +772,7 @@ public class cgeo extends AbstractActivity {
}
}
- countBubbleCnt = cgeoapplication.getAllCachesCount();
+ countBubbleCnt = cgData.getAllCachesCount();
countBubbleHandler.sendEmptyMessage(0);
}
@@ -797,7 +797,7 @@ public class cgeo extends AbstractActivity {
}
cleanupRunning = true;
- app.cleanDatabase(more);
+ cgData.clean(more);
cleanupRunning = false;
if (version > 0) {
diff --git a/main/src/cgeo/geocaching/cgeoapplication.java b/main/src/cgeo/geocaching/cgeoapplication.java
index c866739..b936594 100644
--- a/main/src/cgeo/geocaching/cgeoapplication.java
+++ b/main/src/cgeo/geocaching/cgeoapplication.java
@@ -1,21 +1,10 @@
package cgeo.geocaching;
-import cgeo.geocaching.cgData.StorageLocation;
import cgeo.geocaching.activity.ActivityMixin;
-import cgeo.geocaching.enumerations.CacheType;
-import cgeo.geocaching.enumerations.LoadFlags;
-import cgeo.geocaching.enumerations.LoadFlags.LoadFlag;
-import cgeo.geocaching.enumerations.LoadFlags.RemoveFlag;
-import cgeo.geocaching.enumerations.LoadFlags.SaveFlag;
-import cgeo.geocaching.enumerations.LogType;
-import cgeo.geocaching.geopoint.Geopoint;
-import cgeo.geocaching.geopoint.Viewport;
import cgeo.geocaching.network.StatusUpdater;
import cgeo.geocaching.utils.IObserver;
import cgeo.geocaching.utils.Log;
-import org.apache.commons.lang3.StringUtils;
-
import android.app.Activity;
import android.app.Application;
import android.app.ProgressDialog;
@@ -23,24 +12,14 @@ import android.content.res.Resources;
import android.os.Handler;
import android.os.Message;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.EnumSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
public class cgeoapplication extends Application {
- final private cgData storage = new cgData();
private volatile GeoDataProvider geo;
private volatile DirectionProvider dir;
public boolean firstRun = true; // c:geo is just launched
public boolean showLoginToast = true; //login toast shown just once.
- private boolean databaseCleaned = false; // database was cleaned
private boolean liveMapHintShown = false; // livemap hint has been shown
final private StatusUpdater statusUpdater = new StatusUpdater();
private static cgeoapplication instance = null;
@@ -61,29 +40,21 @@ public class cgeoapplication extends Application {
@Override
public void onLowMemory() {
Log.i("Cleaning applications cache.");
- removeAllFromCache();
- }
-
- public void removeAllFromCache() {
- storage.removeAllFromCache();
+ cgData.removeAllFromCache();
}
@Override
public void onTerminate() {
Log.d("Terminating c:geo…");
- storage.clean();
- storage.closeDb();
+ cgData.clean();
+ cgData.closeDb();
super.onTerminate();
}
- public String backupDatabase() {
- return storage.backupDatabase();
- }
-
/**
- * Move the database to/from external storage in a new thread,
+ * Move the database to/from external cgdata in a new thread,
* showing a progress window
*
* @param fromActivity
@@ -105,18 +76,13 @@ public class cgeoapplication extends Application {
@Override
public void run() {
- atomic.set(storage.moveDatabase());
+ atomic.set(cgData.moveDatabase());
handler.sendMessage(handler.obtainMessage());
}
};
moveThread.start();
}
-
- public static File isRestoreFile() {
- return cgData.isRestoreFile();
- }
-
/**
* restore the database in a new thread, showing a progress window
*
@@ -140,7 +106,7 @@ public class cgeoapplication extends Application {
@Override
public void run() {
- atomic.set(storage.restoreDatabase());
+ atomic.set(cgData.restoreDatabase());
handler.sendMessage(handler.obtainMessage());
}
};
@@ -203,275 +169,6 @@ public class cgeoapplication extends Application {
return statusUpdater;
}
- public boolean storageStatus() {
- return storage.status();
- }
-
- public void cleanDatabase(boolean more) {
- if (databaseCleaned) {
- return;
- }
-
- storage.clean(more);
- databaseCleaned = true;
- }
-
- /** {@link cgData#isThere(String, String, boolean, boolean)} */
- public boolean isThere(String geocode, String guid, boolean detailed, boolean checkTime) {
- return storage.isThere(geocode, guid, detailed, checkTime);
- }
-
- /** {@link cgData#isOffline(String, String)} */
- public boolean isOffline(String geocode, String guid) {
- return storage.isOffline(geocode, guid);
- }
-
- /** {@link cgData#getGeocodeForGuid(String)} */
- public String getGeocode(String guid) {
- return storage.getGeocodeForGuid(guid);
- }
-
- /** {@link cgData#getCacheidForGeocode(String)} */
- public String getCacheid(String geocode) {
- return storage.getCacheidForGeocode(geocode);
- }
-
- public boolean hasUnsavedCaches(final SearchResult search) {
- if (search == null) {
- return false;
- }
-
- for (final String geocode : search.getGeocodes()) {
- if (!isOffline(geocode, null)) {
- return true;
- }
- }
- return false;
- }
-
- public cgTrackable getTrackableByGeocode(String geocode) {
- if (StringUtils.isBlank(geocode)) {
- return null;
- }
-
- return storage.loadTrackable(geocode);
- }
-
- /** {@link cgData#allDetailedThere()} */
- public String[] geocodesInCache() {
- return storage.allDetailedThere();
- }
-
- public Viewport getBounds(String geocode) {
- if (geocode == null) {
- return null;
- }
-
- return getBounds(Collections.singleton(geocode));
- }
-
- /** {@link cgData#getBounds(Set)} */
- public Viewport getBounds(final Set<String> geocodes) {
- return storage.getBounds(geocodes);
- }
-
- /** {@link cgData#loadBatchOfStoredGeocodes(Geopoint, CacheType, int)} */
- public SearchResult getBatchOfStoredCaches(final Geopoint coords, final CacheType cacheType, final int listId) {
- final Set<String> geocodes = storage.loadBatchOfStoredGeocodes(coords, cacheType, listId);
- return new SearchResult(geocodes, getAllStoredCachesCount(cacheType, listId));
- }
-
- /** {@link cgData#loadHistoryOfSearchedLocations()} */
- public List<Destination> getHistoryOfSearchedLocations() {
- return storage.loadHistoryOfSearchedLocations();
- }
-
- public SearchResult getHistoryOfCaches(final boolean detailedOnly, final CacheType cacheType) {
- final Set<String> geocodes = storage.loadBatchOfHistoricGeocodes(detailedOnly, cacheType);
- return new SearchResult(geocodes, getAllHistoricCachesCount());
- }
-
- /** {@link cgData#loadCachedInViewport(Viewport, CacheType)} */
- public SearchResult getCachedInViewport(final Viewport viewport, final CacheType cacheType) {
- final Set<String> geocodes = storage.loadCachedInViewport(viewport, cacheType);
- return new SearchResult(geocodes);
- }
-
- /** {@link cgData#loadStoredInViewport(Viewport, CacheType)} */
- public SearchResult getStoredInViewport(final Viewport viewport, final CacheType cacheType) {
- final Set<String> geocodes = storage.loadStoredInViewport(viewport, cacheType);
- return new SearchResult(geocodes);
- }
-
- /** {@link cgData#getAllStoredCachesCount(CacheType, int)} */
- public int getAllStoredCachesCount(final CacheType cacheType, final Integer list) {
- return storage.getAllStoredCachesCount(cacheType, list);
- }
-
- /** {@link cgData#getAllHistoryCachesCount()} */
- public int getAllHistoricCachesCount() {
- return storage.getAllHistoryCachesCount();
- }
-
- /** {@link cgData#moveToList(List, int)} */
- public void markStored(List<cgCache> caches, int listId) {
- storage.moveToList(caches, listId);
- }
-
- /** {@link cgData#moveToList(List, int)} */
- public void markDropped(List<cgCache> caches) {
- storage.moveToList(caches, StoredList.TEMPORARY_LIST_ID);
- }
-
- /** {@link cgData#clearSearchedDestinations()} */
- public boolean clearSearchedDestinations() {
- return storage.clearSearchedDestinations();
- }
-
- /** {@link cgData#saveSearchedDestination(Destination)} */
- public void saveSearchedDestination(Destination destination) {
- storage.saveSearchedDestination(destination);
- }
-
- /** {@link cgData#saveWaypoints(cgCache)} */
- public boolean saveWaypoints(final cgCache cache) {
- return storage.saveWaypoints(cache);
- }
-
- public boolean saveWaypoint(int id, String geocode, cgWaypoint waypoint) {
- if (storage.saveWaypoint(id, geocode, waypoint)) {
- this.removeCache(geocode, EnumSet.of(RemoveFlag.REMOVE_CACHE));
- return true;
- }
- return false;
- }
-
- /** {@link cgData#deleteWaypoint(int)} */
- public boolean deleteWaypoint(int id) {
- return storage.deleteWaypoint(id);
- }
-
- public boolean saveTrackable(cgTrackable trackable) {
- return storage.saveTrackable(trackable);
- }
-
- /** {@link cgData#loadLogCounts(String)} */
- public Map<LogType, Integer> loadLogCounts(String geocode) {
- return storage.loadLogCounts(geocode);
- }
-
- /** {@link cgData#loadWaypoint(int)} */
- public cgWaypoint loadWaypoint(int id) {
- return storage.loadWaypoint(id);
- }
-
- /** {@link cgData#saveLogOffline(String, Date, LogType, String)} */
- public boolean saveLogOffline(String geocode, Date date, LogType logtype, String log) {
- return storage.saveLogOffline(geocode, date, logtype, log);
- }
-
- /** {@link cgData#loadLogOffline(String)} */
- public LogEntry loadLogOffline(String geocode) {
- return storage.loadLogOffline(geocode);
- }
-
- /** {@link cgData#clearLogOffline(String)} */
- public void clearLogOffline(String geocode) {
- storage.clearLogOffline(geocode);
- }
-
- /** {@link cgData#setVisitDate(List, long)} */
- public void saveVisitDate(String geocode) {
- storage.setVisitDate(Collections.singletonList(geocode), System.currentTimeMillis());
- }
-
- /** {@link cgData#setVisitDate(List, long)} */
- public void clearVisitDate(List<cgCache> caches) {
- ArrayList<String> geocodes = new ArrayList<String>(caches.size());
- for (cgCache cache : caches) {
- geocodes.add(cache.getGeocode());
- }
- storage.setVisitDate(geocodes, 0);
- }
-
- /** {@link cgData#getLists(Resources)} */
- public List<StoredList> getLists() {
- return storage.getLists(getResources());
- }
-
- /** {@link cgData#getList(int, Resources)} */
- public StoredList getList(int id) {
- return storage.getList(id, getResources());
- }
-
- /** {@link cgData#createList(String)} */
- public int createList(String title) {
- return storage.createList(title);
- }
-
- /** {@link cgData#renameList(int, String)} */
- public int renameList(final int listId, final String title) {
- return storage.renameList(listId, title);
- }
-
- /** {@link cgData#removeList(int)} */
- public boolean removeList(int id) {
- return storage.removeList(id);
- }
-
- /** {@link cgData#removeSearchedDestination(Destination)} */
- public boolean removeSearchedDestinations(Destination destination) {
- return storage.removeSearchedDestination(destination);
- }
-
- /** {@link cgData#moveToList(List, int)} */
- public void moveToList(List<cgCache> caches, int listId) {
- storage.moveToList(caches, listId);
- }
-
- /** {@link cgData#getCacheDescription(String)} */
- public String getCacheDescription(String geocode) {
- return storage.getCacheDescription(geocode);
- }
-
- /** {@link cgData#loadCaches} */
- public cgCache loadCache(final String geocode, final EnumSet<LoadFlag> loadFlags) {
- return storage.loadCache(geocode, loadFlags);
- }
-
- /** {@link cgData#loadCaches} */
- public Set<cgCache> loadCaches(final Set<String> geocodes, final EnumSet<LoadFlag> loadFlags) {
- return storage.loadCaches(geocodes, loadFlags);
- }
-
- /**
- * Update a cache in the DB or in the CacheCace depending on it's storage location
- *
- * {@link cgData#saveCache}
- */
- public boolean updateCache(cgCache cache) {
- return saveCache(cache, cache.getStorageLocation().contains(StorageLocation.DATABASE) ? LoadFlags.SAVE_ALL : EnumSet.of(SaveFlag.SAVE_CACHE));
- }
-
- /** {@link cgData#saveCache} */
- public boolean saveCache(cgCache cache, EnumSet<LoadFlags.SaveFlag> saveFlags) {
- return storage.saveCache(cache, saveFlags);
- }
-
- /** {@link cgData#removeCache} */
- public void removeCache(String geocode, EnumSet<LoadFlags.RemoveFlag> removeFlags) {
- storage.removeCache(geocode, removeFlags);
- }
-
- /** {@link cgData#removeCaches} */
- public void removeCaches(final Set<String> geocodes, EnumSet<LoadFlags.RemoveFlag> removeFlags) {
- storage.removeCaches(geocodes, removeFlags);
- }
-
- public Set<cgWaypoint> getWaypointsInViewport(final Viewport viewport, boolean excludeMine, boolean excludeDisabled, CacheType type) {
- return storage.loadWaypoints(viewport, excludeMine, excludeDisabled, type);
- }
-
public boolean isLiveMapHintShown() {
return liveMapHintShown;
}
@@ -480,24 +177,4 @@ public class cgeoapplication extends Application {
liveMapHintShown = true;
}
- public String[] getTrackableCodes() {
- return storage.getTrackableCodes();
- }
-
- public List<LogEntry> loadLogs(final String geocode) {
- return storage.loadLogs(geocode);
- }
-
- public List<String> loadAttributes(final String geocode) {
- return storage.loadAttributes(geocode);
- }
-
- public List<cgWaypoint> loadWaypoints(final String geocode) {
- return storage.loadWaypoints(geocode);
- }
-
- public static int getAllCachesCount() {
- return cgData.getAllCachesCount();
- }
-
}
diff --git a/main/src/cgeo/geocaching/cgeocaches.java b/main/src/cgeo/geocaching/cgeocaches.java
index 3ba82d7..45eb9af 100644
--- a/main/src/cgeo/geocaching/cgeocaches.java
+++ b/main/src/cgeo/geocaching/cgeocaches.java
@@ -479,7 +479,7 @@ public class cgeocaches extends AbstractListActivity {
listId = StoredList.STANDARD_LIST_ID;
title = res.getString(R.string.stored_caches_button);
} else {
- final StoredList list = app.getList(listId);
+ final StoredList list = cgData.getList(listId);
// list.id may be different if listId was not valid
listId = list.id;
title = list.title;
@@ -642,7 +642,7 @@ public class cgeocaches extends AbstractListActivity {
// refresh standard list if it has changed (new caches downloaded)
if (type == CacheListType.OFFLINE && listId >= StoredList.STANDARD_LIST_ID && search != null) {
- SearchResult newSearch = cgeoapplication.getInstance().getBatchOfStoredCaches(coords, Settings.getCacheType(), listId);
+ SearchResult newSearch = cgData.getBatchOfStoredCaches(coords, Settings.getCacheType(), listId);
if (newSearch != null && newSearch.getTotal() != search.getTotal()) {
refreshCurrentList();
}
@@ -784,7 +784,7 @@ public class cgeocaches extends AbstractListActivity {
item.setVisible(isNonDefaultList);
}
- final boolean multipleLists = app.getLists().size() >= 2;
+ final boolean multipleLists = cgData.getLists().size() >= 2;
item = menu.findItem(MENU_SWITCH_LIST);
if (item != null) {
item.setVisible(multipleLists);
@@ -951,7 +951,7 @@ public class cgeocaches extends AbstractListActivity {
}
if (cache.isOffline()) {
menu.add(0, MENU_DROP_CACHE, 0, res.getString(R.string.cache_offline_drop));
- final List<StoredList> cacheLists = app.getLists();
+ final List<StoredList> cacheLists = cgData.getLists();
if (cacheLists.size() > 1) {
menu.add(0, MENU_MOVE_TO_LIST, 0, res.getString(R.string.cache_menu_move_list));
}
@@ -967,7 +967,7 @@ public class cgeocaches extends AbstractListActivity {
@Override
public void run(Integer newListId) {
- app.moveToList(adapter.getCheckedOrAllCaches(), newListId);
+ cgData.moveToList(adapter.getCheckedOrAllCaches(), newListId);
adapter.setSelectMode(false);
refreshCurrentList();
@@ -1028,7 +1028,7 @@ public class cgeocaches extends AbstractListActivity {
@Override
public void run(Integer newListId) {
- app.moveToList(Collections.singletonList(cache), newListId);
+ cgData.moveToList(Collections.singletonList(cache), newListId);
adapter.setSelectMode(false);
refreshCurrentList();
}
@@ -1290,7 +1290,7 @@ public class cgeocaches extends AbstractListActivity {
@Override
public void run() {
- search = cgeoapplication.getInstance().getBatchOfStoredCaches(coords, Settings.getCacheType(), listId);
+ search = cgData.getBatchOfStoredCaches(coords, Settings.getCacheType(), listId);
replaceCacheListFromSearch();
loadCachesHandler.sendMessage(Message.obtain());
}
@@ -1299,7 +1299,7 @@ public class cgeocaches extends AbstractListActivity {
private class LoadByHistoryThread extends Thread {
@Override
public void run() {
- search = cgeoapplication.getInstance().getHistoryOfCaches(true, coords != null ? Settings.getCacheType() : CacheType.ALL);
+ search = cgData.getHistoryOfCaches(true, coords != null ? Settings.getCacheType() : CacheType.ALL);
replaceCacheListFromSearch();
loadCachesHandler.sendMessage(Message.obtain());
}
@@ -1588,7 +1588,7 @@ public class cgeocaches extends AbstractListActivity {
@Override
public void run() {
removeGeoAndDir();
- app.markDropped(selected);
+ cgData.markDropped(selected);
handler.sendEmptyMessage(MSG_DONE);
startGeoAndDir();
@@ -1607,7 +1607,7 @@ public class cgeocaches extends AbstractListActivity {
@Override
public void run() {
- app.clearVisitDate(selected);
+ cgData.clearVisitDate(selected);
handler.sendEmptyMessage(MSG_DONE);
}
}
@@ -1657,7 +1657,7 @@ public class cgeocaches extends AbstractListActivity {
return;
}
- StoredList list = app.getList(id);
+ StoredList list = cgData.getList(id);
if (list == null) {
return;
}
@@ -1700,7 +1700,7 @@ public class cgeocaches extends AbstractListActivity {
@Override
public void run() {
final List<cgCache> caches = adapter.getCheckedCaches();
- app.moveToList(caches, listId);
+ cgData.moveToList(caches, listId);
handler.sendEmptyMessage(listId);
}
}
@@ -1732,7 +1732,7 @@ public class cgeocaches extends AbstractListActivity {
}
private void removeListInternal() {
- if (app.removeList(listId)) {
+ if (cgData.removeList(listId)) {
showToast(res.getString(R.string.list_dialog_remove_ok));
switchListById(StoredList.STANDARD_LIST_ID);
} else {
diff --git a/main/src/cgeo/geocaching/cgeopoint.java b/main/src/cgeo/geocaching/cgeopoint.java
index 025b96a..0e0d98b 100644
--- a/main/src/cgeo/geocaching/cgeopoint.java
+++ b/main/src/cgeo/geocaching/cgeopoint.java
@@ -207,7 +207,7 @@ public class cgeopoint extends AbstractActivity {
private List<Destination> getHistoryOfSearchedLocations() {
if (historyOfSearchedLocations == null) {
// Load from database
- historyOfSearchedLocations = app.getHistoryOfSearchedLocations();
+ historyOfSearchedLocations = cgData.loadHistoryOfSearchedLocations();
}
return historyOfSearchedLocations;
@@ -393,7 +393,7 @@ public class cgeopoint extends AbstractActivity {
getHistoryOfSearchedLocations().add(0, loc);
// Save location
- app.saveSearchedDestination(loc);
+ cgData.saveSearchedDestination(loc);
// Ensure to remove the footer
historyListView.removeFooterView(getEmptyHistoryFooter());
@@ -405,7 +405,7 @@ public class cgeopoint extends AbstractActivity {
getHistoryOfSearchedLocations().remove(destination);
// Save
- app.removeSearchedDestinations(destination);
+ cgData.removeSearchedDestination(destination);
if (getHistoryOfSearchedLocations().isEmpty()) {
if (historyListView.getFooterViewsCount() == 0) {
@@ -424,7 +424,7 @@ public class cgeopoint extends AbstractActivity {
getHistoryOfSearchedLocations().clear();
// Save
- app.clearSearchedDestinations();
+ cgData.clearSearchedDestinations();
if (historyListView.getFooterViewsCount() == 0) {
historyListView.addFooterView(getEmptyHistoryFooter());
diff --git a/main/src/cgeo/geocaching/cgeotrackable.java b/main/src/cgeo/geocaching/cgeotrackable.java
index 2515bcd..3c9e554 100644
--- a/main/src/cgeo/geocaching/cgeotrackable.java
+++ b/main/src/cgeo/geocaching/cgeotrackable.java
@@ -417,8 +417,7 @@ public class cgeotrackable extends AbstractActivity {
@Override
public void run() {
- // for non TB trackables, we should just use what we have in the database
- trackable = cgeoapplication.getInstance().getTrackableByGeocode(geocode);
+ trackable = cgData.loadTrackable(geocode);
if ((trackable == null || trackable.isLoggable()) && !StringUtils.startsWithIgnoreCase(geocode, "GK")) {
trackable = GCParser.searchTrackable(geocode, guid, id);
diff --git a/main/src/cgeo/geocaching/connector/gc/GCConnector.java b/main/src/cgeo/geocaching/connector/gc/GCConnector.java
index 5607d97..db43239 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCConnector.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCConnector.java
@@ -3,7 +3,7 @@ package cgeo.geocaching.connector.gc;
import cgeo.geocaching.R;
import cgeo.geocaching.SearchResult;
import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.connector.AbstractConnector;
import cgeo.geocaching.connector.capability.ISearchByCenter;
import cgeo.geocaching.connector.capability.ISearchByGeocode;
@@ -82,11 +82,10 @@ public class GCConnector extends AbstractConnector implements ISearchByGeocode,
if (StringUtils.isEmpty(page)) {
final SearchResult search = new SearchResult();
- if (cgeoapplication.getInstance().isThere(geocode, guid, true, false)) {
+ if (cgData.isThere(geocode, guid, true, false)) {
if (StringUtils.isBlank(geocode) && StringUtils.isNotBlank(guid)) {
Log.i("Loading old cache from cache.");
-
- search.addGeocode(cgeoapplication.getInstance().getGeocode(guid));
+ search.addGeocode(cgData.getGeocodeForGuid(guid));
} else {
search.addGeocode(geocode);
}
@@ -128,7 +127,7 @@ public class GCConnector extends AbstractConnector implements ISearchByGeocode,
public static boolean addToWatchlist(cgCache cache) {
final boolean added = GCParser.addToWatchlist(cache);
if (added) {
- cgeoapplication.getInstance().updateCache(cache);
+ cgData.saveChangedCache(cache);
}
return added;
}
@@ -136,7 +135,7 @@ public class GCConnector extends AbstractConnector implements ISearchByGeocode,
public static boolean removeFromWatchlist(cgCache cache) {
final boolean removed = GCParser.removeFromWatchlist(cache);
if (removed) {
- cgeoapplication.getInstance().updateCache(cache);
+ cgData.saveChangedCache(cache);
}
return removed;
}
@@ -144,7 +143,7 @@ public class GCConnector extends AbstractConnector implements ISearchByGeocode,
public static boolean addToFavorites(cgCache cache) {
final boolean added = GCParser.addToFavorites(cache);
if (added) {
- cgeoapplication.getInstance().updateCache(cache);
+ cgData.saveChangedCache(cache);
}
return added;
}
@@ -152,7 +151,7 @@ public class GCConnector extends AbstractConnector implements ISearchByGeocode,
public static boolean removeFromFavorites(cgCache cache) {
final boolean removed = GCParser.removeFromFavorites(cache);
if (removed) {
- cgeoapplication.getInstance().updateCache(cache);
+ cgData.saveChangedCache(cache);
}
return removed;
}
diff --git a/main/src/cgeo/geocaching/connector/gc/GCMap.java b/main/src/cgeo/geocaching/connector/gc/GCMap.java
index 681a1d7..049748c 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCMap.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCMap.java
@@ -3,6 +3,7 @@ package cgeo.geocaching.connector.gc;
import cgeo.geocaching.SearchResult;
import cgeo.geocaching.Settings;
import cgeo.geocaching.cgCache;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.enumerations.CacheSize;
import cgeo.geocaching.enumerations.CacheType;
@@ -341,7 +342,7 @@ public class GCMap {
if (search != null && !search.isEmpty()) {
final Set<String> geocodes = search.getGeocodes();
if (Settings.isPremiumMember()) {
- lastSearchViewport = cgeoapplication.getInstance().getBounds(geocodes);
+ lastSearchViewport = cgData.getBounds(geocodes);
} else {
lastSearchViewport = new Viewport(center, center);
}
diff --git a/main/src/cgeo/geocaching/connector/gc/GCParser.java b/main/src/cgeo/geocaching/connector/gc/GCParser.java
index 10f9d00..3ab1120 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCParser.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCParser.java
@@ -6,6 +6,7 @@ import cgeo.geocaching.SearchResult;
import cgeo.geocaching.Settings;
import cgeo.geocaching.TrackableLog;
import cgeo.geocaching.cgCache;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.cgImage;
import cgeo.geocaching.cgTrackable;
import cgeo.geocaching.cgWaypoint;
@@ -325,7 +326,7 @@ public abstract class GCParser {
// save full detailed caches
CancellableHandler.sendLoadProgressDetail(handler, R.string.cache_dialog_loading_details_status_cache);
- cgeoapplication.getInstance().saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
+ cgData.saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
// update progress message so user knows we're still working. This is more of a place holder than
// actual indication of what the program is doing
@@ -1051,7 +1052,7 @@ public abstract class GCParser {
Log.i("Log successfully posted to cache #" + cacheid);
if (geocode != null) {
- cgeoapplication.getInstance().saveVisitDate(geocode);
+ cgData.saveVisitDate(geocode);
}
Login.getLoginStatus(page);
@@ -1420,7 +1421,7 @@ public abstract class GCParser {
}
if (cgeoapplication.getInstance() != null) {
- cgeoapplication.getInstance().saveTrackable(trackable);
+ cgData.saveTrackable(trackable);
}
return trackable;
diff --git a/main/src/cgeo/geocaching/connector/oc/OkapiClient.java b/main/src/cgeo/geocaching/connector/oc/OkapiClient.java
index 87cc3a1..b135877 100644
--- a/main/src/cgeo/geocaching/connector/oc/OkapiClient.java
+++ b/main/src/cgeo/geocaching/connector/oc/OkapiClient.java
@@ -2,8 +2,8 @@ package cgeo.geocaching.connector.oc;
import cgeo.geocaching.LogEntry;
import cgeo.geocaching.cgCache;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.cgImage;
-import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.connector.ConnectorFactory;
import cgeo.geocaching.connector.IConnector;
import cgeo.geocaching.enumerations.CacheSize;
@@ -171,9 +171,8 @@ final public class OkapiClient {
cache.setUpdated(System.currentTimeMillis());
cache.setDetailedUpdate(cache.getUpdated());
cache.setDetailed(true);
-
// save full detailed caches
- cgeoapplication.getInstance().saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
+ cgData.saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
} catch (JSONException e) {
Log.e("OkapiClient.parseCache", e);
}
diff --git a/main/src/cgeo/geocaching/export/FieldnoteExport.java b/main/src/cgeo/geocaching/export/FieldnoteExport.java
index 028ad54..cbb4762 100644
--- a/main/src/cgeo/geocaching/export/FieldnoteExport.java
+++ b/main/src/cgeo/geocaching/export/FieldnoteExport.java
@@ -3,7 +3,7 @@ package cgeo.geocaching.export;
import cgeo.geocaching.LogEntry;
import cgeo.geocaching.R;
import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.activity.Progress;
import cgeo.geocaching.connector.gc.Login;
@@ -139,13 +139,11 @@ class FieldnoteExport extends AbstractExport {
@Override
protected Boolean doInBackground(Void... params) {
final StringBuilder fieldNoteBuffer = new StringBuilder();
- final cgeoapplication app = cgeoapplication.getInstance();
-
try {
int i = 0;
for (cgCache cache : caches) {
if (cache.isLogOffline()) {
- appendFieldNote(fieldNoteBuffer, cache, app.loadLogOffline(cache.getGeocode()));
+ appendFieldNote(fieldNoteBuffer, cache, cgData.loadLogOffline(cache.getGeocode()));
publishProgress(++i);
}
}
diff --git a/main/src/cgeo/geocaching/export/GpxExport.java b/main/src/cgeo/geocaching/export/GpxExport.java
index 7573db9..b1834b9 100644
--- a/main/src/cgeo/geocaching/export/GpxExport.java
+++ b/main/src/cgeo/geocaching/export/GpxExport.java
@@ -4,8 +4,8 @@ import cgeo.geocaching.LogEntry;
import cgeo.geocaching.R;
import cgeo.geocaching.Settings;
import cgeo.geocaching.cgCache;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.cgWaypoint;
-import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.activity.Progress;
import cgeo.geocaching.enumerations.CacheAttribute;
@@ -143,8 +143,7 @@ class GpxExport extends AbstractExport {
gpx.write("<gpx version=\"1.0\" creator=\"c:geo - http://www.cgeo.org\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.topografix.com/GPX/1/0\" xsi:schemaLocation=\"http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd http://www.groundspeak.com/cache/1/0/1 http://www.groundspeak.com/cache/1/0/1/cache.xsd\">");
for (int i = 0; i < caches.size(); i++) {
- // reload the cache. otherwise logs, attributes and other detailed information is not available
- final cgCache cache = cgeoapplication.getInstance().loadCache(caches.get(i).getGeocode(), LoadFlags.LOAD_ALL_DB_ONLY);
+ final cgCache cache = cgData.loadCache(caches.get(i).getGeocode(), LoadFlags.LOAD_ALL_DB_ONLY);
gpx.write("<wpt ");
gpx.write("lat=\"");
diff --git a/main/src/cgeo/geocaching/files/GPXImporter.java b/main/src/cgeo/geocaching/files/GPXImporter.java
index fb78360..d8d0c24 100644
--- a/main/src/cgeo/geocaching/files/GPXImporter.java
+++ b/main/src/cgeo/geocaching/files/GPXImporter.java
@@ -5,7 +5,7 @@ import cgeo.geocaching.SearchResult;
import cgeo.geocaching.Settings;
import cgeo.geocaching.StaticMapsProvider;
import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.activity.IAbstractActivity;
import cgeo.geocaching.activity.Progress;
import cgeo.geocaching.enumerations.LoadFlags;
@@ -171,10 +171,9 @@ public class GPXImporter {
protected abstract Collection<cgCache> doImport() throws IOException, ParserException;
private boolean importStaticMaps(final SearchResult importedCaches) {
- final cgeoapplication app = cgeoapplication.getInstance();
int storedCacheMaps = 0;
for (String geocode : importedCaches.getGeocodes()) {
- cgCache cache = app.loadCache(geocode, LoadFlags.LOAD_WAYPOINTS);
+ cgCache cache = cgData.loadCache(geocode, LoadFlags.LOAD_WAYPOINTS);
Log.d("GPXImporter.ImportThread.importStaticMaps start downloadMaps for cache " + geocode);
StaticMapsProvider.downloadMaps(cache);
storedCacheMaps++;
diff --git a/main/src/cgeo/geocaching/files/GPXParser.java b/main/src/cgeo/geocaching/files/GPXParser.java
index c451ad5..60ebd69 100644
--- a/main/src/cgeo/geocaching/files/GPXParser.java
+++ b/main/src/cgeo/geocaching/files/GPXParser.java
@@ -4,6 +4,7 @@ import cgeo.geocaching.LogEntry;
import cgeo.geocaching.R;
import cgeo.geocaching.StoredList;
import cgeo.geocaching.cgCache;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.cgTrackable;
import cgeo.geocaching.cgWaypoint;
import cgeo.geocaching.cgeoapplication;
@@ -311,8 +312,8 @@ public abstract class GPXParser extends FileParser {
// finally store the cache in the database
result.add(geocode);
- cgeoapplication.getInstance().saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
- cgeoapplication.getInstance().removeAllFromCache();
+ cgData.saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
+ cgData.removeAllFromCache();
showProgressMessage(progressHandler, progressStream.getProgress());
} else if (StringUtils.isNotBlank(cache.getName())
&& StringUtils.containsIgnoreCase(type, "waypoint")) {
@@ -327,9 +328,8 @@ public abstract class GPXParser extends FileParser {
if (cache.getName().length() > 2) {
final String cacheGeocodeForWaypoint = "GC" + cache.getName().substring(2).toUpperCase(Locale.US);
-
// lookup cache for waypoint in already parsed caches
- final cgCache cacheForWaypoint = cgeoapplication.getInstance().loadCache(cacheGeocodeForWaypoint, LoadFlags.LOAD_CACHE_OR_DB);
+ final cgCache cacheForWaypoint = cgData.loadCache(cacheGeocodeForWaypoint, LoadFlags.LOAD_CACHE_OR_DB);
if (cacheForWaypoint != null) {
final cgWaypoint waypoint = new cgWaypoint(cache.getShortdesc(), convertWaypointSym2Type(sym), false);
waypoint.setId(-1);
@@ -347,7 +347,7 @@ public abstract class GPXParser extends FileParser {
newPoints.add(waypoint);
cgWaypoint.mergeWayPoints(newPoints, mergedWayPoints, true);
cacheForWaypoint.setWaypoints(newPoints, false);
- cgeoapplication.getInstance().saveCache(cacheForWaypoint, EnumSet.of(SaveFlag.SAVE_DB));
+ cgData.saveCache(cacheForWaypoint, EnumSet.of(SaveFlag.SAVE_DB));
showProgressMessage(progressHandler, progressStream.getProgress());
}
}
@@ -772,7 +772,7 @@ public abstract class GPXParser extends FileParser {
try {
progressStream = new ProgressInputStream(stream);
Xml.parse(progressStream, Xml.Encoding.UTF_8, root.getContentHandler());
- return cgeoapplication.getInstance().loadCaches(result, EnumSet.of(LoadFlag.LOAD_DB_MINIMAL));
+ return cgData.loadCaches(result, EnumSet.of(LoadFlag.LOAD_DB_MINIMAL));
} catch (SAXException e) {
Log.e("Cannot parse .gpx file as GPX " + version + ": could not parse XML - " + e.toString());
throw new ParserException("Cannot parse .gpx file as GPX " + version + ": could not parse XML", e);
diff --git a/main/src/cgeo/geocaching/files/LocParser.java b/main/src/cgeo/geocaching/files/LocParser.java
index 45bcca9..982ef4c 100644
--- a/main/src/cgeo/geocaching/files/LocParser.java
+++ b/main/src/cgeo/geocaching/files/LocParser.java
@@ -2,7 +2,7 @@ package cgeo.geocaching.files;
import cgeo.geocaching.SearchResult;
import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.enumerations.CacheSize;
import cgeo.geocaching.enumerations.CacheType;
import cgeo.geocaching.enumerations.LoadFlags;
@@ -65,7 +65,7 @@ public final class LocParser extends FileParser {
contained.add(geocode);
}
}
- Set<cgCache> caches = cgeoapplication.getInstance().loadCaches(contained, LoadFlags.LOAD_CACHE_OR_DB);
+ Set<cgCache> caches = cgData.loadCaches(contained, LoadFlags.LOAD_CACHE_OR_DB);
for (cgCache cache : caches) {
cgCache coord = cidCoords.get(cache.getGeocode());
copyCoordToCache(coord, cache);
diff --git a/main/src/cgeo/geocaching/filter/AttributeFilter.java b/main/src/cgeo/geocaching/filter/AttributeFilter.java
index 2565178..837e9d1 100644
--- a/main/src/cgeo/geocaching/filter/AttributeFilter.java
+++ b/main/src/cgeo/geocaching/filter/AttributeFilter.java
@@ -2,6 +2,7 @@ package cgeo.geocaching.filter;
import cgeo.geocaching.R;
import cgeo.geocaching.cgCache;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.enumerations.LoadFlags.LoadFlag;
@@ -34,7 +35,7 @@ class AttributeFilter extends AbstractFilter {
@Override
public boolean accepts(final cgCache cache) {
- cgCache fullCache = cgeoapplication.getInstance().loadCache(cache.getGeocode(), EnumSet.of(LoadFlag.LOAD_ATTRIBUTES));
+ cgCache fullCache = cgData.loadCache(cache.getGeocode(), EnumSet.of(LoadFlag.LOAD_ATTRIBUTES));
if (fullCache == null) {
fullCache = cache;
}
diff --git a/main/src/cgeo/geocaching/maps/CGeoMap.java b/main/src/cgeo/geocaching/maps/CGeoMap.java
index 0ffe689..e5e6f13 100644
--- a/main/src/cgeo/geocaching/maps/CGeoMap.java
+++ b/main/src/cgeo/geocaching/maps/CGeoMap.java
@@ -9,6 +9,7 @@ import cgeo.geocaching.SearchResult;
import cgeo.geocaching.Settings;
import cgeo.geocaching.StoredList;
import cgeo.geocaching.cgCache;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.cgWaypoint;
import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.cgeocaches;
@@ -368,7 +369,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
activity = this.getActivity();
app = (cgeoapplication) activity.getApplication();
- int countBubbleCnt = cgeoapplication.getAllCachesCount();
+ int countBubbleCnt = cgData.getAllCachesCount();
caches = new LeastRecentlyUsedSet<cgCache>(MAX_CACHES + countBubbleCnt);
final MapProvider mapProvider = Settings.getMapProvider();
@@ -494,7 +495,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
if (!CollectionUtils.isEmpty(dirtyCaches)) {
for (String geocode : dirtyCaches) {
- cgCache cache = app.loadCache(geocode, LoadFlags.LOAD_WAYPOINTS);
+ cgCache cache = cgData.loadCache(geocode, LoadFlags.LOAD_WAYPOINTS);
// remove to update the cache
caches.remove(cache);
caches.add(cache);
@@ -594,7 +595,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
}
final Set<String> geocodesInViewport = getGeocodesForCachesInViewport();
- menu.findItem(MENU_STORE_CACHES).setEnabled(!isLoading() && CollectionUtils.isNotEmpty(geocodesInViewport) && app.hasUnsavedCaches(new SearchResult(geocodesInViewport)));
+ menu.findItem(MENU_STORE_CACHES).setEnabled(!isLoading() && CollectionUtils.isNotEmpty(geocodesInViewport) && new SearchResult(geocodesInViewport).hasUnsavedCaches());
item = menu.findItem(MENU_CIRCLE_MODE); // show circles
if (overlayCaches != null && overlayCaches.getCircles()) {
@@ -640,7 +641,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
final List<String> geocodes = new ArrayList<String>();
for (final String geocode : geocodesInViewport) {
- if (!app.isOffline(geocode, null)) {
+ if (!cgData.isOffline(geocode, null)) {
geocodes.add(geocode);
}
}
@@ -1121,7 +1122,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
if (isLiveEnabled) {
searchResult = new SearchResult();
} else {
- searchResult = new SearchResult(app.getStoredInViewport(viewport, Settings.getCacheType()));
+ searchResult = new SearchResult(cgData.loadStoredInViewport(viewport, Settings.getCacheType()));
}
} else {
// map started from another activity
@@ -1132,7 +1133,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
}
// live mode search result
if (isLiveEnabled) {
- SearchResult liveResult = new SearchResult(app.getCachedInViewport(viewport, Settings.getCacheType()));
+ SearchResult liveResult = new SearchResult(cgData.loadCachedInViewport(viewport, Settings.getCacheType()));
searchResult.addGeocodes(liveResult.getGeocodes());
}
@@ -1160,7 +1161,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
if (isLiveEnabled || mapMode == MapMode.COORDS) {
//All visible waypoints
CacheType type = Settings.getCacheType();
- Set<cgWaypoint> waypointsInViewport = app.getWaypointsInViewport(viewport, Settings.isExcludeMyCaches(), Settings.isExcludeDisabledCaches(), type);
+ Set<cgWaypoint> waypointsInViewport = cgData.loadWaypoints(viewport, Settings.isExcludeMyCaches(), Settings.isExcludeDisabledCaches(), type);
waypoints.addAll(waypointsInViewport);
}
else
@@ -1394,7 +1395,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
break;
}
- if (!app.isOffline(geocode, null)) {
+ if (!cgData.isOffline(geocode, null)) {
if ((System.currentTimeMillis() - last) < 1500) {
try {
int delay = 1000 + (int) (Math.random() * 1000.0) - (int) (System.currentTimeMillis() - last);
@@ -1484,9 +1485,9 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
Viewport viewport = null;
if (geocodeCenter != null) {
- viewport = app.getBounds(geocodeCenter);
+ viewport = cgData.getBounds(geocodeCenter);
} else if (searchCenter != null) {
- viewport = app.getBounds(searchCenter.getGeocodes());
+ viewport = cgData.getBounds(searchCenter.getGeocodes());
}
if (viewport == null) {
diff --git a/main/src/cgeo/geocaching/maps/CachesOverlay.java b/main/src/cgeo/geocaching/maps/CachesOverlay.java
index b656900..e7c3903 100644
--- a/main/src/cgeo/geocaching/maps/CachesOverlay.java
+++ b/main/src/cgeo/geocaching/maps/CachesOverlay.java
@@ -6,7 +6,7 @@ import cgeo.geocaching.R;
import cgeo.geocaching.Settings;
import cgeo.geocaching.WaypointPopup;
import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.activity.Progress;
import cgeo.geocaching.connector.gc.GCMap;
import cgeo.geocaching.enumerations.CacheType;
@@ -228,7 +228,7 @@ public class CachesOverlay extends AbstractItemizedOverlay {
final IWaypoint coordinate = item.getCoord();
if (StringUtils.isNotBlank(coordinate.getCoordType()) && coordinate.getCoordType().equalsIgnoreCase("cache") && StringUtils.isNotBlank(coordinate.getGeocode())) {
- cgCache cache = cgeoapplication.getInstance().loadCache(coordinate.getGeocode(), LoadFlags.LOAD_CACHE_OR_DB);
+ cgCache cache = cgData.loadCache(coordinate.getGeocode(), LoadFlags.LOAD_CACHE_OR_DB);
RequestDetailsThread requestDetailsThread = new RequestDetailsThread(cache);
if (!requestDetailsThread.requestRequired()) {
// don't show popup if we have enough details
diff --git a/main/src/cgeo/geocaching/sorting/FindsComparator.java b/main/src/cgeo/geocaching/sorting/FindsComparator.java
index 6407b11..47e3844 100644
--- a/main/src/cgeo/geocaching/sorting/FindsComparator.java
+++ b/main/src/cgeo/geocaching/sorting/FindsComparator.java
@@ -1,13 +1,11 @@
package cgeo.geocaching.sorting;
import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.enumerations.LogType;
public class FindsComparator extends AbstractCacheComparator {
- private final cgeoapplication app = cgeoapplication.getInstance();
-
@Override
protected boolean canCompare(cgCache cache1, cgCache cache2) {
return cache1.getLogCounts() != null && cache2.getLogCounts() != null;
@@ -20,9 +18,9 @@ public class FindsComparator extends AbstractCacheComparator {
return finds2 - finds1;
}
- private int getFindsCount(cgCache cache) {
+ private static int getFindsCount(cgCache cache) {
if (cache.getLogCounts().isEmpty()) {
- cache.setLogCounts(app.loadLogCounts(cache.getGeocode()));
+ cache.setLogCounts(cgData.loadLogCounts(cache.getGeocode()));
}
Integer logged = cache.getLogCounts().get(LogType.FOUND_IT);
if (logged != null) {
diff --git a/main/src/cgeo/geocaching/twitter/Twitter.java b/main/src/cgeo/geocaching/twitter/Twitter.java
index c630cec..c86c633 100644
--- a/main/src/cgeo/geocaching/twitter/Twitter.java
+++ b/main/src/cgeo/geocaching/twitter/Twitter.java
@@ -2,6 +2,7 @@ package cgeo.geocaching.twitter;
import cgeo.geocaching.Settings;
import cgeo.geocaching.cgCache;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.cgTrackable;
import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.enumerations.LoadFlags;
@@ -55,7 +56,7 @@ public final class Twitter {
}
public static void postTweetCache(String geocode) {
- final cgCache cache = cgeoapplication.getInstance().loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
+ final cgCache cache = cgData.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
String status;
final String url = cache.getUrl();
if (url.length() >= 100) {
@@ -76,7 +77,7 @@ public final class Twitter {
}
public static void postTweetTrackable(String geocode) {
- final cgTrackable trackable = cgeoapplication.getInstance().getTrackableByGeocode(geocode);
+ final cgTrackable trackable = cgData.loadTrackable(geocode);
String name = trackable.getName();
if (name.length() > 82) {
name = name.substring(0, 81) + '…';
diff --git a/main/src/cgeo/geocaching/ui/LoggingUI.java b/main/src/cgeo/geocaching/ui/LoggingUI.java
index 0e048c3..c5d9bf6 100644
--- a/main/src/cgeo/geocaching/ui/LoggingUI.java
+++ b/main/src/cgeo/geocaching/ui/LoggingUI.java
@@ -4,7 +4,7 @@ import cgeo.geocaching.LogEntry;
import cgeo.geocaching.R;
import cgeo.geocaching.Settings;
import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.activity.IAbstractActivity;
import cgeo.geocaching.enumerations.LogType;
@@ -94,7 +94,7 @@ public class LoggingUI extends AbstractUIFactory {
}
private static void showOfflineMenu(final cgCache cache, final Activity activity) {
- final LogEntry currentLog = cgeoapplication.getInstance().loadLogOffline(cache.getGeocode());
+ final LogEntry currentLog = cgData.loadLogOffline(cache.getGeocode());
final LogType currentLogType = currentLog == null ? null : currentLog.type;
final List<LogType> logTypes = cache.getPossibleLogTypes();
@@ -123,7 +123,7 @@ public class LoggingUI extends AbstractUIFactory {
break;
case CLEAR_LOG:
- cgeoapplication.getInstance().clearLogOffline(cache.getGeocode());
+ cgData.clearLogOffline(cache.getGeocode());
}
} else {
cache.logOffline(activity, logTypeEntry.logType);
diff --git a/tests/src/cgeo/geocaching/cgDataTest.java b/tests/src/cgeo/geocaching/cgDataTest.java
index 9d1a8e2..f4b71f3 100644
--- a/tests/src/cgeo/geocaching/cgDataTest.java
+++ b/tests/src/cgeo/geocaching/cgDataTest.java
@@ -18,7 +18,6 @@ public class cgDataTest extends CGeoTestCase {
public static void testStoredLists() {
- cgeoapplication app = cgeoapplication.getInstance();
int listId1 = StoredList.STANDARD_LIST_ID;
int listId2 = StoredList.STANDARD_LIST_ID;
@@ -32,11 +31,11 @@ public class cgDataTest extends CGeoTestCase {
try {
// create lists
- listId1 = app.createList("cgData Test");
+ listId1 = cgData.createList("cgData Test");
assertTrue(listId1 > StoredList.STANDARD_LIST_ID);
- listId2 = app.createList("cgDataTest");
+ listId2 = cgData.createList("cgDataTest");
assertTrue(listId2 > StoredList.STANDARD_LIST_ID);
- assertTrue(app.getLists().size() >= 2);
+ assertTrue(cgData.getLists().size() >= 2);
cache1.setDetailed(true);
cache1.setListId(listId1);
@@ -44,33 +43,33 @@ public class cgDataTest extends CGeoTestCase {
cache2.setListId(listId1);
// save caches to DB (cache1=listId1, cache2=listId1)
- app.saveCache(cache1, LoadFlags.SAVE_ALL);
- app.saveCache(cache2, LoadFlags.SAVE_ALL);
- assertTrue(cgeoapplication.getAllCachesCount() >= 2);
+ cgData.saveCache(cache1, LoadFlags.SAVE_ALL);
+ cgData.saveCache(cache2, LoadFlags.SAVE_ALL);
+ assertTrue(cgData.getAllCachesCount() >= 2);
// rename list (cache1=listId1, cache2=listId1)
- assertEquals(1, app.renameList(listId1, "cgData Test (renamed)"));
+ assertEquals(1, cgData.renameList(listId1, "cgData Test (renamed)"));
// get list
- StoredList list1 = app.getList(listId1);
+ StoredList list1 = cgData.getList(listId1);
assertEquals("cgData Test (renamed)", list1.title);
// move to list (cache1=listId2, cache2=listId2)
- app.moveToList(Collections.singletonList(cache1), listId2);
- assertEquals(1, app.getAllStoredCachesCount(CacheType.ALL, listId2));
+ cgData.moveToList(Collections.singletonList(cache1), listId2);
+ assertEquals(1, cgData.getAllStoredCachesCount(CacheType.ALL, listId2));
// remove list (cache1=listId2, cache2=listId2)
- assertTrue(app.removeList(listId1));
+ assertTrue(cgData.removeList(listId1));
// mark dropped (cache1=1, cache2=0)
- app.markDropped(Collections.singletonList(cache2));
+ cgData.markDropped(Collections.singletonList(cache2));
// mark stored (cache1=1, cache2=listId2)
- app.markStored(Collections.singletonList(cache2), listId2);
- assertEquals(2, app.getAllStoredCachesCount(CacheType.ALL, listId2));
+ cgData.moveToList(Collections.singletonList(cache2), listId2);
+ assertEquals(2, cgData.getAllStoredCachesCount(CacheType.ALL, listId2));
// drop stored (cache1=0, cache2=0)
- app.removeList(listId2);
+ cgData.removeList(listId2);
} finally {
@@ -78,33 +77,30 @@ public class cgDataTest extends CGeoTestCase {
Set<String> geocodes = new HashSet<String>();
geocodes.add(cache1.getGeocode());
geocodes.add(cache2.getGeocode());
- app.removeCaches(geocodes, LoadFlags.REMOVE_ALL);
+ cgData.removeCaches(geocodes, LoadFlags.REMOVE_ALL);
// remove list
- app.removeList(listId1);
- app.removeList(listId2);
+ cgData.removeList(listId1);
+ cgData.removeList(listId2);
}
}
// Check that queries don't throw an exception (see issue #1429).
public static void testLoadWaypoints() {
final Viewport viewport = new Viewport(new Geopoint(-1, -2), new Geopoint(3, 4));
- final cgeoapplication app = cgeoapplication.getInstance();
- app.getWaypointsInViewport(viewport, false, false, CacheType.ALL);
- app.getWaypointsInViewport(viewport, false, true, CacheType.ALL);
- app.getWaypointsInViewport(viewport, true, false, CacheType.ALL);
- app.getWaypointsInViewport(viewport, true, true, CacheType.ALL);
- app.getWaypointsInViewport(viewport, false, false, CacheType.TRADITIONAL);
- app.getWaypointsInViewport(viewport, false, true, CacheType.TRADITIONAL);
- app.getWaypointsInViewport(viewport, true, false, CacheType.TRADITIONAL);
- app.getWaypointsInViewport(viewport, true, true, CacheType.TRADITIONAL);
+ cgData.loadWaypoints(viewport, false, false, CacheType.ALL);
+ cgData.loadWaypoints(viewport, false, true, CacheType.ALL);
+ cgData.loadWaypoints(viewport, true, false, CacheType.ALL);
+ cgData.loadWaypoints(viewport, true, true, CacheType.ALL);
+ cgData.loadWaypoints(viewport, false, false, CacheType.TRADITIONAL);
+ cgData.loadWaypoints(viewport, false, true, CacheType.TRADITIONAL);
+ cgData.loadWaypoints(viewport, true, false, CacheType.TRADITIONAL);
+ cgData.loadWaypoints(viewport, true, true, CacheType.TRADITIONAL);
}
// Check that saving a cache and trackable without logs works (see #2199)
public static void testSaveWithoutLogs() {
- cgeoapplication app = cgeoapplication.getInstance();
-
final String GEOCODE_CACHE = "TEST";
// create cache and trackable
@@ -118,21 +114,19 @@ public class cgDataTest extends CGeoTestCase {
cache.setInventory(inventory);
try {
- app.saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
- final cgCache loadedCache = app.loadCache(GEOCODE_CACHE, LoadFlags.LOAD_ALL_DB_ONLY);
+ cgData.saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
+ final cgCache loadedCache = cgData.loadCache(GEOCODE_CACHE, LoadFlags.LOAD_ALL_DB_ONLY);
assertNotNull("Cache was not saved!", loadedCache);
assertEquals(1, loadedCache.getInventory().size());
} finally {
- app.removeCache(GEOCODE_CACHE, LoadFlags.REMOVE_ALL);
+ cgData.removeCache(GEOCODE_CACHE, LoadFlags.REMOVE_ALL);
}
}
// Loading logs for an empty geocode should return an empty list, not null!
public static void testLoadLogsFromEmptyGeocode() {
- cgeoapplication app = cgeoapplication.getInstance();
-
- List<LogEntry> logs = app.loadLogs("");
+ List<LogEntry> logs = cgData.loadLogs("");
assertNotNull("Logs must not be null", logs);
assertEquals("Logs from empty geocode must be empty", 0, logs.size());
diff --git a/tests/src/cgeo/geocaching/cgeoApplicationTest.java b/tests/src/cgeo/geocaching/cgeoApplicationTest.java
index f7d3158..32cbe40 100644
--- a/tests/src/cgeo/geocaching/cgeoApplicationTest.java
+++ b/tests/src/cgeo/geocaching/cgeoApplicationTest.java
@@ -109,7 +109,7 @@ public class cgeoApplicationTest extends CGeoTestCase {
if (Settings.isPremiumMember() || search.getError() == null) {
assertEquals(1, search.getGeocodes().size());
assertTrue(search.getGeocodes().contains(geocode));
- return cgeoapplication.getInstance().loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
+ return cgData.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
}
assertEquals(0, search.getGeocodes().size());
return null;
@@ -279,8 +279,7 @@ public class cgeoApplicationTest extends CGeoTestCase {
SearchResult search = ConnectorFactory.searchByViewport(viewport, tokens);
assertNotNull(search);
assertTrue(search.getGeocodes().contains(mockedCache.getGeocode()));
-
- cgCache parsedCache = cgeoapplication.getInstance().loadCache(mockedCache.getGeocode(), LoadFlags.LOAD_CACHE_OR_DB);
+ cgCache parsedCache = cgData.loadCache(mockedCache.getGeocode(), LoadFlags.LOAD_CACHE_OR_DB);
assertEquals(Settings.isPremiumMember(), mockedCache.getCoords().equals(parsedCache.getCoords()));
assertEquals(Settings.isPremiumMember(), parsedCache.isReliableLatLon());
@@ -292,8 +291,7 @@ public class cgeoApplicationTest extends CGeoTestCase {
search = ConnectorFactory.searchByViewport(viewport, tokens);
assertNotNull(search);
assertTrue(search.getGeocodes().contains(mockedCache.getGeocode()));
-
- parsedCache = cgeoapplication.getInstance().loadCache(mockedCache.getGeocode(), LoadFlags.LOAD_CACHE_OR_DB);
+ parsedCache = cgData.loadCache(mockedCache.getGeocode(), LoadFlags.LOAD_CACHE_OR_DB);
assertEquals(Settings.isPremiumMember(), mockedCache.getCoords().equals(parsedCache.getCoords()));
assertEquals(Settings.isPremiumMember(), parsedCache.isReliableLatLon());
@@ -332,7 +330,7 @@ public class cgeoApplicationTest extends CGeoTestCase {
assertNotNull(search);
assertTrue(search.getGeocodes().contains(cache.getGeocode()));
// coords differ
- cgCache cacheFromViewport = cgeoapplication.getInstance().loadCache(cache.getGeocode(), LoadFlags.LOAD_CACHE_OR_DB);
+ cgCache cacheFromViewport = cgData.loadCache(cache.getGeocode(), LoadFlags.LOAD_CACHE_OR_DB);
Log.d("cgeoApplicationTest.testSearchByViewportNotLoggedIn: Coords expected = " + cache.getCoords());
Log.d("cgeoApplicationTest.testSearchByViewportNotLoggedIn: Coords actual = " + cacheFromViewport.getCoords());
assertFalse(cache.getCoords().isEqualTo(cacheFromViewport.getCoords(), 1e-3));
@@ -390,7 +388,7 @@ public class cgeoApplicationTest extends CGeoTestCase {
/** Remove cache from DB and cache to ensure that the cache is not loaded from the database */
private static void deleteCacheFromDB(String geocode) {
- cgeoapplication.getInstance().removeCache(geocode, LoadFlags.REMOVE_ALL);
+ cgData.removeCache(geocode, LoadFlags.REMOVE_ALL);
}
/** Remove cache from DB and cache to ensure that the cache is not loaded from the database */
diff --git a/tests/src/cgeo/geocaching/connector/opencaching/OkapiClientTest.java b/tests/src/cgeo/geocaching/connector/opencaching/OkapiClientTest.java
index 5576028..0519b58 100644
--- a/tests/src/cgeo/geocaching/connector/opencaching/OkapiClientTest.java
+++ b/tests/src/cgeo/geocaching/connector/opencaching/OkapiClientTest.java
@@ -2,7 +2,7 @@ package cgeo.geocaching.connector.opencaching;
import cgeo.CGeoTestCase;
import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.connector.oc.OkapiClient;
import cgeo.geocaching.enumerations.LoadFlags;
@@ -15,9 +15,8 @@ public class OkapiClientTest extends CGeoTestCase {
assertEquals(geoCode, cache.getGeocode());
assertEquals("Oshkosh Municipal Tank", cache.getName());
assertTrue(cache.isDetailed());
-
// cache should be stored to DB (to listID 0) when loaded above
- cache = cgeoapplication.getInstance().loadCache(geoCode, LoadFlags.LOAD_ALL_DB_ONLY);
+ cache = cgData.loadCache(geoCode, LoadFlags.LOAD_ALL_DB_ONLY);
assertNotNull(cache);
assertEquals(geoCode, cache.getGeocode());
assertEquals("Oshkosh Municipal Tank", cache.getName());
diff --git a/tests/src/cgeo/geocaching/files/GPXImporterTest.java b/tests/src/cgeo/geocaching/files/GPXImporterTest.java
index a7f8a68..8c05ee0 100644
--- a/tests/src/cgeo/geocaching/files/GPXImporterTest.java
+++ b/tests/src/cgeo/geocaching/files/GPXImporterTest.java
@@ -3,7 +3,7 @@ package cgeo.geocaching.files;
import cgeo.geocaching.SearchResult;
import cgeo.geocaching.Settings;
import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.enumerations.CacheType;
import cgeo.geocaching.enumerations.LoadFlags;
import cgeo.geocaching.test.AbstractResourceInstrumentationTestCase;
@@ -71,8 +71,7 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase {
assertEquals(GPXImporter.IMPORT_STEP_FINISHED, iMsg.next().what);
SearchResult search = (SearchResult) importStepHandler.messages.get(3).obj;
assertEquals(Collections.singletonList(geocode), new ArrayList<String>(search.getGeocodes()));
-
- cgCache cache = cgeoapplication.getInstance().loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
+ cgCache cache = cgData.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
assertCacheProperties(cache);
assertTrue(cache.getWaypoints().isEmpty());
@@ -99,8 +98,7 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase {
assertImportStepMessages(GPXImporter.IMPORT_STEP_START, GPXImporter.IMPORT_STEP_READ_FILE, GPXImporter.IMPORT_STEP_READ_WPT_FILE, GPXImporter.IMPORT_STEP_STORE_STATIC_MAPS, GPXImporter.IMPORT_STEP_FINISHED);
SearchResult search = (SearchResult) importStepHandler.messages.get(4).obj;
assertEquals(Collections.singletonList("GC31J2H"), new ArrayList<String>(search.getGeocodes()));
-
- cgCache cache = cgeoapplication.getInstance().loadCache("GC31J2H", LoadFlags.LOAD_CACHE_OR_DB);
+ cgCache cache = cgData.loadCache("GC31J2H", LoadFlags.LOAD_CACHE_OR_DB);
assertCacheProperties(cache);
assertEquals(2, cache.getWaypoints().size());
}
@@ -113,8 +111,7 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase {
runImportThread(importThread);
assertImportStepMessages(GPXImporter.IMPORT_STEP_START, GPXImporter.IMPORT_STEP_READ_FILE, GPXImporter.IMPORT_STEP_STORE_STATIC_MAPS, GPXImporter.IMPORT_STEP_FINISHED);
-
- final cgCache cache = cgeoapplication.getInstance().loadCache("AID1", LoadFlags.LOAD_CACHE_OR_DB);
+ final cgCache cache = cgData.loadCache("AID1", LoadFlags.LOAD_CACHE_OR_DB);
assertCacheProperties(cache);
assertEquals("First Aid Station #1", cache.getName());
}
@@ -136,8 +133,7 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase {
assertImportStepMessages(GPXImporter.IMPORT_STEP_START, GPXImporter.IMPORT_STEP_READ_FILE, GPXImporter.IMPORT_STEP_STORE_STATIC_MAPS, GPXImporter.IMPORT_STEP_FINISHED);
SearchResult search = (SearchResult) importStepHandler.messages.get(3).obj;
assertEquals(Collections.singletonList("OC5952"), new ArrayList<String>(search.getGeocodes()));
-
- cgCache cache = cgeoapplication.getInstance().loadCache("OC5952", LoadFlags.LOAD_CACHE_OR_DB);
+ cgCache cache = cgData.loadCache("OC5952", LoadFlags.LOAD_CACHE_OR_DB);
assertCacheProperties(cache);
}
@@ -179,8 +175,7 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase {
assertImportStepMessages(GPXImporter.IMPORT_STEP_START, GPXImporter.IMPORT_STEP_READ_FILE, GPXImporter.IMPORT_STEP_STORE_STATIC_MAPS, GPXImporter.IMPORT_STEP_FINISHED);
SearchResult search = (SearchResult) importStepHandler.messages.get(3).obj;
assertEquals(Collections.singletonList(geocode), new ArrayList<String>(search.getGeocodes()));
-
- cgCache cache = cgeoapplication.getInstance().loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
+ cgCache cache = cgData.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
assertCacheProperties(cache);
assertTrue(cache.getWaypoints().isEmpty());
@@ -198,8 +193,7 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase {
assertImportStepMessages(GPXImporter.IMPORT_STEP_START, GPXImporter.IMPORT_STEP_READ_FILE, GPXImporter.IMPORT_STEP_READ_WPT_FILE, GPXImporter.IMPORT_STEP_STORE_STATIC_MAPS, GPXImporter.IMPORT_STEP_FINISHED);
SearchResult search = (SearchResult) importStepHandler.messages.get(4).obj;
assertEquals(Collections.singletonList(geocode), new ArrayList<String>(search.getGeocodes()));
-
- cgCache cache = cgeoapplication.getInstance().loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
+ cgCache cache = cgData.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
assertCacheProperties(cache);
assertEquals(1, cache.getWaypoints().size()); // this is the original pocket query result without test waypoint
}
@@ -225,8 +219,7 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase {
assertImportStepMessages(GPXImporter.IMPORT_STEP_START, GPXImporter.IMPORT_STEP_READ_FILE, GPXImporter.IMPORT_STEP_READ_WPT_FILE, GPXImporter.IMPORT_STEP_STORE_STATIC_MAPS, GPXImporter.IMPORT_STEP_FINISHED);
SearchResult search = (SearchResult) importStepHandler.messages.get(4).obj;
assertEquals(Collections.singletonList(geocode), new ArrayList<String>(search.getGeocodes()));
-
- cgCache cache = cgeoapplication.getInstance().loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
+ cgCache cache = cgData.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
assertCacheProperties(cache);
assertEquals(1, cache.getWaypoints().size()); // this is the original pocket query result without test waypoint
}
@@ -266,10 +259,9 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase {
tempDir = new File(System.getProperty("java.io.tmpdir"), "cgeogpxesTest");
tempDir.mkdir();
-
// workaround to get storage initialized
- cgeoapplication.getInstance().getAllHistoricCachesCount();
- listId = cgeoapplication.getInstance().createList("cgeogpxesTest");
+ cgData.getAllHistoryCachesCount();
+ listId = cgData.createList("cgeogpxesTest");
importCacheStaticMaps = Settings.isStoreOfflineMaps();
Settings.setStoreOfflineMaps(true);
@@ -279,11 +271,11 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase {
@Override
protected void tearDown() throws Exception {
- SearchResult search = cgeoapplication.getInstance().getBatchOfStoredCaches(null, CacheType.ALL, listId);
+ SearchResult search = cgData.getBatchOfStoredCaches(null, CacheType.ALL, listId);
List<cgCache> cachesInList = new ArrayList<cgCache>();
cachesInList.addAll(search.getCachesFromSearchResult(LoadFlags.LOAD_CACHE_OR_DB));
- cgeoapplication.getInstance().markDropped(cachesInList);
- cgeoapplication.getInstance().removeList(listId);
+ cgData.markDropped(cachesInList);
+ cgData.removeList(listId);
deleteDirectory(tempDir);
Settings.setStoreOfflineMaps(importCacheStaticMaps);
Settings.setStoreOfflineWpMaps(importWpStaticMaps);
diff --git a/tests/src/cgeo/geocaching/files/GPXParserTest.java b/tests/src/cgeo/geocaching/files/GPXParserTest.java
index cd4ac61..f6e6e66 100644
--- a/tests/src/cgeo/geocaching/files/GPXParserTest.java
+++ b/tests/src/cgeo/geocaching/files/GPXParserTest.java
@@ -4,8 +4,8 @@ import cgeo.geocaching.LogEntry;
import cgeo.geocaching.SearchResult;
import cgeo.geocaching.StoredList;
import cgeo.geocaching.cgCache;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.cgWaypoint;
-import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.enumerations.CacheSize;
import cgeo.geocaching.enumerations.CacheType;
import cgeo.geocaching.enumerations.LoadFlags;
@@ -213,7 +213,7 @@ public class GPXParserTest extends AbstractResourceInstrumentationTestCase {
}
}
// reload caches, because the parser only returns the minimum version of each cache
- return new ArrayList<cgCache>(cgeoapplication.getInstance().loadCaches(result, LoadFlags.LOAD_ALL_DB_ONLY));
+ return new ArrayList<cgCache>(cgData.loadCaches(result, LoadFlags.LOAD_ALL_DB_ONLY));
}
public static void testParseDateWithFractionalSeconds() {
@@ -266,10 +266,9 @@ public class GPXParserTest extends AbstractResourceInstrumentationTestCase {
removeCacheCompletely(geocode);
final List<cgCache> caches = readGPX10(R.raw.lazy);
assertEquals(1, caches.size());
- cgeoapplication.getInstance().removeAllFromCache();
-
+ cgData.removeAllFromCache();
// load only the minimum cache, it has several members missing
- final cgCache minimalCache = cgeoapplication.getInstance().loadCache(geocode, EnumSet.of(LoadFlag.LOAD_DB_MINIMAL));
+ final cgCache minimalCache = cgData.loadCache(geocode, EnumSet.of(LoadFlag.LOAD_DB_MINIMAL));
// now check that we load lazy members on demand
assertFalse(minimalCache.getAttributes().isEmpty());
@@ -298,17 +297,17 @@ public class GPXParserTest extends AbstractResourceInstrumentationTestCase {
@Override
protected void setUp() throws Exception {
super.setUp();
- listId = cgeoapplication.getInstance().createList("Temporary unit testing");
+ listId = cgData.createList("Temporary unit testing");
assertTrue(listId != StoredList.TEMPORARY_LIST_ID);
assertTrue(listId != StoredList.STANDARD_LIST_ID);
}
@Override
protected void tearDown() throws Exception {
- SearchResult search = cgeoapplication.getInstance().getBatchOfStoredCaches(null, CacheType.ALL, listId);
+ SearchResult search = cgData.getBatchOfStoredCaches(null, CacheType.ALL, listId);
assertNotNull(search);
- cgeoapplication.getInstance().removeCaches(search.getGeocodes(), LoadFlags.REMOVE_ALL);
- cgeoapplication.getInstance().removeList(listId);
+ cgData.removeCaches(search.getGeocodes(), LoadFlags.REMOVE_ALL);
+ cgData.removeList(listId);
super.tearDown();
}
}
diff --git a/tests/src/cgeo/geocaching/test/AbstractResourceInstrumentationTestCase.java b/tests/src/cgeo/geocaching/test/AbstractResourceInstrumentationTestCase.java
index 0d3d53b..cd8b5e7 100644
--- a/tests/src/cgeo/geocaching/test/AbstractResourceInstrumentationTestCase.java
+++ b/tests/src/cgeo/geocaching/test/AbstractResourceInstrumentationTestCase.java
@@ -1,6 +1,6 @@
package cgeo.geocaching.test;
-import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.cgData;
import cgeo.geocaching.enumerations.LoadFlags;
import cgeo.geocaching.enumerations.LoadFlags.RemoveFlag;
@@ -18,7 +18,7 @@ public abstract class AbstractResourceInstrumentationTestCase extends Instrument
protected static void removeCacheCompletely(final String geocode) {
final EnumSet<RemoveFlag> flags = EnumSet.copyOf(LoadFlags.REMOVE_ALL);
flags.add(RemoveFlag.REMOVE_OWN_WAYPOINTS_ONLY_FOR_TESTING);
- cgeoapplication.getInstance().removeCache(geocode, flags);
+ cgData.removeCache(geocode, flags);
}
protected InputStream getResourceStream(int resourceId) {