aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Jacob <mjacob@union06.de>2012-05-30 20:53:43 +0200
committerSamuel Tardieu <sam@rfc1149.net>2012-05-30 21:02:24 +0200
commita171744ae264fb91b442348235ee6a2474a3f240 (patch)
tree03c57c0eb90129e16eda74a5dc17576039fcc583
parent451fbf9c155deeec4e77b22d1f98a87fff2a5a84 (diff)
downloadcgeo-a171744ae264fb91b442348235ee6a2474a3f240.zip
cgeo-a171744ae264fb91b442348235ee6a2474a3f240.tar.gz
cgeo-a171744ae264fb91b442348235ee6a2474a3f240.tar.bz2
remove double underscore files from geocode dirs
-rw-r--r--main/src/cgeo/geocaching/cgData.java31
1 files changed, 30 insertions, 1 deletions
diff --git a/main/src/cgeo/geocaching/cgData.java b/main/src/cgeo/geocaching/cgData.java
index 51b03f3..37f8b7d 100644
--- a/main/src/cgeo/geocaching/cgData.java
+++ b/main/src/cgeo/geocaching/cgData.java
@@ -30,6 +30,7 @@ import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteStatement;
import java.io.File;
+import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
@@ -72,7 +73,7 @@ public class cgData {
private static int[] cacheColumnIndex;
private CacheCache cacheCache = new CacheCache();
private SQLiteDatabase database = null;
- private static final int dbVersion = 62;
+ private static final int dbVersion = 63;
public static final int customListIdOffset = 10;
private static final String dbName = "data";
private static final String dbTableCaches = "cg_caches";
@@ -640,6 +641,14 @@ public class cgData {
}
}
+ if (oldVersion < 63) {
+ try {
+ removeDoubleUnderscoreMapFiles();
+ } catch (Exception e) {
+ Log.e("Failed to upgrade to ver. 63: " + e.toString());
+
+ }
+ }
}
db.setTransactionSuccessful();
@@ -649,6 +658,26 @@ public class cgData {
Log.i("Upgrade database from ver. " + oldVersion + " to ver. " + newVersion + ": completed");
}
+
+ /**
+ * Method to remove static map files with double underscore due to issue#1670
+ * introduced with release on 2012-05-24.
+ */
+ private static void removeDoubleUnderscoreMapFiles() {
+ File[] geocodeDirs = LocalStorage.getStorage().listFiles();
+ final FilenameFilter filter = new FilenameFilter() {
+ @Override
+ public boolean accept(File dir, String filename) {
+ return (filename.startsWith("map_") && filename.contains("__"));
+ }
+ };
+ for (File dir : geocodeDirs) {
+ File[] wrongFiles = dir.listFiles(filter);
+ for (File wrongFile : wrongFiles) {
+ wrongFile.delete();
+ }
+ }
+ }
}
/**