diff options
| author | Marco Jacob <mjacob@union06.de> | 2012-01-16 20:44:23 +0100 |
|---|---|---|
| committer | Marco Jacob <mjacob@union06.de> | 2012-01-16 20:44:23 +0100 |
| commit | f150f46080eb09e809a3c1c2225c537391498040 (patch) | |
| tree | 0cfe0384f0bd3e73cf6698047389f444c7fd1800 /main | |
| parent | c5b9381a0e9ed25ca016964b45d72f99fe4793f9 (diff) | |
| parent | f40effc1f6b8000007763cc788ce22f430cc779e (diff) | |
| download | cgeo-f150f46080eb09e809a3c1c2225c537391498040.zip cgeo-f150f46080eb09e809a3c1c2225c537391498040.tar.gz cgeo-f150f46080eb09e809a3c1c2225c537391498040.tar.bz2 | |
Merge git://github.com/cgeo/c-geo-opensource
Diffstat (limited to 'main')
| -rw-r--r-- | main/AndroidManifest.xml | 6 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/cgeocaches.java | 5 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/files/GPXImporter.java | 21 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/sorting/EventDateComparator.java | 23 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/ui/CacheListAdapter.java | 5 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/ui/CompassMiniView.java | 2 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/ui/GPXListAdapter.java | 2 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/ui/MapfileListAdapter.java | 2 |
8 files changed, 48 insertions, 18 deletions
diff --git a/main/AndroidManifest.xml b/main/AndroidManifest.xml index b94a4d7..5770392 100644 --- a/main/AndroidManifest.xml +++ b/main/AndroidManifest.xml @@ -154,6 +154,12 @@ <data android:mimeType="text/xml" /> <data android:mimeType="application/xml" /> <data android:mimeType="application/zip" /> + <data android:mimeType="application/x-compressed" /> + <data android:mimeType="application/x-zip-compressed" /> + <data android:mimeType="application/x-zip" /> + <data android:mimeType="application/octet-stream" /> + <data android:pathPattern=".*\\.gpx" /> + <data android:pathPattern=".*\\.zip" /> </intent-filter> </activity> <activity diff --git a/main/src/cgeo/geocaching/cgeocaches.java b/main/src/cgeo/geocaching/cgeocaches.java index 0e5983f..25bbc48 100644 --- a/main/src/cgeo/geocaching/cgeocaches.java +++ b/main/src/cgeo/geocaching/cgeocaches.java @@ -20,6 +20,7 @@ import cgeo.geocaching.maps.CGeoMap; import cgeo.geocaching.sorting.CacheComparator; import cgeo.geocaching.sorting.DateComparator; import cgeo.geocaching.sorting.DifficultyComparator; +import cgeo.geocaching.sorting.EventDateComparator; import cgeo.geocaching.sorting.FindsComparator; import cgeo.geocaching.sorting.GeocodeComparator; import cgeo.geocaching.sorting.InventoryComparator; @@ -2630,12 +2631,12 @@ public class cgeocaches extends AbstractListActivity { } } if (eventsOnly) { - adapter.setComparator(new DateComparator()); + adapter.setComparator(new EventDateComparator()); } else if (type == CacheListType.HISTORY) { adapter.setComparator(new VisitComparator()); } - else if (adapter.getCacheComparator() != null && adapter.getCacheComparator() instanceof DateComparator) { + else if (adapter.getCacheComparator() != null && adapter.getCacheComparator() instanceof EventDateComparator) { adapter.setComparator(null); } } diff --git a/main/src/cgeo/geocaching/files/GPXImporter.java b/main/src/cgeo/geocaching/files/GPXImporter.java index e7853f0..7ee05ff 100644 --- a/main/src/cgeo/geocaching/files/GPXImporter.java +++ b/main/src/cgeo/geocaching/files/GPXImporter.java @@ -26,8 +26,10 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; +import java.util.List; import java.util.concurrent.CancellationException; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; @@ -46,6 +48,9 @@ public class GPXImporter { public static final String ZIP_FILE_EXTENSION = ".zip"; public static final String WAYPOINTS_FILE_SUFFIX_AND_EXTENSION = "-wpts.gpx"; + private static final List<String> GPX_MIME_TYPES = Arrays.asList(new String[] { "text/xml", "application/xml" }); + private static final List<String> ZIP_MIME_TYPES = Arrays.asList(new String[] { "application/zip", "application/x-compressed", "application/x-zip-compressed", "application/x-zip", "application/octet-stream" }); + private Progress progress = new Progress(); private Resources res; @@ -85,19 +90,25 @@ public class GPXImporter { final Uri uri = intent.getData(); String mimeType = intent.getType(); - // if mimetype can't be determined (e.g. for emulators email app), use a default + // if mimetype can't be determined (e.g. for emulators email app), derive it from uri file extension // contentResolver.getType(uri) doesn't help but throws exception for emulators email app // Permission Denial: reading com.android.email.provider.EmailProvider uri // Google search says: there is no solution for this problem - // TODO: check if problem occurs with gmail as well + // Gmail doesn't work at all, see #967 if (mimeType == null) { - mimeType = "application/zip"; + if (StringUtils.endsWithIgnoreCase(uri.getPath(), GPX_FILE_EXTENSION)) { + mimeType = "application/xml"; + } else { + // if we can't determine a better type, default to zip import + // emulator email sends e.g. content://com.android.email.attachmentprovider/1/1/RAW, mimetype=null + mimeType = "application/zip"; + } } Log.i(Settings.tag, "importGPX: " + uri + ", mimetype=" + mimeType); - if (StringUtils.equalsIgnoreCase("text/xml", mimeType) || StringUtils.equalsIgnoreCase("application/xml", mimeType)) { + if (GPX_MIME_TYPES.contains(mimeType)) { new ImportGpxAttachmentThread(uri, contentResolver, listId, importStepHandler, progressHandler).start(); - } else if (StringUtils.equalsIgnoreCase("application/zip", mimeType)) { + } else if (ZIP_MIME_TYPES.contains(mimeType)) { new ImportGpxZipAttachmentThread(uri, contentResolver, listId, importStepHandler, progressHandler).start(); } else { importFinished(); diff --git a/main/src/cgeo/geocaching/sorting/EventDateComparator.java b/main/src/cgeo/geocaching/sorting/EventDateComparator.java new file mode 100644 index 0000000..0092901 --- /dev/null +++ b/main/src/cgeo/geocaching/sorting/EventDateComparator.java @@ -0,0 +1,23 @@ +package cgeo.geocaching.sorting; + +import cgeo.geocaching.cgCache; + + +/** + * Compares caches by date. Used only for event caches. + * + * @author campbeb + * + */ +public class EventDateComparator extends DateComparator { + + @Override + protected boolean canCompare(cgCache cache1, cgCache cache2) { + return super.canCompare(cache1, cache2); + } + + @Override + protected int compareCaches(cgCache cache1, cgCache cache2) { + return super.compareCaches(cache1, cache2); + } +} diff --git a/main/src/cgeo/geocaching/ui/CacheListAdapter.java b/main/src/cgeo/geocaching/ui/CacheListAdapter.java index c2910cf..85856fc 100644 --- a/main/src/cgeo/geocaching/ui/CacheListAdapter.java +++ b/main/src/cgeo/geocaching/ui/CacheListAdapter.java @@ -5,11 +5,6 @@ import cgeo.geocaching.R; import cgeo.geocaching.Settings; import cgeo.geocaching.cgBase; import cgeo.geocaching.cgCache; -import cgeo.geocaching.R.color; -import cgeo.geocaching.R.drawable; -import cgeo.geocaching.R.id; -import cgeo.geocaching.R.layout; -import cgeo.geocaching.R.string; import cgeo.geocaching.enumerations.CacheListType; import cgeo.geocaching.enumerations.CacheSize; import cgeo.geocaching.enumerations.CacheType; diff --git a/main/src/cgeo/geocaching/ui/CompassMiniView.java b/main/src/cgeo/geocaching/ui/CompassMiniView.java index 5f3b8c2..1fa4cfb 100644 --- a/main/src/cgeo/geocaching/ui/CompassMiniView.java +++ b/main/src/cgeo/geocaching/ui/CompassMiniView.java @@ -1,8 +1,6 @@ package cgeo.geocaching.ui; import cgeo.geocaching.R; -import cgeo.geocaching.R.drawable; -import cgeo.geocaching.R.styleable; import cgeo.geocaching.geopoint.Geopoint; import android.content.Context; diff --git a/main/src/cgeo/geocaching/ui/GPXListAdapter.java b/main/src/cgeo/geocaching/ui/GPXListAdapter.java index 23f38b0..2f50e6c 100644 --- a/main/src/cgeo/geocaching/ui/GPXListAdapter.java +++ b/main/src/cgeo/geocaching/ui/GPXListAdapter.java @@ -3,8 +3,6 @@ package cgeo.geocaching.ui; import cgeo.geocaching.R; import cgeo.geocaching.Settings; import cgeo.geocaching.cgeogpxes; -import cgeo.geocaching.R.id; -import cgeo.geocaching.R.layout; import cgeo.geocaching.files.GPXImporter; import android.app.Activity; diff --git a/main/src/cgeo/geocaching/ui/MapfileListAdapter.java b/main/src/cgeo/geocaching/ui/MapfileListAdapter.java index cc16733..9196a41 100644 --- a/main/src/cgeo/geocaching/ui/MapfileListAdapter.java +++ b/main/src/cgeo/geocaching/ui/MapfileListAdapter.java @@ -3,8 +3,6 @@ package cgeo.geocaching.ui; import cgeo.geocaching.R; import cgeo.geocaching.Settings; import cgeo.geocaching.cgSelectMapfile; -import cgeo.geocaching.R.id; -import cgeo.geocaching.R.layout; import android.app.Activity; import android.graphics.Typeface; |
