diff options
| author | Michael Keppler <michael.keppler@gmx.de> | 2014-04-28 08:55:24 +0200 |
|---|---|---|
| committer | Michael Keppler <michael.keppler@gmx.de> | 2014-04-28 08:55:24 +0200 |
| commit | c1e5ee007e857460cd5b430a92bfa1b919de4931 (patch) | |
| tree | bf98c4608673a03928169345f0a22a4e52949b1b /main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapProvider.java | |
| parent | b0435b4eb828be8f38853427eb000d7feafde1ff (diff) | |
| download | cgeo-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.java | 14 |
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); |
