diff --git a/vtm-android/src/org/oscim/android/cache/TileCache.java b/vtm-android/src/org/oscim/android/cache/TileCache.java
index 94acb80c..d0aa6e8a 100644
--- a/vtm-android/src/org/oscim/android/cache/TileCache.java
+++ b/vtm-android/src/org/oscim/android/cache/TileCache.java
@@ -1,6 +1,7 @@
/*
* Copyright 2013 Hannes Janetzek
* Copyright 2016 Stephan Leuschner
+ * Copyright 2016 devemux86
*
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
*
@@ -107,7 +108,9 @@ public class TileCache implements ITileCache {
if (dbg)
log.debug("open cache {}, {}", cacheDirectory, dbName);
- dbHelper = new SQLiteHelper(context, new File(cacheDirectory, dbName).getAbsolutePath());
+ if (cacheDirectory != null)
+ dbName = new File(cacheDirectory, dbName).getAbsolutePath();
+ dbHelper = new SQLiteHelper(context, dbName);
if (Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN)
dbHelper.setWriteAheadLoggingEnabled(true);
diff --git a/vtm-app/src/org/oscim/app/MapLayers.java b/vtm-app/src/org/oscim/app/MapLayers.java
index 0af4fd8f..56050e3b 100644
--- a/vtm-app/src/org/oscim/app/MapLayers.java
+++ b/vtm-app/src/org/oscim/app/MapLayers.java
@@ -1,6 +1,24 @@
+/*
+ * Copyright 2016 devemux86
+ *
+ * This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
+ *
+ * This program is free software: you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License along with
+ * this program. If not, see .
+ */
package org.oscim.app;
+import android.content.Context;
import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
import org.oscim.android.cache.TileCache;
import org.oscim.layers.GenericLayer;
@@ -26,8 +44,6 @@ public class MapLayers {
final static Logger log = LoggerFactory.getLogger(MapLayers.class);
- private static final String CACHE_DIRECTORY = "/Android/data/org.oscim.app/cache/";
-
abstract static class Config {
final String name;
@@ -71,7 +87,8 @@ public class MapLayers {
setBackgroundMap(-1);
}
- void setBaseMap(SharedPreferences preferences) {
+ void setBaseMap(Context context) {
+ SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
String dbname = preferences.getString("mapDatabase", "OPENSCIENCEMAP4");
if (dbname.equals(mMapDatabase) && mBaseLayer != null)
@@ -89,7 +106,7 @@ public class MapLayers {
}
if (tileSource instanceof UrlTileSource) {
- mCache = new TileCache(App.activity, CACHE_DIRECTORY, dbname);
+ mCache = new TileCache(App.activity, context.getExternalCacheDir().getAbsolutePath(), dbname);
mCache.setCacheSize(512 * (1 << 10));
tileSource.setCache(mCache);
} else {
@@ -106,8 +123,10 @@ public class MapLayers {
mMapDatabase = dbname;
}
- void setPreferences(SharedPreferences preferences) {
- setBaseMap(preferences);
+ void setPreferences(Context context) {
+ setBaseMap(context);
+
+ SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
ThemeFile theme = VtmThemes.DEFAULT;
if (preferences.contains("theme")) {
diff --git a/vtm-app/src/org/oscim/app/TileMap.java b/vtm-app/src/org/oscim/app/TileMap.java
index 8d2e5a2d..8b19862a 100755
--- a/vtm-app/src/org/oscim/app/TileMap.java
+++ b/vtm-app/src/org/oscim/app/TileMap.java
@@ -1,5 +1,6 @@
/* Copyright 2010, 2011, 2012 mapsforge.org
* Copyright 2012 Hannes Janetzek
+ * Copyright 2016 devemux86
*
* This program is free software: you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free Software
@@ -12,7 +13,6 @@
* You should have received a copy of the GNU Lesser General Public License along with
* this program. If not, see .
*/
-
package org.oscim.app;
import android.app.AlertDialog;
@@ -81,8 +81,9 @@ public class TileMap extends MapActivity implements MapEventsReceiver {
App.activity = this;
mMapLayers = new MapLayers();
+ mMapLayers.setBaseMap(this);
+
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
- mMapLayers.setBaseMap(prefs);
if (!prefs.contains("distanceTouch"))
prefs.edit().putBoolean("distanceTouch", true).apply();
@@ -347,8 +348,9 @@ public class TileMap extends MapActivity implements MapEventsReceiver {
mCompass.resume();
mLocation.resume();
+ mMapLayers.setPreferences(this);
+
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
- mMapLayers.setPreferences(preferences);
if (preferences.getBoolean("fullscreen", false)) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);