X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/c837207a40e7f647b93909c7f213e4b4b4a41d52..053aad5ae17a1ad7a15218c220810e6b369fea4c:/src/com/owncloud/android/utils/FileStorageUtils.java diff --git a/src/com/owncloud/android/utils/FileStorageUtils.java b/src/com/owncloud/android/utils/FileStorageUtils.java index 5406cb5a..72815a9a 100644 --- a/src/com/owncloud/android/utils/FileStorageUtils.java +++ b/src/com/owncloud/android/utils/FileStorageUtils.java @@ -20,12 +20,14 @@ package com.owncloud.android.utils; import java.io.File; +import android.annotation.SuppressLint; import android.net.Uri; import android.os.Environment; import android.os.StatFs; +import android.util.Log; import com.owncloud.android.datamodel.OCFile; - +import com.owncloud.android.files.services.InstantUploadService; /** * Static methods to help in access to local file system. @@ -33,33 +35,56 @@ import com.owncloud.android.datamodel.OCFile; * @author David A. Velasco */ public class FileStorageUtils { - + private static final String LOG_TAG = "FileStorageUtils"; + public static final String getSavePath(String accountName) { File sdCard = Environment.getExternalStorageDirectory(); - return sdCard.getAbsolutePath() + "/owncloud/" + Uri.encode(accountName, "@"); - // URL encoding is an 'easy fix' to overcome that NTFS and FAT32 don't allow ":" in file names, that can be in the accountName since 0.1.190B + return sdCard.getAbsolutePath() + "/owncloud/" + Uri.encode(accountName, "@"); + // URL encoding is an 'easy fix' to overcome that NTFS and FAT32 don't allow ":" in file names, that can be in the accountName since 0.1.190B } - + public static final String getDefaultSavePathFor(String accountName, OCFile file) { return getSavePath(accountName) + file.getRemotePath(); } - + public static final String getTemporalPath(String accountName) { File sdCard = Environment.getExternalStorageDirectory(); return sdCard.getAbsolutePath() + "/owncloud/tmp/" + Uri.encode(accountName, "@"); // URL encoding is an 'easy fix' to overcome that NTFS and FAT32 don't allow ":" in file names, that can be in the accountName since 0.1.190B } + @SuppressLint("NewApi") public static final long getUsableSpace(String accountName) { File savePath = Environment.getExternalStorageDirectory(); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) { return savePath.getUsableSpace(); - + } else { StatFs stats = new StatFs(savePath.getAbsolutePath()); return stats.getAvailableBlocks() * stats.getBlockSize(); } - + + } + + // to ensure we will not add the slash twice between filename and + // folder-name + private static String getFileName(String filepath) { + if (filepath != null && !"".equals(filepath)) { + int psi = filepath.lastIndexOf('/'); + String filename = filepath; + if (psi > -1) { + filename = filepath.substring(psi + 1, filepath.length()); + Log.d(LOG_TAG, "extracted filename :" + filename); + } + return filename; + } else { + // Toast + Log.w(LOG_TAG, "the given filename was null or empty"); + return null; + } + } + + public static String getInstantUploadFilePath(String fileName) { + return InstantUploadService.INSTANT_UPLOAD_DIR + "/" + getFileName(fileName); } - } \ No newline at end of file