aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/DataStore.java6
-rw-r--r--main/src/cgeo/geocaching/files/LocalStorage.java18
-rw-r--r--main/src/cgeo/geocaching/utils/FileUtils.java27
-rw-r--r--tests/src/cgeo/geocaching/StaticMapsProviderTest.java3
-rw-r--r--tests/src/cgeo/geocaching/utils/FileUtilsTest.java4
5 files changed, 30 insertions, 28 deletions
diff --git a/main/src/cgeo/geocaching/DataStore.java b/main/src/cgeo/geocaching/DataStore.java
index ff120dd..b7ca577 100644
--- a/main/src/cgeo/geocaching/DataStore.java
+++ b/main/src/cgeo/geocaching/DataStore.java
@@ -905,7 +905,7 @@ public class DataStore {
public void call() {
for (final File dir : toRemove) {
Log.i("Removing obsolete cache directory for " + dir.getName());
- LocalStorage.deleteDirectory(dir);
+ FileUtils.deleteDirectory(dir);
}
}
});
@@ -2356,7 +2356,7 @@ public class DataStore {
database.delete(dbTableLogImages, "log_id NOT IN (SELECT _id FROM " + dbTableLogs + ")", null);
// Remove the obsolete "_others" directory where the user avatar used to be stored.
- LocalStorage.deleteDirectory(LocalStorage.getStorageDir("_others"));
+ FileUtils.deleteDirectory(LocalStorage.getStorageDir("_others"));
if (version > -1) {
Settings.setVersion(version);
@@ -2452,7 +2452,7 @@ public class DataStore {
// Delete cache directories
for (final String geocode : geocodes) {
- LocalStorage.deleteDirectory(LocalStorage.getStorageDir(geocode));
+ FileUtils.deleteDirectory(LocalStorage.getStorageDir(geocode));
}
}
}
diff --git a/main/src/cgeo/geocaching/files/LocalStorage.java b/main/src/cgeo/geocaching/files/LocalStorage.java
index 7fce27d..cfeac9a 100644
--- a/main/src/cgeo/geocaching/files/LocalStorage.java
+++ b/main/src/cgeo/geocaching/files/LocalStorage.java
@@ -364,24 +364,6 @@ public final class LocalStorage {
return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
}
- public static boolean deleteDirectory(@NonNull final File dir) {
- final File[] files = dir.listFiles();
-
- // Although we are called on an existing directory, it might have been removed concurrently
- // in the meantime, for example by the user or by another cleanup task.
- if (files != null) {
- for (final File file : files) {
- if (file.isDirectory()) {
- deleteDirectory(file);
- } else {
- FileUtils.delete(file);
- }
- }
- }
-
- return FileUtils.delete(dir);
- }
-
/**
* Deletes all files from directory geocode with the given prefix.
*
diff --git a/main/src/cgeo/geocaching/utils/FileUtils.java b/main/src/cgeo/geocaching/utils/FileUtils.java
index 0875308..8846345 100644
--- a/main/src/cgeo/geocaching/utils/FileUtils.java
+++ b/main/src/cgeo/geocaching/utils/FileUtils.java
@@ -4,6 +4,7 @@ import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.CharEncoding;
import org.apache.commons.lang3.StringUtils;
+import org.eclipse.jdt.annotation.NonNull;
import android.os.Handler;
import android.os.Message;
@@ -29,7 +30,7 @@ public final class FileUtils {
// utility class
}
- public static void listDir(List<File> result, File directory, FileSelector chooser, Handler feedBackHandler) {
+ public static void listDir(final List<File> result, final File directory, final FileSelector chooser, final Handler feedBackHandler) {
if (directory == null || !directory.isDirectory() || !directory.canRead()
|| result == null
@@ -40,7 +41,7 @@ public final class FileUtils {
final File[] files = directory.listFiles();
if (ArrayUtils.isNotEmpty(files)) {
- for (File file : files) {
+ for (final File file : files) {
if (chooser.shouldEnd()) {
return;
}
@@ -69,6 +70,24 @@ public final class FileUtils {
}
}
+ public static boolean deleteDirectory(@NonNull final File dir) {
+ final File[] files = dir.listFiles();
+
+ // Although we are called on an existing directory, it might have been removed concurrently
+ // in the meantime, for example by the user or by another cleanup task.
+ if (files != null) {
+ for (final File file : files) {
+ if (file.isDirectory()) {
+ deleteDirectory(file);
+ } else {
+ delete(file);
+ }
+ }
+ }
+
+ return delete(dir);
+ }
+
public static abstract class FileSelector {
public abstract boolean isSelected(File file);
@@ -131,7 +150,7 @@ public final class FileUtils {
* @return <code>true</code> if the directory was created, <code>false</code> on failure or if the directory already
* existed.
*/
- public static boolean mkdirs(File file) {
+ public static boolean mkdirs(final File file) {
final boolean success = file.mkdirs() || file.isDirectory(); // mkdirs returns false on existing directories
if (!success) {
Log.e("Could not make directories " + file.getAbsolutePath());
@@ -139,7 +158,7 @@ public final class FileUtils {
return success;
}
- public static boolean writeFileUTF16(File file, String content) {
+ public static boolean writeFileUTF16(final File file, final String content) {
// TODO: replace by some apache.commons IOUtils or FileUtils code
Writer fileWriter = null;
BufferedOutputStream buffer = null;
diff --git a/tests/src/cgeo/geocaching/StaticMapsProviderTest.java b/tests/src/cgeo/geocaching/StaticMapsProviderTest.java
index b107912..02b1d02 100644
--- a/tests/src/cgeo/geocaching/StaticMapsProviderTest.java
+++ b/tests/src/cgeo/geocaching/StaticMapsProviderTest.java
@@ -7,6 +7,7 @@ import cgeo.geocaching.files.LocalStorage;
import cgeo.geocaching.location.Geopoint;
import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.settings.TestSettings;
+import cgeo.geocaching.utils.FileUtils;
import cgeo.geocaching.utils.RxUtils;
import junit.framework.TestCase;
@@ -78,7 +79,7 @@ public class StaticMapsProviderTest extends TestCase {
private static void deleteCacheDirectory(String geocode) {
File cacheDir = LocalStorage.getStorageDir(geocode);
- LocalStorage.deleteDirectory(cacheDir);
+ FileUtils.deleteDirectory(cacheDir);
}
}
diff --git a/tests/src/cgeo/geocaching/utils/FileUtilsTest.java b/tests/src/cgeo/geocaching/utils/FileUtilsTest.java
index 17aed70..0d7fab1 100644
--- a/tests/src/cgeo/geocaching/utils/FileUtilsTest.java
+++ b/tests/src/cgeo/geocaching/utils/FileUtilsTest.java
@@ -29,7 +29,7 @@ public class FileUtilsTest extends TestCase {
}
public void testGetUniqueNamedFile() throws IOException {
- LocalStorage.deleteDirectory(cacheDir);
+ FileUtils.deleteDirectory(cacheDir);
cacheDir.mkdirs();
try {
assertThat(FileUtils.getUniqueNamedFile(baseFile)).isEqualTo(baseFile);
@@ -39,7 +39,7 @@ public class FileUtilsTest extends TestCase {
assertThat(FileUtils.getUniqueNamedFile(baseFile)).isEqualTo(alternative2);
assertThat(FileUtils.getUniqueNamedFile(baseFile)).isEqualTo(alternative2);
} finally {
- LocalStorage.deleteDirectory(cacheDir);
+ FileUtils.deleteDirectory(cacheDir);
}
}