Fix issues with paths

This commit is contained in:
Victor Shcherb 2013-01-09 22:48:22 +01:00
parent cd83761c28
commit 590f62a758
18 changed files with 77 additions and 100 deletions

View file

@ -15,6 +15,7 @@ import net.osmand.Algoritms;
import net.osmand.FavouritePoint; import net.osmand.FavouritePoint;
import net.osmand.LogUtil; import net.osmand.LogUtil;
import net.osmand.access.AccessibleToast; import net.osmand.access.AccessibleToast;
import net.osmand.data.IndexConstants;
import net.osmand.plus.GPXUtilities.GPXFile; import net.osmand.plus.GPXUtilities.GPXFile;
import net.osmand.plus.GPXUtilities.WptPt; import net.osmand.plus.GPXUtilities.WptPt;
import net.osmand.plus.activities.DayNightHelper; import net.osmand.plus.activities.DayNightHelper;
@ -55,7 +56,7 @@ import android.widget.Toast;
import com.bidforfix.andorid.BidForFixHelper; import com.bidforfix.andorid.BidForFixHelper;
public class OsmandApplication extends Application implements ClientContext { public class OsmandApplication extends Application implements ClientContext {
public static final String EXCEPTION_PATH = ResourceManager.APP_DIR + "exception.log"; //$NON-NLS-1$ public static final String EXCEPTION_PATH = "exception.log"; //$NON-NLS-1$
private static final org.apache.commons.logging.Log LOG = LogUtil.getLog(OsmandApplication.class); private static final org.apache.commons.logging.Log LOG = LogUtil.getLog(OsmandApplication.class);
ResourceManager manager = null; ResourceManager manager = null;
@ -465,7 +466,7 @@ public class OsmandApplication extends Application implements ClientContext {
savingTrackHelper.close(); savingTrackHelper.close();
// restore backuped favorites to normal file // restore backuped favorites to normal file
final File appDir = getSettings().extendOsmandPath(ResourceManager.APP_DIR); final File appDir = getAppPath(null);
File save = new File(appDir, FavouritesDbHelper.FILE_TO_SAVE); File save = new File(appDir, FavouritesDbHelper.FILE_TO_SAVE);
File bak = new File(appDir, FavouritesDbHelper.FILE_TO_BACKUP); File bak = new File(appDir, FavouritesDbHelper.FILE_TO_BACKUP);
if (bak.exists() && (!save.exists() || bak.lastModified() > save.lastModified())) { if (bak.exists() && (!save.exists() || bak.lastModified() > save.lastModified())) {
@ -541,7 +542,7 @@ public class OsmandApplication extends Application implements ClientContext {
@Override @Override
public void uncaughtException(final Thread thread, final Throwable ex) { public void uncaughtException(final Thread thread, final Throwable ex) {
File file = osmandSettings.extendOsmandPath(EXCEPTION_PATH); File file = getAppPath(EXCEPTION_PATH);
try { try {
ByteArrayOutputStream out = new ByteArrayOutputStream(); ByteArrayOutputStream out = new ByteArrayOutputStream();
PrintStream printStream = new PrintStream(out); PrintStream printStream = new PrintStream(out);
@ -629,4 +630,12 @@ public class OsmandApplication extends Application implements ClientContext {
uiHandler.postDelayed(run, delay); uiHandler.postDelayed(run, delay);
} }
@Override
public File getAppPath(String path) {
if(path == null) {
path = "";
}
return new File(getSettings().getExternalStorageDirectory(), IndexConstants.APP_DIR + path);
}
} }

View file

@ -68,22 +68,12 @@ import android.view.WindowManager;
*/ */
public class ResourceManager { public class ResourceManager {
public static final String APP_DIR = "osmand/"; //$NON-NLS-1$
public static final String ROUTING_XML = APP_DIR + IndexConstants.ROUTING_XML_FILE;
public static final String AV_PATH = APP_DIR + IndexConstants.AV_INDEX_DIR;
public static final String SRTM_PATH = APP_DIR + IndexConstants.SRTM_INDEX_DIR;
public static final String VOICE_PATH = APP_DIR + IndexConstants.VOICE_INDEX_DIR;
public static final String GPX_PATH = APP_DIR + IndexConstants.GPX_INDEX_DIR;
public static final String MAPS_PATH = APP_DIR;
public static final String INDEXES_CACHE = APP_DIR + "ind.cache";
public static final String BACKUP_PATH = APP_DIR + IndexConstants.BACKUP_INDEX_DIR;
public static final String TILES_PATH = APP_DIR + IndexConstants.TILES_INDEX_DIR; //$NON-NLS-1$
public static final String TEMP_SOURCE_TO_LOAD = IndexConstants.TEMP_SOURCE_TO_LOAD; //$NON-NLS-1$
public static final String VECTOR_MAP = "#vector_map"; //$NON-NLS-1$ public static final String VECTOR_MAP = "#vector_map"; //$NON-NLS-1$
private static final String INDEXES_CACHE = "ind.cache";
private static final Log log = LogUtil.getLog(ResourceManager.class); private static final Log log = LogUtil.getLog(ResourceManager.class);
private static final String MINE_POI_DB = APP_DIR + "mine"+ IndexConstants.POI_INDEX_EXT; private static final String MINE_POI_DB = "mine"+ IndexConstants.POI_INDEX_EXT;
protected static ResourceManager manager = null; protected static ResourceManager manager = null;
@ -150,11 +140,11 @@ public class ResourceManager {
public void resetStoreDirectory() { public void resetStoreDirectory() {
dirWithTiles = context.getSettings().extendOsmandPath(TILES_PATH); dirWithTiles = context.getAppPath(IndexConstants.TILES_INDEX_DIR);
dirWithTiles.mkdirs(); dirWithTiles.mkdirs();
// ".nomedia" indicates there are no pictures and no music to list in this dir for the Gallery app // ".nomedia" indicates there are no pictures and no music to list in this dir for the Gallery app
try { try {
context.getSettings().extendOsmandPath(APP_DIR + ".nomedia").createNewFile(); //$NON-NLS-1$ context.getAppPath(".nomedia").createNewFile(); //$NON-NLS-1$
} catch( Exception e ) { } catch( Exception e ) {
} }
} }
@ -268,7 +258,7 @@ public class ResourceManager {
public synchronized String calculateTileId(ITileSource map, int x, int y, int zoom) { public synchronized String calculateTileId(ITileSource map, int x, int y, int zoom) {
builder.setLength(0); builder.setLength(0);
if (map == null) { if (map == null) {
builder.append(TEMP_SOURCE_TO_LOAD); builder.append(IndexConstants.TEMP_SOURCE_TO_LOAD);
} else { } else {
builder.append(map.getName()); builder.append(map.getName());
} }
@ -392,7 +382,7 @@ public class ResourceManager {
// check we have some assets to copy to sdcard // check we have some assets to copy to sdcard
warnings.addAll(checkAssets(progress)); warnings.addAll(checkAssets(progress));
initRenderers(progress); initRenderers(progress);
geoidAltitudeCorrection = new GeoidAltitudeCorrection(context.getSettings().extendOsmandPath(APP_DIR)); geoidAltitudeCorrection = new GeoidAltitudeCorrection(context.getAppPath(null));
// do it lazy // do it lazy
// indexingImageTiles(progress); // indexingImageTiles(progress);
warnings.addAll(indexingMaps(progress)); warnings.addAll(indexingMaps(progress));
@ -404,7 +394,7 @@ public class ResourceManager {
} }
public List<String> indexVoiceFiles(IProgress progress){ public List<String> indexVoiceFiles(IProgress progress){
File file = context.getSettings().extendOsmandPath(VOICE_PATH); File file = context.getAppPath(IndexConstants.VOICE_INDEX_DIR);
file.mkdirs(); file.mkdirs();
List<String> warnings = new ArrayList<String>(); List<String> warnings = new ArrayList<String>();
if (file.exists() && file.canRead()) { if (file.exists() && file.canRead()) {
@ -427,7 +417,7 @@ public class ResourceManager {
private List<String> checkAssets(IProgress progress) { private List<String> checkAssets(IProgress progress) {
if (!Version.getFullVersion(context) if (!Version.getFullVersion(context)
.equalsIgnoreCase(context.getSettings().previousInstalledVesrion().get())) { .equalsIgnoreCase(context.getSettings().previousInstalledVesrion().get())) {
File applicationDataDir = context.getSettings().extendOsmandPath(APP_DIR); File applicationDataDir = context.getAppPath(null);
applicationDataDir.mkdirs(); applicationDataDir.mkdirs();
if(applicationDataDir.canWrite()){ if(applicationDataDir.canWrite()){
try { try {
@ -516,7 +506,7 @@ public class ResourceManager {
} }
private void initRenderers(IProgress progress) { private void initRenderers(IProgress progress) {
File file = context.getSettings().extendOsmandPath(APP_DIR + IndexConstants.RENDERERS_DIR); File file = context.getAppPath(IndexConstants.RENDERERS_DIR);
file.mkdirs(); file.mkdirs();
Map<String, File> externalRenderers = new LinkedHashMap<String, File>(); Map<String, File> externalRenderers = new LinkedHashMap<String, File>();
if (file.exists() && file.canRead()) { if (file.exists() && file.canRead()) {
@ -558,14 +548,15 @@ public class ResourceManager {
public List<String> indexingMaps(final IProgress progress) { public List<String> indexingMaps(final IProgress progress) {
long val = System.currentTimeMillis(); long val = System.currentTimeMillis();
ArrayList<File> files = new ArrayList<File>(); ArrayList<File> files = new ArrayList<File>();
collectFiles(context.getSettings().extendOsmandPath(MAPS_PATH), IndexConstants.BINARY_MAP_INDEX_EXT, files); File appPath = context.getAppPath(null);
collectFiles(appPath, IndexConstants.BINARY_MAP_INDEX_EXT, files);
if(OsmandPlugin.getEnabledPlugin(SRTMPlugin.class) != null) { if(OsmandPlugin.getEnabledPlugin(SRTMPlugin.class) != null) {
collectFiles(context.getSettings().extendOsmandPath(SRTM_PATH), IndexConstants.BINARY_MAP_INDEX_EXT, files); collectFiles(appPath, IndexConstants.BINARY_MAP_INDEX_EXT, files);
} }
List<String> warnings = new ArrayList<String>(); List<String> warnings = new ArrayList<String>();
renderer.clearAllResources(); renderer.clearAllResources();
CachedOsmandIndexes cachedOsmandIndexes = new CachedOsmandIndexes(); CachedOsmandIndexes cachedOsmandIndexes = new CachedOsmandIndexes();
File indCache = context.getSettings().extendOsmandPath(INDEXES_CACHE); File indCache = context.getAppPath(INDEXES_CACHE);
if (indCache.exists()) { if (indCache.exists()) {
try { try {
cachedOsmandIndexes.readFromFile(indCache, CachedOsmandIndexes.VERSION); cachedOsmandIndexes.readFromFile(indCache, CachedOsmandIndexes.VERSION);
@ -658,7 +649,7 @@ public class ResourceManager {
// POI INDEX // // POI INDEX //
private List<String> indexingPoi(final IProgress progress) { private List<String> indexingPoi(final IProgress progress) {
File updatablePoiDbFile = context.getSettings().extendOsmandPath(MINE_POI_DB); File updatablePoiDbFile = context.getAppPath(MINE_POI_DB);
if(updatablePoiDbFile.exists() && updatablePoiDbFile.canRead()){ if(updatablePoiDbFile.exists() && updatablePoiDbFile.canRead()){
tryToOpenUpdatablePoiDb(updatablePoiDbFile); tryToOpenUpdatablePoiDb(updatablePoiDbFile);
} }
@ -667,7 +658,7 @@ public class ResourceManager {
public AmenityIndexRepositoryOdb getUpdatablePoiDb() { public AmenityIndexRepositoryOdb getUpdatablePoiDb() {
if (updatablePoiDb == null) { if (updatablePoiDb == null) {
File updatablePoiDbFile = context.getSettings().extendOsmandPath(MINE_POI_DB); File updatablePoiDbFile = context.getAppPath(MINE_POI_DB);
if (!tryToOpenUpdatablePoiDb(updatablePoiDbFile)) { if (!tryToOpenUpdatablePoiDb(updatablePoiDbFile)) {
if (updatablePoiDbFile.exists()) { if (updatablePoiDbFile.exists()) {
updatablePoiDbFile.delete(); updatablePoiDbFile.delete();
@ -923,7 +914,7 @@ public class ResourceManager {
} }
public Map<String, String> getBackupIndexes(Map<String, String> map) { public Map<String, String> getBackupIndexes(Map<String, String> map) {
File file = context.getSettings().extendOsmandPath(BACKUP_PATH); File file = context.getAppPath(IndexConstants.BACKUP_INDEX_DIR);
if (file != null && file.isDirectory()) { if (file != null && file.isDirectory()) {
File[] lf = file.listFiles(); File[] lf = file.listFiles();
if (lf != null) { if (lf != null) {

View file

@ -14,7 +14,6 @@ import java.util.List;
import net.osmand.access.AccessibleToast; import net.osmand.access.AccessibleToast;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.ResourceManager;
import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory; import org.xmlpull.v1.XmlPullParserFactory;
@ -58,7 +57,7 @@ public class ContributionVersionActivity extends OsmandListActivity {
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
pathToDownload = getMyApplication().getSettings().extendOsmandPath(ResourceManager.APP_DIR + "osmandToInstall.apk"); pathToDownload = getMyApplication().getAppPath("osmandToInstall.apk");
CustomTitleBar titleBar = new CustomTitleBar(this, R.string.download_files, R.drawable.tab_download_screen_icon); CustomTitleBar titleBar = new CustomTitleBar(this, R.string.download_files, R.drawable.tab_download_screen_icon);
setContentView(R.layout.download_builds); setContentView(R.layout.download_builds);
titleBar.afterSetContentView(); titleBar.afterSetContentView();

View file

@ -498,13 +498,13 @@ public class DownloadIndexActivity extends OsmandExpandableListActivity {
private Map<String, String> listAlreadyDownloadedWithAlternatives() { private Map<String, String> listAlreadyDownloadedWithAlternatives() {
Map<String, String> files = new TreeMap<String, String>(); Map<String, String> files = new TreeMap<String, String>();
listWithAlternatives(settings.extendOsmandPath(ResourceManager.BACKUP_PATH),BINARY_MAP_INDEX_EXT, files); listWithAlternatives(getMyApplication().getAppPath(IndexConstants.BACKUP_INDEX_DIR),BINARY_MAP_INDEX_EXT, files);
listWithAlternatives(settings.extendOsmandPath(ResourceManager.APP_DIR),BINARY_MAP_INDEX_EXT, files); listWithAlternatives(getMyApplication().getAppPath(IndexConstants.MAPS_PATH),BINARY_MAP_INDEX_EXT, files);
listWithAlternatives(settings.extendOsmandPath(ResourceManager.APP_DIR),EXTRA_EXT, files); listWithAlternatives(getMyApplication().getAppPath(IndexConstants.MAPS_PATH),EXTRA_EXT, files);
if(OsmandPlugin.getEnabledPlugin(SRTMPlugin.class) != null) { if(OsmandPlugin.getEnabledPlugin(SRTMPlugin.class) != null) {
listWithAlternatives(settings.extendOsmandPath(ResourceManager.SRTM_PATH),BINARY_MAP_INDEX_EXT, files); listWithAlternatives(getMyApplication().getAppPath(IndexConstants.SRTM_INDEX_DIR),BINARY_MAP_INDEX_EXT, files);
} }
listWithAlternatives(settings.extendOsmandPath(ResourceManager.VOICE_PATH),"", files); listWithAlternatives(getMyApplication().getAppPath(IndexConstants.VOICE_INDEX_DIR),"", files);
return files; return files;
} }
@ -580,7 +580,7 @@ public class DownloadIndexActivity extends OsmandExpandableListActivity {
sz += es.sizeMB; sz += es.sizeMB;
} }
// get availabile space // get availabile space
File dir = settings.extendOsmandPath(""); File dir = getMyApplication().getAppPath("").getParentFile();
double asz = -1; double asz = -1;
if(dir.canRead()){ if(dir.canRead()){
StatFs fs = new StatFs(dir.getAbsolutePath()); StatFs fs = new StatFs(dir.getAbsolutePath());

View file

@ -28,7 +28,6 @@ import net.osmand.plus.GPXUtilities.WptPt;
import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.OsmAndFormatter;
import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.ResourceManager;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.AlertDialog.Builder; import android.app.AlertDialog.Builder;
import android.content.DialogInterface; import android.content.DialogInterface;
@ -325,12 +324,11 @@ public class FavouritesActivity extends OsmandExpandableListActivity {
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
final File appDir = getMyApplication().getSettings().extendOsmandPath(ResourceManager.APP_DIR); final File tosave = getMyApplication().getAppPath(FavouritesDbHelper.FILE_TO_SAVE);
final File tosave = new File(appDir, FavouritesDbHelper.FILE_TO_SAVE);
if(item.getItemId() == EXPORT_ID){ if(item.getItemId() == EXPORT_ID){
if(favouritesAdapter.isEmpty()){ if(favouritesAdapter.isEmpty()){
AccessibleToast.makeText(this, R.string.no_fav_to_save, Toast.LENGTH_LONG).show(); AccessibleToast.makeText(this, R.string.no_fav_to_save, Toast.LENGTH_LONG).show();
} else if(!appDir.exists()){ } else if(!tosave.getParentFile().exists()){
AccessibleToast.makeText(this, R.string.sd_dir_not_accessible, Toast.LENGTH_LONG).show(); AccessibleToast.makeText(this, R.string.sd_dir_not_accessible, Toast.LENGTH_LONG).show();
} else { } else {
final AsyncTask<Void, Void, String> exportTask = new AsyncTask<Void, Void, String>(){ final AsyncTask<Void, Void, String> exportTask = new AsyncTask<Void, Void, String>(){

View file

@ -32,9 +32,7 @@ import net.osmand.plus.GPXUtilities.TrkSegment;
import net.osmand.plus.GPXUtilities.WptPt; import net.osmand.plus.GPXUtilities.WptPt;
import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.OsmAndFormatter;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.ResourceManager;
import net.osmand.plus.SQLiteTileSource; import net.osmand.plus.SQLiteTileSource;
import net.osmand.plus.activities.LocalIndexesActivity.LoadLocalIndexTask; import net.osmand.plus.activities.LocalIndexesActivity.LoadLocalIndexTask;
import net.osmand.plus.voice.MediaCommandPlayerImpl; import net.osmand.plus.voice.MediaCommandPlayerImpl;
@ -202,18 +200,17 @@ public class LocalIndexHelper {
} }
public List<LocalIndexInfo> getLocalIndexData(LocalIndexType type, LoadLocalIndexTask loadTask){ public List<LocalIndexInfo> getLocalIndexData(LocalIndexType type, LoadLocalIndexTask loadTask){
OsmandSettings settings = app.getSettings();
Map<String, String> loadedMaps = app.getResourceManager().getIndexFileNames(); Map<String, String> loadedMaps = app.getResourceManager().getIndexFileNames();
List<LocalIndexInfo> result = new ArrayList<LocalIndexInfo>(); List<LocalIndexInfo> result = new ArrayList<LocalIndexInfo>();
loadObfData(settings.extendOsmandPath(ResourceManager.MAPS_PATH), result, false, loadTask, loadedMaps); loadObfData(app.getAppPath(IndexConstants.MAPS_PATH), result, false, loadTask, loadedMaps);
loadObfData(settings.extendOsmandPath(ResourceManager.BACKUP_PATH), result, true, loadTask, loadedMaps); loadObfData(app.getAppPath(IndexConstants.BACKUP_INDEX_DIR), result, true, loadTask, loadedMaps);
loadTilesData(settings.extendOsmandPath(ResourceManager.TILES_PATH), result, false, loadTask); loadTilesData(app.getAppPath(IndexConstants.TILES_INDEX_DIR), result, false, loadTask);
loadTilesData(settings.extendOsmandPath(ResourceManager.BACKUP_PATH), result, false, loadTask); loadTilesData(app.getAppPath(IndexConstants.BACKUP_INDEX_DIR), result, false, loadTask);
loadVoiceData(settings.extendOsmandPath(ResourceManager.VOICE_PATH), result, false, loadTask); loadVoiceData(app.getAppPath(IndexConstants.VOICE_INDEX_DIR), result, false, loadTask);
loadVoiceData(settings.extendOsmandPath(ResourceManager.BACKUP_PATH), result, true, loadTask); loadVoiceData(app.getAppPath(IndexConstants.TTSVOICE_INDEX_EXT_ZIP), result, true, loadTask);
loadGPXData(settings.extendOsmandPath(ResourceManager.GPX_PATH), result, false, loadTask); loadGPXData(app.getAppPath(IndexConstants.GPX_INDEX_DIR), result, false, loadTask);
loadGPXData(settings.extendOsmandPath(ResourceManager.BACKUP_PATH), result, true, loadTask); loadGPXData(app.getAppPath(IndexConstants.BACKUP_INDEX_DIR), result, true, loadTask);
return result; return result;

View file

@ -13,11 +13,11 @@ import java.util.Set;
import net.osmand.Algoritms; import net.osmand.Algoritms;
import net.osmand.IProgress; import net.osmand.IProgress;
import net.osmand.access.AccessibleToast; import net.osmand.access.AccessibleToast;
import net.osmand.data.IndexConstants;
import net.osmand.plus.GPXUtilities.WptPt; import net.osmand.plus.GPXUtilities.WptPt;
import net.osmand.plus.OsmandPlugin; import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.ResourceManager;
import net.osmand.plus.activities.EnumAdapter.IEnumWithResource; import net.osmand.plus.activities.EnumAdapter.IEnumWithResource;
import net.osmand.plus.activities.LocalIndexHelper.LocalIndexInfo; import net.osmand.plus.activities.LocalIndexHelper.LocalIndexInfo;
import net.osmand.plus.activities.LocalIndexHelper.LocalIndexType; import net.osmand.plus.activities.LocalIndexHelper.LocalIndexType;
@ -330,15 +330,15 @@ public class LocalIndexesActivity extends OsmandExpandableListActivity {
if(i.isBackupedData()){ if(i.isBackupedData()){
File parent = new File(i.getPathToData()).getParentFile(); File parent = new File(i.getPathToData()).getParentFile();
if(i.getType() == LocalIndexType.GPX_DATA){ if(i.getType() == LocalIndexType.GPX_DATA){
parent = settings.extendOsmandPath(ResourceManager.GPX_PATH); parent = getMyApplication().getAppPath(IndexConstants.GPX_INDEX_DIR);
} else if(i.getType() == LocalIndexType.MAP_DATA){ } else if(i.getType() == LocalIndexType.MAP_DATA){
parent = settings.extendOsmandPath(ResourceManager.MAPS_PATH); parent = getMyApplication().getAppPath(IndexConstants.MAPS_PATH);
} else if(i.getType() == LocalIndexType.TILES_DATA){ } else if(i.getType() == LocalIndexType.TILES_DATA){
parent = settings.extendOsmandPath(ResourceManager.TILES_PATH); parent = getMyApplication().getAppPath(IndexConstants.TILES_INDEX_DIR);
} else if(i.getType() == LocalIndexType.VOICE_DATA){ } else if(i.getType() == LocalIndexType.VOICE_DATA){
parent = settings.extendOsmandPath(ResourceManager.VOICE_PATH); parent = getMyApplication().getAppPath(IndexConstants.VOICE_INDEX_DIR);
} else if(i.getType() == LocalIndexType.TTS_VOICE_DATA){ } else if(i.getType() == LocalIndexType.TTS_VOICE_DATA){
parent = settings.extendOsmandPath(ResourceManager.VOICE_PATH); parent = getMyApplication().getAppPath(IndexConstants.VOICE_INDEX_DIR);
} }
return new File(parent, i.getFileName()); return new File(parent, i.getFileName());
} }
@ -347,7 +347,7 @@ public class LocalIndexesActivity extends OsmandExpandableListActivity {
private File getFileToBackup(LocalIndexInfo i) { private File getFileToBackup(LocalIndexInfo i) {
if(!i.isBackupedData()){ if(!i.isBackupedData()){
return new File(settings.extendOsmandPath(ResourceManager.BACKUP_PATH), i.getFileName()); return new File(getMyApplication().getAppPath(IndexConstants.BACKUP_INDEX_DIR), i.getFileName());
} }
return new File(i.getPathToData()); return new File(i.getPathToData());
} }
@ -694,7 +694,7 @@ public class LocalIndexesActivity extends OsmandExpandableListActivity {
} }
private void updateDescriptionTextWithSize(){ private void updateDescriptionTextWithSize(){
File dir = getMyApplication().getSettings().extendOsmandPath(""); File dir = getMyApplication().getAppPath("").getParentFile();
String size = formatGb.format(new Object[]{0}); String size = formatGb.format(new Object[]{0});
if(dir.canRead()){ if(dir.canRead()){
StatFs fs = new StatFs(dir.getAbsolutePath()); StatFs fs = new StatFs(dir.getAbsolutePath());

View file

@ -7,7 +7,6 @@ import java.util.Random;
import net.osmand.access.AccessibleAlertBuilder; import net.osmand.access.AccessibleAlertBuilder;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.ResourceManager;
import net.osmand.plus.Version; import net.osmand.plus.Version;
import net.osmand.plus.activities.search.SearchActivity; import net.osmand.plus.activities.search.SearchActivity;
import net.osmand.plus.render.MapRenderRepositories; import net.osmand.plus.render.MapRenderRepositories;
@ -45,7 +44,7 @@ public class MainMenuActivity extends Activity {
private static final String VECTOR_INDEXES_CHECK = "VECTOR_INDEXES_CHECK"; //$NON-NLS-1$ private static final String VECTOR_INDEXES_CHECK = "VECTOR_INDEXES_CHECK"; //$NON-NLS-1$
private static final String TIPS_SHOW = "TIPS_SHOW"; //$NON-NLS-1$ private static final String TIPS_SHOW = "TIPS_SHOW"; //$NON-NLS-1$
private static final String VERSION_INSTALLED = "VERSION_INSTALLED"; //$NON-NLS-1$ private static final String VERSION_INSTALLED = "VERSION_INSTALLED"; //$NON-NLS-1$
private static final String EXCEPTION_FILE_SIZE = ResourceManager.APP_DIR + "exception.log"; //$NON-NLS-1$ private static final String EXCEPTION_FILE_SIZE = "EXCEPTION_FS"; //$NON-NLS-1$
private static final String CONTRIBUTION_VERSION_FLAG = "CONTRIBUTION_VERSION_FLAG"; private static final String CONTRIBUTION_VERSION_FLAG = "CONTRIBUTION_VERSION_FLAG";
@ -57,7 +56,7 @@ public class MainMenuActivity extends Activity {
public void checkPreviousRunsForExceptions(boolean firstTime) { public void checkPreviousRunsForExceptions(boolean firstTime) {
long size = getPreferences(MODE_WORLD_READABLE).getLong(EXCEPTION_FILE_SIZE, 0); long size = getPreferences(MODE_WORLD_READABLE).getLong(EXCEPTION_FILE_SIZE, 0);
final OsmandApplication app = ((OsmandApplication) getApplication()); final OsmandApplication app = ((OsmandApplication) getApplication());
final File file = app.getSettings().extendOsmandPath(OsmandApplication.EXCEPTION_PATH); final File file = app.getAppPath(OsmandApplication.EXCEPTION_PATH);
if (file.exists() && file.length() > 0) { if (file.exists() && file.length() > 0) {
if (size != file.length() && !firstTime) { if (size != file.length() && !firstTime) {
String msg = MessageFormat.format(getString(R.string.previous_run_crashed), OsmandApplication.EXCEPTION_PATH); String msg = MessageFormat.format(getString(R.string.previous_run_crashed), OsmandApplication.EXCEPTION_PATH);

View file

@ -22,6 +22,7 @@ import net.osmand.LogUtil;
import net.osmand.access.AccessibleAlertBuilder; import net.osmand.access.AccessibleAlertBuilder;
import net.osmand.access.AccessibleToast; import net.osmand.access.AccessibleToast;
import net.osmand.data.Amenity; import net.osmand.data.Amenity;
import net.osmand.data.IndexConstants;
import net.osmand.map.ITileSource; import net.osmand.map.ITileSource;
import net.osmand.osm.LatLon; import net.osmand.osm.LatLon;
import net.osmand.osm.MapUtils; import net.osmand.osm.MapUtils;
@ -38,7 +39,6 @@ import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin; import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.ResourceManager;
import net.osmand.plus.TargetPointsHelper; import net.osmand.plus.TargetPointsHelper;
import net.osmand.plus.Version; import net.osmand.plus.Version;
import net.osmand.plus.activities.search.SearchActivity; import net.osmand.plus.activities.search.SearchActivity;
@ -50,12 +50,10 @@ import net.osmand.plus.views.OsmandMapTileView;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.AlertDialog.Builder; import android.app.AlertDialog.Builder;
import android.app.Application;
import android.app.Dialog; import android.app.Dialog;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.content.ActivityNotFoundException; import android.content.ActivityNotFoundException;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.DialogInterface.OnMultiChoiceClickListener; import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.content.Intent; import android.content.Intent;
@ -746,8 +744,7 @@ public class MapActivityActions implements DialogProvider {
public static Dialog createSaveDirections(Activity activity) { public static Dialog createSaveDirections(Activity activity) {
final OsmandApplication app = ((OsmandApplication) activity.getApplication()); final OsmandApplication app = ((OsmandApplication) activity.getApplication());
OsmandSettings settings = ((OsmandApplication) activity.getApplication()).getSettings(); final File fileDir = app.getAppPath(IndexConstants.GPX_INDEX_DIR);
final File fileDir = settings.extendOsmandPath(ResourceManager.GPX_PATH);
final Dialog dlg = new Dialog(activity); final Dialog dlg = new Dialog(activity);
dlg.setTitle(R.string.save_route_dialog_title); dlg.setTitle(R.string.save_route_dialog_title);
dlg.setContentView(R.layout.save_directions_dialog); dlg.setContentView(R.layout.save_directions_dialog);

View file

@ -14,6 +14,7 @@ import net.osmand.CallbackWithObject;
import net.osmand.ResultMatcher; import net.osmand.ResultMatcher;
import net.osmand.access.AccessibleToast; import net.osmand.access.AccessibleToast;
import net.osmand.data.AmenityType; import net.osmand.data.AmenityType;
import net.osmand.data.IndexConstants;
import net.osmand.map.ITileSource; import net.osmand.map.ITileSource;
import net.osmand.map.TileSourceManager.TileSourceTemplate; import net.osmand.map.TileSourceManager.TileSourceTemplate;
import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.ContextMenuAdapter;
@ -29,7 +30,6 @@ import net.osmand.plus.OsmandSettings.CommonPreference;
import net.osmand.plus.PoiFilter; import net.osmand.plus.PoiFilter;
import net.osmand.plus.PoiFiltersHelper; import net.osmand.plus.PoiFiltersHelper;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.ResourceManager;
import net.osmand.plus.SQLiteTileSource; import net.osmand.plus.SQLiteTileSource;
import net.osmand.plus.rastermaps.OsmandRasterMapsPlugin; import net.osmand.plus.rastermaps.OsmandRasterMapsPlugin;
import net.osmand.plus.render.MapVectorLayer; import net.osmand.plus.render.MapVectorLayer;
@ -381,8 +381,7 @@ public class MapActivityLayers {
public void selectGPXFileLayer(final CallbackWithObject<GPXFile> callbackWithObject, final boolean convertCloudmade, public void selectGPXFileLayer(final CallbackWithObject<GPXFile> callbackWithObject, final boolean convertCloudmade,
final boolean showCurrentGpx) { final boolean showCurrentGpx) {
final List<String> list = new ArrayList<String>(); final List<String> list = new ArrayList<String>();
final OsmandSettings settings = getApplication().getSettings(); final File dir = getApplication().getAppPath(IndexConstants.GPX_INDEX_DIR);
final File dir = settings.extendOsmandPath(ResourceManager.GPX_PATH);
if (dir != null && dir.canRead()) { if (dir != null && dir.canRead()) {
File[] files = dir.listFiles(); File[] files = dir.listFiles();
if (files != null) { if (files != null) {

View file

@ -9,6 +9,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import net.osmand.LogUtil; import net.osmand.LogUtil;
import net.osmand.data.IndexConstants;
import net.osmand.osm.LatLon; import net.osmand.osm.LatLon;
import net.osmand.plus.GPXUtilities; import net.osmand.plus.GPXUtilities;
import net.osmand.plus.GPXUtilities.GPXFile; import net.osmand.plus.GPXUtilities.GPXFile;
@ -17,7 +18,6 @@ import net.osmand.plus.GPXUtilities.TrkSegment;
import net.osmand.plus.GPXUtilities.WptPt; import net.osmand.plus.GPXUtilities.WptPt;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings;
import net.osmand.plus.ResourceManager;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
@ -130,12 +130,10 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
*/ */
public List<String> saveDataToGpx() { public List<String> saveDataToGpx() {
List<String> warnings = new ArrayList<String>(); List<String> warnings = new ArrayList<String>();
File dir = ((OsmandApplication) ctx.getApplicationContext()).getSettings().getExternalStorageDirectory(); File dir = ctx.getAppPath(IndexConstants.GPX_INDEX_DIR);
if (dir.canWrite()) { if (dir.getParentFile().canWrite()) {
dir = new File(dir, ResourceManager.GPX_PATH);
dir.mkdirs(); dir.mkdirs();
if (dir.exists()) { if (dir.exists()) {
Map<String, GPXFile> data = collectRecordedData(); Map<String, GPXFile> data = collectRecordedData();
// save file // save file

View file

@ -12,6 +12,7 @@ import java.util.Set;
import net.osmand.ResultMatcher; import net.osmand.ResultMatcher;
import net.osmand.access.AccessibleToast; import net.osmand.access.AccessibleToast;
import net.osmand.data.IndexConstants;
import net.osmand.map.TileSourceManager; import net.osmand.map.TileSourceManager;
import net.osmand.map.TileSourceManager.TileSourceTemplate; import net.osmand.map.TileSourceManager.TileSourceTemplate;
import net.osmand.plus.ApplicationMode; import net.osmand.plus.ApplicationMode;
@ -22,7 +23,6 @@ import net.osmand.plus.OsmandSettings.MetricsConstants;
import net.osmand.plus.OsmandSettings.OsmandPreference; import net.osmand.plus.OsmandSettings.OsmandPreference;
import net.osmand.plus.ProgressDialogImplementation; import net.osmand.plus.ProgressDialogImplementation;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.ResourceManager;
import net.osmand.plus.Version; import net.osmand.plus.Version;
import net.osmand.plus.activities.CustomTitleBar.CustomTitleBarView; import net.osmand.plus.activities.CustomTitleBar.CustomTitleBarView;
import net.osmand.plus.render.NativeOsmandLibrary; import net.osmand.plus.render.NativeOsmandLibrary;
@ -240,7 +240,7 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
private Set<String> getVoiceFiles() { private Set<String> getVoiceFiles() {
// read available voice data // read available voice data
File extStorage = osmandSettings.extendOsmandPath(ResourceManager.VOICE_PATH); File extStorage = getMyApplication().getAppPath(IndexConstants.VOICE_INDEX_DIR);
Set<String> setFiles = new LinkedHashSet<String>(); Set<String> setFiles = new LinkedHashSet<String>();
if (extStorage.exists()) { if (extStorage.exists()) {
for (File f : extStorage.listFiles()) { for (File f : extStorage.listFiles()) {
@ -737,7 +737,7 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
if (preference.getKey().equals(OsmandSettings.LOCAL_INDEXES)) { if (preference.getKey().equals(OsmandSettings.LOCAL_INDEXES)) {
boolean empty = getMyApplication().getResourceManager().getIndexFileNames().isEmpty(); boolean empty = getMyApplication().getResourceManager().getIndexFileNames().isEmpty();
if (empty) { if (empty) {
File folder = getMyApplication().getSettings().extendOsmandPath(ResourceManager.BACKUP_PATH); File folder = getMyApplication().getAppPath(IndexConstants.BACKUP_INDEX_DIR);
if (folder.exists() && folder.isDirectory()) { if (folder.exists() && folder.isDirectory()) {
String[] l = folder.list(); String[] l = folder.list();
empty = l == null || l.length == 0; empty = l == null || l.length == 0;

View file

@ -55,15 +55,6 @@ public class InternalOsmAndAPIImpl implements InternalOsmAndAPI {
return app.getAssets().open(name); return app.getAssets().open(name);
} }
@Override
public File getAppDir() {
return app.getSettings().extendOsmandPath(ResourceManager.APP_DIR);
}
@Override
public File getAppDir(String extend) {
return app.getSettings().extendOsmandPath(ResourceManager.APP_DIR + extend);
}
@Override @Override
public NativeLibrary getNativeLibrary() { public NativeLibrary getNativeLibrary() {

View file

@ -12,6 +12,7 @@ import net.osmand.Location;
import net.osmand.LogUtil; import net.osmand.LogUtil;
import net.osmand.access.AccessibleToast; import net.osmand.access.AccessibleToast;
import net.osmand.data.DataTileManager; import net.osmand.data.DataTileManager;
import net.osmand.data.IndexConstants;
import net.osmand.osm.LatLon; import net.osmand.osm.LatLon;
import net.osmand.osm.MapUtils; import net.osmand.osm.MapUtils;
import net.osmand.plus.ApplicationMode; import net.osmand.plus.ApplicationMode;
@ -21,7 +22,6 @@ import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin; import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.ResourceManager;
import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.SettingsActivity; import net.osmand.plus.activities.SettingsActivity;
import net.osmand.plus.views.MapInfoLayer; import net.osmand.plus.views.MapInfoLayer;
@ -320,7 +320,7 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
private File getBaseFileName(double lat, double lon, OsmandApplication app, String ext) { private File getBaseFileName(double lat, double lon, OsmandApplication app, String ext) {
String basename = MapUtils.createShortLocString(lat, lon, 15); String basename = MapUtils.createShortLocString(lat, lon, 15);
int k = 1; int k = 1;
File f = app.getSettings().extendOsmandPath(ResourceManager.AV_PATH); File f = app.getAppPath(IndexConstants.AV_INDEX_DIR);
f.mkdirs(); f.mkdirs();
File fl; File fl;
do { do {
@ -535,7 +535,7 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
@Override @Override
public List<String> indexingFiles(IProgress progress) { public List<String> indexingFiles(IProgress progress) {
File avPath = app.getSettings().extendOsmandPath(ResourceManager.AV_PATH); File avPath = app.getAppPath(IndexConstants.AV_INDEX_DIR);
if (avPath.canRead()) { if (avPath.canRead()) {
recordings.clear(); recordings.clear();
File[] files = avPath.listFiles(); File[] files = avPath.listFiles();

View file

@ -7,6 +7,7 @@ import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import net.osmand.data.IndexConstants;
import net.osmand.plus.ClientContext; import net.osmand.plus.ClientContext;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings;
@ -47,12 +48,11 @@ public class DownloadIndexAdapter extends OsmandBaseExpandableListAdapter implem
} }
public void updateLoadedFiles() { public void updateLoadedFiles() {
OsmandSettings settings = getMyApplication().getSettings();
indexActivatedFileNames = getMyApplication().getResourceManager().getIndexFileNames(); indexActivatedFileNames = getMyApplication().getResourceManager().getIndexFileNames();
DownloadIndexActivity.listWithAlternatives(settings.extendOsmandPath(ResourceManager.APP_DIR), DownloadIndexActivity.listWithAlternatives(getMyApplication().getAppPath(""),
EXTRA_EXT, indexActivatedFileNames); EXTRA_EXT, indexActivatedFileNames);
indexFileNames = getMyApplication().getResourceManager().getIndexFileNames(); indexFileNames = getMyApplication().getResourceManager().getIndexFileNames();
DownloadIndexActivity.listWithAlternatives(settings.extendOsmandPath(ResourceManager.APP_DIR), DownloadIndexActivity.listWithAlternatives(getMyApplication().getAppPath(""),
EXTRA_EXT, indexFileNames); EXTRA_EXT, indexFileNames);
getMyApplication().getResourceManager().getBackupIndexes(indexFileNames); getMyApplication().getResourceManager().getBackupIndexes(indexFileNames);
} }

View file

@ -8,12 +8,11 @@ import java.util.Date;
import java.util.List; import java.util.List;
import net.osmand.LogUtil; import net.osmand.LogUtil;
import net.osmand.plus.Version;
import net.osmand.data.IndexConstants; import net.osmand.data.IndexConstants;
import net.osmand.plus.ClientContext; import net.osmand.plus.ClientContext;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings;
import net.osmand.plus.ResourceManager; import net.osmand.plus.Version;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParser;
@ -51,7 +50,7 @@ public class DownloadOsmandIndexesHelper {
try { try {
String ext = IndexItem.addVersionToExt(IndexConstants.TTSVOICE_INDEX_EXT_ZIP, IndexConstants.TTSVOICE_VERSION); String ext = IndexItem.addVersionToExt(IndexConstants.TTSVOICE_INDEX_EXT_ZIP, IndexConstants.TTSVOICE_VERSION);
String extvoice = IndexItem.addVersionToExt(IndexConstants.VOICE_INDEX_EXT_ZIP, IndexConstants.VOICE_VERSION); String extvoice = IndexItem.addVersionToExt(IndexConstants.VOICE_INDEX_EXT_ZIP, IndexConstants.VOICE_VERSION);
File voicePath = settings.extendOsmandPath(ResourceManager.VOICE_PATH); File voicePath = settings.getContext().getAppPath(IndexConstants.VOICE_INDEX_DIR);
list = amanager.list("voice"); list = amanager.list("voice");
String date = ""; String date = "";
long dateModified = System.currentTimeMillis(); long dateModified = System.currentTimeMillis();

View file

@ -10,9 +10,9 @@ import java.net.URL;
import net.osmand.Algoritms; import net.osmand.Algoritms;
import net.osmand.LogUtil; import net.osmand.LogUtil;
import net.osmand.access.AccessibleToast; import net.osmand.access.AccessibleToast;
import net.osmand.data.IndexConstants;
import net.osmand.map.TileSourceManager.TileSourceTemplate; import net.osmand.map.TileSourceManager.TileSourceTemplate;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.ResourceManager;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
@ -101,7 +101,7 @@ public class YandexTrafficAdapter extends MapTileAdapter {
} }
private void clearCache() { private void clearCache() {
File dir = view.getSettings().extendOsmandPath(ResourceManager.TILES_PATH); File dir = view.getApplication().getAppPath(IndexConstants.TILES_INDEX_DIR);
for (File ds : dir.listFiles()) { for (File ds : dir.listFiles()) {
if (ds.isDirectory() && ds.getName().startsWith(YANDEX_PREFFIX)) { if (ds.isDirectory() && ds.getName().startsWith(YANDEX_PREFFIX)) {
Algoritms.removeAllFiles(ds); Algoritms.removeAllFiles(ds);

View file

@ -2,9 +2,9 @@ package net.osmand.plus.voice;
import java.io.File; import java.io.File;
import net.osmand.data.IndexConstants;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.ResourceManager;
import android.app.Activity; import android.app.Activity;
public class CommandPlayerFactory public class CommandPlayerFactory
@ -13,7 +13,7 @@ public class CommandPlayerFactory
throws CommandPlayerException throws CommandPlayerException
{ {
if (voiceProvider != null){ if (voiceProvider != null){
File parent = osmandApplication.getInternalAPI().getAppDir(ResourceManager.VOICE_PATH); File parent = osmandApplication.getAppPath(IndexConstants.VOICE_INDEX_DIR);
File voiceDir = new File(parent, voiceProvider); File voiceDir = new File(parent, voiceProvider);
if(!voiceDir.exists()){ if(!voiceDir.exists()){
throw new CommandPlayerException(ctx.getString(R.string.voice_data_unavailable)); throw new CommandPlayerException(ctx.getString(R.string.voice_data_unavailable));