diff options
author | Bananeweizen <bananeweizen@gmx.de> | 2014-05-28 19:44:23 +0200 |
---|---|---|
committer | Bananeweizen <bananeweizen@gmx.de> | 2014-05-28 19:44:23 +0200 |
commit | f71490e953667545de83dfde77d57e2157f933e2 (patch) | |
tree | f6cca4b685e6bebe860fc906f0c1159d9bd8df53 | |
parent | 763ef20606ef217a81e96da8eb82ded95f0dbf39 (diff) | |
download | cgeo-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.java | 5 |
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; |