From f71490e953667545de83dfde77d57e2157f933e2 Mon Sep 17 00:00:00 2001 From: Bananeweizen Date: Wed, 28 May 2014 19:44:23 +0200 Subject: fix #3920: wrong progress reporting for loc import --- main/src/cgeo/geocaching/files/LocParser.java | 5 +++-- 1 file 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 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 coords = parseCoordinates(streamContent); final List caches = new ArrayList(); for (Entry 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; -- cgit v1.1