Return-Path: X-Original-To: apmail-cordova-commits-archive@www.apache.org Delivered-To: apmail-cordova-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6B2ED10DC9 for ; Mon, 9 Sep 2013 20:11:00 +0000 (UTC) Received: (qmail 12531 invoked by uid 500); 9 Sep 2013 20:11:00 -0000 Delivered-To: apmail-cordova-commits-archive@cordova.apache.org Received: (qmail 12518 invoked by uid 500); 9 Sep 2013 20:11:00 -0000 Mailing-List: contact commits-help@cordova.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cordova.apache.org Delivered-To: mailing list commits@cordova.apache.org Received: (qmail 12511 invoked by uid 99); 9 Sep 2013 20:11:00 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Sep 2013 20:11:00 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 193AB8252EE; Mon, 9 Sep 2013 20:11:00 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: agrieve@apache.org To: commits@cordova.apache.org Message-Id: <7dd764bdd9ea452886a7757568591530@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: git commit: [CB-4764] Move DirectoryManager.java into file plugin Date: Mon, 9 Sep 2013 20:11:00 +0000 (UTC) Updated Branches: refs/heads/dev 885d8a01a -> 93c652e9c [CB-4764] Move DirectoryManager.java into file plugin 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/93c652e9 Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/tree/93c652e9 Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/diff/93c652e9 Branch: refs/heads/dev Commit: 93c652e9c5e87fab50a946c3ccf96a8d2064e897 Parents: 885d8a0 Author: Andrew Grieve Authored: Mon Sep 9 16:04:08 2013 -0400 Committer: Andrew Grieve Committed: Mon Sep 9 16:04:08 2013 -0400 ---------------------------------------------------------------------- plugin.xml | 1 + src/android/DirectoryManager.java | 134 +++++++++++++++++++++++++++++++++ src/android/FileUtils.java | 1 - 3 files changed, 135 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/blob/93c652e9/plugin.xml ---------------------------------------------------------------------- diff --git a/plugin.xml b/plugin.xml index 367e419..f2ab922 100644 --- a/plugin.xml +++ b/plugin.xml @@ -96,6 +96,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" + http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/blob/93c652e9/src/android/DirectoryManager.java ---------------------------------------------------------------------- diff --git a/src/android/DirectoryManager.java b/src/android/DirectoryManager.java new file mode 100644 index 0000000..b201811 --- /dev/null +++ b/src/android/DirectoryManager.java @@ -0,0 +1,134 @@ +/* + 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.file; + +import java.io.File; + +import android.content.Context; +import android.os.Environment; +import android.os.StatFs; + +/** + * This class provides file directory utilities. + * All file operations are performed on the SD card. + * + * It is used by the FileUtils class. + */ +public class DirectoryManager { + + @SuppressWarnings("unused") + private static final String LOG_TAG = "DirectoryManager"; + + /** + * Determine if a file or directory exists. + * @param name The name of the file to check. + * @return T=exists, F=not found + */ + public static boolean testFileExists(String name) { + boolean status; + + // If SD card exists + if ((testSaveLocationExists()) && (!name.equals(""))) { + File path = Environment.getExternalStorageDirectory(); + File newPath = constructFilePaths(path.toString(), name); + status = newPath.exists(); + } + // If no SD card + else { + status = false; + } + return status; + } + + /** + * Get the free disk space + * + * @return Size in KB or -1 if not available + */ + public static long getFreeDiskSpace(boolean checkInternal) { + String status = Environment.getExternalStorageState(); + long freeSpace = 0; + + // If SD card exists + if (status.equals(Environment.MEDIA_MOUNTED)) { + freeSpace = freeSpaceCalculation(Environment.getExternalStorageDirectory().getPath()); + } + else if (checkInternal) { + freeSpace = freeSpaceCalculation("/"); + } + // If no SD card and we haven't been asked to check the internal directory then return -1 + else { + return -1; + } + + return freeSpace; + } + + /** + * Given a path return the number of free KB + * + * @param path to the file system + * @return free space in KB + */ + private static long freeSpaceCalculation(String path) { + StatFs stat = new StatFs(path); + long blockSize = stat.getBlockSize(); + long availableBlocks = stat.getAvailableBlocks(); + return availableBlocks * blockSize / 1024; + } + + /** + * Determine if SD card exists. + * + * @return T=exists, F=not found + */ + public static boolean testSaveLocationExists() { + String sDCardStatus = Environment.getExternalStorageState(); + boolean status; + + // If SD card is mounted + if (sDCardStatus.equals(Environment.MEDIA_MOUNTED)) { + status = true; + } + + // If no SD card + else { + status = false; + } + return status; + } + + /** + * Create a new file object from two file paths. + * + * @param file1 Base file path + * @param file2 Remaining file path + * @return File object + */ + private static File constructFilePaths (String file1, String file2) { + File newPath; + if (file2.startsWith(file1)) { + newPath = new File(file2); + } + else { + newPath = new File(file1 + "/" + file2); + } + return newPath; + } +} http://git-wip-us.apache.org/repos/asf/cordova-plugin-file/blob/93c652e9/src/android/FileUtils.java ---------------------------------------------------------------------- diff --git a/src/android/FileUtils.java b/src/android/FileUtils.java index 6f3bc89..405eb83 100755 --- a/src/android/FileUtils.java +++ b/src/android/FileUtils.java @@ -28,7 +28,6 @@ import android.util.Log; import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaPlugin; import org.apache.cordova.PluginResult; -import org.apache.cordova.DirectoryManager; import org.json.JSONArray; import org.json.JSONException;