From: Tomasz Marciniak Date: Mon, 2 Nov 2015 09:12:41 +0000 (+0100) Subject: [File] Added filesystems methods implementation. X-Git-Tag: submit/tizen/20151221.111205^2~59^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=eb0119dedc69d54a12c5dc71575fdda91f3508ef;p=platform%2Fcore%2Fapi%2Fcordova-plugins.git [File] Added filesystems methods implementation. [Verification] Code compiles without errors. Change-Id: I579c66de4328e41c643e139f52a4d3ad9471beab Signed-off-by: Tomasz Marciniak --- diff --git a/src/file/js/fileSystemPaths.js b/src/file/js/fileSystemPaths.js index 9de990c..95c2452 100644 --- a/src/file/js/fileSystemPaths.js +++ b/src/file/js/fileSystemPaths.js @@ -19,14 +19,44 @@ cordova.define('cordova-plugin-file.tizen.fileSystemPaths', function(require, ex // TODO: remove -> end var pathsPrefix = { - // TODO: add other directories - // Read-only directory where the application is installed. - applicationDirectory: 'wgt-package/' + applicationDirectory: 'wgt-package/', + dataDirectory: 'wgt-private/', + cacheDirectory:'wgt-private-tmp/', + sharedDirectory: '/opt/usr/media/', }; +function setExternalStorage(successCallback, errorCallback) { + var onSuccess = function(storages) { + for (var i = 0; i < storages.length; i++) { + if (storages[i].type === 'EXTERNAL' && storages[i].state === 'MOUNTED') { + pathsPrefix.externalRootDirectory = storages[i].label + '/'; + successCallback && successCallback(pathsPrefix); + return; + } + } + } + + var onError = function(error) { + console.error("Failed to get external storage: " + error.message); + errorCallback && errorCallback(ConvErrorCode(error.code)); + } + + tizen.filesystem.listStorages(onSuccess, onError); +} + +function setApplicationStorageDirectory(successCallback, errorCallback) { + try { + var app = tizen.application.getCurrentApplication(); + pathsPrefix.applicationStorageDirectory = '/opt/usr/apps/' + app.appInfo.packageId + '/'; + setExternalStorage(successCallback, errorCallback); + } catch(error) { + errorCallback && errorCallback(ConvErrorCode(error.code)); + } +} + module.exports = { requestAllPaths: function(successCallback, errorCallback, args) { - successCallback(pathsPrefix); + setApplicationStorageDirectory(successCallback, errorCallback); } }; diff --git a/src/file/js/requestFileSystem.js b/src/file/js/requestFileSystem.js index 6c3e774..66d12d0 100644 --- a/src/file/js/requestFileSystem.js +++ b/src/file/js/requestFileSystem.js @@ -19,7 +19,33 @@ cordova.define('cordova-plugin-file.tizen.requestFileSystem', function(require, // TODO: remove -> end module.exports = { - requestFileSystem: function(successCallback, errorCallback, args) {} + requestFileSystem: function(successCallback, errorCallback, args) { + var type = args[0]; + + //TEMPORARY = 0 PERSISTENT = 1 cordova layer checks only if type is less than 0 + if (type >= 2) { + errorCallback && errorCallback(FileError.TYPE_MISMATCH_ERR); + return; + } + + var path = type === LocalFileSystem.PERSISTENT ? + cordova.file.dataDirectory : cordova.file.cacheDirectory; + + var filesystem = rootsUtils.findFilesystem(path.substr(0, path.length-1)); + + if (filesystem.filesystemName !== 'temporary' && filesystem.filesystemName !== 'persistent') { + errorCallback && errorCallback(FileError.NOT_FOUND_ERR); + return; + } + + var root = { + 'name' : filesystem.name, + 'fullPath' : filesystem.fullPath, + 'nativeURL' : filesystem.nativeURL, + }; + + successCallback({'name' : filesystem.filesystemName, 'root' : root}); + } }; //TODO: remove when added to public cordova repository -> begin diff --git a/src/file/js/resolveLocalFileSystemURI.js b/src/file/js/resolveLocalFileSystemURI.js index 1918101..f6830cc 100644 --- a/src/file/js/resolveLocalFileSystemURI.js +++ b/src/file/js/resolveLocalFileSystemURI.js @@ -19,7 +19,28 @@ cordova.define('cordova-plugin-file.tizen.resolveLocalFileSystemURI', function(r // TODO: remove -> end module.exports = { - resolveLocalFileSystemURI: function(successCallback, errorCallback, args) {} + resolveLocalFileSystemURI: function(successCallback, errorCallback, args) { + var path = args[0]; + + function onResolve(file) { + var filesystem = rootsUtils.findFilesystem(file.toURI()); + + var entry = { + 'filesystemName' : filesystem.filesystemName, + 'name' : file.name, + 'fullPath' : file.fullPath, + 'isDirectory' : file.isDirectory, + 'nativeURL' : file.toURI(), + }; + successCallback(entry); + } + + function onError(error) { + errorCallback && errorCallback(ConvErrorCode(error.code)); + } + + tizen.filesystem.resolve(path, onResolve, onError, 'r'); + } }; //TODO: remove when added to public cordova repository -> begin