Fix issue where download popups appeared even when there was no download occurring

Signed-off-by: Taylor Smock <taylor.smock@kaart.com>
pull/1/head
Taylor Smock 2019-10-07 15:58:23 -06:00
rodzic cec488fb64
commit a760a13702
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 625F6A74A3E4311A
1 zmienionych plików z 26 dodań i 24 usunięć

Wyświetl plik

@ -170,33 +170,35 @@ public class CreateConnectionsCommand extends Command {
private static void obtainMissingPrimitives(DataSet dataSet, OsmPrimitive[] primitiveConnections,
Map<Integer, Pair<Long, OsmPrimitiveType>> missingPrimitives) {
final Map<PrimitiveId, Integer> ids = missingPrimitives.entrySet().stream().collect(Collectors
.toMap(entry -> new SimplePrimitiveId(entry.getValue().a, entry.getValue().b), Entry::getKey));
final List<PrimitiveId> toFetch = new ArrayList<>(ids.keySet());
final Optional<OsmDataLayer> optionalLayer = MainApplication.getLayerManager()
.getLayersOfType(OsmDataLayer.class).parallelStream()
.filter(layer -> layer.getDataSet().equals(dataSet)).findFirst();
if (!missingPrimitives.isEmpty()) {
final Map<PrimitiveId, Integer> ids = missingPrimitives.entrySet().stream().collect(Collectors
.toMap(entry -> new SimplePrimitiveId(entry.getValue().a, entry.getValue().b), Entry::getKey));
final List<PrimitiveId> toFetch = new ArrayList<>(ids.keySet());
final Optional<OsmDataLayer> optionalLayer = MainApplication.getLayerManager()
.getLayersOfType(OsmDataLayer.class).parallelStream()
.filter(layer -> layer.getDataSet().equals(dataSet)).findFirst();
OsmDataLayer layer;
final String generatedLayerName = "EvKlVarShAiAllsM generated layer";
if (optionalLayer.isPresent()) {
layer = optionalLayer.get();
} else {
layer = new OsmDataLayer(dataSet, generatedLayerName, null);
}
OsmDataLayer layer;
final String generatedLayerName = "EvKlVarShAiAllsM generated layer";
if (optionalLayer.isPresent()) {
layer = optionalLayer.get();
} else {
layer = new OsmDataLayer(dataSet, generatedLayerName, null);
}
final PleaseWaitProgressMonitor monitor = new PleaseWaitProgressMonitor(
tr("Downloading additional OsmPrimitives"));
final DownloadPrimitivesTask downloadPrimitivesTask = new DownloadPrimitivesTask(layer, toFetch, true, monitor);
downloadPrimitivesTask.run();
for (final Entry<PrimitiveId, Integer> entry : ids.entrySet()) {
final int index = entry.getValue().intValue();
final OsmPrimitive primitive = dataSet.getPrimitiveById(entry.getKey());
primitiveConnections[index] = primitive;
}
final PleaseWaitProgressMonitor monitor = new PleaseWaitProgressMonitor(
tr("Downloading additional OsmPrimitives"));
final DownloadPrimitivesTask downloadPrimitivesTask = new DownloadPrimitivesTask(layer, toFetch, true, monitor);
downloadPrimitivesTask.run();
for (final Entry<PrimitiveId, Integer> entry : ids.entrySet()) {
final int index = entry.getValue().intValue();
final OsmPrimitive primitive = dataSet.getPrimitiveById(entry.getKey());
primitiveConnections[index] = primitive;
}
if (generatedLayerName.equals(layer.getName())) {
layer.destroy();
if (generatedLayerName.equals(layer.getName())) {
layer.destroy();
}
}
}