aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2014-05-28 19:44:23 +0200
committerBananeweizen <bananeweizen@gmx.de>2014-05-28 19:44:23 +0200
commitf71490e953667545de83dfde77d57e2157f933e2 (patch)
treef6cca4b685e6bebe860fc906f0c1159d9bd8df53
parent763ef20606ef217a81e96da8eb82ded95f0dbf39 (diff)
downloadcgeo-f71490e953667545de83dfde77d57e2157f933e2.zip
cgeo-f71490e953667545de83dfde77d57e2157f933e2.tar.gz
cgeo-f71490e953667545de83dfde77d57e2157f933e2.tar.bz2
fix #3920: wrong progress reporting for loc import
-rw-r--r--main/src/cgeo/geocaching/files/LocParser.java5
1 files changed, 3 insertions, 2 deletions
diff --git a/main/src/cgeo/geocaching/files/LocParser.java b/main/src/cgeo/geocaching/files/LocParser.java
index 3d01c1b..304b472 100644
--- a/main/src/cgeo/geocaching/files/LocParser.java
+++ b/main/src/cgeo/geocaching/files/LocParser.java
@@ -117,8 +117,8 @@ public final class LocParser extends FileParser {
@Override
public Collection<Geocache> parse(InputStream stream, CancellableHandler progressHandler) throws IOException, ParserException {
- // TODO: progress reporting happens during reading stream only, not during parsing
- String streamContent = readStream(stream, progressHandler).toString();
+ final String streamContent = readStream(stream, null).toString();
+ final int maxSize = streamContent.length();
final Map<String, Geocache> coords = parseCoordinates(streamContent);
final List<Geocache> caches = new ArrayList<Geocache>();
for (Entry<String, Geocache> entry : coords.entrySet()) {
@@ -136,6 +136,7 @@ public final class LocParser extends FileParser {
cache.setListId(listId);
cache.setDetailed(true);
cache.store(null);
+ progressHandler.sendMessage(progressHandler.obtainMessage(0, maxSize * caches.size() / coords.size(), 0));
}
Log.i("Caches found in .loc file: " + caches.size());
return caches;