aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2014-03-03 10:24:41 -0800
committerScott Jackson <daneren2005@gmail.com>2014-03-03 10:24:41 -0800
commitf8be58791ef6089707c5fb29dd0eefdc5e1b25e3 (patch)
tree58d5894ee2a1db4799b5fb56b42b6a9e731465d8
parent68469f65ae5bcec21d8942f75a233fd998508c7f (diff)
downloaddsub-f8be58791ef6089707c5fb29dd0eefdc5e1b25e3.tar.gz
dsub-f8be58791ef6089707c5fb29dd0eefdc5e1b25e3.tar.bz2
dsub-f8be58791ef6089707c5fb29dd0eefdc5e1b25e3.zip
Fix samsung returning File.canWrite true when false
-rw-r--r--src/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java2
-rw-r--r--src/github/daneren2005/dsub/util/FileUtil.java13
2 files changed, 14 insertions, 1 deletions
diff --git a/src/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java b/src/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java
index 186f19c2..a55abfc0 100644
--- a/src/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java
+++ b/src/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java
@@ -443,7 +443,7 @@ public class SubsonicFragmentActivity extends SubsonicActivity {
} else {
String path = prefs.getString(Constants.PREFERENCES_KEY_CACHE_LOCATION, null);
File cacheLocation = new File(path);
- if(!FileUtil.ensureDirectoryExistsAndIsReadWritable(cacheLocation)) {
+ if(!FileUtil.verifyCanWrite(cacheLocation)) {
resetCacheLocation(prefs);
Util.info(this, R.string.common_warning, R.string.settings_cache_location_reset);
}
diff --git a/src/github/daneren2005/dsub/util/FileUtil.java b/src/github/daneren2005/dsub/util/FileUtil.java
index 95917429..197a0149 100644
--- a/src/github/daneren2005/dsub/util/FileUtil.java
+++ b/src/github/daneren2005/dsub/util/FileUtil.java
@@ -368,6 +368,19 @@ public class FileUtil {
}
return true;
}
+ public static boolean verifyCanWrite(File dir) {
+ if(ensureDirectoryExistsAndIsReadWritable(dir) {
+ try {
+ File tmp = File.createTempFile("tmp", "tmp", dir);
+ tmp.delete();
+ return true;
+ } catch(Exception e) {
+ return false;
+ }
+ } else {
+ return false;
+ }
+ }
/**
* Makes a given filename safe by replacing special characters like slashes ("/" and "\")