diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2011-08-22 21:35:58 +0200 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2011-08-22 21:35:58 +0200 |
| commit | f77547b483d75af86f50397dd7ca43ab8b087422 (patch) | |
| tree | 5f0534619ecf11d8f731f1a03a0f1c8c82c86a67 /src/cgeo/geocaching/cgCache.java | |
| parent | cab37df9f0ba2cda06d7a63ec61892c3084d37a4 (diff) | |
| download | cgeo-f77547b483d75af86f50397dd7ca43ab8b087422.zip cgeo-f77547b483d75af86f50397dd7ca43ab8b087422.tar.gz cgeo-f77547b483d75af86f50397dd7ca43ab8b087422.tar.bz2 | |
first steps towards supporting other cache databases, see also comments
from #259
Diffstat (limited to 'src/cgeo/geocaching/cgCache.java')
| -rw-r--r-- | src/cgeo/geocaching/cgCache.java | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/src/cgeo/geocaching/cgCache.java b/src/cgeo/geocaching/cgCache.java index de0dace..8de5a5d 100644 --- a/src/cgeo/geocaching/cgCache.java +++ b/src/cgeo/geocaching/cgCache.java @@ -14,6 +14,8 @@ import android.net.Uri; import android.text.Spannable; import android.util.Log; import cgeo.geocaching.activity.IAbstractActivity; +import cgeo.geocaching.connector.ConnectorFactory; +import cgeo.geocaching.connector.IConnector; public class cgCache { @@ -290,19 +292,19 @@ public class cgCache { return true; } - + public boolean logOffline(final IAbstractActivity fromActivity, final int logType) { logOffline(fromActivity, "", Calendar.getInstance(), logType); return true; } - + void logOffline(final IAbstractActivity fromActivity, final String log, Calendar date, final int logType) { if (logType <= 0) { return; } cgeoapplication app = (cgeoapplication)((Activity)fromActivity).getApplication(); final boolean status = app.saveLogOffline(geocode, date.getTime(), logType, log); - + Resources res = ((Activity)fromActivity).getResources(); if (status) { fromActivity.showToast(res.getString(R.string.info_log_saved)); @@ -311,7 +313,7 @@ public class cgCache { fromActivity.showToast(res.getString(R.string.err_log_post_failed)); } } - + public ArrayList<Integer> getPossibleLogTypes(cgSettings settings) { boolean isOwner = owner != null && owner.equalsIgnoreCase(settings.getUsername()); ArrayList<Integer> types = new ArrayList<Integer>(); @@ -347,14 +349,31 @@ public class cgCache { } public void openInBrowser(Activity fromActivity) { - fromActivity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getCacheUrl() + geocode))); + fromActivity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getCacheUrl()))); } private String getCacheUrl() { - if (geocode.startsWith("OC")) { // TODO refactor method into connectors, once available - return "http://www.opencaching.de/viewcache.php?wp="; - } - return "http://www.geocaching.com/seek/cache_details.aspx?wp="; + return getConnector().getCacheUrl(this); + } + + private IConnector getConnector() { + return ConnectorFactory.getConnector(this); + } + + public boolean canOpenInBrowser() { + return getCacheUrl() != null; + } + + public boolean supportsRefresh() { + return getConnector().supportsRefreshCache(this); + } + + public boolean supportsWatchList() { + return getConnector().supportsWatchList(); + } + + public boolean supportsLogging() { + return getConnector().supportsLogging(); } } |
