aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapProvider.java
diff options
context:
space:
mode:
authorMichael Keppler <michael.keppler@gmx.de>2014-04-28 08:55:24 +0200
committerMichael Keppler <michael.keppler@gmx.de>2014-04-28 08:55:24 +0200
commitc1e5ee007e857460cd5b430a92bfa1b919de4931 (patch)
treebf98c4608673a03928169345f0a22a4e52949b1b /main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapProvider.java
parentb0435b4eb828be8f38853427eb000d7feafde1ff (diff)
downloadcgeo-c1e5ee007e857460cd5b430a92bfa1b919de4931.zip
cgeo-c1e5ee007e857460cd5b430a92bfa1b919de4931.tar.gz
cgeo-c1e5ee007e857460cd5b430a92bfa1b919de4931.tar.bz2
fix #3750: gracefully handle file system access restrictions
Diffstat (limited to 'main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapProvider.java')
-rw-r--r--main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapProvider.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapProvider.java b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapProvider.java
index c5ef40c..9f09991 100644
--- a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapProvider.java
+++ b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapProvider.java
@@ -12,6 +12,7 @@ import cgeo.geocaching.maps.mapsforge.v024.MapsforgeMapItemFactory024;
import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.utils.Log;
+import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.mapsforge.android.maps.mapgenerator.MapGeneratorInternal;
import org.mapsforge.map.reader.MapDatabase;
@@ -59,14 +60,17 @@ public final class MapsforgeMapProvider extends AbstractMapProvider {
if (directory.isDirectory()) {
try {
ArrayList<String> mapFileList = new ArrayList<String>();
- for (File file : directory.listFiles()) {
- if (file.getName().endsWith(".map")) {
- if (MapsforgeMapProvider.isValidMapFile(file.getAbsolutePath())) {
- mapFileList.add(file.getAbsolutePath());
+ final File[] files = directory.listFiles();
+ if (ArrayUtils.isNotEmpty(files)) {
+ for (File file : files) {
+ if (file.getName().endsWith(".map")) {
+ if (MapsforgeMapProvider.isValidMapFile(file.getAbsolutePath())) {
+ mapFileList.add(file.getAbsolutePath());
+ }
}
}
+ Collections.sort(mapFileList, String.CASE_INSENSITIVE_ORDER);
}
- Collections.sort(mapFileList, String.CASE_INSENSITIVE_ORDER);
return mapFileList;
} catch (Exception e) {
Log.e("MapsforgeMapProvider.getOfflineMaps: ", e);