summaryrefslogtreecommitdiff
path: root/plugins/org.apache.cordova.file/www/blackberry10/DirectoryEntry.js
diff options
context:
space:
mode:
authorPliablePixels <pliablepixels@gmail.com>2015-06-24 18:47:42 -0400
committerPliablePixels <pliablepixels@gmail.com>2015-06-24 18:47:42 -0400
commit855a0e8ddc273b58066530a1b55a946021dfc56e (patch)
tree26550033e855a31a265fc2da4da3df0cc2733dc1 /plugins/org.apache.cordova.file/www/blackberry10/DirectoryEntry.js
parentd442629aa825aab6bc55ab6be19e3aba060867fe (diff)
Cleaned up code, commented, preparing for HTTPS via CordovaHTTP
Diffstat (limited to 'plugins/org.apache.cordova.file/www/blackberry10/DirectoryEntry.js')
-rw-r--r--plugins/org.apache.cordova.file/www/blackberry10/DirectoryEntry.js112
1 files changed, 112 insertions, 0 deletions
diff --git a/plugins/org.apache.cordova.file/www/blackberry10/DirectoryEntry.js b/plugins/org.apache.cordova.file/www/blackberry10/DirectoryEntry.js
new file mode 100644
index 00000000..cb6628d5
--- /dev/null
+++ b/plugins/org.apache.cordova.file/www/blackberry10/DirectoryEntry.js
@@ -0,0 +1,112 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+var argscheck = require('cordova/argscheck'),
+ utils = require('cordova/utils'),
+ Entry = require('./BB10Entry'),
+ FileError = require('./FileError'),
+ DirectoryReader = require('./BB10DirectoryReader'),
+ fileUtils = require('./BB10Utils'),
+ DirectoryEntry = function (name, fullPath, fileSystem) {
+ DirectoryEntry.__super__.constructor.call(this, false, true, name, fullPath, fileSystem);
+ };
+
+utils.extend(DirectoryEntry, Entry);
+
+function err(sandboxState, errorCallback) {
+ return function (e) {
+ cordova.exec(null, null, "org.apache.cordova.file", "setSandbox", [sandboxState]);
+ errorCallback(e);
+ }
+};
+
+DirectoryEntry.prototype.createReader = function () {
+ return new DirectoryReader(this.fullPath);
+};
+
+DirectoryEntry.prototype.getDirectory = function (path, options, successCallback, errorCallback) {
+ var sandboxState,
+ currentPath = this.nativeEntry.fullPath;
+
+ cordova.exec(function (sandboxed) {
+ sandboxState = sandboxed;
+ }, function (e) {
+ console.log("[ERROR]: Could not retrieve sandbox state ", e);
+ }, "org.apache.cordova.file", "isSandboxed");
+
+ argscheck.checkArgs('sOFF', 'DirectoryEntry.getDirectory', arguments);
+
+ if (fileUtils.isOutsideSandbox(path)) {
+ cordova.exec(null, null, "org.apache.cordova.file", "setSandbox", [false]);
+ window.webkitRequestFileSystem(window.PERSISTENT, this.filesystem._size, function (fs) {
+ cordova.exec(null, null, "org.apache.cordova.file", "setSandbox", [sandboxState]);
+ fs.root.getDirectory(currentPath + '/' + path, options, function (entry) {
+ successCallback(fileUtils.createEntry(entry));
+ }, err(sandboxState, errorCallback));
+ }, err(sandboxState, errorCallback));
+ } else {
+ cordova.exec(null, null, "org.apache.cordova.file", "setSandbox", [true]);
+ window.webkitRequestFileSystem(fileUtils.getFileSystemName(this.filesystem) === "persistent" ? window.PERSISTENT : window.TEMPORARY, this.filesystem._size, function (fs) {
+ cordova.exec(null, null, "org.apache.cordova.file", "setSandbox", [sandboxState]);
+ fs.root.getDirectory(currentPath + '/' + path, options, function (entry) {
+ successCallback(fileUtils.createEntry(entry));
+ }, err(sandboxState, errorCallback));
+ }, err(sandboxState, errorCallback));
+ }
+};
+
+DirectoryEntry.prototype.removeRecursively = function (successCallback, errorCallback) {
+ argscheck.checkArgs('FF', 'DirectoryEntry.removeRecursively', arguments);
+ this.nativeEntry.removeRecursively(successCallback, errorCallback);
+};
+
+DirectoryEntry.prototype.getFile = function (path, options, successCallback, errorCallback) {
+ var sandboxState,
+ currentPath = this.nativeEntry.fullPath;
+
+ cordova.exec(function (sandboxed) {
+ sandboxState = sandboxed;
+ }, function (e) {
+ console.log("[ERROR]: Could not retrieve sandbox state ", e);
+ }, "org.apache.cordova.file", "isSandboxed");
+
+ argscheck.checkArgs('sOFF', 'DirectoryEntry.getFile', arguments);
+
+ if (fileUtils.isOutsideSandbox(path)) {
+ cordova.exec(null, null, "org.apache.cordova.file", "setSandbox", [false]);
+ window.webkitRequestFileSystem(window.PERSISTENT, this.filesystem._size, function (fs) {
+ cordova.exec(null, null, "org.apache.cordova.file", "setSandbox", [sandboxState]);
+ fs.root.getFile(currentPath + '/' + path, options, function (entry) {
+ successCallback(fileUtils.createEntry(entry));
+ }, err(sandboxState, errorCallback));
+ }, err(sandboxState, errorCallback));
+ } else {
+ cordova.exec(null, null, "org.apache.cordova.file", "setSandbox", [true]);
+ window.webkitRequestFileSystem(fileUtils.getFileSystemName(this.filesystem) === "persistent" ? window.PERSISTENT: window.TEMPORARY, this.filesystem._size, function (fs) {
+ cordova.exec(null, null, "org.apache.cordova.file", "setSandbox", [sandboxState]);
+ fs.root.getFile(currentPath + '/' + path, options, function (entry) {
+ successCallback(fileUtils.createEntry(entry));
+ }, err(sandboxState, errorCallback));
+ }, err(sandboxState, errorCallback));
+ }
+};
+
+module.exports = DirectoryEntry;