You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ag...@apache.org on 2014/05/27 04:01:10 UTC
git commit: CB-285 Delete file-system-roots plugin
Repository: cordova-plugins
Updated Branches:
refs/heads/master 7003b2882 -> 8f9c0bb53
CB-285 Delete file-system-roots plugin
Project: http://git-wip-us.apache.org/repos/asf/cordova-plugins/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugins/commit/8f9c0bb5
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugins/tree/8f9c0bb5
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugins/diff/8f9c0bb5
Branch: refs/heads/master
Commit: 8f9c0bb534cddb2ae05048dbe3949cb697ea2782
Parents: 7003b28
Author: Andrew Grieve <ag...@chromium.org>
Authored: Mon May 26 22:00:56 2014 -0400
Committer: Andrew Grieve <ag...@chromium.org>
Committed: Mon May 26 22:00:56 2014 -0400
----------------------------------------------------------------------
file-system-roots/FileSystemRoots.js | 88 ------------
file-system-roots/README.md | 27 +---
file-system-roots/android/FileSystemRoots.java | 148 -------------------
file-system-roots/ios/FileSystemRoots.m | 152 --------------------
file-system-roots/plugin.xml | 55 -------
5 files changed, 1 insertion(+), 469 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/8f9c0bb5/file-system-roots/FileSystemRoots.js
----------------------------------------------------------------------
diff --git a/file-system-roots/FileSystemRoots.js b/file-system-roots/FileSystemRoots.js
deleted file mode 100644
index 13ded3e..0000000
--- a/file-system-roots/FileSystemRoots.js
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * 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 exec = require('cordova/exec');
-var argscheck = require('cordova/argscheck');
-
-
-// Open Discussion:
-// * Should we have a purpose to expose the assets?
-// * Would it be any different from resolveLocalFileSystemURL('/')
-// * Should we instead expose URLs instead of DirectoryEntry objects?
-// * e.g. On iOS, app-data://icloud=yes/, app-documents://icloud=no/, app-temp://, app-bundle://
-// * e.g. On Android, could use same schemes for 3.0+, or use content://cordova-app/app-data://... for 2.3
-// * This would mean APIs could be synchronous, and platform-specific locations can be kept on native side.
-// * This would allow things to be used as URLs for images.
-// * APIs (such as FileTransfer) work better with URLs (Paths are annoying, esp with Windows using \)
-// * Entry have a toURL() already. Without custom schemes, it won't work for Android resources & assets
-// * Add support resolveLocalFileSystemURL()?
-
-
-var Purpose = {
- 'data': 0, // General application data (default)
- 'documents': 1, // Files that are meaningful to other applciations (e.g. Office files)
- 'cache': 2, // Temporary files that should survive app restarts
- 'temp': 3, // Files that can should be deleted on app restarts
- 'app-bundle': 4 // The application bundle (iOS only)
-};
-
-/**
- * Supplies a DirectoryEntry that matches the given constraints to the given callback.
- */
-exports.getDirectoryForPurpose = function(purpose, options, successCallback, failureCallback) {
- argscheck.checkArgs('sOfF', 'cordova.filesystem.getDirectoryForPurpose', arguments);
- var augmentedSuccessCallback = successCallback && function(fullPath) {
- resolveLocalFileSystemURL(fullPath, successCallback, failureCallback);
- };
-
- var purposeInt = Purpose[purpose];
- if (typeof purposeInt == 'undefined') {
- throw new Error('getDirectoryForPurpose: invalid purpose: ' + purpose);
- }
- options = options || {};
-
- var sandboxed = typeof options.sandboxed == 'undefined' ? true : !!options.sandboxed;
- var syncable = typeof options.syncable == 'undefined' ? true : !!options.syncable;
-
- var args = [purposeInt, sandboxed, syncable];
- exec(augmentedSuccessCallback, failureCallback, "FileSystemRoots", "getDirectoryForPurpose", args);
-};
-
-exports.getDataDirectory = function(syncable, successCallback) {
- argscheck.checkArgs('*f', 'cordova.filesystem.getDataDirectory', arguments);
- exports.getDirectoryForPurpose('data', { syncable: syncable }, successCallback);
-};
-
-exports.getDocumentsDirectory = function(successCallback) {
- exports.getDirectoryForPurpose('documents', { syncable: true, sandboxed: false }, successCallback);
-};
-
-exports.getTempDirectory = function(successCallback) {
- exports.getDirectoryForPurpose('temp', null, successCallback);
-};
-
-exports.getCacheDirectory = function(successCallback) {
- exports.getDirectoryForPurpose('cache', null, successCallback);
-};
-
-exports.getFileSystemRoot = function(fileSystemName, successCallback, failureCallback) {
- argscheck.checkArgs('sfF', 'cordova.filesystem.getFileSystemRoot', arguments);
- resolveLocalFileSystemURL('cdvfile://localhost/'+fileSystemName+'/', successCallback, failureCallback);
-};
http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/8f9c0bb5/file-system-roots/README.md
----------------------------------------------------------------------
diff --git a/file-system-roots/README.md b/file-system-roots/README.md
index b3cecd5..fb6f31d 100644
--- a/file-system-roots/README.md
+++ b/file-system-roots/README.md
@@ -1,29 +1,4 @@
org.apache.cordova.file-system-roots plugin
===========================================
-This plugin provides getters for important filesystem locations (based on OS).
-
-The simplest method of using these new filesystems is to call `cordova.filesystem.getFileSystemRoot` with the name of the filesystem you want to use.
-
- cordova.filesystem.getFileSystemRoot(fileSystemName, successCallback, errorCallback);
-
-If successful, `successCallback` will be called with a `DirectoryEntry` object representing the root of the filesystem. Otherwise, `errorCallback` will be called with a `FileError`.
-
-It is also possible to request a `DirectoryEntry` object for a particular purpose. This provides a cross-platform way of accessing the various filesystem locations.
-
- cordova.filesystem.getDirectoryForPurpose(purpose, options, successCallback, failureCallback)
-
-will call successCallback with a `DirectoryEntry` object suitable for the specified purpose.
-
-The following string constants are defined for the `purpose` field:
-
- data
- documents
- cache
- temp (returns the TEMPORARY filesystem)
- app-bundle (iOS only)
-
-The `options` field is an object. On iOS, it is possible to set it to
-`{syncable: false}` to obtain the non-synced versions of `data` or `documents`.
-On Android, you can set `{sandboxed: false}` to get the external (not confined
-to your app) versions of `data`, `documents` or `cache`.
+DEPRECATED - the functionality of this plugin is built into org.apache.cordova.file as of 1.2.0.
http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/8f9c0bb5/file-system-roots/android/FileSystemRoots.java
----------------------------------------------------------------------
diff --git a/file-system-roots/android/FileSystemRoots.java b/file-system-roots/android/FileSystemRoots.java
deleted file mode 100644
index bd10dff..0000000
--- a/file-system-roots/android/FileSystemRoots.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * 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.
- *
-*/
-package org.apache.cordova.filesystemroots;
-
-import android.app.Activity;
-import android.content.Context;
-import android.os.Environment;
-import android.util.Log;
-
-import org.apache.cordova.CallbackContext;
-import org.apache.cordova.CordovaArgs;
-import org.apache.cordova.CordovaInterface;
-import org.apache.cordova.CordovaPlugin;
-import org.apache.cordova.CordovaWebView;
-import org.apache.cordova.file.FileUtils;
-import org.apache.cordova.file.LocalFilesystem;
-import org.json.JSONException;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.HashSet;
-
-public class FileSystemRoots extends CordovaPlugin {
- private static final int PURPOSE_DATA = 0;
- private static final int PURPOSE_DOCUMENTS = 1;
- private static final int PURPOSE_CACHE = 2;
- private static final int PURPOSE_TEMP = 3;
- private static final String TAG = "file-system-roots";
-
- private HashSet<String> installedFilesystems;
- private HashMap<String, String> availableFilesystems;
-
- @Override
- public void initialize(CordovaInterface cordova, CordovaWebView webView) {
- super.initialize(cordova, webView);
-
- Activity activity = cordova.getActivity();
- Context context = activity.getApplicationContext();
-
- availableFilesystems = new HashMap<String,String>();
- availableFilesystems.put("files", context.getFilesDir().getAbsolutePath());
- availableFilesystems.put("files-external", context.getExternalFilesDir(null).getAbsolutePath());
- availableFilesystems.put("documents", new File(context.getFilesDir(), "Documents").getAbsolutePath());
- availableFilesystems.put("sdcard", Environment.getExternalStorageDirectory().getAbsolutePath());
- availableFilesystems.put("cache", context.getCacheDir().getAbsolutePath());
- availableFilesystems.put("cache-external", context.getExternalCacheDir().getAbsolutePath());
- availableFilesystems.put("root", "/");
-
- installedFilesystems = new HashSet<String>();
-
- String filesystemsStr = activity.getIntent().getStringExtra("androidextrafilesystems");
- if (filesystemsStr == null) {
- filesystemsStr = "files,files-external,documents,sdcard,cache,cache-external";
- }
-
- String[] filesystems = filesystemsStr.split(",");
-
- FileUtils filePlugin = (FileUtils)webView.pluginManager.getPlugin("File");
- if (filePlugin != null) {
- /* Register filesystems in order */
- for (String fsName : filesystems) {
- if (!installedFilesystems.contains(fsName)) {
- String fsRoot = availableFilesystems.get(fsName);
- if (fsRoot != null) {
- File newRoot = new File(fsRoot);
- if (newRoot.mkdirs() || newRoot.isDirectory()) {
- filePlugin.registerFilesystem(new LocalFilesystem(fsName, cordova, fsRoot));
- installedFilesystems.add(fsName);
- } else {
- Log.d(TAG, "Unable to create root dir for fileystem \"" + fsName + "\", skipping");
- }
- } else {
- Log.d(TAG, "Unrecognized extra filesystem identifier: " + fsName);
- }
- }
- }
- } else {
- Log.w(TAG, "File plugin not found; cannot initialize file-system-roots plugin");
- }
-
- }
-
- @Override
- public boolean execute(String action, CordovaArgs args, final CallbackContext callbackContext) throws JSONException {
- if ("getDirectoryForPurpose".equals(action)) {
- getDirectoryForPurpose(args, callbackContext);
- return true;
- }
-
- return false;
- }
-
- private void getDirectoryForPurpose(final CordovaArgs args, final CallbackContext callbackContext) throws JSONException {
- int purpose = args.getInt(0);
- boolean sandboxed = args.getBoolean(1);
-
- String path = null;
- switch (purpose) {
- case PURPOSE_DATA:
- if (sandboxed && installedFilesystems.contains("files")) {
- path = "cdvfile://localhost/files/";
- } else if (installedFilesystems.contains("files-external")) {
- path = "cdvfile://localhost/files-external/";
- }
- break;
- case PURPOSE_DOCUMENTS:
- if (sandboxed && installedFilesystems.contains("documents")) {
- path = "cdvfile://localhost/documents/";
- } else if (installedFilesystems.contains("sdcard")) {
- path = "cdvfile://localhost/sdcard/";
- }
- break;
- case PURPOSE_TEMP:
- path = "cdvfile://localhost/temporary/";
- case PURPOSE_CACHE:
- if (sandboxed && installedFilesystems.contains("cache")) {
- path = "cdvfile://localhost/cache/";
- } else if (installedFilesystems.contains("cache-external")) {
- path = "cdvfile://localhost/cache-external";
- }
- break;
- }
-
- if (path == null) {
- callbackContext.error("No path found.");
- return;
- }
-
- callbackContext.success(path);
- }
-}
http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/8f9c0bb5/file-system-roots/ios/FileSystemRoots.m
----------------------------------------------------------------------
diff --git a/file-system-roots/ios/FileSystemRoots.m b/file-system-roots/ios/FileSystemRoots.m
deleted file mode 100644
index b9b4f22..0000000
--- a/file-system-roots/ios/FileSystemRoots.m
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * 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.
- *
-*/
-
-#import <Cordova/CDVPlugin.h>
-#import "CDVFile.h"
-#import "CDVLocalFilesystem.h"
-
-enum FileSystemPurpose {
- DATA = 0,
- DOCUMENTS = 1,
- CACHE = 2,
- TEMP = 3,
- IOS_BUNDLE = 4,
-};
-typedef int FileSystemPurpose;
-
-@interface FileSystemRoots : CDVPlugin {
- NSDictionary *availableFilesystems;
- NSMutableSet *installedFilesystems;
-}
-@end
-
-@implementation FileSystemRoots
-
-- (void)pluginInitialize
-{
- NSString *libPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0];
- NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
- availableFilesystems = @{
- @"library": libPath,
- @"library-nosync": [libPath stringByAppendingPathComponent:@"NoCloud"],
- @"documents": docPath,
- @"documents-nosync": [docPath stringByAppendingPathComponent:@"NoCloud"],
- @"cache": [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0],
- @"bundle": [[NSBundle mainBundle] bundlePath],
- @"root": @"/"
- };
- installedFilesystems = [[NSMutableSet alloc] initWithCapacity:7];
-
- /* Get filesystems to be installed from settings */
- id vc = self.viewController;
-
- NSDictionary *settings = [vc settings];
- NSString *filesystemsStr = [settings[@"iosextrafilesystems"] lowercaseString];
- if (!filesystemsStr) {
- filesystemsStr = @"library,library-nosync,documents,documents-nosync,cache,bundle";
- }
- NSArray *filesystems = [filesystemsStr componentsSeparatedByString:@","];
-
- /* Build non-syncable directories as necessary */
- for (NSString *nonSyncFS in @[@"library-nosync", @"documents-nosync"]) {
- if ([filesystems containsObject:nonSyncFS]) {
- [self makeNonSyncable:availableFilesystems[nonSyncFS]];
- }
- }
-
- CDVFile *filePlugin = [[vc commandDelegate] getCommandInstance:@"File"];
- if (filePlugin) {
- /* Register filesystems in order */
- for (NSString *fsName in filesystems) {
- if (![installedFilesystems containsObject:fsName]) {
- NSString *fsRoot = availableFilesystems[fsName];
- if (fsRoot) {
- [filePlugin registerFilesystem:[[CDVLocalFilesystem alloc] initWithName:fsName root:fsRoot]];
- [installedFilesystems addObject:fsName];
- } else {
- NSLog(@"Unrecognized extra filesystem identifier: %@", fsName);
- }
- }
- }
- } else {
- NSLog(@"File plugin not found; cannot initialize file-system-roots plugin");
- }
-}
-
-- (void)makeNonSyncable:(NSString*)path {
- [[NSFileManager defaultManager] createDirectoryAtPath:path
- withIntermediateDirectories:YES
- attributes:nil
- error:nil];
- NSURL* url = [NSURL fileURLWithPath:path];
- [url setResourceValue: [NSNumber numberWithBool: YES]
- forKey: NSURLIsExcludedFromBackupKey error:nil];
-
-}
-
-- (void)getDirectoryForPurpose:(CDVInvokedUrlCommand *)command {
- FileSystemPurpose purpose = [[command argumentAtIndex:0] intValue];
- // BOOL sandboxed = [[command argumentAtIndex:1] boolValue];
- BOOL syncable = [[command argumentAtIndex:2] boolValue];
-
- NSString *path = nil;
-
- switch (purpose) {
- case DATA:
- if (syncable && [installedFilesystems containsObject:@"library"]) {
- path = @"cdvfile://localhost/library/";
- } else if ([installedFilesystems containsObject:@"library-nosync"]) {
- path = @"cdvfile://localhost/library-nosync/";
- }
- break;
- case DOCUMENTS:
- if (syncable && [installedFilesystems containsObject:@"documents"]) {
- path = @"cdvfile://localhost/documents/";
- } else if ([installedFilesystems containsObject:@"documents-nosync"]) {
- path = @"cdvfile://localhost/documents-nosync/";
- }
- break;
- case CACHE:
- if ([installedFilesystems containsObject:@"cache"]) {
- path = @"cdvfile://localhost/cache/";
- }
- break;
- case TEMP:
- path = @"cdvfile://localhost/temporary/";
- break;
- case IOS_BUNDLE:
- if ([installedFilesystems containsObject:@"bundle"]) {
- path = @"cdvfile://localhost/bundle/";
- }
- break;
- }
-
- CDVPluginResult *pluginResult = nil;
-
- if (!path) {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
- } else {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:path];
- }
-
- [[self commandDelegate] sendPluginResult:pluginResult callbackId:[command callbackId]];
-}
-
-@end
http://git-wip-us.apache.org/repos/asf/cordova-plugins/blob/8f9c0bb5/file-system-roots/plugin.xml
----------------------------------------------------------------------
diff --git a/file-system-roots/plugin.xml b/file-system-roots/plugin.xml
deleted file mode 100644
index edfe660..0000000
--- a/file-system-roots/plugin.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- 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.
--->
-<plugin xmlns="http://cordova.apache.org/ns/plugins/1.0"
- id="org.apache.cordova.file-system-roots"
- version="0.1.0">
- <engines>
- <engine name="cordova" version=">=3.0.0" />
- </engines>
-
- <name>File Extras</name>
- <dependency id="org.apache.cordova.file" version=">=1.0.0" />
-
- <js-module src="FileSystemRoots.js" name="FileSystemRoots">
- <clobbers target="cordova.filesystem" />
- </js-module>
-
- <platform name="android">
- <source-file src="android/FileSystemRoots.java" target-dir="src/org/apache/cordova/filesystemroots" />
-
- <config-file target="res/xml/config.xml" parent="/*">
- <feature name="FileSystemRoots">
- <param name="android-package" value="org.apache.cordova.filesystemroots.FileSystemRoots"/>
- <param name="onload" value="true"/>
- </feature>
- </config-file>
- </platform>
-
- <platform name="ios">
- <source-file src="ios/FileSystemRoots.m" />
-
- <config-file target="config.xml" parent="/*">
- <feature name="FileSystemRoots">
- <param name="ios-package" value="FileSystemRoots"/>
- <param name="onload" value="true"/>
- </feature>
- </config-file>
- </platform>
-</plugin>