blob: 28ad12b6842b095aaa4ff45ad1577b9971e118dd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
package cgeo.geocaching.connector;
import cgeo.geocaching.Geocache;
import cgeo.geocaching.R;
import cgeo.geocaching.geopoint.Geopoint;
import org.apache.commons.lang3.StringUtils;
import android.app.Activity;
public abstract class AbstractConnector implements IConnector {
@Override
public boolean canHandle(String geocode) {
return false;
}
@Override
public boolean supportsWatchList() {
return false;
}
@Override
public boolean addToWatchlist(Geocache cache) {
return false;
}
@Override
public boolean removeFromWatchlist(Geocache cache) {
return false;
}
@Override
public boolean supportsPersonalNote() {
return false;
}
@Override
public boolean uploadPersonalNote(Geocache cache) {
throw new UnsupportedOperationException();
}
@Override
public boolean supportsOwnCoordinates() {
return false;
}
@Override
public boolean uploadModifiedCoordinates(Geocache cache, Geopoint wpt) {
throw new UnsupportedOperationException();
}
/**
* {@link IConnector}
*/
@Override
public boolean deleteModifiedCoordinates(Geocache cache) {
throw new UnsupportedOperationException();
}
@Override
public boolean supportsFavoritePoints() {
return false;
}
@Override
public boolean supportsLogging() {
return false;
}
@Override
public boolean supportsLogImages() {
return false;
}
@Override
public boolean canLog(Geocache cache) {
return false;
}
@Override
public ILoggingManager getLoggingManager(Activity activity, Geocache cache) {
return new NoLoggingManager();
}
@Override
public String getLicenseText(final Geocache cache) {
return null;
}
@Override
public boolean supportsUserActions() {
return false;
}
protected static boolean isNumericId(final String string) {
try {
return Integer.parseInt(string) > 0;
} catch (NumberFormatException e) {
}
return false;
}
@Override
public boolean isZippedGPXFile(String fileName) {
// don't accept any file by default
return false;
}
@Override
public boolean isReliableLatLon(boolean cacheHasReliableLatLon) {
// let every cache have reliable coordinates by default
return true;
}
@Override
public String getGeocodeFromUrl(final String url) {
final String urlPrefix = getCacheUrlPrefix();
if (StringUtils.startsWith(url, urlPrefix)) {
String geocode = url.substring(urlPrefix.length());
if (canHandle(geocode)) {
return geocode;
}
}
return null;
}
abstract protected String getCacheUrlPrefix();
@Override
public String getLongCacheUrl(final Geocache cache) {
return getCacheUrl(cache);
}
/**
* {@link IConnector}
*/
@Override
public boolean isActivated() {
return false;
}
@Override
public int getCacheMapMarkerId(boolean disabled) {
if (disabled) {
return R.drawable.marker_disabled_other;
}
return R.drawable.marker_other;
}
}
|