summaryrefslogtreecommitdiff
path: root/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java')
-rw-r--r--android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java b/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
index 7bd78e3550e5..db2b69825c6a 100644
--- a/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
+++ b/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
@@ -1,5 +1,6 @@
package org.libreoffice.storage.owncloud;
+import java.io.File;
import java.net.URI;
import org.libreoffice.R;
@@ -23,6 +24,7 @@ import com.owncloud.android.lib.resources.files.RemoteFile;
public class OwnCloudProvider implements IDocumentProvider {
private OwnCloudClient client;
+ private File cacheDir;
// TODO: these must be configurable
final private String serverUrl = "http://10.0.2.2/owncloud"; //emulator host machine
@@ -36,6 +38,13 @@ public class OwnCloudProvider implements IDocumentProvider {
client.setCredentials(OwnCloudCredentialsFactory.newBasicCredentials(
userName, password));
+ // make sure cache directory exists, and clear it
+ // TODO: probably we should do smarter cache management
+ cacheDir = new File(context.getCacheDir(), "ownCloud");
+ if (cacheDir.exists()) {
+ deleteRecursive(cacheDir);
+ }
+ cacheDir.mkdirs();
}
@Override
@@ -73,4 +82,27 @@ public class OwnCloudProvider implements IDocumentProvider {
return client;
}
+ /**
+ * Used by OwnCloudFiles to get the cache directory they should download
+ * files to.
+ *
+ * @return cache directory.
+ */
+ protected File getCacheDir() {
+ return cacheDir;
+ }
+
+ /**
+ * Deletes files and recursively deletes directories.
+ *
+ * @param file
+ * File or directory to be deleted.
+ */
+ private void deleteRecursive(File file) {
+ if (file.isDirectory()) {
+ for (File child : file.listFiles())
+ deleteRecursive(child);
+ }
+ file.delete();
+ }
}