You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by bh...@apache.org on 2014/07/21 21:50:25 UTC
[4/4] git commit: CB-7161 [BlackBerry10] Add file system directory
paths
CB-7161 [BlackBerry10] Add file system directory paths
Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/commit/75fcc925
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/tree/75fcc925
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/diff/75fcc925
Branch: refs/heads/master
Commit: 75fcc9256ac7a8907c5c7862261fc7cc90d02fea
Parents: 913b9a3
Author: Bryan Higgins <bh...@blackberry.com>
Authored: Thu Jul 17 15:22:22 2014 -0400
Committer: Bryan Higgins <bh...@blackberry.com>
Committed: Fri Jul 18 14:16:45 2014 -0400
----------------------------------------------------------------------
doc/index.md | 25 +++++++++++++++++-----
plugin.xml | 5 ++++-
src/blackberry10/index.js | 13 +++++++++++
tests/tests.js | 2 ++
www/blackberry10/info.js | 2 +-
www/blackberry10/resolveLocalFileSystemURI.js | 2 +-
www/fileSystemPaths.js | 4 +++-
7 files changed, 44 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/blob/75fcc925/doc/index.md
----------------------------------------------------------------------
diff --git a/doc/index.md b/doc/index.md
index 0b4d3cb..a8bddaa 100644
--- a/doc/index.md
+++ b/doc/index.md
@@ -63,22 +63,22 @@ Each URL is in the form _file:///path/to/spot/_, and can be converted to a
`DirectoryEntry` using `window.resolveLocalFileSystemURL()`.
* `cordova.file.applicationDirectory` - Read-only directory where the application
- is installed. (_iOS_, _Android_)
+ is installed. (_iOS_, _Android_, _BlackBerry 10_)
* `cordova.file.applicationStorageDirectory` - Root directory of the application's
sandbox; on iOS this location is read-only (but specific subdirectories [like
`/Documents`] are read-write). All data contained within is private to the app. (
- _iOS_, _Android_)
+ _iOS_, _Android_, _BlackBerry 10_)
* `cordova.file.dataDirectory` - Persistent and private data storage within the
application's sandbox using internal memory (on Android, if you need to use
external memory, use `.externalDataDirectory`). On iOS, this directory is not
- synced with iCloud (use `.syncedDataDirectory`). (_iOS_, _Android_)
+ synced with iCloud (use `.syncedDataDirectory`). (_iOS_, _Android_, _BlackBerry 10_)
* `cordova.file.cacheDirectory` - Directory for cached data files or any files
that your app can re-create easily. The OS may delete these files when the device
runs low on storage, nevertheless, apps should not rely on the OS to delete files
- in here. (_iOS_, _Android_)
+ in here. (_iOS_, _Android_, _BlackBerry 10_)
* `cordova.file.externalApplicationStorageDirectory` - Application space on
external storage. (_Android_)
@@ -89,7 +89,7 @@ Each URL is in the form _file:///path/to/spot/_, and can be converted to a
* `cordova.file.externalCacheDirectory` - Application cache on external storage.
(_Android_)
-* `cordova.file.externalRootDirectory` - External storage (SD card) root. (_Android_)
+* `cordova.file.externalRootDirectory` - External storage (SD card) root. (_Android_, _BlackBerry 10_)
* `cordova.file.tempDirectory` - Temp directory that the OS can clear at will. Do not
rely on the OS to clear this directory; your app should always remove files as
@@ -101,6 +101,8 @@ Each URL is in the form _file:///path/to/spot/_, and can be converted to a
* `cordova.file.documentsDirectory` - Files private to the app, but that are meaningful
to other application (e.g. Office files). (_iOS_)
+* `cordova.file.sharedDirectory` - Files globally available to all applications (_BlackBerry 10_)
+
## File System Layouts
Although technically an implementation detail, it can be very useful to know how
@@ -160,6 +162,19 @@ the `cordova.file.*` properties map to physical paths on a real device.
**Note**: If external storage can't be mounted, the `cordova.file.external*`
properties are `null`.
+### BlackBerry 10 File System Layout
+
+| Device Path | `cordova.file.*` | r/w? | persistent? | OS clears | private |
+|:-------------------------------------------------------------|:----------------------------|:----:|:-----------:|:---------:|:-------:|
+| `file:///accounts/1000/appdata/<app id>/` | applicationStorageDirectory | r/o | N/A | N/A | Yes |
+| `app/native` | applicationDirectory | r/o | N/A | N/A | Yes |
+| `data/webviews/webfs/temporary/local__0` | cacheDirectory | r/w | No | Yes | Yes |
+| `data/webviews/webfs/persistent/local__0` | dataDirectory | r/w | Yes | No | Yes |
+| `file:///accounts/1000/removable/sdcard` | externalRemovableDirectory | r/w | Yes | No | No |
+| `file:///accounts/1000/shared` | sharedDirectory | r/w | Yes | No | No |
+
+*Note*: When application is deployed to work perimeter, all paths are relative to /accounts/1000-enterprise.
+
## Android Quirks
### Android Persistent storage location
http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/blob/75fcc925/plugin.xml
----------------------------------------------------------------------
diff --git a/plugin.xml b/plugin.xml
index 4e1c233..85e6631 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -278,6 +278,9 @@ xmlns:android="http://schemas.android.com/apk/res/android"
<js-module src="www/fileSystems-roots.js" name="fileSystems-roots">
<runs/>
</js-module>
+ <js-module src="www/fileSystemPaths.js" name="fileSystemPaths">
+ <merges target="cordova" />
+ </js-module>
<js-module src="www/blackberry10/copyTo.js" name="copyToProxy" />
<js-module src="www/blackberry10/getDirectory.js" name="getDirectoryProxy" />
<js-module src="www/blackberry10/getFile.js" name="getFileProxy" />
@@ -298,7 +301,7 @@ xmlns:android="http://schemas.android.com/apk/res/android"
<js-module src="www/blackberry10/setMetadata.js" name="setMetadataProxy" />
<js-module src="www/blackberry10/truncate.js" name="truncateProxy" />
<js-module src="www/blackberry10/write.js" name="writeProxy" />
- <source-file src="src/blackberry10/index.js" />
+ <source-file src="src/blackberry10/index.js" target-dir="File" />
</platform>
<!-- windows8 -->
http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/blob/75fcc925/src/blackberry10/index.js
----------------------------------------------------------------------
diff --git a/src/blackberry10/index.js b/src/blackberry10/index.js
index e8b597c..913ab30 100644
--- a/src/blackberry10/index.js
+++ b/src/blackberry10/index.js
@@ -27,5 +27,18 @@ module.exports = {
getHomePath: function (success, fail, args, env) {
var homeDir = window.qnx.webplatform.getApplication().getEnv("HOME");
new PluginResult(args, env).ok(homeDir);
+ },
+
+ requestAllPaths: function (success, fail, args, env) {
+ var homeDir = 'file://' + window.qnx.webplatform.getApplication().getEnv("HOME").replace('/data', ''),
+ paths = {
+ applicationDirectory: homeDir + '/app/native/',
+ applicationStorageDirectory: homeDir + '/',
+ dataDirectory: homeDir + '/data/webviews/webfs/persistent/local__0/',
+ cacheDirectory: homeDir + '/data/webviews/webfs/temporary/local__0/',
+ externalRootDirectory: 'file:///accounts/1000/removable/sdcard/',
+ sharedDirectory: homeDir + '/shared/'
+ };
+ success(paths);
}
};
http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/blob/75fcc925/tests/tests.js
----------------------------------------------------------------------
diff --git a/tests/tests.js b/tests/tests.js
index ec79cf3..76c8a90 100644
--- a/tests/tests.js
+++ b/tests/tests.js
@@ -3029,6 +3029,8 @@ exports.defineAutoTests = function () {
var expectedPaths = ['applicationDirectory', 'applicationStorageDirectory', 'dataDirectory', 'cacheDirectory'];
if (cordova.platformId == 'android') {
expectedPaths.push('externalApplicationStorageDirectory', 'externalRootDirectory', 'externalCacheDirectory', 'externalDataDirectory');
+ } else if (cordova.platformId == 'blackberry10') {
+ expectedPaths.push('externalRootDirectory', 'sharedDirectory');
} else if (cordova.platformId == 'ios') {
expectedPaths.push('syncedDataDirectory', 'documentsDirectory', 'tempDirectory');
} else {
http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/blob/75fcc925/www/blackberry10/info.js
----------------------------------------------------------------------
diff --git a/www/blackberry10/info.js b/www/blackberry10/info.js
index 716dba2..63f9504 100644
--- a/www/blackberry10/info.js
+++ b/www/blackberry10/info.js
@@ -44,7 +44,7 @@ cordova.exec(
function () {
console.error('Unable to determine local storage file path');
},
- 'org.apache.cordova.file',
+ 'File',
'getHomePath',
false
);
http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/blob/75fcc925/www/blackberry10/resolveLocalFileSystemURI.js
----------------------------------------------------------------------
diff --git a/www/blackberry10/resolveLocalFileSystemURI.js b/www/blackberry10/resolveLocalFileSystemURI.js
index a29fe2f..058d76a 100644
--- a/www/blackberry10/resolveLocalFileSystemURI.js
+++ b/www/blackberry10/resolveLocalFileSystemURI.js
@@ -123,7 +123,7 @@ function resolve(success, fail, path, fsType, sandbox, options, size) {
requestAnimationFrame(function () {
resolveNative(success, fail, path, fsType, options, size);
});
- }, fail, 'org.apache.cordova.file', 'setSandbox', [sandbox], false);
+ }, fail, 'File', 'setSandbox', [sandbox], false);
});
}
}
http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/blob/75fcc925/www/fileSystemPaths.js
----------------------------------------------------------------------
diff --git a/www/fileSystemPaths.js b/www/fileSystemPaths.js
index 8ef0bb8..c332f48 100644
--- a/www/fileSystemPaths.js
+++ b/www/fileSystemPaths.js
@@ -45,7 +45,9 @@ exports.file = {
// iOS: Holds app-specific files that should be synced (e.g. to iCloud).
syncedDataDirectory: null,
// iOS: Files private to the app, but that are meaningful to other applciations (e.g. Office files)
- documentsDirectory: null
+ documentsDirectory: null,
+ // BlackBerry10: Files globally available to all apps
+ sharedDirectory: null
};
channel.waitForInitialization('onFileSystemPathsReady');