Fix simultaneous map downloading in the first screen

This commit is contained in:
Alexey Kulish 2016-08-19 09:49:32 +03:00
parent 6de5931346
commit 690a2b4d05

View file

@ -405,13 +405,8 @@ public class FirstUsageWizardFragment extends Fragment implements OsmAndLocation
case MAP_FOUND: case MAP_FOUND:
break; break;
case MAP_DOWNLOAD: case MAP_DOWNLOAD:
int i = 0; if (!startDownload(0)) {
for (IndexItem indexItem : indexItems) { startDownload(1);
if (!downloadThread.isDownloading(indexItem) && !indexItem.isDownloaded()
&& (i == 0 && !firstMapDownloadCancelled) || (i == 1 && !secondMapDownloadCancelled)) {
validationManager.startDownload(getActivity(), indexItem);
}
i++;
} }
if (localDownloadRegion != null) { if (localDownloadRegion != null) {
downloadThread.initSettingsFirstMap(localDownloadRegion); downloadThread.initSettingsFirstMap(localDownloadRegion);
@ -505,6 +500,29 @@ public class FirstUsageWizardFragment extends Fragment implements OsmAndLocation
@Override @Override
public void downloadHasFinished() { public void downloadHasFinished() {
updateDownloadedItems(); updateDownloadedItems();
startDownload(1);
}
private boolean startDownload(int itemIndex) {
boolean downloadStarted = false;
if (itemIndex == 0 && indexItems.size() > 0) {
IndexItem indexItem = indexItems.get(0);
if (!downloadThread.isDownloading(indexItem)
&& !indexItem.isDownloaded()
&& !firstMapDownloadCancelled) {
validationManager.startDownload(getActivity(), indexItem);
downloadStarted = true;
}
} else if (itemIndex == 1 && indexItems.size() > 1) {
IndexItem indexItem = indexItems.get(1);
if (!downloadThread.isDownloading(indexItem)
&& !indexItem.isDownloaded()
&& !secondMapDownloadCancelled) {
validationManager.startDownload(getActivity(), indexItem);
downloadStarted = true;
}
}
return downloadStarted;
} }
private void updateDownloadedItems() { private void updateDownloadedItems() {