Fix issue

This commit is contained in:
Victor Shcherb 2015-08-04 00:14:40 +02:00
parent 39051c7004
commit 81d026aa25
3 changed files with 38 additions and 5 deletions

View file

@ -404,6 +404,7 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment {
successfull = move(new File(info.getPathToData()), getFileToBackup(info));
if(successfull){
info.setBackupedData(true);
getMyApplication().getResourceManager().closeFile(info.getFileName());
}
}
total ++;

View file

@ -5,9 +5,11 @@ import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap;
@ -32,6 +34,32 @@ public class IncrementalChangesManager {
this.resourceManager = resourceManager;
}
public List<File> collectChangesFiles(File dir, String ext, List<File> files) {
if (dir.exists() && dir.canRead()) {
File[] lf = dir.listFiles();
if (lf == null || lf.length == 0) {
return files;
}
Set<String> existingFiles = new HashSet<String>();
for (File f : files) {
existingFiles.add(Algorithms.getFileNameWithoutExtension(f));
}
for (File f : lf) {
if (f.getName().endsWith(ext)) {
String index = Algorithms.getFileNameWithoutExtension(f);
if (index.length() >= 9 || index.charAt(index.length() - 9) != '_') {
String nm = index.substring(0, index.length() - 9);
if (existingFiles.contains(nm)) {
files.add(f);
}
}
}
}
}
return files;
}
public void indexMainMap(File f, long dateCreated) {
String nm = Algorithms.getFileNameWithoutExtension(f).toLowerCase();
if(!regions.containsKey(nm)) {

View file

@ -10,10 +10,12 @@ import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import net.osmand.AndroidUtils;
@ -575,8 +577,8 @@ public class ResourceManager {
private List<File> collectFiles(File dir, String ext, List<File> files) {
if(dir.exists() && dir.canRead()) {
File[] lf = dir.listFiles();
if(lf == null) {
lf = new File[0];
if(lf == null || lf.length == 0) {
return files;
}
for (File f : lf) {
if (f.getName().endsWith(ext)) {
@ -587,6 +589,8 @@ public class ResourceManager {
return files;
}
private void renameRoadsFiles(ArrayList<File> files, File roadsPath) {
Iterator<File> it = files.iterator();
while(it.hasNext()) {
@ -618,7 +622,7 @@ public class ResourceManager {
}
if(context.getSettings().BETA_TESTING_LIVE_UPDATES.get()) {
collectFiles(context.getAppPath(IndexConstants.LIVE_INDEX_DIR), IndexConstants.BINARY_MAP_INDEX_EXT, files);
changesManager.collectChangesFiles(context.getAppPath(IndexConstants.LIVE_INDEX_DIR), IndexConstants.BINARY_MAP_INDEX_EXT, files);
}
Collections.sort(files, Algorithms.getFileVersionComparator());